loesys Posted January 26, 2011 Share Posted January 26, 2011 Bonjour, je cherche une solution pour pouvoir rediriger automatiquement un lien écrit en dur vers un lien rewrité Par exemple, je souhaiterais pouvoir écrire en dur un lien vers une page, que ce soit une page de produit, ou catégorie.Il semble évident que si le lien change, je ne vais pas m'amuser à tout remodifier manuellement chaque lien...J'ai creusé un peu et voilà où j'en suis arrivé, pour un lien vers une page produit.Si l'on prend le produit avec l'identifiant 537 : a href="{$link->getProductLink(537)}" > Cela fonctionne, mais l'url n'est pas réecrite. Elle renvoi une url du type : "product.php?id_product=537".Si l'on regarde comment est construite cette fonction, on s'aperçoit que pour récupérer l'url rewrité, il faut lui passer en paramètre un objet, une instance de la classe product. Voici le code la fonction : /** * Return the correct link for product/category/supplier/manufacturer * * @param mixed $id_OBJ Can be either the object or the ID only * @param string $alias Friendly URL (only if $id_OBJ is the object) * @return string link */ public function getProductLink($id_product, $alias = NULL, $category = NULL, $ean13 = NULL) { if (!isset($this->allow)) $this->allow = 0; if (is_object($id_product)) return ($this->allow == 1)?(_PS_BASE_URL_.__PS_BASE_URI__.(($id_product->category != 'home' AND !empty($id_product->category)) ? $id_product->category.'/' : '').intval($id_product->id).'-'.$id_product->link_rewrite.($id_product->ean13 ? '-'.$id_product->ean13 : '').'.html') : (_PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.intval($id_product->id)); elseif ($alias) return ($this->allow == 1)?(_PS_BASE_URL_.__PS_BASE_URI__.(($category AND $category != 'home') ? ($category.'/') : '').intval($id_product).'-'.$alias.($ean13 ? '-'.$ean13 : '').'.html') : (_PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.intval($id_product)); else return _PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.intval($id_product); } La question est la suivante : comment lui envoyer cette instance ? J'ai regardé dans la classe product mais sans résultat... Link to comment Share on other sites More sharing options...
malorie Posted February 14, 2012 Share Posted February 14, 2012 Je cherche à faire la même chose mais pour des catégories... Tu as trouvé la solution ? 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