通过SignalSlotDispatcher
我将我的Slot连接到一些信号(SIGNAL_PreFileAdd
),该信号通常在文件上传后在后端触发。
在该插槽中,我现在想要访问页面ts config以确定一些扩展配置。
我知道如果用户位于网络模块或前端,只有页面ts配置,但没关系。例如,在文件列表中不会有页面ts配置,因为没有选择页面。但是如果用户通过元素浏览器在某个内容元素中上传内容,那么将有可访问的页面ts config。
我知道我可以通过BackendUtility::getPagesTSconfig($pid)
获取页面配置,但这需要了解$pid
。所以最终的问题是:如果可用,我如何确定当前页面ID? (即fe或web模块)
这个问题当然是关于TYPO3 7.6 +
答案 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]
);
}