Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Тематические » Системы управления сайтами » SAPID - персональная CMS открытая для развития

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Mephius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В продолжение вот этой темы.

Цитата:
Я попросил разработчика SAPID открыть на этом форуме отдельную тему. Полагаю это будет интересно, потому как речь об открытой CMS, CMS которую может наращивать каждый предлагая свои DDC и CMS-приложения. Те кто себе инсталлировал проект наверняка обратили внимание на то как легко добавить новый функционал. Возможно требуется некоторое время на то, что бы привыкнуть к синтаксису и логике XML Sapiens, но могу по опыту сказать, что у нас весь отдел работает в этой технологии порядка года и пока все теже ощущения - "реально удобно".

 
Что ж, с радостью отвечу на любые вопросы, связанные с Sapid. Хочу только подчеркнуть:
Весь проект XML Sapiens рассчитан на разработчиков, но то, что они будут предлагать свои функциональные решения и оценивать чужие. Предполагается, что создание такого коммьюнити сможет облегчить жизнь разработчикам CMS и сделать ее интереснее.
Мне, как разработчику Sapid и Диме Шейко, как автору идеи XML Sapiens затруднительно оценить жизнеспособность подобного проекта, поэтому будем рады любой критике и любой поддержке.
 

 
Все, что касается XML Sapiens (спецификация и т.п.) можно скачать с офф. сайта XML Sapiens
 
 
C уважением и надеждами,
Mephius
==========
Sheiko пишет:

Цитата:
Относительно проекта SAPID следует добавить следующее  
 
Вы можете принять участие в разработке CMS SAPID присоединившись к проекту http://sourceforge.net/projects/sapid/
 
Замечания об ошибкахhttp://sourceforge.net/tracker/?atid=680099&group_id=118100&func=browse
Запросы на техническую поддержкуhttp://sourceforge.net/tracker/?atid=680100&group_id=118100&func=browse
Архив «заплаток»http://sourceforge.net/tracker/?atid=680101&group_id=118100&func=browse
Запросы на разработку новых возможностейhttp://sourceforge.net/tracker/?atid=680102&group_id=118100&func=browse
Публичная документацияhttp://sourceforge.net/docman/?group_id=118100
Список рассылки http://lists.sourceforge.net/lists/listinfo/sapid-community
 
Ныне в тестировании SAPID v. 1.2 BETA 4: http://sourceforge.net/project/showfiles.php?group_id=118100&package_id=131949 (600КБ)
Документация к ней: http://prdownloads.sourceforge.net/sapid/readme12b4.ru.pdf?download

Всего записей: 7 | Зарегистр. 11-10-2004 | Отправлено: 13:53 11-10-2004 | Исправлено: Antuan, 00:41 18-01-2005
fathersGrave



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А скоро будет б/м подробный таториал по созданию DDC под SAPID?

Всего записей: 716 | Зарегистр. 21-04-2003 | Отправлено: 12:14 12-10-2004
Mephius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос, конечно интересный.
Хотелось бы узнать в каком виде нужен ман. Просто структура DDC достаточно подробно описанa в спецификации.
Попробуйте описать, как бы вы хотели видеть хорошее руководство - на какие моменты больше сделать акценты, что немного опустить.
 
На самом деле, DDC представляет собой алгоритм, описанный в синтаксисе XML Sapiens.
Рассмотрим, например, контейнер построения новостной ленты:

Код:
 
<?xml version="1.0"?>
<sapi version="1.0" xmlns:sapi="http://www.xmlsapiens.org/spec/sapi.dtd">  
<sapi:ddc name="news" title="ddc" ns="site1" category="news">
<sapi:author>
<sapi:name>Max Baryshnikov</sapi:name>
<sapi:email>mb@rg.by</sapi:email>
<sapi:url>www.redgraphic.com</sapi:url>
</sapi:author>
<sapi:comments>Infochannel. CMS SAPID.</sapi:comments>
<sapi:choose>
<sapi:when exp="1">
<sapi:for-each select="get_news('news.xml')" name="enum">
<sapi:choose>
<sapi:when exp="1">
<sapi:code>
<div class="date"><sapi:apply name="this.this.date.value" /></div>
<div class="news_title"><sapi:apply name="this.this.title.value" /></div>
<div class="content"><sapi:apply name="this.this.text.value" /></div>
<div class="more">
                        <a href="<sapi:apply name="this.this.more.value" />" title="Read more">Read more
<img src="/usr/content/images/i_more.gif" width="10" height="7" alt="Read more" /></a>
</div>
<hr />
</sapi:code>
</sapi:when>
</sapi:choose>
</sapi:for-each>
</sapi:when>
</sapi:choose>
</sapi:ddc>
 

 
Сначала идет шапка с описанием и авторством:

Код:
 
<?xml version="1.0"?>
<sapi version="1.0" xmlns:sapi="http://www.xmlsapiens.org/spec/sapi.dtd">  
<sapi:ddc name="news" title="ddc" ns="site1" category="news">
<sapi:author>
<sapi:name>Max Baryshnikov</sapi:name>
<sapi:email>mb@rg.by</sapi:email>
<sapi:url>www.redgraphic.com</sapi:url>
</sapi:author>
<sapi:comments>Infochannel. CMS SAPID.</sapi:comments>
 

 
Открываем блок условий:

Код:
 
<sapi:choose>
 

Открываем условие (выполняется всегда, потому, что в атрибуте exp указано выражение, всегда принимающее значение true):

Код:
 
<sapi:when exp="1">
 

Далее (внимание!) открываем цикл, в котором будет перебираться массив значений, который вернет функция get_news (описанная в автоматически включаемом файле usr/extensions/get_news.inc.php); массив двухмерный, логически предстваляет собой таблицу, т.е. в тело цикла будет передаваться строка с атрибутмаи текущей новости (дата, тело новости...)

Код:
 
<sapi:for-each select="get_news('news.xml')" name="enum">
 

 Далее идут уже рассмотренные нами теги, открывающие вложенный блок условий, просмотр которых будет выполняться в цикле:

Код:
 
<sapi:choose>
<sapi:when exp="1">
 
 

 
Описание того, что будет выводить DDC. В коде стоят указатели на элементы перебираемого массива: пример указателя <sapi:apply name="this.this.date.value" /> - будет указывать на элемент массива массив[текущая строка]['date']:

Код:
 
<sapi:code>
<div class="date"><sapi:apply name="this.this.date.value" /></div>
<div class="news_title"><sapi:apply name="this.this.title.value" /></div>
<div class="content"><sapi:apply name="this.this.text.value" /></div>
<div class="more">
                        <a href="<sapi:apply name="this.this.more.value" />" title="Read more">Read more
<img src="/usr/content/images/i_more.gif" width="10" height="7" alt="Read more" /></a>
</div>
<hr />
</sapi:code>
 
 

 
Потом закрытие всего, что мы пооткрывали ранее:

Код:
 
</sapi:when>
</sapi:choose>
</sapi:for-each>
</sapi:when>
</sapi:choose>
</sapi:ddc>
</sapi>
 

 
Вот, в прнципе, и все по этому контейнеру.
Примерно такой формат мануала подойдет?

Всего записей: 7 | Зарегистр. 11-10-2004 | Отправлено: 12:43 12-10-2004
fathersGrave



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да с таким маном и в огонь, и в воду!.. А можно как-то в поставляемые DDC комментарии проставить? Еще интересуют PHP-шные бэкфункции:  
о get_news.inc.php подключается именно после вызова select="get_news()" ? И получается по файлу на функцию..
о в .inc.php вроде нужно использовать какой-то уже sapid'овский api?
 
Btw, на когда планируется версия с БД   ?
Уфф.. ладно, кажется, я полностью проникся X-Sapiens'ом  8)

Всего записей: 716 | Зарегистр. 21-04-2003 | Отправлено: 13:19 12-10-2004 | Исправлено: fathersGrave, 13:22 12-10-2004
Mephius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
get_news.inc.php подключается именно после вызова select="get_news()" ? И получается по файлу на функцию..  

не после вызова, а перед. т.е. строка

Код:
<sapi:for-each select="get_news('news.xml')" name="enum">
 

интерпретируется примерно вот так (если так понятнее):  

Код:
<?PHP
include_once($root_path . "usr/extensions/get_news.inc.php");
$enum=get_news('news.xml');
foreach ($enum as $key=>$value){
...
}
?>
 

 
Действительно получается по файлу на функцию, но чем это плохо? Если бы все функции я складывал в один файл, то при обращении к любой из них мне нужно было бы подключать все, что, в общем, не так уж и страшно, но все же...
sapid'овский api в них использовать отнюдь не обязательно, важно просто вернуть массив заданного формата.
можно использовать переменные окружения, генерируемые системой и функции дебага.
Вот простенькая функция построения меню:

Код:
<?
function get_tree($level=false){
global $http_path, $tree, $env;
 
$cnt=0;
foreach ($tree->map as $item) {
if ($item["LEVEL"]!=0 and !$item["MASK"] and ($level?($item["LEVEL"]==$level):true)) {  
$cnt++;
$stream[$cnt]=$item;
if($env["page"]["ID"]==$item["ID"]) $stream[$cnt]["currentpage"]=1; else $stream[$cnt]["currentpage"]=0;
for ($i=0; $i<$item["LEVEL"]; $i++) $stream[$cnt]["spacer"].="&nbsp;&nbsp;";
}
}
return $stream;
}
?>
 

 
в $tree хранится информации о структуре поднятая при инициализации из xml; $env - переменные окружения;
Поставьте в начале этой функции

Код:
d($tree); // отобразить массив $tree
d($env); // отобразить массив переменный окружения $env
 

и вы увидите, чем вы располагаете на данный момент.
Повторюь: использовать системный api вовсе не обязательно.
 
 
Версия на БД планируется тогда, когда текущая версия станет stable.
В принципе тогда будет достаточно просто переписать интерфейсы парсера к данным и все.
 

Цитата:
Уфф.. ладно, кажется, я полностью проникся X-Sapiens'ом 8)
 

 

Всего записей: 7 | Зарегистр. 11-10-2004 | Отправлено: 15:26 12-10-2004
fathersGrave



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
не после вызова, а перед

Ну это я понимаю Просто некорректно выразился. Подключает "после того, как находит" всю инструкцию.
 

Цитата:
Действительно получается по файлу на функцию, но чем это плохо?

Да я вот к хилому php'шному ООП привык. Допустим у меня для каждого DDC есть класс, в котором все, используемые мной, функции. Тогда бы я запихивал в каждый файл по классу. Но это, конечно, не критично и вообще пока не в тему.
 

Цитата:
sapid'овский api в них использовать отнюдь не обязательно, важно просто вернуть массив заданного формата.  
можно использовать переменные окружения, генерируемые системой и функции дебага.

А Вам не кажется, что api все-таки иногда полезен в плане, хоть и не строгого, но соблюдения системных стандартов. Конечно, тут основным стандартом является X-Sapiens, но все же..
Я мало смотрел код, но переменные окружения, естественно, бросились в глаза. Просто хотел увидеть их описание в мане  
 

Всего записей: 716 | Зарегистр. 21-04-2003 | Отправлено: 21:35 12-10-2004
Sheiko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Полагаю, имеет смысл добавить от себя некоторые соображения в пользу технологии внеобыденного характера:
 
1) Вы желаете полноценную интеграцию проектов, коммуникацию интернет приложений и приложений Интранет/ЛВС? На стороне XML Sapiens-ориентированной CMS достаточно разместить вызовы удаленных процедур XML RPC (http://www.xmlrpc.com/, http://www.php.net/manual/en/ref.xmlrpc.php) или же SOAP (http://www.w3.org/TR/SOAP, http://pear.php.net/package-info.php?pacid=87) в CMS-приложении и "завернуть" вывод в массив перечня узлов формата array( id -> array( field -> value, f2 -> v2, ..), ..). Ни что нам более не мешает в объединении сетей
 
2) От вас требуют промо-сайт на Flash с некоторым числом редактируемых страниц? Создаете простейший DDC в SAPID для вывода XML-контейнеров содержания страниц. Открываете новую сцену во флеш и создаете там текстовое поле, назначаете ему имя. Далее пишем в action script  
var doc = new XML();  // XML object id created.
doc.load("http://yoursite_on_sapid.com/folder/");  
 
if(node.firstChild!=null) {  
   node=node.firstChild;
   while(node!=null) {
   if(node.nodeName!=null && node.nodeName!='title'){
  name_of_template_ddc_tag=node.firstChild.nodeValue;
  content_of_your_template_tag=node.firstChild.nodeValue;
// Прикрепляем содержание нужно тега к текстовому полю
 }  
 }
 
В результате Flash-сайт с вполне управляемым содержанием

Всего записей: 13 | Зарегистр. 07-10-2004 | Отправлено: 11:57 13-10-2004
Sheiko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
<b>Вопрос:</b>
<i>
Я еще не успел разобраться с XML Sapiens в целом и с SAPIDом в
частности, так что если мои вопросы окажутся глупыми или избыточными,
не серчайте, пожалуйста )
 
Пошарился я в area51 и могу описать увиденное, как cms для создания
общей структуры сайта + блочного построения каждой секции.
 
Если это так и есть на самом деле, то на след. вопросы наверное можно
не отвечать
 
Вопросы меня интересуют такие, наверное больше относящиеся к cmf:
 
1) Насколько XML Sapiens и/или SAPID могли бы помочь в создании cms,
   которая бы позволяла юзерам редактировать сущности в бд. Классы
   сущностей желательно было бы описывать на чем-нибудь типа xml.
 
2) Насколько XML Sapiens и/или SAPID могли бы помочь в создании
   механизма разруливания прав в cms, где есть такие актеры:
 
 - admin - полный контроль над user-management'ом, полный контроль над
   сущностями всех классов.
 
 - semi-admin - права на редактирование ограничены несколькими классами
   сущностей. Изменения сущностей некоторых из этих классов должны
   проходить разрешение у adminа.
 
 - рядовые юзеры, у которых тоже есть некоторые функции по cms (едва ли
   больше, чем в форумах).
 
Есть соображения? </i>
 
<b>Ответ</b>
 
1) Что касается SAPID, действительно речь о простой CMS для небольших сайтов, особенность которой - отделенная функциональность, управляемая специализированным языком
 
2) XML Sapiens - язык разметки интерфейсов сайтов. Мы рекомендуем алгоритмы разделения функциональности от представления и данных, но документную модель оставляем на усмотрение прочих технологий и конкретного разработчика. Впрочем, я могу привести в пример документную структуру Site Sapiens (www.sitesapiens.ru), где взаимосвязи документов в СУБД организуются в карту многоаспектных отношений (развитый граф). Однако независимо, по какой выборке вычислен идентификатор документа для XML Sapiens на вход приходит этот идентификатор и соответствующий ему шаблон представления и далее собираются должные DDC, SDC и QC
 
3) Управление пользователями отдельная тема, опять же несоприкасающаяся с XML Sapiens непосредственно. В том же Site Sapiens мы применили мат.модель графа для объектов пользователей. Т.е. при инициализации системы в момент запроса пользователем конкретного документа производиться выборка в СУБД массива прав этого пользователя, исходя из атрибутов его объекта, роли, суммы прав групп в которых он участвует

Всего записей: 13 | Зарегистр. 07-10-2004 | Отправлено: 13:33 15-10-2004
Mephius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Залил на http://demo.xmlsapiens.org новую версию (галерея, гостевая, голосовалки и т.п.). Пока это SAPID 1.09 - BETA.

Всего записей: 7 | Зарегистр. 11-10-2004 | Отправлено: 13:58 09-11-2004
fathersGrave



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Супер, но я так и не врубился, что из себя представляет галерея. Похоже, что сейчас это просто страница?..

Всего записей: 716 | Зарегистр. 21-04-2003 | Отправлено: 16:59 09-11-2004
chAlx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mephius
А можно для начала пояснить обывателю, как установка просходит? Я скачал sapid110.tar.gz (как я понял, последний релиз) и поставил как смог. Т.е. выставил права на директории, запустил инсталл, поменял атрибуты ещё полсотни запрошенных файлов -- что-то получилось. Ещё пришлось в .htaccess прописать "php_value include_path  /web/sapid/lang", иначе ничего не работало. Теперь в корне демо-сайт появляется, но никакие средства управления не найти.
 

Код:
$env["http_path"]=$http_path="http://www.host.ru/sapid/";
$admin_login="login";
$admin_password="pass";
$admin_path="a51";
$MODREWRITE="enabled";
 

 
Пробую www.host.ru/sapid/a51/ и www.host.ru/sapid/area51/ -- вылезает 404. (Если создать ./a51/ вылезает --  403.)
В корне только это (плюс тексты):
/web/sapid/etc/
/web/sapid/kernel/
/web/sapid/lang/
/web/sapid/log/
/web/sapid/usr/
/web/sapid/index.php
/web/sapid/preview_image.php
 
Как правильно и надёжно ставить?
 
Добавлено
И ещё есть орг.вопрос: по безопасности CMS в целом (на примере sapid, но не привязываясь к ней) здесь писать, или тему делать?
 
Добавлено
А то существующие темы какие-то дохлые..

Всего записей: 1691 | Зарегистр. 19-03-2003 | Отправлено: 17:07 23-11-2004
Mephius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, в 1.10 нашлась куча глюков. Признаю. Исправляю по мере обнаружения.
Как только скомпоную новый релиз - выложу.
 
А вообще более менее живые темы вот на этом форуме http://cmsobzor.ru/forum/index.php?s=a6a903e5b2134b2a6ac6e4128ffbb03f&showforum=29

Всего записей: 7 | Зарегистр. 11-10-2004 | Отправлено: 12:56 24-11-2004
chAlx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mephius
Лежит там форум: наверно, движок форума не обновили, вот базу и хакнули..
 
А с САПИДом что теперь делать: ставить 1.09б или ждать следующего релиза?
 
ПС: Дивчина мне понравилась -- дружествернный такой интерфейс, хоть и имя у ней стрёмное ;)

Всего записей: 1691 | Зарегистр. 19-03-2003 | Отправлено: 16:44 24-11-2004 | Исправлено: chAlx, 16:45 24-11-2004
8AleX8



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть ли хоть один реальнуй сайт работающий на SAPID, и построенный людьми не имеющими отношения к фирме Red Graphic Systems?
Ссылки в студию!

Всего записей: 1813 | Зарегистр. 11-12-2001 | Отправлено: 04:46 11-12-2004 | Исправлено: 8AleX8, 04:47 11-12-2004
fathersGrave



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
8AleX8
Я делал, но он еще не в сети - дизайн рисуют.

Всего записей: 716 | Зарегистр. 21-04-2003 | Отправлено: 15:49 11-12-2004
8AleX8



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. Для успешной устновки SAPID необходимо установка прав доступа 777 к многим директориям и 666 к многим фаилам. Не является ли это потенциальной дырой в безопасности.
2. Как я понял из под Mozilla and Opera не возможно полноценное управление SAPID. Ведутся ли робота в этом направлении?

Всего записей: 1813 | Зарегистр. 11-12-2001 | Отправлено: 18:26 11-12-2004
fathersGrave



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
8AleX8

Цитата:
установка прав доступа 777 к многим директориям и 666 к многим фаилам. Не является ли это потенциальной дырой в безопасности.

Как известно, взломать можно все, что угодно. В данном случае world write означает запись в файл всеми юзерами. То есть проблема может существовать на некоторых shared-хостингах, где любой клиент может смотреть и в некоторых случаях писать в Ваши файлы.

Цитата:
2. Как я понял из под Mozilla and Opera не возможно полноценное управление SAPID.

В Firefox у меня не работает только wysiwyg. Не знаю, на сколько это для Вас критично.

Всего записей: 716 | Зарегистр. 21-04-2003 | Отправлено: 23:45 11-12-2004
8AleX8



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В Firefox у меня не работает только wysiwyg. Не знаю, на сколько это для Вас критично.

А у меня в Firefox под linux не пашет ни чего. Как заходиш на .../area51/ - SAPID пишет - Please wait while structure tree is being loaded...
И всё...

Всего записей: 1813 | Зарегистр. 11-12-2001 | Отправлено: 02:54 12-12-2004
fathersGrave



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
8AleX8
Firefox 1.0 + Mandrake 10 - все ОК

Всего записей: 716 | Зарегистр. 21-04-2003 | Отправлено: 16:48 12-12-2004
Mephius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На самом деле, последние версии SAPID предназначены для работы с msie в силу того, что слишком много делается javascript'ами, в частности, дерево структуры строится скриптами с использованием XML DOM, качественной поддержки которого нет ни в одном браузере, кроме мелкомягкого эксплорера. Такое положение вещей меня тоже не совсем устраивает, но пока деваться некуда. Если визуальный редактор еще можно заставить работать с мозиллой и ее производными, то дерево пока никак. Вроде как в firefox будет нормальный DOM, в этом случае сделаю еще и поддержку firefox.

Всего записей: 7 | Зарегистр. 11-10-2004 | Отправлено: 16:44 14-12-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Тематические » Системы управления сайтами » SAPID - персональная CMS открытая для развития


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru