Maxime Millet

Inclure des fichiers dans les templates de blogotext

14/08/2013 | Aucun commentaire |

La plupart des moteurs de template possèdent un telle fonction, celle de pouvoir inclure d'autres fichiers dans le template ou d’exécuter le code php qui se trouve dedans. Cela permet d'avoir un seul fichier pour l'header, le menu et le footer pour l'ensemble du site, je n'ai rien trouvé de telle dans blogotext (peut être dans une future version ? :-) ) donc j'ai bricolé une solution.

Pour cela, il faut avoir le fichier them.php qui se trouve dans le répertoire inc.

Après la ligne 82 (c'est à dire à la fin du tableau de déclaration des balises) il faut ajouter :

'include' => '{include}',

Ensuite il faut rajouter après le ligne 96 (dans la fonction conversions_theme) le code permettant de remplacer chaque occurrence de la balise par le contenu du fichier.

if(preg_match_all("/{include}(.*){\/include}/i",$texte, $includes)>0)
{
foreach($includes[1] as $file)
{
$balise="{include}$file{/include}";
ob_start();
if(!@include($file)) echo str_replace($balise,"Le fichier <i>$file</i> est introuvable", $texte);
$content=ob_get_clean();
$texte=str_replace($balise,$content, $texte);
}
}

Et pour l'utiliser c'est très simple: {include}/home/foo/public_html/header.php{/include}
Notez qu'il faut faire attention à l'include_path ;)

Et ça fonctionne aussi dans les articles pour inclure d'autres pages mais attention j'ai pas essayé ce qu'il se passe si on poste un commentaire contenant la balise !

Commentaires





Remarque : Votre commentaire sera visible après validation par le webmaster.