You are on page 1of 57

Руководство пользователя

CMS SAPID v.1.2.3

5 июля 2005 г.

Текущая версия:
http://sourceforge.net/project/showfiles.php?group_id=118100&package_id=132259
(доступно в PDF)

Авторы:
Максим Барышников, Red Graphic Systems (mb@redgraphic.com)
Дмитрий Шейко, Red Graphic Systems (d@redgraphic.com)

Спонсором проекта является компания Red Graphic Systems
www.redgraphic.com

Страница 1 из 57 SAPID CMS (sapid.sourgeforce.net)

Оглавление

1 Вступление..................................................................................................................3
2 Возможности ..............................................................................................................3
3 Организация SAPID ...................................................................................................7
4 Назначение .................................................................................................................7
5 Устойчивость к нагрузкам.........................................................................................7
6 Системные требования ............................................................................................8
7 Инсталляция................................................................................................................8
7.1 Возможные проблемы при инсталяции SAPID....................................................................9
7.1.1 Режим MODREWRITE.....................................................................................................9
7.1.2 Режим Multiviews...........................................................................................................10
7.1.3 Режим Disabled..............................................................................................................10
8 Интерфейс администрирования............................................................................11
8.1 Многоуровневое администрирование в SAPID..................................................................11
9 Управление сайтом..................................................................................................12
9.1 Что такое сайт и что такое CMS..........................................................................................12
9.2 Управление содержанием...................................................................................................13
9.2.1 Как управлять новостями на сайте..........................................................................14
9.3 Команды WYSIWYG-редактора...........................................................................................14
9.3.1 Функции дополнительной панели...............................................................................15
9.3.2 Интерфейс добавления изображений........................................................................16
9.3.3 Создание галерей.........................................................................................................16
9.3.4 Общие возможности визуального редактора...........................................................18
9.3.5 Использование форматирования при редактировании содержания......................18
9.3.6 Перемещение по текстовому полю...........................................................................18
10 Создание сайта.......................................................................................................18
10.1 Разработка концепции сайта.............................................................................................18
10.1.1 Структура документа..............................................................................................19
10.1.2 Структура сайта......................................................................................................19
10.2 Создание шаблонов...........................................................................................................19
10.2.1 Синтаксис указателей объектов XML Sapiens в шаблонах документов............20
10.2.2 Включения кода системного языка CMS.................................................................21
10.3 Создание структуры...........................................................................................................22
10.4 Управления пользователями............................................................................................23
10.5 Моделирование интерфейсов...........................................................................................24
10.5.1 Создание веб-сервиса ...............................................................................................24
10.5.2 Создание модуля (DDC).............................................................................................24
10.5.3 Модули (DDC) дистрибутивного пакета................................................................26
10.5.4 Универсальный DDC инфоканала.............................................................................30
10.5.5 Создание CMS-приложения ......................................................................................30
10.5.6 Список CMS–приложений дистрибутивного пакета............................................30
10.5.7 Структура хранилища данных.................................................................................34
10.5.8 Передача инструкций CMS.......................................................................................35
10.5.9 Режим трассировки ...................................................................................................37
11 Объекты XML Sapiens............................................................................................38
11.1 Контейнеры запросов (QC)................................................................................................38
11.2 Контейнеры статических данных (SDC)...........................................................................39
11.3 Контейнеры динамических данных (DDC)........................................................................40
11.4 Выражения XML Sapiens...................................................................................................41

Страница 2 из 57 SAPID CMS (sapid.sourgeforce.net)

11.5 Список выражений XML Sapiens.......................................................................................42
11.6 Указатели XML Sapiens.....................................................................................................42
11.7 Параметры вызова DDC ...................................................................................................43
11.8 Перенаправление потока DDC..........................................................................................43
12 Руководство разработчика SAPID.......................................................................43
12.1 Программная модель.........................................................................................................43
12.2 Среда окружения................................................................................................................44
12.2.1 Глобальные переменные............................................................................................44
12.2.2 Переменные окружения..............................................................................................44
12.3 Структура сайта.................................................................................................................46
12.4 Данные документа.............................................................................................................46
12.5 Размещение скриптов........................................................................................................46
12.6 Информационный канал....................................................................................................49
12.7 Функции общего назначения.............................................................................................49
13 Сообщество и поддержка......................................................................................50
13.1 Интернет-пейджер SAPID..................................................................................................50
14 Импорт проекта.......................................................................................................51
15 Экспорт проекта......................................................................................................53
16 Синдикация данных...............................................................................................53
17 Поисковая оптимизация сайта ............................................................................54
17.1 Анализатор SEO.................................................................................................................55
18 Термины...................................................................................................................55
19 Ссылки.....................................................................................................................56

1 Вступление
SAPID- свободно распространяемое в соответствии с условиями лицензии
GNU (см. файл Licence.Ru в комплекте поставки) программное обеспечение с
открытым кодом (Open Source). SAPID - это система управления сайтами
(CMS), на ее основе вы можете создать и поддерживать персональные и
тематические проекты.
У вас уйдут считанные минуты на то, чтобы настроить SAPID на своем
сервере. SAPID нетребовательна к хостингу: системе необходимо немного
пространства (до 2 Мб). SAPID подстроится под возможности вашего
хостинга, и, если на сервере подключены дополнительные модули
(ModRewrite, GZIP и т.п.), сможет использовать их преимущества.
Если у вас уже есть сайт, то структура и информация может быть перенесена в
SAPID автоматически.
SAPID – это также opensource-среда разработки сайтов, отвечающая
требованиям спецификации XML Sapiens (универсального языка управляемых
сайтов http://www.xmlsapiens.org) от рабочей группы XML Sapiens.

2 Возможности

Страница 3 из 57 SAPID CMS (sapid.sourgeforce.net)

• Простота установки и использования.
Для того, что бы установить CMS SAPID вам всего лишь понадобится
распаковать дистрибутивный пакет на хост-сервер и стартовать скрипт
install.php. После этого для вас станет доступным демонстрационный сайт с
виртуальным гидом по системе. Каждый интерфейс системы снабжен
многочисленными комментариями и подсказками. В SAPID применена
технология прямого редактирования (Inline), что позволяет администратору
привычным образом перемещаться по разделам сайта и при необходимости
редактировать их.

• Минимальные требования к хостигу (file flat), независимость от
платформы.
Для использования SAPID Вам понадобиться минимальный хостинг-план.
Достаточно всего несколько мегабайт дискового пространства и язык PHP
4.x. Вы можете установить SAPID на практически любой бесплатный
хостинг-сервер, предоставляющий PHP. Если вам понадобиться перенести
проект на другой хостинг или создать локальную резервную копию сайта,
достаточно всего лишь скопировать файлы проекта.

• Программное ядро, построенное по концепции XML Sapiens.
Для создания веб-сервисов, новых интерфейсов сайта в free ware CMS SAPID
вам не потребуется знания программного языка PHP. Вы можете
использовать простые алгоритмы XML Sapiens для описания сценариев и
алгоритмов динамических областей сайта. Вы также можете использовать в
своих проектах примеры готовых решений из дистрибутивного пакета, и
загружать решения из общественной библиотеки XML Sapiens Work Gallery
(http://xmlsapiens.org/lib/)

• WYSIWYG (Визуальный редактор для редактирования содержания
документов)
Вы можете самостоятельно задавать редактируемые области содержания для
документов сайта, в том числе области, редактируемые визуальным
редактором. Это значит, что содержание будет столь же удобно
редактировать, как вы привыкли это делать в MS Word.

• Различные форматы представления данных (HTML, XHTML, XML-
Flash, SVG, WML)
В СMS SAPID вы не ограниченны единственным форматом представления
данных HTML. То есть вы можете с помощью SAPID создавать и
редактировать сайты во Flash, WML (WAP), XML-XSLT и т.д.

• Адреса документов сайта, отражающие их структурную зависимость
(friendly URLs)
Если ваш сервер поддерживает технологию Apache Mod Rewrite, то адреса
документов вашего сайта будут иметь удобочитаемый, легко
запоминающийся и понимаемый поисковыми системами вид
(site.com/item_1/subitem_11/)

Страница 4 из 57 SAPID CMS (sapid.sourgeforce.net)

• Конструктор веб-сервисов.
Если вам понадобиться создать новый пользовательский веб-сервис, вы
найдете что в SAPID это можно сделать более чем просто и удобно.

• Готовые примеры веб-сервисов.
CMS SAPID содержит богатый выбор готовых функциональных решений.
Среди них различные навигационные формы, ленты новостей, каталог,
оригинальная гостевая книга, RSS-каналы, галереи, голосования, формы
регистрации, авторизации, feedback и прочие.

• Поддержка многоязычных сайтов
CMS SAPID содержит гибкий интерфейс управления структурой сайта и
инструментарий настройки навигационных форм. При необходимости вы
можете завести неограниченное число различных языковых версий сайта,
централизованно управляемых в режиме администрирования.

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

• Возможность создания статической HTML-копии сайта на базе CMS
SAPID.
Если вы пожелаете создать статичный архив вашего сайта, то можете
воспользоваться специальной утилитой CMS SAPID. Эта утилита создает
точную статичную HTML-копию сайта, а также необходимые файлы для
дальнейшей конвертации сайта с помощью HTM2CHM в популярный формат
Windows Help.

• Создание пользовательских групп для посетителей сайта
Вы можете легко завести различные группы для пользователей вашего сайта
(например, подписчики, клиенты, партнеры). Вы можете разграничивать
доступ к документам сайта для различных групп пользователей.

• Роли администраторов системы: базовый режим, экспертный и режим
оператора контента.
Free ware CMS SAPID располагает двумя уровнями режимов
администрирования: упрощенный (базовый) и расширенный (экспертный).
Кроме того, имеется специальный режим для операторов контента. Если вы
желаете поручить кому-либо управление содержанием на вашем сайте, вы
можете передать ему назначенные вами авторизационные данные. По этим
данным система позволит лишь управление содержанием документом, но не
более того.

Страница 5 из 57 SAPID CMS (sapid.sourgeforce.net)

Вы также можете включить себя в проект SAPID на странице http://sourceforge. • Встроенный пейджер для коммуникаций с разработчиками и участниками сообщества CMS SAPID.net) . то вы можете предложить свои идеи на обсуждение сообществом SAPID (http://www.sourgeforce. Для любово документа SAPID можно вызвать анализатор SEO. • Открытость проекта для вашего участия в его развитии. Если вы посчитаете. SAPID содержит специальный сервис для поисковой оптимизации документов сайта. • Анализатор SEO. что проекту необходимы какие-либо доработки. который сообщит о частоте встречаемости ключевых слов в различных индексируемых областях документа. то вы всегда сможете проконсультироваться непосредственно у разработчиков или же в сообществе проекта посредством специального сервиса SAPID – собственного пейджера мгновенных сообщений.net/projects/sapid/ Страница 6 из 57 SAPID CMS (sapid. Если по мере использования CMS SAPID вы столкнетесь с какими-либо проблемами.com/).sapid-club.

и ваш персональный сайт готов. пейджер мгновенных сообщений Павел Левкович (http://xmlsapiens.3 Организация SAPID CMS SAPID инициативный проект сотрудников Red Graphic Systems (www. Было реализовано приложение. документация. формирующее 20 запросов на демонстрационный сайт SAPID одновременно. Так как SAPID располагает широким арсеналом различных популярных веб- сервисов. что SAPID способен функционировать при нагрузке до 2 000 запросов в минуту.д.com). интерфейс статистики Дизайн проекта Ирина Зносок (i@redgraphic.redgraphic. пример 3D карты контента.org/~mephisto/) В проекте также принимают участие: Дмитрий Шейко (http://xmlsapiens.sourgeforce. Проект разрабатывается и продвигается при содействии компании Red Graphic Systems. При Страница 7 из 57 SAPID CMS (sapid. продвижение.org/~sheiko/) Концепция. Однако мы не гарантируем эффективную работоспособность проектов при высокой посещаемости. 5 Устойчивость к нагрузкам Сообществом пользователей SAPID проводилось тестирование устойчивости SAPID к нагрузкам. посвященные определенной тематике: автомобилям. Автор и разработчик проекта: Максим Барышников (http://xmlsapiens. Вы можете создавать с помощью SAPID тематические контент-проекты (сайт. вам не составит труда адаптировать их под свои нужды.com) 4 Назначение CMS SAPID идеально подходит для построения персонального сайта. Вы сможете легко интегрироваться с прочими сайтами подобной тематики посредством RSS-каналов и агрегатторов. В принципе.org/~linur/) Интерактивное дерево структуры.net) . вы можете всего лишь оформить готовые шаблоны документов из дистрибутивного пакета на свой лад и удалить излишние разделы. фитнесу.). контент-мигратор. домашним питомцам и т. SAPID можно использовать для построения небольших порталов-сообществ. Приложение стартовалось с порядка 200 компьютеров. Результаты тестирования показали.

sourgeforce.apache.org) • PHP version 4.* 777 usr/extentions 755 usr/extentions/*.9+ (браузеры на ядре Gecko) 7 Инсталляция После того как вы загрузили исходный код текущей версии программы.* 777 usr/templates/images 777 usr/templates/files 777 usr/xml 777 usr/xml/*. либо установить ее в ручную. В первом случае достаточно переписать файлы дистрибутивного пакета на сервер и стартовать скрипт install.net) .* 755 usr/templates 777 usr/templates/*. балансировке нагрузки между 3-мя серверами SAPID выдерживает нагрузку до 6 000 запросов в минуту.php. 6 Системные требования Сервер: • Apache Web Server / рекомендуется rewrite module/ (http://www. вы можете либо инсталлировать SAPID автоматически.conf.) Страница 8 из 57 SAPID CMS (sapid.* 777 usr/xml/content/ 777 usr/xml/sdc/ 777 usr/xml/vdb/ 777 log/ 777 Затем следует сообщить программе в файле конфигурации /etc/rc. В случае ручной установки после переноса файлов на сервер.1. Далее вы сможете просто следовать указаниям программы. вам потребуется расставить права доступа на папки и файлы следующим образом usr/dump 777 usr/dump/*.5+ (рекомендуется версия 6) FireFox 0. $http_path="http://myproject.php HTTP-адрес проекта в переменную $http_path (например.net) Система корректно работает как на платформе UNIX.php.com") и полный путь корневой папке проекта на сервере в переменную $root_path (например. $root_path ="/www/project/sapid/httpdocs/".x (http://www. так и под управлением Windows Клиент администратора: MS Internet Explorer 5.domen.

org/docs-2.*)$ index.htaccess и указать в конфигурационном файле etc/rc.php.net) .php ErrorDocument 404 /404/ Options +Followsymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.0/mod/mod_rewrite.com/article/guide-url-rewriting Страница 9 из 57 SAPID CMS (sapid. и авторизоваться (pass/pass). Если вы произвели установку корректно. то при переходе по заданному вами адресу (http://myproject. Для перехода к панели управления потребуется добрать к адресу сайта /area51/ (/?vpath=/area51/ при отключенном MODREWRITE).com/index.sitepoint.1 Режим MODREWRITE В ходе инсталяции может быть неопределенно наличие модуля MOD_REWRITE на вашем сервере. http://www. 7.apache.com) вам будет доступен демонстрационный сайт SAPID.php $MODREWRITE="enabled". Пример файла .1.htaccess DirectoryIndex index. Для получения Friendly URLs (человеко понятных адрессов документов) вам потребуется самостоятельно настроить ваш .conf. таким образом: DirectoryIndex index.*)$ http://mysite.domen.sourgeforce. Например.html.php?%{QUERY_STRING} Для некоторых платформ потребуется указать полный путь к файлу index.php ErrorDocument 404 /404/ Options +Followsymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.1 Возможные проблемы при инсталяции SAPID 7.php?%{QUERY_STRING} Узнать подробнее о MOD_REWRITE можно по адресам: http://httpd.

com/index.php Options -Multiviews –Indexes ErrorDocument 404 http://mysite.htaccess.php 7.net) .3 Режим Disabled Если ваш хостинг-план не позволяет ни MODREWRITE. Для этого потребуется указать в конфигурационном файле etc/rc. укажите в конфигурационном файле etc/rc.1. Файл .htaccess следующим образом: DirectoryIndex index.1.php $MODREWRITE="disabled".conf. его можно удалить.sourgeforce.php $MODREWRITE="Multiviews"..2 Режим Multiviews Если вам так и не удалось настроить MODREWRITE на своем сервере вы можете попробовать применить режим Multiviews. Страница 10 из 57 SAPID CMS (sapid.conf. и настроить .7. ни Multiviews или же у вас нет возможности управлять .htaccess в данном случае вам не потребуется.

Это значит. а в дальнейшем воспользоваться кнопкой «Сохранить» или «отменить» по обстоятельствам. Следует помнить. Вы в любой момент можете выбрать кнопку «Просмотр» в панели состояния и увидеть текущий документ сайта. Обратите внимание на наличие в правом верхнем углу панели состояния. Можно выбрать кнопку «Редактировать» и перейти к редактированию содержания документа. «Просмотр». Посетитель (неавторизованный пользователь сайта) взаимодействует c пользовательским интерфейсом самого верхнего уровня. В общем случае в верхней части экрана будет всегда отображена основная административная панель. Интерфейс администрирования Давайте рассмотрим. как организован интерфейс администрирования SAPID. Сразу же под ней имеется вспомогательная административная панель. что вы всегда находитесь на сайте и по необходимости обращаетесь к интерфейсам управления сайтом. которая содержит ссылки на второстепенные сервисы.sourgeforce.net) . 8. «Выход» или же «Сохранить». что SAPID организован по принципу «прямого редактирования». «Отменить» и «Выход» в зависимости от состояния текущего документа. В ней расположены кнопки «Редактировать». Кнопка «Выход» для выхода из режима администрирования сайта. Администратор сайта в режиме администрирования взаимодействует с пользовательским интерфейсом самого Страница 11 из 57 SAPID CMS (sapid.8 Интерфейс администрирования Рисунок 1.1 Многоуровневое администрирование в SAPID Посредством SAPID создаются пользовательские интерфейсы. содержащая ссылки на интерфейсы системы.

нижнего уровня.е. имеющая определенный интернет- адрес обознается нами как документ. Страница 12 из 57 SAPID CMS (sapid. Достаточно определить область проекта доступную лишь для заданной группы. Любые интерфейсные решения на сайте (навигационные формы. Шаблон содержит код представления документа (например. информационные списки. CMS и связанные с ними для проекта SAPID. блоки модулей). Группа сайтов. 10. Имеется ввиду.3). CMS SAPID позволяет управлять представлением (внешним видом) документов и внутренней структурой документов. Т. называется информационным пространством. CMS SAPID позволяет управлять структурными связями документов сайта. В некоторой степени это справедливо. что в CMS SAPID можно создавать шаблоны. Любая информация доступная в Интернете.sourgeforce. и мы получаем новый слой пользовательского интерфейса. связанного с CMS- приложением или же прямым указанием кода контролера в шаблоне <? EXTERNAL . Но дабы избежать разночтений в определениях.2). Между этими двумя слоями может быть сколь угодно большое число промежуточных интерейсов.1 Что такое сайт и что такое CMS Мы часто используем термин CMS. HTML) и указатели на логические объекты (блоки редактируемого содержания.д. связанных между собой. так или иначе связанных между собой.1. Сайт может содержать различные языковые версии. CMS SAPID позволяет управлять веб-сервисами сайта и логикой интерфейсов. подразумевая программы управления сайтом. что визуально отражается деревом структуры (См. Сайт – это множество документов.) создаются и управляются в режиме администрирования CMS SAPID.11. ?> 9 Управление сайтом 9. CMS SAPID позволяет управлять содержанием документов или частей документов сайта. языковых версий и даже информационного пространства.net) . интерактивные формы. мы определим понятия сайт. обуславливающие группы схожих документов. выборки и т.. устанавливать зависимость документов. Контроллер данных в таком слое может быть организован посредством указания DDC (См.

com/?vpath=/area51/ при отключенном MODREWRITE. Для изменения содержания какого-либо документа вам следует выбрать документ. Если вы их не меняли в файле etс/rc. то можно набрать pass/pass. что можно сделать посредством привычной навигации по сайту или же через интерфейс «Структура». но под ней все тот же демонстрационный сайт. Перейдя к искомому документу. см. Теперь в верхней части экрана появилась административная панель. Достаточно лишь произвести правку текстов (а также таблиц и изображений для запроса WYSIWYG) и подтвердить сохранение изменений кнопкой «Сохранить» в правой части административной панели.php. следует нажать кнопку «Редактировать» в правой части административной панели.9. Редактирование содержания документов Страница 13 из 57 SAPID CMS (sapid.1) и далее ввести в форме свои авторизационные данные.2 Управление содержанием Если вы установили SAPID и ознакомились с демонстрационным сайтом для управления этим содержанием достаточно лишь набрать маршрут http://myproject.domen. 7. Для удаления документа или создания нового следует воспользоваться интерфейсом «Структура» Рисунок 2.conf.com/area51/ (http://myproject. Все динамические данные документа будут представлены в виде соответствующих им запросов.sourgeforce.net) .domen.

Рисунок 3. В режиме редактировния (переход посредством меню в панели состояния) напротив каждой новости будет представлена кнопка для удаления. Содержание новости может редактироваться как любой другой документ. «Чистить код». Если вы желаете редактировать новость.net) .9. 11. см. Если вы перейдете к документу «Infochannel».1 Как управлять новостями на сайте Интерфейс управления новостями может быть настроен вами в соответствующем DDC (сценарии. а ниже списка новостей кнопка для добавления новости.3).3 Команды WYSIWYG-редактора Области редактируемого содержания. вам следует перейти по ссылке (Read more) к ее содержанию. Под областью редактирования размещены три кнопки: «+». «HTML-код». Визуальный редактор SAPID имеет стандартные возможности IE Design Mode и добавленные к ним.sourgeforce. то получите список новостей раздела. с назначенным в шаблоне документа типом «Визуальный редактор» при редактировании документа будут представлены в визуальном редакторе. В дистрибутивном пакете предстален следующий интерфейс. Редактирование ленты новостей 9.2. когда надо очистить скопированное в область редактирования содержание от какого-либо HTML-форматирования Кнопка «HTML-код» является переключателем между режимами правки в HTML-формате и визуальном представлении Страница 14 из 57 SAPID CMS (sapid. Кнопка «Чистить код» применяется.

и задать действие. Mozilla) для включения отображения курсора в режиме визуального редактирования нажмите F7 9.net) .sourgeforce. • Добавить ссылку – обратиться к интерфейсу добавления ссылки. подпись к ней. подпись к нему. Netscape. где можно указать имя добавляемого файла.1 Функции дополнительной панели • Шрифт – выбрать шрифт для выделенного фрагмента содержания • Выравнивание – задать правила выравнивания для выделенного фрагмента содержания • Отступ – задать отступ вправо или влево для выделенного фрагмента содержания • Список – преобразовать выделенный фрагмент содержания в список • Добавить файл – обратиться к интерфейсу добавления файла. и задать действие. совершаемое при переходе по ссылке на файл. • Вставить изображение – обратиться к интерфейсу добавления изображений Страница 15 из 57 SAPID CMS (sapid. Замечание: Если вы используете браузер на базе ядра Gecko (Firefox.3. совершаемое при переходе по этой ссылке. где можно указать ссылку. Кнопка «+» раскрывает панель дополнительных функций.

9. отступы по горизонтали и вертикали. правило выравнивания изображения. то вам Страница 16 из 57 SAPID CMS (sapid. толщину оконтовки.JPG/.3.net) . 9.2 Интерфейс добавления изображений Для добавления нового изображения вам потребуется выбрать файл изображения (допускаются файлы . Интерфейс добавления изображения Если вы желаете добавить в содержание документа изображение из ряда добавленных на сайт ранее.sourgeforce. Рисунок 4.BMP/.PNG/. то переключитесь в режим «Мой сайт» в горизонтальном меню в верхней части окна. Вы также можете указать сопроводительный текст для изображения.GIF/.3.3 Создание галерей Если вы желаете создать элемент галереи (малое изображение при переходе по которому открывается всплывающее окно с большим изображением).SWF).

После чего вы сможете указать размеры для иконки (малого изображения). и добавлен код обрабатывающий переходы по этому изображению. Добавление изображения в галерею Страница 17 из 57 SAPID CMS (sapid. следует отметить чекбокс «Создать иконку». Рисунок 5.sourgeforce. В таком случае при вставке изображения будет создана также и копия с заданными вами размерами.net) .

6 Перемещение по текстовому полю Нажмите Чтобы HOME Перейти в начало записи END Перейти в конец записи СТРЕЛКА ВЛЕВО или СТРЕЛКА ВПРАВО Переместить один знак влево или вправо CTRL+СТРЕЛКА ВЛЕВО или CTRL+СТРЕЛКА Переместить одно слово влево или вправо ВПРАВО SHIFT+HOME Выделить текст от курсора до начала записи SHIFT+END Выделить текст от курсора до конца записи SHIFT+СТРЕЛКА ВЛЕВО Выбрать или отменить выбор одного знака слева SHIFT+СТРЕЛКА ВПРАВО Выбрать или отменить выбор одного знака справа CTRL+SHIFT+СТРЕЛКА ВЛЕВО Выбрать или отменить выбор одного слова слева CTRL+SHIFT+СТРЕЛКА ВПРАВО Выбрать или отменить выбор одного слова справа 10 Создание сайта 10.3.sourgeforce. связанных между собой документов. имеющих уникальные интернет-адреса.5 Использование форматирования при редактировании содержания Нажмите Чтобы CTRL+B Сделать текст полужирным CTRL+I Сделать текст курсивным CRTL+U Сделать текст подчеркнутым CTRL+SHIFT+Z или CTRL+ПРОБЕЛ Очистить формат 9.3. Вам понадобится определиться с тем какие типы документов будет содержать ваш сайт и каким образом они будут связаны между собой. Как мы уже говорили.1 Разработка концепции сайта Прежде чем поступить к построению сайта.9.4 Общие возможности визуального редактора Нажмите Чтобы CRTL-Z Отменить текущую операцию CTRL+S Быстрое сохранение изменений. следует продумать архитектурный план.3. Страница 18 из 57 SAPID CMS (sapid.net) . не покидая интерфейса редактирования 9. любой сайт – это множество.

наиболее полно отражающей структуру типичного сайта. О том. по структуре. как создавать навигационные формы (меню) см. файлы Java-скриптов.2) 10.net) . Вам необходимо выделить все такие группы и создать соответствующие шаблоны. что облегчит доступ к востребованным данным со стороны пользователей. Нажимаем кнопку «Создать новый шаблон» и переходим к интерфейсу добавления шаблона. Страница 19 из 57 SAPID CMS (sapid. но различных по содержанию. Эта зависимость в дальнейшем будет отражена в различных навигационных формах сайта. Для проектирования меж документных зависимостей можно воспользоваться популярной моделью иерархического дерева.10. изменить или удалить имеющийся. А также вы можете добавлять и редактировать вспомогательные файлы. которому назначен данный шаблон на сайте.1. вам следует ввести название нового шаблона. подробнее раздел «Создание шаблонов» (10. Другими словами шаблон документа. Далее вы можете указать код представления шаблона. В этом интерфейсе вы может создать собственный шаблон. Прежде всего. как будет выглядеть документ. Давайте попробуем создать новый шаблон для документа.2 Структура сайта Следует также продумать то. Подробнее о том. в разделе «Создание структуры». такие как стилевые таблицы (CSS). как управлять деревом структуры сайта в SAPID см.1 Структура документа Документы сайта могут различаться по содержанию. 10.2 Создание шаблонов Как мы уже говорили. определяет группу документов схожих по структуре и представлению. что шаблон определяет то. каким образом документы сайта будут связаны между собой. См.1.sourgeforce. В CMS SAPID структуру и представление документа задает шаблон. Для создания нового шаблона следует перейти в интерфейс «Шаблоны». в разделе «Создание DDC» (10. и в представлении (графический дизайн).5.2).

Укажем имя для указателя «body» и тип запроса «Визуальный редактор».value" /> Страница 20 из 57 SAPID CMS (sapid. 11.value" type="string" /></h1> <sapi:apply name="qc. В появившемся окне вам следует указать имя для указателя запроса содержания. Выделите слово «Заголовок» и нажмите крайнюю левую кнопку ниже поля ввода кода. отвечающую требованиям спецификации XML Sapiens (www. что блоки содержания «заголовок» и «текст» могут редактироваться в режиме администрирования. см. 11) См.sourgeforce. также интерактивный курс на http://sapid. При создании и редактировании шаблонов вы можете не только задавать расположение для редактируемого содержания.1 Синтаксис указателей объектов XML Sapiens в шаблонах документов Общая конструкция для указателя любого объекта в SAPID выглядит следующим образом <sapi:apply name="объект. скажем “title” и выбрать тип запроса.title.body. Теперь мы выделяем слово «Текст» и повторяем предыдущие действия. Слово «Заголовок» будет заменено указателем запроса содержания. но указать положение блоков содержания общих для всех документов (SDC. например «Запрос текста на одну строку». или же включить в шаблон модуль системы (DDC. также раздел «Объекты XML Sapiens» (см.2.xmlsapiens.net/download/screate_ru/ 10. Например.value" type="publication" /> </body> </html> После того как мы сохраним изменения шаблон отобразиться в общем списке шабонов и его можно будет назначать документам сайта в интерфейсе управления структурой. 11. вставить системную переменную или же другую конструкцию.org). В результате мы должны получить такой шаблон <html> <body> <h1><sapi:apply name="qc.2). <html> <body> <h1>Заголовок</h1> Текст </body> </html> Однако нам надо указать. см. См.3).net) .sf.

net) .value" type="publication" /> 10.sourgeforce.value" type="string" /> Замечание: В настоящей версии SAPID возможно использовать только предустановленный контейнеры запросов. Таким образом. Свойство value указывает.value" /> Имя переменной variable1. у которых тип и форма запроса содержания в режиме администрирования задается дополнительным атрибутом type. А также типы image. Указатель на контейнер запросов может выглядеть так: <sapi:apply name="qc.2. что нам необходимо значение переменной.2 Включения кода системного языка CMS В особых случаях требуется непосредственное обращение к коду языка программирования CMS. Допустимы значения text для строкового запроса и publication для визуального редактора. Например: <sapi:apply name="qc.body.body. указатель на данные системной переменной может выглядеть так: <sapi:apply name="variable. checkbox. SAPID поддерживает включения кода системного языка в следующем синтаксисе: <?EXTERNAL код_системного_языка ?> или <?SYSTEM код_системного_языка ?> Страница 21 из 57 SAPID CMS (sapid. file.

что бы изменить расположение какого-либо раздела дерева достаточно «зацепить» пиктограмму папки раздела и перетащить в новое место. определяемыми собственным уникальным интернет-адресом. ресурсами. физически являются документами сайта. расположенную под деревом структуры. Так как SAPID использует программный язык PHP.net) . нажмите соответствующую кнопку. Удерживайте клавишу Ctrl и поступайте в остальном также как при перетаскивании. Создание нового раздела структуры Следует также упомянуть. то подразумевается. Т. Вы хотите скопировать раздел из одной ветви дерева в другую? Нет проблем. представленном в этом интерфейсе.3 Создание структуры Для управления структурой сайта следует перейти интерфейс «Структура». что в CMS SAPID логические разделы и подразделы структуры. что код внутри конструкции на PHP. как при этом теряется переносимость функциональных решений. Рисунок 6. Замечание: Прибегать к включениям системного языка не рекомендуется.е. Потому. Для того. Для создания нового логического раздела в структуре следует нажать ссылку «Добавить подраздел» напротив родительского элемента дерева для Страница 22 из 57 SAPID CMS (sapid. 10.sourgeforce. Вы можете воспользоваться технологией Drag&Drop для операций с деревом структуры. Если вы желаете сохранить произведенные вами изменения.

Подобную маску удобно использовать. Т.sourgeforce. #+.4 Управления пользователями SAPID содержит интерфейс «Пользователи» для управления списком пользователей системы. также раздел «Управление пользователями». Вам потребуется назначить владельца раздела. Уже при создании раздела. следует выбрать его название в дереве. См. следует нажать «Добавить подраздел» напротив элемента структуры. Таким образом. его адреса и его шаблона.net/download/structure_ru/ Замечание: Следующая маска доступа к документу 751 означает. Для того что. раздел примеры. пользовательскую группу раздела и права в формате владелец/группа/все_остальные (например. При добавлении появиться окно с запросом имени для раздела. что бы редактировать содержание выбранного документа достаточно всего лишь нажать кнопку «Редактировать» в правой части панели администрирования. также интерактивный курс на http://sapid. 777). См. бы перейти из структуры к какому-либо из документов сайта.переход к отдельной записи. Допускаются маски: # . если вы желаете организовать адреса новостей ваше новостной ленты в развернутом виде – адрес_ленты/год/месяц/день/ID_новости. выборка новостей по году и родительского документа со списком новостей). создаваемого раздела. но ссылка документ не будет отображаться в навигации сайта. ##. то вам следует преобразовать раздел ленты в иерархическую ветвь масок ####. Посетители сайта могут видеть документ. ##. При указании предопределенных групп Страница 23 из 57 SAPID CMS (sapid. для создания элемента верхнего уровня меню сайта. обозначающего сам сайт. Для сохранения изменений в правой части панели администрирования имеется кнопка «Сохранить». то это стоит обозначить соответствующей маской.целочисленное (например. когда требуется вручную указать в содержании документа ссылку на определенный документ. При создании нового пользователя достаточно лишь указать его login/password и группу.net) . 10.подразумевает четырехзначную запись года) #+ . Если создаваемый документ является указателем на выборку из списка родительского документа (например. что документ управляется владельцем и группой. Для этого используется общепринятая модель UNIX. См. Теперь вы можете изменить содержание определенных шаблоном блоков документа. #### .е. Также запрашивается маска выборки данного документа. Для того.sf. вы можете назначать права доступа в этот раздел.

10. managers – операторы контента) подразумевается определение соответствующих пользовательских ролей. Однако это подразумевает однонаправленный обмен данными (от CMS к сайту). содержание пользовательской формы CMS для сохранения в SAPID используется специальный синтаксис параметров формы. назначить пользовательскую группу и обозначить UNIX-маску на права доступа владелец/группа/все_остальные (777). мы можем видеть. впрочем. С другой стороны благодаря возможности использования системного кода непосредственно в шаблоне вы можете разместить в шаблоне вызов скрипта контроллера (<?EXTERNAL include(“. 11. Каждому разделу можно назначить пользователя-владельца. В интерфейсе управления структурой при создании нового раздела запрашивается информация о пользовательских правах на данный раздел.5. Передачи инструкций CMS из пользовательской формы в документе сайта (факультативно). «Переменные окружения» в спецификации XML Sapiens). что отразиться при генерации объектов документа (например.1 Создание веб-сервиса Сценарий поведения любого веб-сервиса или же пользовательского интерфейса сайта в CMS SAPID обуславливает соответствующий модуль (DDC.net) .php”). ?> ). Создание функции CMS (CMS-приложения) 3. например. содержание DDC). Итак. «приложения CMS» в спецификации XML Sapiens). скажем список материалов ленты новостей.5 Моделирование интерфейсов 10. Назначение прав происходит по принципам. происходит обращение к функции CMS (см./usr/extensions/ doc1_controller. Когда DDC требуется получить какие-либо данные от CMS. что создание нового веб-сервиса в SAPID может содержать до 3-х уровней управления. чего. Аргументами выражений в условиях могут быть системные переменные (см.2 Создание модуля (DDC) Страница 24 из 57 SAPID CMS (sapid. Создание модуля (DDC) 2. в зависимости от действий пользователя. Этот скрипт будет обрабатывать пользовательские запросы к документу и формировать на их основании среду окружения. 1.sourgeforce. Когда же все- таки требуется передать данные пользователя.5.inc. достаточно для большинства интерфейсных задач. принятым в UNIX. Содержание DDC описывает варианты кода возвращаемого модулем для всех условий состояния среды. (wheel – администраторы. 10. см.3).

value" />› <a class="inactive" sapi:href="this.value" /> › <a class="active" sapi:href="this.this.value"><sapi:apply name="this. 11.dtd"> <sapi:ddc name="menu" title="ddc" ns="site1" category="navigation"> <sapi:author> <sapi:name>Max Baryshnikov</sapi:name> <sapi:email>mb@rg.spacer.by</sapi:email> <sapi:url>www. содержание.1)</sapi:exp> <sapi:code> <sapi:apply name="this.1)</sapi:exp> <sapi:code> <sapi:apply name="this. создание нового сервиса SAPID начинается с интерфейса режима администрирования «Модули».HREF. мы просто рассмотрим пример одного DDC: <?xml version="1. Таким образом.this.com</sapi:url> </sapi:author> <sapi:comments>Vertical menu with subitems.currentpage. Вам потребуется создать новый DDC.xmlsapiens.this.</sapi:comments> <sapi:choose> <sapi:when exp="1"> <sapi:for-each select="get_tree()" name="enum"> <sapi:choose> <sapi:when> <sapi:exp>eq(this. В 9й строке описание модуля.3). Как уже было сказано. которого должно отвечать требованиям спецификации XML Sapiens.this. Это пригодится если вы пожелаете внести свое решение в общественную библиотеку XML Sapiens Work Gallery Страница 25 из 57 SAPID CMS (sapid.this.spacer.value" /></a><br /> </sapi:code> </sapi:when> <sapi:when> <sapi:exp>eq(this.net) .org/spec/sapi.value.0" xmlns:sapi="http://www.currentpage. см.this.value" /></a><br /> </sapi:code> </sapi:when> </sapi:choose> </sapi:for-each> </sapi:when> </sapi:choose> </sapi:ddc> </sapi> В двух первых строках этого кода мы определяем стандартный заголовок XML.value.HREF.redgraphic. и дабы неповторяться здесь.this.value"><sapi:apply name="this.TITLE. Синтаксис и концепция DDC детально описаны в спецификации http://xmlsapiens.0"?> <sapi version="1. Далее с 3-8 строки мы вносим информацию об авторе. сценарий веб-сервиса определяет соответствующий контейнер динамических данных (DDC.sourgeforce.org/spec/bodyofthesapi/datacontainers/dynamiccontainer/.this.TITLE.

что будут перебираться условия.2) Состояние просмотра – состояние.1) ). Он проверяет два условия. сообщение об ошибке будет отображено (условие IV).currentpage. Если пользователь неавторизован показывается форма из первого условия.sourgeforce.org/lib/). когда нажата кнопка «Редактировать» на панели состояния. 2. Если в ходе регистрации или авторизации возникла ошибка. оно возвращает информацию о всех элементах структуры. 10.xml Модуль авторизации. что возвращаемые последовательно CMS- приложением элементы структуры будут анализироваться на соответствие заданным условиям. При этом отображается форма для регистрации пользователя (условие III). Get_tree() – рекомендованное приложение. books. Вы желаете изменить оформление меню сайта? Измените оформление для содержания элемента SAPI:CODE для каждого из этих случаев или же добавьте новые условия. говорящий о том. выражения которых помещены в элемент SAPI:EXP. когда посетитель просматривает сайт.xml Пример инфоканала типа каталог.value. когда администратор управляет сайтом. запрашиваются логин и пароль (условие I).не соответствует ли текущий элемент перечисления текущему документу сайта (открытому в данный момент).value" />) с сопутствующим ему различным кодом представления. Далее мы можем видеть элемент SAPI:CHOOSE. скажем для проверки уровня вложенности (LEVEL).this.TITLE.3 Модули (DDC) дистрибутивного пакета Файлы DDC расположены в папке /usr/xml/ddc/. 2) Режим администрирования – режим. В случае выполнения данного условия (а оно выполняется всегда) стартует перебор значений (SAPI:FOR-EACH). Модуль Описание authorization. (http://xmlsapiens.net) . В каждом из этих случаев возвращается свойство элемента перечисления TITLE (<sapi:apply name="this. когда нажата кнопка «Просматривать» на панели состояния. Инфоканал может иметь следующие режимы и состояния: 1) Режим доставки содержания – режим. запрашиваемых у CMS-приложения get_tree(). Модель инфоканала 1. В данном DDC на верхнем уровне встречено лишь одно условие (SAPI:WHEN) – всегда истинное (1). 2.this. Вложенный элемент SAPI:CHOOSE опять намекает нам. Если пользователь авторизован будет отображена лишь форма изменения регистрационных данных (условие II). второе условие обратное первому ( eq(this.5. Базовые условия Страница 26 из 57 SAPID CMS (sapid. В первом случае проверяется .1) Состояние редактирования – состояние.

Показать выбранную запись в режиме администрирования.5). CMS-приложение get_tree.1. в состоянии редактирования. Модуль возвращает HTML-код календаря.LIMIT(0.1.1.1.BOOK_AUTHOR. он выводится как ссылка. 1. Элемент списка.2. CMS-приложение назначает значения переменным типа &day. 1.net) . 1. Показать навигацию по страницам списка.1. Замечание: В режиме доставки содержания. Показать выбранную запись (по ссылке ‘Read more’) в режиме доставки содержания. Показать запись списка в режиме доставки содержания. Иначе будет отображено название элемента без ссылки. • сортировать по индексному полю BOOK_TITLE (один из запросов содержаиня записи) по-возврастающей. • Если 3й (индекс 2) параметр навигационной части адресной строки равен "filter" и 4й параметр задан.3.1. укоторых содержание поля BOOK_TITLE начинается с 4го параметра (в 4м параметре передается буква алфавита для фильтрации). содержание полей принимается из переменных списка..value" />) В режиме администрирования предполагается для запроса данных содержания. calendar. соотвественно используется конструкция QC (например. то выводить в список лишь те записи.1. Обращение к CMS-приложению get_infochannel.xml Модуль календаря инфоканала.2.4. • базовый адрес канала en/samples/infochannel2/. согласно заданных ему параметров возвращает список всех элементов структуры от 1 до 3 уровня и элементов. <sapi:apply name="qc. где указатели на переменные в ячейках календаря будут заменены соответствующими значениями переменных. Страница 27 из 57 SAPID CMS (sapid. 1. Показать запись списка в режиме администрирования.4.5. Показать выбранную запись (по ссылке ‘Read more’) в режиме администрирования.sourgeforce. возвращенного CMS-приложением (например.this.xml Модуль каскадного меню.xml Модуль маршрута к документу. 1. если она не содержит ссылки ‘Read more’. Показать запись списка в режиме доставки содержания. 1.3. breadcrumbs.1. возвращенному CMS-приложением 1. • показывать по 5 записей на страницу . CMS-приложение get_track() возвращает список элементов маршрута. в состоянии редактирования (добавление записи.value. Если элемент списка не последний. 1. 1. в состоянии редактирования. Перебор условий по списку.BOOK_AUTHOR. являющихся потомками текущего раздела. редактирование записи).value" />). <sapi:apply name="this. cascadevmenu. Показать кнопку для добавления запись. Используются следующие параметры: • текущий инфоканал books.

DDC содержит 2 последовательных условия. Таким образом. когда нажата кнопка «Просматривать» на панели состояния Модель инфоканала 1.xml infochannel.1.xml Универсальный DDC инфоканала. Обращение к CMS-приложению get_infochannel. horizontalmenu.xml Модуль меню структуры 1-го уровня. DDC обращается к CMS-приложению get_gb_records за списком записей гостевой книги (к файлу /usr/xml/vdb/guestbook.xml Модуль комментариев документа. DDC также отображает форму для добавления сообщения. Показать запись списка в режиме доставки содержания Страница 28 из 57 SAPID CMS (sapid. указанного в третьем параметра адресной строки.xml Модуль «выпадающего» меню. Если при разборе XML RSS канала не произошла ошибка. то DCC возвращает HTML со списоком записей канала.xml Модуль простого меню. На первом уровне DDC помимо вывода в HTML Jscript . возвращенному CMS-приложением 1. Этот модуль можно считать классическим примером многоуровневых конструкций условий и перечислений в DDC.1) Состояние редактирования – состояние.xml Модуль RSS-импорта. Перебор условий по списку. get_rss. DDC обращается к get_tree за структурой сайта и далее задает оформления для ее отображения. куда сохраняются все комментариии к документам. dropdown_menu. Базовые условия 1. DDC задает отображение для записей списка RSS- канала. иначе будет отображено содержание ошибки. Инфоканал может иметь следующие режимы и состояния: 1) Режим доставки содеражиня – режим.xml Модуль гостевой книги. когда нажата кнопка «Редактировать» на панели состояния 2. guestbook. либо без нее. когда посетитель просматривает сайт 2) Режим администрирования – режим.xml) и отображает эти записи либо с ссылкой для удаления (в административном режиме). DDC возвращает динамическое меню 3-х уровней вложенности.2) Состояние просмотра – состояние. Данный DDC.net) . Аналогичным образом DDC ведет себя при переборе записей 2-го уровня.sourgeforce. Первая запись списка выделяется. defaultmenu. Во втором условии отображается форма добавления комментария к документу.1. В первом CMS-приложение get_infochannel возвращает список специального инфоканала allcomments_index. Текущий раздел будет выделен.частный случай defaultmenu. для приема списка из всех элементов структуры 1 уровня. когда администратор управляет сайтом 2. При переборе записей списка происходит обращение к get_tree за текущей ветвью 2-го уровня. Параметры передают при вызове DDC. чем прочие (Условие II). comments. обращается к CMS-приложению get_tree. соответствующий текущему разделу (Условие I) будет оформлен иначе.1.

Показать выбранную запись (по ссылке ‘Read more’) в режиме администрирования.value" type="string" index="yes" title="Title of news" />). search. в состоянии редактирования 1. либо ‘ru’.xml для задания адреса для просмотра новости отдельно используется переменная this. В этом случае get_tree возврашает список вех вложенных разделов. согласно заданной маски (например. Работает аналогично infochannel. DDC обращается к CMS- приложению get_infochannel за списком записей канала news. topmenu.3.6.this. поэтому он передается CMS-приложению get_tree для получения нужного списка записей.sourgeforce.MORE. то то рассматривается случай ‘en’. Таким образом. inner_menu. В случае переданного через нее запроса происходит обращение к CMS- прилоежению get_searchresults за списком результатов поиска.xml Модуль экспорта инфоканала в RSS.this.xml Модуль меню вложенных разделов. DDC отображает форму поискового запроса. В обратном случае отображается форма с результатами голосования. <sapi:apply name="this.value" />) В режиме администрирования предполагается запрос данных содержания. Узнать подробнее о модуле в 10. <sapi:apply name="qc.value. но параметры передаются непосредственно в DDC. В случае возникновения ошибки (не надено результатов) – ошибка будет отображена. содержание полей принимается из переменных писка. год/месяц/день/ID). если она несодержит ссылки ‘Read more’ 1. Данный параметр определяет ветвь структуры.xml Модуль меню заданной языковой версии сайта.4. Далее в DDC задается RSS-формат оформления запсией списка.net) .7. Показать запись списка в режиме доставки содержания.xml Модуль поиска. соотвественно используется конструкция QC (например. news. Показать запись списка в режиме администрирования. если текущий пользователь еще не голосовал. Показать кнопку для добавления новости 1. от infochannel. menu.8. Показать навигацию по страницам списка Замечание: В режиме доставки содержания.xml Модуль примера голосования. в состоянии редактирования (добавление записи.xml Страница 29 из 57 SAPID CMS (sapid. в состоянии редактирования 1.TITLE. DDC отображает форму приема голосов. редактирование записи) 1. Если выбрана текущей главная страница. Показать выбранную запись (по ссылке ‘Read more’) в режиме доставки содержания 1.xml Модуль ленты новостей.xml.1.2.5. В данном случае либо ‘en’. возвращенного CMS-приложением (например.TITLE.xml Частный случай defaultmenu. show_rss. В отличии. Версия сайта определяется первым параметром адресной строки.5.1. survey. DDC обращается к CMS-приложению get_tree с параметром _CHILDRENOFCURRENT_. адреса элементов списка имеют расширенный формат. Показать выбранную запись в режиме администрирования.1.

создавать для каждого из них отдельный DDC неоптимально.5)_ _ORDER(INDEX. также 10.5. если потребуется содержание языкового меню сайта CMS-приложение может быть вызвано следующим образом get_tree(''. согласно переданным ей параметров.infochannel. В этих случаях логичней использовать один DDC infocahnnel.TITLE. '_LEVELRANGE(1-1)_'). но передавать параметы заданного инфоканала в параметрах DDC. .. На выходе функции мы получим массив array(0 => array("counter" => 1. Так как во многих веб-проектах требуется наличие большого числа однотипных инфоканалов.6).5.).4 Универсальный DDC инфоканала В дистрибутивном пакете представлен универсальный DDC инфоканала infocahnnel.5. специальная лента Параметры: ( [string вспомогательная_командная_строка]) Страница 30 из 57 SAPID CMS (sapid.6 Список CMS–приложений дистрибутивного пакета Приложение Описание get_infochannel() Описание: Информационный канал: лента новостей..) (См. В SAPID системным языков является PHP.ASC)_ </sapi:param> </sapi:apply> 10.10. лента статей. "TITLE" => "Current title". Задача любой функции CMS возвратить массив перечисления.5.value"> <sapi:param name="query"> _CHANNEL(news)_ _BASEURL(en/samples/news/)_ _LIMIT(0. 10.sourgeforce. Например. .net) . Например: <sapi:apply name="ddc.5 Создание CMS-приложения Для приема данных DDC от CMS используются функции CMS (CMS- приложения).xml и пример его выова в шаблоне. значит язык функций CMS SAPID также PHP.

navigation.сounter.5.B)_ .ASC)_ .style.previous.NAME.value – ID записи this. _WHERE( this.navigation.this.navigation. См.net) . образованной от запроса содержания – QC.сортировать список случайным образом _ORDER(DATEC.this.value – текущий номер элемента перечисления this.this.MORE.previous – требуется ли отображать навигацию по страницам списка «назад» this.value – ссылка вглубь для заданной записи с маской (год/месяц/день/ID) this.leght – число элементов перечисления this.href .this. Например.NAME.previous.ПОЛЕ. 10.5.ID.ссылка для перехода к следующей странице списка Страница 31 из 57 SAPID CMS (sapid.sourgeforce.5. 10. Например.value – значение ПОЛЯ перечисления (переменной.this.ссылка для перехода к следующей странице списка this. Где A – порядковый номер для начала списка.3 _WHERE(выражение) – выбрать узлы согласно условия.this. не требуется создавать вспомогательную ветвь дерева) this.сортировать список по дате создания узлов _ORDER(DATEC.20)_ _CHANNEL(имя_канала)_ .value – ссылка вглубь для заданной записи без маски (при использовании такого рода ссылок. _LIMIT(0.next. Дополнительные переменные this.navigation.сортировать список по индексноу полю NAME в обратном порядке.DESC)_ .next – требуется ли отображать навигацию по страницам списка «вперед» this.сортировать список по индексноу полю NAME. разделенные пробелами: _ALLITEMS_ . Индексным полем может быть любой запрос содержания (QC) с атрибутом index=”yes”.BOOK_TITLE.this.next.DESC)_ . Выражение _WHERE_ может содержать переменные и сравнительные операнды.TO_SELECT.value – дата создания записи в формате DATETIME this.value like ‘A%’)_ Переменные перечисления: this. См.ASC)_ . См.navigation.href . B – число выводимых узлов.возвращает ‘none’ если не требуется отображать навигацию по страницам списка «назад» this.сортировать список по дате создания узлов в обратном порядке _ORDER(INDEX.navigation.display – возвращает ‘none’ если не требуется отображать навигацию по страницам списка «вперед» this.6).value. 10. Вспомогательная командная строка может содержать следующие значения.this. Индексным полем может быть любой запрос содержания (QC) с атрибутом index=”yes”.3 _ORDER(INDEX.display .DATE_CREATE.принять потомков для каждого узла _LIMIT(A.style.Ограничение числа выводимых узлов.указать имя информационного канала _BASEURL(адрес_канала)_ .указать адрес информационного канала _ORDER(RANDOM)_ .

this.TITLE.ASC)_ .GROUP.this.PATH.value – переменная раздела структуры this.PERMISSIONS.value – отступ через &nbsp.value – уровень вложенности раздела структуры this.ID.spacer.value – наличие потомков this.this.value – группа раздела структуры this.this. spacer.this. string вспомогательная_командная_строка]) Вспомогательная командная строка может содержать следующие значения.this.сортировать списоки уровней по именам узлов в обратном порядке _ORDER(DATEC.this.DESC)_ .this.this.this.this.сортировать списоки уровней по дате создания узлов в обратном порядке Переменные перечисления: this. принять все узлы структуры информационного пространства __CHILDRENOFCURRENT_ .сортировать списоки уровней по именам узлов _ORDER(NAME.ASC)_ .value – относительный адрес раздела структуры this.value – владелец раздела структуры this.value.this.this.value – шаблон. определяющая отступ для разделов при формировании вертиекального меню.принимать по каждому узлу.net) .value – текущий номер элемента перечисления this.VAR_PARENT.сортировать списоки уровней по дате создания узлов _ORDER(DATEC.TEMPLATE. в соответствии с уровнем вложенности this.LEVEL5.this.CHILDREN.VAR.leght – число элементов перечисления this.this.LEVEL. _LEVELRANGE(начальный_уровень-конечный_уровень) – ограничения по уровням _GETCONTENT_ . разделенные пробелами: _ALLITEMS_ .возвратить потомки для текущего раздела _INDENTIONSTR(строка) – строка.value – строка отступа this.OWNER.value – уровень вложенности раздела*5 раздела структуры (для использования в HTML-атрибуте style) this.get_tree() Описание: Дерево структуры Параметры: ( [int URI_ начального_раздела . данные связанного документа _ORDER(RANDOM)_ .value – заголовок раздела структуры this.value – переменная родительского раздела Страница 32 из 57 SAPID CMS (sapid.сортировать списоки уровней случайным образом _ORDER(NAME.сounter.value – ID раздела структуры this.this. связанного документа this.sourgeforce.DESC)_ .value – маска доступа к разделу структуры this.

this.title.this.value – заголовок элемента перечисления this.value – длина графического индикатора результата this.this. day Переменные перечисления: this.this.PER_ {n}.in_route.value – ссылка на элемент перечисления get_survey() Описание: Данные формы голосования Переменные перечисления: this.сounter.this.this.сounter.this.leght – число элементов перечисления this.net) .leght – число элементов перечисления this. структуры this. Параметры: ( string вспомогательная_командная_строка ) Параметр вспомогательная_командная_строка может принимать одно из значений: year.value – текущий номер элемента перечисления this.sourgeforce. месяцам или дням.this.LENGHT_ {n}.value.сounter.value – текущий номер элемента перечисления this.leght – число элементов перечисления this.this.this.leght – число элементов перечисления this.this.value.value – заголовок элемента перечисления this.value.HREF.value – текущий номер элемента перечисления this.this.сounter.title.this.value – 1 (TRUE) если раздел в активной ветви this.value.this.this.value – длина результата где {n} – номер результата get_calendar() Описание: Форма навигации по архиву инфоканала «Календарь» Переменные перечисления: this.HREF.this. month.leght – число элементов перечисления this.href.this.value.сounter.value – ссылка элемента перечисления get_track() Описание: Маршрут к текущему документу Переменные перечисления: this.this. {n}.this.value – значение результата this.value – текущий номер элемента перечисления Страница 33 из 57 SAPID CMS (sapid.value – текущий номер элемента перечисления get_rss() Описание: Внешний RSS-канал Переменные перечисления: this.value – ссылка элемента перечисления get_infochannelfilter() Описание: Данная функция формирует ссылки и заголовки на выборки для последней DDC информационного канала по годам.

RELEVANCY.this.MATCHES.value – IP-адрес.NAME.net) .ID.AUTHOR.TITLE.this.value – ссылка записи get_gb_records() Описание: Гостевая книга Переменные перечисления: this.аннонс записи this. this.this.this.PUBDATE.value – email автора записи this.value – ID записи this.this.value – дата публикация записи this. В любом CMS-приложении доступен массив структуры $tree->map в формате Array( [1] => Array ( [ID] => 1 [POINTER] => ['root']['en'] [HREF] => /en/ Страница 34 из 57 SAPID CMS (sapid.this.value – ссылка документа this. методы класса sapi_vdb для операций с виртуальной СУБД (управление данными информационных каналов.this.this. При разработке собственных CMS-приложений вам потребуется массив $tree->map для операций со структурой.this.value – релевантность документа поисковому запросу (0-100) this.HREF.this.value – HTML – имя автора this. TITLE.value – содержание записи this.value – имя автора записи this.value – дата создания записи в формате DATETIME this. веб- сервисов).DESCRIPTION.value – дата создания записи в формате DATETIME 10.value – текущий номер элемента перечисления this.this.this.LINK.value – заголовок записи this.5. с которого была добавлена запись this.DATE_CREATE.MESSAGE.this.value – заголовок документа this.sourgeforce.value .COUNTER.EMAIL.DATE_CREATE.IP. расположение файлов данных.value – выдержка из документа this.this.COUNTER.this.this.7 Структура хранилища данных Хранилище данных SAPID реализованно на базе файловой системы.this.this.value – текущий номер элемента перечисления get_searchresults() Описание: Вывод результатов поиска Переменные перечисления: this.

отображается форма запроса варианта ответа на вопрос. Все бы хорошо. $db = new sapi_vdb($filename). Пусть посетители нашего сайта по умолчанию видят вопрос голосования и форму с перечнем ответов для выбора. Если в POST есть данные вызывается CMS-приложение. "usr/xml/vdb/".".. которые сотносятся с XML-файлами данных в папке /usr/xml/content/. $stream=$db->get_data(). что контейнеры динамических данных DDC позволяют задавать алгоритмы для интерфейсов сайта. При подтверждении выбора ответа страница перегружается и в форме напротив каждого ответа отображается.$CHANNEL. Но может ли DDC определять самостоятельный веб- сервис? Давайте попробуем рассмотреть это на конкретном примере. Можно начать с простейшей реализации блока голосования. "usr/xml/vdb/". Где $CHANNEL – канал данных Запись в виртуальную базу данных может выглядеть так: $filename=$GLOBALS["root_path"] . $result=$db->save_data_row(false. Получение данных из виртуальной базы данных происходит следующим образом $filename=$GLOBALS["root_path"] . $data["row"]["text"]=$_POST["news_text"]. кто успел ознакомиться со спецификацией XML Sapiens.$CHANNEL. Для этого нам Страница 35 из 57 SAPID CMS (sapid. которое рассчитывает число голосов по каждому голосу и отображает отчет. $data["post_action"]="ADDNEWIPROW". но нам требуется как-то сохранять данные из POST. когда в POST пусто.tpl ).xml". 10.sourgeforce.5. if (!isset($db)) $db = new sapi_vdb($filename). false). В первом случае.". Другими словами мы должны написать DDC с двумя условиями. знают. ) В массиве имеются ID разделов.8 Передача инструкций CMS Те. [VAR] => en [OWNER] => root [GROUP] => wheel [PERMISSIONS] => 777 [LEVEL] => 1 [TITLE] => English [TEMPLATE] => main. засчитанное число голосов по нему. $data["row"]["title"]=$_POST["news_title"].net) . $data.xml". .

которое прочитает этот файл и рассчитает на основе его содержания данные отчета.добавить данные как новую запись в файл. что система примет из POST массив row и сохранит все его элементы в новую запись. Файл будет помещен в папку usr/xml/vdb/.xml"> Однако нам надо не просто дописывать в файл данные. Нам следует создать новое CMS-приложение get_survey. данные. В скрытом поле post_action можно сообщить системе как именно поступить с данными POST. если файл не содержит записей с текущего IP ADDNEWCOOKIESROW . поступающие в POST будут корректно сохранены в файле.добавить данные как новую запись в файл. прежде всего. которое укажет SAPID в какой файл сохранять данные из POST. Здесь следует помнить. Поле post_action может принимать следующие значения: ADDROW . достаточно указать в форме скрытое поле data_file.добавить данные как новую запись в файл CHANGEROW . Это приложение.заменить данные текущее содержание файла ADDNEWIPROW . Так что если мы планируем сохранить вариант ответа в переменную result необходимо поле запроса row[result] Пример: <input type="radio" name="row[result]" value="1"> Вариант ответа 1 <input type="radio" name="row[result]" value="2"> Вариант ответа 2 Итак. Пример: <input type="hidden" name="data_file" value="survey1.sourgeforce. должно Страница 36 из 57 SAPID CMS (sapid.net) . Теперь необходимо CMS-приложение. если файл не содержит записей с текущим маркером в COOKIES Пример: <input type="hidden" name="post_action" value="ADDNEWIPROW"> Теперь нам следует определить содержание новой записи. но расширять файл лишь в случае голоса уникального посетителя.

if (!isset($db)) $db = new sapi_vdb($filename).$fetch["RESULT"]]++.RESULT1. В нижней части рабочей области сайта будет представлена панель. данные заполнения которой будут сохранены системой по тому же принципу 10. Пример: foreach($objdata as $fetch) { $stream["0"]["RESULT".5.порядковый номер вариант ответа.com/about/trace/).9 Режим трассировки В ходе отладки сайта вы можете узнать состояние среды окружения SAPID. через которую можно будет получить информацию о состоянии переменных окружения и данных текущего документа. Но если вы задаетесь вопросом «А как сделать удобное управление сервисом?». и на основе его содержания формируем отчет.this. что в DDC всегда можно проверить режим администрации ( $_SESSION["user_session"] ["login"]!=false ) и соответственно отобразить запросы для формы голосования. Теперь дело за малым. получить данные прежних голосований их XML-файла. возвращенный get_xml. $objdata = db->get_data(). Страница 37 из 57 SAPID CMS (sapid. Для этого можно воспользоваться функцией get_data класса sapi_vdb. где n . В этом случае будут выделены все объекты документа. При нажатии по пиктограмме с изображением «+» будет открыто окно с отладочной информацией по данному объекту. "usr/xml/vdb/". мы перебираем массив. Для этого достаточно добавить к адресу текущего докуента /trace/ (http://mysite. } В выходном потоке CMS-приложения мы имеем одну запись с переменными RESULTn.value" /> Вот собственно и все по данному примеру. $_POST["data_file"]. могу намекнуть.net) . Пример $filename=$GLOBALS["root_path"] . Теперь осталось лишь отобразить эти значения в DDC: <sapi:apply name="this.sourgeforce.

Для организации запроса содержания в шаблоне документа или в объекте XML Sapiens следует разместить указатель на QC. Рисунок 7.net) . данный запрос индексируется.1 Контейнеры запросов (QC) Контейнеры запросов указывают на фрагменты. содержание которых может изменяться администратором CMS. Режим трассировки 11 Объекты XML Sapiens 11. Применяется в Страница 38 из 57 SAPID CMS (sapid.sourgeforce.title. отображаемого на сайте документа.value" type="string" /> Указатель QC допускает следующие атрибуты Атрибут Назначение type Тип запроса title Подпись запроса в области администиррования index При значении “yes”. для возможности дальней сортировки. <sapi:apply name="qc.

title.net) . Пример контейнера статических данных: Страница 39 из 57 SAPID CMS (sapid. publication Запрос публикации (WYSIWYG). accessarea “global” – содержание запроса отображается во всех режимах. на которые указывают. “edit” – в режиме администрирование. Формат: iconsize =”width*height” src Ссылка на источник данных (например.2 Контейнеры статических данных (SDC) Контейнеры статических данных указывают на повторяющиеся фрагменты статичных данных отображаемого на сайте документа. Формат: resize=”width*height” iconsize Производить создание иконки к изображению заданного размера. Эти контейнеры содержат код представления фрагментов. image Запрос изображения file Запрос файла checkbox Запрос бинарного значения True/False date Показать текущую дату (PHP-маска формата даты задается в конфигурационном файле в переменной PHP_DATEFORMAT) select Запрос значения из предложенного списка Рассмотрим пример: <sapi:apply name="qc.value" type="string" title="Title of block" index="yes" /> 11. информационных каналах. в состоянии редатирования resize Производить модификацию размера изображения при загрузке.sourgeforce. для запроса типа select) В текущей версии SAPID доступны предустановленные типы QC: Типы Запросы string Запрос строки содержания.

TITLE.TITLE.1)</sapi:exp> <sapi:code> <sapi:apply name="this.com</sapi:url> </sapi:author> <sapi:comments>Vertical menu with subitems.0" xmlns:sapi="http://www.value.this.xmlsapiens.spacer.this.value" /></a><br /> </sapi:code> </sapi:when> </sapi:choose> </sapi:for-each> </sapi:when> </sapi:choose> </sapi:ddc> Страница 40 из 57 SAPID CMS (sapid.value" /></a><br /> </sapi:code> </sapi:when> <sapi:when> <sapi:exp>neq(this.this. CMS SAPID.0"?> <sapi version="1.3 Контейнеры динамических данных (DDC) Контейнеры динамических данных указывают на фрагменты отображаемых данных на сайте документа.value.currentpage. содержание которых формируется на основании некоторого функционального алгоритма.HREF.value"><sapi:apply name="this.value"><sapi:apply name="this.dtd"> <sapi:ddc name="menu" title="ddc" ns="site1" category="navigation"> <sapi:author> <sapi:name>Max Baryshnikov</sapi:name> <sapi:email>mb@rg.value" />› <a class="inactive" sapi:href="this.HREF. Эти контейнеры содержат описание функциональных алгоритмов. <sapi:sdc name="var1" title="Пример контейнера статических данных"> html… </sapi:sdc> 11.this.sourgeforce.value" /> › <a class="active" sapi:href="this.this.redgraphic.org/spec/sapi.this.this.spacer.net) .currentpage. Пример контейнера динамических данных: <?xml version="1.by</sapi:email> <sapi:url>www.this.1)</sapi:exp> <sapi:code> <sapi:apply name="this.</sapi:comments> <sapi:choose> <sapi:when exp="1"> <sapi:for-each select="get_tree()" name="enum"> <sapi:choose> <sapi:when> <sapi:exp>eq(this.

B.value" /> </a> </sapi:code> </sapi:when> </sapi:choose> </sapi:for-each> Выражения могут использоваться в атрибуте EXP элемента SAPI:WHEN. </sapi> 11. Данная спецификация поддерживает выражения сравнения. C) (больше). multiply(A. Допускается использование круглых скобок для группирования выражений. gt(A. leq(A. в атрибуте EXP элемента SAPI:APPLY или в атрибутах формата SAPI:%Attrib элементов HTML . разделенные запятыми.value.value"> <sapi:apply select="this.variable. C) OR (ИЛИ). last_argv.this. C) или != (не равно). C) или AND (И) и or(A. neq(A.this. B. C) или * (умножение чисел). B.4 Выражения XML Sapiens Для описания логики функциональных решений в контейнерах динамических данных могут быть использованы выражения XML Sapiens. geq(A. Выражения XML Sapiens допускают непосредственное обращение к переменным среды CMS. divide(A.net) . B. C) (меньше либо равно). eq(A. При необходимости получения результата выполнения выражения XML Sapiens в коде контейнера (элемент SAPI:CODE) можно использовать следующий синтаксис <sapi:apply exp="add(http_path. B. Например: <sapi:for-each select="get_tree()" > <sapi:choose> <sapi:when exp="neq(this. Эти выражения могут возвращать одно из двух значений (0 или 1).w3. Где A B C значения.value)" /> Страница 41 из 57 SAPID CMS (sapid. B.value)"> <sapi:code> <a sapi:href="this.value.title. B.org/TR/2000/NOTE-xexpr-20001121/).link. C) или .(вычитание чисел). В содержании атрибутов XML Sapiens допускает операнды выражений lt(A. а также логические операнды and(A. B. При разработке операндов выражений использовались конструкции языка скриптов для XML XEXPR (http://www. B. B. C) (деление чисел). C) (больше либо равно).sourgeforce. qc. B. C) (меньше). в атрибуте SELECT элемента SAPI:FOR-EACH. Также допустимы и математические операнды add(A. B. C) или + (сложить для чисел и соединение для строк). C) или == (равно). означающих соответственно FALSE (ложь) или TRUE (истина).href. subtract(A.

B.net) . B. Примеры: <sapi:apply name="var1. C) TRUE если A <= B <= C geq(A.value" /> <!— Указатель переменной окружения --> <sapi:apply name="qc. C) деление чисел Замечание: Запись operand(A.6 Указатели XML Sapiens Указатели XML Sapiens служат для обращения к содержанию объектов в коде представления данных или же теле контейнеров данных. B. B. C) умножение чисел divide (A.sourgeforce. B. C) TRUE если A => B => C eq(A. C) логическое умножение AND or(A. B. C) TRUE если A != B != C gt(A. B. C) TRUE если A < B < C leq(A.value" /> <!— Указатель контейнера запроса --> <sapi:apply name="sdc.11. C) логическое сложение OR add(A.value" /> <!— Указатель SDC --> Страница 42 из 57 SAPID CMS (sapid. B.5 Список выражений XML Sapiens Синтаксис Действие lt(A. C) TRUE если A = B = C neq(A. C) сложение для чисел и соединение для строк subtract(A. C) вычитание чисел multiply (A. Указатели на данные возвращают значения переменных окружения CMS. B. C) под разумлевает число возможных параметров от 2 до 10 11. Указатели на контейнеры возвращают содержание контейнера данных.footer. B. B. C) TRUE если A > B > C and(A. B.body. B. Обращение к значению переменной может быть достигнуто путем использования элемента SAPI:APPLY или же атрибута SAPI:%Attrib.

что бы в дальнейшем анализировать их значения в условиях DDC. 12 Руководство разработчика SAPID 12.value" redirect="tempvar" /> . Эту переменную в дальнейшем можно отобразить один или несколько раз в шаблоне посредством элемента SAPI:APPLY.mainmenu.. которая примет код... Синтаксис перенаправления потока DDC следующий: <sapi:apply name="ddc. <sapi:apply name="tempvar. следует воспользоваться перенаправлением потока DDC в переменную окружения. но различным образом в зависимости от его положения.php а из него направляется контроллер SAPID (/mvc/controller/). Запрос из браузера поступает на скрипт index.param.link. но не возвращать в шаблон искомый код DDC тот час же.pvar2.sourgeforce. При этом будет создана новая переменная.value"> <sapi:param name="pvar1">Value of param 1</sapi:param> <sapi:param name="pvar2">Value of param 2</sapi:param> </sapi:apply> Значения параметров DDC будут доступны в условиях DDC в переменных this.param.value" /> .8 Перенаправление потока DDC Если при проектировании шаблона представления требуется стартовать CMS- приложение определенного DDC.value">link</a> <!— Указатель в атрибуте элемента HTML --> 11. <sapi:apply name="ddc.value" /> <!— Указатель DDC --> <a sapi:href="qc.. Страница 43 из 57 SAPID CMS (sapid. Запрос анализируется.7 Параметры вызова DDC Если требуется использовать в шаблонах один и тот же DDC.pvar1. Передача параметров DDC происходит следующим образом: <sapi:apply name="ddc.obj1.net) .obj1.value 11.value и this. «отработавшего» DDC. рекомендованная в спецификации XML Sapiens. можно назначить параметры вызова DDC.1 Программная модель В SAPID применена MVC-парадигма.

php).net) . Процессор обрабатываетвсе указатели объектов XML Sapiens.2.д.php идентифицируется текущий документ. Массив передается объекту процессора XML Sapiens и самомодифицируется в процессе Страница 44 из 57 SAPID CMS (sapid. Browser Controller Environment View Structure XSL XML Sapiens processor Template Model XML Sapiens CMS API declarations Рисунок 8. Для него принимаются данные содержания и шаблон. При генерации DDC процессор обращается к связанным CMS- приложениям (/usr/extensions/).1 Глобальные переменные Переменная Содержание $http_path HTTP-адрес сайта $root_path Абсолютный адрес проекта $FEEDBACK_EMAIL Email адрес для отсылки FEEDBACK $default_charset Текущая кодировка $default_language Текущий язык интерфейса администрирования 12. авторизация и т. выполняются заданные действия (сохранение данных. после чего на основе данных адресной строки ($_SERVER["REQUEST_URI"]) в скрипте /mvc/model/document_identification. Готовый документ передает назад в браузер. Если необходимо. MVC-парадигма SAPID 12.2 Среда окружения 12.2.).inc. Далее содержание документа и шаблона передаются процессору XML Sapiens (/kernel/ kernel.lib.2 Переменные окружения Переменные окружения представленны в массиве $env.sourgeforce.

CONTENT] Содержание QC.администрирования (состояние редактирования) $env [obj_cache] флаг кеширования DDC $env [default_charset] Кодировка документа $env [default_language] Язык документа $env [argv_string] Строка аргументов адресной строки браузера $env [noslash_argv_string] -//- $env [last_argv] Последний аргумент адресной строки $env [argv.CONTENT.variable] Переменная документа $env [document. 1-администрирования (состояние просмотра). компиляции документа.pWrite] Доступность на запись $env [page.datetime] Время создания документа в DATETIME $env [page.month] Значение фильтра в адресной строке по месяцу $env [argv_virtual.year] Значение фильтра в адресной строке по году $env [argv_virtual. 2. Переменная Содержание $env [http_path] адрес сайта $env [area51] Режим: 0-доставки содержания.sourgeforce.day] Значение фильтра в адресной строке по дню $env [argv_virtual.aStatus] Состояние авторизации пользователя $env [argv][индекс_эл] Содержание заданного аргумента адресной строки $env [argv_nav][индекс_эл] Содержание заданного аргумента навигационной части адресной строки $env [len_argv_nav] Число аргументов навигационной части адресной строки $env [argv_virtual.VALUE $env [document.net) .pRead] Доступность на чтение $env [page.VALUE $env [page.title] Содержание QC.pCreate] Доступность на создание $env [user.level] Уровень структурной вложенности документа $env [document. Поэтому актуальныя версия массива в CMS- приложениях будет доступна как $this->env Переменные окружения доступны в синтаксисе XML Sapiens как <sapi:apply name="имя_переменной" /> или же &имя_переменной.LOGIN] Логин текущего пользователя $env [user.TITLE.GROUP] Группа текущего пользователя $env [user.{n}] {n} элемент адресной строки $env [document.id] Значение фильтра в адресной строке по идентификатору записи Страница 45 из 57 SAPID CMS (sapid.template] Шаблон документа $env [document.id] Идентификатор документа $env [document.

php Функции откладки кода kernel kernel.xml.php Административный интерфейс Структура templates.12.inc.lib.sourgeforce.inc.php Конструктор графиков structure.net) .inc.php Библиотека API XML Sapiens процессора vdb.inc.php Административный интерфейс CMS-приложения (Функции) rc.php Библиотека API динаимческого дерева структуры Страница 46 из 57 SAPID CMS (sapid. При инициализации системы (/mvc/controller/build_tree.имя_QC"] = данные для заданного QC по текущему документу 12.inc.php Контроллер интерфейсов администрирования interface users.inc.inc.inc.php Административный интерфейс Модули stats.php) данные текущего документа помещаются в массив $page и далее распределяются в середе окружения следующим образом: $env["page.inc.php Конфигурационный файл системы startup.inc.php Библиотека API виртуальной базы данных tree.4 Данные документа Данные документов расположены в xml файлах папки /usr/xml/content/.conf.php Административный интерфейс Шаблоны user_functions.php Административный интерфейс Статистика graph.inc.d debug.php) структура заноситься в объект $tree 12. При инициализации системы (/mvc/model/document_identification.5 Размещение скриптов Папка/скрипт Назначение etc rc.php Административный интерфейс Пользователи ddc.3 Структура сайта Структура сайта расположена в файле /usr/xml/tree.php Скрипт автозагрузки case.lib.lib.

анализ передачи инструкций CMS из пользовательской формы в документе сайта model document_identification. формирование шаблона письма. определние режима трассировки.06.php Анализ команд авторизации.12. Анализ команд на отсылку Email. переданных из пользовательской формы. декларация переменной среды document. прием его данных в массив $page view functions.php Получения дерева структуры сайта getmethod_analysis.php Анализ пользовательских POST-запросов.php Английский язык интерфейса администрировани ru.php Идентификация текущего документа.inc.php Jscript –функции административного режима SAPID.php Анализ маски адресного пути.php Анализ пользовательских GET-запросов postmethod_analysis.inc. По Страница 47 из 57 SAPID CMS (sapid.inc. dal files.php Абстрактный слой управления файлами lang en.js.inc.php Функции общего назначения usr dump Папка для хранения временных файлов extensions Папка с CMS-приложениями (Функциями) system cache Кеш объектов XML Sapiens communicator Функции пейджера images Изображения системных интерфейсов js mozile WYSIWYG для браузеров на ядре Gecko startup.log Лог-файл статистики mvc controller authorization_analysis.url user_requests_analysis. Замечание: анализ запросов из инфолент перенесен в CMS-приложение get_infochannel (usr/extentions/get_infochannel.inc.php Получение информации о пользователе системы build_tree.inc.inc.sourgeforce.inc.php Русский язык интерфейса администрировани log 2005.lib.inc.inc.php) requesturi_analysis.inc.net) .

php Определение новой версии CMS common_extfunctions. utf Карты кодировок для преобразования в UTF (Это потребуется.php «Бегущая строка» на стандартной странице с сообщением о 404 ошибке tree.php Функции отрисовки UML-моджели DDC preview.inc.inc.php Напоминание о появлении новой версии CMS seo_analizer.js Преобразование HTML (битый режимом DesignMode=On) к xHTML image_resize.css Полный CSS edit_template.php Учет статичтики посещений default.sourgeforce.php Jscript/DOM –функции динамического управления деревом. с элементами содержания проименованными в соответсвии с использованными QC для внесения контента Страница 48 из 57 SAPID CMS (sapid.inc.php Панель мета тегов plotter.js.php Функции изменения размера изображения (создание иконок галерей) insert_link.php Форма управления содержанием файла для административных интерфейсов find.php Функции компресии данных структуры (дерева) templates Папка шаблонов документов files Папка с пользовательскими файлами images Папка с пользовательскими изображениями и SWF themes Темы пользовательского интерфейса xml content Папка с файлами содержания документов.js. если в PHP не включен модуль ICONV) insert_file.inc. большей части функции WYSIWYG 404.inc.php Интерфейс добавления ссылки в WYSIWYG light.php Режим HTML WYSIWYG-редактора sapi_expressions.php Общие функции CMS-приложений (сортировка) counter.php Интерфейс добавления изображения в WYSIWYG editor.inc.php Интерфейс добавления файла в WYSIWYG insert_image.php WYSIWYG-редактор edit.css Сокращенный CSS metapanel.html Поиск в WYSIWYG по Ctrl-F html2xhtml.php -//- remind. Каждый файл имеет имя в соответствии с ID (в дереве структуры) родительского документа.inc.net) .php Функции регулярных выражений XML Sapiens checknewversion. Каждый файл содержит XML-дерево.php Анализатор SEO документа tree.

Массива или же объекта системы посредством функции d($variable) Для отправки сообщений в формате HTML вы можете использовать функцию send_mail($mail_to. В режиме администрирования этот DDC задает модель управления списком. news.net) .php Скрипт инсталляции системы index. который в свою очередь взаимодействует с CMS-приложением infochannel. Страница 49 из 57 SAPID CMS (sapid.xml Дерево структуры users.xml). Содержит файл с комментариями к документам (allcomments_index.php Базовый скрипт preview_image. Посредством параметров CMS-приложения (для универсального DDC инфоканала – параметров DDC) можно задать должную сортировку списка. следует в указателе QC среди атрибутов index=”yes”.xml). Для возможности сортировки по какому–либо из полей данных (QC) документа списка.xml.xml).xml).inc. news) tree. $subject.6 Информационный канал Под информационным каналом (инфоканалом) в SAPID подразумевается список документов (лента новостей или статей.php Скрипт отображения изображений в popup окне showstats. Для запроса списка документов CMS-приложения CMS-приложению указывается имя источника _CHANNEL(имя)_. фильтрацию по атрибутам или по содержимому документов. отобразить предварительно заданное число анонсов документов на страницу и в случае выбора одного из этих документов показать его содержимое отдельно. infocahnnel.php Скирпт отображения графиков статистики 12. $message. Информационный канал управляется через DDC (например.sourgeforce. $charset). находящегося в папке /usr/xml/vdb/имя. каждый инфоканал представлен в этой папке индексным файлом (например. 12.7 Функции общего назначения Вы можете отобразить состояние любой переменной.xml) и папкой с файлами записей канала (например.xml Информация о пользователях системы install. ddc Папка с DDC (модулями) sdc Папка с SDC (фрагментами общего содержания для группы документов) vdb Папка данных виртуальной базы данных. $mail_from. галерея). с содержанием гостевой книги (guestbook. В режиме доставки задача DDC инфоканала. с номером текущего релиза (системы release. каталог. Физически это имя файла индекса инфоканала.php. Данные документов данного инфоканала соответственно будут размещены в файлах папки /usr/xml/vdb/имя/. Кроме того.

обмен мнениями для русскоязычной аудитории осуществляется по адресу http://ru. При первом входе в интерфейс «Пейджер» система предложит вам зарегистрироваться.sapid-club. Она вызывает интерфейс обмена мгновенными сообщениями в рамках сообщества пользователей SAPID.sourceforge.com/ Вы можете принять участие в разработке CMS SAPID присоединившись к проекту http://sourceforge.net/tracker/?atid=680099&group_id=118100&func=browse Запросы на техническую http://sourceforge.net) .org/lib/) 13.net/tracker/?atid=680100&group_id=118100&func=browse поддержку Архив «заплаток» http://sourceforge. доску сообщений «Пейджера».com/ Поддержка проекта SAPID. оно будет отображено в выбранном канале общения. поле для ввода вашего сообщения (допускается прикрепление файла к сообщению) и список возможных адресатов. в нижней части панели администрирования имеется кнопка «Пейджер». При добавлении сообщения.13 Сообщество и поддержка Поддержка проекта SAPID.net/tracker/?atid=680101&group_id=118100&func=browse Запросы на разработку http://sourceforge. Теперь интерфейс пейджера включает меню переключения каналов Русский/Английский. выберите их в списке адресатов.net/tracker/?atid=680102&group_id=118100&func=browse новых возможностей Публичная документация http://sourceforge.net/projects/sapid/ Задача Адрес Замечания об ошибках http://sourceforge. обмен мнениями для англоязычной аудитории осуществляется по адресу http://en. Вы сможете завести себе системное имя и внести краткую информацию о вас для сообщества пользователей SAPID.net/docman/?group_id=118100 Список рассылки http://lists. Эта информация будет сохранена на вашем сервере и при входе в режим администрирования вы будете также авторизованы в «Пейджере». Если вы желаете передать приватное сообщение одному или нескольким адресатам.net/lists/listinfo/sapid-community И вы можете свободно обмениваться интерфейсными решениями для сайтов через общественную библиотеку XML Sapiens Work Gallery (http://xmlsapiens. Страница 50 из 57 SAPID CMS (sapid.1 Интернет-пейджер SAPID Как вы могли уже заметить.sourgeforce.sapid-club.

А если ваш сайт имеет специфичную структуру.content. что мы должны выделить блок HTML уникальный для данной группы страниц и внести его в соответствующее поле.value" type="publication" /> Теперь следует назначить правила выборки содержания со страниц исходного сайта. Переходим по пиктограмме «Edit template configuration» напротив созданного нами шаблона и указываем маску для идентификации этого шаблона. Значит. Например. следует в HTML шаблона расставить указатели на эти данные: <sapi:apply name="qc. Хотелось бы просто сказать CMS: “Сделай это сама!» и откинуться на спинку стула с удовлетворением наблюдая за процессом. Итак.php На этой странице вы можете назначить адрес страницы исходного сайта для начала миграции. Скажем для примера. Что же будет в шаблонах? На типовой странице из группы исходного сайта мы выделяем блоки содержания для переноса. Достаточно указать идентифицирующий фрагмент кода до блока содержания и после его. Далее мы задаем маски для блоков содержания. ремарка и основное содержание. что хорошо было бы просто взглянуть на свой сайт под какой-либо конкретной CMS и уже тогда сделать свои выводы? Однако переносить содержание со своего сайта в новую CMS занятие трудоемкое. Для того. для выборки заголовка страницы можно использовать: 1) <title> 2) </title> Что же. Мы можем перейти в интерфейс Template settings и создать шаблоны для новой инкарнации этих страниц.title. В дистрибутиве SAPID в качестве примера поля заполнены для персонального сайта Луи Розенфельда (Louis Rosenfeld ). Начиная с версии 1. у нас есть заголовок.sourgeforce. Далее нам следует выделить в исходном сайте все различные по структуре группы страниц. укажите об этом в данном интерфейсе.14 Импорт проекта Изучая предложения open source. задумывались ли вы над тем.value" type="string" /> <sapi:apply name="qc. то никаких ограничений быть не может.1. Это значит.1 в SAPID добавлена утилита для транспортировки данных между сайтами. а если он статичен? Но если уж о чем-либо мечтать. Стоит также указать учтена ли в адресах страниц исходного сайта иерархия (раздел1/подраздел11/подраздел111/). что бы обратиться к ней наберите http://ваш_сайт/migrator. Скажем.net) . известного своими публикациями об информационной архитектуре. Возможно ли это? Вы можете проверить сами. что бы изображения со страниц исходного сайта были также перенесены. Если вы используете SAPID у вас их и не будет. Если вы желаете. миграция данных со старого сайта на новый. выделены три группы страниц для сайта Луи Розенфельда. теперь осталось лишь выбрать кнопку Migrate! В вертикальном меню и дождаться результатов миграции Страница 51 из 57 SAPID CMS (sapid. создаваемый под управлением CMS SAPID.

Настройки шаблонов для миграции Страница 52 из 57 SAPID CMS (sapid.sourgeforce. Рисунок 9.net) . Общие настройки миграции данных Рисунок 10.

php.sourgeforce.net) .php? group_id=118100&package_id=154910) 16 Синдикация данных Как известно.xml’: get_news('news.net/project/showfiles.handyarchive.net/project/showfiles. Замечание: Для использования миграции данных потребуется установить Add-on пакет convertor.tar. Вам будет предложено преобразовать ваш сайт в один из трех форматов: HTML-файлы в одной папке HTML-файлы. обмен между различными сайтами отдельными блоками содержания затруднен из-за структурных различий документов различных сайтов. разнесенные по папкам в соответствии со структурой XML-файлы данных и структуры в одной папке В первом случае также будут созданы индексные файлы для дальнейшей конвертации сайта с помощью HTM2CHM (http://www.php? group_id=118100&package_id=154910) 15 Экспорт проекта Если вы пожелаете создать статичный архив вашего сайта. разнесенные по папкам в соответствии со структурой PHP-файлы. В DDC get_rss мы используем функцию CMS get_rss().gz (https://sourceforge. Замечание: Для использования миграции данных потребуется установить Add-on пакет migrator. Существует унифицированный и ныне популярный формат для обмена данными между сайтами – RSS.gz (https://sourceforge. наберите в адресной строке браузера http://мой_сайт/convertor. демонстрирующих использование этого формата: show_rss – вывод новостной ленты в формате RSS get_rss – прием новостной ленты в формате RSS В DDC show_rss мы запрашиваем у функции CMS get_news() данные новостной ленты ‘news.xml') Далее мы форматируем вывод данных в RSS. Страница 53 из 57 SAPID CMS (sapid. В дистрибутивном пакете SAPID имеется два модуля (DDC). которая обращается к RSS-каналам по заданным ссылкам и возвращает массив заголовков.com/free/htm2chm/) в популярный формат Windows Help.tar.

Search Engines. the search engine submission software tool and the search engine ranking reporter.sourgeforce.an optimization and promotion tutorial • Search Engine Showdown . web promotion • WebPosition Gold Page Critic Help • Internet Business Promoter .Tips About Internet Search Engines & Search Engine Submission • Pandia.Search Engine Resource Center • Search Engine World • SearchUtilities .The Users' Guide to Web Searching • SearchEngines. • Search Engine Marketing Guide • Clickz.value"> <meta name="keywords" sapi:content="qc.net) .metadescription. стоит сказать несколько слов оптимизации сайта в SAPID. Аналогичным образом вы можете организовать RSS-канал для любых данных вашего сайта.the latest search engine news • Search Engine Marketing 101 .com . или включить в документы вашего сайта содержание со внешних источников. 17 Поисковая оптимизация сайта В Интернете достаточно материалов по оптимизации сайтов для поисковых систем (SEO) и повторять их в данной документации не имеет смысла. то при поиске этот документ попадет в начало списка результатов.Search Engine Marketing Articles And Reviews • Win the Search Engine Game • Search Engines Search . Directories and Finding Information on the Web • Free search engine articles on search engine marketing • Keyword Resources • The Free Search Engine Academy • The Marketleap Report • Web Site Positioning Resource Center • Web Marketing Information Center • Articles of Internet Marketing Страница 54 из 57 SAPID CMS (sapid.keyword density analyzer . Если фраза в TITLE проработана должным образом и соотносится с содержанием документа.com . включая заголовоки (TITLE) документов в разделе меню «Мета-данные документа» нижней части панели администрирования при редактировании содержания документа. Подавляющее большинство поисковых систем с высоким приоритетом относятся к фразам. Вы можете назначать МЕТА-теги. Это означает больший приток посетителей на ваш сайт из поисковых систем.com . Вот некоторые из них: • Search Engine Watch .All about search engines.search for search engines • Web Search .metatitle.metakeywords.value" type="string" /></title> <meta name="description" sapi:content="qc. размещенном в элементе HTML TITLE. Однако.value"> В остальном следуйте рекомендациям специализированных изданий по поисковой оптимизации. Однако следует указать в шаблоне документа запросы мета-данных: <title><sapi:apply name="qc.

by Рисунок 11. когда нажата кнопка «РЕДАКТИРОВАТЬ» на панели сотояния Состояние просмотра состояние. services. • Internet Search Engine Database Источник: www. индексируемых поисковыми системами. а на против каждого их указана частота встречаемости того слова в каждой из областей документа. При переходе по кнопке «Анализировать SEO» открывается окно с таблицей частотности ключевых слов в различных областях индексирования сайта. Чем выше этот показатель.sourgeforce. когда нажата кнопка «ПРОСМАТРИВАТЬ» на панели сотояния Страница 55 из 57 SAPID CMS (sapid.promo. тем больше вероятность нахождения документа при поисковом запросе. включающем данное слово. 18 Термины Термин Описание Состояние редактирования состояние.detailed review of products. кроме редактирования мета-данных также можно вызвать интерфейс анализатора SEO.1 Анализатор SEO При вызове интерфейса «Мета-данные документа». Поисковая оптимизация документа 17. tips and techniques that relate to how keywords and search terms are used for marketing. • WordSpot . В таблице представлены все слова из мета-данных.net) .

общий для группы документов статических данных) DDC (контейнер Динамический код. February 10. [2] XML Sapiens 1. 2004 [4] SAPID-CLUB Forum.org/spec/. когда поьлзователь авторизирован как администратор (area51) Режим доставки Режим. http://en. Эта часть не учавствует адресной строки в идентификации документа 19 Ссылки [1] T. Функция См. Информациолнной Множество сайтов. CSS2 Страница 56 из 57 SAPID CMS (sapid. Bos. W3C Proposed Recommendation 10-February-1998. DDC. Jacobs.1 SE specification. состоящая из ряда записей. level 2. Cascading Style Sheets.net.net) . I. C.sourgeforce. когда пользователь (посетитель) неавторизован на сайте QC (контейнер запросов) Редактируемый фрагмент содержания SDC (контейнер Статический код. 2004. W. с содержанием на определенном языке Сайт Множество документов Документ Ресурс.Административный режим Режим. http://sapid. http://xmlsapiens. каждая из который является самостоятельным документом.sapid-club. Lie. зависящий от заданного алгоритма динамических данных) Модуль См. которая возвращает в DDC ряды запрашиваемых данных. Extensible Markup Language (XML). Bray. [3] SAPID CMS Project. объединенных общей тематикой или владельцем пространство Языковая версия Сайт информационного пространства. Запись инфоканала Документ с виртуальным адресом. DDC CMS-приложение Функция PHP (расположеа водноименном скрипте в папке usr/extensions/).w3.com [5] B. H. SDC Шаблон Код шаблона оформления документа Адресная строка HTTP-адрес документа Навигационная часть Часть адреснной строки после раделителя DATA.sourceforge. 1998. http://www. et al. QC. CMS-приложение Инфоканал Информационная структура.org/TR/REC-xml. Lilley. имеющий свой уникальный Интернет-адрес Объекты документа Шаблон. Виртальная часть адреса идентифицирует запись в списке инфоканала. REC-xml-19980210.

w3. http://sapiprocessor.net) .com/publications. http://www.asp [10] Publications of Gerry McGovern.net/.org/TR/RECCSS2/. [6] J. Specification. http://www. http://cmswatch. 12 January 2000. Deach.0. http://metatorial.sourgeforce.w3.w3.gerrymcgovern. Clark. Extensible Style Language (XSL). XSL Transformations (XSLT). W3C Proposed Recommendation.sourceforge. eds. W3C Recommendation 12-May-1998. Clark and S. W3C Recommendation 16 November 1999.com Страница 57 из 57 SAPID CMS (sapid.com/conceptarchive.org/TR/xslt. [7] J. http://www.htm [11] CMSWath. 2005 [9] Metatorial Inc.org/TR/xsl. [8] XML Sapiens PHP Processor 1.com. http://www. – Concepts.