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;
		}