Mura CMS Extensions de classe

L'un des avantages du système de gestion de contenu est qu'il stocke toutes les informations de votre site Web dans une base de données unique (comme une feuille de calcul Excel) et vous permet d'accéder facilement à la modification de ces informations dans l'administrateur. Lorsque vous modifiez le titre, le résumé ou le corps du texte d’une page et que vous cliquez sur publier, vous mettez essentiellement à jour cette base de données avec les informations modifiées. Mais que faire si vous souhaitez stocker des informations supplémentaires associées à un type de contenu particulier? Une page de profil, par exemple, peut contenir une structure répétitive d'informations sur cette personne (prénom, nom, titre du travail, etc.). Habituellement, vous avez le choix entre ressaisir toutes les informations à chaque fois ou modifier la base de données (directement ou écrire des scripts personnalisés à cette fin) pour créer des colonnes supplémentaires contenant ces informations. Ensuite, vous devrez modifier l'interface utilisateur pour donner à l'utilisateur des champs de formulaire supplémentaires pour saisir ces informations..

Dans Mura CMS, tout ce processus est simplifié avec l’utilisation de Attributs étendus. Dans l’administrateur Mura, vous pouvez étendre à peu près n’importe quel type de nœud de contenu (page, composant, galerie, dossier, etc.) et ajouter autant de champs que vous le souhaitez, le tout sans toucher à la base de données ni écrire de code.. 

Dans cet exemple, nous allons créer un nouveau type de page pour un livre. En plus du titre, chaque livre comportera les champs suivants que l'administrateur du contenu devra renseigner:

  • Auteur
  • Date de sortie
  • ISBN
  • Neuf / Utilisé
  • Prix

La création d'attributs étendus comprend trois parties:

  1. Extension de classe: Ceci est le nœud de base que vous étendez (page, dossier, galerie, composant, etc.)
  2. Ensemble Attrbute: Un groupement d'attributs étendus, affiché lorsque l'utilisateur modifie du contenu
  3. Attributs étendus: Champs individuels pour les données que vous souhaitez collecter (comme nous avons énuméré ci-dessus).

Créer l'extension de classe

La première étape consiste à créer l'extension de classe. C'est l'objet principal Type et Sous-type qui abritera tous les attributs étendus. Pour créer une nouvelle extension de classe:

  1. À partir de l’administrateur Mura, sélectionnez Configuration du site > Gestionnaire d'extension de classe> Ajouter une extension de classe.

  2. Pour Type de base Sélectionner Page.
  3. Sous Sous-type, type Livre
    Remarque: Laisser «Sous-type» défini sur «Par défaut» appliquera tous les attributs étendus que vous créez à TOUS les nœuds de contenu de ce type..
  4. Sous Icône, sélectionnez l'icône de livre à associer au sous-type de livre.

  5. Cliquez sur Ajouter.

Ajouter un ensemble d'attributs étendus

Maintenant que vous avez votre extension Page / Book Class, nous devons ajouter quelques attributs étendus pour les éléments dont nous avons besoin pour le livre. Les attributs étendus sont regroupés en ensembles d’attributs, un peu comme un

sous forme HTML). Les ensembles d'attributs sont séparés visuellement dans l'administrateur pour permettre une séparation modulaire pour l'utilisateur. 

Pour créer un ensemble d'attributs:

  1. Sélectionner Ajouter > Ajouter un ensemble d'attributs.
  2. Entrer Détails du livre pour le Nom du jeu d'attributs. Cet ensemble contiendra tous les détails dont nous avons besoin pour chaque livre..
  3. Pour le Conteneur (onglet), sélectionner De base (vous pouvez sélectionner d'autres onglets dans l'interface utilisateur Mura pour l'organisation)

  4. Cliquez sur Ajouter.

Ajouter des attributs étendus

Une fois votre jeu d’attributs créé, vous pouvez ajouter les attributs étendus individuels. Nous allons commencer par ajouter un champ de texte brut pour l'auteur du livre:

  1. Dans votre Détails du livre Jeu d'attributs, cliquez sur Ajouter un nouvel attribut

  2. dans le prénom champ, entrez bookAuthor.
    Remarque: Il est important de nommer la variable en fonction de son sous-type et du nom de l'attribut. Par exemple, si le sous-type est "Livre" et que l'attribut que vous souhaitez ajouter est "titre", utilisez plutôt "productTitle" comme "nom" pour l'attribut. Si vous avez plusieurs attributs étendus personnalisés pour votre site, vous pouvez facilement et accidentellement créer deux (ou plus) attributs étendus avec le même nom.. Ne fais pas ça! De plus, évitez d'utiliser l'un des noms de champs de formulaire standard de Mura. Ceci permet d'éviter les collisions de nom de champ de formulaire, sans quoi vous pourriez vous retrouver involontairement avec deux champs de formulaire avec 'Titre' pour l'attribut name, l'un de Mura, l'autre de votre attribut étendu.
  3. Dans le champ Étiquette, entrez l'étiquette conviviale du champ qui apparaîtra à l'utilisateur..
  4. Pour le Type d'entrée, sélectionner Zone de texte.
  5. Pour Info-bulle, entrez un indice convivial sur ce qui doit être placé dans le champ de saisie. Quelque chose comme "S'il vous plaît entrez le nom de l'auteur du livre" pour vous assurer que les utilisateurs comprennent ce que ce champ signifie.
  6. Votre formulaire complet devrait ressembler à ceci:

  7. Cliquez sur Ajouter

Pour les champs restants, répétez les étapes ci-dessus avec les détails suivants pour chaque champ:

Date de sortie

  • Prénom: bookReleaseDate
  • Étiquette: Date de sortie
  • Type d'entrée: Zone de texte
  • Info-bulle: Veuillez sélectionner la date de publication du livre
  • Valider: Date (cela ajoutera un sélecteur de date au champ)

ISBN

  • Prénom: bookISBN
  • Étiquette: ISBN
  • Type d'entrée: Zone de texte
  • Info-bulle: Veuillez entrer l'ISBN du livre

Neuf / Utilisé

  • Prénom: bookNewUsed
  • Étiquette: Neuf ou d'occasion
  • Type d'entrée: SelectBox
  • Info-bulle: Veuillez sélectionner si le livre est nouveau ou utilisé
  • Liste d'options (les valeurs html des éléments de la liste déroulante): neuf ^ utilisé
  • Liste d'étiquettes d'options (les étiquettes conviviales pour les éléments de la liste déroulante): Nouveau ^ Occasion

Prix

  • Prénom: bookPrice
  • Étiquette: Prix ​​$
  • Type d'entrée: Zone de texte
  • Info-bulle: S'il vous plaît entrer le prix du livre

Utiliser une extension de classe

Maintenant que vous avez créé tous vos attributs étendus, vous pouvez ajouter un nouveau livre à partir du gestionnaire de site et remplir tous les champs de formulaire que vous venez de créer..

  1. Aller au Gestionnaire de site

  2. À côté de la page d'accueil, survolez le signe (+) et sélectionnez Ajouter du contenu

  3. Sélectionner Dossier

  4. Entrer Livres pour le Titre
  5. Sélectionnez l'onglet Layout & Objects

  6. Sous Autre modèle de disposition pour enfant, sélectionner twoCol_SR.cfm

  7. Cliquez sur Publier
  8. En regard du dossier Livres du Gestionnaire de site, survolez le signe (+) et sélectionnez Ajouter du contenu


  9. Quand le Sélectionnez le type de contenu modal apparaît, vous devriez maintenant voir le Livre type de page, avec l'icône correspondante.

  10. Entrez le titre, le résumé et le contenu du livre  

  11. vous devriez voir le Détails du livre Ensemble d'attributs situé sous le champ de contenu de l'onglet Elémentaire (si vous ne le voyez pas, vous avez peut-être sélectionné un autre onglet pour afficher le jeu d'attributs, tel que Attributs étendus). Entrez les informations respectives des livres et cliquez sur Publier

Affichage d'attributs étendus

Lorsque vous visualisez la page, vous remarquerez que vos attributs ne s'affichent pas. C'est parce que nous devons dire à Mura d'afficher ces valeurs sur la page. À présent, il existe plusieurs méthodes pour y parvenir, toutes dépendant du cas d'utilisation et du degré de flexibilité que vous souhaitez offrir à vos utilisateurs pour modifier la mise en page. Dans cet exemple, nous allons créer un composant qui produit les informations souhaitées, de sorte qu'il soit polyvalent à utiliser dans le modèle de page de notre choix.. 

Créer un nouveau composant

  1. Dans l'admin Mura, cliquez sur aller à Modules> Composants

  2. Sélectionner Ajouter un composant

  3. dans le Titre champ, entrez Détails du livre
  4. Dans la zone de contenu, entrez les informations suivantes:
    Détails
    Auteur: [m] $. content ('bookAuthor') [/ m]
    Date de sortie: [m] dateFormat ($. content ('bookReleaseDate'), 'mm / jj / aa') [/ m]
    ISBN: [m] $. content ('bookISBN') [/ m]
    État: [m] $. content ('bookNewUsed') [/ m]
    Prix: $ [m] $. content ('bookPrice') [/ m]

    Remarque: Nous utilisons un formatage simple pour cet exemple, mais vous pouvez baliser et styler cela comme bon vous semble avec CSS.
  5. Cliquez sur Publier

Ajouter le composant aux pages du livre

  1. De retour dans le gestionnaire de site, localisez le Livres dossier (pas le livre lui-même), et cliquez dessus pour le modifier.

  2. Sélectionnez le Mise en page et objets languette

  3. Sous Règles d'héritage, sélectionner Commencer une nouvelle cascade

  4. Sous Objets de contenu, sélectionnez Composants, localisez le Détails du livre composant et l'ajouter à la Colonne de droite région d'affichage.

  5. Cliquez sur Publier

Maintenant, lorsque vous actualisez votre page de livre, vous devriez voir les détails du livre apparaître dans la barre latérale droite.. 

Emballer

Comme je l'ai déjà mentionné, il ne s'agit que d'un moyen d'afficher les attributs étendus. Vous pouvez également choisir d'incorporer vos attributs étendus dans vos modèles de page ou de composant, où vous pouvez utiliser une logique supplémentaire et empêcher davantage vos utilisateurs de modifier votre balisage.. 

Si vous souhaitez afficher vos attributs étendus dans un modèle, modifiez simplement le [m] à # par exemple. # $. content ('bookAuthor') #

le [m] Cette balise fait partie de la portée de Mura pour vous permettre d’afficher certaines fonctions de Mura dans l’éditeur de l’administrateur, où les hashtags (#) sont le moyen standard de sortie du contenu dans CFML.

Maintenant que vous avez appris à utiliser les extensions de classe, vous pouvez faire passer vos thèmes Mura à un tout autre niveau en offrant à vos utilisateurs des moyens plus robustes de gérer le contenu de vos thèmes..