#typo3 #typoscript #tx-gridelements
#typo3 #typoscript #tx-элементы сетки
Вопрос:
Мне нужно создать бэкэнд и интерфейс-макет с элементами сетки. Чтобы немного прояснить это: У меня есть 10 контейнеров, 5×2
В бэкэнде это выглядит примерно так:
con 1_1 | con 2_1 | con 3_1 | con 4_1 | con 5_1
con 1_2 | con 2_2 | con 3_2 | con 4_2 | con 5_2
(con означает контейнер)
Могут быть более разумные способы реализовать это, возможно, просто с помощью элементов содержимого «текст с изображением», но в данном случае это было требованием.
Теперь проблемная часть. Мне нужно обернуть каждый контейнер по-разному. Мой ожидаемый результат выглядит примерно так:
<div class="left w-clearfix">
<div class="organe_50_stapel_logo">
IMAGE // works
</div>
<div class="organe_50_stapel_text">
TEXT // works
</div>
</div>
(2-4-й контейнер будет помещен в «середину», а 5-й контейнер — в «правый»).
Теперь для моей настройки я получаю завернутые поля (помеченные // works), однако я застрял, обертывая определенные поля, которые принадлежат друг другу.
Вот моя установка:
21 < lib.gridelements.defaultGridSetup
21 {
columns {
11 < .default
11.wrap = <div class="organe_50_stapel_logo">|</div>
12 < .default
12.wrap = <div class="organe_50_stapel_logo">|</div>
13 < .default
13.wrap = <div class="organe_50_stapel_logo">|</div>
14 < .default
14.wrap = <div class="organe_50_stapel_logo">|</div>
15 < .default
15.wrap = <div class="organe_50_stapel_logo">|</div>
21 < .default
21.wrap = <div class="organe_50_stapel_text">|</div>
22 < .default
22.wrap = <div class="organe_50_stapel_text">|</div>
23 < .default
23.wrap = <div class="organe_50_stapel_text">|</div>
24 < .default
24.wrap = <div class="organe_50_stapel_text">|</div>
25 < .default
25.wrap = <div class="organe_50_stapel_text">|</div>
}
}
11 21 принадлежит контейнеру «слева»
12,13,14,22,23,24 в контейнере «середина»
15,25 в контейнере «справа»
Ответ №1:
В этом случае вам следует использовать другой подход и избавиться от отдельных переносов для столбцов в пользу общего CObject, использующего так называемые «виртуальные поля» элементов сетки.
Эти поля заполняются содержимым в процессе рендеринга, а затем становятся доступными через cObj-> data, таким образом, доступны через TypoScript field, data, insertData и dataWrap, а также переменные в FLUIDTEMPLATE.
21 < lib.gridelements.defaultGridSetup
21 {
cObject = TEXT
cObject {
dataWrap (
<div class="left w-clearfix">
<div class="organe_50_stapel_logo">{field:tx_gridelements_view_column_11}</div>
<div class="organe_50_stapel_text">{field:tx_gridelements_view_column_21}</div>
</div>
<div class="middle">
<div class="organe_50_stapel_logo">{field:tx_gridelements_view_column_12}</div>
<div class="organe_50_stapel_text">{field:tx_gridelements_view_column_22}</div>
</div>
<div class="middle">
<div class="organe_50_stapel_logo">{field:tx_gridelements_view_column_13}</div>
<div class="organe_50_stapel_text">{field:tx_gridelements_view_column_23}</div>
</div>
<div class="middle">
<div class="organe_50_stapel_logo">{field:tx_gridelements_view_column_14}</div>
<div class="organe_50_stapel_text">{field:tx_gridelements_view_column_24}</div>
</div>
<div class="right">
<div class="organe_50_stapel_logo">{field:tx_gridelements_view_column_15}</div>
<div class="organe_50_stapel_text">{field:tx_gridelements_view_column_25}</div>
</div>
)
}
}
Это работает для flexform_fieldname, parentgrid_fieldname, tx_gridelement_sview_column_123 и tx_gridelement_sview_child_123. Кроме того, существуют tx_gridelement_sview_children и tx_gridelement_sview_columns, но они содержат массивы для пользователей FLUIDTEMPLATE, поскольку TypoScript не может работать с массивами.
Поля называются «виртуальными», потому что они не существуют в базе данных, но будут заполнены в cObj-> data в процессе рендеринга. Тем не менее, вы можете делать с ними все, что можно сделать с реальными полями, за исключением записи их обратно в базу данных.
Смотрите https://docs.typo3.org/typo3cms/extensions/gridelements/Chapters/Typoscript/Reference/Index.html для ссылки на TypoScript, описывающей эти поля.
Ответ №2:
Я получил аналогичную ошибку в gridelement, разорвав с помощью typoscript.
Я использовал точный машинописный текст , который использовали вы !
Пожалуйста, добавьте эту строку в свой шаблон > настройка наконец
tt_content.gridelements_pi1.20 = COA
Моя проблема решена путем добавления этой строки, я надеюсь, что это поможет вам!
EXT: элементы сетки 8.0.0-dev
ОПЕЧАТКА 3 : 8.7.8
Спасибо 🙂