В итоге за два месяца адаптации WackoWiki и копания в ее потрохах система превратилась в некий гибрид классической wiki (с ее анархическим подходом) и более авторитарной CMS, что, на мой взгляд, стало вполне оригинальным решением. Признаться, работа увлекла. А когда началась разработка конвертора для переноса базы данных форума phpBB в среду wiki, стало ясно, что пути назад нет, и полумерами здесь не ограничиться. Движок openSpace будет доведен до ума, а затем выложен в свободный доступ под лицензией BSD. (Причины тому не идейные: я сторонник GPL, но оригинальная WackoWiki опубликована под BSD, а мне хочется дать ее авторам возможность бэк-портинга без смены своей лицензии, что потребовалось бы в случае GPL.) О последующем будущем этого движка я не уверен. Я буду рад, если он послужит где-то помимо openPGP в России или если кто-то найдет в его коде интересные для себя идеи, но самостоятельно вряд ли буду заниматься поддержкой и развитием этого проекта, кроме того, чтобы портировать изменения из самого openPGP в России. Думаю, если что-то толковое в этом ПО и есть, оно появится в WackoWiki. Впрочем, если кто-то захочет взять готовый код под крыло и независимо продолжить его эволюцию, что ж, это повод для разговора. |
Движок обязательно опубликую. Может быть, даже в текущей альфе (через неделю-две, когда будет больше времени): без инсталлятора одними руками его будет трудно поставить, но хотя бы заинтересованные стороны смогут заняться чтением и портированием изменений. Касаемо комментариев, они есть, но довольно поверхностные. Я старался давать переменным и функциям достаточно информативные названия, так что это должно помочь (не везде, правда, поможет реально), но код часто писался в спешке, не оставляя времени на подробные разъяснения. Местами придётся просто перечитывать, особенно в части подсистемы голосований, выполненной одной из самых первых: там даже мне самому теперь не слишком легко разобраться. :-) Последние модификации прокомментированы лучше: есть информация о входе и выходе функций и основные пояснения по внутренним процессам. Движок Ваки я изучил достаточно подробно, поэтому при необходимости могу дать любые разъяснения о ходе его работы. Кроме того, в процессе правок переформатировал исходники согласно рекомендаций группы phpBB: теперь он читается значительно легче, это сделает дальнейшую работу проще. |
Похоже, что Ваку просто каждый переделывает под себя :-). После мучений и вивисекций что-то получилось "наметанное белыми нитками". Приглашаю взглянуть на http://openstory.ru Установка получилась "многоступенчатая", т.к. приходится добавлять таблицы БД и классы, не говоря о наборе дефолтных страниц. И не все нужные функции пока удалось реализовать. Где-то там ваша "альфа"? :-)) |
А миленько у Вас получилось. Такой дизайн очень устроил бы некоторых посетителей pgpru.com. :-) Только с категориями получается как-то сложно. Может лучше (не говорю проще) добавить отдельным полем в таблицу страниц, в мета-данные? Что до альфы, то для её выпуска нужно много подчистить в работающем на pgpru.com коде. Пока, к сожалению, руки не доходят, но сделаю обязательно. Кстати, сегодня восстановил отладочный режим Ваки (раньше снёс его в ходе одной из модификаций) и ужаснулся нагрузке на SQL, которую создаёт openSpace: от 35 до 150 запросов на страницу (главная и форум -- около 100). Пора браться за оптимизацию? |
Поменял акшн newpage - сейчас требует от юзеров внести description, думаю туда же прилепить категории. Потом все это надо будет сделать в одной форме. Вообще, есть большое желание сформировать "аккаунт" пользователя по принципу блога. Сейчас мучаю акшны в попытке выводить на страницу таку-вот "блог-представимую" ленту (либо по алфавиту, либо не выдает description, ззараза) ЗЫ description взял после тщетных попыток выводить 100-200 первых знаков страницы (а, например, такая штука http://wiki.feautec.pp.ru/PodelkiDljaSajjta/LentaNovostejj жрет немеряно ресурсов). По поводу оптимизации - по любому (движок замечательно расширяется и кубикорубикуется, но он и в оригинале был не самый быстрый :-( ) |
ЗЫ description взял после тщетных попыток выводить 100-200 первых знаков страницы У меня реализовано во множестве мест. Главный элемент -- простенький парсер (форматтер), вырезающий основной вики-синтаксис из $page['body']. Код сейчас скину по мэйлу. |
Законченной концепции по оптимизации acls у меня пока нет помимо того, что перенос списков допуска в таблицу pages поможет снять по крайней мере небольшой процент запросов (правда, здравый смысл подсказывает, что в большинстве случаев выгода будет в один-два запроса на 50, не более). Более интересна идея с кэшированием списков допуска при обращении к ним. Подсистема кэширования ACL'ов в каком-то виде уже реализована в Ваке, но предметно с ней я ещё не разбирался. Что до форума и вообще "тяжёлых" страниц, то там главная проблема в SQL-запросах с регулярными выражениями. В принципе, процессорную нагрузку здесь можно выменять на память, но реальные выгоды такой альтернативы тоже ещё только предстоит рассмотреть. |