Titre du site repris dans balise TITLE sous Prestashop

WRInaute occasionnel
Salut à tous,

J'ai un problème qui semble récurrent sur Prestashop : la balise TITLE est prolongée par défaut par le nom du site, ce qui donne des balises à rallonge et surtout flingue mon référencement.
J'ai essayé pas mal de solutions (je suis sous Prestashop version 1.4.6.2) notamment celle-ci qui parait convenir à beaucoup mais qui ne fonctionne pas pour moi.

Des idées ou des pistes à explorer ?

merci d'avance
 
WRInaute passionné
J'avais le même problème, il suffit de trouver la fonction qui génère le title des pages et de supprimer le genre de {$shop_name} à la fin. Je ne sais plus dans quel fichier c'est, header.tpl je crois mais je me souviens que j'avais réussi à le supprimer
 
WRInaute occasionnel
J'ai trouvé ce fichier tpl, est-ce celui-ci ?

Qu'est-ce que je dois enlever ?


{*
* 2007-2011 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 9140 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{$lang_iso}">
<head>
<title>{$meta_title|escape:'htmlall':'UTF-8'}</title>
{if isset($meta_description) AND $meta_description}
<meta name="description" content="{$meta_description|escape:html:'UTF-8'}" />
{/if}
{if isset($meta_keywords) AND $meta_keywords}
<meta name="keywords" content="{$meta_keywords|escape:html:'UTF-8'}" />
{/if}
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<meta name="generator" content="PrestaShop" />
<meta name="robots" content="{if isset($nobots)}no{/if}index,follow" />
<link rel="icon" type="image/vnd.microsoft.icon" href="{$img_ps_dir}favicon.ico?{$img_update_time}" />
<link rel="shortcut icon" type="image/x-icon" href="{$img_ps_dir}favicon.ico?{$img_update_time}" />
<script type="text/javascript">
var baseDir = '{$content_dir}';
var static_token = '{$static_token}';
var token = '{$token}';
var priceDisplayPrecision = {$priceDisplayPrecision*$currency->decimals};
var priceDisplayMethod = {$priceDisplay};
var roundMode = {$roundMode};
</script>
{if isset($css_files)}
{foreach from=$css_files key=css_uri item=media}
<link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" />
{/foreach}
{/if}
{if isset($js_files)}
{foreach from=$js_files item=js_uri}
<script type="text/javascript" src="{$js_uri}"></script>
{/foreach}
{/if}
{$HOOK_HEADER}
</head>

<body {if $page_name}id="{$page_name|escape:'htmlall':'UTF-8'}"{/if}>
{if !$content_only}
 
WRInaute passionné
Ha voilà, donc ça se situe là: <title>{$meta_title|escape:'htmlall':'UTF-8'}</title>

Cette variable $meta_title est définie dans le fichier classes/Tools.php

Pour supprimer le nom de ton site tu supprimes Configuration::get('PS_SHOP_NAME') en fin de ligne.

Il y en a plusieurs, pour chaque section du site : page fabricants, produits, catégories...
 
WRInaute occasionnel
J'ai isolé la zone où se trouve cette instruction mais la suppression de Configuration::get('PS_SHOP_NAME'); provoque un message d'erreur quand il est un prod.
Je ne suis pas développeur et n'y connais pas grand-chose en PHP. Je supprime la ligne mais je garde le point-virgule après ?
et le tiret qui est avant ?
je pense que je laisse ou que j'oublie de retirer un ou plusieurs signes ou que je met un espace là où il n'en faut pas, en tous cas çà marche pas.
Sans trop te demander, peux-tu me réécrire le code ci-dessous sans l'instruction Configuration::get('PS_SHOP_NAME') ?

/* Metas-tags */
$metas = Meta::getMetaByPage($page_name, $id_lang);
$ret['meta_title'] = (isset($metas['title']) AND $metas['title']) ? $metas['title'].' - '.Configuration::get('PS_SHOP_NAME') : Configuration::get('PS_SHOP_NAME');
$ret['meta_description'] = (isset($metas['description']) AND $metas['description']) ? $metas['description'] : '';
$ret['meta_keywords'] = (isset($metas['keywords']) AND $metas['keywords']) ? $metas['keywords'] : '';
return $ret;
}


public static function completeMetaTags($metaTags, $defaultValue)
{
global $cookie;

if (empty($metaTags['meta_title']))
$metaTags['meta_title'] = $defaultValue.' - '.Configuration::get('PS_SHOP_NAME');
 
WRInaute discret
Je te conseilles pour tes question Prestashop d'aller directement sur le forum Prestashop.
J'avais résolu ce problème en 5 minutes car la réponse était sur le forum , et bien d'autres encore. 8)
 
WRInaute accro
Pas besoin d'aller sur le forum Presta pour voir qu'il faut juste supprimer la constante PS_SHOP_NAME dans le code.

L'autre solution rapide est de vider sur le BO le nom du shop name ( config generale ), et ensuite aller configurer la balise title pour la page index ( toujours a partir du BO dans 'meta tags' ).
 
WRInaute occasionnel
Bonjour,

J'ai pu resserrer la problématique.
La balise <title> ne reprend le nom du site que sur les pages "catégorie" mais ne la reprend pas sur les pages "produit" de Prestashop.
Cela change-t-il quelque chose à la solution donnée par lambi521 ?
Pour infos, le message que j'ai laissé sur le forum de Prestashop n'a été suivi d'aucune réponse.
 
Discussions similaires
Haut