我有一个名为calendar
的扩展程序,它包含一条记录event
。对于要在前端显示的事件,它已获得管理员的批准。但是,一旦管理员批准/拒绝它,该记录就不再可以从后端编辑。
我想做这样的事情:
TcaEvent.php
if ($currentRecord_Permission=='Accept' or $currentRecord_Permission=='Reject')
# Make the current record non-editable
else #make the current record editable
$TCA
数组是否包含正在编辑的当前记录的详细信息?如果是这样,我可以用它来实现上述目的。
答案 0 :(得分:2)
尝试使用'editlock'。这正是您所需要的。
字段名称 - 如果设置 - 将阻止对记录的所有编辑 对于非管理员用户。该字段应配置为复选框类型。 可以允许非管理员编辑复选框,但如果他们设置了, 他们将有效锁定记录,以便他们无法再次编辑 - 并且他们需要一个Admin-user来删除lock.Note这个标志是 在创建新副本或记录版本时清除。这个 功能在页面表上使用,它也阻止编辑 该页面上的记录(其他页面除外)!此外,没有新的记录 (包括页面)可以在页面上创建。
所以你要做的就是在管理员批准记录后将此字段设置为TRUE。或者甚至管理员也可以设置该字段,如果批准意味着他仍然进入编辑BE记录。
在这里阅读更多内容: http://typo3.org/documentation/document-library/core-documentation/doc_core_tca/4.7.1/view/1/3/
找到'editlock'。
基本上你必须在表中的TCA waht字段中定义一个这样的editlock字段:
$TCA['tx_address_domain_model_item'] = array(
'ctrl' => array(
'title' => 'Title'
'editlock' => 'editlock',
...
答案 1 :(得分:0)
$TCA
是一个配置数组,不包含任何记录的任何数据。它只包含TYPO3使用的所有字段的配置。除了管理员之外,还没有一个字段可以阻止记录编辑。要实现此目的,您可以创建第二个页面,其中包含已批准的记录,并通过权限模块使此页面对非管理员用户不可见。只需将页面所有者设置为用户admin和group admin。