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

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

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

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

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

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

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

2

Решение

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

СОЗДАНИЕ GRIDELEMENT:

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

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

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

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

СОЗДАНИЕ ШАБЛОНА ДЛЯ 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>

ДИНАМИЧНАЯ НАСТРОЙКА С FLEXFORM:

Мы возвращаемся к бэкэнду со списком в sysfolder gridelements, выбираем gridelement и переходим на вкладку конфигурации и в файле конфигурации Flexform — поле — добавляем ваш файл 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 обрабатывается в файле шаблона.

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

3

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

Других решений пока нет …

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