Chapter 1 To Chapter 7 Theory Notes
Chapter 1 To Chapter 7 Theory Notes
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.
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).
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.
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
Software designed to manage a website intended for public delivery and consumption.
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.
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:
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
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
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)
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.
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.
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.
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.
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
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 is modified or developed in a production CMS and from there, it will be published.
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.
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.
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”
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.
In order to start working with a CMS, you need to get your hands on one of the following.
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.
Build your own- You develop CMS from scratch within your organization
Open-source CMS
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.
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
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.
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).
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.
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.
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
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%.
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.
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”.
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.
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.
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.
CMS can be built like any other software inside your organization. In some senses, a CMS resembles
any other data-driven application.
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.
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.
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,
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.
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
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.
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)!!!!
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
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).
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.
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.
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
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.
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
Content Geography
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.
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.
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