Olivier CLEMENCE Posted August 2, 2013 Share Posted August 2, 2013 J'ai rédigé un article expliquant comment ajouter un helper à vos modules. Par exemple la fameuse checkbox manquante au formulaire . http://blog.manit4c.com/2013/08/02/comment-creer-un-helper-sous-prestashop/ N'hésitez pas laisser des commentaires ou poser vos questions (de préférence sur le blog car le forum ne m'envoie plus les alertes emails :'( ) Link to comment Share on other sites More sharing options...
SMorillon.com Posted August 2, 2013 Share Posted August 2, 2013 (edited) Bonjour, Désolé mais votre tutoriel ne correspond pas à la méthode à suivre.... Le fichier form.tpl devrait correspondre à {extends file="helpers/form/form.tpl"} {block name="input"} {if ($input.type == "checkbox")} <div class="clear"></div> <label>{$field.label}: </label> <div class="margin-form"> <input type="checkbox" name="{$field.name}" id="{$field.id}" value="" class=""> <p class="preference_description">{$field.desc}</p> </div> {else} {$smarty.block.parent} {/if} {/block} et la fonction renderForm : public function renderForm() { if (!($obj = $this->loadObject(true))) return; $this->fields_form = array( 'legend' => array( 'title' => $this->l('Video'), 'image' => '../img/admin/cog.gif', ), 'input' => array( array( 'type' => 'text', 'label' => $this->l('Title:'), 'name' => 'title', 'size' => 50, 'desc' => $this->l('The title is used only in admin') ), array( 'type' => 'text', 'label' => $this->l('Width:'), 'name' => 'width', 'size' => 10 ), array( 'type' => 'text', 'label' => $this->l('Height:'), 'name' => 'height', 'size' => 10 ), array( 'type' => 'text', 'lang' => true, 'autoload_rte' => true, 'label' => $this->l('Link:'), 'name' => 'link', 'size' => 150, 'desc' => $this->l('Copy the video url here. You can use youtube, dailymotion and wimeo video') ), array( 'type' => 'checkbox', 'label' => $this->l('show on all page:'), 'name' => 'displayAll', 'size' => 150, 'id'=>'id', 'desc' => $this->l('demo desc') ), ), 'submit' => array( 'title' => $this->l('Save'), 'class' => 'button' ) ); return parent::renderForm(); } Concernant l'exemple pris, la checkbox existe déjà dans Prestahsop depuis au moins la version 1.5.2 Edited August 2, 2013 by SMorillon.com (see edit history) Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted August 2, 2013 Author Share Posted August 2, 2013 Ah merci pour l'info car ma méthode marche mais en effet ça me génait de pas pouvoir l'inclure dans l'array input dans le renderForm. par contre comment appel t'on l'helper "checkbox" s'il existe déjà, car j'avoue que je n'ai pas trouvé ! Link to comment Share on other sites More sharing options...
SMorillon.com Posted August 2, 2013 Share Posted August 2, 2013 par contre comment appel t'on l'helper "checkbox" s'il existe déjà, car j'avoue que je n'ai pas trouvé ! Il suffit de mettre ce tableau dans le array input : array( 'type' => 'checkbox', 'label' => $this->l('show on all page:'), 'name' => 'displayAll', 'size' => 150, 'id'=>'id', 'desc' => $this->l('demo desc') ), Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted August 2, 2013 Author Share Posted August 2, 2013 Alors je viens d'essayer et avec votre méthode le fichier form.tpl doit ressembler à ceci: {extends file="helpers/form/form.tpl"} {block name="input"} {if $input.type=='checkbox'} <input type="checkbox" name="{$input.name}" id="{$input.id}" value="" class=""> {else} {$smarty.block.parent} {/if} {/block} Par contre si je met juste: array( 'type' => 'checkbox', 'label' => $this->l('show on all page:'), 'name' => 'displayAll', 'size' => 150, 'id'=>'id', 'desc' => $this->l('demo desc') ), Dans mon controller sans créer le fichier form.tpl je n'ai pas de checkbox qui apparaît mais le message suivant: Undefined index: values C'est ce qui me fait penser que le helper checkbox n'existe pas de base. Link to comment Share on other sites More sharing options...
SMorillon.com Posted August 2, 2013 Share Posted August 2, 2013 (edited) Voici un exemple qui fonctionne : array( 'type' => 'checkbox', 'name' => 'cms_footer_powered_by', 'values' => array( 'query' => array( array( 'id' => 'on', 'name' => $this->l('Display "Powered by PrestaShop"'), 'val' => '1' ), ), 'id' => 'id', 'name' => 'name' ) En ajoutant des valeur dans query, on peux avoir plusieurs checbox pour un même groupe de valeur. Edited August 2, 2013 by SMorillon.com (see edit history) Link to comment Share on other sites More sharing options...
Olivier CLEMENCE Posted August 2, 2013 Author Share Posted August 2, 2013 En effet autant pour moi je n'avais trouvé la bonne syntaxe pour l'utiliser et je ne l'avais pas vu non plus dans la class helper... 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