21/06/2011, 17:32:12
Article involontairement proche de celui de JLC : http://www.cmsmadesimple.fr/forum/viewto...d=1457&p=1
Objectif.
CMSMS est performant pour le référencement des pages, mais en ce qui concerne les articles, étant donné qu'ils sont tous affichés sur la même page (paramètre detailpage), ils ont tous la même balise title et les même balises meta.
Nous allons voir ici comment personnaliser la balise title et meta description pour les news.
Comment ça marche.
Nous allons ajouter un champ supplémentaire à la news et y saisir la description.
On peut soit utiliser le champ extra déjà présent ou bien en ajouter un nouveau avec "Définition des champs".
Nous allons utiliser le titre de la news comme <title> de page.
Si vous ne voulez pas que la balise "title" reprenne le titre de votre news, opérez comme pour la description: ajoutez un champ.
Dans notre exemple, nous nous contenterons de reprendre le titre saisi dans la news pour le reporter dans la balise <title> et utiliser le champ 'extra'.
Comment faut-il faire :
Nous devrons modifier le gabarit du détail d'article et le gabarit de la page.
Dans le gabarit du détail d'article, nous allons ajouter au tout début :
Il faudra supprimer toute référence éventuelle à $entry->extra plus loin dans le gabarit pour éviter un affichage intempestif
Dans le gabarit de page, nous allons tester la présence de ces variables et agir en conséquence.
Pour la balise <title> :
Pour la balise meta description :
A condition bien sûr de n'avoir pas mis de balise description dans les options de la page qui réceptionne les news.
Sinon, cela fera doublon et aura un effet négatif sur le SEO.
Voilà, vous pouvez appliquer cette technique pour les mots-clé
Astuce : si vous utilisez le champ extra, il est intéressant de pouvoir modifier son libellé. "extra" n'indique en rien la destination du champ.
Pour ce faire, il faut créer à la racine le dossier 'module_custom' puis à l'intérieur 'News' dans lequel on créer un dossier 'lang'.
Nous obtenons donc : module_custom/News/lang
Cela doit vous rappeler quelque chose?
Le dossier lang contient les fichiers de traduction.
Ensuite, créez autant de fichiers de traduction que nécessaire, chaque variable traduite viendra remplacer celle du module d'origine.
Nous avons créer un dossier News du même nom que le module installé, donc, le système va le détecter et prendre en priorité les variables contenue dans les fichiers de traduction.
Dans l'exemple, nous allons créer le fichier fr_FR.php et y copier le contenu de son équivalent issu du module News.
On obtient alors:
La variable qui nous occupe dans cet exemple est $lang['extra'] = 'extra ';
Comme c'est la seule, nous supprimerons les autres, c'est préférable en cas de mise à jour, pour modifier celle-ci:
$lang['extra'] = 'Meta description ';
Et voilà, on sauvegarde le fichier fr_FR.php et le libellé dans l'admin de création des news est plus clair.
Objectif.
CMSMS est performant pour le référencement des pages, mais en ce qui concerne les articles, étant donné qu'ils sont tous affichés sur la même page (paramètre detailpage), ils ont tous la même balise title et les même balises meta.
Nous allons voir ici comment personnaliser la balise title et meta description pour les news.
Comment ça marche.
Nous allons ajouter un champ supplémentaire à la news et y saisir la description.
On peut soit utiliser le champ extra déjà présent ou bien en ajouter un nouveau avec "Définition des champs".
Nous allons utiliser le titre de la news comme <title> de page.
Si vous ne voulez pas que la balise "title" reprenne le titre de votre news, opérez comme pour la description: ajoutez un champ.
Dans notre exemple, nous nous contenterons de reprendre le titre saisi dans la news pour le reporter dans la balise <title> et utiliser le champ 'extra'.
Comment faut-il faire :
Nous devrons modifier le gabarit du détail d'article et le gabarit de la page.
Dans le gabarit du détail d'article, nous allons ajouter au tout début :
Code :
{assign var='newspagetitle' value=$entry->title}
{assign var='newsmetadesc' value=$entry->extra}
Il faudra supprimer toute référence éventuelle à $entry->extra plus loin dans le gabarit pour éviter un affichage intempestif
Dans le gabarit de page, nous allons tester la présence de ces variables et agir en conséquence.
Pour la balise <title> :
Code :
<title>{if !empty($newspagetitle)}{$newspagetitle|strip_tags}{else}{title}{/if} - {sitename}</title>
Pour la balise meta description :
Code :
{if !empty($newsmetadesc)}<meta name="description" content="{newsmetadesc|strip_tags}" />{/if}
A condition bien sûr de n'avoir pas mis de balise description dans les options de la page qui réceptionne les news.
Sinon, cela fera doublon et aura un effet négatif sur le SEO.
Voilà, vous pouvez appliquer cette technique pour les mots-clé
Astuce : si vous utilisez le champ extra, il est intéressant de pouvoir modifier son libellé. "extra" n'indique en rien la destination du champ.
Pour ce faire, il faut créer à la racine le dossier 'module_custom' puis à l'intérieur 'News' dans lequel on créer un dossier 'lang'.
Nous obtenons donc : module_custom/News/lang
Cela doit vous rappeler quelque chose?
Le dossier lang contient les fichiers de traduction.
Ensuite, créez autant de fichiers de traduction que nécessaire, chaque variable traduite viendra remplacer celle du module d'origine.
Nous avons créer un dossier News du même nom que le module installé, donc, le système va le détecter et prendre en priorité les variables contenue dans les fichiers de traduction.
Dans l'exemple, nous allons créer le fichier fr_FR.php et y copier le contenu de son équivalent issu du module News.
On obtient alors:
Code :
<?php
$lang['info_detail_returnid'] = 'Cette préférence est utilisée pour déterminée si une page (et donc un gabarit) sert pour l'affichage des pages de détails. Les URLs individualisées ne fonctionneront pas si ce paramètre n'est pas défini pour une page valide. En outre, si cette préférence est activée, et aucun paramètre page de détail n'est fourni sur la balise {news}, alors cette valeur sera utilisée pour des liens pages de détails';
$lang['title_detail_returnid'] = 'Page par défaut à utiliser pour des vues de détail';
$lang['title_submission_settings'] = 'Paramètres de soumission des articles (News)';
$lang['title_fesubmit_settings'] = 'Paramètres de soumission via le Frontend';
$lang['title_notification_settings'] = 'Paramètres des notifications';
$lang['title_detail_settings'] = 'Paramétres d'affichage des détails';
$lang['error_invalidurl'] = 'URL incorrecte <em>(peut-être déjà utilisée, ou il y a des caractères non valides)</em>';
$lang['url'] = 'URL ';
$lang['expired_searchable'] = 'Les articles expirés peuvent apparaître dans les résultats de recherche ';
$lang['helpshowall'] = 'Si positionné à 1 : affiche tous les articles, quelle que soit la date de fin';
$lang['error_invaliddates'] = 'Une ou plusieurs dates entrées sont invalides';
$lang['notify_n_draft_items_sub'] = '%d article(s)';
$lang['notify_n_draft_items'] = 'Vous avez %s article(s) non publié(s)';
$lang['unlimited'] = 'Sans limite';
$lang['none'] = 'Aucun';
etc...
?>
Comme c'est la seule, nous supprimerons les autres, c'est préférable en cas de mise à jour, pour modifier celle-ci:
$lang['extra'] = 'Meta description ';
Et voilà, on sauvegarde le fichier fr_FR.php et le libellé dans l'admin de création des news est plus clair.
{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.
C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)