Как реализовать один шаблон страницы в TYPO3 с настраиваемыми элементами для разделов?

Это шаблон, который я хочу использовать с TYPO3: http://www.shegy.nazwa.pl/themeforest/hype/ios/solid/

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

Я думаю, для этого недостаточно tt_content. Было бы необходимо создать собственную таблицу для каждой секции. Есть ли другой способ?

Было бы очень полезно дать пользователю возможность добавлять эллементы контента внутри «элемента содержимого раздела». Это возможно? Вложенные элементы контента? Таким образом, пользователь может добавить третьи функции на второй скриншот.

введите описание изображения здесь

введите описание изображения здесь

Вы можете создать это с помощью Gridelements. Проверьте эту ссылку https://typo3.org/extensions/repository/view/gridelements

СОЗДАНИЕ ГРИДЭЛЕМА:

  1. установите расширение Gridelements.
  2. создать sysfolder, где хранить шаблоны gridelement
  3. перейдите со списком в папку sys grideslements и щелкните по знаку + (создайте новую запись)
  4. Выберите из списка Gridelements-> CE backend layout
  5. Перейдите на вкладку конфигурации и настройте свое gridelement (поле конфигурации сетки, справа от него вы увидите значок – щелкните по нему для динамической настройки)
  6. Выберите связанное имя для gridelement и сохраните его.

НАЗНАЧЕНИЕ ГРИДЕЛЬМА НА СТРАНИЦУ:

Перейдите на страницу, где вы хотите поместить раздел gridelement

  1. Нажмите кнопку «Создать новый элемент контента» на странице, которую вы переходите на вкладку Gridelements, и выберите gridelement.
  2. Сохраните элемент содержимого и добавьте контент в свои поля grideslements.

СОЗДАНИЕ ШАБЛОНА ДЛЯ ГРИДЛЕМА:

Откройте файл шаблона typoscript и добавьте синтаксис для каждого gridelement.

# typoscript.ts tt_content.gridelements_pi1.20.10.setup{ # 1 is the gridelement id 1 < lib.gridelements.defaultGridSetup 1{ columns{ # 0 is the column id 0 < .default 0.wrap( <div class="column-div">|</div> ) } } } 

ШАБЛОНЫ ЖИДКОСТИ

 # typoscript.ts tt_content.gridelements_pi1.20.10.setup { 1 < lib.gridelements.defaultGridSetup 1{ cObject = FLUIDTEMPLATE cObject { file = gridtemplate.html #here source of fluid template } } } 

Создание html-шаблона для нашего gridelement:

 <!-- gridtemplate.html --> <div class="{data.flexform_yourfield}"> <!-- data.tx_gridelements_view_column_{column id} --> {data.tx_gridelements_view_column_1->f:format.raw()} </div> 

ДИНАМИЧЕСКАЯ НАСТРОЙКА С ФЛЕКСФОРМОМ:

Мы возвращаемся к бэкэнд со списком в sysfolder grideslements, выбираем gridelement и переходим на вкладку конфигурации и в файле конфигурации Flexform – field – добавляем ваш файл flexform.

Над конфигурационным файлом Flexform вы увидите конфигурацию Flexform -textarea, мое предложение – создать конфигурацию flexform в файле, а не напрямую заполнить брандмаутер typo3.

ПРИМЕР КОНФИГУРАЦИИ FLEXFORM:

  <!-- flexform.xml --> <?xml version="1.0" encoding="UTF-8"?> <T3DataStructure> <ROOT type="array"> <type>array</type> <el type="array"> <yourfield> <TCEforms type="array"> <label>Label of your input</label> <config> <type>input</type> </config> </TCEforms> </yourfield> </el> </ROOT> </T3DataStructure> 

Перейдите в раздел кода gridtemplate.html и посмотрите, как flexform обрабатывается в файле шаблона.

И это все для grideslements.