Je poursuis ma migration vers Spip 1.9.2
J’ai donc transféré mon ancien fichier mes_fonctions.php3 dans le dossier SQUELETTES et renommé mes_fonctions.php. Je n’y ai gardé que les fonctions vraiment nécessaires dans un premier temps, mais elles ne sont pas reconnues.
Le fichier contient ceci:
<?PHP function br($texte) { $texte=preg_replace(": _$n:i","
", $texte); // trouver " _" en fin de ligne return $texte; } ?> <?PHP function couper_article($texte, $long, $context='') { return couper_texte_stna($texte, $long, $context, 'article'); } function couper_breve($texte, $long, $context='') { return couper_texte_stna($texte, $long, $context, 'breve'); } function couper_texte_stna($texte, $long, $context = '', $type=''){ $texte_coupe = false; if(preg_match('/(\d+):(\d+)/', $long, $matches)){ $long = $matches[1]; $max_lines = $matches[2]; } // evite de faire travailler les expression régulieres sur un trop grand texte. // (petite optimisation) ; tient compte des racoursis, des sauts de lignes ... // d'ou la marge (*2) // if(strlen($texte) > $long * 2){ $texte = substr($texte, 0, $long * 2); $texte_coupe = true; } $texte = ereg_replace("\[([^\[]*)->([^]]*)\]","\\1", $texte); // supprimer les notes $texte = ereg_replace("\[\[([^]]|\][^]])*\]\]", "", $texte); // supprimer les codes typos $texte = ereg_replace("[{}]", "", $texte); // supprimer les sauts de lignes multiples $texte = preg_replace("/\n(\n\s*)+\n/m", "\n\n", $texte); // supprimer les sauts de lignes multiples en fin de texte // $texte = preg_replace("/(\n\s*)+$/m", "\n", $texte); // marche pas ;-((( // coupe si le texte depasse $max_lines. if(isset($max_lines)) { // cree un tableau avec chaque ligne. $lines = split("\n", $texte); // garde uniquement les $max_lines premieres lignes. if(count($lines) > $max_lines) { $texte = ''; for($i = 0 ; $i < $max_lines ; $i++) $texte .= $lines[$i] . "\n"; $texte_coupe = true; } } if(strlen($texte) > $long) { $texte_coupe = true; // coupe le texte a la longueur voulue. $texte = substr($texte, 0, $long); } if($texte_coupe) { // evite de couper en milieu de mot. $texte = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*$", "\\1", $texte); } if ($texte_coupe) { if($context != '') { switch($type) { case 'article': $url = 'article.php3?id_article='; $help = 'voir tout l\'article'; $id = $context['id_article']; break; case 'rubrique': $url = 'breve.php3?id_breve='; $help = 'voir toute la brève'; $id = $context['id_breve']; break; } $url = sprintf('[Suite...]', $url, $id, $help); $texte .= " $url"; } else $texte .= ' (...)'; } return $texte; } ?>
Et j’obtiens comme message d’erreur
Erreur(s) dans le squelette
- Erreur : filtre « couper_article » non défini,
Pourtant, il est bien défini, non?
Quelqu’un voit-il une incongruité?
Merci d’avance.
Patrick