“做记录”;“不可编辑”;在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',
...