Vous n'êtes pas identifié(e).

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de CMS Made Simple. Nous ne faisons de support que sur LA dernière version de CMS Made Simple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Dans votre CMS utiliser le menu Administration du site/Informations du système en haut Vue au format texte. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#1 13/02/2013 18:17:22

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Lien canonical et page détail modules

Bonjour,

Astuce tirée de la lecture de ce post : http://forum.cmsmadesimple.org/viewtopi … 13&t=63929

J'utilise le module CGCalendar.
Dans une page "Agenda", j'ai donc placé {cms_module module="CGCalendar" display="upcominglist" limit="7"}
Dans cette page "agenda" je vois la liste des événements prochains.
Dans les préférences du modules j'ai choisi la page Agenda pour afficher le détail (Page par défaut qui contient le calendrier. Cette page doit contenir la balise smarty qui appelle le calendrier. Nécessaire si vous utilisez les "pretty URLs".:).

Le détail d'un événement s'affiche donc dans cette page avec une url du type :
www.duventdanslescordes.be/agenda/96/24-HLaiMe-A-Travers-Chants
Magnifique, ça marche, sauf que le code source affiche
<link rel="canonical" href="www.duventdanslescordes.be/agenda" />
au lieu de
<link rel="canonical" href="www.duventdanslescordes.be/agenda/96/24-HLaiMe-A-Travers-Chants" />

Solution : ouvrez le gabarit de détail de l'événement du module et placez ce code au début :

[== Indéfini ==]
{capture assign='canonicalModule'}{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}{/capture}

Et dans votre gabarit principal, remplacez

[== Indéfini ==]
{if isset($canonical)}<link rel="canonical" href="{$canonical}" />
{elseif isset($content_obj)}<link rel="canonical" href="{$content_obj->GetURL()}" />{/if}

par

[== Indéfini ==]
{if isset($canonicalModule)}<link rel="canonical" href="{$canonicalModule}" />
{else}{if isset($canonical)}<link rel="canonical" href="{$canonical}" />
{elseif isset($content_obj)}<link rel="canonical" href="{$content_obj->GetURL()}" />{/if}{/if}

News incorpore déjà son propre système et vous n'avez donc pas besoin de faire cette modif.
Il semble que cela devrait fonctionner pour CGBloc et autres modules utilisant un gabarit de détail.

Et voilà, la prochaine fois que vous appelerez un blog ou un événement spécifique, le lien canonical sera celui de l'événement cool

Have fun smile

Dernière modification par Jean le Chauve (13/02/2013 18:35:48)

Hors ligne

 

Pied de page des forums

  Flux Rss Twitter FaceBook