簡體   English   中英

將TYPO3 extbase storagePageIds / storagePid設置為current

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM