Jump to content

Masquer des réglages de config lors de l'activation d'un switch - Module Prestashop


WolwX

Recommended Posts

Bonjour à tous :)

 

Je me permet de venir à vous pour demander de l'aide aux experts d'entre vous, plus particulièrement à ceux qui maîtrise la création de module prestashop et leur mise en page.

 

Je suis sur la création d'un module, et j'aimerais le publier très bientôt, cependant, au vue du nombres importants de réglages possible, et donc de la lisibilité de la page de réglage, j'aimerais pouvoir masquer des réglages en fonction des réglages parent fait.

 

Voici donc le contenu de ma function générant le formulaire :

public function renderFormIcon()
 {
 $fields_form[1]['form'] = array(
     'legend' => array(
         'title' => $this->l('Icon Settings'),
         'icon' => 'icon-cogs'
     ),
     'input' => array(
                 array(
             'type'    => 'switch',
             'label'   => $this->l('CSS Icon Menu'),
             'desc'    => $this->l('If enabled the menu Icon will be set by CSS (better option), if disabled it will be an image.'),
                 'name'    => 'ICONCSS',
                 'is_bool' => true,
                 'values' => array(
                         array(
                             'id' => 'active_on',
                             'value' => 1,
                             'label' => $this->l('Enabled')
                         ),
                         array(
                             'id' => 'active_off',
                             'value' => 0,
                             'label' => $this->l('Disabled')
                         )),
             ),
             array(
                         'type' => 'file',
                         'label' => $this->l('Icon\'s image file'),
                         'name' => 'ICONIMG',
                 'thumb' => '../modules/'.$this->name.'/img/tmp/'.$ICONFILE,
                 'desc' => $this->l('Set the icon\'s image file.')
                    ),
             array(
                         'type' => 'color',
                         'label' => $this->l('Icon\'s color'),
                         'name' => 'ICONCOLOR',
                 'desc' => $this->l('Set the icon\'s color.')
                    ),
     'submit' => array(
             'name' => 'submitn1verticalsidemenuicon',
             'title' => $this->l('Save'),
             'class' => 'button'
         )
     );

Ensuite voici le javascript que j'inclus sur la view admin (monmodule/views/templates/admin/_configure/helpers/form/form.tpl) :

$(document).ready(function(){
     toggleFields();

     $('#ICONCSS_on').on('change', function() {
         toggleFields();
     });
});
function toggleFields() {
     if ($('#ICONCSS_off').is(':checked')) {
         $('#color_1').hide();
         $('#ICONIMG').show();
     } else {
         $('#color_1').show();
         $('#ICONIMG').hide();
     }
}

Dans ce premier scenario, j'ai un début de fonctionnement, mais les champs masqués ne le sont réellement que lors du premier changement, quand je resollicite le switch, ça ne fonctionne plus :( (peut être un soucis avec l'appel jquery)

 

Dans un second temps j'ai tenté avec une autre function JS, mais là, il ne ce passe rien du tout >< :

$('#ICONCSS_on').on('change',function(){
     var selection = $(this).val();
    switch(selection){
    case "1":
    $("#color_1").show()
   break;
    default:
    $("#color_1").hide()
    }
});

Voilà donc, en espérant que je pourrais avoir quelques pistes pour avancer dans ce but :)

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...