Вход для клиентов и партнеров
в начало сайта
Партнерская программаОнлайн демоСкачатьКарта сайта
 

Регламент
Документация
Часто задаваемые вопросы (FAQ)
Решения типовых вопросов
Форум поддержки
Библиотека разработчика

Посмотрите демо-ролики и убедитесь в том, что "Twilight CMS" очень удобна в управлении, понятна и проста.

Бесплатно скачайте "Twilight.Basic", установите на своем компьютере и изучите систему более детально.

Если вам нужно установить "Twilight CMS" на существующий сайт или разработать новый - обращайтесь в отдел интеграции.

 

Ваше имя
Ваш Email
Вопрос
Twilight.basic
  • Узнайте больше
  • Сравните версии
  • Twilight.selection
  • Узнайте больше
  • Сравните версии
  • Twilight.evolution
  • Узнайте больше
  • Сравните версии
  •  
    Главная // Библиотека разработчика // Справочники // Книга рецептов (Cookbook) // Стандартные решения типовых задач //

    Дополнительные свойства для страниц


    Типовая задача

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

    Решение №1
    Если количество изображений ограничено и жестко задано их число, то можно воспользоваться механизмом атрибутов и параметров XML тэга в файле menu.xml, используя при необходимости секцию для определения наборов значений.

    Пример:
    В файле menu.xml в секции <default> определяется заготовка для элемента node. Модифицируем её, добавив те свойства, которые нам нужны.

    <node assign="" id="" title="Новый документ">
        ...
        <image-title editable="true" title="Графический заголовок" type="image-titles">
            o.gif
        </image-title>
    </node>

    В данном примере добавлено свойство image-title, признак editable="true" позволяет редактировать данное свойство редактору из админзоны, type определяет перечень допустимых значений для данного свойства. В этом примере значения будут браться из секции image-titles и по умолчанию при создании новой страницы будет подставляться значение "o.gif".

    image-titles определяются в секции <declaration>:

    <declaration>
        <image-titles>
            <item value="o.gif"/>
            <item value="head_download.gif"/>
            <item value="head_login.gif"/>
            ...
        </image-titles>
    </declaration>

    Решение №2 (реализовано с версии 4.22)
    В файле Data/entities.xml определяется сущность со служебным идентификатором pageproperty, например:

    <entity id="pageproperty" name="Свойства страницы">
        <field id="announce" type="string" sortas="literal" name="Анонс"/>
        <field id="picture" type="image" sortas="literal" name="Картинка"/>
    </entity>

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

    Разработчик может использовать дополнительные свойства страниц стандартным образом через макроподстановку $NodeProperty[]$.

    Сложная задача

    Требуется для каждого шаблона страниц на сайте использовать различное количество полей в дополнительных свойствах страниц.

    Решение (реализовано с версии 4.22)

    Создаем несколько сущностей, по одной на каждый или на несколько шаблонов страниц, которые определены разработчиком в системе. В папке Data заводится справочник с предопределенным именем entityfortemplate. В нем необходимо создать записи, связывающие сущности для дополнительных свойств страниц и шаблоны. Поля данного справочника: id (содержит имя шаблона) и entity (содержит имя сущности). Если связующий справочник не планируется редактировать через админзону его можно создать в упрощенной форме, то есть только с двумя нужными нам полями:

    id::internal1::entity::pageproperty1
    id::internal2::entity::pageproperty2

    В остальном решение полностью аналогично в реализации варианту с одной сущностью для описания дополнительных свойств на весь сайт.

    Если система не найдет файла entityfortemplate или в нем не найдется шаблон, то будет использоваться имя сущности по умолчанию (pageproperty). Если такой сущности в entities.xml не будет найдено, система отключит возможность редактирования расширенных свойств в админзоне.

    Стоит отметить, что все расширенные свойства для всех шаблонов (пусть даже и описываемые различными сущностями) будут по-прежнему храниться в файле pageproperties.dat.

    « к списку

    версия для печати

     
    © 2003-19 Страта Технологии (создание сайтов, разработка cms), Twilight CMS in english.
    Наш адрес: Москва, пр. Маршала Жукова д.51
    Тел.: (495) 222-6436, E-mail: , карта сайта, условия использования информации о CMS
    Звоните через Skype:  

    Реклама: