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

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

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

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

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

 

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

    Как работать с полями в справочниках и каталогах


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

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

    Часть 1. Структура и редактирование данных.

    В системе управления реализовано такое понятие как "сущность". Сущность - это некий шаблон, по которому создаются все записи, или строки в таблицах данных. Все сущности, задействованные в конкретном сайте, описываются в файле Data/entites.xml, в котором определено какие поля нужны, как они называются и с помощью каких элементов редактирования они будут заполняться в админзоне редактором сайта. Подробное описание данного файла можно найти здесь. Файл entities.xml редактируется как обыкновенный текстовый файл, где разработчик может добавлять, удалять и редактировать поля по своему усмотрению.

    Как только новое поле добавлено в описание сущности, оно сразу появляется в админзоне и доступно для просмотра в списке записей и/или редактирования в карточке товара, новости и т.д.

    Часть 2. Вывод данных.

    Если данные введены в базу, для того чтобы их вывести на сайте необходимо в шаблонах дизайна того макроса, с помощью которого формируются страницы, указать в каком конкретно месте мы хотим вывести то или иное поле. Практически всегда это делается с помощью конструкции $Attribute:fieldname$. Для конкретики смотрите описание конкретного макроса в TSDN: http://www.twl.ru/tsdn/macroses.


    Пример действий разработчика

    Предположим, на странице с псевдонимом jobs выводятся вакансии, для чего используется макрос News. Разработчик хочет добавить в данный справочник поле "Зарплата", где будет указываться на какую компенсацию может рассчитывать претендент.

    Предположим, данные по вакансиям находятся в таблице jobs (файл Data/jobs.dat).

    Если разработчик не знает какая сущность используется для редактирования данных в той или иной таблице, она всегда может узнать это из файла menu.xml. В данном примере пусть связь между таблицей с данными (jobs.dat) устанавливается в разделе "Служебные функции" примерно следующим образом:

    <link id="jobs_01" title="Вакансии">
        <url></url>
        <admin-url>
            $ListEditor[table: jobs; entity: vacancy]$
        </admin-url>
    </link>

    Из данного фрагмента видно, что в файле entities.xml нужно найти сущность с id="vacancy", добавить в данную сущность наше новое поле:

    <field id="salary" type="string" name="Зарплата"/>

    и сохранить файл. После этого в админзоне при редактировании справочника вакансий будет доступно новое поле "Зарплата".

    Также, возможно требуется вывести данные по предлагаемой зарплате на страницы сайта. Для этого смотрим в файл Content/jobs.txt (т.к. псевдоним страницы у нас jobs) для того, чтобы выяснить идентификатор дизайна, который используется в конкретном макросе. Например, в файле мы видим что-то вроде:

    $News[source: jobs; design: joblist; sort: ...; condition: ...]$

    Идем в Templates/news_design.xml и ищем секцию <newsdesign ...> с id="joblist", в которой в нужном разделе в нужном месте выводим размер компенсации как $Attribute:salary$. salary в данном случае - это id поля, которое мы добавили в entities.xml.

    Все, можно смотреть на сайте результат.

    « к списку

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

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

    Реклама: