TYPO3 StoragePid和Current

时间:2012-06-17 20:25:42

标签: typo3 typoscript fluid extbase

我构建了一个简单的评论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的正确方法?

2 个答案:

答案 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

的所有可用字段