Prestashop : Utiliser l’arbre des catégories dans le formulaire d’administration d’un module

Ce tutoriel est compatible avec les versions de Prestashop suivantes :
1.5 1.6 8.0 +
Cet article est assez ancien, malgré toute l'attention que j' apporte à mes contenus il est possible que celui-ci ne soit plus d'actualité.
N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.

Si vous souhaitez utiliser l’arbre des catégories de Prestashop dans le formulaire d’administration d’un module.

Voici un petit snippet qui vous permettra de le faire facilement avec Prestashop 1.6 et supérieurs lors de la déclaration des paramètres de votre formulaires :
( Cette solution est nativement implémentée )

 $fields_form = array(
            'form' => array(
                //Entête du formulaire
                'legend' => array(
                    'title' => $this->l('Form Name'),
                    'icon' => 'icon-cogs'
                ),
                //Champs du formulaire
                'input' => array(
                    array(
                        'type' => 'categories', //Type de champ à mettre à catégories
                        'label' => $this->l('Category'),
                        'name' => 'category_tree',
                        'desc' => $this->l('Select category to display'),
                        'required' => true,
                        'empty_message' => $this->l('Please fill the category id'),
                        //Informations spécifiques de l'arbre
                        'tree' => array(
                            'id' => 'category_tree',
                            'selected_categories' => $selected_categories) // Catégorie sélectionnées ( variable array )
                        ),
                    ),  
                ),
                //Boutons de soumission du formulaire
                'submit' => array(
                    'title' => $this->l('Save'),
                    'class' => 'button btn btn-default pull-right',
                )
            ),
        );

Le rendu obtenu est ensuite le suivant :

Catégories admin form prestashop

7 réflexions sur “Prestashop : Utiliser l’arbre des catégories dans le formulaire d’administration d’un module”

  1. Bonjour Hervé,

    Merci pour ce bout de code. Je cherche à faire à peu près la même chose mais en ayant la possibilité de sélectionner plusieurs catégories.

    En ajoutant ‘use_checkbox’ => true au tree je peux avoir une multi-sélection mais je ne sais pas comment procéder pour les sauvegarder et présélectionner s’il y a eu déjà une sauvegarde.

    D’avance merci pour votre éventuelle aide !
    Cordialement,
    Claire

    1. Bonjour Claire,

      Tout dépends comment vous stocker votre variable derrière, dans une configuration ou dans un objet ?
      Pour que le champ gère plusieurs valeurs je pense qu’il faut changer son nom pour un nom de type array
      'name' => 'category_tree[]',
      A vous de gérer ensuite l’enregistrement de cette variable.

      Cordialement,
      Hervé

  2. Avec retard, merci pour la réponse. J’ai finalement trouvé un plugin gratuit qui s’approchait de ce que je souhaitais faire et n’ai pas eu besoin de trop me creuser la tête 🙂

Répondre à herve Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *