SPIP enlever des attributs
19 sept. 2009
Par Matias Grenn - Spip - Lien permanent
Pour faire suite à un récent message sur un groupe de mail autour de SPIP, voici aussi un truc simple pour virer des attributs genre "style" qui ne sont pas utiles et surtout pas du tout W3C !
Récemment un message intéressant (que j'ai retransmis sur le groupe de veille-web pour ceux qui suivent) sur une liste autour de SPIP (extrait) :
L'article consacré au filtre "| ?{sioui, sinon}"
http://www.spip.net/fr_article4186.html
En parcourant les forums à la recherche d'opérations conditionnelles complexes, on tombe régulièrement sur des exemples construits de cette manière:
[(#OBJET|?{' ',''}) code exécuté si l'objet existe ]
[(#OBJET|?{'',' '}) code exécuté si l'objet n'existe pas ]Cette méthode est incontestablement fort utile pour vérifier l'existence d'un #LOGO d'article, ou de toutes sortes d'autres éléments.
Or la logique de ce |?{' ',''} est loin d'être intuitive, ce serait donc un bon enrichissement pour l'article cité que d'en expliquer le fonctionnement et de donner un exemple d'utilisation.
Cela m'a rappelé un petit truc très simple que m'avait refilé un développeur qui connait bien SPIP lorsque je voulais virer tous les "style" implantés automatiquement par SPIP dans les images par exemple :
|inserer_attribut{style,'',true,true}
Il suffit de rajouter ça pour voir disparaître l'attribut "style", fort pratique si on veut générer un code le plus respectueux possible... Et il s'agit bien de deux ' et non d'une ".




Commentaires
Que veux tu dire par "attribut style" ? Parles tu de quelque chose comme <code><div style="votre_css_ici"></code> ???
Curieux, en validation XHTML 1 strict, je le passe dans mon code sans aucun soucis vis à vis du validateur. Peux tu expliquer (même brièvement) en quoi ca ne serait pas très "W3C" ???
Merci ;-)
Loiseau2nuitNormalement il est fortement déconseillé de mettre des attributs styles dans les balises. Les styles CSS sont censés être soit dans un fichier externe (par exemple styles.css pour faire original) ou placer entre des balises <style type="text/css">...</style> entre les balises <head>. Évidemment lorsque l'on travaille avec du javascript et que l'on veut changer des élément, javascript va insérer des éléments styles dans les balises pour par exemple faire disparaître des éléments avec un display:none, mais la manipulation du DOM n'est pas visible, et donc le code est au mieux.
ErwanAprès il ne faut pas non plus être intégriste, un attribut style dans une balise ce n'est pas la fin du monde. Par contre, lorsque l'on reprend un projet et qu'on reprend une feuille de style pour se rendre compte que ça ne fait rien car tout a été modifié dans les pages directement, cela peut vite devenir énervant. Pour les attributs dans SPIP, ils ne gènent pas mais ne servent à rien, donc autant les enlever.