KEMBAR78
Chapter 1 To Chapter 7 Theory Notes | PDF | Software As A Service | Subscription Business Model
0% found this document useful (0 votes)
25 views39 pages

Chapter 1 To Chapter 7 Theory Notes

The document provides an overview of Content Management Systems (CMS), detailing the editorial process involved in content creation and the various types of CMS available, such as Web Content Management and Enterprise Content Management. It discusses the functionalities of CMS, including content control, versioning, and permissions, while also highlighting the differences between coupled and decoupled systems. Additionally, it contrasts open-source and commercial CMS, emphasizing the importance of selecting the right CMS based on specific organizational needs and technical requirements.

Uploaded by

tsotetsisarah19
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views39 pages

Chapter 1 To Chapter 7 Theory Notes

The document provides an overview of Content Management Systems (CMS), detailing the editorial process involved in content creation and the various types of CMS available, such as Web Content Management and Enterprise Content Management. It discusses the functionalities of CMS, including content control, versioning, and permissions, while also highlighting the differences between coupled and decoupled systems. Additionally, it contrasts open-source and commercial CMS, emphasizing the importance of selecting the right CMS based on specific organizational needs and technical requirements.

Uploaded by

tsotetsisarah19
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

Chapter 1 : Introduction to Content

Management System(CMS)
Content- is information /data /knowledge.

Content is created through “Editorial process”. This process is what humans do to prepare information
for publication to an audience. It involves modelling, authoring, editing, reviewing, approving,
versioning, comparing and controlling.

When you create the content what questions should you ask yourself?

 What should be the subject of the content/what should the content be all about?
 Who is the intended audience of the content?
 From what angle should the subject be approached?
 How long should the content be?
 Does it need to be supported by the media?

What is content?

Content is information produced through editorial process and ultimately intended for human
consumption.

More about Content

Content is subjective and open for evaluation and interpretation. It has nuance. It is artisanal. One set
of information can be understood and analysed differently by two or more Editorial teams. This will
result in different news articles produced by the Editorial teams. If the content is not well assessed, it
might negatively impact the audience.

Content is constantly changing with time. For example, news of today are very important than what
happened yesterday or 2 weeks ago. So if your site doesn’t keep up with time, you will lose audience.

Editorial process is iterative because content changes all the time (content is not fixed, content is not
always right, it is right for that particular time).

Content is intended for human consumption via publication to an audience.

Content is data we create for a specific purpose.

What is Content Management System?

Is a software package that provides some level of automation for the tasks required to effectively
manage the content.

The CMS makes job easier for developers with or without Web programming skills to develop fully
functional websites by providing a graphical user interface that has administrative tools.

CMS is usually server-based (it runs on sever), multi-user software that interacts with content stored
in a repository(database). This repository might be located on the same server, as part of the same
software package or in a separate storage facility entirely.

CMS allows editors to create new content, edit existing content, perform editorial processes on the
content and ultimately make the content available to other people to consume it.
CMS is designed to enable the discipline (set of rules) of content management.

CMS is a tool to assist in and enable the theoretical ideal of content management.

Four Main types of Content Management System

 WCM (Web Content Management)


 Enterprise Content Management(ECM)
 Digital Asset Management (DAM)
 Records Management(RM)

There are other CMS which include

 Component Content Management System- Used for extremely fine grained content
(paragraphs, sentences and individual words), often to assemble documentation or highly
technical content
 Learning Management System – Used for management of learning resources and student
interaction (eThuto is an example of a website developed using LMS)
 Portals- Used for management, presentation and aggregation of multiple streams of
information into a unified system

The CMS is mentally classified among the public based on several factors

 The market (targeted users) in which it promotes


 The type of content user community creates and promotes
 Specific features designed to meet the needs of a particular user or the type of content

WCM (Web Content Management)

Software designed to manage a website intended for public delivery and consumption.

What is it the CMS Does?

 CMS allows control to the content


 Keeps track of content
 It knows who can access the content and who is not
 It seeks to prevent unauthorised access to the content to avoid bad things to happen to the
content.

CMS provides core control functions such as:

 Permissions- Who can see the content, who can change it, who can delete it etc.
 State management and workflow- Is this content published? is it in draft? Has it been archived
and removed from the public
Important things you need to know

 Archived Content: Content that is stored and removed from the public view
 Published Content: Content that is stored and available to public view
 Trashed Content: Content that is stored but ready to be removed. The trashed content can still be retained.
 Clearing the trashed content, meaning permanently deleting the content from the database. (You can think of
recycle bin)
 Versioning- How many times has this content changed? How was this content like 3 months
ago? How does the version of the content 3 months ago differs with the current version? Can
I restore or publish the older version?
 Dependency management- What content is used by other content? When the current
content is removed, will it affect the other content? What content is unused?
 Search and Organization- How do I find the specific piece of content? How do I find the
specific piece of content that refers to X? How do I relate and group content so it’s easier to
manage and to search?
 Content Reuse- CMS allows content reuse. Using a content in more than one place and in
more than one way, increases its value.
 A news article appears on its own page, but also as a teaser on a category page and in multiple
“related article” side bars. For example, these articles appear as teaser on the CUT home
page, when I click one of them, the whole article page will be opened.

 An author biography has its own page, but the teaser appears at the bottom of all articles
written by the author.
 A privacy statement at the bottom of every page on a website.
 Content Reuse- The content(information) is not created every time in every location, but
simply retrieved and displayed from a common location.
 CMS allows Content Automation and Aggregation- Having a content in a single location makes
it easier to query and manipulate it.

If our content is structured correctly, we can manipulate it to display in different formats, publish it to
different locations and rearrange it on the fly to serve the needs of our visitors more efficiently.

 A user can consume the content in a pdf format


 CMS creates lists and navigation of the content. On the list below, If I click
Blog 1 heading, the Blog 1 page will be displayed.

 It helps with content translation to the desired language of the user


 We can alter the published content in real time based on the specific
behaviour and conditions exhibited by our visitors.
 CMS increases the editorial Efficiency
 Well-structured CMS platform, can enable editors to simply, efficiently, quickly and accurately edit
or create the content.
 CMS controls what type of content editors can or cannot modify
 A good CMS enables editors to publish the content in a shorter time
 A good CMS controls and manage published content with a lower amount of friction or dray on
their process.
What a CMS doesn’t do

 It doesn’t create the content but manages it


 It doesn’t create marketing plans
 System is not responsible to add value to your content
 System doesn’t know nothing about how your content look and doesn’t know nothing
about marketing
 Even if the system has built-in marketing tools, they still need human intervention
 CMS doesn’t know your market place, your customers, your competitors and what you need
to do to differentiate yourself.
 CMS doesn’t effectively format the content without human intervention
 While CMS can structure content and automatically format it during publication,
however there is still room for human editors to screw it. For example,
 Too much bold and italics
 Inconsistent alignment of content
 Random and inconsistent hyperlinking
 Poor image placement
 CMS doesn’t provide governance
 CMS has to be programmed in advance to limit access of users to the
content. However, it still doesn’t have full control such as who is
doing what? How should it be done? What protocols are followed?
Etc…

Chapter 2 (Points of Comparison)


CMS are developed using different programming languages.

Some CMS are hosted while others are installed

One is coupled, the other is decoupled

One is commercial, the other is open-source

Coupled- Computing devices working dependently with each other

Decoupled- Computing devices working independently of each other

Different CMS are used to solve different types of problems.

 CMS can be used to create a small, static marketing site for a dental office
 CMS can be used to create site that the media organization will utilize to publish hundreds of
news articles a day
 CMS can be used to create intranet site for medium sized accounting firm
 CMS can be used to create extranet site for dealers or manufacturers
 CMS can be used to create site that manages the product documentation library for a software
developer
 CMS can be used to create site that manages the course syllabi for a small university
 CMS can be used to create site that manages community and social network for different
organizations
You can think of the CMS that will help with car or property dealership, or the CMS that manages the CUT library (What books
are available, which ones are booked, which ones are free to rent and which ones need you to pay a rental fee, and which
ones are available for purchase). A student, can rent or purchase books from the website, those books will be couriered by
the university to student.

Using a CMS:

 You can create a website for a small business


 You can create website for global use
 You can create a website that can be used within organization and authorised users such as
customers and suppliers outside the organization.

For the type of the problem you have, select the type of the CMS that can solve the problem.
One CMS cannot solve all problems, but one CMS can effectively solve one problem and mess
up when it comes to another problem. For example, Joomla can do best when it comes to
development of a website that manages selling of products to clients and it will mess up when
it comes to development of website that will handle university syllabi.

System vs Implementation

Implementation is the process by which CMS is installed, configured, templated, and extended to
deliver website that you want. We as developers, we can use the same CMS (Joomla) with the same
features to build totally different websites.

CMS can be well used in one situation and render poor in another situation. You can think of
programming languages, Java language is highly used to develop Banking apps and mobile applications
(e.g Netbeans and Android environments) while machine learning applications or robotics or artificial
intelligence applications are highly developed using Python language.

Platform vs Product

CMS can be Platform-based or Product-based

Platform-style CMSs are designed to be rearranged and customised to meet the user’s needs.

Product-style CMSs are used to solve specific problems quickly without significant effort.

Platform–style systems are flexible but effort intensive to structure it how you want it

Product style systems are rigid(fixed) but easy to implement

If an organization go for Product style CMS, it trades reduced implementation costs for agreeing to
accept how the system works.

If an organization go for Platform-style CMS, the organization trades increased implementation for
more flexibility and control.

The organization that chooses the Platform-style, must at least have its own IT programmers to reduce
costs of outsourcing.
Many vendors market their systems as products that are ready to solve all content problems out of
the box with a very little effort.

Vendor- is a firm that develops and sell software to the organizations or any user who may need it

Few vendors market their system as platform-based because buyers or users will need to have some
programming skills to customize their systems.

Although, most product-based systems are now being customised, the customization cannot be as
homogenous(big) or extensive as the platform-style systems.

Open-source vs Commercial

Commercial- Paid license. Some software such as MS Office or MS Visual studio, SAM are licenced.
You have to pay licence before using them. The university has paid the licence for us to have access to
those applications.

Open-source- free to use. Software that you install and use for free, for example Android Studio,
NetBeans, and others.
An idea behind open-source software- An individual or group of programmers develop an incomplete prototype, then the
source code is sent to the open source community for further development. Open-source community- Are group of people
everywhere in the planet with the same interest.

Open source software is sent to the open source community for continued development.

Open source systems are normally decomposed (broken down in to manoageable parts) and
distributed to the open-source community for further development. Those parts will be merged
(combined/composed) together to produce one system. The system will be shared within the group
and outside the group.

Drupal, WordPress and Joomla known as the “The Big 3” are open source systems.

Benefits of open-source

 Software is free
 Community support is often plentiful
 Contributed code is often available to solve common problems
 Developers and contractors are usually available

Disadvantage of open-source

 “Open-source syndrome” makes systems less attractive to organizations (or huge companies)
 They are vulnerable to malware attacks and hackers
 Community support for especially complicated problems will run short
 Professional service-level support may not be available
 Usage of open-source software may violate an organization’s IT policies
 Open source software is heavily weighted toward the PHP and Java technology stacks

Technology Stack

Language used to develop the CMS together with storage framework, strongly influence the hosting
environment the CMS needs to run.
Example of two CMSs (Episerver and ezPlatform)

Stack item Episerver ezPlatform


Programming ASP.Net MVC Symfony
framework
Programming C# PHP
language
Database Server Sql Server MySql
Web Server IIS-Internet Apache
information server
Operating system Windows Linux

Before picking up the CMS, be aware of the type of the operating system and type of servers your
organization uses. Especially, when you know that the organization is going to host the CMS on their
own not through the vendor. If the organization host the CMS, it means the CMS will run on their
servers. If the vendor is the one that host a CMS for an organization, then the vendor manages
everything including servers on behalf of the organization.

Joomla can be installed or hosted.

If it is installed, it means, the Joomla will run on your machine. The server or database will also be on
your machine.

If you click download button, you will download the setup file that you will need to install.

If you click host, it means, the CMS will run on web and the data that you create will be stored on the
Joomla vendor’s server. That is why vendors limit the storage for non-paying customers. Therefore,
for big organization where too much content is generated, they will need to pay a vendor a hosting
fee or they will need to install the CMS on their own servers. Installing a CMS is not a child’s play, it
needs expects.

Management vs Delivery

Management is about security, control, and efficiency of the content. It is composed of functions like
content modelling, permissions, versioning, and workflow. These are features that ease the creation
of the content, enable editorial collaboration and keep content secure.

Delivery- Means making the content available to the public

The modern CMS is highly concerned with the performance and optimization of the content it delivers.
Coupled vs Decoupled

Coupled CMS

In a coupled system the management and delivery occur on the same server. Editors manage the
content on the same system where visitors consume it.

Management and delivery are simply two sides of the same software.

Decoupled CMS

In a decoupled system, management and delivery are decoupled(separated) from one another.

Content is managed in one environment and then published to a separate environment.

Management functions are taken care of in a “repository server” and the delivery of the content takes
place in a “publishing server” or “delivery server”.

Published content is transported to an entirely separate environment, which may or may not know
how the content was created or how it is managed.

Benefits of Decoupling

 Security, stability and some editorial advantages, as editors can make large scale of changes
to the content without affecting the publishing environment
 Ability to publish to multiple servers without the need to install the CMS on each which lowers
the licence fees, in the case of commercial CMS.
 Ability to publish to highly different environments (multiple data centres on multiple
continents)
 Delivery environment could be running on an entirely different technology stack than the
management environment.
Disadvantages of Decoupling

Published content is separated from the repository which makes “live” features like personalization
and user generated content(UGC) more complicated.

To address this, the CMSs are now moving toward publishing content into companion software
running on the delivery servers that has some level of knowledge of the management CMS and can
enable content delivery features.

Installed vs Software-as-a Service(SaaS)

More IT infrastructure is moving to the cloud.

More vendors are now offering hosted or SaaS solutions more often.

For hosted or SaaS, it means the organization should not stress about the operation of the CMS or any
storage facilities (or servers). The organization just have to pay the hosting fee. For example, ethuto
is managed by the vendor who created it for the university. The vendors always update their storage
capacity to handle all content created by either lecturers or students. The university only pays the
hosting fee.

Code vs Content

Source code is usually created and managed in one server known as source code management server.
It is tested on a separated server known as test or integration server prior to launch.

The source code is deployed so that it can generate a setup that will be installed on any machine.
When you download a software, it comes with a setup file (executable file) that you click to install

On Android mobile phones, the setup is known as “apk”.

Content will always change more than the code does. Code changes only when there is a bug or when
trying to change how features or content is displayed.

For a website that is built using static HTML, when content changes, code should change.

Content in a coupled management system

Content is modified or developed in a production CMS and from there, it will be published.

Content in a decoupled management system

Content is created and or modified in one environment (content environment), then is published to
test sandbox environment where it is reviewed for accuracy, then published to the production
environment.

In a decoupled management system, content and code are treated in the same way in a sense of an
existence of code environment, testing environment and launching/production environment.
Code vs Configuration

Many features in CMS can be implemented through developers writing a code, either core code or
templating code or editors and administrators working from an interface.

For example, Joomla comes with its website templates (Protosta and Beeze3) that are coded by the
vendor. On your Joomla, click Extensions, then Templates.

We as administrators can improve the functionality of Joomla by downloading different website


templates (CloudBase, Persona,Green Planet and many others) to customize the look and feel of our
websites, or we can download different article editors such as JCE Editor which provides more
functionality than the current editor.

Editors and administrators are limited to the functionality that has been exposed from the CMS
interface, which varies greatly depending on the system

Some systems allow minor configuration options to be set, while others have elaborated module and
plugin architectures that allow new functionality to be created from the interface on a running,
production system.

Joomla is among CMSs that provides wide range of functionality. There are many templates that users
can install to optimize the website development.

Unidirectional vs Bidirectional publishing

Some CMSs are like newspapers, they are intended for a small group of editors to create and publish
the content to a large group of visitors who cannot respond back.

Way before, visitors didn’t have accounts on websites. They couldn’t create “profiles” or have
“discussions”

Unidirectional Publishing- Organization is always pushing content “outward” to the consumer

Bidirectional Publishing- The consumer/viewer can sometimes push content “backward” to the
organization (by posting a comment for instance)

Content coming from the user is known as User Generated Content(UGC). Some websites have limited
UGC, while others are built around it.

UGC is stored in a delivery environment rather than repository, as it’s considered “lesser” than that
created by internal editors, and less likely to require editorial process or management.

Chapter 3 (Acquiring a CMS)


CMS integrator - a developer or firm that installs and configures CMSs.

In order to start working with a CMS, you need to get your hands on one of the following.

Software- Which CMSs are available from the vendors

CMS integrator- is a firm that helps with the installation and configuration of the CMS. CMS integrator
can also be a vendor that sells a CMS. The integrators sometimes introduce you to the CMSs that they
are comfortable with or where they will get discount from the vendor. You need to be cautious when
dealing with the integrators because you might end up with the CMS that doesn’t suit your needs.
Selection Consultant- Consultants will help you to select system based on your requirements and
desired features, presumably free from influence or bias. However, it might cost too much to go for
selection consultant.

Paradigms of Acquisition (What CMS do you go for?)

Open source- You download and install

Commercial- You licence(purchase) and install

Software as a Service-You “rent” and use

Build your own- You develop CMS from scratch within your organization

Open-source CMS

WordPress, Drupal and Joomla are open source systems.

CMS Hosting

Some open source CMSs are very ease to host on commodity shared hosting accounts costing less
than $20 a month.

Other systems require more libraries, high computation power, and permissions than the average
hosting accounts offers, and therefore required self-hosted environment with complete control.

CMS integrating (installation and configuration)

Some systems are mature enough to have significant documentation and bootstrap installers that can
help you with the installation of the CMS.

Given the lack of licence fee, open source systems are used quite often in smaller projects or by smaller
organizations that don’t have budgets to pay for licence.

Open-source systems lack professional support (which is sometimes available at cost) and the lack of
open-source community’s ability or willingness to solve more complex questions or problems.

Business Models of Open Source Companies (How are they creating ways to make money)

To pay bills, companies behind open source software operate on one or more of the the following
models

Consulting and integration

 No one knows the CMS than the company that builds it. It’s quite common for
vendors to install and configure (integrate) their own software from start to finish
or provides some higher level consulting services with which to assist customers in
integrating it themselves.

Freemium

 The basic software is free, but a paid option exists that allow access to more
functionality. To manage larger volume of content, the organization must pay a
certain fee.
For example, on Joomla, you cannot create more than 10 websites, and the storage
capacity is minimum. Therefore, to have more functionality, you have to pay a
certain fee.
 Sometimes a free product is a trial version meant to steer users toward paying for
the full product.

Hosting

 Many vendors offer “managed hosting” platforms for the open source systems they
develop. There are fees that are paid every month by whoever hosting on their
environment.

Joomla manages hosting environments and they provide less storage capacity, if you
need more, then you will have to pay a certain fee every month.

Training and documentation

 Open source software often lacks in documentation. Professional training can be


helpful. Many vendors will offer paid training options, either remote or inter person
(send someone to offer the training).
 Less commonly, some offer paid access to higher quality documentation

Commercial licensing

 Depending on the exact licence, changes to open source software might have to be
publicly released back to the community. Some vendors will offer paid commercial
licences for their open source systems to allow organizations to ignore this
requirement, close the source and keep their changes to themselves. In short, they
take Joomla source code for instance, modify it and commercialise it.

Support

 When community support falls short, professional support can be helpful and some
vendors provide a paid support option either on an annual subscription or a per
incident basis (If something occurs, then they going to charge you more than if you
took the annual subscription).

Additional Testing and QA(Quality Assurance)

 Some vendors offer a paid version of the open source software that is subjected to
higher “enterprise” level of testing and QA. In these cases, the free or “community”
version is presented as lightly tested and non-supported, while the enterprise(paid)
version is marketed as the only one suitable for more demanding implementations.

Commercial CMS
Why should you go for a licence software when there are available open source software

A commercial company presents itself as a more formal business entity than an open source
community, which is important to some organizations.

Commercial vendors generally adhere to a higher standard of quality and functionality as they have
to keep paying customers happy. They receive incoming revenue from licence fees to fund
professional development.
However, some open source applications are well developed and compete with commercial
applications. Joomla, Drupal and WordPress are among open source CMS that compete with
commercial ones.

Some Commercial vendors are terrible with QA and sell products that are riddled with bugs (full of
logical errors).

While the open source development community is obsessed with solving problems of content
management, the commercial world has moved on to content marketing, which is the tools and
features that help enhance your content once it is published.

Buying a commercial CMS doesn’t liberate(relieve) you from the costs of implementing it. You will still
need to find someone to install, configure and template your system.

In some cases, commercial vendors help with the integration of the software to customers. Otherwise
they have “partner networks” of integration firms who are expects in their systems and willing to
integrate the software on behalf of the vendor.

Licensing models done by the vendor

Commercial systems rarely come with a single tag price. Vendors usually have byzantine system of
formulas and tables to determine your final price, with the overall goal of forcing wealthy(well-heeled)
customers to pay more, while not losing smaller sales to customers with less budget. Therefore,
wealthy customers will earn more system features than those with less budget.

Here are the most ways to determine pricing

By Editor/User

The system is priced by the number of editors it can handle, either by seat or concurrent.

More rarely, the system is priced by the number of registered public users, but this usually only
applies to community/intranet/extranet systems where it is expected that visitors will be
registered.

By Server

The system is priced on number of servers in which it runs. Less commonly on number of CPU
cores. This is quite common as larger installations will require more servers and more
computing power. Thus extracting higher price tag.

With decoupled systems where the delivery environment is separated from the repository
environment, this can get confusing, do you pay for repository servers or delivery servers or
both.

By Site

The CMS is priced by number of distinct websites running on it.

By feature

The system is priced by add-on packages installed in addition to the core. Almost every
commercial vendor has multiple features or packages that can be added on the base system in
order to increase value and price.

By content volume
The system is priced by the number of content under management.

Most systems are priced by a combination of editors, servers, sites, by features, by content
value etc..

Software Subscription

Once you have purchased software, you are not done paying. One thing, you can always count on with
commercial vendors is the need to pay software subscription which is a continuing annual fee based
on the purchase price. Subscription is usually a percentage of the purchase price-typically 18% to 22%.

The benefits of annual fee are:

 On demand support
 Upgrades and patches as they are released
 Free licence for development and test servers
 License management, in the event you need to licence new servers or sites.

The fear that keeps customers paying subscription fees is that they might be stranded in some
situation with a problem that cannot be solved or critical security bug they can’t patch.

Vendors enforces customers to keep on paying subscription fee. If they stop, they won’t catch-up on
new packages coming up with subscription. If the university stop paying licence fee for MS Office, it
means the university will not find the latest MS Office release such as MS Office 2020.

Penalties may apply should a customer want to restart a subscription after they have stopped.

Software as-a-Service (SaaS)

This is considered as a simple and clear proposition: rather than purchase and install CMS, you simply
pay monthly fee and run your website inside a larger system managed by the vendor. You become
one of many customers running their websites inside the same system. This is known as “multitenant”
software whereas purchased and installed software is “single tenant”.

Single tenant- a home where one person lives

Multitenant- Apartment/flat where many people live

Saas takes care of hosting issues, servers issues and any other infrastructure issues. For instance, when
we create content and upload some videos and images on our Joomla, we really don’t care about the
servers where the content is stored and how it is manipulated and maintained. The Joomla vendor
takes care of that part for us. We don’t even know how many people also have Joomla accounts. All
we know is only our accounts and our information. That is “multitenant example”, we can only see
the rooms assigned to us, we don’t see other rooms for other tenants.

When you are a multitenant user, every time when a new version is released, you are the first one to
receive it.

Hosting- System already running on web. It runs on vendor’s server.

If you don’t want SaaS option, you can purchase the software and install it yourself. However, if you
don’t want to host it yourself, there are vendors who can host your system on your behalf. Therefore,
your system will run on their servers. However, there is annual or monthly fee that you need to pay.
If you are considering multitenant SaaS, several questions become important

Is it appropriate for your industry? SaaS systems tend to treat their tenants(organizations) in the same
way. So when vendors develop features, those features will be common for all tenants. However, to
be competitive, the organization may need features different from other tenants.

How much control do you have over the system? To what extent can you integrate the system with
other systems or to what extent can you inject your own business logic. Since systems are multitenant,
vendors are cautious of allowing significant customization because this might destabilize(threaten)
the larger system for other clients.

Some vendors can provide a sandbox environment where you can have more control to your system
(you can do more customization, add more features etc. without affecting the larger system),
however, the question still remains, how big and flexible is this environment? and wouldn’t it be much
better to run the system on your own.

Who can develop the website?

Some vendors might require that the template development and other integration be performed by
their own professional service group and more additional fees may apply. Alternatively, the
organization with the IT department, can build their own website using the vendor’s CMS.

If you part ways with the vendor, what happens to your content?

Can you export it? in what format? what about your templates which contain all of your presentation
logic? Can you get that information out?

Vendors in all software genres, are notorious for locking in customers, so they can’t leave.

Are you considering the CMS on its merits or just because it’s SaaS?

Don’t engage with a SaaS vendor solely because they offer their software as a service, especially if you
are not fond (in-love) of the software itself. Because changing to another vendor can be terrible
especially with your content.

Build your own

CMS can be built like any other software inside your organization. In some senses, a CMS resembles
any other data-driven application.

Common justifications of building your own CMS’

 An in-house software doesn’t require a licence fee.


 You will be an expert in the usage of the resulting system and you will not suffer a learning
curve for an existing system.
 You will only build the needed functionality avoiding software bloat and unnecessary
complications
 Building your own CMS might seem like an easy job, but getting into it might results into
challenges, like for instance, when editors begin asking features like versioning, multiple languages,
workflow, multisite management etc. These functions can be deceptively complex to develop
especially on a running system
 In-house development should learn how editors think before dwelling into building their own
CMS
 Eventually, developing the CMS itself begins to take more time than solving the organization’s
core content problem, which the CMS was originally needed to remedy.
 The in-house CMS is unknown outside the organization, resulting in an inability to find outside
contractors and creating a significant training curve for new hires.
 The in-house CMS is designed to serve the stipulated requirements of the organizations. When
the requirements need to change based on the requests from the editors, the software will need to
be modified to allow expansion. That maybe a difficult task which may result in having to rebuild the
CMS from scratch.

There are situations where in-house CMS is a choice

 When content model is very specific to the organization


 When the management needs are very simple and future plans development plans are
absolutely known to be limited.
 When the CMS is built by heavily leveraging existing frameworks to avoid rework as possible.

Questions to ask when considering the acquisition of a CMS

 Where will the final CMS reside?


 Are we hosting it ourselves, or are we going to have someone to host it for us?
 What is our capacity for a licence fee?
 Have we budgeted for continuing subscription costs in the years after launch?
 Do we have skills and capacity to build CMS in-house? Can we manage maintenance and
feature upgrades along with other workloads?
 Will the system under consideration meet the functional needs of our organization?

Chapter 4
(The content management team)
Primarily, members of the content management team can be divided into

 Editors
 Site Planners
 Developers
 Administrators
 Stakeholders
1. Editors
 Editors are responsible for creating, editing and managing the content inside the CMS
 All editors are not created equal, they might have wide variety of capabilities
 Editors’ roles can be divided into
 By Section/branch/location
Editors might be able to edit only a subset of content on the website, whether that might be
a section, a branch on the content tree, or some other method of localization.
 By Content Type
Editors might be able to edit only specific types of content. They might manage the user
profiles, employee profiles which appear in multiple department sites, or manage company
news articles, regardless of the location. Some editors based on their expertise, may not be
allowed to perform some certain advance level editorial tasks.

 By Editing interface

Editors might be limited by the interface they are allowed to use. In larger installations, it is
common to channel certain editors through specialised, custom built interfaces designed to
allow them to manage only the content under their control.

Power-Editor

Power-editor can perform all content operations across the website with no limitations. This
person can perform multiple duties as a site administrator, trainer, subject matter expert, and
all-around CMS champion inside the organisation.

Other Specific Editorial roles

Approvers

This role is responsible for reviewing submitted content, ensuring it’s valid, accurate, and of
acceptable quality and then publishing the content.

Marketers

This role is responsible for reviewing content for marketing impact and managing the
marketing value of the entire website. It requires an understanding of the marketing and
analytics features of the CMS.

UGC/Community managers

This role is responsible for verifying the appropriateness of content submitted by users (User
generated content) such as user profile information and blog comments.

Translators

These editors are responsible of translating a content from one language to the other.

Site Planners

Site Planners are responsible for designing the website the CMS will manage. Most of their
involvement will be prior to launch, with sporadic further involvement as the site develops
and changes over time.

Content strategists

Plan how content will fit into a website. This role is responsible for designing content, both
holistically and tactically.

User Experience designers and information architects

These roles are responsible for organising the content and designing users’ interaction with
the website. They will need to understand how the CMS organises the content and what
facilities are available to aggregate (group content) and present content to end users.

Visual designers
This role is responsible for the final high-fidelity design of the website as opposed to the lower-
fidelity prototypes and user flows provided by previous roles.

2. Developers

Developers are responsible for installing, configuring, integrating, and templating the
CMS to match the requirements of the project. Like editors, not all developers are created equal.
Under the umbrella of development, there are multiple categories of tasks that define different roles:
CMS configuration

This role is responsible for the installation and configuration of the CMS itself,

including the establishment of the content model, creation of workflows and

other editorial tools, creation of user groups, roles, and permissions, etc. This

work is done at a fairly high level, through facilities and interfaces provided by

the CMS.

Backend (server) development

This role is responsible for more low-level development performed in a traditional

programming language (PHP, C#, Java, etc.) to accomplish more complex

content management tasks, or to integrate the CMS with other systems.

Frontend (client) development or templating

This role is responsible for the creation of HTML, CSS, JavaScript, template logic,

and other code required to present managed content in a browser. This developer

needs only to know the templating language and architecture provided by the

CMS, and how it integrates with HTML, CSS, and JavaScript.

Administrators

Administrators are responsible for the continued operation of the CMS and the associated
infrastructure. Within this group are several subroles:
• CMS administrator: This role is responsible for managing the CMS itself, which
includes user and permission management, workflow creation and management,
licensing management, and all other tasks not related to content creation.
• Server administrator: This role is responsible for the maintenance and support
of the server(s) on which the CMS runs and/or deploys content. This is a traditional
IT role, and the server administrator often has no understanding of the
CMS itself other than the basic architecture required for it to run without error
(operating system, runtime framework, web server, etc.). This role provides support
when there’s an underlying server issue that prevents the CMS from functioning
correctly.
• Database/storage administrator: This role is responsible for managing the database
server and storage networks that hold the CMS content. This administrator needs very little
understanding of the CMS, other than the file types, sizes, and
aggregate volumes that will need to be stored and backed up.
3. Stake-holders

The stakeholders of a CMS project are an amorphous group representing the people
responsible for the results that the CMS is intended to bring about. Stakeholders are
normally business or marketing staff (as opposed to editorial or IT staff) who look at
the CMS simply as a means to an end.
In general, stakeholders are looking to a CMS to do one of two things:
• Increase revenue.
• Reduce costs and/or risk.

Stakeholders often have no direct contact with the CMS, and they might not
care about the specific features the CMS enables—their only goal is the result the
CMS can manifest.
Stakeholders are usually the decision makers on a CMS purchase who control the budget from which
the project will be funded.

Chapter 5 (CMS feature analysis)


 Feature by feature analysis and comparison is hard. This means comparing different features of a
CMS is hard and is subjective because everyone has his/her own requirements or expectations or
ways of judging.
 Useless feature to you is a useful feature to someone else
Fitness to purpose
 Content Management systems exist in clear relation to a problem they need to solve.
 Their competence can only be evaluated in terms of their distance from what is needed for your
particular situation.
To select right CMS, what factors should you consider?
 The type and goals of the website
 The shape of the content being managed
 The sophistication (the literacy level) of the editors
 The business environment, decision-making process and budget.
What is meant by fitness to purpose?
 The capabilities of a system (“fitness”)
 The requirements under consideration (“purpose”)

“Do everything” syndrome


 Content Management system, like other software, tend to try to include as much functionality in
one package as possible.
 Vendors want to win as many clients as possible, so, they tend to build systems that will handle
everything.
 They bombard their CMSs with massive number of features.
 The more features are piled into a system, the complex the system becomes.
 As systems become more complex, they tend to become more generic. A system tends to do
everything, tends to do nothing well.
 We as people we have a habit that difficult problems require complex solutions. In most cases that
is not the case.
The whole is greater than sum of its parts
 Content management systems are complex and full of moving parts. Therefore, the parts are not
logically combined.
 It is uncommon for a system made up of poorly designed features to rise above the rest. But sadly
it is common to have features that are intrinsic (well performing) whenever evaluated individually,
but just don’t quite come together as a whole. This can be caused by poor usability in the
intersections between features.
 Another problem can be misplacement of priorities, when one feature is over developed compared
to others.
Implementation details matter
 The value of the CMS feature is not just in the final result. It also matters how the feature was
implemented.
 Just because a feature exists on a system, it doesn’t necessarily mean the feature was developed
right.
 Do not evaluate features based on their existence. Find out exactly how the feature is implemented
(test the functionality of the feature) and ensure that you will be able to use it to achieve the
expected result.
 Usability matters. Features are developed by programmers who tend to think more on flexibility
and sophistication to become competent (or to achieve advanced editorial tasks) than usability. As
such many editors will face the problem.
 Poor design can make features more complicated.

An overview of CMS features


Four basic features also known as core pillars of content management are required in some form to
manage the content at the most basic level
 Content Modelling
You need to model the structure of content and store your content based on the structure you
have modelled.
 Content aggregation
Organise content into groups and in relation to other content
 Editorial Workflow and usability
You need to enable and assist in the creation, editing and management of content within defined
boundaries.
 Publishing and output management
You need to transform content in various ways for publication and deliver the prepared content to
publishing channels.

Chapter 6 (Content Modelling)


 Content modelling is about knowing the content you need from the client, then structure the
format of the content to simplify the collection of it and or to minimise errors.
 If you know the type of content you want from the users, then it can be easily modelled as shown
below. For example, date of registration can be modelled as YYYY-MM-DD(A user will need to
provide a year first, followed by a month and date), for type of content such as “gender” or
“religion” or “qualification” or “country” you can show a combo box and allow user to select from
list of possibilities. As such, you reduce data input errors that may occur (That is content
modelling)

 The above collected content can be easily stored in a database and can be easily manipulated.
 The core goal of any CMS is to accurately represent and manage your content.
 It needs to know the dimensions of the content to accurately model it.
 Content modelling is about the capability of a CMS to know how to collect the content, how to
store it, manage it, search it from the database, and provide editing tools appropriate for that
content.
 Content modelling is often done poorly, either through mistakes in judgement or because of built
in limitations of a particular CMS
 Content modelling is the foundation on which a CMS implementation is built. Mistakes made
here will breed (generate) multiple future problems that can be tough to recover from.
 CMS are usually built on top of relational database. Every CMS has a database where it stores the
content. All articles(pages) or any form of content that you are creating, are stored in a database.
 Reification is the term given to the transformation of a logical idea into a concrete data structure.
 Reification is a process of moving from an abstract and unrestricted idea of something to a
concrete representation of it together with its limitations and restrictions.
 Reification can also be about breaking a given paragraph (address) into manageable chunks of
information, to enable easy or simple manipulation of it.
Address Reification of Address
• Street number: 123
123 Main Street
• Street direction:
Suite 1
[none]
New York, NY 10001
• Street name: Main
• Street suffix:
Street
• Unit label: Suite
• Unit number: 1
• City: New York
• State: NY
• Postal Code: 10001
From the first address it will not be possible to query it ( for example, asking a machine to extract only
the city from the given address, it will not be possible), because it just a paragraph that is not broken
down into manageable elements. However, the modelled address (Reificated address) will be easier
to query since it is in a manageable form.

 However, the reification process that is done too much(structuring content too much/ breaking it
down too much) can damage the editorial process. Imagine if you break down the
Registration Date and create a column for year, column for month and column for date. That will
be unnecessary and it will be difficult to retrieve that kind of information, for example the system
will first have to get the year, then month then a day, after that concatenate them (combine them)
and then present it to the user. That is a hell of a work (too much computation)!!!!

Data Modelling and Content Management


 Every CMS has a content model. Even the simplest CMS has an internal, concrete representation
of how it defines content.
 Let’s think of content modelling of Joomla, how do you create articles, what tools are available to
help in creating articles. The articles that you are creating are treated as objects to ensure
flexibility. These articles are also stored in a database.
Separating content and presentation
 Web page is a presentation of your content. It is a location where your content is presented.
 Publication locations such as web pages, WhatsApp, Facebook, email etc. are often called channels.
 The media that is published to a channel, might be referred to as a rendition or a presentation of
content in a particular channel.
 When you are watching news on TV, the content (images, words, videos, audio) written and
prepared by editors is presented to you on TV.
 Differentiate between channel, media and content based on above context.
 Relationship of a content to publishing media/channels is one to many. One content can be
presented to different channels or different media.
 Media can be generated from one content. Considering “Animal farm” story that can be presented
into an essay, a play, a speech, even a drawing.
 Binding your content to a specific presentation location(media/channel) limits what you can do
with that content. Each media has its own restrictions.
Advantages of the content that is well structured and not bind to a specific location are:
 Templating is easier: Having content in smaller chunks allows you to use it in more specific ways
when templating. If author’s last name is stored separately from author’s first name, then one can
decides to display author’s last name first followed by first name. There is too much flexibility.
 Mass presentation changes are possible: If data is well structured, it increases level of flexibility
that can accommodate massive presentation changes. For example, making changes to author’s
biography or headshots not to display on a sidebar but at the bottom of thousands of articles
written by that author.
 Content can be easily presented in other context : When you have isolated summaries, these can
be posted in other contexts with shorter length requirements, or content can be shortened for
environmental limitations such as mobile device.
 Editorial usability is improved: If content is well structured, that can give editors an opportunity
to work om small portion or pieces of information that make up the content. Therefore, huge
content can be broken down into manageable units or sections and be integrated back together.
The “Page-Based” CMS
 CMS manages the pages not the content directly. Instead they manage pages that holds the
content. Therefore, CMS stores and treats the pages as objects.
 Just because a CMS manages pages does not mean the content in those pages cannot be used.
Even if your CMS offers you a content type called News Article page, that does not mean the
content cannot be extracted and purposed into something like RSS feeds and Web APIs.
Defining a Content Model
 A content model is defined by three things
Types, Attributes and Relationships
Content Types
 It is a logical division of content by structure and purpose.
 The “is a” is used to define the content type
Student “is a” person
Lecturer “is a” person
Therefore, Student and Lecturer might have different information such as student Number and
staff number, however they are inheriting the same properties from the Person class such as a
Name, Age, Gender. (This is example of inheritance that can be related to content types)
 When working with content, you mentally group the content based on their purpose
 Al content stored by a CMS will have a type. This type will almost always be selected when the
content is created (remember articles and categories in Joomla)
 Content is categorised based on its purpose
 In Joomla, every time when you create articles, you have to specify the category for that content
 Joomla will group your articles based on the categories you have assigned. This will enable simple
management and manipulation of content.
 When the CMS knows the type of content you are working with, it will be able to provide an
interface / tools for that type of the content. It is usually difficult to change the type of a content
object once it is created. Consider that the Person object has been created from a Person Type or
class, now you, have to change the Person object to a Car Type. That is “impossible…”
Difference between a content type and content objects
 Content type is a class or category of content object(s)
From one content type “Person class” you can create many Person’s objects. You can create a
student, lecturer, child, girl, boy, mother, father, employee, doctor, patient, learner etc… All these
objects are all “Person”, so they will inherit all characteristics a person has such as “talking”,
“walking”, “thinking”, “eating”,” sleeping”, “drinking” and many more. However, they will also
have unique characteristics that make them who they are. What makes a student a student and
what makes a patient a patient?
 Multiple content objects can be created from one content type.
Attributes
 Are nothing but properties or fields that explain the content type.
For example a Person class or type will have fields or properties or attributes that explain the
Person such as “ID” “Name”, ”Age”, “Address”, “Gender”, etc.
Multiple benefits of organising your content into types
 Structure: Different content or content types require different information/attributes to be
considered valid
 Usability: Most CMSs will automatically create an editing interface specific for the type of content
you are working with. For example, when you are editing the Hire Date in an Employee Bio, the
CMS might render a date selection drop down menu.
 Search: Finding all blog posts is quite simple when they all occupy the same type.
 Templating: For two types of different information, the CMS will have different methods to output
that information.
 Permissions: You can limit access to the content based on type. For example, HR personnel have
access to Employee Bio including their salaries.
Switching Types of Content
 Switching the content type of a content object is logically a problem. For example, converting the
Employee Bio to News Release is impossible. News Release do not have attributes such as
Employee Last Name, Employee First Name. If you enforce to switch the content types, it means
other bits of information will be thrown away.
Attributes and Data Types
 Content Types are wrappers around smaller pieces of information. Employee Bio is simply a
collection of a smaller pieces of information (first name, last name, age, salary, hire date etc. “These
are attributes also known as fields or properties of Employee Bio”)
 Content type is a class. Each class has attributes or properties to help to create the objects.
 Smaller pieces of information are commonly referred to as attributes, fields or properties.
 An attribute is the smallest unit of information in your content model, and it represents a single
piece of information about a content object.
Consider the Lecturer table presented below:
Lecturer EmpNum and Lecturer Name are fields or attributes that make up a Lecturer class (These
are column headings).
From the Lecturer class, we will be able to create multiple objects that will have all the attributes
Lecturer type/class has. In this case, we have created four Lecturer objects (or four records).

Therefore, a table is a representation of a class, column headings represents


attributes/properties/fields of a class and records or rows represent the objects that are created
from the class.

 Each attribute will be assigned a datatype which limits the information that can be stored within
it.
Common Basics of Data Type
 Text, Number, Date, image or file, reference to other content, etc.

Employee Bio
Field Name Data Type

First Name: short text

Last Name: short text

Hire date: Date

Emp Photo: image

Biography: Rich Text

Manager: Reference to another Employee Bio object.


What are the importance of specifying datatypes

 Validations
CMS can ensure information you enter is valid. In an example of a Manager being an attribute in
Employee Bio(Each employee has a manager), CMS will ensure that Manager object is a valid
reference to another Employee Bio object. Remember that Manager is also an Employee. The CMS
may warn you against deleting the object which there are still outstanding references to it.

On the tables below, we have Manager and Lecturer (objects). These objects inherit from Employee
class or type (Lecturer and Manager are both university employees). Each lecturer is supervised by
a manager. Manager can manage(oversee/supervise) one or many lecturers. So if a manager
resigns, the manager will be deleted inside the Manager table, but, before the manager can be
removed, all references of the manager inside the Lecturer table have to be removed. For example,
if “Resh Moipone” resigns, her information in Lecturer table must also be removed to avoid data
inconsistency. The CMS will warn you when trying to delete the record that is linked to other
records in another table (that is referential integrity).

Manager table Lecturer table

 Editing interface generation


CMS can render different interface elements to enable you to easily work with different attributes.
For example, CMS can display text editor when you are working with rich text attribute. This is
where you place your content inside the Article

 Sorting and filtering


The CMS understands how to use different datatypes to sort and filter content. By filtering and
sorting by Hire Date, you could locate all employees hired by a specific date.
Built-In Attributes

Most CMS have built-in attributes to help you:

 ID- Every content object has an identifier that uniquely identifies that content
 Title or Name: The title field is displayed for you to name your content
 Body: Most commonly the rich text field is available for the content body
 Teaser or summary: Some other systems will provide a smaller summary field.

Example of attributes already provided when creating articles or categories

Attribute validation
 Validation is important to ensure that the values are entered correctly.
 Basic validation is enforced by the data type. In some other situations the validation need to be
extended. For example, having a method that will validate if the four digits entered represent a
year or not. You can set minimum and maximum to validate the range. Employee age or product
price or product quantity cannot be negative. So, they have to be validated.
Using attributes for editorial metadata
 Attributes are also used to store administrative or “housekeeping” information
 Metadata means “data about data” which means data that is not the primary purpose of the
content object, but serves some secondary purpose.
 Metadata does not refer to the content object directly, but rather is about the management of the
object.
Content Type inheritance
 One type of content (child object) inheriting from another content (parent object). Given that the
parent object has attributes such as title, body and summary. A child object will inherit all those
attributes from the parent.
 A child object will also have its own attributes specific to its functionality.
 Importance of inheritance is that it simplifies content model in a way that it reduces duplicates of
attributes that can be easily referenced from one object to the other.
 Inheritance minimises overworking of rewriting the same attributes for each content that can be
referenced from another content
 Inheritance allow data reusability which improves data management
 When you make changes to the parent content, all the changes will reflect to the child content
inheriting from the parent.
 Below is the page that has title and body, and inherits other attributes from other pages

 In an above context, a child has three parents (Blog Post, Help Topic and Event) and a child is
inheriting what parents have.
Partial Type Composition
 Instead of simple inheritance, there is an ability to combine multiple types (partial types) to create
new type.
 A complete article page is made up of small components or attributes from different content types.

 An Article above is composed of or made up of Content Header, Article Body and Author Bio
Content Embedding
 One content can be embedded(attached) into another content. For example, image gallery can be
embedded into rich text content.
Rich-text embedding
 Image gallery type can be treated as an element that can be embedded in rich text.

 The importance of embedding is that one content type can be represented inside another content
type. One content type houses other contents. For example, rich text content houses image gallery
content.
 Image gallery as well is an element that houses list of images.
 Having an image gallery inside the rich text it means, all the images inside image gallery will be
displayed interchangeable.
 One Image gallery element can also be used on multiple pages. Remember each article or a page
has a rich text attribute, where all the content is written.

Blocks, widgets and regions


 Instead of having content inside another content as discussed earlier, other components or content
types such as blocks or widgets can be stacked into structures called lists.
 List also known as an array hold one or more elements which are rendered individually from top
to bottom at designated locations on a template.
An example is shown below

A list of widgets stacked into a template region called “Sidebar”


Relationships
 Modelling content is of two varieties.
 Discrete: Describe the type of content internal to itself (based on features or behaviour or
properties it has)
 Relational: Describe the type of content by how it relates to other content.
Considering relationship between Lecturer and Student objects. The relationship is many to many.
One lecturer can lecture many students, and one student can be lectured by many lectures.
 Consider relationship between a student and learning subjects. Relationship is many to many. One
student can register many subjects (WEB215C, SOD22ES, GID22ES etc ) and one subject can be
registered or enrolled by many students.
 On your own, figure out primary keys and foreign keys in one-to-many and many-to-many
relationships. Also learn what is a bridge entity.
Content Composition
 As it was discussed earlier, some content object is composed of other content objects working
together in a structure.
 A logical piece of content is composed of multiple objects.
 One article might be built-up of multiple articles.
Content model manageability
 Any content model is a balancing act between complexity, flexibility and completeness.
 The more the CMS tries to account for many things or many features, the more flexibility and
simplicity are reduced and the more complexity increases.
 If you as a programmer, do not have ability to inherit content types, then reduce the use of content
types.
 The more content types you have, means more training for editors, more templating and an
increase likelihood of having to switch content types after creation (which is deemed complicated
and impossible)
A summary of Content Modelling features
 What is the built-in or default content model? How closely does this match your requirements?
 To what extent can this model be customized?
 Does the system allow multiple types?
 Does the system allow content type inheritance? Does it allow multiple inheritance?
 Does the system allow for the datatyping of attributes?
 What datatypes are available to add attributes to types?
 What value, pattern, and custom validation methods are available?
 Can you add custom datatypes to the system based on your specific requirements?
 Does the system allow multiple values for attributes?
 What editorial interfaces are available for each datatype?
 Does the system allow an attribute to be a reference to another content object?
 Can the reference be to multiple objects? Can it be limited to only those objects of a certain type?
 What options are available for content embedding and page composition?
 Does the system allow for permissions based on types?
 Does the system allow for templating based on types?
 How close can this system get to the (usually unreachable) ideal of a custom relational database

Chapter 7
Content Aggregation
 Content Aggregation is all about putting smaller pieces of content together to work as a whole. The
selection, combination and ordering of the parts is more valuable than the parts themselves.
 Content often becomes more valuable when combined with other content
 Combination of content is known as content aggregation
Shape of Content:
 Refers to the general characteristics of a content when is aggregated(combined) and when is
considered against the pattern of how users or content consumers use it.
Different shapes of Content
 Serial: This type of a content is organised in serial “line” ordered by some parameter.
Blog posts are good example of serial content
A glossary or dictionary is also considered serial, ordered alphabetically by title.
Below is a good example of serial content (News Release) ordered by a Date parameter
 Hierarchical: This type of content is organised into a tree. There is a root content object from the
top that has multiple children, each of the children may also have children

Products

Product 2
Product 1

Product 1.1 Product 1.2 Product 2.1 Product 2.2 Product 2.3

Product 1.1.1 Product 1.2.1


Product 2.1.1 Product 2.1.2

 Websites are generally organised into a tree


 There is a primary navigation followed by secondary navigation and so forth.

Home Blog Products About Us Contact Us

Blog 1 Blog 2 Product Product About Contact


Secondary Navigation ---> 1 2 us 1 Us 1

Third Navigation, fourth navigation will proceed based on children each object has

 Tabular: It has a clearly defined structure of a single dominant type and is usually optimised for
searching not browsing. It will be difficult to browse through 100 records searching for a specific
record.
Excel worksheet is a good example of a tabular content
The above table displays an employee table with fields or properties or attributes. The records
represent employee objects. On the table above we have 8 attributes (EmpNo ,EmpName, Job,
Hiredate, MGR, Salary, Comm and DepartmentNo) and 14 records or 14 employee objects or
employees.
 Network: Content objects are tied together using links

Object 2
Object 1

Object 4
Object 3

 Relational: This type of a content has a tightly defined structural relationship between multiple
highly structured content types. In simple form tightly relationship between tables.

In relational database the relationships between objects are enforced

For example, Customer table has a primary key Cust_number, this Cust_number is a foreign key in
an Order table. Because one customer can order one or more products. Similarly, to the Product
table which has a Product_id as a primary key and a foreign key in an Order table. This is because
one or more products can be ordered by a customer. One order can list all products purchased by
a customer. It is also possible for one customer to make more than one order at different times a
day.

Hence, both Order_number, Cust_number and Product_id they make what is known as composite
key. It is unacceptable to have duplicate composite keys; hence, the system will throw an error.
(CMS is made up a database and therefore it is vital to understand database…Read more about a
primary and composite keys)
Tbl_Customer Tbl_Product

Tbl_Order

 When you remove the customer in a customer table, you will be enforced to first remove all
orders that were done by that particular customer in an Order table to avoid data
inconsistency. This is similar to when you remove a product in a Product table.
 It is impractical that removed customers or products from customer table or product table
exists in an order table and yet they don’t have a reference.

Different CMSs have different level of ability in handling different content shapes

 WordPress is good for serial content


 MediaWiki is designed to handle networked content
 Webnodes can handle both tabular and relational content

Content Geography

 Content geography is an existence of a content relative to other content.


 Content geography focuses om how content exists “in space” or how it is organised relative to the
content around it. For example, product A, B and C content pages are expected to exist in Product
folder or menu. Product A.1 is expected to be under Product A folder, Product B.1 is expected to
be in Product B folder etc. This is a hierarchy explained above.
 Most common example of a geography is a “content tree” where a content is organised as a
parent/child structure.
 Content geography is about main way a CMS organises its content.
 All content is created in some location. You add a content as a child of some other content object.
Content might have siblings depending on its location and eventually have descendants(children).
 Benefit of content geography is that content becomes easier to search. For example, if you are
searching for product B2.8, The first thing is to start searching inside Products folder or menu, then
go to Product B subfolder, then go to Product B2 subfolder, under Product B2 subfolder, you will
find Product B2.8. The Product B2.8 is a sibling to Product B2.1, B2.2, B2.3 etc.
 Something to take note of: A folder is a container used to store a content in. But the folder is not
itself a content object. Content objects are not children of other content, or siblings to other
content. Instead, we have folders and subfolders in which content objects (in most cases are pages)
are placed.

 Considering the following figure below,


 Home, About, Our Projects, Board of Directors etc. are not content themselves but folders where
content objects or pages will be saved.
 To say a page stored in Board of Directors subfolder is a sibling to the page stored in History
subfolder and share the same parent About, this does not mean literally, it is just that the concept
is based on location where they are stored.
Editorial Limitations on Geography
 This is about limiting editors’ accessibility and manipulation of content based on their roles or
capabilities.
 Some editors might only be able to create certain types of content that can fit into the geography
in a tightly controlled way without affecting other contents.
 To facilitate the editorial limitation, you as a programmer you can create a simple GUI (Graphical
User Interface) for editors to work with particular content.
 For instance, the receptionist who manages lunch menu on the company’s intranet, might only see
a simple textbox that allows him/her to enter some text for the next day’s menu. Behind the scene,
this GUI places the content in the correct location relative to the larger geography without the
editor being aware of.
Secondary Geographies: Categories, Taxonomies, Tags, Lists, Collections and Menus.
 Menus, categories, taxonomies and tagging are popular ways to organise content.
 Content objects can be assigned to a category or tag, which gives relationship with other content
in that category or tag, much like a content in a folder or child content under a parent.
Tyranny of the Tree
 Content trees are very common and well used by many CMS, but they can be problematic when
large portions of functionality are bound to a single a tree.
Aggregation Models: Implicit and Explicit
 Two major models for building aggregations are Implicit/internal and Explicit/external
 Implicit/internal: relationship between objects resides within objects themselves. When you
create the page for Product X under Products page, you have created a relationship. Those pages
are inextricably (completely/intimately) bound together as parent and child. In this type of
relationship one object has another object in it. Or one object is made up of another object.
Explicit/external: The relationship between the two or more content objects does not reside in the
objects themselves. The relationship is based on folders or locations where objects or pages reside.
So, if you remove those folders, there is no form of relationship between objects.
 In external aggregation, objects relationship is explained by some sort of folders or locations where
they exist.
Should your aggregation be a content objects (Implicit)?
 It is important to make aggregation to become internal/implicit to increase more functionality
among objects.
 Let’s consider the Topic List example below. The Topic List is an object that has the following
attributes: Title, Intro, Date_Created and Topic which is an object reference of Topics class
Topic List Topics Students_topic
Title: Students_topic Title:
Intro: Lecturers_topic: Intro:
Date_Created: Resources_topic Description:
Topic
Lecturers_topic
Title:
Intro:
Description:

Resources_topic
Title:
Intro:
Description:

 In the above example, Topic List object has a topic object which references Topics class. The Topics
class has three objects (Students_topic, Lecturers_topic and Resources_topic). Each object
reference has its own attributes Title, Intro and Description. This is an example of Implicit
aggregation where one object is made up of other objects and those objects are also made up of
other objects. There is internal/implicit relationship between objects.

 Let’s consider another example.


Student Books Web215C_book

Std_number: Web215C_book Author:
Std_name: SOD215C_book: Title:
Book PSA115C_book ISBN:

SOD215C_book
Author:
Title:
ISBN:

PSA115C_book
Author:
Title:
ISBN:

 In the above example, a student object has its own properties (std_number and std_name) and a
book which is an object reference to Books class. Each book inside the Books class has its own
properties (Author, title and ISBN number). Also take note that a Book has an Author object. This
author object has its own attributes such as author id, name, etc.
Benefits of Internal aggregation
 Permissions: We could allow only certain editors to manage certain topics such as students’
matters.
 Workflow: Changes to a given topic might have to be approved.
 Versioning. We might be able to capture and compare all changes to a particular topic.
 URL addressability: This aggregation has a URL from which it can be retrieved.
Static vs dynamic aggregation
 Aggregation can be static, which means an editor has purposefully or randomly selected specific
content objects from a database to include in the aggregation.
 Aggregation can also by dynamic, the content of the aggregation is determined at any particular
moment by specific criteria.
 Static aggregation do not have any form of criteria or rules associated with selection of objects.
 In dynamic aggregation, there is a protocol to be followed/criteria to be followed when content
objects are grouped(aggregated)
 Static aggregation can be a list of pages from Employee handbook that an editor has purposefully
selected for review by new employees. If there is a new page that need to be added on the list, it
can be done manually by the editor.
 Dynamic aggregation might be a list of all pages from employee handbook.
Search criteria in dynamic aggregation
 When creating dynamic aggregations, editors will be dependent on the criteria that the CMS allows
them to use to search for content, and the graphical user interface that the CMS gives them to
simplify their search.
 Editors might be able to search their content based on the type of the content, based on the date
content was published, based on the author who wrote the content or by property value of the
content
 Sometimes when the CMS do not give enough attributes such as type, author, date of the content
to it can be quite frustrating to search the content.
Variable vs fixed
 In static aggregation there is no search textbox where an editor has to provide an input to search.
An editor can just browse through the content and select any content that they may want to group
or aggregate.
 Search is a classic example of dynamic variable aggregation. What is displayed in a search results
page depends primarily on user input-what the user searches for.
 The content objects or pages are aggregated based on Search criteria. For example, if there is a
following search “Employees that are of age 40 and above who stay in Thabong”, All the employees’
objects/records will be listed based on the searches made. That is dynamic aggregation based on
criteria (Employees objects are grouped together based on the search criteria done by an editor).
 In static aggregation an editor can just select employees that they want with no search or any form
of criteria to follow.
 An aggregation can also be performed by the CMS itself without human intervention or
involvement.
 In this instance, an aggregation is performed by the system based on user behaviour. For example,
a side bar widget displaying recommended articles. The system or CMS examines the content
consumed by the visitor during the current session to determine similar content of interest.
 Below is a widget that is displayed while a user is searching more about smartphones. The CMS
learns the current session performed by the user and get some related content (articles) that the
user might also be interested on.
Manual ordering vs Derived ordering
 Let’s say the editor have searched all employees who are earning over R10000. So, manual ordering
is when an editor manually sorting or ordering the searched content pages/articles or objects
based on their attributes. For example, an editor decides to manually sort all searched employees
in alphabetical order based on their Surnames.
 Derived ordering is done by the system as it extracts the content based on the search query or
input. The search query can be associated with ordering request only if the content properties are
known. For example, an editor can search all employees who are staying in Hennenman sorted in
ascending order by Salary. In this case we know the content type (Salary) and we use it in sorting.
 It is rare to find arbitrary or static aggregation (one that is done by an editor when purposefully or
randomly selecting objects) that should have derived ordering. This is because objects were
randomly selected and not searched by the system.
 However, once the objects are listed from arbitrary aggregation, an editor can decide to manually
order these objects based on their attributes (Last Name, First Name, Salary, Age, Address etc..).
To manually order over 100 objects is time wasting and ineffective process, hence, it is important
that system can facilitate this process despite whether the aggregation was static (done manually
by an editor) or dynamic (done by the system from the search input).
 The dynamic aggregation that is manually ordered is logically impossible. This is because
aggregation and sorting of content are performed by the system. On top of that, the content is not
known and has to be searched. So, you cannot manually sort the content you don’t have.
Type Limitations
 Is about limiting the number of content types that an editor can use to aggregate their content.
 This will help in situations where aggregated content has to conform to a specific output format.
Quantity Limitation
 It is less common but some aggregation can store more content than others and some systems
allow you to require a certain number of content objects, or prevent you from going over
maximum.
Permissions and publication Status filters
 System has to be able to filter the content objects based on permissions of the current user.
 Even though, an editor has prepared 10 objects for instance, not all objects will be observed by all
visitors taking into consideration their permissions (for example, a non-registered user can only
see three objects while registered users can see all of them)
 Whether aggregation done by an editor was dynamic or static, the system has to show different
content for different visitors based on visitor’s permission and publication status of the content
(for example a content or page or article can be set to display between two dates: start date and
end date)
Flat vs Hierarchical aggregation
 Many aggregations are simply flat, for example, our list of employee handbook pages. However,
other aggregations are often hierarchical. One content object can house or parent one or more
content objects. This was explained in examples above.
Interstitial aggregation
 Is about adding external content objects to fully represent/explain the properties of a current
content object.
 The figure below explains that Title “Committee Chair” in Committee Assignment class will make
sense only if the employee object is added to the class.
 If there is a title “Committee Chair”, the question that arises is “Who is the committee chair?”, then
the answer is “Mary Jones” who is an employee object is as committee chair. The second question
that arises is for “For which committee is Mary Jones charring?” The answer is “Mary Jones is
charring Christmas party Committee” which is an object from Committees class.

Employees Committee Assignment Committees

By Configuration or By Code
 Aggregation can be accomplished by non-technical editors working from the graphical user
interface provided by the CMS.
 Another aggregation tasks need to be handled by developers working with templating or the core
code of the system

A Summary of Content Aggregation Features


Here are some questions to ask about the content aggregation features of any CMS:
 What is the core content geography in use by the system? Does it have a master aggregation
model, into which all content is structured?
 Can parent/child relationships be easily represented?
 What abilities do developers have to aggregate content by code?
 What abilities do editors have to aggregate content by configuration in the interface?
 What secondary aggregations, such as categories, tags, menus, and lists, are available?
 Can editors create static aggregations?
 Are these aggregations flat or hierarchical?
 Can static aggregations be manually ordered?
 Can static aggregations be limited by type?
 Can editors configure dynamic aggregations? Based on what available criteria?

You might also like