Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   HMENU c дополнительными полями из Templavoila (http://forum.typo3.ru/showthread.php?t=10902)

alexk 30.08.2013 16:13

HMENU c дополнительными полями из Templavoila
 
Добрый день коллеги, столкнулся тут с необходимостью сделать сложное меню с дополнительными полями из свойств страницы. Поля добавляем через 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 |
}

Как видите решение простое, но я лично потерял день на поиски, чего вам не желаю:)


Часовой пояс GMT +4, время: 11:01.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot