Classer des données dans une fonction

Elodie13 -  
 Elodie13 -

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

A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

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
Elodie13
 

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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

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
Elodie13
 

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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Elodie13
 

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 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 

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

0