Déprecier en 4.4, et supprimer en 5.0 l’inclusion de fichiers .php avec `#INCLURE` ou `<INCLURE>`
Il est possible actuellement d’écrire
<INCLURE(toto.php3) />
<INCLURE(toto.php) />
Et aussi, bien qu’inconnu
<INCLURE{fond=toto.php} />
L’écriture .php3 cherchait un fichier .php directement. On a supprimé cela déjà en SPIP 5.0
Également il est possible d’écrire
#INCLURE{demo.css}
#INCLURE{toto.php}
La proposition est de supprimer toutes ces écritures <INCLURE>
<INCLURE(toto.php3) />
<INCLURE(toto.php) />
<INCLURE{fond=toto.php} />
Cela se passe dans
calculer_inclure()
- qui appelle
sandbox_composer_inclure_php()
(qui peut supprimer en 5.0 et être déprécié en 4.4) - dans
argumenter_inclure()
, on peut lire
// Les 2 ecritures INCLURE{A1,A2,A3...} et INCLURE(A1){A2}{A3}... sont admises // Preferer la premiere. // Les Ai sont de la forme Vi=Ei ou bien Vi qui veut alors dire Vi=Vi // Le resultat est un tableau indexe par les Vi // Toutefois, si le premier argument n'est pas de la forme Vi=Ei // il est conventionnellement la valeur de l'index 1. // pour la balise #INCLURE // mais pas pour dont le fond est defini explicitement.
- dans phraser_html.php, en 5.0, le
define('BALISE_INCLURE', '/<INCLU[DR]E[[:space:]]*(\(([^)]*)\))?/S');
est à modifier pour ne pas gérer les parenthèses, ainsi que adapter phraser_inclure en conséquence.
On note que ça peut aussi chercher des fins de ces balises !
if (
(strpos($texte, '</INCLUDE>', $pos_fin) === $pos_fin)
|| (strpos($texte, '</INCLURE>', $pos_fin) === $pos_fin)
) {
$pos_fin += 10;
}