Page 1 sur 2
Problème PHP pour générer deux lignes :)
Posté : 06 janv. 2015, 19:25
par Benko
Bonjour,
Je souhaite modifier le fichier qui génère le sitemap de mon site, qui est sous Prestashop.
Les lignes originales sont :
$legend_image = preg_replace('/(&+)/i', '&', $img ['legend_image']);
$image->addChild('caption', $legend_image, 'http://www.google.com/schemas/sitemap-image/1.1');
$image->addChild('title', $legend_image, 'http://www.google.com/schemas/sitemap-image/1.1');
Le hic, c'est que mon site n'utilise pas legend_image, je me retrouve donc avec ces balises (caption et title) vides dans mon sitemap, ce qui ne va pas du tout !
J'ai essayé pas mal de trucs dont :
$image_product = array(
'title' => htmlspecialchars(strip_tags($product->name)),
'caption' => htmlspecialchars(strip_tags($product->description_short)),
);
$image->addChild('caption',$product->description_short,'http://www.google.com/schemas/sitemap-image/1.1');
$image->addChild('title',$product->name,'http://www.google.com/schemas/sitemap-image/1.1');
Mais ça ne marche pas, je suis vraiment nul en PHP...
Quelqu'un peut m'aider please ?
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 11:26
par Benko
Edit : Et bien entendu, je voudrais remplir ces balises avec description courte voire title pour "caption" et title pour "title".
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 12:56
par sirakawa
JE COMMENCERAIS PAR:(excuses pour les maj)
var_dump($img);
$legend_image = preg_replace('/(&+)/i', '&', $img ['legend_image']);
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 14:18
par Benko
Bonjour et merci pour l'aide,
En faisant cette modif, j'obtiens une erreur : NULL } array(2) { ["id_image"] (qui se répète partout).
Ce que je voudrais c'est mettre description courte voire title à la place de legend_image pour "caption" et title pour "title"
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 16:03
par sirakawa
Mais c'est pas une erreur, c'est simplement que le tableau $img contient deux éléments vides.
Lorsque tu a créé tes produits avec Prestashop (si je me souviens bien), il devait y avoir un champ que tu n'as pas renseigné
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 16:09
par Benko
Bonjour,
Malheureusement, sur ma version de Prestashop il n'y a pas de légendes pour les images, tout se fait avec les balises alt et title !
Que puis-je faire du coup ?
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 16:12
par sirakawa
Je viens de regarder la démo:
Dans Catalogue / Produits
une fois un produit choiis, il y a Images (entre autres) et dans images, il y a légende
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 16:16
par Benko
J'utilise la version 1.5.4.1 (impossible pour moi de changer de version tellement j'ai modifié de choses) et, dans ma version, il n'y a pas "Légende" dans images

Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 16:27
par sirakawa
C'est la 1.6 qui est téléchargeable aujourd'hui.
Autant il est facile de modifier les logiciels prévus pour ça : comme Spip avec ses squelettes, et, si ca ne va pas bien de revenir au fonctionnement standard sans rien perdre, autant en bidulant le code on s'expose à être coincé.
Alors, une mise à jour, c'est exclu?
Ce que je m'explique mal c'est pourquoi le code d'origine recourt à une donnée inexistante.
J'irais voir sur les dorums dédiés...
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 16:31
par Benko
LE truc c'est que je souhaite modifier un fichier php provenant d'un module, je ne risque rien à part une erreur lors de la génération du fichier sitemap
En bref, je cherche à remplacer $legend_image par les valeurs appropriées (et peut-être une fonction qui va chercher ces valeurs ?) mais comme je n'y connais rien en PHP...
Et donc, pour ceux qui liraient ceci, sujet toujours pas résolu

Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 16:40
par sirakawa
$legend_image = preg_replace('/(&+)/i', '&', $img ['legend_image']);
$image->addChild('caption', $legend_image, 'http://www.google.com/schemas/sitemap-image/1.1');
$image->addChild('title', $legend_image, 'http://www.google.com/schemas/sitemap-image/1.1');
ca y est plusieurs fois? et il faudrait des caption et des title différents ?
J'aurais bien testé chez moi, mais ils veulent un PHP avec GD dont je n'ai nul besoin et mycript... peu motivé pour de tels changements.
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 16:46
par Benko
Ce code est présent une fois dans le fichier php qui génère le sitemap.
Caption et title fonctionnent ainsi :
- image produit A => lien A + caption A + title A
- image produit B => lien B + caption B + title B
etc.
Il faudrait "juste" un code qui va chercher la description courte du produit pour remplir "caption" et un autre qui va chercher le title de l'image produit pour remplir "title"
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 17:08
par sirakawa
Et ça 'mais ca fera le même texte partout (à supposer que ca marche)
$
img = array("legend_image"=> "barratin");
$legend_image = preg_replace('/(&+)/i', '&', $img ['legend_image']);
$image->addChild('caption', $legend_image, 'http://www.google.com/schemas/sitemap-image/1.1');
$image->addChild('title', $legend_image, 'http://www.google.com/schemas/sitemap-image/1.1');
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 17:13
par Benko
=méga duplicate ça ne m'intéresse pas ^^
Re: Problème PHP pour générer deux lignes :)
Posté : 07 janv. 2015, 17:20
par sirakawa
teste quand meme parce que j'ai une idée pour diversifier.