2017-06-26 10 views
0

Prestashops 1.6モジュールを作成しています。 HelperForm selectに入力を追加した後、htmlでスクリプトはクラスfixed-width-x1を追加しました。Prestashop 1.6 HelperFormは、フォームセレクタに固定幅-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

それは間違って動作しますなぜ? 私は選択するクラスを追加したいが、固定幅-x1はプロパティ幅を上書きする。

答えて

0

このクラスは、選択をレンダリングするプロセスでHelperFormクラスによって自動的に追加されます。

しかし、私の意見では、選択にクラスを追加し、この新しいクラスのスタイルを変更することができます。

のみオプション配列の最後にこれを追加し、選択するために、新しいクラスを追加するには:

'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' 
       ), 
      ) 
     ); 

は、それはあなたのお役に立てば幸いです。

[EDIT]

HelperFormクラスは、この入力を行うためのテンプレートを使用しています。このテンプレートは、次のとおりです。あなたが任意のコントロール」で、このクラスに割り当てられているところを見ることができます

{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" 

最後の行で:

ライン341の周りに、このファイルに
/[admin-folder]/themes/default/template/helpers/form/form.tpl 

、あなたはこのコードを見つけることができます固定幅-xl」となる。

ソリューション:

  1. あなたはTPLから直接クラスを削除することができますが、これは管理パネルにあるすべての入力に に影響を与えます。また、prestashopのバージョンを更新したい場合は、この変更を失った可能性があります。

  2. 「!important」を削除してadminのcssファイルを編集できます。このファイルには、次のとおりです。

    /[admin-folder]/themes/default/css/admin-theme.css

+0

'名前のカスタムクラスの固定幅-xl'クラスは、後にフィールドを追加します配列する。クラスfixed-width-x1は残っています。何か案は? – Arasowsky

+0

正確には、このプロシージャは現在のクラスを置き換えるのではなく、必要なスタイルを割り当てるために新しいクラスを追加するだけです。しかし、 "fixed-width-xl"クラスのあなたの問題は何ですか? – Addis

+0

このクラスのプロパティの幅は!importantです。私はこのクラスを入力セレクタには必要としません。例えば、入力テキストはこのクラスではありません。 – Arasowsky