Jump to content

[Résolu] Gérer l'urlrewriting dans les liens de mon menu deroulant


Recommended Posts

Bonjour à tous,

J'ai crée un menu déroulant sur mon site mais il n'est pas géré par l'urlrewriting
Comment puis-je faire ?
Merci :)

Mes liens sont tout simples:


a style="height:17px;" href={$base_dir}category.php?id_category=16">
{l s='Art Of Table'}

{l s='Plate'}

Link to comment
Share on other sites

Déjà, dans un premier temps il serait de bon ton de bien configurer votre boutique un retirant la référence à votre ancienne url avant que le nom de domaine soit configurée.

Car votre boutique n'est plus dans le répertoire ~marchandd

sinon pour vos liens il faut utiliser la focntion :

getCategoryLink($id_category, $alias = NULL, $id_lang = NULL)

Link to comment
Share on other sites

Retirer la référence à ce répertoire dans le fichier settings.inc.php ou directement dans Panneau d'administration >> Préférences.

Pour l'exemple je vous suggère de regarder le code du module Blockcategory pour comprendre comment il fonctionne afin de récupérer les catégories.

Car le plus simple pour faire un menu est de partir du module de base de Prestashop.

Link to comment
Share on other sites

En ce qui concerne le chemin ~marchandd dans settings.inc.php je viens de le corriger
Dire que j'avais demandé comment faire à ovh... sans succès et c'était tout simple
Un grand merci à vous :)
Je regarde le module indiqué...

Link to comment
Share on other sites

J'ai essayé cela, mais sans succès

{l s='Plate'}
ou
{l s='Plate'}
ou
{l s='Plate'}
ou
{l s='Plate'}
ou
getCategoryLink($product->id_category_default, $category->name)|escape:'htmlall':'UTF-8'}">{l s='Plate'}
ou
getCategoryLink($product=42, l s='Plate)|escape:'htmlall':'UTF-8'}">{l s='Plate'}

Link to comment
Share on other sites

J'ai trouvé ce tuto et maintenant mon menu peso gère l'url rewriting
http://www.effi10.com/technique-web-css/prestashop-corriger-le-duplicate-content/

J'attends que ceci soit validé par des personnes expérimentées de manière à ne pas induire en erreur les futurs personnes qui liront mon post

Code à ajouter au fichier header.tpl

require_once(dirname(__FILE__).'/init.php');

/* CODE A INSERER A PARTIR D'ICI */

/***** Test et correction des URL non valides *****/
if (isset($_GET['id_product']) AND Validate::isUnsignedId($_GET['id_product']))
{
   // Nous sommes sur une page produit
   $cookie = new Cookie('ps');
   Tools::setCookieLanguage();
   $product = new Product(intval($_GET['id_product']), true, intval($cookie->id_lang));
   if (Validate::isLoadedObject($product) AND $product->active)
   {
       $goodurl=$_GET['id_product']."-".$product->link_rewrite.".html";    // URL theorique
       $currenturl=basename($_ENV['REQUEST_URI']);                // URL courante

       $redir=strcmp($goodurl, $currenturl);
       if($redir!=0)
       {
           // Pas la bonne URL donc redirection HTTP 301 vers l'URL correcte
           header('HTTP/1.1 301 Moved Permanently', false, 301);
           header("Location: http://" . $_SERVER["SERVER_NAME"] ."/". $goodurl);
           exit(); 
       }  
   };
}

if (isset($_GET['id_category']) AND Validate::isUnsignedId($_GET['id_category']))
{
   // Nous sommes sur une page Categorie
   $cookie = new Cookie('ps');
   Tools::setCookieLanguage();
   $category = new Category(intval(Tools::getValue('id_category')), intval($cookie->id_lang));
   if (Validate::isLoadedObject($category) AND $category->active)
   {
       $paramurl="";

       // Detection d'un eventuel numero de page
       if (isset($_GET['p'])) {
           $varpagenumber=$_GET['p'];
           if($varpagenumber>1) {
               $paramurl="?p=$varpagenumber";
               $smarty->assign('nobots', 1);    // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
           };
       };

       // Detection des variables eventuelles de tri de produits
       if (isset($_GET['orderby'])) {
           $varorderby=$_GET['orderby'];
           $paramurl.=(empty($paramurl)?"?":"&")."orderby=$varorderby";
           $smarty->assign('nobots', 1);        // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
       };
       if (isset($_GET['orderway'])) {
           $varorderway=$_GET['orderway'];
           $paramurl.=(empty($paramurl)?"?":"&")."orderway=$varorderway";
           $smarty->assign('nobots', 1);        // variable Smarty de Prestashop qui appose la valeur "noindex,follow" dans la balise META Robots
       };

       $goodurl=$_GET['id_category']."-".$category->link_rewrite.$paramurl;    // URL theorique
       $currenturl=basename($_ENV['REQUEST_URI']);                // URL courante
       $redir=strcmp($goodurl, $currenturl);
       if($redir!=0)
       {
           // Pas la bonne URL donc redirection HTTP 301 vers l'URL correcte
           header('HTTP/1.1 301 Moved Permanently', false, 301);
           header("Location: http://" . $_SERVER["SERVER_NAME"] ."/". $goodurl);
           exit(); 
       }
   };
}

// FIN DU CODE A INSERER

Link to comment
Share on other sites

Bonsoir,

Cela à bien fonctionné merci :)
Par contre je ne sais pas comment faire avec un lien cms

J'ai essayé de faire mon sitemap, et maintenant pratiquement tout mes liens du site sont en anglais...
Vous savez pourquoi ?

Merci

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