我在后端制作了一个TCA表格,根据选择字段中的值改变了什么"输入":
此选择字段基本上包含选项:
我可以使系统工作,当" rte文本"选择后,它会显示" rte text"的指定字段,当选择url时,它会显示" url"的指定字段。等等。
就我而言,内容总是保存在数据库中的字段"内容"并且所选类型保存在字段"键入"。
我的问题是我还没有办法改变内容"表单字段/配置,具体取决于所选类型。
例如,当我选择" rte text"它应该用于内容字段这种配置(富文本编辑器):
'content' => array (
'exclude' => 0,
'label' => 'Content',
'config' => array (
'type' => 'text',
'cols' => '30',
'rows' => '5',
'wizards' => array(
'_PADDING' => 2,
'RTE' => array(
'notNewRecords' => 1,
'RTEonly' => 1,
'type' => 'script',
'title' => 'Full screen Rich Text Editing|Formatteret redigering i hele vinduet',
'icon' => 'wizard_rte2.gif',
'script' => 'wizard_rte.php',
),
),
)
),
当我选择"图片"它应该用于内容字段这种配置(文件上传器):
'content' => array (
'exclude' => 0,
'label' => 'Content',
'config' => array (
'type' => 'group',
'internal_type' => 'file',
'allowed' => '',
'disallowed' => 'php,php3',
'max_size' => $GLOBALS['TYPO3_CONF_VARS']['BE']['maxFileSize'],
'uploadfolder' => 'uploads/tx_uploadshere',
'size' => 1,
'minitems' => 0,
'maxitems' => 1,
)
),
是否有办法根据selectbox中的值更改配置。我试图将两个内容放在一个数组中,但还没有让它以这种方式工作。
答案 0 :(得分:3)
很遗憾,您无法通过type
更改单个字段的属性。
然而,您可以影响正在显示的内容。因此,您可以配置两个独立的字段并切换显示:
<强> ext_tables.php 强>:
$TCA['tx_yourextension_yourtable'] = array(
'ctrl' => array(
//...
'type'=>'type',
//...
),
);
TCA.php :
$TCA['tx_yourextension_yourtable'] = array(
'ctrl' => $TCA['tx_yourextension_yourtable']['ctrl'],
'types' => array(
0 => array('showitem' => 'content_rte'),
1 => array('showitem' => 'content_image'),
),
'columns' => array(
'content_rte' => array(
'exclude' => 0,
'label' => 'Content',
'config' => array(
'type' => 'text',
'cols' => '30',
'rows' => '5',
'wizards' => array(
'_PADDING' => 2,
'RTE' => array(
'notNewRecords' => 1,
'RTEonly' => 1,
'type' => 'script',
'title' => 'Full screen Rich Text Editing|Formatteret redigering i hele vinduet',
'icon' => 'wizard_rte2.gif',
'script' => 'wizard_rte.php',
),
),
)
),
'content_upload' => array(
'exclude' => 0,
'label' => 'Content',
'config' => array(
'type' => 'group',
'internal_type' => 'file',
'allowed' => '',
'disallowed' => 'php,php3',
'max_size' => $GLOBALS['TYPO3_CONF_VARS']['BE']['maxFileSize'],
'uploadfolder' => 'uploads/tx_uploadshere',
'size' => 1,
'minitems' => 0,
'maxitems' => 1,
)
),
),
// ...
);
(注意:为了简单起见,我删除了hidden
,sys_language_uid
等系统字段。