Когда E-Xoops был маленький с кудрявой головой… История изменений в E-Xoops с первого крика и до последнего вздоха.
Можно констатировать, что E-Xoops уходит в историю. Эта портальная система была детищем одного разработчика. Он был главным зачинщиком отделения этой CMS от XOOPS, он же до недавнего времени развивал, популяризовал и поддерживал эту систему. И надо сказать это у него не плохо получалось (по началу). Но с того момента как Half-Dead официально сложил с себя руководство проектом, E-Xoops перестал существовать. На смену ему пришел RunCms и несколько веток, и это нельзя назвать простым изменением имени с одного на другое. RunCms на данный момент идейно аморфен, но будем надеяться, что пока это признак младенчества. Веря в успешное развитие нового проекта с новым именем, неплохо вспомнить, какие изменения, дополнения и новшества были внесены в E-Xoops за все время его развития.
Небольшая справка:
XOOPS (eXtensible Object Oriented Portal System) был создан на основе MyPHPNuke 1.8.5. в конце 2001 года. Вначале он был под-проектом этой системы и носил название myPHPNuke SE. Но потом, так как ядро было переписано практически полностью, несколько разработчиков MyPHPNuke, участвующих в проекте SE, решили развивать свое направление. XOOPS 1.0 RC1 вышел 1 января 2002 года. Эволюция системы привела к разработке XOOPS 2. Мы не будем вдаваться в подробности различий этих версий, но для нас важно, что в XOOPS 2 было переписано ядро и введена система шаблонов SMARTY. Введение SMARTY вместе с усложнением системы и является официальной причиной выделения E-Xoops в отдельное направление.
E-Xoops beta 1.00-1.02:
Выход E-Xoops Beta 1.0 Released в новостях помечен числом 2 сентября 2002 года. За основу был взят XOOPS Version 1.0 RC3.04/CVS3.10.
Какие же новшества ввел Half-Dead в первую версию системы по сравнению с XOOPS? Наверное, логично начать с изменения в системе графических тем, тем более что одной из главных причин выделение этой ветки из XOOPS было несогласие с введением новой системы шаблонов.
* Система тем оформления не была изменена кардинально, но реализована более логично. В частности все было объединено в один файл – функция из файла themenews.php, отвечающая за вид новостей перекочевала в основной файл темы. Добавлено 5 новых функций. Например, функция, отвечающая за вид центральных блоков themecenterposts() была разделена на три - themecenterbox_left(), themecenterbox_center() и themecenterbox_right() - соответственно для левых, центральных и правых центральных блоков. Добавлена функция theme_waitbox() Внешний вид страницы редиректа теперь стало возможным изменять через таблицу стилей в style.css. Да и сама таблица стилей была изменена. Плюс много мелких изменений.
К изменениям в системе тем близко примыкает и введение кэширования.
* Добавлена система кэширования страниц портала. Теперь при включенном кэшировании, страница при первом открытии сохранялась в файл, и при последующем открытии не генерировалась заново, а загружалась из кэша. Тем самым, мы практически полностью убираем запросы к базе данных, необходимых для генерации страницы.
К слову сказать, несмотря на замечательную идею, реализована она не очень удачно, как технически, так и, по сути. Главный недостаток в том, что кэшируется сразу вся страница, со всеми блоками. Соответственно динамические блоки, например «кто на сайте» и т.д. теряют свой смысл. Техническая сторона заключается в том, что, снимая одну нагрузку – от MySQL мы создаем другую, идущую от постоянных операций с файлами кэша. Как показывает практика, кэширование страниц практически никто так и не использует.
Вторым большим блоком изменений, было введение новых модулей.
* Старый модуль заголовков - Headlines, заменен новым с тем же именем (автор Half-Dead), в котором реализовано много функций.
* Модуль Partners (партнеры сайта), заменен новым с тем же именем (автор Half-Dead).
* Старый модуль статей Sections, заменен на Nsections. Напомним - и тот и другой, основаны на модуле, написанном Francisco Burzi (создателе Php-Nuke), но Nsections имеет больше функций. Имя осталось старое – Sections.
* Добавлен модуль phpRPC (автор Half-Dead) частично интегрированный с ядром. Теперь появилась возможность использовать стандарт XML-RPC.
XML-RPC – это технология для дистанционного вызова методов (функций, команд) веб-сервисов. Соответственно стало возможным использовать десктоп-клиенты (оффлайновые клиенты) для отправки сообщений, помещения новостей и т.д. По умолчанию phpRPC поддерживает оффлайн клиент W.Bloggar.
* Системный редактор ключевых слов (Meta Keywords) и нижней части страницы (Footer), заменен на многофункциональный модуль - Meta-Generator (автор Half-Dead). С помощью этого модуля появилась возможность гибко настраивать мета теги для страниц портала. Плюс, динамические TITLE для модулей, и масса других функций. Более подробно можно прочитать в статье:
Из других нововведений можно выделить следующее:
* Добавлен новый RSS класс (cafeRSS). Появилась поддержка RSS 0.91/0.92. RSS (Resource Site Summary) - необходимый сервис для любого современного сайта. Теперь стало возможным создавать заголовки в этом формате.
* Введена поддержка переменных с выключенным Register Globals (register_globals = off)
* Модифицирована система документации к модулям и разделам администрирования. Введена языковая поддержка для руководств. Другими словами система документации теперь стала работать – для каждого модуля и раздела администрирования, свое руководство.
* Пользователи теперь могут подавать запрос на получение по почте нового ключа активации или пароля.
* Добавлен отладчик, который позволяет выводить разнообразную информацию, о количестве запросов, времени создания страницы, перечень самих запросов с дополнительной информацией о них, список загруженных файлов и т.д.
* Взамен старому, написан новый блок «Последние дискуссии на форуме» для модуля форума (newbb)
Кроме того проведена большая чистка кода, много функций было изменено или переписано. Все это, а так же то, что были изменены имена переменных и констант ядра, сделало E-Xoops и XOOPS несовместимыми системами. Однако модули легко переносимы с одной платформы на другую (это характерно только для XOOPS 1.X.X, в XOOPS 2 было переписано ядро системы).