Как автоматически отредактировать конфигурацию страницы и добавить шаблон из контроллера расширений? - PullRequest
0 голосов
/ 28 января 2019

Я пишу расширение Extbase, которое автоматически создает страницы.До сих пор мне удалось добавить страницы, и они отображаются в дереве страниц.Я также получил их идентификаторы страниц, сохраненные в переменных.

 $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 на эти страницы, но я не могу понять, как это сделать, не добавляя его вручную в шаблон.бэкенд.Кто-нибудь знает, как это сделать?Заранее благодарю за помощь.

1 Ответ

0 голосов
/ 28 января 2019

Поскольку текучие шаблоны не назначаются страницам сразу, вам необходимо установить макет, который выбирает шаблон.У вас есть несколько полей в записи pages.Наиболее распространенные поля, вероятно, backend_layout и backend_layout_next_level.Вы также можете использовать поле pagelayout, но я предпочитаю backend_layout, так как оно имеет хороший режим наследования, где вы можете использовать только отдельные страницы.Решения можно найти в Интернете или здесь, на 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', 
        ),
     :
...