Лет пять назад подсел на разработку сайтов, причем чисто из интереса к вебу. Хотелось осознать, как их делать и делать лучше, чем другие. Начиналось всё это, как и для большинства разработчиков, с простого познания HTML, CSS и, конечно, популярных CMS, таких как Joomla, Wordpress и Data Life Engine. По мере роста приходилось углубляться в Javascript и, конечно, в мой любимый сейчас PHP. Но все шло не так быстро, как хотелось. Тренируясь на простом, хотелось понять сложные вещи. PHP поначалу плохо давался, но характер взял верх и все же через некоторое время написал что-то вроде похожее на мини-социальную сеть.

Ну а затем пошло-поехало: ООП, MVC и, наконец, пришло время покорять фреймворки. На тот момент самыми известными для меня были Zend, Kohana и CodeIgniter. Позже узнал о Symphony и YII. Выбор пал на Kohana, т.к. для новичка была проще в освоении и с нормальной документацией. Ну и недостатков в принципе для себя не видел в этом фреймворке.

В свободное от основной работы время я осваивал Kohana на простых примерах чисто для расширения кругозора и расширения знаний в области ООП. Но так сложились обстоятельства, что по мере работы с другими CMS приходилось развиваться и пробовать что-то самому, используя ту самую Kohana.

Цель была одна – стать хорошим программистом и заниматься тем, чем нравится.

Пропустим месяцы и годы роста. Наконец я решил выпустить свои наработки в свет в виде полноценной CMS на фреймворке Kohana в бесплатный доступ под названием Oxidos CMS версии 1.0.0.

Главные критерии:

  • Быстрая скорость работы;
  • Простота в расширении функционала;
  • Удобство использования и администрирования;
  • Изюминка CMS;
  • Универсальность.


Основным вдохновителем была CMS Opencart. Нравится её структура и удобство использования. Любителям Opencart возможно придет по вкусу моя CMS, т.к. имеется схожая структура и визуальная часть.

Итак, что мы имеем.

Основные возможности:


  • Добавление мультиязычного контента;
  • Добавление категорий неограниченной вложенности (используется алгоритм Nested Sets);
  • Добавление новостей, статей и статических страниц;
  • Используется ЧПУ (благодаря роутам Kohana);
  • Используется ORM и Query Builder. Позволяет подключить CMS не только к Mysql;
  • Разграничение прав доступа на каждый компонент админки;
  • Статистика в админке от Google Analytics;
  • Возможность менять шаблоны;
  • Возможность выбора модуля кэширования данных;
  • Возможность загружать изображения;
  • Возможность формирования файла Sitemap.xml;
  • Возможность добавления новых виджетов, а также возможность расширения функционала не в ущерб производительности;
  • И другие компоненты, с которыми можно ознакомится на сайте.


Что скрывается под капотом:
  • Kohana 3.3 – является ядром CMS. Это означает, что любой, знающий концепцию MVC или HMVC может без труда понять, как все работает. Особенно просто все будет «коханщикам»;
  • Twitter Bootstrap 3 – фреймворк используется для шаблона админки. Очень мне понравилось с ним работать, а особенно при использовании LESS. Исходники также доступны для дальнейшего изменения стилей. В дальнейшем планируется и видимую часть сайта переделать на него;
  • Summernote – текстовый редактор в админке, также использующий Bootstrap компоненты. Очень удобен в настройке и использовании;
  • Jstree 3– библиотека для представления дерева из каталогов и файлов. Используется в файловом менеджере;
  • Ну и конечно популярные библиотеки jQuery и jQuery UI.


Системные требования:
  • Веб сервер (желателен Apache);
  • PHP (начиная с 5.3.3);
  • Curl включен;
  • База данных MySQL (начиная с 4.1);
  • Расширение MySQLi;
  • Расширение IonCube (поскольку закодировано 2 файла: Core.php и Encrypt.php в целях безопасности).


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

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

Вывод
Oxidos CMS – бесплатная мультиязычная система управления контентом для создания сайтов-визиток, блогов и порталов. Будет интересна любителям Opencart и разработчикам сайтов, а также разработчикам собственных проектов.

Буду рад, если сообщество «хабра» хоть как-то отреагирует на CMS и даст советы или критику. Готов признать, что CMS не совершенна, как и большинство других первых версий продуктов, но стремится к этому нужно. Ошибки и советы помогут развиваться мне дальше как программисту.

Ссылки на проект:


Ссылки на используемые библиотеки и фреймворки:


P.S. Хочу выразить благодарность вдохновителям и учителям, которые мне помогли получить знания и разобраться в этом нелегком деле:
  1. Школе программирования (ШП)
  2. Илье Кантору (автору проекта javascript.ru)
  3. Daniel Kerr (разработчику opencart.com)
  4. Проекту Kohanaframework