Technical Overview

by Etienne de Bruin | Last edited: 3/31/2008

  1. Overview
  2. Web Sites
    1. A Quick Primer
    2. Content Management
    3. Content Management Systems
  3. Step by Step Guide to Getting Started
    1. Create a Web Account
    2. Create a CMS Account
    3. Create Templates
  4. CMS Tags

1. Overview

The Ekklesia 360 Content Management System (CMS) is a Control Panel that is accessible from anywhere on the web by accessing __url__. From this control panel all those with the necessary privileges are able to control all information contained within their organization, personal or company website. The goal is to give the appropriate people access to the relevant areas of a website in order to keep information fresh and useful to existing audiences and be a welcome invitation to new audiences.

The CMS consists of a central database with a user friendly web interface. Websites that have been plugged into the CMS can reside at any Web Hosting company and access the data stored at __cms__ CMS via templates. This data includes standard content like pages, events, blogs, navigation, galleries, etc. as well as member information that is used to authenticate logins, host social networks and provide an array of communal features like discussions, commenting, sharing profiles, etc.

Some advantages of the centralized CMS web service approach include:

  • No software installs. There is no need to install any source code or database software at the client website.
  • Automatic updates. Bug fixes and feature releases happen automatically as there is no need to push out updates to scattered source bases. A robust release cycle ensures that all versions are of the highest quality.
  • Sophisticated caching. All queries from the client website to the __cms__ CMS are cached in a secure fashion so as to ensure that there are not redundant requests to the server as well as improving web site speeds and working towards 99.9% uptime of customer websites
  • Disaster recovery. Data is backed up according to a strict Disaster Recovery policy shifting the burden of data backup and maintenance from the customer to the __cms__ CMS system.
  • Syndication & SEO. Clients have the option of opting into the various networks that help syndicate their content into relevant sites that may spread the word about products, messages, ideas much faster than simple link development. All sites using __cms__ CMS are built on the same database which provides the strictest privacy on one hand, but massive content syndication on another. This is by no means a replacement for link development, but goes a very long way in advertising and marketing. Once more sites link to the client site, combined with strict XHTML and CSS development, the SEO kicks in and provides a higher ranking in search results

2. Web Sites

2.1 A Quick Primer

A website is developed by creating files that are hosted at an account with a Web hosting company. These files are transferred to the Web hosting company using either the File Transfer Protocol (FTP) or Secure FTP (SFTP) via SSH (Secure Shell), both of which require a username and password. The Web hosting company also hosts the Domain Name Service (DNS) Records which allow web surfers to find the website or, to be more specific, the files that have been transferred to the web account.

An example would be:

Company : Dog Biscuits Inc.
DNS Record : www.dogbiscuits.com
FTP Host : ftp.webhost.com
FTP username : dogbiscuitscom
FTP password : d0gb1sr00L3e4
Document root : /httpdocs/dogs/v3.0/

In the above example we have started a company called Dog Biscuits and have registered a domain name with WebHost Inc. called www.dogbiscuits.com. In turn WebHost Inc. informed us to access our FTP account we need to FTP to host ftp.webhost.com and use the username and password provided. Once logged in, we will change directory to httpdocs/dogs/v3.0

It is assumed that the reader understands how to build actual web sites. Web Site files could typically look like this:

 

  • index.php
  • welcome.php
  • order.php
  • order-confirm.php
  • images/dog-happy.gif
  • images/dog-slobber.jpg
  • images/cart-thankyou.png
  • images/cart-placeorder.png
  • includes/footer.html
  • includes/header.html
  • includes/sidebar.php

 

Now all that remains is to transfer all our files that we created for this website to the Document Root. This will magically serve up the website for www.dogbiscuits.com once a visitor enters that domain name into their browser.

2.2 Content Management

CMS systems exist to protect companies and organizations from having to constantly FTP new updates to their FTP site. Changes can be cumbersome and be too large to manage. Changes can be as rudimentary as having to go to each file, sometimes hundreds, open a text editor, apply a small change and transferring that information back to the server.

Consider the above example of perhaps adding a new product to the product line of Dog Biscuits Inc. In the pre CMS world, someone from the company, or their very expensive IT company, would have to go and manually update all the files pertaining to order listings, order details, carts, order confirmations, order images, etc. With a CMS however, this change could be applied by simply adding the product to the existing list of products over at the Dog Biscuits Inc CMS account and “viola!”, all instances of orders will have the new product listed.

The above example can be extrapolated to all aspects of a website including new pages, staff, navigation, articles, events, users, etc. The list goes on. The CMS conceptualizes all company data into the look and feel of the company. A new product is added under the ‘Products’ tab, or a new staff member is added under the ‘People’ tab. This greatly simplifies content management.

2.3 Content Management Systems

Content management should be fun and easy to do. If it is hard, the client will be slow to learn and updates to the brand new company website will be even slower.

Enter the __cms__ CMS. With it’s highly configurable control panel, powerful API and user access control, it is now easier than ever to offer clients a simple way to update their sites. Even more powerful, is the ability to create community around a company, product, organization, interest or hobby.

3. Step by Step to Getting Started

The Ekklesia 360 CMS is a web designer’s dream as it takes the coding out of designing web sites. The cycle from start to completion is as follows:

  • Design Phase (optional)
  • CSS Phase (optional)

Both Design and CSS phases fall beyond the scope of this discussion but it needs to be said that both steps are optional. For the Design phase, instead of creating a PSD from scratch, one can use one of many templates as a base and apply color changes and logo changes. This method holds the huge advantage in that the work that goes into the CSS Phase is greatly reduced as the CSS structure already exists for templates.

The CSS Phase can be outsourced. Monk Development provides this service which also helps speed up implementation of the remaining steps.

Once the above have been supplied the following Steps need to be followed:

  1. Create a Web Account with Web Host
  2. Create __cms__ CMS Account
  3. Create or copy Templates

 

An in depth discussion of these steps, will provide a sufficient overview of how it all works.

3.1 Step 1 : Create a Web Account

A Web account is accessible via URL and via FTP or SFTP, eg. www.dogbiscuits.com and ftp.webhost.com with username and password (See Section 2 for more detail). In order to prepare the web site for content updates via the CMS the following steps should be taken:

  • Register a domain name. This would be the live site eg. www.dogbiscuits.com if it does not already exist, and the staging site where development will occur, eg. dogbiscuits.reseller.com. If the design is not yet complete but you want your customer to start working on content, a White Board can be loaded to the staging site which allows for the concurrent Design and Content migration.
  • Create a media folder. This will be the folder where all images, audio and binary files will be stored. This folder will be specified in the CMS configuration so make sure it exists before continuing on to step 3.2. Good examples of this would be Media/ or media/ or mp3/ etc.
  • Create a cache folder. This task will be attempted by the CMS but due to different permission systems at Web Hosts, the CMS may not be allowed to remotely create a cache folder. Name the folder as follows: monkcache - make sure that ‘monkcache’ is in the Document Root of your web site and that it is world writeable, i.e. chmod a+rw monkcache (via the FTP or SSH command interface)
  • Make sure that your Web Host supports PHP4 or PHP5 and make sure that it is not in safe mode, i.e. uncheck any safe mode options.
  • Make sure that your Web Host supports Mod Rewriting. For Apache this is quite simple as it is almost always included via the mod_rewrite module and for IIS special installs need to be made.

3.2 Step 2 : Create a CMS Account

As a Reseller or Developer, this step creates the account for the client web site that is to use the CMS for content updates. If you do not have an account yet, please contact , In order to add a client website, the following general information will be required:

URL, eg. www.dogbiscuits.com, This URL does not have to be live during development phase but it is helpful. Often times a staging site will be used during development in order to accurately reflect changes in content made in the CMS, eg. version2.dogbiscuits.com

  • Contact information
  • Profile information
  • FTP/SFTP information. This forms the backbone of communication between the CMS and the client web site as far as publishing is concerned. Actual content is not published via FTP/SFTP, but rather updates to .htaccess for mod rewriting and expiring the cache.
  • E Commerce settings (if applicable)

Once the account has been created and the Web Host account is live as described in 3.1, you are ready to do your first ‘Load Config’ command, This command can be executed by clicking on ‘Load Config’. 

Load Config will run a few tests on your web host account and install a small PHP file which will serve as the API gateway for all commands sent to the CMS. Another file containing configuration parameters will be installed as well.

After a successful Load Config, the following the files will be present in the Document Root of your Web Host account:

  • monkcode.txt. This file contains important site profile information and should not be changed.
  • monkcms.php. This file contains the API gateway functions and should not be changed.
  • monkinstall.php. This file may be removed if it is still in your account. This file runs to determine a few server specific parameters for your Web Hosting account.
  • .htaccess. This file contains all the mod rewriting rules. If this file is not present, then the Load Config was not successful and the client website will not function properly. This file may be modified but the rules for modification should be followed strictly as this may also break the client website.

The Web site is now ready and plugged into the CMS which allows us to move on to the creation of templates.

3.3 Step 3 : Create Templates

When using the __cms__ CMS, the developer needs to undergo a paradigm shift. The shift is in how files are used at the client web sites. Files are no longer containers of actual content, but rather templates for content. A good example would be: 

Pre CMS file structure:

welcome.php - “Welcome to our Dog Biscuits Inc.! We are happy you ....”
aboutus.php - “Our company was established in 1907, right around the time ...”
events.php - “Join us for a host of events we have planned like the upcoming ...”
events/apr2dogshow.php - “On April 2nd we plan to ...”
events/3rdannual.php - “Join us for our Third Annual Dog and Pony Show”
ourproducts.php - “The Dog Eclair $2.99, The Dog Entree $4.99 ... Click to order”
products/dogeclair.php - “The Dog Eclair has been around we first noticed ...”
products/dogentree.php - “The Dog Entree comes shapes and flavors ...”
products/dogblah.php
products/dogblahblah.php

 

Post CMS implementation file structure:

general_template.php - All static content
events_template - All events
products_template.php - All product content

 

In the Post CMS example, all general content, events and products are managed from a simple, easy to use Web Interface which makes updating content fun and easy. The learning curve is also not steep as the user is placed in an environment that they understand.

A template file is a PHP file that normally has the following structure:

Include monkcms.php

HTML Content

CMS Tags

HTML Content / CMS Tags

CMS Tags

HTML Content

..

3.4 CMS Tags

The API can be described as the tags that are embedded within your web files. A paradigm shift needs to occur in that one is not creating web files to contain content anymore, but rather one creates web files to be templates for content.