Écrivez votre propre mise en page alternative

Thank you for your contribution: 

m.a.c. cosmetics eyeshadowVous pouvez déjà sponsoriser ce chapitre !

Les mises en page alternatives sont une possibilité pour les développeurs d'extensisons d'éviter d'avoir à créer des surcharges de templates et pour le créateur de template une chance de proposer différentes mise en page pour les modules et les composants existants.

Imaginez un composant qui arriverait avec trois dispositions alternatives pour un article. Parfois, c'est un « article normal », parfois, il devrait ressembler à un produit, et parfois à une page de livre. Ou encore un template offrant différents affichages pour le module d'identification. Vous n'aurez qu'à choisir la disposition que vous souhaitez utiliser.

Il est possible de créer des mises en page alternatives pour :

  • composants
  • catégories
  • modules

La façon d'appliquer les mises en page alternative est exactement la même chose pour les composants, modules et catégories.

Exemple d'une mise en page alternative d'un module

Vous pouvez fournir une ou plusieurs dispositions complémentaires à n'importe quel module.

Selon vos besoins vous pouvez placer cette mise en page directement dans le dossier de vue du module ou dans le template.

  • Si vous êtes le développeur de ce module vous devez mettre les différents calques dans le vue template du module (tmpl)  (Figure 1). Ensuite vous pouvez choisir le calque que vous voulez afficher dans les options de module (Figure 2).
  • Si vous êtes développeur/designer d'un template vous devez mettre les différents calques de mises en page dans le dossier html de la surcharge du template. Là, vous devez créer un dossier portant le même nom que le module et un sous-dossier pour la vue.C'est le même dossier que vous utilisez pour les surcharges de template. Évidemment, le nom de fichier doit être autre chose que default.php puisque celui-ci a déjà été réservé pour les surcharges du template.Et veuillez ne pas utiliser un trait de soulignement _ dans le nom du fichier. Pour des raisons que j'ignore, parfois cela ne fonctionne pas et parfois cela fonctionne. Ensuite, vous pouvez choisir une disposition alternative dans l'option de module (Figure 3).

Vous pouvez même traduire le nom du fichier indiqué dans les options de module en utilisant les fichiers de langue et en ajoutant la ligne

TPL_BEEZ_20_MOD_LOGIN_LAYOUT_MYBEEZLAYOUT="My Login Layout"

au fichier  /templates/beez_20/language/en-GB/en-GB.tpl_beez_20.sys.ini, il traduira le nom de fichier "mybeezlayout.php" par "my Login Layout".

Alternative Layout for ModuleAlternative Layout for Module

Figure 1: Disposition alternative dans le dossier de module

Alternative Layout from ModuleAlternative Layout from Module

Figure 2: Disposition alternative dans les options de module

Alternative Layout from TemplateAlternative Layout from Template

Figure 3: Disposition alternative pour le module depuis beez_20 template

Éléments de menus alternatifs

En complément de la mise en page alternative, des types d'éléments de menu peuvent être ajoutés à la mise en page et les éléments en option de cet article peuvent être contrôlés en les nommant dans un fichier xml du même nom que le fichier de la mise en page. La présence d'un fichier XML fait d'une disposition alternative un élément de menu. Par exemple, pour créer un élément alternatif de menu appelé "mylayout" pour un article, vous créeriez deux fichiers dans le dossier  templates/beez_20/html/com_content/article  appelés mylayout.php et mylayout.xml. Si vous voulez insérer plus de fichiers de mise en page, vous devez ajouter ajouter ces fichiers avec des underscores dans les noms de fichier.

Les mises en pages des éléments de menu sont prioritaires sur les mises en pages alternatives d'un composant ou d'une catégorie.

Le fichier XML utilise le même format que les fichiers menu item XML du noyau. Ceci vous permet non seulement de créer une disposition adaptée aux besoins du client pour cet élément de menu, mais également de créer des paramètres personnalisés. Par exemple, vous pouvez masquer certains paramètres ou ajouter de nouveaux paramètres.

En savoir plus :