3
我使用Extension Builder創建了一個擴展,並在Web部分下包含了一個後端模塊。在生成的代碼中,存儲pid有兩個常量:一個用於插件,一個用於模塊。TYPO3:如何使用後端模塊中的pagetree存儲pid?
現在我喜歡我的模塊使用頁面,列表或模板模塊中所選頁面或文件夾中的存儲pid。如何在頁面樹中使用存儲pid而不是在後端模塊中使用常量?
我使用Extension Builder創建了一個擴展,並在Web部分下包含了一個後端模塊。在生成的代碼中,存儲pid有兩個常量:一個用於插件,一個用於模塊。TYPO3:如何使用後端模塊中的pagetree存儲pid?
現在我喜歡我的模塊使用頁面,列表或模板模塊中所選頁面或文件夾中的存儲pid。如何在頁面樹中使用存儲pid而不是在後端模塊中使用常量?
要從後端模塊中的頁面樹中獲取選定頁面,一種方法是簡單地獲取id
參數,理想情況下在您的初始化程序中。
由於extbase從您的模塊(或前端插件)讀取存儲pid,因此您可以覆蓋storagePid
部件,因此不必爲存儲庫中的每個查詢/其他位置設置pid。
以下應該工作。但是,我在CommandController中使用這個而不是在後端使用的控制器中。我沒有改變那裏的任何內容,因爲這些存儲庫自動將記錄範圍限定在所選擇的頁面上。
class Tx_MyExt_Controller_BackendController extends Tx_Extbase_MVC_Controller_ActionController {
/**
* @var Tx_Extbase_Configuration_ConfigurationManagerInterface
* @inject
*/
protected $configurationManager;
/**
* @var int Current page
*/
protected $pageId;
/**
* Action initializer
*
* @return void
*/
protected function initializeAction()
{
$this->pageId = (int)t3lib_div::_GP('id');
$frameworkConfiguration = $this->configurationManager->getConfiguration(Tx_Extbase_Configuration_ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK);
$persistenceConfiguration = array('persistence' => array('storagePid' => $this->pageId));
$this->configurationManager->setConfiguration(array_merge($frameworkConfiguration, $persistenceConfiguration));
}
}
是的。但是存儲庫對象仍然使用來自存儲pid TypoScript配置的值。我如何更新存儲庫對象的存儲pid? – 2013-05-08 12:59:29
你必須手動修改。當我再次訪問我的代碼時,將在星期五更新我的答案。 – pduersteler 2013-05-08 16:55:41
更新!希望有所幫助。 – pduersteler 2013-05-10 07:10:25