PDA

Просмотр полной версии : Объясните место в мануале, плз


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
Из наших же записей. Когда мы создаем некий элемент в шаблоне 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
На самом деле, имя 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
То есть вместо lib я могу написать какое угодно слово (не совпадающее с именем встроенных объектов и оно будет работать? А почему не писать просто menu_1 = HMENU ?

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

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

maaboo
23.07.2008, 20:39
Вполне возможно написать. Но при использовании 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
Ага, теперь всё - понятней некуда. Так и запишем. Спасибо!