Добрый день коллеги, столкнулся тут с необходимостью сделать сложное
меню с дополнительными полями из свойств страницы. Поля добавляем через Templavoila, без разметки (в моем случае эти поля нужны были исключительно для информативности), можно так же с разметкой если есть желание добавить дополнительные параметры в header.
Сложность составляет именно вытащить данные из новых полей, т.к. по умолчанию данные этих полей будут хранится в виде XML в таблице
tx_templavoila_flex. И при стандартной схеме изъятия через
{field:} мы увидим полностью всю таблицу.
Нам же нужно вытащить конкретные значения. Вот простейший пример XML из таблицы tx_templavoila_flex:
Код HTML:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3FlexForms>
<data>
<sheet index="sDEF">
<language index="lDEF">
<field index="my_field_1">
<value index="vDEF">Значение 1</value>
</field>
</language>
</sheet>
</data>
</T3FlexForms>
Таким образом у меня появилось дополнительное поле, теперь нужно вытащить информацию из него.
Стандартного решения сделать это только через typoscript нет, по этому я и решил описать эти действия.
Что делаем:
1. Скачиваем и устанавливаем расширение
best_getflexfield
2. Пишем следующий TS
Код HTML:
lib.title = TEXT
lib.text {
preUserFunc = tx_bestgetflexfield_pi1->getFieldValue
preUserFunc.dbField = tx_templavoila_flex
preUserFunc.flexField = my_field_1
noTrimWrap = |element |
}
Как видите решение простое, но я лично потерял день на поиски, чего вам не желаю