0

我有一个名为的扩展程序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数组是否包含正在编辑的当前记录的详细信息?如果是这样,我可以用它来实现上面提到的。

4

2 回答 2

2

尝试使用“编辑锁”。这正是您所需要的。

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

因此,您所要做的就是在管理员批准记录后将此字段设置为 TRUE。或者,如果批准意味着他输入以编辑 BE 记录,甚至管理员也可以设置该字段。

在这里阅读更多:http: //typo3.org/documentation/document-library/core-documentation/doc_core_tca/4.7.1/view/1/3/

找到“编辑锁”。

基本上,您必须在表中的 TCA waht 字段中定义一个编辑锁定字段,如下所示:

$TCA['tx_address_domain_model_item'] = array(
    'ctrl' => array(
        'title'     => 'Title'
        'editlock' => 'editlock',
...
于 2013-07-02T08:44:26.197 回答
0

$TCA是一个配置数组,不包含任何记录的任何数据。它只是保存 TYPO3 使用的所有字段的配置。除了管理员之外,也没有一个字段可以防止记录被编辑。为此,您可以创建第二个页面,其中包含已批准的记录,并通过权限模块使该页面对非管理员用户不可见。只需将页面的所有者设置为用户 admin 和组 admin。

于 2013-07-01T07:35:03.740 回答