11/02/2009, 20:51:04
Origine : http://forum.cmsmadesimple.org/index.php...75.15.html
Vous désirez que, lorsqu'une news a été cliquée, la page de détail reçoive comme titre celui de la news. Et que cela se répercute sur le breadcrumbs et la balise <h1> (ou h2).
Allons-y :
1° Contenu => Articles => Gabarit du détail article
Placez ce qui suit au tout début du gabarit (par défaut 'Sample'):Cela insère le titre de la news dans la variable $pagetitle que nous utiliserons dans le gabarit de la page.
2° Disposition => Gabarits
Ouvrez votre gabarit principal, déplacez {process_pagedata}, ajoutez {capture assign='captured_content'}{content}{/capture} et modifiez la ligne contenant <title> comme suit :Ici, nous créons une condition : si la variable $pagetitle existe, affiche les variables sitename et pagetitle, sinon affiche sitename et title.
Pour que nous puissions agir sur le content (qui va être remplacé par le détail de la news), nous devons tout d'abord assigner la variable captured_content à content. C'est réalisé avec {capture assign='captured_content'}{content}{/capture}.
3° Le breadcrumds :
Trouvez la balise breadcrumbs et modifiez-la ainsi :
4° Le titre du contenu et le contenu:
5° Utilisez le paramètre detailpage=news dans l'appel au module dans le gabarit . Ex, si la news est dans la sidebar :6° Créer une page "news" (modifier le nom comme vous le souhaitez mais n'oubliez pas de modifier en conséquence les points 2, 4 et 5)
Placez dans le contenu de la page :Adaptez les paramètres selon vos besoins.
EDIT : ajout de canonical au point 2 (pas de canonical dans la page de détail des news)
EDIT 09-08-2010 : modification pour la version cmsms 1.8+ (merci à nicolas-web2)
Have fun
Vous désirez que, lorsqu'une news a été cliquée, la page de détail reçoive comme titre celui de la news. Et que cela se répercute sur le breadcrumbs et la balise <h1> (ou h2).
Allons-y :
1° Contenu => Articles => Gabarit du détail article
Placez ce qui suit au tout début du gabarit (par défaut 'Sample'):
Code :
{assign var='pagetitle' value=$entry->title}
2° Disposition => Gabarits
Ouvrez votre gabarit principal, déplacez {process_pagedata}, ajoutez {capture assign='captured_content'}{content}{/capture} et modifiez la ligne contenant <title> comme suit :
Code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
{process_pagedata}
{capture assign='captured_content'}{content}{/capture}
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr_FR">
<head>
<title>{if isset($pagetitle)}{$pagetitle} - {sitename}{else}{title} - {sitename}{/if}</title>
{* sitename est modifié dans Site Admin/Global settings. {title} est le nom de chaque page *}
{* {$page_name!='news'} 'news' est l'alias, le nom ou l'ID de la page assignée à recevoir le détail des news, modifiez selon vos besoins *}
{if isset($canonical) AND $page_name!='news'}<link rel="canonical" href="{$canonical}" />{elseif isset($content_obj) AND $page_name!='news'}<link rel="canonical" href="{$content_obj->GetURL()}" />{/if}
{/if}
{metadata}
{cms_stylesheet}
</head>
Pour que nous puissions agir sur le content (qui va être remplacé par le détail de la news), nous devons tout d'abord assigner la variable captured_content à content. C'est réalisé avec {capture assign='captured_content'}{content}{/capture}.
3° Le breadcrumds :
Trouvez la balise breadcrumbs et modifiez-la ainsi :
Code :
{* Start Breadcrumbs *}
<div class="breadcrumbs">
{if isset($pagetitle)}{breadcrumbs starttext='Vous êtes ici' root='Home' delimiter='»'} -> {$pagetitle}
{else}
{breadcrumbs starttext='Vous êtes ici' root='Home' delimiter='»'}
{/if}
Code :
{* Start Content Area *}
<div id="main">
<h2>{if isset($pagetitle)}{$pagetitle}{else}{title}{/if}</h2>
{$capturedcontent}<br />
Code :
{* Start Sidebar *}
<div id="sidebar" class="hascontent">
{news lang="fr_FR" detailpage="news"} {content block='Sidebar'}
</div>
{* End Sidebar *}
Placez dans le contenu de la page :
Code :
{news category="General" detailpage="news"}
EDIT : ajout de canonical au point 2 (pas de canonical dans la page de détail des news)
EDIT 09-08-2010 : modification pour la version cmsms 1.8+ (merci à nicolas-web2)
Have fun