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 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') );
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:
T_
. Celles ci sont habituellement pre-assignées par le code du système central de phpBB.S_
.U_
.LLANGUAGEKEY
. Où LANGUAGE_KEY
est une clef de langage existante (exemple: {LLASTPOST}). Celles ci sont assignées automatiquement.L_LANGUAGE_KEY
. Où LANGUAGE_KEY
est une clef de langage existante. Celles ci sont assignées automatiquement.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(), );
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
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.