Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > TypoScript практикум

Ответ
 
Опции темы Опции просмотра
Старый 24.07.2008, 19:40   #1
maaboo
Senior Member
 
Регистрация: 19.11.2007
Сообщений: 362
Отправить сообщение для maaboo с помощью ICQ
По умолчанию Продолжаю осваивать основы TS, тепер на основе сниппетов typo3wizard.com

Итак, имеется отличый сниппет для генерации "правильного" заголовка окна (сам буду использовать, вместо именования страниц).

Код:
config.noPageTitle = 2
page.headerData.5 = TEXT
page.headerData.5.field = subtitle // title
page.headerData.5.wrap = <title>Domain.com: &nbsp; |</title>
Хочу разобрать построчно. Почему config.noPageTitle присваевается 2?
А что это за 5? Имя объекта или что-то ещё? Если имя объекта, то почему 5? Почему нельзя написать page.headerData.field = subtitle // title?

А то и с этими page.10 = USER те же вопросы возникают. Почему 10? И так далее...

Референс посмотрел, но для моего мозга там слишком высокий "штиль". Увидел фигу.

Буду благодарен за ответ. :-)
__________________
Пишу русский ман для новичков - предложения и пожелания в личку.
Разрабатываю некоммерческий бесплатный информационный портал.
maaboo вне форума   Ответить с цитированием
Старый 24.07.2008, 20:06   #2
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Про config.noPageTitle всё просто: достаточно прочитать TSREF:
noPageTitle, integer
If you only want to have the sitename (from the template record) in your <title> tag, set this to 1. If the value is 2 then the <title> tag is not printed at all.
Please take note that this tag is required for XHTML compliant output, so you should only disable this tag if you generate it manually already.

Относительно 5, 10 и т.п.
Такой приём часто встречается в TYPO3. Есть специальный тип - COA, content object array. Это тип, который содержит объекты других типов. Поскольку результатом рендеринга любого фрагмента TS-кода является строка, поэтому числовые индексы всего лишь задают последовательность рендеринга внутренних объектов... Чтобы можно было ниже по коду писать .10, а выше - .20. Сами числовые индексы произвольны, главное, они должны быть целыми и положительными. Конечно, .10 и .20 рождают аналогии с Basic =) Но в общем логика примерно та же, что и в бейсике - 10 и 20 можно написать относительно быстро, а "места" между ними вполне достаточно. Соответственно, когда место стоит экономить (.10 и .20 уже есть), используют .5, .3, .15 и т.п.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 24.07.2008, 20:16   #3
maaboo
Senior Member
 
Регистрация: 19.11.2007
Сообщений: 362
Отправить сообщение для maaboo с помощью ICQ
По умолчанию

Цитата:
Сообщение от void Посмотреть сообщение
Относительно 5, 10 и т.п.
Такой приём часто встречается в TYPO3. Есть специальный тип - COA, content object array. Это тип, который содержит объекты других типов. Поскольку результатом рендеринга любого фрагмента TS-кода является строка, поэтому числовые индексы всего лишь задают последовательность рендеринга внутренних объектов... Чтобы можно было ниже по коду писать .10, а выше - .20. Сами числовые индексы произвольны, главное, они должны быть целыми и положительными. Конечно, .10 и .20 рождают аналогии с Basic =) Но в общем логика примерно та же, что и в бейсике - 10 и 20 можно написать относительно быстро, а "места" между ними вполне достаточно. Соответственно, когда место стоит экономить (.10 и .20 уже есть), используют .5, .3, .15 и т.п.
То есть эти цифры, никакие не имена объектов как те же lib. temp. xxx. aaa. а просто определители порядка? То есть если мне надо до вызова

page.10.userFunc = tx_templavoila_pi1->main_page

что-то другое, то нужно написать

page.5.что-то другое = что-то другое

?
__________________
Пишу русский ман для новичков - предложения и пожелания в личку.
Разрабатываю некоммерческий бесплатный информационный портал.
maaboo вне форума   Ответить с цитированием
Старый 24.07.2008, 22:28   #4
reva2
Senior Member
 
Аватар для reva2
 
Регистрация: 31.08.2007
Адрес: Ростов-на-Дону
Сообщений: 206
По умолчанию

В общем случае Вы правильно поняли. Только прежде чем писать
page.5.что-то другое = что-то другое
нужно написать что из себя представляет page.5
В качестве примера:

page.5 = TEXT
//и толькок после этого моэно писать page.5.что-то другое = что-то другое
page.5.value = Hello World!
reva2 вне форума   Ответить с цитированием
Старый 26.07.2008, 13:36   #5
maaboo
Senior Member
 
Регистрация: 19.11.2007
Сообщений: 362
Отправить сообщение для maaboo с помощью ICQ
По умолчанию

Цитата:
Сообщение от reva2 Посмотреть сообщение
В общем случае Вы правильно поняли. Только прежде чем писать
page.5.что-то другое = что-то другое
нужно написать что из себя представляет page.5
В качестве примера:

page.5 = TEXT
//и толькок после этого моэно писать page.5.что-то другое = что-то другое
page.5.value = Hello World!
А как можно эту конструкцию перевести на общеизвестные понятия из программирования? Получается что задается тип TEXT, но чему? Объекту page? И если это так, то я правильно понимаю, что в случае следующего объявления ниже по тексту
page.x = что-то другое
объект page примет другое значение? Или как понимать эту конструкцию?
__________________
Пишу русский ман для новичков - предложения и пожелания в личку.
Разрабатываю некоммерческий бесплатный информационный портал.
maaboo вне форума   Ответить с цитированием
Старый 26.07.2008, 13:38   #6
maaboo
Senior Member
 
Регистрация: 19.11.2007
Сообщений: 362
Отправить сообщение для maaboo с помощью ICQ
По умолчанию

Что означает выделенное в этой конструкции?

tables = sys_template
conf.sys_template >
conf.sys_template = TEXT
__________________
Пишу русский ман для новичков - предложения и пожелания в личку.
Разрабатываю некоммерческий бесплатный информационный портал.
maaboo вне форума   Ответить с цитированием
Старый 26.07.2008, 14:33   #7
reva2
Senior Member
 
Аватар для reva2
 
Регистрация: 31.08.2007
Адрес: Ростов-на-Дону
Сообщений: 206
По умолчанию

Цитата:
Сообщение от maaboo Посмотреть сообщение
А как можно эту конструкцию перевести на общеизвестные понятия из программирования? Получается что задается тип TEXT, но чему? Объекту page? И если это так, то я правильно понимаю, что в случае следующего объявления ниже по тексту
page.x = что-то другое
объект page примет другое значение? Или как понимать эту конструкцию?
Вы не правильно поняли: объект page как был PAGE'ом так им и останется. Просто этот объект включает в себя массив других объектов.
Конструкция "page.5 = TEXT" задает как раз один из объектов этого массива. Для более детальной информации читаем здесь.
reva2 вне форума   Ответить с цитированием
Старый 26.07.2008, 14:43   #8
reva2
Senior Member
 
Аватар для reva2
 
Регистрация: 31.08.2007
Адрес: Ростов-на-Дону
Сообщений: 206
По умолчанию

Цитата:
Сообщение от maaboo Посмотреть сообщение
Что означает выделенное в этой конструкции?

tables = sys_template
conf.sys_template >
conf.sys_template = TEXT
Чтобы не возникало подобных вопросов, читаем про синтаксис TypoScript здесь.
В данном случае значит, что удаляется удаляется "объект" который содержался в conf.sys_template. Данная запись примерно эквивалентна функции unset() в php.
reva2 вне форума   Ответить с цитированием
Старый 26.07.2008, 15:54   #9
maaboo
Senior Member
 
Регистрация: 19.11.2007
Сообщений: 362
Отправить сообщение для maaboo с помощью ICQ
По умолчанию

Воу, а я и не приметил, что про синтаксис есть мануал. То-то, думаю, в TSRef как-то нифига не сказано об этом, спасибо! Пойду, хоть начну эти иероглифы ">" и "->" различать. :-)

То есть иначе
page.5 = TEXT
page.5.value = Hello World!

можно записать как
PAGE.[TEXT][VALUE]=Hello World!
?
если учесть, что содержимое в скобках есть переменные массива?
__________________
Пишу русский ман для новичков - предложения и пожелания в личку.
Разрабатываю некоммерческий бесплатный информационный портал.
maaboo вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория