Jump to content

Faire un lien vers une catégorie, un produit ou une page du CMS


Recommended Posts

Bonjour,

Je débute dans l'intégration de chartes graphiques sous Prestashop.

Je cherche à créer des liens vers des produits ou des catégories mais en respectant la structure des liens. J'imagine que, comme dans Zencart avec la fonction zen_href_link(), il est possible de trouver l'URL réécrite d'un produit, d'une catégorie ou d'une page de CMS via une fonction et les paramétres qui vont bien ?

Si oui, quelle est cette fonction et ses différents paramètres.

Merci pour vos réponses.

pH

Share this post


Link to post
Share on other sites

Je me réponds à moi-même sur l'un des points car j'ai trouvé la solution pour les pages de CMS.

Je ne sais pas si c'est la meilleure méthode mais en tout cas, elle fonctionne.

$page_link = CMS::getLinks(2, array(4)); // 2 : Id de la langue courante. array(4) : Id de la page
$smarty->assign('cms_about_us', $page_link['link']);



pH

Share this post


Link to post
Share on other sites
Je me réponds à moi-même sur l'un des points car j'ai trouvé la solution pour les pages de CMS.

Je ne sais pas si c'est la meilleure méthode mais en tout cas, elle fonctionne.

$page_link = CMS::getLinks(2, array(4)); // 2 : Id de la langue courante. array(4) : Id de la page
$smarty->assign('cms_about_us', $page_link['link']);



pH



Bonsoir P.H

ça me semble correcte, juste une questin pkoi :
$page_link = CMS::getLinks(2, array(4)); // 2 : Id de la langue courante. array(4) : Id de la page
$smarty->assign('cms_about_us', $page_link['link']);



au lieu de :

$page_link = CMS::getLinks(2, array(4)); // 2 : Id de la langue courante. array(4) : Id de la page
$smarty->assign('cms_about_us', $page_link);



à quoi sert le ['link'] ???

Share this post


Link to post
Share on other sites

Car $page_link est un Array pardi ! :)

un print_r() de $page_link donne les valeurs suivantes :

Array ( [0] => Array ( [id_cms] => 4 [link_rewrite] => [color=red]'lien-seo-friendly'[/color] [meta_title] => [color=red]'Balise META <title>'[/color] [link] => [color=red]'Lien absolu vers la page'[/color] ) ) 

pH

Share this post


Link to post
Share on other sites

ok merci,

je pensais que comme tu avais renseigné l'ID de l apage " 4 ", fallait pas préciser

merci pour ta réponse, en plus je pense jamais à vérifier avec un simple print_r() ;-)

Bonne continuation P.H

Share this post


Link to post
Share on other sites

En fait, j'ai trouvé une petite erreur. Le Array contient en fait un Array. Je dois donc donner la clé 0 pour accéder à la première ligne qui contient les informations de la page de CMS.

Le code correct est donc

$page_link = CMS::getLinks(2, array(4));
$smarty->assign('cms_about_us', $page_link[0]['link']); 



Par-ailleurs, j'ai simplifié le code PHP et utilisé Smarty pour accéder à ma valeur de mon Array. Ce qui semble être la méthode la plus correcte pour Prestashop.

Ce qui donne donc dans le fichier PHP (Exemple : header.php)

$page_link = CMS::getLinks(2, array(4)); // 2 : Id de la langue courante. array(4) : Id de la page
$smarty->assign('cms_about_us', $page_link['link']); 



Et dans le fichier TPL (Exemple : header.tpl)

Qui sommes-nous ?



pH

Share this post


Link to post
Share on other sites

P.H,

ce que je sasie pas, c'est si tu veux uniquement faire un lien vers une page CMS , depuis un TPL, tu n'as pas vraiment besoin de passer par du code PHP tu peux le rentrer simplement comme un lien normal :
Qui sommes-nous ?

le "1" étant l'ID de ta page CMS et "Qui_sommes_nous", la réécriture url que tu as rentré lors de la création de ta page CMS.

je fais comme çà perso, si je veux mettre des liens CMS à différents endroit, pour faire simple,

Maintenant, si tu veux faire un module, un menu , faut voir pour récupérer toutes ou partie des pages CMS par exemple

Share this post


Link to post
Share on other sites

Le problème de coller le lien en dur dans le TPL, c'est que tôt ou tard, il faudra repasser dessus pour telle ou telle raison (changement du domaine principal du site, changement des balises META, ...).

Il me semble bien plus logique d'utiliser les fonctions présentes dans Prestashop plutôt que de faire le "porc" dans les TPL... Simple avis ;)

pH

Share this post


Link to post
Share on other sites
  • 2 months later...

Bonjour,

j'ai un problème au niveau de l'url rewriting dans le template de mon site au niveau du module "variouslink", est-ce que cette méthode corrigerait le problème et si oui, que faut-il mettre dans les liens href du .tpl?

Merci.

Arnaud.

Share this post


Link to post
Share on other sites

merci de me répondre ;)

actuellement, dans mon variouslink.tpl, j'ai des liens sous cette forme :

{l s='Terms and conditions of use' mod='blockvariouslinks'}



Le problème c'est que quand je clique dessus dans mon footer, il m'affiche la page www.monsite.com/cms.php?id_cms=3

alors que moi je voudrais que le navigateur affiche directement l'url avec le rewriting, d'autant plus que ça fonctionne très bien pour le reste :)

Mais voila m'sieur, je sais po comment faire :(

Merci.

Share this post


Link to post
Share on other sites
  • 1 year later...

Bonjour,

 

merci pour cette méthode qui permet de linker proprement une page CMS d'après son identifiant.

Y a-t-il un équivalent pour linker une catégorie d'après son identifiant ? ...

 

(ou encore mieux: linker une catégorie d'après son titre, à l'aide d'une expression régulière ou autre ?)

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More