HTML_Template_PHPLIB est une version PEARisée de la fameuse classe de template PHPLIB. Il fourni des variables et des blocs reproduisibles. Le code original de PHPLIB peut-être trouvé sur phplib.sf.net.
Quand vous utilisez HTML_Template_PHPLIB pour générér du HTML ou un code depuis des modèles, vous devez suivre les étapes suivantes:
Créer une instance de la classe template
Charger le fichier template
Définir les blocs
Initialiser les variables, parser les blocs
Terminer et afficher
Les Variables sont des placeholders dans votre code HTML qui pourront être remplacée dynamiquement par valeurs venant d'une base de donnée ou calculées dans votre code. Voici un exemple de variable {CODE_AUTHOR}: Vous entourez le nom de variable d'accolades. Le nom de la variable peut contenir n'importe quel caractères autres que les "blancs". (espace, tabulation, retour à la ligne)
Les Blocs mettent en évidence des morceaux de code HTML et peuvent être réutilisés, p.e. une ligne <tr> dans une table. Les blocs sont définis en utilisant des commentaires HTML contenant BEGIN ou END, et le nom du bloc. Example:
<table> <caption>Auteurs</caption> <thead> <tr><th>Nom</th><th>Email</th></tr> </thead> <tbody> <!-- BEGIN ligneAuteur --> <tr><td>{AUTHOR_NAME}</td><td>{AUTHOR_EMAIL}</td></tr> <!-- END ligneAuteur --> </tbody> </table> |
Exemple 42-139. Fichier template: auteurs.tpl
|
Exemple 42-140. Code PHP : auteurs.php
|
Les fichiers template sont relatifs à un dossier root configurable. Vous pouvez le spécifier directement dans le constructeur (premier paramètre, par défaut .) ou avec la méthode setRoot().
Les fichiers sont référencés via des noms de handle. Pour cela vous appelez la méthode setFile()et spécifier le nom du handle en premier paramètre, et le nom du fichier comme second paramètre. Pour accélérer les choses, vous pouvez passer à la méthode un tableau asssociatif de paires handle - nom de fichier.
Exemple 42-141. Charger le fichier de template
|
Si vous voulez réutiliser certaines partie de votre code HTML plusieurs fois, par exemple les lignes d'un tableau, vous pouvez définir des blocs comme dans l'exemple décris ci-dessus.
Les blocs ne sont pas automatiquement détectés, ils doivent être explicitement défini via la méthode setBlock(). Cette méthode prend comme premier paramètre le handle du fichier dans le quel le bloc est situé. Le nom du handle qui défini le contenu du bloc en second paramètre. Le nouvel handle de bloc en troisième paramètre.
Exemple 42-142. Définir un bloc
|
Dans l'exemple de template (disponible via le handle auteurs), un bloc appelé ligneAuteur est défini. Le handle du bloc est maintenant ligneAuteur_ref.
C'est une partie des plus facile : Il suffit d'utiliser la méthode setVar() avec un nom de variable et sa nouvelle valeur. Un troisème paramètre optionnel booléen dit s'il faut ajouter le nouveau contenu à l'ancien. Par défaut, ce paramètre est à faux et le contenu est écrasé.
Exemple 42-143. Initialisation d'une variable
|
L'initialisation des variables influence toutes les variables du modèle, sans tenir compte du fait quelle soit situées dans un bloc ou non.
Une fois que toutes les variables d'un bloc sont initialiser, you want to "save" them to be able to re-use the block another time. La méthode parse() est ici bien pratique. First parameter is the variable/handle in which the block content shall be stored, second is the handle name of the block. Le troisième paramètre précise s'il faut ajouter le contenu du bloc a ce qui se trouve dans le handel cible. S'il n'est pas donné la valeur false sera considerée. mais c'est probablement ce que vous souhaitiez.
Exemple 42-144. Traiter un bloc
|
Dans cet exemple, le handle ligneAuteur_ref est remplis avec le contenu du bloc ligneAuteur. Si le dernier paramètre était à false au lieu de true on n'aurait au final que la dernière ligne.
Quand vous en avez fini avec les variables à initialiser et les blocs à traiter, il est temps de d'envoyer le contenu à votre client. En premier lieu, vous devez parse()r le contenu du file handle into a new handle.
Pour supprimer toutes les variables et les blocs inutilisés, vous devrez faire un appel à la méthode finish(). En fonction des valeurs passées au second paramètre du constructeur unknowns (ou passées plus tard via la méthode setUnknowns()), les variables non initilaisée seront supprimées (remove), conservées (keep) ou mise dans un commentaire (comment).
Pour afficher votre HTML, vous pouvez utilise directement la valeur ce que retourne la méthodefinish(), ou utiliser la méthode get() pour récuperer le contenu.
Exemple 42-145. Terminer un fichier et générer l'affichage
|
Exemple 42-146. Terminer un fichier et générer l'affichage
|
Précédent | Sommaire | Suivant |
HTML_Template_IT::touchBlock() | Niveau supérieur | HTML_Template_Sigma |