| auteur : Guillaume Rossolini |
Extraire le script offline/template.php de l'archive de la dernière version de phpBB2, puis le déplacer dans un répertoire accessible par les utilisateurs du serveur (mais situé hors de la racine du serveur Web). La classe utilise une fonction globale de phpBB, il faut donc s'en défaire :
|
| auteur : Guillaume Rossolini |
La syntaxe des variables est similaire à celle préconisée par PEAR, ici les variables {TITLE}, {META_*} et {CSS_*} :
< head >
< title > {TITLE}< / title >
< meta http - equiv = " Content-Type " content = " text/html; charset={CHARSET} " / >
< meta name = " generator " content = " {META_GENERATOR} " / >
< meta name = " description " content = " {META_DESCRIPTION} " / >
< meta name = " keywords " content = " {META_KEYWORDS} " / >
< meta name = " MS.LOCALE " content = " {META_MSLOCALE} " / >
< link rel = " stylesheet " type = " text/css " href = " {CSS_MAINSTYLE} " / >
< link rel = " stylesheet " type = " text/css " media = " print " href = " {CSS_PRINTER} " / >
< link rel = " stylesheet " type = " text/css " media = " screen " href = " {CSS_RIDAN} " / >
< / head >
|
La syntaxe des blocs est fondée sur les commentaires HTML, ici le bloc "subject" et la variable {subject.TITLE} :
< div class = " bloc_cours " >
< div class = " titre_cours " > {subject.TITLE}< / div >
< / div >
< br / >
< br / >
|
|
| auteur : Guillaume Rossolini |
Le moteur de templates de phpBB2 permet de charger plusieurs gabarits dans un seul objet Template, au moyen de ce que l'on appelle des "handles" :
$template ->set_filenames (array
(
' header ' = > ' header.tpl ' ,
' body ' = > ' index.tpl ' ,
' footer ' = > ' footer.tpl '
)
);
$template ->pparse (' header ' );
$template ->pparse (' body ' );
$template ->pparse (' footer ' );
|
La méthode set_filenames() peut être appelée autant de fois que nécessaire tout au long du script. La méthode pparse() doit être appelée une fois pour chaque handle de gabarit, à la fin du script.
|
| auteur : Guillaume Rossolini | Script PHP : | $template ->assign_vars (
array
(
' CHARSET ' = > $ header [ ' charset ' ] ,
' META_GENERATOR ' = > $ meta [ ' generator ' ] ,
' META_DESCRIPTION ' = > $ meta [ ' description ' ] ,
' META_KEYWORDS ' = > $ meta [ ' keywords ' ] ,
' META_MSLOCALE ' = > $ meta [ ' mslocale ' ] ,
' CSS_MAINSTYLE ' = > $ css [ ' mainstyle ' ] ,
' CSS_PRINTER ' = > $ css [ ' printer ' ] ,
' CSS_RIDAN ' = > $ css [ ' ridan ' ] ,
' TITLE ' = > $ header [ ' title ' ]
)
);
|
Gabarit HTML : | < head >
< title > {TITLE}< / title >
< meta http - equiv = " Content-Type " content = " text/html; charset={CHARSET} " / >
< meta name = " generator " content = " {META_GENERATOR} " / >
< meta name = " description " content = " {META_DESCRIPTION} " / >
< meta name = " keywords " content = " {META_KEYWORDS} " / >
< meta name = " MS.LOCALE " content = " {META_MSLOCALE} " / >
< link rel = " stylesheet " type = " text/css " href = " {CSS_MAINSTYLE} " / >
< link rel = " stylesheet " type = " text/css " media = " print " href = " {CSS_PRINTER} " / >
< link rel = " stylesheet " type = " text/css " media = " screen " href = " {CSS_RIDAN} " / >
< / head >
|
|
| auteur : Guillaume Rossolini |
Les blocs sont des portions du gabarit que l'on peut ignorer, afficher ou bien dupliquer comme on le souhaite. Par convention, les noms des blocs sont écrits en minuscules et les blocs conditionnels (affiché/caché) sont, par convention d'écriture, préfixés de "switch_".
L'affectation d'un bloc se fait au moyen de la méthode assign_block_vars() :
Script PHP : | foreach ($ subjects as $ subject )
{
$template ->assign_block_vars
(
' subject ' ,
array (' TITLE ' = > $ subject [ ' title ' ] )
);
}
|
Gabarit HTML : |
< div class = " bloc_cours " >
< div class = " titre_cours " > {subject.TITLE}< / div >
< / div >
< br / >
< br / >
|
|
| auteur : Guillaume Rossolini | Script PHP : | $ sql = ' SELECT id, title
FROM subject ' ;
$ result = mysql_query($ sql ) or die(mysql_error());
while ($ subject = mysql_fetch_assoc($ result ))
{
$template ->assign_block_vars
(
' subject ' ,
array (' TITLE ' = > $ subject [ ' title ' ] )
);
$ sql = ' SELECT id, title
FROM category
WHERE subject_id = ' . $ subject [ ' id ' ] ;
$ categories = mysql_query($ sql ) or die(mysql_error());
while ($ category = mysql_fetch_assoc($ categories ))
{
$template ->assign_block_vars
(
' subject.category ' ,
array (' TITLE ' = > $ category [ ' title ' ] )
);
$ sql = ' SELECT id, uri, title, description
FROM tutorial
WHERE category_id = ' . $ category [ ' id ' ] ;
$ tutorials = mysql_query($ sql ) or die(mysql_error());
while ($ tutorial = mysql_fetch_assoc($ tutorials ))
{
$template ->assign_block_vars
(
' subject.category.tutorial ' ,
array
(
' URI ' = > $ tutorial [ ' uri ' ] ,
' TITLE ' = > $ tutorial [ ' title ' ] ,
' DESCRIPTION ' = > $ tutorial [ ' description ' ]
)
);
}
}
}
|
Gabarit HTML : |
< div class = " bloc_cours " >
< div class = " titre_cours " > {subject.TITLE}< / div >
< div class = " categorie_cours " > {subject.category.TITLE}< / div >
< div class = " liste_cours " >
< ul >
< li >
< a href = " {subject.category.tutorial.URI} "
> {subject.category.tutorial.TITLE}< / a > :
{subject.category.tutorial.DESCRIPTION}
< / li >
< / ul >
< / div >
< hr / >
< / div >
< br / >
< br / >
|
|
Consultez les autres F.A.Q.
Les sources présentés sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2011
Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérêts.
Cette page est déposée à la SACD.
|