Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“做记录”;“不可编辑”;在TCA TYPO3后端表单中进行某些批准后。_Typo3_Backend - Fatal编程技术网

“做记录”;“不可编辑”;在TCA TYPO3后端表单中进行某些批准后。

“做记录”;“不可编辑”;在TCA TYPO3后端表单中进行某些批准后。,typo3,backend,Typo3,Backend,我有一个扩展名为calendar,它包含一条记录事件。对于要在前端显示的事件,它已得到管理员的批准。但是一旦管理员批准/拒绝了该记录,该记录就不能再从后端进行编辑 我想这样做: TcaEvent.php if ($currentRecord_Permission=='Accept' or $currentRecord_Permission=='Reject') # Make the current record non-editable else #make the current r

我有一个扩展名为
calendar
,它包含一条记录
事件
。对于要在前端显示的事件,它已得到管理员的批准。但是一旦管理员批准/拒绝了该记录,该记录就不能再从后端进行编辑

我想这样做:

TcaEvent.php


if ($currentRecord_Permission=='Accept' or $currentRecord_Permission=='Reject')
   # Make the current record non-editable
else #make the current record editable 

$TCA
数组是否包含正在编辑的当前记录的详细信息?如果是这样,我可以使用它来实现上述功能。

$TCA
是一个配置数组,不包含任何记录的任何数据。它只保存TYPO3使用的所有字段的配置。除了管理员之外,没有阻止编辑记录的字段。要实现这一点,您可以创建第二个页面来保存已批准的记录,并通过权限模块使非管理员用户无法看到此页面。只需将页面的所有者设置为用户管理员和组管理员。

尝试使用“editlock”。这正是你需要的

字段名,如果设置,将阻止对记录的所有编辑 对于非管理员用户。该字段应配置为复选框类型。 非管理员可以编辑该复选框,但如果他们设置了该复选框, 他们将有效地锁定记录,因此无法再次编辑它—— 他们需要一个管理员用户来移除锁。请注意,此标志是 创建记录的新副本或版本时清除。此 此功能用于pages表,在该表中,它还阻止编辑 该页记录(其他页除外)!此外,没有新记录 (包括页面)可以在页面上创建

因此,您所要做的就是在管理员批准记录后将此字段设置为TRUE。或者,即使管理员也可以设置该字段,前提是“批准”意味着他无论如何都要输入以编辑BE记录

请在此处阅读更多信息:

查找“editlock”

基本上,您必须在表中的TCA waht字段中定义editlock字段,如下所示:

$TCA['tx_address_domain_model_item'] = array(
    'ctrl' => array(
        'title'     => 'Title'
        'editlock' => 'editlock',
...