TYPO3/Typoscript: визуализировать sql-запрос как массив

Я использую TYPO3 6.2. На моем веб-сайте я делаю SQL-запрос следующим образом:

lib.bloc_top = COA
lib.bloc_top.10 < styles.content.get
lib.bloc_top.10.select.selectFields = header
lib.bloc_top.10.select.where = ( deleted = 0 && hidden = 0 && tx_gridelements_container = 2571 && CType = 'header' )

Все работает, но вместо вывода результатов в виде HTML-кода я хотел бы отобразить его в массиве, который я бы использовал в своем шаблоне FLUID следующим образом:

<f:for each="{car}" as="el">
    <li>Brand : {el}</li>
  </f:for>

Является ли это возможным ? Спасибо за вашу помощь :)


person Paolito75    schedule 03.10.2017    source источник


Ответы (1)


Вы не должны выбирать контейнер по определенному UID, а вместо этого создаете тип контейнера «автомобиль» с помощью внутреннего макета Gridelements CE.

В любом случае, чтобы получить данные в массив, вам не нужно делать ничего особенного, так как это автоматически делается с помощью styles.content.get под капотом.

Хотя в styles.content.get используется настройка tt_content по умолчанию, вы можете изменить ее с помощью renderObj, как описано здесь: https://docs.typo3.org/typo3cms/TyposcriptReference/6.2/ContentObjects/Content/

Чтобы получить данные в ваш шаблон Fluid, вам просто нужно заменить renderObj по умолчанию на FLUIDTEMPLATE https://docs.typo3.org/typo3cms/TyposcriptReference/6.2/ContentObjects/Fluidtemplate/Index.html

lib.bloc_top.10.renderObj = FLUIDTEMPLATE
lib.bloc_top.10.renderObj {
  file = path/to/your/template/file.html
}

Поскольку цикл обрабатывается объектом CONTENT в styles.content.get, вы можете пропустить часть f:for в своем шаблоне.

Обычно любой тип данных предоставляется в массиве cObj->data, поэтому что-то вроде <h1>{data.header}</h1> должно выполнять эту работу.

И даже с CONTENT должен быть счетчик, так как есть https://docs.typo3.org/typo3cms/TyposcriptReference/DataTypes/Gettext/Index.html#cobj

Чтобы получить любые доступные данные, вы должны использовать <f:debug>{_all}</f:debug> в своем шаблоне Fluid.

person Jo Hasenau    schedule 03.10.2017
comment
Спасибо за вашу помощь. Извините, я не профессионал с Typo3! Согласно вашему ответу: 1/Я сделал свой запрос с tx_gridelements_backend_layout вместо tx_gridelements_container 2/Ваш совет с renderObj = FLUIDTEMPLATE работает, и цикл выполнен, но как я могу получить доступ к моему полю заголовка в шаблоне html? - person Paolito75; 04.10.2017
comment
И что меня больше всего беспокоит, так это то, что я не смогу использовать счетчик циклов/итератор :( - person Paolito75; 04.10.2017
comment
Я немного расширил ответ, так как комментарии не обеспечивают форматирование кода. - person Jo Hasenau; 05.10.2017
comment
Спасибо за помощь, Джоуи ;) - person Paolito75; 09.10.2017