新しいカスタム編集可能フィールドを個人データ モジュールに追加することはできますか? もしそうなら、これはどのように機能しますか?管理者に PHP を追加し、Mysql テーブルを追加しますか? または、これは contao バックエンド経由で実行できますか? お知らせ下さい
1 に答える
その可能性は非常に高いです。データベースフィールドの作成方法が異なるため、現在使用している contao のバージョンはわかりません。
条件に同意するチェックボックスを登録モジュールに追加するとします。
コンタオ 2.11
modules ディレクトリに、次の構造のフォルダーを作成します。
myModule/config/database.sql
myModule/dca/tl_member.php
myModule/languages/en/tl_member.php
database.sql で、次のようにフィールドを作成します。
CREATE TABLE `tl_member` (
accept_terms
char(1) NOT NULL デフォルト '', ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
dca/tl_member.php で、次のように、ログインの詳細がある場所の近くにある tl_member dca にフィールドを追加します。
$GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace('login;','login,accept_terms;',$GLOBALS['TL_DCA']['tl_member']['palettes']['default']);
次のようにフィールドを作成します(チェックボックス入力を生成するために使用されます)
$GLOBALS['TL_DCA']['tl_member']['fields']['accept_terms'] = array(
'label' => &$GLOBALS['TL_LANG']['tl_member']['accept_terms'],
'inputType' => 'checkbox',
'eval' => array( 'mandatory' => true, 'tl_class' => 'w50', 'feEditable' => true,'feViewable'=>true)
);
注意: 必須 => true // 必須フィールドにする feEditable => true // モジュール個人データまたはモジュール登録で編集を有効にする feViewable=>true // モジュール個人データまたはモジュール登録に表示する
languages/en/tl_member.php で、次のようにラベルを作成します。
$GLOBALS['TL_LANG']['tl_member']['accept_terms'] = array('Terms & Conditions', 'I accept the terms and conditions of using this website.');
コンタオ 3
構造はほとんど同じですが、database.sql は必要ありません。つまり、それを削除して dca/tl_member.php を次のように変更できます。
$GLOBALS['TL_DCA']['tl_member']['fields']['accept_terms'] = array(
'label' => &$GLOBALS['TL_LANG']['tl_member']['accept_terms'],
'inputType' => 'checkbox',
'eval' => array( 'mandatory' => true, 'tl_class' => 'w50', 'feEditable' => true,'feViewable'=>true),
'sql' => "char(1) NOT NULL default ''"
);
'sql' => "char(1) NOT NULL default ''"
配列にこの行が追加されていることに注意してください。
次に、インストール ツールに移動し、mysql でフィールドを作成します。バックエンドにログインし、モジュール、個人データ モジュールに移動すると、そこにフィールドが表示されるはずです。それをチェックしてフロントエンドフィールドに含めれば完了です。
すべてのディレクトリで tl_member と accept_terms を使用する一貫性に注意してください