Hello,
Dans ecrire/public/normaliser j'ai enrichi les spip_log
qui déclaraient un très sobre "filtre de logo obsolete"
afin qu'ils précisent les modernisations à appliquer.
ça n'indique pas le nom du fichier squelette et la ligne (ce serait bien !)
mais ça indique maintenant par exemple :
"filtre de logo obsolete - utilisez #LOGO{left} à la place de |left"
ou "filtre de logo obsolete : utilisez #LOGO{#URL_ARTICLE} à la place de |#URL_ARTICLE"
ce qui facilite bien la modernisation des squelettes.
Voici le nouveau code issu d'une version 2.1.2 : seules les lignes avec spip_log sont modifiées.
Si c'est valide, cela pourrait être reporté ?
JLuc
function phraser_vieux_logos($p)
{
if ($p->param[0][0])
$args = array('');
else {
$args = array_shift($p->param);
}
foreach($p->param as $couple) {
$nom = trim($couple[0]);
if ($nom == '') {array_shift($p->param); break;}
$r = phraser_logo_faux_filtres($nom);
if ($r === 0) {
$c = new Texte;
$c->texte = $nom;
$args[] = array($c);
array_shift($p->param);
spip_log("filtre de logo obsolete - utilisez #LOGO{$nom} à la place de |$nom", 'vieilles_defs');
} elseif ($r === 2) {
$p->etoile = '**';
array_shift($p->param);
spip_log("filtre de logo obsolete - utilisez ** à la place de |fichier", 'vieilles_defs');
} elseif ($r === 1) {
array_shift($p->param);
$p->etoile = '*';
spip_log("filtre de logo obsolete - utilisez * à la place de |lien", 'vieilles_defs');
} elseif (preg_match("/^".NOM_DE_CHAMP.'(.*)$/sS', $nom, $m)) {
$champ = new Champ();
$champ->nom_boucle = $m[2];
$champ->nom_champ = $m[3];
$champ->etoile = $m[5];
$champ = array($champ);
if ($m[6]) {
$r = new Texte;
$r->texte = $m[6];
$champ[]= $r;
}
$args[]= $champ;
array_shift($p->param);
spip_log('filtre de logo obsolete - utilisez #LOGO{$nom} à la place de |'.$nom, 'vieilles_defs');
} // le cas else est la seule incompatibilite
}
array_unshift($p->param, $args);
}