понедельник, 24 января 2011 г.

Создание и использование папок данных (1)

Я уже писал, что для хранения данных C1 использует типы данных. Мы уже узнали, как создать глобальный тип данных и как представить данные из такого типа на странице при помощи XSLT функции (чаще) или визуальной функции (реже).

В отличие от глобальных типов данных, есть еще два вида, т.н. "страничные" типы данных, то есть всегда относящиеся к определенной странице на сайте - это папки данных (page data folders) и метатипы (page meta types).

Сначала о папках данных.


Например, для хранения комментариев к конкретной странице, логично использовать папку данных. Особенностью папки данных является то, что создается такая папка один раз (раздел Data), добавлять ее можно к разным страницам. Причем данные, хранящиеся в папке данных одной страницы, - это одни данные, а хранящиеся в папке данных другой страницы  - другие.

Создание и использование папок данных почти такое же как и для глобальных типов данных. Они точно также создаются и представляются на страницах при помощи XSLT или визуальных функций.

Главные отличия такие:
  • Добавление данных в папки данных осуществляется в разделе Content в конкретной папке, привязанной к конкретной странице. 
  • Доступ к элементам в папке данных в XSLT осуществляется все той же функцией данных, автоматически создаваемой для каждого нового типа (Get<Type>Xml). Однако здесь необходимо настроить правильно фильтр. Фильтр дает возможность отобрать те элементы папки данных, которые относятся к текущей странице (без явного указания какой).
Давайте создадим папку данных, которая будет хранить ссылки на страницы, которые тематически связаны с текущей страницей (т.н. "Ссылки по теме", See Also) (процедура такая же как и при создании глобальных типов):
  1. В админке, разделе Data, выбираем узел Page data folders (папки данных) и нажимаем Add Datatype.
  2. В редакторе типа, на вкладке Settings заполняем поля:
    • Title: вводим SeeAlsoLinks
    • Type name: тоже вводим SeeAlsoLinks
    • Type namespaces:  вводим Demo
Теперь добавим нужные поля:
  1. На вкладке Fields добавляем такие поля:
    • Page: Здесь мы будем хранить страницу, рекомендуемую для просмотра. Для типа поля (Filed type) нужно выбрать Data reference (Ссылка на данные), и далее для типа ссылки (Reference type) - выбрать C1 Page (Страница С1)
    • AltText: Здесь будем хранить альтернативный заголовок для ссылки. Тип поля - String (строка). Максимальную длину (String maximum length) можно поставить 256 символов (или больше - как вам нужно).
  2. В редакторе поля AltText для параметра Optional выбираем значение Yes, т. е. делаем это поле необязательным.
  3. Сохраняем папку данных (Save).
Теперь добавим папку к страницам:
  1. В разделе Content выбираем страницу, к которой мы хотим добавить папку данных.
  2. Вызываем контекстное меню и выбираем пункт Add datafolder.
  3. В окне Add Datafolder в ниспадающем списке Datafloder type выбираем нашу папку данных SeeAlsoLinks и нажимаем Finish. Папка появляется под страницей в дереве.
  4. Точно также добавим папку данных к другим страницам, где это необходимо.
А теперь наполним папки данными:
  1. Выбираем папку данных под одной из страниц и нажимаем Add Data.
  2. Редакторе данных заполняем поля Page и AltText и сохраняем это элемент данных.
  3. Повторяем шаг 2, чтобы добавить столько ссылок, сколько нужно.
  4. Повторяем шаги 1-3 для других страниц с папкой данных SeeAlsoLinks.
Чтобы выбрать страницу для поля Page, щелкните в поле и в открывшемся окне браузера страниц сайта выберите нужную страницу. Текст в поле AltText необязательный - вводите текст по желанию. (При наличии текста, он будет использоваться вместо существующего заголовка страницы).

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

Об этом я расскажу в следующем сообщении.

(Продолжение следует...)

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

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