NodeProperty


Назначение

Возвращает свойство страницы сайта. Свойством является атрибут или параметр тэга node, определяющий страницу в menu.xml. Начиная с версии 4.20 возможно подключение дополнительного набора свойств для страниц используя сущность с предопределенным id="pageproperty".

Ключи

nodeid Идентификатор страницы сайта, указанный как атрибут id, в тэге NODE, описывающем страницу сайта в файле menu.xml. С версии 4.18 в качестве идентификатора страницы может выступать псевдоним страницы.

При совпадении в menu.xml псевдонима одной страницы и id другой, приоритет будет иметь псевдоним.

property Строка, совпадающая с именем одного из атрибутов, или с именем одного из дочерних тэгов ("параметров") тэга NODE, описывающем страницу сайта в файле menu.xml.

Комментарии

Применяется для различных программных трюков, в частности для вывода alias или id текущей страницы в javascript блоках отрисовки динамических меню.

Наиболее эффективно данный макрос используется для вывода "самодельных" свойств страниц. "Twilight CMS" позволяет разработчику добавить в тэг node дополнительный дочерний тэг (параметр) или дополнительный атрибут, определив новое свойство для страницы. Так можно добавлять дополнительные блоки, привязывать к страницам графические элементы и т.п. При этом рекомендуется атрибуты использовать для "системных" по смыслу, то есть невидимых редактором сайта свойств страниц, а параметры - для более длинных, открытых к просмотру или редактированию.

Примеры

Пример №1
$NodeProperty[something]$ - возвращает свойство something для текущей страницы

Пример №2
$NodeProperty[nodeid: someid; property: prop_name]$ - возвращает свойство prop_name для страницы с идентификатором someid

Пример №3
Если определить дополнительный перечислимый тип (см. описание раздела declaration для файла menu.xml), привязанный к этому параметру, редактор сайта получит возможность в админзоне с помощью мыши выбирать значение свойства страницы из выпадающего списка. В данном примере показано, как на этом сайте реализованы графические подзаголовки для страниц.

Часть файла menu.xml с описанием типа image-titles:

<declaration>
    <image-titles>
        <item value="o.gif" />
        <item value="head_download.gif" />
        <item value="head_partners.gif" />
        <item value="head_portfolio.gif" />
        <item value="head_description.gif" />
    </image-titles>
</declaration>

Часть файла menu.xml, определяющая структуру для новых страниц, создаваемых редактором через админзону в разделе default:

<node id="" title="Новый документ" assign="">
    <alias title="Псевдоним страницы" editable="true" />
    <template title="Шаблон фронтзоны" editable="true" type="front-templates">internal</template>
    <admin_template title="Шаблон админзоны" editable="false" type="back-templates">page_full_edit</admin_template>
    <image-title editable="true" title="Графический заголовок" type="image-titles">o.gif</image-title>
</node>

Подстановка, отображающая картинку, соответствующую текущей странице:

<IMG src="$NodeProperty[image-title]$">

Примечание: показанный в этом примере способ реализации данной функциональности не единственный. Также, использование перечислимых свойств страниц не является обязательным, а приведено в качестве комплексного примера.