我使用Extension Builder创建了一个扩展,并在Web部分下包含了一个后端模块.在生成的代码中,存储pid有两个常量:一个用于插件,一个用于模块.
现在我喜欢我的模块使用来自pagetree中所选页面或文件夹的存储pid,如页面,列表或模板模块.如何使用存储的PID从pagetree而不是使用恒定的,后端模块中的?
要从后端模块中的页面树中获取所选页面,一种方法是简单地获取id参数,最好是在初始化程序中.
由于extbase从您的模块(或前端的插件)设置中读取存储pid,因此您可以覆盖该storagePid部件,这样您就不必为每个查询设置pid,否则在您的存储库中设置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));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3911 次 |
| 最近记录: |