Вложенные content select
Здравствуйте.
Есть задача - получить список объектов самописного плагина в группировке по свойствам этих объектов с использованием typoscript. Возможно ли в обработке результатов запроса создать вложенный запрос с подстановкой в него значений полученный в родительском запросе? Код:
20 = CONTENT Или у таких задачь решение в typo3 другое? Спасибо. |
https://wiki.typo3.org/Ru:Ts45min#CO....8B_TypoScript
"Для начала создаем объект PAGE, чтобы что-то могло быть выведено. В этом объекте PAGE мы создаем объект CONTENT, которым можно управлять при помощи различных параметров TypoScript. TS TypoScript: page = PAGE page.typeNum = 0 # Объект content выполняет запросы к базе данных и загружает содержимое page.10 = CONTENT page.10.table = tt_content page.10.select { # "sorting"- это столбец из таблицы tt_content, где # отслеживается порядок, заданный во внутреннем интерфейсе orderBy = sorting # столбец normal where = colPos = 0 } # renderObj выполняется для каждой строки-результата из запроса к базе данных, # а внутренний массив данных заполняется содержимым. Это гарантирует нам # возможность вызова свойства .field и мы получаем соответствующее значение page.10.renderObj = COA page.10.renderObj { 10 = TEXT # Поле tt_content.header обычно содержит заголовок. 10.field = header 10.wrap = <h1>|</h1> 20 = TEXT # Поле tt_content.bodytext содержит текст содержимого 20.field = bodytext 20.wrap = <p>|</p> } Объект CONTENT выполняет запрос SQL к базе данных. За запрос отвечает "select". "Select" определяет, что нам нужны все записи из столбца 0 (являющийся столбцом "NORMAL" во внутреннем интерфейсе), а порядок выдачи результата определяется полем "sorting". Если свойство pidInList не установлено или удалено, запрос будет ограничен текущей страницей. Например, если страница с ID 100 ссылается на объект CONTENT, то будут возвращены лишь записи со страницы с pid=100. Свойство renderObj определяет то, как записи будут выданы. Здесь оно было определено, как COA (Content Object Array – массив объектов содержимого), который может содержать любое количество объектов TypoScript. В данном случае используются два объекта TEXT, выводимые друг за другом. Порядок их вывода не зависит от порядка следования в коде TypoScript, а присвоенным им номером. Объект TEXT "10" выводится перед объектом TEXT "20". ======= У объекта PAGE, в дополнение к многочисленным свойствам, имеется бесконечное количество объектов, которые могут определятся только лишь номерами (так называемый массив содержимого). Это значит, что эти объекты обозначены лишь номерами, в соответствии с ними они и упорядочиваются при выводе на страницу. Первым идет объект с наименьшим номером, последним – с наибольшим. Порядок их появления в TypoScript не имеет значения. TS TypoScript: mypage.30 = TEXT mypage.30.value = This is last # Первым будет выведен объект номер 10, затем 20 и 30. Объект номер 25 по логике # будет выведен между объектами 20 и 30 mypage.20 = TEXT mypage.20.value = I'm the middle # Этот объект будет выведен первым mypage.10 = TEXT mypage.10.value = Hello World! # здесь мы создаем второй объект для режима печати print = PAGE print.typeNum = 98 print.10 = TEXT print.10.value = This is what the printer will see. |
Часовой пояс GMT +4, время: 01:31. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot