Jump to content

Balise meta sur page custom


Mando

Recommended Posts

J'ai, pour les besoins de ma boutique, créé plusieurs nouvelles classes, pour de nouvelles fonctionnalités, dont un blog.

 

Or, je n'arrive pas à faire apparaître les metatags : la balise title et le meta_title reste invariablement remplie par le nom de la boutique, et les champs meta_description et meta_keywords restent vide.

 

Quelqu'un aurait-il la solution magique pour faire apparaître ces informations ?

 

J'ai quand même fouillé un peu plus que ça, j'ai remarqué que passer les informations à Smarty ne suffisaient pas, puisqu'on les récupère sur la page banane.tpl et non sur header.tpl, où elles seraient utiles. J'ai fouillé un peu dans tous les coins, en décortiquant les classes Product, Category et Manufacturer pour voir comment ils traitaient ces informations, mais ballepeau (idem pour les controlleurs associés).

La seule piste que j'ai trouvée à ce niveau serait quelque chose en rapport avec getTranslationsFieldsChild(), seule fonction que j'ai trouvée utilisant le mot "meta_title".

 

Je tourne sur 1.4.8.2

 

Merci d'avance.

Link to comment
Share on other sites

J'ai eu un éclair de génie hier soir, du coup je donne la solution à mon propre problème :

 

Il suffit d'éditer la classe Tools, et de rajouter à la fin de la fonction getMetaTags() un truc du genre :

 

Pour une page fixe :

            elseif(strpos($_SERVER['PHP_SELF'],'blog.php'))
            {
                    $row = array();
                    $row['meta_title'] = 'Mon titre - '.Configuration::get('PS_SHOP_NAME');
                    $row['meta_description'] = 'Ma meta_description';
                    $row['meta_keywords'] = 'Mes meta_tags';
                    return self::completeMetaTags($row, $row['meta_title'], $row['meta_description'], $row['meta_keywords']);
            }

Si c'est pour des pages dynamiques (comme par exemple, les articles du blog) :

            elseif ($id_article = self::getValue('id_article'))
            {
                $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
                SELECT `post_meta_title`, `post_meta_description`, `post_meta_keywords`
                FROM `'._DB_PREFIX_.'mon_blog`
                WHERE id_lang = '.(int)($id_lang).' AND id_pl_blog_post = '.(int)($id_article));
                if ($row)
                {
                    $row['meta_title'] = $row['post_meta_title'].' - Article du blog d\''.Configuration::get('PS_SHOP_NAME');
                    $row['meta_description'] = $row['post_meta_description'];
                    $row['meta_keywords'] = $row['post_meta_keywords'];
                    return self::completeMetaTags($row, $row['meta_title'], $row['meta_description'], $row['meta_keywords']);
                }
            }

Et voilà, on peut du coup avoir les meta_tags correspondant à nos articles ou à nos pages fixes, et non plus les meta par défauts. Google préfère ça.

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...