Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   Объясните место в мануале, плз (http://forum.typo3.ru/showthread.php?t=6561)

maaboo 23.07.2008 16:57

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

# Menu 1 cObject
lib.menu_1 = HMENU

menu_1 = HMENU - это мы вроде как создаём объект с именем menu_1 типа HMENU, правильно?
А откуда взялся "lib."? Или это придуманное имя для данного примера?

-=UncleByte=- 23.07.2008 18:02

Из наших же записей. Когда мы создаем некий элемент в шаблоне TV, который имеет тип TypoScript Object Path, то мы просто обязаны задать ему некое имя, а TV ему присваивает этот самый "lib.".
То есть в приведенном примере объект мы создали еще раньше в TV, а сейчас просто описываем его средствами TS.

maaboo 23.07.2008 18:17

Цитата:

Сообщение от -=UncleByte=- (Сообщение 20215)
Из наших же записей. Когда мы создаем некий элемент в шаблоне TV, который имеет тип TypoScript Object Path, то мы просто обязаны задать ему некое имя, а TV ему присваивает этот самый "lib.".
То есть в приведенном примере объект мы создали еще раньше в TV, а сейчас просто описываем его средствами TS.

Всё равно не догоняю. То есть lib - это некий родительский объект автоматический создаваемый TV? Судя по нотации - это должен быть объект или класс.

void 23.07.2008 19:57

На самом деле, имя 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 преобразуется в массивы, а как их обрабатывать - отдельная песня.

ЗЫ. Извините, был несдержан))

maaboo 23.07.2008 20:11

Цитата:

Сообщение от void (Сообщение 20219)
На самом деле, имя 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 ?

За что же извинять? Тут благодарность как минимум с занесением. :-)

-=UncleByte=- 23.07.2008 20:36

Цитата:

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

За что же извинять? Тут благодарность как минимум с занесением. :-)

Вполне возможно написать. Но при использовании TV _принято_ использовать этот самый "lib." и изначально TV создает имена объектов с "lib." спереди, вот и все.

maaboo 23.07.2008 20:39

Цитата:

Сообщение от -=UncleByte=- (Сообщение 20224)
Вполне возможно написать. Но при использовании 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.?

reva2 23.07.2008 22:28

Чтобы было более понятно, в данном случае lib, можно представить просто как пространство, в котором собраны полезные объекты, используемые на странице. CSS Styled Content использует это пространство для определения нескольких полезных объектов (функций), но никто Вам не мешает и темболее не запрещается добавлять туда свои собственные объекты.

void 23.07.2008 23:55

Да, lib - это именно namespace, пространство имён. menu_1 = HMENU обычно не пишут именно чтобы не "загрязнять" глобальное пространство имён.

maaboo 24.07.2008 00:16

Ага, теперь всё - понятней некуда. Так и запишем. Спасибо!


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

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