# Kajona

Kajona es un CMS framework basado en PHP5 liberado y desarrollado como un proyecto open source usando la licencia LGPL. El sistema requiere de una base de datos relacional como PostgreSQL, MySQL, o SQLite. Debido a la capa de abstracción de la base de datos proporcionada por Kajona, casi todos los sistemas de bases de datos relacionales existentes se pueden conectar. Kajona usa UTF-8 para almacenar su contenido, resultando en un sistemas predestinado para ser usado para páginas web con localización internacional. Desde un principio el sistema fue escrito como un framework, los desarrolladores externos han enriquecido el sistema con nuevas funcionalidades usando muchos de los conceptos hooks/plugin que kajona provee. Hay puntos de conexión para casi todos los aspectos, como para los widgets, plugins de búsqueda, elementos o módulos.

## Características

Kajona viene con un conjunto de módulos y elementos de página por defecto, incluyendo una página de gestión integral (que incluyen un editor WYSIWYG para la edición del sitio web), un gestor de la navegación, un módulo de búsqueda y elementos de imagen que incluyen el apoyo en la manipulación de imágenes, tales como cambiar el tamaño de imágenes o para insertarlas. Debido a sus plugins, se pueden agregar o quitar de las instalaciones existentes módulos y elementos adicionales. Una lista completa de los módulos se puede obtener en el sitio web del proyecto. Además de inglés y alemán, el servidor también está disponible en ruso, portugués, sueco y búlgaro. Una revisión de las funciones y el sistema también se publicó en el cms (alemán).

## Architectura

La capa de base de datos puede ser usada casi con cualquier sistema de base de datos relacional existente. Por defecto, the system ships with drivers for MySQL, MariaDB (mysql, mysqli), PostgreSQL, Oracle y SQLite.
La capa de lógica comercial consiste en un número de objetos de negocio, cada uno representando una única entidad dentro del sistema, por ejemplo, una página o una imagen. La capa proporciona la lógica para manejar esos objetos como CRUD-operaciones (crear, leer, actualizar, eliminar). El sistema maneja el ciclo de vida de cada objeto que incluye la lógica para actualizar o insertar un nuevo objeto y la sincronización de los objetos con la capa de base de datos.
Kajona usa un motor de plantillas para ordenar y para renderizar las capas. El motor provee un camino para separar las capas del contenido y diferenciar entre páginas y elementos de la plantilla. El resultado de esto es una forma flexible para crear capas que provean una reutilización de las plantillas. Las plantillas están enriquecidas con marcadores de posición, después de ser llenadas con los contenidos aportados por los objetos de negocio.Dado que todo el contenido generado se almacena en el caché, el sistema de entrega las páginas de la caché después de la generación inicial. Las plantillas pueden ser utilizados para el frontend y el backend (administrativo). Los permisos se conceden mediante una estructura jerárquica, que proporciona la posibilidad de heredar la configuración de un nodo padre. Desde la versión 4, todos los módulos y plantillas se distribuyen como paquetes. El código de los archivos de los diferentes módulos ya no se fusionan en carpetas comunes, en lugar un nuevo sistema de ficheros de diseño que separa cada paquete y proporciona un sistema de ficheros virtual para sobrescribir o redefinir los archivos enviados con los paquetes sin tener que modificar los archivos originales se ha implementado. Por lo tanto, las actualizaciones pueden ser inscritas y sin el peligro de romper las modificaciones anteriores

## Historia

En 2004 Kajona fue construido en su versión inicial, que refleja una lista compartida de scripts de uso frecuente por algunos desarrolladores web. Esas secuencias de comandos se combinaron mediante la introducción de las interfaces con el fin de proporcionar una interacción más fácil. Resultando en una primera biblioteca de scripts de la idea de un marco nació y lanzado como versión 1.0. La versión 2 fue lanzado en 2005, seguido de la versión 2.1 en 2006. Dado que el proyecto seguía siendo una lista bastante desestructurada de scripts independientes, una reescritura completa se llevó a cabo de la versión 3, lanzada en enero El código base fue reorganizado para ser completamente orientado a objetos, que era una preocupación inicial, que proporciona una separación estricta y una división completa de la lógica y el diseño. A partir de ahora (ene 2011), Kajona ha crecido a un marco integral, flexible y robusto que proporciona un gran número de módulos y elementos predefinidos para una amplia gama de El marco es utilizado por instituciones públicas como la Universidad de Kassel, el ETH Zürich y una gran cantidad de pequeñas y medianas empresas de toda Europa y en todo el mundo como en el sur de África. La versión 3.3 también fue presentada en Heise abierto y otros. El proyecto se encuentra trabajando en una nueva versión, la versión de desarrollo en curo se puede seguir en un blog creado para la versión 4. Desde la versión 4 se introducirán cambios fundamentales como la nuevo la liberación aún no está programada. Además, la función de desarrollo de la rama 3 se detuvo, sólo la correcciones de seguridad serán desplegados y liberadad.

## Derivados

Hay varios forks de Kajona, como Sycon que comenzó su desarrollo como software privativo. En adición a una distribución linux Kajonix proporcionada con un live-cd que contiene la última versión de Kajona.