TYPO3 Extbase:为后端模块设置storagepid

TYPO3 Extbase: Set storagepid for Backend Module

我写了一个小扩展,为后端用户提供新闻。 Ist 只是 2 个部分。一部分作为自己的模块展示所有BE用户的新闻,另一部分是TCA提供的创建和编辑功能。

要使用 TCA 表单和默认的 extbase getter,我需要正确的 storagePid。我无法通过 TypoScript 设置它们,因为 我从不在页面上下文中

我的想法是使用文件 ext_conf_template.txt

的插件设置
# cat=persistence/enable; type=int; label=Storage pid
storagePid = 4457

但是我怎样才能让 TYPO3 查看这个设置呢?

至少Repository->findAll()必须尊重

通常您会使用 TypoScript 来定义它:

module.tx_yourextensionkey.persistence.storagePid = 123

只要您将配置放在第一个根 TypoScript 模板上(或通过其他方式包含 TypoScript,这会导致不特定于任何 sys_template 记录的全局包含,不在页面上下文中就不会成为障碍或页面树位置)。

也许不是最好的解决方案,但它确实有效。

我已经在存储库中使用 pid 作为参数编写了自己的函数。 我正在使用 TYPO3 查询生成器。
使用 $query->equals('pid', $pid); 我得到带有我的 pid 的条目。
并且 $query->getQuerySettings()->setRespectStoragePage(false); 默认 pid 将被忽略。

作为最后一步。我的控制器从设置中获取 pid,unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['my_extension']['storagePid']); 并将其提供给函数。