我正在使用TYPO3扩展feupload,它依赖于extbase。这是我第一次接触extbase。 但问题是关于extbase的一般情况。
我希望TYPO3在查询中默认包含通常的“IN(当前页面)”pid检查,除非另有说明 - 但在extbase中似乎有所不同。或者至少在我的情况下,它不起作用。
在扩展名中,有一个常量/设置设置,可以设置storagePid。这有效。 但我们不希望为每个页面手动调整该参数。
persistence {
# cat=feupload/persistence; type=integer; label=Storage PID of records
storagePid =
}
那么如何让extbase按预期自动获取当前页面的PID?
(子问题:我试图在设置中设置plugin.tx_pluginname.persistence.storagePid.data = {page:uid},但那不起作用.TS看起来有什么用? )
答案 0 :(得分:8)
嗯,你做的应该工作,但你必须这样写:
plugin.tx_pluginname.persistence.storagePid.data = page:uid
(只有在普通包装中插入数据字段时才需要{})
正如其他人指出的那样,您必须确保在模板中包含扩展程序的配置。
如果上述操作失败,您可以在控制器的initializeAction中以编程方式设置storagePid,如下所示:
$querySettings = $this->myRepository->createQuery()->getQuerySettings();
$querySettings->setStoragePageIds(array($GLOBALS["TSFE"]->id));
$this->myRepository->setDefaultQuerySettings($querySettings);
答案 1 :(得分:2)
我刚刚在TYPO3 ver上测试过。 4.7.x和getText函数起到了作用:
plugin.tx_test {
persistence {
storagePid.data = field:uid
}
}
将其放在主页的TS Setup
中,并在必要时覆盖子页面。
答案 2 :(得分:0)
在Typo3 6.1.8上测试
plugin.tx_test {
persistence {
storagePid.override.cObject = TEXT
storagePid.override.cObject.field = uid
}
}