[英]Set TYPO3 extbase storagePageIds / storagePid to current
我正在使用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看起來像什么才能工作?)
好吧,您所做的應該可以,但是您必須這樣寫:
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);
我剛剛在TYPO3版本上進行了測試。 4.7.x和getText函數可以達到目的:
plugin.tx_test {
persistence {
storagePid.data = field:uid
}
}
將其放在主頁的TS Setup
中,並在需要時覆蓋子頁面。
在Typo3 6.1.8上測試
plugin.tx_test {
persistence {
storagePid.override.cObject = TEXT
storagePid.override.cObject.field = uid
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.