Bonjour,
Voila, il me manquais une fonctionnalité quand j'ai voulu créer un squelette
pour spip :
la possiblilté d'inclure un squelette dans un autre. Pour par exemple créer
un menu avec mes rubriques qui soit toujours le meme dans les différents
squelettes (article, sommaire, etc.)
Donc voici une fonction qui fait ca, de façon récursive. Elle ne devrais pas
ralentire le traitement quand elle n'est pas utilisée...
fichier : inc-calcul-squel.php3
function parser_include($texte) {
$result = '';
while ($texte) {
if (($p=strpos($texte, '<INCLUDE')) === false) {
$result.=$texte;
$texte = "";
} else {
$result .= substr($texte, 0, $p);
$f = strpos($texte, '>', $p);
$incl = substr($texte, $p, $f - $p + 1);
if ($r = ereg('<INCLUDE[[:space:]]*([^>]*)>', $incl, $regs)) {
$result .= parser_include(implode("", file($regs[1])));
}
$texte = substr($texte, $f + 1);
}
}
return $result;
}
Pour que ca fonctionne il faut l'appeler avant tout traitement sur le
squelette donc je l'ai rajoutée au début de la fonction :
function parser_texte($texte, $id_boucle) {
global $boucles;
$i = 0;
$texte = parser_include($texte);
...
Pour l'utilisation : dans un squelette, je met :
<INCLUDE monfichier.html>
tout simplement