Classer des données dans une fonction

Fermé
Elodie13 - 11 août 2022 à 11:08
 Elodie13 - 12 août 2022 à 15:18

Bonjour,

Je souhaite effectuer une modification sur l'une des fonction de mon site internet afin que l'affichage des données se fasse par ordre alphabetique sur le "product_name" mais malgré plusieurs essais, je n'arrive pas à faire ce que je souhaite. J'ai essayé d'utiliser Asort() sans succès.

Voici la fonction en question:

protected function setFieldsListe()
    {
        $this->fields_list = array(
            'image' => array(
                'title' => $this->l('Image'),
                'image' => 'p',
                'align' => 'center',
                'search' => false,
                'orderby' => false,
                'filter' => false
            ),
            'product_quantity' => array(
                'title' => $this->l('Qty to ship'),
                'align' => 'center',
                'search' => true
            ),
            'QtyPacked' => array(
                'title' => $this->l('Qty packed'),
                'align' => 'center',
                'callback' => 'getQtyPacked',
                'search' => false,
                'orderby' => false
            ),
            'product_reference' => array(
                'title' => $this->l('Reference'),
                'align' => 'center',
                'search' => true,
                'orderby' => true
            ),
            'product_ean13' => array(
                'title' => $this->l('Barcode'),
                'align' => 'center',
                'search' => true
            ),
            'location' => array(
                'title' => $this->l('Location'),
                'align' => 'center',
                'callback' => 'getLocation',
                'search' => true
            ),
            'product_name' => array(
                'title' => $this->l('Product'),
                'align' => 'center',
                'search' => true,
                'class' => 'productName',
                'orderby' => false
            ),
            'status' => array(
                'title' => $this->l('Status'),
                'align' => 'center',
                'callback' => 'setStatus',
                'search' => false,
                'orderby' => false
            )
        );
    }

Pourriez-vous m'aider ?

Merci.
Windows / Firefox 103.0

2 réponses

yg_be Messages postés 22779 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 mai 2024 1 481
11 août 2022 à 20:23

bonjour,

je ne  vois ni comment tu as utilisé Asort(), ni le résultat que tu as obtenu, ni en quoi c'est différent du résultat que tu espères.

0

Bonjour,

Merci pour ce retour. Voici ce que j'ai tenté:

 protected function setFieldsListe()
    {
        $this->fields_list = array(
            'image' => array(
                'title' => $this->l('Image'),
                'image' => 'p',
                'align' => 'center',
                'search' => false,
                'orderby' => false,
                'filter' => false
            ),
            'product_quantity' => array(
                'title' => $this->l('Qty to ship'),
                'align' => 'center',
                'search' => true
            ),
            'QtyPacked' => array(
                'title' => $this->l('Qty packed'),
                'align' => 'center',
                'callback' => 'getQtyPacked',
                'search' => false,
                'orderby' => false
            ),
            'product_reference' => array(
                'title' => $this->l('Reference'),
                'align' => 'center',
                'search' => true,
                'orderby' => true
            ),
            'product_ean13' => array(
                'title' => $this->l('Barcode'),
                'align' => 'center',
                'search' => true
            ),
            'location' => array(
                'title' => $this->l('Location'),
                'align' => 'center',
                'callback' => 'getLocation',
                'search' => true
            ),
            'product_name' => asort(array(
                'title' => $this->l('Product'),
                'align' => 'center',
                'search' => true,
                'class' => 'productName',
                'orderby' => false
            ),SORT_REGULAR),
            'status' => array(
                'title' => $this->l('Status'),
                'align' => 'center',
                'callback' => 'setStatus',
                'search' => false,
                'orderby' => false
            )
        );
    }

Mais cela donne une erreur "FatalErrorException "

J'ai également tenté de mettre 'orderby' => true mais cela ne change rien au positionnement des éléments.

0
yg_be Messages postés 22779 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 mai 2024 1 481
12 août 2022 à 10:52

Je pense que cette fonction crée un tableau qui contient une seule ligne, pour un seul produit.  Ce ne serait pas alors le bon endroit pour trier par produit.

0

Merci pour ce retour.

Voici ce que donne comme résultat la fonction. Cela affiche effectivement une ligne par produit.

Une idée sur comment faire en sorte que cet affichage se fasse par ordre alphabétique sur le nom ?

Merci

0
yg_be Messages postés 22779 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 mai 2024 1 481 > Elodie13
Modifié le 12 août 2022 à 15:09

Je pense que le résultat que tu montres est préparé par autre chose, qui utilise la fonction.
Le tri doit être fait ailleurs.

0
Elodie13 > yg_be Messages postés 22779 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 mai 2024
12 août 2022 à 15:18

Je vais regarder si je trouve quelque chose :) Merci ^^

0