Jump to content

[Résolu] Besoin de renommer images (url rewriting) avec ean13


Recommended Posts

Bonsoir,

 

Tout est dans le titre.

Plutôt que le nom du produit, je voudrais l'ean13 pour mes images.

Que modifier, et comment, dans le .htaccess pour cela ??

 

Merci d'avance !

 

Hello,

A vrai dire ça ne se fait pas dans le htaccess . Un ean13 est valide pour le rewrite d'une image.

Il y a au moins deux solutions :

 

1 - modifier dans les tpls , partout ou getImage est appelé , ce genre de ligne :

 

<img src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large')}"

 

par

 

<img src="{$link->getImageLink($product->ean13, $cover.id_image, 'large')}"

 

Il y en aura de nombreux à remplacer, pas toujours avec la même syntaxe d'ailleurs ni le même nom de variable , mais ça restera dans le thème.

 

2 - Modifier ou surcharger la classe link , methode getImage, pour ne plus tenir compte du premier paramètre et le remplacer par l'ean du produit. Sauf qu'à ce stade on ne l'a pas, pas plus que l'id du produit d'ailleurs et qu'il va falloir aller le chercher dans la bdd en passant par l'id de l'image , pour récupérer l'id du produit , et enfin son ean13

 

L'avantage est qu'on n'a qu'un bloc à modifier pour tout le site , (sauf thème ou tpl ancien / mal écrit qui n'utilise pas link mais reconstruit l'url de l'image)

L'inconvénient est qu'on a une requete bdd supplémentaire pour chaque image du site, ce qui n'est pas forcément l'idéal en terme de perfs.

J'essayerais de mesure tiens demain le temps moyen d'une telle requete et peut être un bout de code pour voir si cela fonctionne globalement bien.

Link to comment
Share on other sites

Bon, en fait, cela ne fonctionne pas...

 

Plutôt que http://img2.autourdu...vanes-retro.jpg,

J'aimerais avoir http://img2.autourdu...81254789632.jpg, 9781254789632 étant l'ean13

 

Dans la classe link.php, j'ai tenté de modifier :

public function getImageLink($ean13, $ids, $type = NULL)

{

global $protocol_content;

 

// legacy mode or default image

if ((Configuration::get('PS_LEGACY_IMAGES')

&& (file_exists(_PS_PROD_IMG_DIR_.$ids.($type ? '-'.$type : '').'.jpg')))

|| strpos($ids, 'default') !== false)

{

if ($this->allow == 1)

$uri_path = __PS_BASE_URI__.$ids.($type ? '-'.$type : '').'/'.$ean13.'.jpg';

else

$uri_path = _THEME_PROD_DIR_.$ids.($type ? '-'.$type : '').'.jpg';

 

Mais bien sûr cela ne fonctionne pas... Cela ne change même rien du tout !...

 

Quelqu'un aurait une piste ??

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

Mais si mais si ça fonctionne ....

 

J'ai donné un exemple : je n'ai ni ton thème ni précisément ce que tu cherches à faire pour quelle type d'image ...

Evidemment il faut adapter , pas faire un simple copier coller car c'est insuffisant.

A commencer par le fait que c'est sur les thickbox vraisemblablement que tu souhaites voir apparaitre l'ean , ce que tu ne dis pas dans ton post initial ,

du coup on va sur une autre ligne du tpl , et on applique la même méthode...

 

Regarde avec ton ean , sur cette page ci :

 

http://test14.jcedeveloppement.com/fr/musique-ipods/1-ipod-nano-9781254789632.html

 

Les images ont bel et bien le nom de l'ean ... , ex la verte :

http://test14.jcedeveloppement.com/1-39-large/9781254789632.jpg

 

Bref c'est la seule méthode vraiment propre, de modifier les appels dans les tpl .

Evidemment ta modif ci dessus ne fonctionne pas, et pour cause : tu remplace un nom de variable par un autre , mais celà ne change absolument rien au fonctionnement .

 

Bref , isole les $link->getImageLink(.... ) qui t'intéressent dans la structure de la page que tu vises (ici product.tpl)

 

remplace les link rewrite par l'ean , comme dans l'exemple que j'ai donné , et tu auras ce que tu souhaites obtenir .

 

A quoi ça sert que duc... il se décarcasse ....

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