вторник, 15 февраля 2011 г.

Метатипы: (1) Введение

Я уже рассказывал о том, как создавать глобальные типы данных и “страничные” папки данных, а также как представить данные из этих типов на странице при помощи C1 функций.

Кроме папок данных существует еще один вид "страничных" типов данных - метатипы (page meta types).

Метатип может состоять из одного и более полей. Когда вы добавляете элемент метатипа на страницу, фактически вы добавляете его поля, и они становятся мета-полями страницы и появляются на отдельной вкладке - Метаданные.

При помощи метатипов можно добавлять разнообразную мета-информацию к странице, и потом использовать программно для реализации определенной логики или представлять ее как часть содержимого страницы.
Например, в пакете PageComments используется метатип Settings (Настройки), который позволяет: а) прятать комментарии на странице; б) включать возможность получать уведомления по эл. почте при добавлении комментария. Это пример использования значений мета-полей для управления поведением функциональности на сайте.

Если вы установили демо-сайт OmniCorp, во время установки С1, то обратили внимание на картинку и текст на картинке на каждой странице демо-сайта. Выбор картинки и текста контролируется при помощи соответствующих мета-полей страницы. Это пример использования значений из мета-полей как части содержимого страницы.

Особенностью метатипов является возможность наследования мета-полей дочерними страницами, причем можно контролировать уровни наследования, т.е. с какого уровня начинать наследование и нужно ли начинать вообще :)

Прежде чем мы приступим к созданию и использованию метатипа, сначала реализуем небольшой функционал, который мы как раз и будем контролировать при помощи значения мета-поля на странице.

Для этого нужно создать XSLT функцию ShowChangeData, которая показывает дату и добавить ее в шаблоны страниц сайта. Вот как это сделать:
При помощи метатипа, который мы создадим далее, мы будем разрешать или запрещать показ этой даты на конкретной странице. (Реализуя это именно так, я исхожу из соображений, что показ даты - предпочтительный вариант, и только на некоторых страницах ее не нужно показывать.)


Итак, давайте создадим метатип.

Комментариев нет:

Отправить комментарий