Flo_180 Posted August 7, 2013 Share Posted August 7, 2013 Bonjour, Tout d'abord ceci n'est pas un bug mais une suggestion d'amélioration qui me semble plutôt logique. A la ligne 1590 du fichier classes/AdminController.php // For add a fields via an override of $fields_form, use $fields_form_override if (is_array($this->fields_form_override) && !empty($this->fields_form_override)) $this->fields_form[0]['form']['input'][] = $this->fields_form_override; Ce qui ne laisse comme possibilité d'ajouter qu'un seul et unique champ en overide... Ne faudrait il pas joué avec un tableau ? on pourrai ajouter un nombre de champs infinis... ce qui m'aurai surement fait gagner plusieurs minutes aujourd'hui (à part si un moyen existe et que je n'en connait pas l'existence) Désolé si ce n'est pas dans la bonne section. Merci. Link to comment Share on other sites More sharing options...
Prestaspirit Posted August 7, 2013 Share Posted August 7, 2013 Bonjour, Pourquoi vous ne pourriez pas mettre un tableau? fields_form_override peut contenir autant de champs que vous voulez!? Link to comment Share on other sites More sharing options...
Flo_180 Posted August 7, 2013 Author Share Posted August 7, 2013 (edited) Bonjour, L'avez vous déjà essayé ? Il ne peux contenir qu'un seul champ, le is_array permet uniquement de détecter si le fields_form_override contient bien le name, le type, le size (en option), etc... Mais ne permet pas d'en ajouter plusieurs... J'ai bricoler cette syntaxe (loin d'être propre) en override du AdminController qui fonctionne : // For add a fields via an override of $fields_form, use $fields_form_override if (is_array($this->fields_form_override) && !empty($this->fields_form_override)) { foreach($this->fields_form_override as $field) if(!is_array($field)) { $this->fields_form[0]['form']['input'][] = $this->fields_form_override; break; } else $this->fields_form[0]['form']['input'][] = $field; } Edited August 7, 2013 by Flo_180 (see edit history) Link to comment Share on other sites More sharing options...
Prestaspirit Posted August 7, 2013 Share Posted August 7, 2013 Effectivement j'avais pas vu qu'on ne peut pas mettre plusieurs champ, j'en avais pas eu besoin non plus. Je pense que le plus simple est de corriger comme ceci: if (is_array($this->fields_form_override) && !empty($this->fields_form_override)) $this->fields_form[0]['form']['input'] = array_merge($this->fields_form[0]['form']['input'], $this->fields_form_override); ensuite on peut créer nos tableau tranquillement : $this->fields_form_override = array( array( 'type' => 'radio', 'label' => $this->l('Exemple:'), 'name' => 'exemple', 'class' => 't', 'is_bool' => true, 'values' => array( array( 'id' => 'exemple_on', 'value' => 1, 'label' => $this->l('Yes') ), array( 'id' => 'exemple_off', 'value' => 0, 'label' => $this->l('No') ), ), 'desc' => $this->l('exmple') ), array( 'type' => 'radio', 'label' => $this->l('Exemple:'), 'name' => 'exemple', 'class' => 't', 'is_bool' => true, 'values' => array( array( 'id' => 'is_virtual_attribute_on', 'value' => 1, 'label' => $this->l('Yes') ), array( 'id' => 'is_virtual_attribute_off', 'value' => 0, 'label' => $this->l('No') ), ), 'desc' => $this->l('exmple') ) ); Link to comment Share on other sites More sharing options...
Flo_180 Posted August 7, 2013 Author Share Posted August 7, 2013 Oui, mais pense à la compatibilité Link to comment Share on other sites More sharing options...
Prestaspirit Posted August 7, 2013 Share Posted August 7, 2013 Compatibilité !? C'est pas un tableau utilisé en natif sur prestashop, il vous suffit de rajouter un tableau sur vos champs déjà définie dans $this->fields_form_override Link to comment Share on other sites More sharing options...
Flo_180 Posted August 7, 2013 Author Share Posted August 7, 2013 Oui mais si un module est installé et utilise l'override avec la syntaxe d'orgine. Tu va tout bousiller avec ton code Link to comment Share on other sites More sharing options...
Prestaspirit Posted August 7, 2013 Share Posted August 7, 2013 Oops, je croyais que tu était développeur, en faite tu peut rajouter une condition pour vérifier que c'est bien un tableau multiple // For add a fields via an override of $fields_form, use $fields_form_override if (is_array($this->fields_form_override) && !empty($this->fields_form_override)) if(is_array(reset($this->fields_form_override))) $this->fields_form[0]['form']['input'] = array_merge($this->fields_form[0]['form']['input'], $this->fields_form_override); else $this->fields_form[0]['form']['input'][] = $this->fields_form_override; Link to comment Share on other sites More sharing options...
Flo_180 Posted August 7, 2013 Author Share Posted August 7, 2013 (edited) J'avais jamais couplé avec le reset ahah. Merci pour l'astuce et pour la pique. Edited August 7, 2013 by Flo_180 (see edit history) Link to comment Share on other sites More sharing options...
Julie S. Posted August 7, 2013 Share Posted August 7, 2013 Bonjour, Héhé ce n'est pas un bug ? bon ben alors on ne va pas le mettre ici Ce forum est important pour faciliter le travail des développeurs qui tentent de corriger les bugs, merci donc de lire ses règles : http://www.prestasho...-dans-ce-forum/ Je vais suggérer une partie "suggestions" en attendant, je déplace et précise votre titre. voilou, Merci Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now