Welcome to the PrestaShop Forum! We hope you'll share your comments and suggestions with us. We ask that you please post in English to the main sections of the PrestaShop Forum. If you want to write in another language, please post in the corresponding PrestaShop Community section below.
Please note that PrestaShop Community sections are largely self-moderated. PrestaShop team members may or may not participate in non-English sections. To improve the chances of receiving feedback to your question or comment, please post it in English to the main sections of our Forum.

Vous parlez français ? par ici !
Please note that PrestaShop Community sections are largely self-moderated. PrestaShop team members may or may not participate in non-English sections. To improve the chances of receiving feedback to your question or comment, please post it in English to the main sections of our Forum.

Vous parlez français ? par ici !
Faire un lien vers une catégorie, un produit ou une page du CMS
Started by Pierre-Henri, Jun 24 2010 04:50 PM
Faire un lien vers une catégorie, un produit ou une page du CMS
#1
Posted 24 June 2010 - 04:50 PM
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
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
#2
Posted 24 June 2010 - 06:49 PM
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.
pH
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
#3
Posted 24 June 2010 - 06:54 PM
From 1277401764:
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.
pH
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'] ???
#4
Posted 24 June 2010 - 07:07 PM
Car $page_link est un Array pardi ! :)
un print_r() de $page_link donne les valeurs suivantes :
[code]Array ( [0] => Array ( [id_cms] => 4 [link_rewrite] => 'lien-seo-friendly' [meta_title] => 'Balise META <title>' [link] => 'Lien absolu vers la page' ) ) [/quote]
pH
un print_r() de $page_link donne les valeurs suivantes :
[code]Array ( [0] => Array ( [id_cms] => 4 [link_rewrite] => 'lien-seo-friendly' [meta_title] => 'Balise META <title>' [link] => 'Lien absolu vers la page' ) ) [/quote]
pH
#5
Posted 24 June 2010 - 07:19 PM
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
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
#6
Posted 24 June 2010 - 07:25 PM
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
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)
Et dans le fichier TPL (Exemple : header.tpl)
pH
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
#7
Posted 24 June 2010 - 07:34 PM
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
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
#8
Posted 24 June 2010 - 07:42 PM
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
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
#9
Posted 02 September 2010 - 12:05 PM
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.
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.
#10
Posted 02 September 2010 - 01:03 PM
Bonjour,
"est-ce que cette méthode corrigerait le problème"
Le mieux est d'essayer ;)
"si oui, que faut-il mettre dans les liens href du .tpl"
Pourrais-tu donner plus de précisions ?
pH
"est-ce que cette méthode corrigerait le problème"
Le mieux est d'essayer ;)
"si oui, que faut-il mettre dans les liens href du .tpl"
Pourrais-tu donner plus de précisions ?
pH
#11
Posted 02 September 2010 - 02:01 PM
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.
actuellement, dans mon variouslink.tpl, j'ai des liens sous cette forme :
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.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users











