This article was brought to you by the guys from VDF-GUIdance.
For more DataFlex targeted articles see http://www.vdf-guidance.com

Features


Open eLectos is written around a framework which is designed to simplify your development and solve the most common problems.
Everyone has to solve the same type of problems when trying write a basic web application, this is not unique for content management systems.

We can identify the following basic parts in the framework.

  • Security
  • Accessibility
  • Text formatting
  • Session management
  • User manager
  • Multiple website support
  • Stylesheet support

Security



The security mechanism consists of a login page and once you're logged in, then a security identifier (the Session ID) is passed along on each page to uniquely identify your session.
This session ID is a 128 bit AES encrypted string.
When the session is created a few more extra details are detected from the user agent (browser) that you are using. For example, it is determined which type of browser you use, if you have active scripting enabled, what your IP address is, your Host info and a bit more extra data.
All of this data is stored in your session record for later reference if required.
The browser capabilities are expected to be extended with code similar or equal to this javascript sniffer page or this one.

On change of pages your querystring will also be stored into this same session record.

Accessibility



This topic covers quite a bit, it does not only mean that we need a general platform for all the different brands and versions of browsers, but also try to support people with disabilities.

Browsers which have been tested to work with Open eLectos:
  • Internet Explorer 4.0, 5.0, 5.5 and 6.0
  • Netscape Navigator 4.7 (*), NN higher
  • Mozilla 1.0 - 1.3
  • Galeon 1.0
  • Konqueror 3.0.3
  • Lynx 2.8.5

(*) A small problem with NN is that it interpretes cascading stylesheets differently and in NN4.7 cascading stylesheet support is completely disabled if javascripting is disabled.

In order to provide better support for people with disabilities, a special group can be found at the W3C, called the Web Accessibility Initiative. Although Open eLectos is currently not yet conform to these specifications we will work on following the W3C recommendation.

Wiki


In order to be able to maintain nicely formatted pages from all type of browsers (even textonly browsers like Lynx) we have followed an open source standard for textformatting called Wiki.
Wiki is a very easy to use text-formatting style standard.
Our implementation of Wiki formatting is secure as it does not allow the user to add active scripting.
Text made up in wiki format can be easily transformed into html/xhtml/wml and because the text is transformed at the server, we can garantuee to always have correct html.

As some of you people might know, incorrectly constructed html may show up perfectly well in one browser, but completely unreadable or totally messed up in another one.
The only way to avoid this is to generate W3C conformant html and this is what the wiki engine generates.
The current status of the wiki engine (build 1.0.1.7) is that it works pretty well for exporting to html and only has a few more to be implemented features left.

The documentation for wiki is available in the online help of Open eLectos.
You can find this when you login to the system.
See our online OEL sandbox version if you don't want to install Open eLectos.

Session Manager



The Session Manager is used to track userpreference, browsercapabilities and improve persistence of your application. Our session manager is table based which has the advantage that it can be shared over multiple servers if you need to scale up.
The session manager will have one record in its table for each session that is not yet timed out.
The table is sweeped at a predefined time-interval to remove any old sessions.

This session manager is used for all the created usersessions, regardless of the user is anonymous or has logged in.

User Manager



Our usermanager currently supports 4 levels of users.
  1. Anonymous users - users that have not logged in
  2. Registered users - users who have signed up at the website
  3. Web administrator - user with administrative rights
  4. eLectos administrator - user with administrative rights. Currently not an online user as this is the user that works with the Management console and sets up new websites.

Multiple website support



For ease of maintenance we have adopted a method developed by Knut Sparhell which enables us to deploy several separate websites all being controlled by one single webapp.
A single website is being identified by its set of asp pages (templates) and the database which provides the content.

The big advantage of this method is that when you fix a bug in your webapp it will be fixed in all other versions of your deployed application as well.
The only downside we can see right now is that if you make file changes, you will have to make those file changes to all of your deployed websites.

This does not mean you will have to adopt this method, you are free to use it if you like or not.
This is being discussed further on in the documentation shipped with the download.

Stylesheet support



Our templates are finetuned to create the complete layout of a page in stylesheets.
We have tried to not make the most common mistakes such as using tables for layout purposes.
Tables are originally meant to be the standard for presenting data not layout, for reasons on why not to use tables for formatting please see http://www.anybrowser.org

There is extra support in the stylesheet area for users browsing your website. They will be able to customize the way they see the website in their browser by selecting a different stylesheet.
Users simply love this type of skinning techniques as it gives them the idea of being in control.
An even better reason for supporting this is that it allows visually disabled people to select a stylesheet which is easier to read for them.