我构建了一个简单的评论extbase扩展,我想在项目扩展(也是extbase)中包含typoscript。项目扩展中的流体代码如下所示:
<f:for each="{project.reports}" as="report">
...Content...
{report -> f:cObject(typoscriptObjectPath: 'lib.comments')}
</f:for>
“Reports”是一个id的数组。 lib.comments的打字标记如下:
lib.comments = USER
lib.comments {
userFunc = tx_extbase_core_bootstrap->run
extensionName = Comments
pluginName = Comments
persistence.storagePid = ?
}
StoragePid应该与报告ID匹配,所以我试过: persistence.storagePid.cObject = TEXT persistence.storagePid.cObject.current = 1
但它没有用。有没有人有想法,这是将“当前”设置为storagePid的正确方法?
答案 0 :(得分:2)
您可以通过将方法放在其开头来禁用存储库中的存储PID检查:
public function initializeObject() {
$this->defaultQuerySettings->setRespectStoragePage(FALSE);
}
然后使用当前页面的id
将其作为公共参数传递给存储库查找器并包含为公共约束。
当然页面的UID与往常一样:
$currentUid = $GLOBALS['TSFE']->id;
答案 1 :(得分:0)
persistence.storagePid.field = uid
与“report - &gt; f:cObject”一起传递的“report”的所有字段都可用于stdWrap属性“.field”。
您也可以
persistence.storagePid.debugData = 1
列出$ cObj-&gt; data
的所有可用字段