在TYPO3-Backend中获取插槽中的当前PID(如果可用)

时间:2018-03-09 17:11:28

标签: typo3

通过SignalSlotDispatcher我将我的Slot连接到一些信号(SIGNAL_PreFileAdd),该信号通常在文件上传后在后端触发。

在该插槽中,我现在想要访问页面ts config以确定一些扩展配置。

我知道如果用户位于网络模块或前端,只有页面ts配置,但没关系。例如,在文件列表中不会有页面ts配置,因为没有选择页面。但是如果用户通过元素浏览器在某个内容元素中上传内容,那么将有可访问的页面ts config。

我知道我可以通过BackendUtility::getPagesTSconfig($pid)获取页面配置,但这需要了解$pid。所以最终的问题是:如果可用,我如何确定当前页面ID? (即fe或web模块)

这个问题当然是关于TYPO3 7.6 +

1 个答案:

答案 0 :(得分:0)

在后端获取当前页面ID的唯一干净方法似乎是获取当前处理的记录pid(如果是页面本身,则为uid。)

这也是核心的方式。

虽然在插槽的上下文中很难实现,但可以在processUpload_postProcessAction挂钩中轻松完成,例如:

public function processUpload_postProcessAction(&$filename, DataHandler $pObj) {
    $pid = $pObj->checkValue_currentRecord['pid'];
    GeneralUtility::devLog(
        'pid',
        'exampleext',
        GeneralUtility::SYSLOG_SEVERITY_INFO,
        [$pid]
    );
}