Добавление макета бэкэнда TYPO3 из расширения

Я разрабатываю шаблон для TYPO3 версии 7. В бэкэнде я создал несколько макетов бэкэнда. В моем шаблоне (расширении) в файле setup.ts я проверяю идентификаторы внутреннего макета, чтобы доставить правильный шаблон жидкости.

Для более легкого использования шаблона я хочу предоставить макеты бэкэнда непосредственно с расширением. Как добавить макеты бэкэнда непосредственно из расширения? Как получить или установить идентификатор для серверных макетов? Так я могу отобразить это в моем setup.ts?

1

Решение

Я обычно храню Backend-макеты в папках, чтобы структурировать расширение.

  • BackendLayouts /, в котором сохранены все Backend-макеты
  • BackendLayouts.ts это где макеты собраны вместе (<INCLUDE_TYPOSCRIPT: source="Path/To/Backendlayout">)

Образ: Скриншот структуры примера

Компоновка-Setup

Базовая настройка для BE-Layout выглядит следующим образом:

mod.web_layout.BackendLayouts{
exampleKey {

title = Example
config{
# Here you paste the generated BE-Layout
}
}
}

Например (Default.ts):

mod.web_layout.BackendLayouts{
default{
title = Default
config{
backend_layout {
colCount = 2
rowCount = 2
rows {
1 {
columns {
1 {
name = Slider
colspan = 2
colPos = 1
}
}
}
2 {
columns {
1 {
name = Sidebar
colPos = 2
}
2 {
name = Content
colPos = 0
}
}
}
}
}
}
}
}

Наконец вам необходимо зарегистрировать конфигурацию вашей страницы:

<?php
if (!defined('TYPO3_MODE')) {
die ('Access denied.');
}\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
'test_ext',
'Configuration/TypoScript/Backend/BackendLayouts.ts',
'My special Backend Layouts'
);
?>

Это работает только для Typo3 v7.4.x и выше

Typo3 Backend

  1. Очистить кеш и перезагрузить Backend
  2. Зайдите на корневую страницу и отредактируйте ее
  3. Перейдите на вкладку «Ресурс» и добавьте свою конфигурацию TypoScript
  4. Сохранить, Перезагрузить страницу

Теперь вы сможете увидеть свои добавленные Backend Layouts при редактировании страницы.

Дальнейшие действия

Если вы хотите использовать разные шаблоны для каждого BE-Layout, вы можете просто сделать это через porterty «templateName» в настройке FLUIDTEMPLATE, как вы можете видеть здесь: Официальная ссылка на TypoScript, #templateName

2

Другие решения

Вы можете предоставить класс, который реализует DataProviderInterface для серверных макетов. Затем вы должны зарегистрировать этот класс под ключом

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['BackendLayoutDataProvider'][$_EXTKEY] = 'Fully\\Qualified\\Namespace\\Of\\The\\Class';

Это возможно начиная с TYPO3 6.2.

Больше ссылок:

0

По вопросам рекламы [email protected]