Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 类型3:如何在后端模块中使用页面树中的存储pid?_Typo3_Extbase - Fatal编程技术网

Typo3 类型3:如何在后端模块中使用页面树中的存储pid?

Typo3 类型3:如何在后端模块中使用页面树中的存储pid?,typo3,extbase,Typo3,Extbase,我使用ExtensionBuilder创建了一个扩展,并在web部分下包含了一个后端模块。在生成的代码中,存储pid有两个常量:一个用于插件,一个用于模块 现在,我喜欢我的模块使用页面树中所选页面或文件夹中的存储pid,就像页面、列表或模板模块一样。如何使用pagetree中的存储pid而不是后端模块中的常量?要从后端模块中的页面树中获取所选页面,一种方法是简单地获取id参数,最好是在初始值设定项中 由于extbase从您的模块(或前端插件)设置中读取存储pid,因此您只需覆盖storagePi

我使用ExtensionBuilder创建了一个扩展,并在web部分下包含了一个后端模块。在生成的代码中,存储pid有两个常量:一个用于插件,一个用于模块


现在,我喜欢我的模块使用页面树中所选页面或文件夹中的存储pid,就像页面、列表或模板模块一样。如何使用pagetree中的存储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));
    }

}

对但是repository对象仍然使用存储脚本配置中的值。如何更新存储库对象的存储pid?您必须手动修改。将在周五更新我的答案,当我再次访问我的代码时。谢谢。我不得不重做这个例子来计算Typo3 6中的新名称空间,但它是有效的。谢谢你。你能告诉我这是否是正确的方式,为后端和前端设置$pageId频道吗<代码>如果($GLOBALS['TSFE']==NULL){$this->pageId=(int)\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('id');}否则{$this->pageId=$GLOBALS['TSFE']->id;}