1

新しいカスタム編集可能フィールドを個人データ モジュールに追加することはできますか? もしそうなら、これはどのように機能しますか?管理者に PHP を追加し、Mysql テーブルを追加しますか? または、これは contao バックエンド経由で実行できますか? お知らせ下さい

4

1 に答える 1

4

その可能性は非常に高いです。データベースフィールドの作成方法が異なるため、現在使用している 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_termschar(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 を使用する一貫性に注意してください

于 2014-03-05T06:08:48.127 に答える