Как использовать переключатель типа для изменения CSS в формах PrestaShop 1.7 - PullRequest
0 голосов
/ 16 октября 2018

Я хочу, чтобы переключатель типа изменил значение в классе css, но переключатель типа не поддерживает пользовательские значения, тогда 1 и 0?как это сделать?

   'input' => array(
    'type' => 'switch',
    'label' => $this->l('backgrounds'),
    'name' => 'test',
    'options' => array(
    'query' => $test,
          'id' => 'id_option',
          'name' => 'name'
        )
    )
),

    $test = array(
        array(
            'id_option' => '#header {background: #ffffff;}',
            'name' => $this->l('white bg')
        ),
        array(
            'id_option' => '#header {background: #333333;}',
            'name' => $this->l('dark bg')
        ),
    );

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Я думаю, что switch поддерживает только значения «On» / «Off» и «Yes / No» - вы можете попробовать изменить следующую логику в form.tpl, но вместо этого проще использовать другой тип

<label {if $value.value == 1} for="{$input.name}_on"{else} for="{$input.name}_off"{/if}>
    {if $value.value == 1}
        {l s='Yes' d='Admin.Global'}
    {else}
        {l s='No' d='Admin.Global'}
    {/if}
</label>
0 голосов
/ 16 октября 2018

Для типа «switch» вы должны использовать «values» вместо «options».

Это пример из модуля PrestaShop по умолчанию:

    $input = array(
        'type' => 'switch',
        'label' => $this->trans('Newsletter', array(), 'Admin.Orderscustomers.Feature'),
        'name' => 'newsletter',
        'required' => false,
        'class' => 't',
        'is_bool' => true,
        'value' => $newsletter,
        'values' => array(
            array(
                'id' => 'newsletter_on',
                'value' => 1,
                'label' => $this->trans('Enabled', array(), 'Admin.Global'),
            ),
            array(
                'id' => 'newsletter_off',
                'value' => 0,
                'label' => $this->trans('Disabled', array(), 'Admin.Global'),
            )
        ),
        'hint' => $this->trans('This customer will receive your newsletter via email.', array(), 'Admin.Orderscustomers.Help'),
    );
...