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


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

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

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

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

enter image description here

enter image description here

Author: Daniel, 2016-05-16

1 answers

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

СОЗДАНИЕ ЭЛЕМЕНТА СЕТКИ:

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

НАЗНАЧИТЬ ЭЛЕМЕНТ СЕТКИ СТРАНИЦЕ:

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

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

СОЗДАНИЕ ШАБЛОНА ДЛЯ ЭЛЕМЕНТА СЕТКИ:

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

# 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-шаблона для нашего элемента сетки:

<!-- 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:

Мы возвращаемся к серверной части со списком в системной папке элементов сетки, выбираем элемент сетки и переходим на вкладку конфигурация и на Flexform файл конфигурации - поле - добавьте свой файл flexform.

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

ПРИМЕР КОНФИГУРАЦИИ ГИБКОЙ ФОРМЫ:

 <!-- 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
Author: Andrei Todorut, 2016-05-18 07:57:37