CmwHandBookAttrs
Стандартные атрибуты
Стандартные атрибуты, это атрибуты которые есть у каждого итема (объекта) коммунивера. Технически они храняться в базе данных в таблице с именем item.
PARAMS - Формально свободный атрибут, в который может быть записана некая произвольная информация касаемо итема. Фактически в default site'е этот атрибут используется как флаг для включения/отключения комментариев на странице объекта.
Системные атрибуты
CURRENT_TEMPLATE - Имя шаблона который в данный момент используется для отображения итема
CURRENT_SERVER - Содержит идентификатор сервера для которого генерируется данная страница.
SYSDATE - Текущая дата и время (строго говоря дата и время перехода в текущий контекст)
AUTHOR_ID - Идентефикатор пользователя по слабой авторизации, которую можно подделать. Исторически более ранняя. При данном типе авторизации в браузере клиента поселяется долгоживущая Cookie с именем AUTHOR_ID, содержащая имя залогининого пользователя
REAL_USER_ID - Идентификатор пользователя по сильной авторизации. В данном случае в сессию браузера выдается временная, зашифрованная Cookie, которую сложнее подделать, чем AUTHOR_ID
USER Совпадает с AUTHOR_ID, в случае если пользователь зарегистрирован в сиситеме, иначе содержит значение "АНОНИМ". Данный атрибут следует применять только для формирования информационных сообщений, и ни в коем случае не использовать для определения прав доступа.
URL_PREFIX
SCRIPT_PREFIX
PIC_PREFIX
Сепц. атрибуты Loop-конекста
SEQ_NO -- номер итерации (начиная с 1)
ODD -- четная/нечетная по номеру строка (0/1)
TOTAL_SEQ_NO --
PREV_$groupattr --
NEXT_$groupattr --
NEXT_ITEM --
Атрибуты default-сайта
см. default/template_d в качестве источника информации
STRUCTURETYPES - список типов итемов которые образуют древовидную структуру сайта. применяются для построения оной древовидной структуры, и видимо, прочих работ на множестве структурирующих элементов.
MATERIALTYPES - определяет список типов итемов которые считаются Материалами данного сайта. Материалы - это то, что у дерева служит листиками (хотя это не совсем так, книга - тоже материал, но у неё своя внутренняя древовидная структура). Материалы нужны для формирования страницы "все материалы" и новостного блока. (Нина Белявская )
CHILDRENTYPES - типы потомков которых можно создавать на данной странице. Служит для формирования выпадающего меню "Добавить" в панеле управления.
CHILDRENLINK - тип связи по которому будут создвавться все потомки из CHILDRENTYPES
PRINT_VIEW - по всей видимости, флаг означающий что имеет место просмотр перед печатью.
SYS_VIEW - по всей видимости флаг что надо показывать системное меню. принимает значения от 0 до 4 с не вполне понятным смыслом. см. http://cmw.irrc.ru/default/def_tech_header_e
PAGETITLE - Позволяет задать подзаголовок, при отображении стандартного итема default-сайта. Заголовком всегда будет TITLE отображаемого итема. Если подзаголовок в атрибуте PAGETITLE явно не задан, то в случае если итем отображается шаблоном отличным от шаблона по умолчанию, в качестве подзаголовка будет использован заголовок шаблона.
Вычисляемые атрибуты
Отдельный класс атрибутов. Их значения определяются путем выполнения sql запроса, или юнифильтра. Могут принимать параметры
CHILDREN - посчитать кол-во потомков (в том числе внуков и правнуков для транзитивной связти), по заданной связи, принадлежащих текущему сайту. Возможно так же ограничить подсчет итемами определенного типа Например:
Следующий фрагмент шаблона выводит кол-во потомков для итема default по транзитивной связи TOPIC. (Фактически все элементы сайта)
<:Loop (default):> <:Subst @{CHILDREN(TOPIC)}:> <:EndLoop:>
Если же добавить в параметры тип итема, в данном случае ARTICLE, то мы получим количество статей связанных по транзитивной связью TOPIC с итемом default. (Фактически кол-во статей на сайте)
<:Loop (default):> <:Subst @{CHILDREN(TOPIC,ARTICLE)}:> <:EndLoop:>
Для одноуровневой (не транзитивной) связи вычисляемый атрибут CHILDREN считает только прямых потомков
<:Loop (some_user):> <:Subst @{CHILDREN(AUTHOR)}:> <:EndLoop:>
Этот фрагмент шаблона посчитает солько итемов на текущем сайте создал пользователь some_user. (При этом если пользователь user2 был создан пользователем some_user, то итемы авторства user2 в итоговую сумму не попадут так как связь AUTHOR является одноуровневой (не транзитивной)
Будте внимательны!! Связи ведущие за пределы сервера вычисляемый атрибут CHILDREN не учитывает!