strona glowna solutions products portfolio about us news

.



search

Introduction

OrnakCMS is a content management system build on top of the ZOPE application server and development platform. It has been delivered for multiple customers. The first deployment version is fully operational since June 2002.

From the beginning, OrnakCMS was designed to build and manage multilingual Web sites. The first implementation of the system was www.culture.pl – a high profile Polish Government site devoted to presentation of the Polish culture. The site character is both promotional and as a resource/research tool. The project is an unqualified success, with rapidly growing content and language range (6 languages in nearest future).

The latest prominent OrnakCMS implementation is in an OrnakBIP product. OrnakBIP is a solution for presentation of an official, legally binding information by local government offices. For this project OrnakCMS has been extended with many components to e.g. address the issues of authority delegation or past content presentation and verification.

OrnakCMS is available for partners as an “open” system. The ORNAK company continues to develop and support this product.

System overview

OrnakCMS is build on top of the ZOPE application server and development platform. The ZOPE platform is briefly described in a separate appendix. It can be run in Windows or Linux environment, as well as in selected other UNIX environments. ZOPE is available as an OpenSource product.

We want only to mention at this point that ZOPE is regarded as one of most efficient development environments. Additionally, it has a highly developed security model, which was probably one of reasons why the document and workflow systems for e.g. US Marines Corps or NATO Headquarters are ZOPE based. There are many European governmental ZOPE installations, e.g. www.oesterreich.at

OrnakCMS is designed to present information in multiple languages. From the editor point of view, it allows to keep different language site versions logically consistent without the requirement of one to one content correspondence between different language versions. From the site developer point of view it does not require to build web templates separately for different languages – it features language-independent master templates plus a system of editable dictionaries to allow automatic, dynamic, language specific template creation. There are many other features discussed later in the document.

OrnakCMS is designed to allow distributed, remote editing. An unlimited number of editors may edit/create/manage different parts of the site according to set privileges. There are several tools which make the editorial process easier – notably the “click to edit” feature which allows – on any browser – to simply click on the page element to edit it.

OrnakCMS is designed for fast, disciplined site development. We want to stress that for vanilla web sites there is probably minimal need to do any programming – the standard OrnakCMS templates and mechanisms very likely will be sufficient.
For more ambitious projects OrnakCMS uses efficiently the tools of ZOPE environment:
1. The Python language for the application logic (separated by OrnakCMS from presentation logic and formatting)
2. The TAL language for HTML template definition
3. The MeTAL language for reusable template element definitions We just want to mention that the native object character of the ZOPE/Python environment allows for very clean and fast programming design and implementation. The mentioned separation between application presentation and logic is naturally achieved in this environment and is harder to obtain and enforce in environments like PHP.

OrnakCMS features 3 stage content presentation processing. This is more than the typical 2 stage processing of the PHP/SQL system, and allows for a very powerful set of features.
The stages are:
1. database content fetch driven by application logic (selection, aggregation)
2. content preprocessing by a site-specific preprocessor
3. content presentation in a HTML form using a template system
The second (preprocessing) stage allows for:
1. dead link deactivation
2. proper target language selection for links
3. macro expansion
4. custom, site specific formatting directives (if desired) OrnakCMS has an easy to use macro system which allows editors to freely embed separately editable elements in a free form text.

OrnakCMS is designed to maximally support Web presentation requirements. It automatically generates the “Meta” HTML information (keywords, description) and allows editors easy control over these elements if necessary. All URLs presented by the system are “static looking” – allowing for Web search engine indexing. There are other automatically performed HTML generation features which together result in top placement by search engines of the pages generated by OrnakCMS. Most pages from sites under OrnakCMS are “first page” on Google searches in relevant categories, most often the very first on the Google search (!!!).

OrnakCMS naturally enjoys the ZOPE system deployment and maintenance advantages. As the ZOPE system keeps the application data and code in the same database - which is seen by the OS as a single file - it is easy to archive or migrate the full system (e.g. for upgrades). Anyone who had to regularly maintain a system of PHP files (application code) and a relational database (application data) will appreciate this.


OrnakCMS in detail

Visitor’s perspective

A visitor who browses the site created and maintained by OrnakCMS will notice

No “dead links”
All pages presented by OrnakCMS are dynamically (real time) rendered, among other things this allows to deactivate any internal link for which the target “does not exist”. The “does not exist” is quoted here as this may mean that for example the target page has been temporarily blocked from publication, that the target page is only projected to be done in the future (really does not exist yet), or that the target page already exists, but has not been “released” yet pending editorial approval, or many other possibilities.

The link is always “to the right language version”
Any internal link from a page in language x will go to the correct target in language x, or will be deactivated if the target in language x is not visible. This addresses the frequent bane of multilingual web sites – the language hopping effects. Of course the visitor may follow the (specially marked) link to a different language version – but this is distinctly marked.

Internal enhanced search engine
OrnakCMS has a build-in search engine, significantly improved over standard web search engines. The search index is maintained automatically in parallel with the editorial process, so is always up-to-date. The default search mode only searches the current language site version, so no spurious or unintelligible search results are returned. The search results are presented (where available) with the short page descriptions created by site editors, so it is much easier to find relevant content than if the search results were presented as text snippets. The page descriptions may, but do not have to, be the same as “Meta HTML” page descriptions. The search engine fully respects the “public/not public” classification of the site pages.

Site map
This is a standard site structure presentation, using folder/page expand/contract presentation. Generated automatically runtime. Respects the “public/not public” classification of the site pages.

Multiple staple features
OrnakCMS offers the site developers opportunity to attach in (possibly many places) standard web site features like subscription bulletins, e-mail query forms etc.


Editor’s perspective

OrnakCMS is very feature-rich from the editor’s point of view.
A selected feature list includes:

Separate site parts editable by different editor groups
The access control system allows for site branch specific delegation of authority.

Independent “page ownership system”
Independently of the editorial access rights, OrnakCMS introduces the notion of the “page owner”. This is important in e.g. complex sites presenting official information, where determination of the responsible authority is crucial.
History system
OrnakCMS may activate the system for recording of any page history. Such history is accessible via change logs (with editorial info) or via “show the site at date xxx” interface. The history mechanism presents an integral historical site version (natural link navigation within historical content, presentation of 100% faithful historical view).

“Click to edit” system
This an important feature for “regular life” site maintainers. Even a casual editor may easily change any (subject to authorization) site page by clicking on an “edit” button of the page in question. The page is then presented in an almost “normal” form, except for small “edit me” icons for every page element. Clicking on the relevant “edit me” icon brings up a simple edit interface where the editor may type changes or copy-paste from another source. There are of course “master edit” interfaces with more complex tooling, but these are suitable for more frequent editors. The goal of the “click to edit” system is that the site may be maintained by a (possibly large) group of casual editors requiring no formal training in the OrnakCMS system.

Public – not public page
A newly created page is by default not public. This means it is visible to a logged in editor (via direct URL or any site navigation tool), but not visible to a normal site user.
Page may be made public:
1. by the editor manually after finishing of the editorial process
2. automatically for a given time period
3. manually as a part of editorial approval process
Any page may be made back “not public” at any moment manually.

“True view” of nonpublic pages
Editor sees the nonpublic page exactly as it will be seen by the user. It is much better than to see just the parts of the page in some editorial database interface.

Multiple page attributes
Editor may manually, individually set many page attributes like META HTML info, page descriptions to be shown by internal site searches, HTML titles etc. These attributes have of course site specific default values. This is an important tool to cooperate with Web search engines, though the default values give surprisingly good Google results.

Separate “language independent” and “language dependent” page attributes
OrnakCMS treats each information item (most cases each page) as a single entity, which may have several language variants. The whole system (more below) is designed to work correctly when various pages have wildly different language versions, which is a necessity in the practice of a multilanguage site maintenance. Some page attributes may be considered language independent (period of showing at a prominent site place for example), some are clearly language specific.

Multilanguage content, single (internal) name for an information item
OrnakCMS has the approach that for the site logic the primary information designation need not to be concerned with the language. This is debatable, but proved to be highly successful in practice. This means that the site structure and navigation may be designed only once, without considering the language. Each language version of the information item may be then prepared without consideration for other languages AND existence of other information items in the same language, using the master layout. Please note this means embedding (text, menus) links to possibly nonexistent pages. OrnakCMS will automatically activate/deactivate links according to the target availability status, and translate the internal page designations into proper URLs for external presentation, including the correct language version.

This approach allows for a very independent and distributed editing and translating process. Various language editors - or editors of same language but different site parts - need not to communicate with each other to keep the site integrity. The last statement is perhaps touch strong, but this is what happens in practice.

One might object that an uncontrolled and random translation process (or even the page creation process) will result in the site loosing the logical coherence, and this is true. But it is enough to make sure that the key “hub” pages get translated (created) in a proper order, there is no need to control the order of creation or translation of “leaf” pages.

Please note that that the “single name, independent of language” designation of information means that e.g. menu targets may be prepared only once for all language versions. This also means that the main site navigation is “horizontal” – within the same language (this is automatically enforced). To allow “vertical” (between languages) navigation OrnakCMS may automatically include on each page links to other available language versions of this page.

Page templates independent of the language
The newest version of OrnakCMS boasts the language-independent template system. Each template is prepared once (logic and presentation), with presentation using a dictionary. Then, to add a new site language version it is enough to add new language to existing dictionaries – OrnakCMS will take care of the rest (well, the content still has to be translated).

Of course any graphic buttons have to be treated separately (there is a mechanism for that), but:
1. templates use CSS so there is little need for graphic buttons
2. buttons are usually under CMS as well – they are not parts of templates as to allow for arbitrary menu construction by the editors.

Automatic runtime link verification
As mentioned many times before, editors may use arbitrary internal links (site specific syntax). A very powerful feature is to allow editors to use links to pages planned to exist in the future. Then, as the planned page becomes available, in many places of the site the inactive links become active. This is an indispensable feature for encyclopedia type sites, gradually acquiring content.

This feature guarantees that the site never contains “dead links”, and that any page may be taken off the site without creating dead links all over the place.

Page relocation ability
OrnakCMS optionally allows to divorce page presentation URL from the internal page designation. As in all internal links the internal information designation is used, this allows to rearchitecture the site (as seen by user) without changing all internal links. The URLs are generated at runtime anyway, so it is enough to tell the URL generation mechanism of the site architecture change. This should be used with caution, as there are Web engine search implications – many of which OrnakCMS addresses though.

Macro language capability
There are basically 2 ways to embed repeatable content in web pages in OrnakCMS:
1. using template logic
2. using macro language in “normal” text
The first method is available mostly to site developers. The second may be used by any editor. Please note that the macro mechanism works similarly as the “verifiable link” mechanism. It is perfectly legal to use an nonexistent macro – once it is defined AND made public, the relevant text will magically show up in all pages where the macro is used. It is a very powerful feature.

Graphical site design and OrnakCMS
If necessary, OrnakCMS may manage sites with an elaborate graphical design – it is just a matter of template preparation. There is no need for a boring “three column text” layout in situations when graphical impact is necessary.

Standard CMS features
OrnakCMS contains all standard CMS features, like:
1. menu creation and editing
2. subpage creation
3. choosing various templates for a page
4. selecting the period for page publication
5. summary pages with links to full content
6. “plug-in” e-mail query forms
7. “plug-in” discussion forums
8. subscription bulletins
And many others.

Programmable features
Any bigger site needs some program logic support. For example the main page may present most recent content from various parts of the site. Such features are programmed by site developers using (mainly) the Python language.

Platform independence
All features of OrnakCMS are available from any recent mainstream browser.


Developer’s perspective

OrnakCMS is programmed in Python, TAL and MeTAL. Python is a very powerful objective language. It is estimated that programming in Python gives at least 30% time savings over Java programming for tasks typical for web content or workflow or document management. ZOPE is a fairly well developed platform for program development. Any programmer familiar with object concepts can proficiently start working in Python within days. TAL and MeTAL are quite simple and relatively easy to learn.

Internally, developer has access to both CMS engine application code and to site application code and templates. The CMS engine application code access is not necessary for site developers. Both codes (CMS and site) are kept separate, which allow for easy change of either one (CMS upgrade or a new site instance).

The application code and data in the ZOPE system are kept in a hierarchical object database with easy export/import interface. This allows to convenient exchange or storage of code or data components.

For applications which benefit from relational database architecture ZOPE contains necessary adapters to most (commercial and OpenSource) implementations. ZOPE’s integral objective database has full transaction support, access control and is surprisingly efficient.

For load balancing installations there are OpenSource products which allow to run multiple ZOPE application servers controlled by a single database.

Database distributed replication mechanism is commercially available.


Site administrator’s perspective

Zope integrates the application code, application data into a single database visible as a single file of the host OS. This means that to archive the site (application and data) it is enough to archive a single file. There is no problem of multiple, context sensitive files of the PHP/SQL systems. Similarly, to deploy a new system version it is enough to “drop in” a new file containing the new system and data. Of course it is also possible to export (single file again) (or import) just the data or just the application code.

As OrnakCMS generates it’s pages with a considerable amount of processing, for intensely visited sites it is probably necessary to employ some load reduction strategy. The current deployments use a frontend reverse proxy cache with a short “freshness” time and this setup works well.

OrnakCMS – future directions
At the moment our company is exploring with customers implementation of the workflow and document management systems. It seems highly likely that we will offer in future above systems integrated (content presentation) into extranet or intranet systems administered by OrnakCMS.

Other solutions
There are other CMS systems based on ZOPE, notably Plone and CMF. When the OrnakCMS project was started, there seemed to be no easy way to integrate the desired features into the above projects.

We are open to the idea of eventually converging OrnakCMS with other ZOPE CMS systems, or to implement systems using other ZOPE based frameworks. It is our opinion that the field of CMS solutions will evolve very rapidly, with growing availability of OpenSource solutions with very powerful capabilities.


Appendix – history of OrnakCMS

OrnakCMS was started as a system to manage the www.culture.pl site. Some early design issues were presented at the ZOPE conference in Berlin in Spring 2002 (http://www.beehive.de/downloads/ZopeBBQ2002Papers/CulturalEncyclopediaCaseStudy.pdf) The overwhelming issue was managing multiple language versions for a site which will eventually have over 10000 pages (currently over 4000).

After the www.culture.pl project was completed (from the programming point of view) a lot of work was put into changing the editorial interface to accommodate casual site editors (this is when the “click to edit” feature was perfected). Similarly, the comprehensive editorial access authorization system was introduced. These and other changes, together with some security work were incorporated in OrnakBIP – an elaborate official information management and presentation system for local government offices, which is under deployment at present.

Meanwhile many smaller projects involving OrnakCMS resulted in corrections to the system to allow quicker and more efficient production of web sites.


Appendix – ZOPE installations in Europe

There are military installations whose focus is on document and workflow management rather than Web content management.
The Web installations are listed at the following sites:
http://www.zope.org/Members/gantar/oesterreich_at
http://www.eurozope.org/squish/1037719312/index_html
 
Copyright © Ornak 2001 - 2010