![]() |
Объясните место в мануале, плз
Пытаюсь вкурить элементарные вещи из Futuristic Template Building, и вот мне что непонятно:
# Menu 1 cObject lib.menu_1 = HMENU menu_1 = HMENU - это мы вроде как создаём объект с именем menu_1 типа HMENU, правильно? А откуда взялся "lib."? Или это придуманное имя для данного примера? |
Из наших же записей. Когда мы создаем некий элемент в шаблоне TV, который имеет тип TypoScript Object Path, то мы просто обязаны задать ему некое имя, а TV ему присваивает этот самый "lib.".
То есть в приведенном примере объект мы создали еще раньше в TV, а сейчас просто описываем его средствами TS. |
Цитата:
|
На самом деле, имя 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 преобразуется в массивы, а как их обрабатывать - отдельная песня. ЗЫ. Извините, был несдержан)) |
Цитата:
За что же извинять? Тут благодарность как минимум с занесением. :-) |
Цитата:
|
Цитата:
# Creates persistent ParseFunc setup for non-HTML content. This is recommended to use (as a reference!) lib.parseFunc { ... Неспроста! То есть этот самый lib. - суть объект, создаваемый по умолчанию, ну вроде как temp.? |
Чтобы было более понятно, в данном случае lib, можно представить просто как пространство, в котором собраны полезные объекты, используемые на странице. CSS Styled Content использует это пространство для определения нескольких полезных объектов (функций), но никто Вам не мешает и темболее не запрещается добавлять туда свои собственные объекты.
|
Да, lib - это именно namespace, пространство имён. menu_1 = HMENU обычно не пишут именно чтобы не "загрязнять" глобальное пространство имён.
|
Ага, теперь всё - понятней некуда. Так и запишем. Спасибо!
|
Часовой пояс GMT +4, время: 08:18. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot