web-dev-qa-db-ja.com

Joomlaが生成するSELECTフィールドのクラスを変更するにはどうすればよいですか?

すべてのchosen.jsタグがプレーンHTMLになるように<select>を無効にしましたが、これまでのところ、inputboxのデフォルトクラスを選択したクラスに変更できません(特にコンポーネントページの検索ツールフィルター)。

フォームのオーバーライドに関する多くの回答とチュートリアルを見てきましたが、例を理解していないか、間違った種類のオーバーライドを調べています。

最終的に、<select>で生成されるlibraries\cms\html\select.phpのクラスを変更したいと思います。テンプレートにパス/ファイルを追加しようとしましたが、それを行うことができません。以下のように$optionsでフィールドを生成しているのがわかりますが、THATがどこで決定および提供されているのかわかりません。

$options Array (
    [format.depth] => 0
    [format.eol] => 

    [format.indent] =>  
    [id] => filter_event_group_id
    [list.attr] => class="inputbox" onchange="this.form.submit()"
    [list.translate] => 
    [option.key] => value
    [option.text] => text
    [list.select] => 
)

リストフォームフィールドタイプ でXMLに指定する私の試みも失敗しています-ページは空白になりますが、私のフィールドは実際には SQLフォームフィールドタイプ これは、SelectのようにClassパラメータをサポートしていないようです。

<field name="created_by" class="MyChosenClassname" type="sql"...`

したがって、問題は、このオーバーライドをテンプレートに適切に追加する方法、または生成された<select>タグで使用するクラス名を指定する方法ですか。

3
GDP

JQueryを使用してカスタムクラスを追加する方が簡単だと思います。

このJavaScriptコードスニペットをテンプレートのヘッドセクションに配置するだけで、テンプレート/フレームワークプロバイダーの大部分が、簡単に追加できるカスタムJavaScriptコードをサポートします。

$(document).ready(function(){ 
    $('select').addClass('custom_class'); 
});
1

次のように、XMLフィールドにclass属性を追加できるだけです。

<field name="foo" class="MYCLASS" type="list" label="My List">
    <option value="0">Option 1</option>
    <option value="1">Option 2</option>
</field>
0
Lodder