Cédric Girard Posted October 27, 2011 Share Posted October 27, 2011 Bonjour Dans le cadre de l'intégration d'un marqueur Open Graph sur les boutiques que je gère (en vue de compléter les infos liées aux réseaux sociaux lors des actions "J'aime", "+1" et autres), je rencontre une difficulté sur une boutique en v1.3. En l'occurrence, l'id_image ne s'intègre pas ou n'est pas lu quand je suis dans une page produit. J'utilise l'excellent module open source Facebook Opengraph for Prestashop ; seulement lors de l'intégration les URL des images n'ont pas d'id_image (et j'obtiens du coup des URL du style "1234--large.jpg" au lieu de "1234-5678-large.jpg") J'ai tenté diverses modifications du module de manière à modifier la variable rapportée dans le template : <meta property="og:image" content="{$absoluteBaseUrl}img/p/{$id_product}-{$image.id_image}-large.jpg" /> Mais cela ne fonctionne pas et id_image demeure désespérément vide Une idée ? Link to comment Share on other sites More sharing options...
Sbizz Posted October 27, 2011 Share Posted October 27, 2011 Bonjour, Je ne connais pas ce module, mais avez-vous vu du coté du PHP ? Est-il possible de coller le code générant la variable $image ? Link to comment Share on other sites More sharing options...
nobock Posted October 27, 2011 Share Posted October 27, 2011 Hello, Je ne connaisait pas ce module non plus mais j'était en train d'en dev un similaire. j'ai pas mal de mauvais retour client car quand ont clique sur partager il y a pas le bon aperçu. Ce module permet de régler ce genre de problème ? Sinon tu peut toujours récupérer l'id d'un produit via un simple get en php. L'url rewrite n'est qu'une "facade" pour les moteur de recherche mais derrière c'est toujours les même variable qui sont chargés. $id_product = $_GET["id_product"] Link to comment Share on other sites More sharing options...
Cédric Girard Posted October 27, 2011 Author Share Posted October 27, 2011 Merci pour votre passage. En fait l'id_product remonte bien, c'est l'id_image qui manque à l'appel Dans la version originale de ce module open source, c'est {$id_image} tout court au niveau du fichier tpl (c'est moi qui ait rajouté la variable image au gré de mes essais, m'inspirant de product.tpl, mais dans les deux cas l'id de l'image ne remonte pas...) Link to comment Share on other sites More sharing options...
Sbizz Posted October 28, 2011 Share Posted October 28, 2011 Est-il possible de voir le code PHP ? ... Link to comment Share on other sites More sharing options...
Cédric Girard Posted October 28, 2011 Author Share Posted October 28, 2011 Yep J'ai remis le code comme à l'initial, voici la partie PHP dédiée aux caractéristiques du produit : /** * Product specific META data */ if (self::isProductPage()) { $id_product = $_GET['id_product']; if ($_DEBUG == 1) { echo 'IdProduct: '.$id_product.'</br>'; } $smarty->assign('id_product', $id_product); $productImages = Image::getImages($id_lang, $id_product); if ($_DEBUG == 1) { echo 'ProductImages: '; print_r($productImages); echo '<br/>'; } if (is_array($productImages) AND sizeof($productImages)) { $productImage = $productImages[0]['id_image']; $smarty->assign('id_image', $productImage); if ($_DEBUG == 1) { echo 'IdImage: '.$productImage.'<br/>'; } } } Et celle au niveau du fichier tpl : <meta property="og:image" content="{$absoluteBaseUrl}img/p/{$id_product}-{$id_image}-large.jpg" /> La boutique tourne en v1.3.0 (oui je sais, faudra que je fasse une MAJ...) ; précision : j'ai forcé la langue à l'ID 2 du fait que la boutique est en français. Link to comment Share on other sites More sharing options...
Sbizz Posted October 28, 2011 Share Posted October 28, 2011 J'ai fait des tests de mon côté : La fonction marche bien et récupère bien ce qu'il faut.. $images = Image::getImages(2, 1); $smarty->assign('test', $images); $smarty->assign('test2', $images[0]['id_image']); 2 étant le FR et 1 l'iPod Nano lors de la création d'un nouveau prestashop. Je récupère bien un id : 37. Pouvez me dire : - la valeur d'id_product (votre echo) - la valeur d'id_lang (faire un echo) - la valeur du tableau retourné (votre print_r) Link to comment Share on other sites More sharing options...
Cédric Girard Posted October 28, 2011 Author Share Posted October 28, 2011 Euh je n'ai pas activé le debug car la boutique est en prod mais effectivement un print_r sur le tableau devrait me fixer définitivement ! Edit : voilà qui est fait. ProductImages: Array ( [0] => Array ( [id_image] => 2552 [id_product] => 1989 [position] => 1 [cover] => 1 [id_lang] => 2 [legend] => POELE A CREPES ANTI-ADHESIVE CHOC DE BUYER ) ) Ce que je ne comprends pas, c'est que l'id_image est bien présent !!! Du coup je me demande si le problème ne vient pas de la "transmission" de la variable Smarty... Link to comment Share on other sites More sharing options...
Sbizz Posted October 28, 2011 Share Posted October 28, 2011 Si votre site est en prod., vous pouvez utiliser la fonction file_put_contents de cette façon : file_put_contents('debugPrintR.txt', print_r($array, true)); Si le deuxième paramètre de print_r vaut true, alors print_r renverra une chaine de caractères à la place d'afficher directement le résultat. Link to comment Share on other sites More sharing options...
coeos.pro Posted October 28, 2011 Share Posted October 28, 2011 Si ta boutique est en prod utilise mon module :http://www.coeos.pro/boutique/fr/modules-prestashop/43-debug.html Link to comment Share on other sites More sharing options...
Cédric Girard Posted October 28, 2011 Author Share Posted October 28, 2011 BON. J'ai trouvé la solution. J'ai renommé la variable Smarty (id_image) en "fb_id_image" (il y avait peut-être une "interférence" avec la variable existante dans product.tpl ?) et surtout j'ai forcé la compil Smarty car ce c.. ne prenait pas mes modifications en temps réel Quoi qu'il en soit, avec le code d'origine ça ne fonctionnait pas. Je n'ai pas pensé à repasser en "force_compil = true" au niveau du paramétrage Smarty... Link to comment Share on other sites More sharing options...
Sbizz Posted October 28, 2011 Share Posted October 28, 2011 Effectivement.. Compilation à la con Link to comment Share on other sites More sharing options...
microblog Posted February 15, 2012 Share Posted February 15, 2012 bonjour, merci pour votre post. ceci dit prestashop a changé la manière d'écrire les URL des images. voici un exemple : http://www.domain.com/idproduct-idimage-large/nomdelimage-b.jpg comment puis je configurer le og:image en sachant que à la base c'était ceci (qui ne fonctionnait d'ailleurs pas : <meta property="og:image" content="{$absoluteBaseUrl}/img/p/{$id_product}-{$id_image}-large.jpg" /> merci pour votre aide Link to comment Share on other sites More sharing options...
sketchy64 Posted June 26, 2012 Share Posted June 26, 2012 Bonjour, Apparement, comme indiqué dans la section "Debugging" sur la homepage du projet, pour que l'id de l'image soit récupéré et que le lien vers celle-ci fonctionne correctement, il faut forcer la langue par défaut du site dans le fichier "fbopengraph.php" (ligne 136 de la fonction hookHeader). J'ai remplacé $id_lang = $_GET['id_lang']; par $id_lang = 2; (la langue par défaut en FR pour mon cas) et ça a fonctionné contrairement aux manipulations précédentes. Voilou ! Link to comment Share on other sites More sharing options...
Sébastien XAE Posted March 14, 2015 Share Posted March 14, 2015 Bonjour, j'ai le même problème sur mon site => http://www.wineandbee.com/blog/bientot-sur-le-blog-n8 Aucune remontée sympathique d'image quand je partage sur FB... Si je vous ai bien lu, le problème vient du fichier header.tpl de mon thème...mais difficile pour moi de deviner ou et comment intervenir.. Par exemple, je n'ai pas de balise meta property mais meta name dans le code => <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> Auriez vous svp une piste pour me permettre d'afficher des choses sympas ?? Un grand merci par avance Link to comment Share on other sites More sharing options...
julianbaros Posted June 22, 2018 Share Posted June 22, 2018 Bonjour, Je ne sais pas si vous avez réussi à trouver la solution depuis. Voici ce qui a marché pour moi : https://www.prestashop.com/forums/topic/274531-open-graph-tags/ Juste pour que l'image récupéré soit la bonne il faut faire un if : {if $page_name=='product'} <meta property="og:image" content="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large_default')}"/> {else} <meta property="og:image" content="https://www.monsite.fr/img/logo.jpg"/> {/if} Il faut que les images soit en 600*600 et ça fonctionne parfaitement. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now