1

是否可以向模块 Peronal 数据添加新的自定义可编辑字段?如果是这样,这是如何工作的?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 default '', ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

在 dca/tl_member.php 中,将字段添加到 tl_member dca close to where login details 如下所示。

$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)
    );

注意: mandatory => 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 回答