Summary
the Zikula project has been around in one form or another since 2001, previously as PostNuke. Since the PostNuke days we've completely rewritten the core from the ground up, trying to keep a nice balance between practicality, performance and good architecture design. There's a strong API, we've had templating for years so output is easily modified by anyone who knows a bit of HTML and CSS, and our biggest thing is enterprise level security.
Many of the things we initially had as a differentiating factor, i.e APIs (most PHP CMSs didn't even have this when PostNuke started out), templating and so on are now in every CMS on the market. One thing we have maintained is the security focus, and I think we have that still over competitors.
Now, the obvious competitors that come to mind like Joomla and Drupal will have more modules, we can't claim to have such a large backing (though the community is big), but I can honestly say that I have never wanted for a module to build one of my sites - and I must have built hundreds. We are lucky in that a few super-powerful modules are flexible enough to cover 90% of situations.
For Fedora, I think the highlights are the security, our caching system (based on smarty), the fine grained permissions system, custom authentication and of course we are modular. The long, 8 year history tells you we're not going to disappear on you, Zikula will be around for a long time yet.
Project Website
Please excuse the slightly disorganised content, we recently refreshed our site and we're still in the process of updating the content and navigation to our liking.
Hardware Requirements
Apache/IIS (recommend Apache to get the best friendly URLs), PHP 5+ (though our 1.x series will work on PHP 4 I can't in good conscience recommend using it) and MySQL 4 or 5 (preferably 5). Gettext for the upcoming 1.2 version as an extension to PHP.
Features
Must have
== Partially meets the requirement.
== Does not meet the requirement.
Like to have
== Partially meets the requirement.
== Does not meet the requirement.
Explanations
Authentication
We have what we call Auth Modules, which allow us to authenticate against external sources. This can either take the details entered on the site, and send them elsewhere for checking, or alternatively I have previously redirected people to an external page to authenticate and the result of that is passed back to Zikula. I've personally implemented a system to authenticate against 'Raven' which is the authentication system used at the University of Cambridge here in the UK, and we have an OpenID module too
Translation
This is the one I wanted to talk about. With 1.2 (in development), our core at least is translated through gettext. That would be any strings inside the core, e.g status messages and the like. Content is a bit different. We have on our roadmap a plan to provide a generic way of translating content, however it's not there yet. So, translations are dependent on the module you use at the moment. I realise that might not be ideal, but presumably you would be using one main module for most content, so we could code up a better translations interface for one or two modules if it turns out to be a problem.
Search
Two systems, the old system is database-based and IMO does not work that well. We have a new system from the GSOC to replace it based on Zend Search Lucene which is a proper indexer and very nice. Needs some further development but is in a basically working state.
Dynamic/Static Pages
Not completely, no. The caching system either allows full page or page-element caching. Full page caching will reduce SQL queries to 3 or 4, element caching depends on the module. If you were using a particular Short-URL system we could make the pages completely static without breaking anything
Contact
- Name: Simon (simon@zikula.org)
IRC Interview
This information was gained from a chat with Simon (zk-Simon) who represents the Zikula project. This chat was archived and can be read at Zikula IRC Chat Interview.