Problème PHP pour générer deux lignes :)

Eléphanteau du PHP | 17 Messages

06 janv. 2015, 19:25

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 ?

Eléphanteau du PHP | 17 Messages

07 janv. 2015, 11:26

Edit : Et bien entendu, je voudrais remplir ces balises avec description courte voire title pour "caption" et title pour "title".

Mammouth du PHP | 2278 Messages

07 janv. 2015, 12:56

JE COMMENCERAIS PAR:(excuses pour les maj)
var_dump($img);
$legend_image = preg_replace('/(&+)/i', '&', $img ['legend_image']);
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 17 Messages

07 janv. 2015, 14:18

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"

Mammouth du PHP | 2278 Messages

07 janv. 2015, 16:03

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é
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 17 Messages

07 janv. 2015, 16:09

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 ?

Mammouth du PHP | 2278 Messages

07 janv. 2015, 16:12

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
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 17 Messages

07 janv. 2015, 16:16

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 :?

Mammouth du PHP | 2278 Messages

07 janv. 2015, 16:27

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...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 17 Messages

07 janv. 2015, 16:31

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 :)

Mammouth du PHP | 2278 Messages

07 janv. 2015, 16:40

$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.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 17 Messages

07 janv. 2015, 16:46

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"

Mammouth du PHP | 2278 Messages

07 janv. 2015, 17:08

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');
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 17 Messages

07 janv. 2015, 17:13

=méga duplicate ça ne m'intéresse pas ^^

Mammouth du PHP | 2278 Messages

07 janv. 2015, 17:20

teste quand meme parce que j'ai une idée pour diversifier.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD