Давайте теперь изучим наше первое консольное приложение, а именно его файл определения древовидной структуры.
Сразу же скажу, что определение схемы для создания консольных приложений находится на сайте как /Composite/schemas/Trees/Tree.xsd.
Вы можете подключить эту схему к XML-файлу вашего консольного приложения в Visual Studio, например, и пользоваться IntelliSense и валидацией создаваемого XML.
Давайте откроем наш файл PageGuid.xml и рассмотрим его элементы.
Корневым является элемент ElementStructure.
Коревой элемент приложения включает в себя два обязательных элемента:
Тип подключения приложения
Этот элемент содержит информацию о том, как и где наше приложение должно появиться в админке.
Во-первых, как мы хотим, чтобы оно появлялось в админке: автоматически (ElementStructure.AutoAttachments) или пользователь будет сам добавлять приложение вручную (ElementStructure.AllowedAttachments)?
В данном случае приложение будет появляться автоматически:
(О добавлении приложения вручную мы поговорим в другом сообщении.)
Во-вторых, где мы хотим, чтобы наше приложение появлялось?
Здесь есть несколько вариантов. Приложение можно подключить:
Это системный тип, который не виден в разделе “Данные”. (Но с таким же успехом мы можем подключить приложение, например, к своему типу данных, который мы предварительно создали в разделе “Данные”.)
В данном случае мы расширяем возможности операций над страницами в C1, поэтому используем именно системный тип для страниц.
(Остальные варианты "мест" подключения мы рассмотрим в других сообщениях.)
Основная же часть приложения строится во корневом элементе древовидной структуры приложения - ElementRoot.
(продолжение)
Сразу же скажу, что определение схемы для создания консольных приложений находится на сайте как /Composite/schemas/Trees/Tree.xsd.
Вы можете подключить эту схему к XML-файлу вашего консольного приложения в Visual Studio, например, и пользоваться IntelliSense и валидацией создаваемого XML.
Давайте откроем наш файл PageGuid.xml и рассмотрим его элементы.
Корневым является элемент ElementStructure.
<ElementStructure
xmlns="http://www.composite.net/ns/management/trees/treemarkup/1.0"
xmlns:f="http://www.composite.net/ns/function/1.0">
<!-- … -->
</ElementStructure>
xmlns="http://www.composite.net/ns/management/trees/treemarkup/1.0"
xmlns:f="http://www.composite.net/ns/function/1.0">
<!-- … -->
</ElementStructure>
Коревой элемент приложения включает в себя два обязательных элемента:
- Тип подключения приложения (в данном случае: ElementStructure.AutoAttachments)
- Корневой элемент древовидной структуры (ElementRoot)
Этот элемент содержит информацию о том, как и где наше приложение должно появиться в админке.
Во-первых, как мы хотим, чтобы оно появлялось в админке: автоматически (ElementStructure.AutoAttachments) или пользователь будет сам добавлять приложение вручную (ElementStructure.AllowedAttachments)?
В данном случае приложение будет появляться автоматически:
<ElementStructure.AutoAttachments>
<!-- … -->
</ElementStructure.AutoAttachments>
<!-- … -->
</ElementStructure.AutoAttachments>
(О добавлении приложения вручную мы поговорим в другом сообщении.)
Во-вторых, где мы хотим, чтобы наше приложение появлялось?
Здесь есть несколько вариантов. Приложение можно подключить:
- к существующему элементу какого-то типа в одном из разделов админки (например, к страницам в разделе “Контент”)
- как самостоятельную структуру в одном из разделов (например, “Типы страниц” в разделе “Макет” - это именно тот случай)
- как структуру в своем собственном разделе
<DataType Type="Composite.Data.Types.IPage" />
Это системный тип, который не виден в разделе “Данные”. (Но с таким же успехом мы можем подключить приложение, например, к своему типу данных, который мы предварительно создали в разделе “Данные”.)
В данном случае мы расширяем возможности операций над страницами в C1, поэтому используем именно системный тип для страниц.
(Остальные варианты "мест" подключения мы рассмотрим в других сообщениях.)
Основная же часть приложения строится во корневом элементе древовидной структуры приложения - ElementRoot.
(продолжение)
Предыдущие сообщения по теме:
Комментариев нет:
Отправить комментарий