> http://www.glazman.org/weblog/dotclear/?2004/06/24/406#c2393
> http://www.spip.net/threadspip2015-6850.html#mess6859
M'ennuie. Encore quelqu'un qui n'est pas capable de comprendre un autre
langage que le XML, et qui se ferme aux utilisateurs à cause d'un
intégrisme stupide. Pénible aveuglement.
intégrisme ou manque d'imagination.
Une chose est sure, celui qui critique les balises des squelettes de Spip en
ne comprennant pas pourquoi spip ne fait pas des "vrais tags" n'a :
1 - pas bien compris le systemes de "compilation"
2 - pas reflechi à comment faire la meme chose avec des tags "standards"
Pour faire un petit paralelle avec JSTL (Java Standard Tag Library je crois,
rien que des mots qui fachent ici ...)
rien que pour faire l'equivalent de :
<BOUCLE_article(id_article)>
[voici le texte : (#TEXTE|monfiltre).]
</BOUCLE_article(id_article)>
il n'y a aucun texte.
<//BOUCLE_article>
J'ai une page pleine de jolis tags (oui mais des tags standards), besoin de
faire appel à 3 librairies differentes(core, sql et html) et il faut etre
BAC + 5 option indentation pour réussir à relire le code
Pourquoi ?
Tout simplement parcqu'un tag a un debut et une fin et peut soit inclure
soit etre inclu par un autre tag et qu'il ne peut pas y avoir de dépendance
entre deux tags successifs.
Par exemple, il y a bien un tag "IF", mais pas de tag "ELSE", pour faire
l'equivalent, il faut :
<c:if test=${mon test}">ce que j'ecris si test vrai</c:if>
<c:if test=${!mon test}">ce que j'ecris si test faux</c:if>
Evidement, on a l'equivalent du switch, mais on part alors dans des tags
imbriqués, un peu lourd pour faire juste un if / else :
<c:choose>
<c:when test='${mon test}'>ce que j'ecris si test vrai</c:when>
<c:otherwise>ce que j'ecris si test faux</c:otherwise>
</c:choose>
Je laisse ceux qui ont un peu d'imagination reflechir au comment on recode
les boucles ...
Et je n'ai pas encore parlé de la simplicité pour appeler une methode avec
parametre, genre filtre, dans un tag ... en general, il attend plutot un
accesseur*, ce qui voudrait dire que le filtre doit etre implementé dans
l'objet lui meme et donc heriter du bon objet, avec les problemes d'heritage
multiple ou d'implementation multiple que ca pause, ou qu'il faut les
implementer dans les tags eux meme, ce qui est un peu limite en conception
(quoi que, ca pourrait se tenir, c'est de la présentation).
*accesseur : une methode sans parametre genre getToto() avec l'avantage
supreme de pouvoir ecrire <c:out name="xxx" value="${monobjet.toto}"/>,
perso, je trouve la syntaxe #TOTO plus sympa ....
Non, vraiment, on peut vouloir beaucoup de choses pour Spip, mais faire
passer les balises spip au format tag reglementaire, c'est pas une bonne
idée !
@++