Показать сообщение отдельно
Старый 03.09.2015, 21:29   #2
Николай Сипко
Senior Member
 
Регистрация: 17.09.2012
Сообщений: 675
По умолчанию

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.

Последний раз редактировалось Николай Сипко; 03.09.2015 в 21:55
Николай Сипко вне форума   Ответить с цитированием