web-dev-qa-db-ja.com

ユーザー管理内のフォームのカスタムリストフィールドに複数選択データを入力します

ユーザーの名前フィールドの下のユーザー管理フォームに、複数選択したデータを入力しようとしています。

これは、dbから複数選択されたデータを表示するために、フォーム内に追加したものです。

ファイル:

myweb\components\com_users\models\forms\user.xml

<field 
            name="groupMember"
            type="list"
            description="choose cybertechnos groups"
            label="Choose Groups"
            multiple ="true"
            required="true"
            size="111"
            >

 <option value ="A">A</option>
                <option value ="B">B</option>
                <option value ="C">C</option>
     </field> 

文字列comaベースの値を入力して配列に変換するために、内部に次のコードを追加しました:

myweb\libraries\joomla\table\user.php

クエリでデータをロードした直後$dataロード関数内の変数。

$ data ["groupMember"] = explode( '、'、$ data ["groupMember"]);

しかし、ユーザー管理パネル内のフォームを確認すると、2つの問題が発生しています。

1)下の図のように複数選択されたリストボックスではなく、タグスタイルのリストが表示されます。

2)データベースからの適切な選択値が表示されません。

これは、ユーザー管理リスト「グループの選択」に表示される間違ったスタイルですenter image description here

ユーザー管理リストに次のスタイルの「グループ」が必要ですenter image description here

3
wolvorinePk

あなたはそれを完全に間違っています。次のCMSの更新ですべてが失われる可能性が高いため、ファイル/クラスにコア変更を加えないでください。

代わりに plugins を使用してください。コア機能を拡張するための最良の方法です。ここで必要なのは、単純なプロファイルプラグインです。チュートリアルを読む プロファイルプラグインの作成

また、list属性を持つ標準のmultipleフィールドを使用すると、常にタグスタイルでオプションが表示されます(100%確実ではありません)。

とにかく、要件に合わせて カスタムフォームフィールドタイプ を作成できます。

4
Dmitry Rekun