4

我正在使用依赖于 extbase 的 TYPO3 扩展 feupload。这是我第一次接触 extbase。但问题一般是关于 extbase 的。

我希望 TYPO3 默认在查询中包含通常的“IN(当前页面)”pid 检查,除非另有说明 - 但在 extbase 中似乎有所不同。或者至少在我的情况下,它不起作用。

在扩展中,有一个constants/setup设置,其中storagePid可以设置。这行得通。但是我们不想为每个页面手动调整该参数。

persistence {
       # cat=feupload/persistence; type=integer; label=Storage PID of records
       storagePid =
}

那么如何让extbase按预期自动获取当前页面的PID呢?

(子问题:我尝试在设置中设置 plugin.tx_pluginname.persistence.storagePid.data = {page:uid} ,但这不起作用。TS 必须看起来像什么才能工作?)

4

3 回答 3

10

好吧,你所做的应该工作,但你必须这样写:

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);
于 2013-06-27T08:30:02.793 回答
2

我刚刚在 TYPO3 版本上进行了测试。4.7.x 和getText函数成功了:

plugin.tx_test {
  persistence {
    storagePid.data = field:uid
  }
}

把它放在TS Setup主页上,如果需要,覆盖在子页面上。

于 2013-06-23T10:56:08.803 回答
0

在 Typo3 6.1.8 上测试

plugin.tx_test {
  persistence {
    storagePid.override.cObject = TEXT
    storagePid.override.cObject.field = uid
  }
}
于 2014-06-20T19:14:04.830 回答