CmwHandBookAttrs

Материал из CmwCms
Перейти к: навигация, поиск

Стандартные атрибуты[править]

Стандартные атрибуты, это атрибуты которые есть у каждого итема (объекта) коммунивера. Технически они храняться в базе данных в таблице с именем 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 --

LEVEL — Уровень вложенности древовидной сортировки, для случая древовидного запроса с <--

Атрибуты 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 не учитывает!