Bonjour,
Je développe actuellement en petit module sur prestashop pour m’entraîner. Avec ce module je souhaite afficher un guide des tailles dans les fiches produits dans les catégories que j'aurais choisi dans le backoffice sur la page de configuration. Mais je rencontre un problème lorsque j'essaie de récupérer les valeurs de mes checkbox de la page de configuration. Je vous met toutes les fonctionnalités que j'ai réalisé. En espérant que vous puissiez me donner une piste pour continuer
Dans la fonction Displayform j'essaie de print_r la configuration pour voir ce qu'il y a dedans, mais j'ai l'impression qu'elle est toujours vide, vu qu'elle ne s'affiche pas.
Merci par avance à la commu et bonne journée à vous !
public function install() { if (Shop::isFeatureActive()) { Shop::setContext(Shop::CONTEXT_ALL); } if (!parent::install() || !$this->registerHook('displayProductActions') || !$this->registerHook('displayHeader') || !Configuration::updateValue('DS_SIZEGUIDE_CATEGORY', array()) ) { return false; } return true; } public function uninstall() { if (!parent::uninstall() || !Configuration::deleteByName('DS_SIZEGUIDE_CATEGORY')) { return false; } return true; }
public function getContent() { $output = null; $currentConfiguration = strval(Tools::getValue('DS_SIZEGUIDE_CATEGORY')); if (Tools::isSubmit('btnSubmit')) { $cats = Category::getCategories( (int)($cookie->id_lang), true, false ); $newConfiguration = array(); $checkboxValues = Tools::getValue('choix'); $i = 0; foreach ($cats as $cat) { if ($cat['id_category'] > 2) { $checkboxValue = array($cat['name'] => $checkboxValues[$i]); array_push($newConfiguration, $checkboxValue); $i++; } } Configuration::updateValue('DS_SIZEGUIDE_CATEGORY', $newConfiguration); $output .= $this->displayConfirmation($this->l('Paramètres mis à jour')); } return $output.$this->displayForm(); }
public function displayForm(){ $currentConfiguration = strval(Tools::getValue('DS_SIZEGUIDE_CATEGORY')); $cats = Category::getCategories( (int)($cookie->id_lang), true, false ) ; $default_lang = (int)Configuration::get('PS_LANG_DEFAULT'); print_r($currentConfiguration); $fields_form = array(); $fields_form[0]['form'] = array( 'legend' => array( 'title' => $this->l('Settings'), ), 'input' => array( array( 'type' => 'checkbox', 'label' => $this->l('Faite votre sélection de catégorie(s) :'), 'name' => 'choix', 'values' => array( 'query' => $lesChoix = array(), 'id' => 'check_id', 'name' => 'name' ), ), ), 'submit' => array( 'title' => $this->l('Save'), 'name' => 'btnSubmit', 'class' => 'btn btn-default pull-right' ) ); foreach ($cats as $cat) { if ($cat['id_category'] > 2) { $fields_form[0]['form']['input'][0]['values']['query'][] = array('check_id' => $cat['id_category'], 'name' => $cat['name']); } } $helper = new HelperForm(); // Module, token and currentIndex $helper->module = $this; $helper->name_controller = $this->name; $helper->token = Tools::getAdminTokenLite('AdminModules'); $helper->currentIndex = AdminController::$currentIndex.'&configure='.$this->name; // Language $helper->default_form_language = $default_lang; $helper->allow_employee_form_lang = $default_lang; // Title and toolbar $helper->title = $this->displayName; $helper->show_toolbar = true; $helper->toolbar_scroll = true; $helper->submit_action = 'submit'.$this->name; $helper->toolbar_btn = array( 'save' => array( 'desc' => $this->l('Save'), 'href' => AdminController::$currentIndex.'&configure='.$this->name.'&save'.$this->name. '&token='.Tools::getAdminTokenLite('AdminModules'), ), 'back' => array( 'href' => AdminController::$currentIndex.'&token='.Tools::getAdminTokenLite('AdminModules'), 'desc' => $this->l('Back to list') ) ); // Load current value $helper->fields_value['DS_SIZEGUIDE_CATEGORY'] = Configuration::get('DS_SIZEGUIDE_CATEGORY'); $helper->fields_value['check_id'] = false; return $helper->generateForm($fields_form); }