Irokez CM — первая открытая CMS в Узбекистане
Irokez CM — представляет собой систему управления содержанием сайта, т. е. CMS, речь о которых уже велась в предыдущей статье. На русский название переводится как: «Ирокез — Менеджер Содержания». Почему Ирокез — личные мотивы =), а менеджер содержания — потому что этим занимается.
Перво наперво, чем же Ирокез (здесь и далее пишу на русском, чтобы не переключать регистр) отличается от других CMS? Ирокез предназначен для разработчиков сайтов — для тех парней (или девушек), которые делают сайты. Что это значит? Это значит то, что Ирокез изначально не создавался, как система, которая предназначалась для пользователей. Ирокез должен был облегчить жизнь при создании сайта, взяв на себя все рутинные операции, с которыми сталкиваются разработчики. В чем отличие его от тех систем, которые предназначаются более для пользователей (т. е. те люди, которые будут использовать систему, для управления сайтами)? А вот чем — у разработчиков есть своя логика построения сайтов, которая отлична от понимания пользователей. Например, для пользователя существует меню, пользователь ждет отдельной функции, такой как «управление меню сайта, которое висит слева», для разработчика же, меню — это коллекция разделов первого уровня, имеющих аттрибут «меню».
Конечно же может показаться, что данный подход не совсем верен, т. к. все программные продукты создаются для пользователей, но все же Ирокез на данный момент больше используется для создания сайтов и уже потом для управления ими.
Разумеется, пользовательский интерфейс улучшается и будет улучшаться, т.к. система развивается и дорабатывается, но, при этом, сначала идет упор на улучшение фреймворка для разработчиков и уже потом на лёгкость использования системы для пользователя. Таким образом увеличивается скорость разработки сайтов, по мере надобности улучшая также и интерфейс административной части сайта (т. е. откуда и ведется управление сайтом).
Чтобы понять, что из себя представляет Ирокез сегодня нужно проследить историю создания от первой версии… возможно немного утомительно, зато получаешь полную картину.
От версии 0.1 до 0.6
При
создании первой версии Ирокеза перед ним стояла задача, которая стояла
и перед аналогами: управлять сайтом — быстро и удобно. С первой версии
и по сей день в Ирокезе
действуют несколько принципов, на которых он базируется:
- Структура всего сайта представляется в виде дерева. К главному разделу крепятся дочерние и в итоге получается дерево. Разделы первого уровня являются главным меню. Подразделы — являются пунктами подменю.
- Всё содержание на сайте крепится к разделам — статьи, новости, фотографии из фотогаллереи. Каждый раздел хранит информацию о скрипте обработчике, который определяет какая информация, прикрепленная к данному разделу должна выдаваться посетителю и каким образом. Также у раздела хранится название шаблона, который определяет дизайн страницы данного раздела.
В итоге, первый Ирокез мог хранить информацию неограниченной вложенности, мультиязычность на сайте осуществлялась путем разветвления сайта на ветви языков: в разделе «en» находились разделы английской версии, в разделе «ru» — русские, и т.д.
В следующей версии Ирокеза
был добавлен движок шаблонов, для хранения дизайна страницы в целом
шаблоне, вместо отдельных кусков header, menu, content, footer и т. п.,
а также улучшения читабельности шаблона и возможности редактирования
его людьми, не знакомых с PHP. А в версии 0.3 добавлены понятные адреса
страниц, так называемые ЧПУ (человекопонятные УРЛы), т. е. что
позволяло иметь ссылку на страницу вроде: http://www.example.com/ru/about/ вместо http://www.example.com/index.php?lang=ru&contentID=1024
Также была пересмотрена реализация мультиязычности, разделы разных
языков теперь представляют собой один раздел с разными полями для
каждого языка.
В последующей
0.4 версии Ирокеза был принят общий интерфейс для построения всех
страниц: как страниц для посетителей (т. е. собственно сайта), так
и страниц административной части. Теперь административной частью можно
было тоже управлять из нее же самой. Это позволило упростить построение
и изменение интерфейса панели управления сайтом. Разделы сайты условно
можно разделить на разделы для посетителей, разделы административной
части и системные разделы. Первая категория имеет обработчики — скрипты
(scripts), вторая — модули (modules), а третья — инструменты (tools).
Версия 0.5 совершила наибольший шаг от предыдущих версий. В этой версии были внесены следующие изменения в системе:
- Значительно
изменен интерфейс для работы с базой данных, в частности класс для
работы с таблицами модуля. Это позволяло абстрагироваться от базы
данных, что позволяет в будущем использовать иную БД, нежели MySQL,
а возможно даже и другие хранилища информации. Вместо использования SQL
запросов для управления данными из скриптов, разработчикам предлагаются
методы классов модулей, которые наследуются от базового класса для
работы с таблицами модуля. На примере, использование запроса:
INSERT INTO tbl_users (login, password) VALUES ('root', 'root')
теперь заменяется на:
$Users->add($data)где$dataсодержит данные для добавления в таблицу. Класс сам определит какие данные использовать для определенных таблиц. - Создан интерфейс для построения модулей административной части. Для создания нового модуля достаточно лишь скопировать общую оболочку и создать конфигурационный файл, в котором описываются аттрибуты данных модуля: название, описание, тип, может ли быть пустым и. т. д. Создание нового модуля занимает от силы 5 минут.
В последней,
на сегодняшний день, версии (0.6) конфигурационные файлы модулей были
перенесены из PHP файлов в XML, а другие конфиги (настройки сайта,
языков) в INI. Это упрощает их редактирование пользователями системы.
Самым последним и важным изменением в Ирокезе является кеширование
запросов к базе данных. Повторяющиеся запросы не отсылаются базе
на исполнение, а для них сразу возвращается заранее сохраненный
результат. Этим самым удалось уменьшить время генерации страницы вдвое
и, тем самым, уменьшить нагрузку на сервер.
Из достоинств системы (без лишней гордости) могу отметить единый
интерфейс для всех скриптов. Все скрипты подключаются через загрузчик,
который берет на себя функции загрузки конфигов, инициализации сессии,
проверки авторизации, тем самым разработчику уже не надо заботиться
о сторонних вещах, а только выполнять свою часть работы.
На примере это выглядит так:
Задача: «Добавить на сайт гостевую книгу»
Реализация:
- Шаг 1.
Создание модуля (5 минут): создание таблицы БД, копирование и кастомизация класса модуля, языковых файлов, оболочки модуля, редактирование конфигов модуля. - Шаг 2.
Разработка скрипта обработчика (20 минут): описание вывода сообщений, описание обработки формы добавления записей. - Шаг 3.
Добавление гостевой книги на сайт (5 минут): добавление раздела управления гостевой книгой в админ панель и добавления раздела гостевой книги на сайт.
Итого: максимум 30 минут и гостевая книга добавлена и работает на сайте.
Irokez 1.0
В общих чертах Irokez 1.0 унаследует все хорошее от предыдущих версий и расстанется со всем плохим :) Хотелось бы использовать следующие технологии, протоколы, инструменты разработки, которые любят использовать менеджеры в описании своих продуктов: AJAX, XSLT, XML-RPC, SOAP. В новой версии будет сделан больший упор на юзабилити и дизайн интерфейса административной части. Для разработчиков будет улучшен фреймворк для работы со сложными модулями, т. е. те в которых данными являются другие модули. Примером может служить электронный магазин: у организаций есть каталог продукций, а у продукций есть свои характеристики. В новом Ирокезе организовать такую структуру данных будет очень просто. Также будет пересмотрен шаблонизатор и возможно заменен на нечто другое, к примеру XML+XSL.
Заключение
Irokez CM разрабатывался как система для разработчиков, упрощающая им жизнь и увеличивающая скорость разработки проектов. На его базе созданы различные сайты и системы: от простых промо сайтов до системы управления каталогом книг библиотеки. Количество сайтов запущенных в Интернете на Ирокезе уже превышает 20. Создано небольшое сообщество, которое занимается поддержкой и развитием Ирокеза, создан сайт и форум, где можно задать вопросы и получить ответы. Ирокез используют около 6 разработчиков в двух компаниях в Ташкенте. Ежемесячно с сайта скачиваются около 200 его копий. Ирокез — это первая открытая система в Узбекистане и хотелось бы чтобы он внес свой вклад в развитие узнета и движения opensource в Узбекистане.