Если вы скачали и установили демонстрационный сайт, возможно вы захотите внести незначительные (или значительные) изменения в структуру данных, которые уже сконфигурированы в системе. Например, добавить новое поле в новостную ленту или описание товара, чтобы иметь возможность им управлять из админзоны, или удалить лишние поля.
Это типовая задача, которую для простоты нужно разбить на две части.
Часть 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.
Все, можно смотреть на сайте результат.