Developer(s) | Kajona Community |
---|---|
Stable release | 3.4.1 / November 8, 2011[1][2] |
Development status | Active |
Written in | PHP PHP5 JavaScript HTML CSS SQL |
Operating system | Cross-platform |
Type | Content management system |
License | GNU Lesser General Public License |
Website | http://www.kajona.de/ |
Kajona is a PHP5 based content management framework, released and developed as an open source project using the LGPL-licence. The system requires a relational database system such as MySQL, PostgreSQL or SQLite. Due to the abstraction of the database provided by Kajonas database-layer, nearly all relational database systems can be connected. Kajona uses UTF-8 to store its content, resulting in a system predestinated to be used for international websites. Since the system is written as a framework, external developers are able to enrich the system with new functionalities using one of the many hooks / plugin concepts Kajona provides. There are HotSpots for nearly every aspect such as for widgets, search plugins, elements or modules.
Contents |
Kajona ships with a set of modules and page-elements by default, including a comprehensive page-management (including a WYSIWYG editor for in-site-editing), navigation management, a search-module and image-elements including the support of on-the-fly image manipulations such as resizing or cropping images. Due to the extensibility, additional modules and elements may be added or removed from existing installations. A complete list of modules may be obtained from the projects website.[3] Besides English and German, the backend is also available in Russian, Portuguese and Bulgarian. A review of the functions and the system was also published on the (german) content manager portal contentmanager.de.[4]
Kajona is separated in several layers, providing a separation of concerns. As already mentioned, the database-layer can be used with nearly every relational database-system. By default, the system ships with drivers for MySQL (mysql, mysqli), PostgreSQL and SQLite (as on 01/11).
The business-logic layer consists of a number of business objects, each representing a single entity within the system, e.g. a page or an image. The layer provides the logic to handle those objects including CRUD-operations (create, read, update, delete). The system handles the lifecycle of each object including the logic to update or insert new object and synchronizing the objects with the database-layer.
Since the presentation-layer only makes use of the business objects, there is absolutely now database-knowledge required when working with the presentation. In addition, the presentation-layer contains the controller, triggering all further actions within the framework.
Kajona uses a template-engine in order to render the layout. The engine provides a way to separate layout from content and differentiates between page- and template-elements. This results in a flexible way to create layouts and provides a way to reuse templates. The templates are enriched with placeholders, later being filled with the contents provided by the business objects. Since all generated content is cached, the system delivers the pages out of the cache after the initial generation. Templates can be used for the frontend and the (administrative) backend.
The permissions are granted using a hierarchical structure, providing the possibility to inherit the settings from a parent-node.
In 2004 Kajona was built in its initial version reflecting a shared list of scripts often used by a few web developers. Those scripts were combined by introducing interfaces in order to provide easier interaction. Resulting in a first script library the idea of a framework was born and released as version 1.0. Version 2 was released in 2005, followed by the version 2.1 in 2006. Since the project was still a rather unstructured list of independent scripts, a complete rewrite was done for version 3, released in January 2007.[5] The codebase was reorganized to be fully object-oriented, providing a strict separation of concerns and a full division of logic and layout.[6] As of now (Jan 2011), Kajona has grown to a comprehensive, flexible and robust framework providing a large number of predefined modules and elements for a wide range of capabilities.[7][8] The framework is used by public institutes such as the University of Kassel, the ETH Zürich and a lot of small and middle-sized companies around Europe and all over the world as in South-Africa.[9] The release 3.3 was also featured on Heise Open [10] and other websites.[11]
There are a few forks of Kajona such as Sycon being developed non-public. In addition, the linux distribution Kajonix[12] provides a live-cd containing the latest Kajona release.
Though Kajona seems to be rather stable and major, the number of modules and extensions is not that high. In addition, the community seems to consist of mainly German members. Even if there are translated documents and tutorials, the German documentation is much more comprehensive.
|