1

我们有一个 Extbase 扩展,它有一个与 tt_content 元素相关联的域模型。当我们删除一个页面或内容元素时,所有相关的域模型项也会被删除。这很好,我们想要这种行为(否则我们会留下孤儿)。

但是我们的客户希望在复制页面时不会复制来自此域模型的项目。有没有办法告诉 TYPO3 在复制操作期间不要复制此扩展的域模型项?

编辑:我们在这个项目中使用 TYPO3 4.5。

4

1 回答 1

0

处理此问题的唯一方法是将模型表添加到“不允许”部分,但这也将删除在任何地方修改后端数据集的能力。

这就是原因(在 TYPO3 6.0 中):

文件:方法:\TYPO3\CMS\Core\DataHandling\DataHandler::copyPages

$copyTablesArray = $this->admin ? $this->compileAdminTables() : explode(',', $this->BE_USER->groupData['tables_modify']);
// If not all tables are allowed then make a list of allowed tables: That is the tables that figure in both allowed tables AND the copyTable-list
if (!strstr($this->copyWhichTables, '*')) {
    foreach ($copyTablesArray as $k => $table) {
        // Pages are always going...
        if (!$table || !\TYPO3\CMS\Core\Utility\GeneralUtility::inList(($this->copyWhichTables . ',pages'), $table)) {
            unset($copyTablesArray[$k]);
        }
    }
}

所有设置的表格都$copyTablesArray将被复制。$this->BE_USER->groupData['tables_modify']如果当前登录的用户不是管理员,则设置它们。

也许添加此方法的替代实现可以解决此问题,但这不是很容易的方法。

于 2013-03-19T14:41:37.360 回答