Phpbb3_Template

[ phpBB - phpBB3 ]

Le système de template de phpBB3

Il est recommandé de connaître les bases avant d'attaquer de front ce sujet.

Cette section décrit le système de template de phpBB, dans la perspective de la création de MODs. Elle contient du code php d'exemple correspondant au mieux à la structure des fichiers de templates d'exemple.

phpBB3 utilise un système de template pour séparer la mise en forme des pages en (x)html du programme en lui même. L'apparence est ensuite déléguée aux feuilles de style. La compréhension des MODs sont nécessaires pour suivre cette philosophie.

Les variables des Templates

Les templates sont stockées dans le dossier /styles/<style name>/template/ . Les fichiers devraient contenir des balises (x)html propres, des variables de template, et des structures de contrôle. Utilisez les classes CSS pour réaliser les feuilles de style, et évitez de le réaliser directement dans le fichier. L'extension des templates est .html.

Pour charger un fichier de template, utilisez la méthode set_filenames de l'objet $template, qui reçois un tableau de pointeurs, faisant référence aux noms des fichiers du template. Utilisez 'body' comme pointeur pour que la page soit automatiquement affichée par page_footer, pour des pointeurs personnalisés, vous aurez à utiliser $template->display manuellement.

   <?php $template->set_filenames(array(
       'body' => 'your_template_file.html')
   );

Variables de Template

Le moyen de transporter les données vers le template est d'utiliser les variables de template. Par convention, les noms de variables de template sont toujours toutes en majuscules. Les variables en sortie à l'utilisateur sont entourées d'accolades (exemple: {LSOMEVARIABLE}) tant que les variables des structures de contrôle sont utilisées directement.

Les conventions de noms pour les templates sont:

Assigner des variables de Template

Du moment que les variables langue et de template sont assignées automatiquement, vous n'avez pas besoin de les définir manuellement, vous aurez besoin de définir d'autres types de variables que vous pourrez utiliser dans votre fichier de template. Ceci en utilisant la méthode assign_vars de l'objet $template

Note : Les variables de langue sont automatiquement assignées. vous pouvez les utiliser en les préfixant de L_.

   <?php $template->assign_vars(array(
       'S_SOME_VARIABLE'        => $some_variable,
       'NOW'                    => time(),
   );

Les structures de contrôle

Le système de templates supporte un certain nombre de structures de contrôle, comme les boucles, les IF-THEN-ELSE. Celles ci ont été étendues depuis phpBB2, donc elles devraient paraitre suffisantes pour tout le monde.

TODO

  1. Les variables de bloc : A partir du moment où les variables de bloc sont l'unique moyen d'avoir des conditions et des boucles dans les templates, elles sont à présent de retour pour les boucles uniquement.
    1. Assigner les variables de bloc
    2. Utiliser les variabes de bloc
  2. Conditions : IF -THEN-ELSE
    1. Opérateurs logiques
  3. Inclusion d'autres templates

Pagination

Templates pour les MODs

Les MODs devraient être utilisables avec les versions subsilver et prosilver des templates (pour le verdict final lors de l'acceptation en cas de soumission à phpbb.com). La version prosilver nécessite d'ête valide XHTML 1.0 Strict, la version subsilver XHTML 1.0 Transitional. Essayez de suivre le design des templates originaux, par exemple utilisez des tableaux dans subsilver uniquement pour les données "tableau" comme la liste des membres, et non pas pour la mise en forme. De plus, aucun MOD ne sera accepté s'il utilise du php dans les fichiers de template.

Important : Il n'est pas permis d'utiliser du php dans les fichiers de template pour les MODs, le html doit être utilié rarement dans les fichiers php.

Ce document est une traduction (libre et modifiée) de phpBB3 Template System. Au moment de sa rédaction, l'article source n'était pas complet. Merci de me notifier lorsque ce sera le cas.

Creative Commons License