1

我构建了一个简单的注释 extbase 扩展,我想将它与打字稿一起包含在项目扩展(也是 extbase)中。项目扩展中的流体代码如下所示:

<f:for each="{project.reports}" as="report">
    ...Content...
    {report -> f:cObject(typoscriptObjectPath: 'lib.comments')}
</f:for>

“报告”是一个 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 的正确方法是什么?

4

2 回答 2

1

您可以通过将方法放在其开头来禁用存储库中的存储 PID 检查:

public function initializeObject() {
    $this->defaultQuerySettings->setRespectStoragePage(FALSE);
}

然后通过id将当前页面作为公共参数传递给存储库查找器并包括作为公共约束来使用当前页面。

当然,您像往常一样获取当前页面的 UID:

$currentUid = $GLOBALS['TSFE']->id;
于 2012-06-17T21:05:54.633 回答
0

persistence.storagePid.field = uid

与“report -> f:cObject”一起传递的“report”的所有字段都可用于 stdWrap 属性“.field”。

你也可以做

persistence.storagePid.debugData = 1

列出 $cObj->data 的所有可用字段

于 2015-04-15T16:25:43.990 回答