Contao中的自定义可编辑字段

时间:2014-03-04 12:00:16

标签: module contao

是否可以向模块Peronal数据添加新的自定义可编辑字段?如果是这样,这是如何工作的? PHP我的管理员并添加Mysql表?或者这可以通过contao后端完成吗?请指教

1 个答案:

答案 0 :(得分: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_terms char(1)NOT NULL default'', )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.');

Contao 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的一致性