Trier une liste de catégorie par ordre alphabétique | Magento

Fermé
Diineros Messages postés 13 Date d'inscription mercredi 28 juin 2017 Statut Membre Dernière intervention 4 juillet 2017 - Modifié le 28 juin 2017 à 11:34
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 30 juin 2017 à 09:51
Bonjour,

J'ai un code qui affiche une liste de catégories mais je n'arrive pas à afficher cette liste par ordre alphabétique. Merci pour votre aide

Voici le code :


Voici l'affichage :
A voir également:

2 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
28 juin 2017 à 11:53
Salut,

merci d'utiliser les balises de codes et de copier/coller ton code, ça sera beaucoup plus simple à lire qu'une petite image, on pourra également réaliser des copier/coller au besoin et aussi avoir une numérotation des lignes.

Ensuite, pour te répondre, le plus facile avec ce que tu montres, ça serait de récupérer tes données dans un tableau, puis de trier ce tableau par ordre alpha et de le parcourir à nouveau pour faire ton affichage.

Ce n'est pas le top, parce que tu as un double parcours, l'idéal serait que en ligne 4, tu récupères ton $cats déjà trié. Alors je ne connais pas magento, tu as peut être une manière d'effectuer un order by sur ->getCategoryIds ou bien il faudrait créer une nouvelle méthode pour le faire directement.
0
Diineros Messages postés 13 Date d'inscription mercredi 28 juin 2017 Statut Membre Dernière intervention 4 juillet 2017
28 juin 2017 à 14:12


<div class="box-collateral">
<?php
$_product = $this->getProduct();
$cats = $_product->getCategoryIds();
?>
<h2>Liste des périphériques utilisant ce produit</h2>
<ul id="containingCats">

<?php

foreach($cats as $category_id):
$_cat = Mage::getModel('catalog/category')->Load($category_id);

//to skip categories within the "cartridge model" section
if($_cat->getParentId() == 16)
continue;
?>

<li><a href="<?php echo $_cat->getUrl(); ?>"><?php echo $_cat->getName();?></a></li>
<?php
endforeach;
?>
</ul>
<br class="clrBth"/>
</div>




voila comme ça je pense que ça ira mieux et désolé pour l'attente
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
28 juin 2017 à 14:17
C'est un peu mieux, mais on peut faire encore mieux ! Si tu cliques sur la petite fleche à côté de la balise de code, tu verras qu'on peut choisir le langage, si tu choisis PHP, tu obtiendras alors la coloration syntaxique ET la numérotation des lignes.
Ils auraient du ajouter la numérotation même pour la balise code de base à mon goût... mais ça tu n'y peux rien toi ^^

Par ailleurs, ma réponse ne change pas, regarde si ça te convient ;)
0
Diineros Messages postés 13 Date d'inscription mercredi 28 juin 2017 Statut Membre Dernière intervention 4 juillet 2017 > ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021
28 juin 2017 à 14:23
<div class="box-collateral">
<?php
$_product = $this->getProduct();
$cats = $_product->getCategoryIds();
?>
<h2>Liste des périphériques utilisant ce produit</h2>
<ul id="containingCats">

<?php

               foreach($cats as $category_id):
               $_cat = Mage::getModel('catalog/category')->Load($category_id);
    
               //to skip categories within the "cartridge model" section
               if($_cat->getParentId() == 16)
                         continue;
?>

<li><a href="<?php echo $_cat->getUrl(); ?>"><?php echo $_cat->getName();?></a></li>
<?php
endforeach;
?>
</ul>
<br class="clrBth"/>
</div>
0
Diineros Messages postés 13 Date d'inscription mercredi 28 juin 2017 Statut Membre Dernière intervention 4 juillet 2017 > Diineros Messages postés 13 Date d'inscription mercredi 28 juin 2017 Statut Membre Dernière intervention 4 juillet 2017
28 juin 2017 à 14:24
ha voila c'est largement mieux, merci ;)
Ecoute je vais essayer de faire comme tu m'a dis
0
Diineros Messages postés 13 Date d'inscription mercredi 28 juin 2017 Statut Membre Dernière intervention 4 juillet 2017
28 juin 2017 à 14:16
Le truc c'est que j'ai déjà essayé de trier le $cats mais rien qui marche.
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
28 juin 2017 à 14:28
Bah si tu essaies juste de trier $cats, c'est normal.
J'imagine que $cats est un tableau d'id avec des index numériques du genre

$cats = array(
    '0' => '12',
    '1' => '14',
    '2' => '16',
    '3' => '19',
    '4' => '21',
    '5' => '27',
);


il n'y a donc pas grand chose à trier à ce niveau là.
Si tu construits un tableau avec les données que tu veux afficher, là tu pourras faire un tri avant ton affichage. Mais tu vas d'abord devoir le créer parce qu'il n'existe pas dans ton code.
0
Diineros Messages postés 13 Date d'inscription mercredi 28 juin 2017 Statut Membre Dernière intervention 4 juillet 2017 > ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021
28 juin 2017 à 14:31
Oui il faut que je construise un tableau c'est ce que je me suis dit mais le problème c'est que les données je ne les connais pas à l'avance si tu vois ce que je veux dire. Les données sont récupérées dans la base de données et justement je n'arrive pas a faire un tableau avec ces données à l'intérieur pour pouvoir ensuite les trier.
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
28 juin 2017 à 14:35
C'est ce que je t'explique dans mon premier message, tu construits ton tableau dans ton foreach, puis tu tries ton tableau, puis tu parcours ton tableau pour faire ton affichage.
0
Diineros Messages postés 13 Date d'inscription mercredi 28 juin 2017 Statut Membre Dernière intervention 4 juillet 2017
28 juin 2017 à 14:37
Ok donc je dois juste toucher au foreach pour faire les modifs
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
28 juin 2017 à 14:39
oui, tu vas devoir en ajouter un autre après
0