Jump to content

[Résolu] SEO - Meta Title pour Manufacturer


Recommended Posts

Bonjour, je souhaiterais savoir si quelqu'un saurait ou se trouve la génération de la balise meta_title pour les pages manufacturer ?

 

Je m'explique, lorsque je tente d'optimiser ma balise meta, prestashop me rajoute constamment à la fin le nom de la marque suivi du nom de la boutique.

 

Exemple :

 

Malabar - Acheter pleins de malabars sur mon site.

 

Me donne :

 

Malabar - Acheter pleins de malabar sur mon siteMalabar - Le comptoir du Bonbon

 

Version de Prestashop : 1.4.8.2

 

Je précise que j'ai mis ce texte a titre d'exemple et que je suis tout a fait au courant que ce n'est pas optimisé du tout.

 

Je vous remercie d'avance pour votre aide.

[RESOLU]

Edited by Avrel (see edit history)
Link to comment
Share on other sites

Bonjour,

 

Vous indiquez Résolu en fin de message, déjà la réglevest de l'afficher dans le titre du topic et ensuite merci d'expliquer votre solution pour les autre membres de la communauté concernés par le même soucis.

Link to comment
Share on other sites

  • 5 weeks later...

Bonjour,

Pour le résolu, j'ai pas réussi a changé le titre du topic donc c'est pour ca que je l'ai mis en bas.

Pour la solution il suffit d'overrider la methode getMetaTags de la classe Tools en créant un fichier Tools.php dans le dossier override/classes.

<?php
class Tools extends ToolsCore
{
public static function getMetaTags($id_lang, $page_name, $title = '')
{
 global $maintenance;
 if (!(isset($maintenance) AND (!in_array(self::getRemoteAddr(), explode(',', Configuration::get('PS_MAINTENANCE_IP'))))))
 {
   /* Products specifics meta tags */
  if ($id_product = self::getValue('id_product'))
  {
   $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
   SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`, `description_short`
   FROM `'._DB_PREFIX_.'product` p
   LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (pl.`id_product` = p.`id_product`)
   WHERE pl.id_lang = '.(int)($id_lang).' AND pl.id_product = '.(int)($id_product).' AND p.active = 1');
   if ($row)
   {
 if (empty($row['meta_description']))
  $row['meta_description'] = strip_tags($row['description_short']);
 return self::completeMetaTags($row, $row['name']);
   }
  }
  /* Categories specifics meta tags */
  elseif ($id_category = self::getValue('id_category'))
  {
   if (!empty($title))
 $title = ' - '.$title;
   $page_number = (int)self::getValue('p');
   $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
   SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`, `description`
   FROM `'._DB_PREFIX_.'category_lang`
   WHERE id_lang = '.(int)($id_lang).' AND id_category = '.(int)($id_category));
   if ($row)
   {
 if (empty($row['meta_description']))
  $row['meta_description'] = strip_tags($row['description']);
 // Paginate title
 if (!empty($row['meta_title']))
  $row['meta_title'] = $title.$row['meta_title'].(!empty($page_number) ? ' ('.$page_number.')' : '').' - '.Configuration::get('PS_SHOP_NAME');
 else
  $row['meta_title'] = $row['name'].(!empty($page_number) ? ' ('.$page_number.')' : '').' - '.Configuration::get('PS_SHOP_NAME');

 if (!empty($title))
  $row['meta_title'] = $title.(!empty($page_number) ? ' ('.$page_number.')' : '').' - '.Configuration::get('PS_SHOP_NAME');

 return self::completeMetaTags($row, $row['name']);
   }
  }
  /* Manufacturers specifics meta tags */
  elseif ($id_manufacturer = self::getValue('id_manufacturer'))
  {
   $page_number = (int)self::getValue('p');
   $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
   SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`
   FROM `'._DB_PREFIX_.'manufacturer_lang` ml
   LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (ml.`id_manufacturer` = m.`id_manufacturer`)
   WHERE ml.id_lang = '.(int)($id_lang).' AND ml.id_manufacturer = '.(int)($id_manufacturer));
   if ($row)
   {
 if (empty($row['meta_description']))
  $row['meta_description'] = strip_tags($row['meta_description']);
 $row['meta_title'] .=  (!empty($page_number) ? ' ('.$page_number.')' : '');
 $row['meta_title'] .= ' - '.Configuration::get('PS_SHOP_NAME');
 return self::completeMetaTags($row, $row['meta_title']);
   }
  }
  /* Suppliers specifics meta tags */
  elseif ($id_supplier = self::getValue('id_supplier'))
  {
   $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
   SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`
   FROM `'._DB_PREFIX_.'supplier_lang` sl
   LEFT JOIN `'._DB_PREFIX_.'supplier` s ON (sl.`id_supplier` = s.`id_supplier`)
   WHERE sl.id_lang = '.(int)($id_lang).' AND sl.id_supplier = '.(int)($id_supplier));
   if ($row)
   {
 if (empty($row['meta_description']))
  $row['meta_description'] = strip_tags($row['meta_description']);
 if (!empty($row['meta_title']))
  $row['meta_title'] = $row['meta_title'].' - '.Configuration::get('PS_SHOP_NAME');
 return self::completeMetaTags($row, $row['name']);
   }
  }
  /* CMS specifics meta tags */
  elseif ($id_cms = self::getValue('id_cms'))
  {
   $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
   SELECT `meta_title`, `meta_description`, `meta_keywords`
   FROM `'._DB_PREFIX_.'cms_lang`
   WHERE id_lang = '.(int)($id_lang).' AND id_cms = '.(int)($id_cms));
   if ($row)
   {
 $row['meta_title'] = $row['meta_title'].' - '.Configuration::get('PS_SHOP_NAME');
 return self::completeMetaTags($row, $row['meta_title']);
   }
  }
  /* CMS category specifics meta tags */
  elseif ($id_cms = self::getValue('id_cms_category'))
  {
   $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
   SELECT `meta_title`, `meta_description`, `meta_keywords`
   FROM `'._DB_PREFIX_.'cms_category_lang`
   WHERE id_lang = '.(int)($id_lang).' AND id_cms_category = '.(int)($id_cms));
   if ($row)
   {
 $row['meta_title'] = $row['meta_title'].' - '.Configuration::get('PS_SHOP_NAME');
 return self::completeMetaTags($row, $row['meta_title']);
   }
  }
 }
 /* Default meta tags */
 return self::getHomeMetaTags($id_lang, $page_name);
}
}
?>

 

On peut a peu près modifier le comportement de toutes les pages par ici.

Link to comment
Share on other sites

Bonjour,

Pour le résolu, j'ai pas réussi a changé le titre du topic donc c'est pour ca que je l'ai mis en bas.

 

C'est donc que tu n'as pas pris le temps de lire les règles du forum, ce qui est généralement plus que conseillé pour le bien-être de tous. ;)

C'est expliqué ici comment faire.

 

Merci pour la solution. Ca aussi c'est un bon réflexe à avoir pour les générations futures.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...