Prestashop 1.6 HelperForm添加类fixed-width-x1以形成选择器

时间:2017-06-26 10:21:26

标签: prestashop

我正在创建一个Prestashops 1.6模块。在HelperForm select中添加输入后,在html脚本中添加了类fixed-width-x1。

$fields_form[0]['form'] = array(
                'tinymce' => true,
                'legend' => array(
                    'title' => $this->l('Add rule'),
                ),
                'submit' => array(
                    'name' => 'add',
                    'title' => $this->l('Add'),
                    'class' => 'btn btn-default pull-right'
                ),
                'input' => array(
                    array(
                        'type' => 'select',
                        'label' => $this->l('Category'),
                        'name' => 'category',
                        'required' => true 
                    ),
                )
            );

Screen Firebug

为什么它错误? 我想添加自己的类来选择,但fixed-width-x1覆盖属性宽度。

1 个答案:

答案 0 :(得分:0)

HelperForm类在渲染select的过程中自动添加此类。

但是,在我看来,你可以做的是在select中添加一个类,然后在这个新类中更改样式。

要向select添加新类,只需在options数组的末尾添加:

 'class' => 'name-of-custom-class'

确保最后一个选项后面的逗号存在。

总之,应该是这样的:

$fields_form[0]['form'] = array(
            'tinymce' => true,
            'legend' => array(
                'title' => $this->l('Add rule'),
            ),
            'submit' => array(
                'name' => 'add',
                'title' => $this->l('Add'),
                'class' => 'btn btn-default pull-right'
            ),
            'input' => array(
                array(
                    'type' => 'select',
                    'label' => $this->l('Category'),
                    'name' => 'category',
                    'required' => true,
                    'class' => 'name-of-custom-class'
                ),
            )
        );

希望它对你有所帮助。

<强> [编辑]

HelperForm类使用模板来进行此输入。这个模板是:

/[admin-folder]/themes/default/template/helpers/form/form.tpl

在第341行的这个文件中,您可以找到以下代码:

{elseif $input.type == 'select'}
    {if isset($input.options.query) && !$input.options.query && isset($input.empty_message)}
        {$input.empty_message}
        {$input.required = false}
        {$input.desc = null}
    {else}
        <select name="{$input.name|escape:'html':'utf-8'}"
        class="{if isset($input.class)}{$input.class|escape:'html':'utf-8'}{/if} fixed-width-xl"

在最后一行中,您可以看到为此类分配了任何控件的位置&#34; fixed-width-xl&#34;。

解决方案:

  1. 您可以直接从tpl中删除该类,但这会影响 到管理面板中的所有输入。并且,如果您想要更新prestashop版本,可能是您丢失了此更改。

  2. 您可以编辑删除&#34;!important&#34;的admin css文件。这个文件是:

    / [管理文件夹] /themes/default/css/admin-theme.css