Classer des données dans une fonction

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

  1. Contributeur Ambassadeur

    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
    1. 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
  2. Contributeur Ambassadeur

    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
    1. 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
    2. Contributeur Ambassadeur
      @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
    3. @yg_be

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

      0