Ронни Cms, Введение



Когда деревья были маленькими Начну издалека – с истории.

Жили-были PHPNuke .

Форк этой CMS ХУПС .

Когда разработчики XOOPS решили перейти на тогда еще молодой и малоизвестный шаблонизатор Smarty, случился еще один форк, и часть команды ушла для создания собственной CMS, без блэкджека — e-xoops, сохранившей Native PHP. Где-то в 2004 году автор присоединился к российской команде e-xoops. Пришли случайно, не планировали задерживаться надолго.

Я быстро сделал пару сайтов с использованием этой CMS. Предложил пару хаков.

Вместе со всеми следил за развитием и переименованием системы в ЗапуститьCMS .

Вскоре другой клиент потребовал еще один интернет-магазин.

К тому времени сложилась интересная ситуация - я и мой партнер bigazzzz хорошо знал RunCMS изнутри, многое в ней нравилось (и многое не нравилось), но магазины, если возникала необходимость, строились на сторонних решениях (osCommerce и прочий ад.) Было время, Опыт тоже, желания были зашкаливающие, поэтому мы решили создать свой магазин на базе RunCMS, как модуля для CMS. Сначала было просто, но с каждым новым сайтом, следуя пожеланиям клиентов, он развивался.

Ко второй версии она превзошла саму CMS по объему кода, многие аналоги по функционалу и получила собственное имя — RunSTORE. Шли годы, развивалась RunSTORE, а также RunCMS, которую мы также пытались улучшить.

Однако произошло нечто странное — иностранным «владельцам» CMS не понравилось то, что большая часть кода в ней написана российскими разработчиками (и основным постепенно стал МихаилXIII ).

В один прекрасный день «владелец» закрыл репозиторий, уничтожил всю кодовую базу и выгнал всех разработчиков, заявив, что откатывается на предыдущую версию.

И к тому времени мы успешно продали RunSTORE. Новый владелец строил много планов, но всё у него не сложилось.

В результате нет ни RunSTORE, ни RunCMS, и делать нечего* -)) Но написать захотелось.

*-шучу, всегда есть чем заняться, но и для души хочется сделать что-нибудь.

Так родился форк RunCMS под названием Ronny CMS. Да, это тот же Nuke/xoops/Runcms, но, наверное, самый современный и цельный из всех имеющихся.

А может и нет -)) Мы изначально ставили перед собой цель — сохранить все хорошее, что было в RunCMS и главное совместимость с ней, сделать более современную и качественную систему.

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

На данный момент Ронни имеет статус Release Candidate и находится почти в 800 ревизиях от точки разветвления.



Что сделано?

Ох, много всего было сделано.

Конечно, во многом наша CMS по-прежнему похожа на RunCMS — те же модули, те же блоки.

Но, оставив нетронутым лучшее, а лучшее — мы многое изменили.

Кратко расскажу, что именно.

  1. Шаблоны и темы.

    Да, это была катастрофа.

    Изначально по историческим причинам в RunCMS вообще не было шаблонизатора.

    Был код-спагетти, который смешивал лошадей, людей, HTML, CSS, PHP и JavaScript в одном флаконе.

    Конечно, этого нельзя было терпеть.

    В результате мы взяли шаблонизатор из проекта RunSTORE, немного его модифицировали, профилировали и сделали основным в Ronny CMS. Шаблонизатор невероятно прост, он почти ничего не умеет — разве что отображать переменные, простые циклы и условия, но он очень быстрый, компилируется в PHP-код и умеет этот код кэшировать.

    Если в будущем нам понадобится расширить его функционал, мы это сделаем, но пока в этом нет необходимости.

    Здоровый примитивизм еще никого не беспокоил.

  2. Деревья.

    Беда? Нееет, это была не проблема, это был тихий ужас.

    Рекурсивные запросы к базе данных для получения древовидной структуры - стиль PHP3 во всей красе.

    Пришлось сделать свой класс для обработки деревьев.

    При этом из него легко вырос класс комментариев, ведь комментарии — это те же деревья.

    Введение этого класса и единой таблицы комментариев позволило прикрепить их к любому модулю и любому объекту.

  3. Человеческие URL-адреса.

    Использование mod_rewrite стало обязательным во всех частях и модулях системы.

    URL-адреса должны выглядеть удобочитаемыми или, по крайней мере, приятными для глаз.

  4. Теги Одно из самых значимых нововведений по сравнению с RunCMS. Отныне любой объект в любом модуле может быть снабжен произвольными тегами, а в системе предусмотрено отображение облака тегов и поиск по тегам.

  5. Модули Некоторые модули старой RunCMS пришлось просто выкинуть, так как их переписывание и адаптация заняли слишком много времени; достаточно сказать, что почти все старые модули полагались на «register_globals On».

    Взамен мы имеем ряд новых модулей, написанных с нуля специально для Ronny CMS - Аккаунты, Блоги, Фотогалерея, Реклама, Карты, Страницы, Ленты новостей, Контакты.

    Те модули, которые было решено сохранить - Новости, FAQ, Личные сообщения, Голосование - подверглись существенной переработке.

  6. Расширения.

    Вместо монолитного кода RunCMS у Ronny теперь есть система расширений — заменяемых частей.

    Теперь визуальные редакторы (интеграции для spaw и fckeditor) и капчи (kcaptcha и w3captcha) реализованы через расширения.

    В дальнейшем это дает возможность использовать любые редакторы, капчи, файловые менеджеры и т.п.

    , на что хватит богатой фантазии разработчиков и заинтересованных пользователей.

  7. И многое другое Конечно, в одной вводной статье невозможно описать все отличия и преимущества новой CMS. Однако основная цель уже достигнута — у нас 9 запросов на главной странице против 24 у RunCMS и время генерации сопоставимых страниц вдвое меньше.



И что дальше?

И тогда перспективы блестящие.

На данный момент мы объявили о стабилизации кода — ничего нового не вводится, систематически устраняются ошибки и ведется подготовка к релизу.

Есть еще много ошибок; код представляет собой адскую смесь нового и старого.

Выпуск сборки Core (это ядро системы и модуль страниц) запланирован сразу после Нового года, затем мы постепенно поднимем отстающие модули и выпустим оставшиеся пакеты.

Тем временем уже есть планы на Ronny CMS 2.

Могу я взглянуть?

Конечно! Весь код, кроме коммерческих модулей (а пока это только реклама), доступен по лицензии GPL v2. На сайте www.ronny-cms.ru. Вы можете прочитать последние новости и скачать последнюю сборку — снимок репозитория.

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

P.S. Если кому-то интересно, в будущих статьях я продолжу рассказ о Ронни, но уже с примерами кода и подробными комментариями.

УПД Совсем забыл, потому что было бы неплохо сразу привести примеры сайтов на Ronny CMS (кроме сайта самой CMS, конечно): Отраслевой журнал «Валютный спекулянт» Комитет по делам молодежи Костромской области SandPost уже обсуждался здесь УПД2 Прошу тех, кто поставил минусы, объяснить, что именно им не понравилось.

Иначе складывается впечатление, что «просто не понравилось и все», а что именно? Код? Стиль поста? Я пойму, если ты объяснишь.

Спасибо.

Теги: #php #CMS #ronny cms #runcms #CMS

Вместе с данным постом часто просматривают: