Создание собственных типов данныхКомментарии к статьеВерсия для печати  

Любой тип данных, начиная от корневого типа - Infospace, и заканчивая статьями, файлами или новостями имеет свою структуру. Эта структура описывается в конфигурационных XML-файлах.

Выбор места размещения

Описание нового типа данных должно быть в одном из config*.xml файлах, находящихся в каталоге ARPSITE_HOME/etc. Название файла должно определяться исходя из следующих предпочтений:

  • config-названиепроекта.xml, если новый тип данных относится к какому-либо сайту или порталу (проекту).
  • config-названиефирмы.xml, если новый тип данных относится ко всем проектам какой-либо фирмы. 1

В одном файле могут быть описаны несколько типов данных и могут находиться другие элементы конфигурации системы.

Место элемента <type> в структуре конфигурационного файла

Файл конфигурации системы всегда должен иметь корневой элемент <config>, являющийся родителем для остальных элементов конфигурации. Для хранения информации о типах данных используется подэлемент <types>. Этот элемент не имеет атрибутов и содержит только подэлементы <type>, которые хранят информацию о каждом типе данных.

	<config>
		<types>
			<type>
    			<table database="application | arpsite" name="objects_...">
				   <definition>
						... int,
						... varchar(255), 
						... text
					</definition>
				</table>
				<fields>
					<field behaviour=".." name="..."/>
					<field behaviour="..." name="..." parameters="!0"/>
					<field behaviour="..." name="..." parameters="0"/>
				</fields>
				<parents>
					<type name=".."/>
				</parents>
				<children>
					<type name="..."/>
					<type name="..."/>
				</children>	
			</type>
			<type id=...>
					...
			</type>
				...
		</types>
		...
	</config>

Описание формата элемента <type>

Элемент type содержит несколько атрибутов и дочерних элементов.

Атрибуты элемента <type>:

  • id - уникальный идентификатор типа данных, по которому ядро системы Arp.Site различает типы данных. Он может лежать в промежутке от 1001 до 2147483647. Номера меньше 1000 зарезервированы как системные. Рекомендуется выбирать номера по шаблону yymmddnn, где yy - последние две цифры года, mm - номер месяца (01-12), dd - день месяца (01 - 31), nn - номер типа данных, среди созданных в этот день.
  • name - системное имя типа данных. Например, для статьи это article, для новости - news. К имени предъявляются требования, аналогичные требованиям к имени элемента в стандарте XML, т.к. именно системное имя типа данных используется в качестве имени корневого элемента при выводе информации об материале в XML. Дополнительно это имя используется в качестве имени файла XSLT-шаблона для этого типа данных, поэтому не следует давать разным типам данных одинаковые имена. Рекомендуется имя типа данных выбирать по шаблону названиепроекта_названиетипа.
  • title - имя элемента, которое увидит пользователь в системе управления Sandbox. Не используется при выводе информации на сайтах.
  • realm - область информационного пространства, в котором может использоваться тип данных. Подробнее об областях информационного пространства смотрите соответствующую статью. Если на сервере нет заданных областей информационного пространства, можно использовать 0 (ноль).
  • group - группа, к которой относится материал. Этот атрибут имеет значение строки и используется для логической группировки типов данных в системе управления Sandbox. Не используется при выводе информации на сайтах.
  • behaviour - Java-класс, который управляет отображением материалов данного типа данных. По умолчанию используется Java-класс, который отображает XML со всеми данными об типе данных, с дальнейшим преобразованием в HTML по заданному дизайнером шаблону.
  • options - дополнительные опции по управлению классом, перечисленные через запятую и имеющие тип переключателей (присутствует - включено, отсутствует - выключено):
  • composite - показывает, что данный объект следует рисовать в XML, включая вложенные объекты. Такими являются, например, custom («Произвольный объект»), который рисует вложенные новостные ленты, статьи и галереи (что удобно для объединения нескольких разнородных материалов на одной странице).
  • entry - показывает, что данный объект является важным объектом вернего уровня иерархии материалов. Например, такими типа данных являются корень (Информационное пространство - Infospace), сайт (site), группа сайтов (group). Эти элементы ограничивают рисование стандартного дерева в XML. Т.е. стандартное дерево будет включать в себя все материалы, являющиеся entry, а также все материалы, являющиеся structural, и находящиеся в последнем активном элементе типа entry. Также в модуле tree-path путь до элемента рисуется начиная с последнего активного материала (чаще всего таки выступает сайт).
  • publishable - Определяет возможность создать этот материал самим пользователем с помощью системы управления. Это часто используемая опция. Материалы, которые не имеют этой опции, чаще всего являются служебными и создаются системой автоматически. К ним относятся, например, материалы обсуждений (тексты комментариев), которые создаются компонентом обсуждения материала без участия редактора сайта.
  • structural - используется при построении стандартного дерева материалов в XML. В стандартном дереве отображаются только материалы, которые помечены как entry и structural.
  • visible - обозначает материал, который не должен быть показан самостоятельно. Если пользователь пытается просмотреть такой материал, будет показан (без перенаправления) нижележащий материал с именем index. Иначе, если такого нет, система будет пытаться всё-таки показать сам материал. Также такие материалы не рисуются в стандартном дереве материалов.
  • edit-unit - используется в системе управления Sandbox для обозначения типов материалов, которые представляют законченный материал с точки зрения редактора. Например, таким материалом может являться статья, но не является файл. Только эти типы объектов отображаются на рабочем столе на вкладках «Опубликованные», «Предложенные к публикации» и т.д.
  • loggable - используется в системе статистики для обозначения типов данных, статистика о посещаемости которых должна собираться. Например, статистика о просмотре статей собирается, а статистика о просмотре отдельных файлов - нет.
  • often - используется в системе управления Sandbox для индикации того, что материал этого типа данных будет создаваться очень часто и его следует показывать в основном меню Sandbox. (А не в дополнительном меню, которое открывается только по щелчку на кнопке «Другие объекты»).
  • skip-sandbox-menu - используется в системе управления Sandbox для индикации того, что даже если пользователь может создать материал этого типа данных, его не следует показывать в меню Sandbox. Этот тип данных будет предложен только на странице создания нового материала при нажатии кнопки «Вставить новый материал» у объекта, который является допустимым родителем для нового типа данных.
  • template - используется в системе управления Sandbox для обозначения типа данных, имеющих XSLT-шаблон отображения. Т.е. в меню выбора шаблона для редактирования будут шаблоны только этих типов данных (и два служебных шаблона). Имеет смысл не указывать эту опцию только для материалов, которые не отображаются с помощью шаблонов. Например, такими материалами являются файлы.

Дочерние элементы элемента <type>

  • description - комментарий к типу данных. Иногда его может увидеть пользователь в системе управления Sandbox. Не используется при выводе информации на сайтах.
  • table - элемент описания таблицы базы данных, в которой будет хранится информация данного материала.
  • fields - описание полей материала.
    • name - имя
    • config - имя тега в конфиге, из которого можно взять настройки данного поля
    • parameters - параметры
      • для текста: 0 - выводить в XML как type="textarea", ! - всегда проверять на пустоту поля (!0)
    • behaviour - название класса, ответсвенного за отображение типа (ru.arptek.arpsite.content.fields.IntegerFieldBehaviour, ru.arptek.arpsite.content.fields.TextFieldBehaviour, arp.site.ifs.StyledTextFieldBehaviour, ru.arptek.arpsite.content.fields.BooleanFieldBehaviour)
  • parents - список разрешённых типов родительских материалов для данного типа.
  • children - список разрешённых типов дочерних материалов для данного типа.

1 Даже если на сервере будет располагаться информация только одной фирмы, не следует использовать стандартные конфигурационные файлы для хранения собственной информации, т.к. она может быть потеряна при обновлении Arp.Site.

Последнее обновление материала:

Прокоментировать  [Кол-во комментариев: 0] Обсудить в форуме

Разделы сайта
Почтовый адрес:
141700, Московская область, г. Долгопрудный, Институтский переулок , дом 9, офис 207

Телефон/факс
+7 (495) 408 70 72

Электронная почта
Общие вопросы: info@arptek.ru
Вопросы сотрудничества: business@arptek.ru