Zena (software)
From Wikipedia, the free encyclopedia
| This article or section needs sources or references that appear in reliable, third-party publications. Primary sources and sources affiliated with the subject of the article are generally not sufficient for a Wikipedia article. Please include more appropriate citations from reliable sources, or discuss the issue on the talk page. This article has been tagged since March 2008. |
| Zena | |
|---|---|
![]() |
|
| Developed by | Gaspard Bucher |
| Latest release | alpha |
| OS | Cross-platform |
| Genre | Content management system |
| License | MIT license |
| Website | http://zenadmin.org |
Zena is a content management system (CMS) written in the Ruby programming language and built upon the Ruby on Rails web framework.
Contents |
[edit] Design
Zena runs on the Apache web server as frontend to Mongrel web server on the Linux, BSD, Mac OS X and Solaris platforms. It uses MySQL as it's primary database management system. Any other databases supported by Ruby on rails should also work but are not tested yet.
Zena is inherently a multi language, multi user CMS with a powerful xhtml templating language called Zafu. The design of the software has been made to focus on the user's information domain by letting users create new classes of objects to represent their data. For example, a musician might create classes such as "Concert" or "Album". The look and feel of the websites created using Zena are totally defined by the templating language with support for drag&drop, inline ajax editing and live filters.
All data in Zena are subclasses of the base class "Node". A page is displayed depending on the class of the Node, a mode and a format. For example, a "Concert" entry might be displayed by a specialized template for "Concert" in mode "print", a "ConcertList" entry could be displayed in "rss" format, a "Contact" entry could be downloaded as vCard format.
[edit] Zafu example
Display the list of the next five concerts with an "add" button to create new "Concert" entries. The add button will reveal a form created from the content of the "each" element.
<ul do='concerts' order='event_at DESC' limit='5'> <li do='each'><<span class='date' do='show' date='log_at' tformat='short_date'>03.08</span> <r:link/></li> <li do='add' klass='Concert'/> </ul>
The resulting html page:
The same example with the "+" button pressed:
As we can see, zena guessed that we need a date input and a text input from the definition of the 'each' loop.




