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

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

Ответ
 
Опции темы Опции просмотра
Старый 23.07.2008, 16:57   #1
maaboo
Senior Member
 
Регистрация: 19.11.2007
Сообщений: 362
Отправить сообщение для maaboo с помощью ICQ
По умолчанию Объясните место в мануале, плз

Пытаюсь вкурить элементарные вещи из Futuristic Template Building, и вот мне что непонятно:

# Menu 1 cObject
lib.menu_1 = HMENU

menu_1 = HMENU - это мы вроде как создаём объект с именем menu_1 типа HMENU, правильно?
А откуда взялся "lib."? Или это придуманное имя для данного примера?
maaboo вне форума   Ответить с цитированием
Старый 23.07.2008, 18:02   #2
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Из наших же записей. Когда мы создаем некий элемент в шаблоне TV, который имеет тип TypoScript Object Path, то мы просто обязаны задать ему некое имя, а TV ему присваивает этот самый "lib.".
То есть в приведенном примере объект мы создали еще раньше в TV, а сейчас просто описываем его средствами TS.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 23.07.2008, 18:17   #3
maaboo
Senior Member
 
Регистрация: 19.11.2007
Сообщений: 362
Отправить сообщение для maaboo с помощью ICQ
По умолчанию

Цитата:
Сообщение от -=UncleByte=- Посмотреть сообщение
Из наших же записей. Когда мы создаем некий элемент в шаблоне TV, который имеет тип TypoScript Object Path, то мы просто обязаны задать ему некое имя, а TV ему присваивает этот самый "lib.".
То есть в приведенном примере объект мы создали еще раньше в TV, а сейчас просто описываем его средствами TS.
Всё равно не догоняю. То есть lib - это некий родительский объект автоматический создаваемый TV? Судя по нотации - это должен быть объект или класс.
__________________
Пишу русский ман для новичков - предложения и пожелания в личку.
Разрабатываю некоммерческий бесплатный информационный портал.
maaboo вне форума   Ответить с цитированием
Старый 23.07.2008, 19:57   #4
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

На самом деле, имя lib - просто общепринятое соглашение. В TS нет жёсткой иерархии "объектов" и "классов". Например, вполне допустимо написать
ttt.aaa.bbb = PAGE или
xxx.bb = IMAGE
xxx.bb.file = fileadmin/path/to/image.jpeg
или даже
lib.smth = IMAGE
lib.smth.other = TEXT
lib.smth.another = PAGE
TS-"свойства" можно свободно создавать и определять... То есть, они определяются при создании. Есть некая часть свойств, которая отвечает за работу встроенных объектов, и она описана в TSREF. В остальном же предполагается полная свобода... Вы даже можете сделать так, чтобы код
lib.cat = CAT
lib.cat.tail_count = 1
lib.cat.foot_count = 4
lib.cat.eye_count = 3
был не бессмыслицей, а выводил изображение кошки с тремя глазами, одним хвостом и четырьмя ногами -)
В общем, весь TS преобразуется в массивы, а как их обрабатывать - отдельная песня.

ЗЫ. Извините, был несдержан))
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 23.07.2008, 20:11   #5
maaboo
Senior Member
 
Регистрация: 19.11.2007
Сообщений: 362
Отправить сообщение для maaboo с помощью ICQ
По умолчанию

Цитата:
Сообщение от void Посмотреть сообщение
На самом деле, имя lib - просто общепринятое соглашение. В TS нет жёсткой иерархии "объектов" и "классов". Например, вполне допустимо написать
ttt.aaa.bbb = PAGE или
xxx.bb = IMAGE
xxx.bb.file = fileadmin/path/to/image.jpeg
или даже
lib.smth = IMAGE
lib.smth.other = TEXT
lib.smth.another = PAGE
...
ЗЫ. Извините, был несдержан))
То есть вместо lib я могу написать какое угодно слово (не совпадающее с именем встроенных объектов и оно будет работать? А почему не писать просто menu_1 = HMENU ?

За что же извинять? Тут благодарность как минимум с занесением. :-)
__________________
Пишу русский ман для новичков - предложения и пожелания в личку.
Разрабатываю некоммерческий бесплатный информационный портал.
maaboo вне форума   Ответить с цитированием
Старый 23.07.2008, 20:36   #6
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Цитата:
Сообщение от maaboo Посмотреть сообщение
То есть вместо lib я могу написать какое угодно слово (не совпадающее с именем встроенных объектов и оно будет работать? А почему не писать просто menu_1 = HMENU ?

За что же извинять? Тут благодарность как минимум с занесением. :-)
Вполне возможно написать. Но при использовании TV _принято_ использовать этот самый "lib." и изначально TV создает имена объектов с "lib." спереди, вот и все.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 23.07.2008, 20:39   #7
maaboo
Senior Member
 
Регистрация: 19.11.2007
Сообщений: 362
Отправить сообщение для maaboo с помощью ICQ
По умолчанию

Цитата:
Сообщение от -=UncleByte=- Посмотреть сообщение
Вполне возможно написать. Но при использовании TV _принято_ использовать этот самый "lib." и изначально TV создает имена объектов с "lib." спереди, вот и все.
А ведь в css_styled_content/static/setup.txt присутствует это самый lib:

# Creates persistent ParseFunc setup for non-HTML content. This is recommended to use (as a reference!)
lib.parseFunc {
...

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

Чтобы было более понятно, в данном случае lib, можно представить просто как пространство, в котором собраны полезные объекты, используемые на странице. CSS Styled Content использует это пространство для определения нескольких полезных объектов (функций), но никто Вам не мешает и темболее не запрещается добавлять туда свои собственные объекты.
reva2 вне форума   Ответить с цитированием
Старый 23.07.2008, 23:55   #9
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Да, lib - это именно namespace, пространство имён. menu_1 = HMENU обычно не пишут именно чтобы не "загрязнять" глобальное пространство имён.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 24.07.2008, 00:16   #10
maaboo
Senior Member
 
Регистрация: 19.11.2007
Сообщений: 362
Отправить сообщение для maaboo с помощью ICQ
По умолчанию

Ага, теперь всё - понятней некуда. Так и запишем. Спасибо!
__________________
Пишу русский ман для новичков - предложения и пожелания в личку.
Разрабатываю некоммерческий бесплатный информационный портал.
maaboo вне форума   Ответить с цитированием
Ответ


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

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

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


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


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

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