SATtva Персональная страница
темы архив все rss xml 2.0
 
 
блог
досье
связь
english
 

openSpace CMS

29.09.2006
софт

openSpace CMS -- так теперь называется программная платформа сайта openPGP в России. Изначально это была wiki-система WackoWiki, но с момента принятия решения сделать работу проекта более открытой не подразумевалась чистая wiki. Движок требовалось серьезно доработать.

В итоге за два месяца адаптации WackoWiki и копания в ее потрохах система превратилась в некий гибрид классической wiki (с ее анархическим подходом) и более авторитарной CMS, что, на мой взгляд, стало вполне оригинальным решением. Признаться, работа увлекла. А когда началась разработка конвертора для переноса базы данных форума phpBB в среду wiki, стало ясно, что пути назад нет, и полумерами здесь не ограничиться.

Движок openSpace будет доведен до ума, а затем выложен в свободный доступ под лицензией BSD. (Причины тому не идейные: я сторонник GPL, но оригинальная WackoWiki опубликована под BSD, а мне хочется дать ее авторам возможность бэк-портинга без смены своей лицензии, что потребовалось бы в случае GPL.) О последующем будущем этого движка я не уверен. Я буду рад, если он послужит где-то помимо openPGP в России или если кто-то найдет в его коде интересные для себя идеи, но самостоятельно вряд ли буду заниматься поддержкой и развитием этого проекта, кроме того, чтобы портировать изменения из самого openPGP в России.

Думаю, если что-то толковое в этом ПО и есть, оно появится в WackoWiki. Впрочем, если кто-то захочет взять готовый код под крыло и независимо продолжить его эволюцию, что ж, это повод для разговора.
Комментарии

Re: openSpace CMS от Михаил Козырев

14.02.2007 20:17

Доброго времени суток!
У меня сейчас примерно такая же задача, которая была у вас - перерабытваю (а точнее, пока что тоже "копаюсь в потрохах" WackoWiki).
Пoсмотрел, как работает pgpru.com и какие вы сделали изменения. Многое перенял бы не глядя :-).
Что происходит с движком сейчас? Выложите ли вы его в свободный доступ?
(кстати, WackoWiki сейчас идет под GPL, как NPJ)
А если у вас есть еще и нормальное описание того, что сделано... (на wackowiki.com нифига не найдешь)

Re: openSpace CMS от SATtva

17.02.2007 19:11

Вака сменила лицензию? Это хорошая новость, GPL меня изначально устраивала больше.

Движок обязательно опубликую. Может быть, даже в текущей альфе (через неделю-две, когда будет больше времени): без инсталлятора одними руками его будет трудно поставить, но хотя бы заинтересованные стороны смогут заняться чтением и портированием изменений.

Касаемо комментариев, они есть, но довольно поверхностные. Я старался давать переменным и функциям достаточно информативные названия, так что это должно помочь (не везде, правда, поможет реально), но код часто писался в спешке, не оставляя времени на подробные разъяснения. Местами придётся просто перечитывать, особенно в части подсистемы голосований, выполненной одной из самых первых: там даже мне самому теперь не слишком легко разобраться. :-) Последние модификации прокомментированы лучше: есть информация о входе и выходе функций и основные пояснения по внутренним процессам.

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

Re: openSpace CMS от Михаил Козырев

09.03.2007 04:16

Доброго времени суток.
Похоже, что Ваку просто каждый переделывает под себя :-).
После мучений и вивисекций что-то получилось "наметанное белыми нитками".

Приглашаю взглянуть на http://openstory.ru

Установка получилась "многоступенчатая", т.к. приходится добавлять таблицы БД и классы, не говоря о наборе дефолтных страниц. И не все нужные функции пока удалось реализовать.
Где-то там ваша "альфа"? :-))

Re: openSpace CMS от SATtva

09.03.2007 21:43

Ага, конструктор для взрослых, как автомобили ВАЗ.

А миленько у Вас получилось. Такой дизайн очень устроил бы некоторых посетителей pgpru.com. :-) Только с категориями получается как-то сложно. Может лучше (не говорю проще) добавить отдельным полем в таблицу страниц, в мета-данные?

Что до альфы, то для её выпуска нужно много подчистить в работающем на pgpru.com коде. Пока, к сожалению, руки не доходят, но сделаю обязательно.

Кстати, сегодня восстановил отладочный режим Ваки (раньше снёс его в ходе одной из модификаций) и ужаснулся нагрузке на SQL, которую создаёт openSpace: от 35 до 150 запросов на страницу (главная и форум -- около 100). Пора браться за оптимизацию?

Re: openSpace CMS от Михаил Козырев

14.03.2007 14:06

Категории через метаданные - да! да! да!
Поменял акшн newpage - сейчас требует от юзеров внести description, думаю туда же прилепить категории.
Потом все это надо будет сделать в одной форме. Вообще, есть большое желание сформировать "аккаунт" пользователя по принципу блога. Сейчас мучаю акшны в попытке выводить на страницу таку-вот "блог-представимую" ленту (либо по алфавиту, либо не выдает description, ззараза)
ЗЫ description взял после тщетных попыток выводить 100-200 первых знаков страницы (а, например, такая штука http://wiki.feautec.pp.ru/PodelkiDljaSajjta/LentaNovostejj жрет немеряно ресурсов).
По поводу оптимизации - по любому (движок замечательно расширяется и кубикорубикуется, но он и в оригинале был не самый быстрый :-( )

Re: openSpace CMS от SATtva

14.03.2007 19:42

ЗЫ description взял после тщетных попыток выводить 100-200 первых знаков страницы

У меня реализовано во множестве мест. Главный элемент -- простенький парсер (форматтер), вырезающий основной вики-синтаксис из $page['body']. Код сейчас скину по мэйлу.

Re: openSpace CMS от SATtva

14.03.2007 22:28

Кстати, по оптимизации. Значительная часть поедаемых ресурсов уходит на вызовы $this->HasAccess(...), которые тянут за собой минимум один запрос к БД, к ненавистной мне таблице acls. А сами HasAccess исполняются при отрисовке каждой внутренней ссылки через $this->Link(...) (так делается, чтобы ставить иконку ключика или замочка, если страница, на которую ведёт ссылка, недоступа пользователю или имеет ограничения на право чтения).

Законченной концепции по оптимизации acls у меня пока нет помимо того, что перенос списков допуска в таблицу pages поможет снять по крайней мере небольшой процент запросов (правда, здравый смысл подсказывает, что в большинстве случаев выгода будет в один-два запроса на 50, не более). Более интересна идея с кэшированием списков допуска при обращении к ним. Подсистема кэширования ACL'ов в каком-то виде уже реализована в Ваке, но предметно с ней я ещё не разбирался.

Что до форума и вообще "тяжёлых" страниц, то там главная проблема в SQL-запросах с регулярными выражениями. В принципе, процессорную нагрузку здесь можно выменять на память, но реальные выгоды такой альтернативы тоже ещё только предстоит рассмотреть.
Оставить комментарий
Заголовок:

Текст:

Ваше имя:

Ваш e-mail:


Код подтверждения: