El Conjugador

Verbe à conjuguer :


El Conjugador

Joomla Tips :: Balisage h1 facile sous Joomla 1.5

Imprimer
Envoyer
Écrit par Fly06, Samedi, 16 Janvier 2010 Mis à jour ( Dimanche, 13 Juin 2010 10:00 )
Télécharger Fly06Create H1 Plugin

Les templates de composant sous Joomla 1.5 n'utilisent pas les balises sémantiques H<n> pourtant recommendées par le W3C et les moteurs de recherche.

Par exemple, les titres des articles sous J1.5 sont codés de cette façon :

<td class="contentheading" width="100%">
Ceci est un titre mais Google ne le sait pas :-(
</td>

alors qu'on préfèrerait un codage du type :

<td class="contentheading" width="100%"><h1>
Ceci est un titre et Google en tient compte !
</h1></td>

Plusieurs solutions sont envisageables pour résoudre ce problème.

  • La première consiste à utiliser l'extension sh404SEF qui via son module sh404SEFCustomtags permet de réaliser ce genre de changement. Cependant, cette solution n'est pas optimale en terme de coût (sh404SEF est maintenant payant) mais aussi en terme d'espace disque et de temps de calcul...
  • La seconde consiste à "overrider" les templates des différents composants et à intégrer le balisage h1 dans les overrides. La encore, cette solution n'est possible que sur les composants standards MVC ("overridable" ;-) et devient vite pénible sur un gros site utilisant beaucoup de composants...

Une solution plus simple consiste à utiliser un petit plugin de type 'system'  qui va créer le balisage h1 automatiquement à chaque requête http.

Ce plugin est très simple à écrire puisqu'il suffit lors de l'évènement 'onAfterDispatch' de récupérer la partie 'component' du buffer, de faire la recherche et le changement en utilisant les fonctionnalités regex de php puis de sauvegarder la partie 'component' modifiée dans le buffer avant que Joomla ne créé la page html à partir du template (rendering).

Le plugin est opérationnel sur ce site.

Si vous avez des questions merci de me contacter directement ou d'utiliser cette file du forum Joomla Francophone.

Version 2 (30/01/10) : Afin que le plugin fonctionne aussi sur les titres cliquables, on a remplacé dans les regex les blocs ([^<]*) par (.*) et ajouté l'option s pour que le caractère spécial . soit étendue aux sauts de lignes.

Version 3 (07/04/10) : Cette version intègre plusieurs changements :

  • Extension des modifications v2 au cas des balises de type contentheading
  • Regex fonctionnelles que les délimiteurs de chaînes soient des guillemets simples ou doubles
  • Regex fonctionnelles lorsque l'attribut 'class' n'est pas le premier attribut des balises div ou td
  • Optimisation des remplacements pour les balises h1 (utilisation de l'argument 'limit' de la fonction preg_replace)
  • Traitement des balises de titre Joomla! en cohérence avec la logique Joomla! (h1/h2)

Sur ce dernier point, il est bon de rappeler que dans Joomla :

  • Le titre des pages de contenus non catégorisés est en componentheading (h1)
  • Le titre des pages de contenus catégorisés de type 'categorie' est en componentheading (h1) et les sous-titres (si présents) en 'contentheading' (h2)
  • Le titre des pages de contenus catégorisés de type 'item' est en 'contentheading' (h1)

Last but not least, le plugin modifie les balises des titres (et sous-titres), pensez à modifier les styles correspondants dans la feuille de styles du template actif !

Fly06 Poll Module

(3071 votes)

Quel est votre principal critère de décision dans vos choix d'extensions ?

61.8%
38.2%
Loading...