De mémoire, un modèle, c'est <[a-z]+[0-9]+> avec éventuellement des
filtres
[a-z]+ avec au moins 3 lettres (pour ne pas bouffer du <h1>
Pourtant, on utilise sans problème des modèles sans identifiant, du
type :
<liste_articles_branche|id_rubrique=8|dater=1|pagination=20>
<prochains|id_rubrique=49|limit=4>
En creusant un peu (un tout petit peu) inc/texte.php, on trouve ça au début de traiter_modeles() :
if (preg_match_all('/<[a-z_-]{3,}\s*[0-9|]+/iS', $texte, $matches, PREG_SET_ORDER)) {
Donc, en fait, pour avoir affaire potentiellement à un modèle, il suffit d'avoir un chiffre OU un "|" (pipe) suite au nom de modèle.
La constante _RACCOURCI_MODELE ne fait pas mieux sur ce point :
define('_RACCOURCI_MODELE',
'(<([a-z_-]{3,})'# <modele
.'\s*([0-9]*)\s*' # id
.'([|](?:<[^<>]*>|[^>])*)?' # |arguments (y compris des tags <...>)
.'>)' # fin du modele >
.'\s*(<\/a>)?' # eventuel </a>
);
Est-ce que dans la théorie, le numéro était censé être obligatoire ?
En regardant la suite du code, je ne comprends du coup pas trop comment sont écartés les cas spéciaux que j'ai traité à part dans mon code (<code>, <quote>, etc.)...
Et je me rends compte au passage qu'on a un modèle article_mots.html qu'on appelle avec <article12|mots>, ce que je n'ai pas prévu... ça se complique, je vais peut-être retirer l'identification des modèles, tout simplement !
-Nicolas
--
Nicolas "Brush" HOIZEY
Clever Age : http://www.clever-age.com/
Gastero Prod : http://www.gasteroprod.com/
Photos : http://www.flickr.com/gp/38608514@N00/M1c002
phpHeaven : http://www.phpheaven.net/