Manu-41 Posted November 22 Share Posted November 22 (edited) Bonjour, j'ai besoin de créer un lien de catégorie depuis l'id (avec le nom de cette catégorie). Comment puis-je m'y prendre ? Ps 1.7 merci Edited November 22 by Manu-41 Merci à tous (see edit history) Link to comment Share on other sites More sharing options...
Prestashop Addict Posted November 22 Share Posted November 22 Bonjour Manu, en PHP ou Smarty ? Link to comment Share on other sites More sharing options...
Manu-41 Posted November 22 Author Share Posted November 22 (edited) Bonjour, dans un fichier tpl merci Edited November 22 by Manu-41 merci (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted November 22 Share Posted November 22 {$link->getCategoryLink($id_de_la_categorie)} Link to comment Share on other sites More sharing options...
Prestashop Addict Posted November 22 Share Posted November 22 {$link->getCategoryLink($category.id_category, $category.link_rewrite)} Link to comment Share on other sites More sharing options...
Manu-41 Posted November 22 Author Share Posted November 22 13 minutes ago, Eolia said: {$link->getCategoryLink($id_de_la_categorie)} 13 minutes ago, Prestashop Addict said: {$link->getCategoryLink($category.id_category, $category.link_rewrite)} J'affiche mon id de catégorie (seconde catégorie) comme ca: {foreach from=$product.grouped_features item=feature}{if $feature.id_feature ==70}{$feature.value|truncate:3:"" nofilter}{/if}{/foreach} Ca ne passe pas à la place de id de la catégorie. Link to comment Share on other sites More sharing options...
Eolia Posted November 22 Share Posted November 22 $feature.value correspond à votre ID de catégorie ? Si oui, pourquoi le tronquer à 3 caractères ? Le code deviendrait : {$link->getCategoryLink($feature.value)} Link to comment Share on other sites More sharing options...
Manu-41 Posted November 22 Author Share Posted November 22 3 minutes ago, Eolia said: $feature.value correspond à votre ID de catégorie ? Si oui, pourquoi le tronquer à 3 caractères ? Le code deviendrait : {$link->getCategoryLink($feature.value)} Oui cela correspond à l'id de ma seconde catégorie. J'ai tronqué, car (pour m'y retrouver dans les valeurs) ma caractéristique originale est : id – nom de catégorie. Link to comment Share on other sites More sharing options...
Mediacom87 Posted November 22 Share Posted November 22 il y a 6 minutes, Manu-41 a dit : Oui cela correspond à l'id de ma seconde catégorie. J'ai tronqué, car (pour m'y retrouver dans les valeurs) ma caractéristique originale est : id – nom de catégorie. On ne tronque pas, on explode(" - ", $feature.value) Link to comment Share on other sites More sharing options...
Manu-41 Posted November 22 Author Share Posted November 22 {$link->getCategoryLink($feature.value)} ne fonctionne pas J'ai testé avec {foreach from=$product.grouped_features item=feature} {if $feature.id_feature ==70} <a href="{$link->getCategoryLink($feature.value|truncate:3:"" nofilter)}">nom de categorie</a> {/if} {/foreach} Link to comment Share on other sites More sharing options...
Manu-41 Posted November 22 Author Share Posted November 22 10 minutes ago, Mediacom87 said: On ne tronque pas, on explode(" - ", $feature.value) Bonjour mediacom, merci pour ta participation. Peux-tu m'expliquer ? Car l'id que j'ai est au début id - nom de catégorie Link to comment Share on other sites More sharing options...
Prestashop Addict Posted November 22 Share Posted November 22 ou plus simplement un cast {$link->getCategoryLink((int)$feature.value)} 1 Link to comment Share on other sites More sharing options...
Manu-41 Posted November 22 Author Share Posted November 22 4 minutes ago, Prestashop Addict said: ou plus simplement un cast {$link->getCategoryLink((int)$feature.value)} oui ca fonctionne,285 étant un id de catégorie {$link->getCategoryLink((int)285)} ca, ca ne fonctionne pas {$link->getCategoryLink((int)$feature.value|truncate:3:"" nofilter)} Link to comment Share on other sites More sharing options...
Eolia Posted November 22 Share Posted November 22 (edited) {foreach from=$product.grouped_features item=feature} {if $feature.id_feature ==70} {assign var="item" value=explode(' - ', $feature.value)} <a href="{$link->getCategoryLink((int)$item[0])}">{$item[1]}</a> {/if} {/foreach} Edited November 22 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
Manu-41 Posted November 22 Author Share Posted November 22 37 minutes ago, Eolia said: {foreach from=$product.grouped_features item=feature} {if $feature.id_feature ==70} {assign var="item" value=explode(' - ', $feature.value)} <a href="{$link->getCategoryLink((int)$item[0])}">nom de categorie</a> {/if} {/foreach} Super, ça fonctionne. Du coup, pour récupérer le nom de la catégorie depuis l'id ? Link to comment Share on other sites More sharing options...
Mediacom87 Posted November 22 Share Posted November 22 il y a 28 minutes, Manu-41 a dit : Super, ça fonctionne. Du coup, pour récupérer le nom de la catégorie depuis l'id ? $item[1] Il suffit de lire la documentation des fonctions PHP https://www.php.net/manual/fr/function.explode.php 1 Link to comment Share on other sites More sharing options...
Manu-41 Posted November 22 Author Share Posted November 22 Du coup, vu que dans ma valeur, j'ai mon nom de catégorie, il est donc possible d'afficher uniquement ce nom. Je comprends que le explode a enlevé la suite de "id -" Comment l'utiliser pour avoir justement ce qui suit le "id -" ? Link to comment Share on other sites More sharing options...
Eolia Posted November 22 Share Posted November 22 Il y a 1 heure, Eolia a dit : {foreach from=$product.grouped_features item=feature} {if $feature.id_feature ==70} {assign var="item" value=explode(' - ', $feature.value)} <a href="{$link->getCategoryLink((int)$item[0])}">{$item[1]}</a> {/if} {/foreach} Link to comment Share on other sites More sharing options...
Eolia Posted November 22 Share Posted November 22 Le explode() a transformé votre chaine de caractères en un tableau en séparant les éléments chaque fois qu'il rencontre '-' dans la chaine. Vous vous retrouvez donc avec un tableau à 2 entrées (0 et 1) qui contiennent l'id et le nom. $item = array( 0 => id_category, 1 => category_name ); $item[0] = votre ID catégorie $item[1] = le nom de votre catégorie Link to comment Share on other sites More sharing options...
Manu-41 Posted November 22 Author Share Posted November 22 (edited) 12 minutes ago, Eolia said: Le explode() a transformé votre chaine de caractères en un tableau en séparant les éléments chaque fois qu'il rencontre '-' dans la chaine. Vous vous retrouvez donc avec un tableau à 2 entrées (0 et 1) qui contiennent l'id et le nom. $item = array( 0 => id_category, 1 => category_name ); $item[0] = votre ID catégorie $item[1] = le nom de votre catégorie Merci pour ces explications Eolia. Du coup, pour avoir le nom : {$item[1]} ? Oui, je sais, je suis nul 😂 Edited November 22 by Manu-41 merci (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted November 22 Share Posted November 22 Oui j'ai édité mon code plus haut, vous avez tout. Link to comment Share on other sites More sharing options...
Manu-41 Posted November 22 Author Share Posted November 22 10 minutes ago, Eolia said: Oui j'ai édité mon code plus haut, vous avez tout. Super ! mille mercis. Link to comment Share on other sites More sharing options...
Eolia Posted November 22 Share Posted November 22 Un like fait toujours plaisir, hein 1 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