Jump to content

[Tuto] comment ajouter un helper pour vos modules


Recommended Posts

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

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 by SMorillon.com (see edit history)
Link to comment
Share on other sites

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

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

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 by SMorillon.com (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...