The path from beginner to pro: developing CMS on the Kohana 3.3 framework

About five years ago I got hooked on the development of sites, and purely out of interest in the web. I wanted to understand how to do them and do better than others. It all began, as for most developers, with a simple knowledge of HTML, CSS and, of course, popular CMS, such as Joomla, Wordpress and Data Life Engine. As I grew, I had to go deeper into Javascript and, of course, into my favorite PHP right now. But things did not go as fast as they wanted. While training on the simple, I wanted to understand complex things. PHP was initially bad at first, but the character got the better and after a while wrote something like a mini-social network.

Well, then it went and went: OOP, MVC, and finally, it's time to conquer the frameworks. At that time, the most famous for me were Zend, Kohana and CodeIgniter . I later found out aboutSymphony and YII . The choice fell on Kohana , because for a beginner it was easier to learn and with normal documentation. Well, in principle, I did not see any shortcomings for myself in this framework.

In my spare time from my main work, I mastered Kohana with simple examples purely to broaden my horizons and expand my knowledge in the field of OOP. But there were circumstances that, as you worked with other CMS, you had to develop and try something yourself, using the very Kohana.

The goal was one - to become a good programmer and do what you like.

Skip the months and years of growth. Finally, I decided to release my developments in the form of a full-fledged CMS on the Kohana framework for free access called Oxidos CMSversion 1.0.0.

The main criteria:
  • Fast work speed;
  • Easy to expand functionality;
  • Ease of use and administration;
  • Zest CMS;
  • Universality.


The main inspiration was CMS Opencart . I like its structure and usability. Opencart lovers will probably like my CMS, as there is a similar structure and visual part.

So what we have.

Key features:


  • Adding multilingual content;
  • Adding categories of unlimited nesting (using the Nested Sets algorithm);
  • Adding news, articles and static pages;
  • Used by CNC (thanks to Kohana routes);
  • Used by ORM and Query Builder. Allows you to connect CMS not only to Mysql;
  • Differentiation of access rights for each component of the admin panel;
  • Statistics in the admin panel from Google Analytics;
  • Ability to change templates;
  • The ability to select a data caching module;
  • Ability to upload images;
  • Ability to generate a Sitemap.xml file;
  • The ability to add new widgets, as well as the ability to expand functionality without sacrificing performance;
  • And other components that can be found on the site.


What is hidden under the hood:
  • Kohana 3.3 - is the core of the CMS. This means that anyone who knows the concept of MVC or HMVC can easily understand how everything works. Especially, everything will be simple for the “Cohans”;
  • Twitter Bootstrap 3 - The framework is used for the admin template. I really liked working with him, and especially when using LESS. Sources are also available for further style changes. In the future, it is planned to remake the visible part of the site into it;
  • Summernote is a text editor in the admin area that also uses Bootstrap components. Very convenient to configure and use;
  • Jstree 3 is a library for presenting a tree from directories and files. Used in file manager;
  • And of course, the popular jQuery and jQuery UI libraries .


System requirements:
  • Web server (preferably Apache);
  • PHP (since 5.3.3);
  • Curl is on;
  • MySQL database (starting with 4.1);
  • MySQLi extension;
  • IonCube extension (since 2 files are encoded: Core.php and Encrypt.php for security reasons).


In the course of training and development, a lot of new and interesting things are learned and, thereby, this contributes to further development and growth.

The purpose of this article is to introduce you to another tool that may be of interest either in its entirety or in its individual parts.

Conclusion
Oxidos CMS is a free multilingual content management system for creating business card sites, blogs and portals. It will be interesting to fans of Opencart and website developers, as well as developers of their own projects.

I will be glad if the Habr community at least somehow responds to the CMS and gives advice or criticism. I am ready to admit that CMS is not perfect, like most other first versions of products, but it is necessary to strive for this. Errors and tips will help me develop further as a programmer.

Links to the project:


Links to used libraries and frameworks:


PS I want to express my gratitude to the inspirers and teachers who helped me gain knowledge and understand this difficult matter:
  1. School of Programming
  2. Ilya Kantor (author of javascript.ru project)
  3. Daniel Kerr (developer of opencart.com)
  4. Kohanaframework Project

Also popular now: