【问题标题】:How to automatically edit page configuration and add a template from extension controller?如何自动编辑页面配置并从扩展控制器添加模板?
【发布时间】:2019-06-20 22:57:16
【问题描述】:

我正在编写一个自动创建页面的 Extbase 扩展。 到目前为止,我已经设法添加了页面,并且它们显示在页面树中。我还将他们的页面 ID 保存在变量中。

 $data = array(
        'pages' => array(
            'NEW_1' => array(
                'pid' => '-1',
                'title' => 'Page1',

            ),
            'NEW_2' => array(
                'pid' => 'NEW_1',
                'title' => 'Page2',
            ),
            'NEW_3' => array(
                'pid' => 'NEW_1',
                'title' => 'Page3',
            ),
            'NEW_4' => array(
                'pid' => 'NEW_1',
                'title' => 'Page4',
            ),
        )
    );
    $tce = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\DataHandling\\DataHandler');
    $tce->stripslashes_values = 0;
    $dataHandler->reverseOrder = 0;
    $tce->start($data, []);
    $tce->process_datamap();
    \TYPO3\CMS\Backend\Utility\BackendUtility::setUpdateSignal('updatePageTree');
    $tce->clear_cacheCmd('pages');

            $Page1id=$tce->substNEWwithIDs['NEW_1'];
    $Page2id=$tce->substNEWwithIDs['NEW_2'];
    $Page3id=$tce->substNEWwithIDs['NEW_3'];
    $Page4id=$tce->substNEWwithIDs['NEW_4'];

现在我想自动向这些页面添加一个流体模板,但如果不在后端手动添加一个,我无法弄清楚如何做到这一点。有人知道该怎么做吗? 提前感谢您的帮助。

【问题讨论】:

  • 如果您的意思是 Fluid-Template,您在后端的哪个位置手动添加它们?或者你的意思是 TypoScript-Template,你会在哪里配置 Fluid-Template?

标签: php typo3 fluid extbase


【解决方案1】:

由于流体模板不会立即分配给页面,因此您需要设置选择模板的布局。 pages 记录中有多个字段。最常见的字段可能是backend_layoutbackend_layout_next_level。您也可以使用字段pagelayout,但我更喜欢backend_layout,因为它有一个很好的继承模式,除了单页之外,您可以在其中使用。 可以在网络或here on StackOverflow 中找到解决方案。

如果您使用这些字段之一选择您的流体模板,您可以在创建新记录时像设置任何其他字段一样设置此字段。

$data = array(
    'pages' => array(
        'NEW_1' => array(
            'pid' => '-1',
            'title' => 'Page1',
            'backend_layout' => 'SpecialPageLayout', 
        ),
        'NEW_2' => array(
            'pid' => 'NEW_1',
            'title' => 'Page2',
            'backend_layout' => 'SpecialPageLayout', 
        ),
     :

【讨论】:

  • 感谢您的回答。 :) 我今晚会试试看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-10
  • 2012-09-27
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多