Compare CMS - Part 2b - Features
Page 2b:
Databases for CMS Client-side CMS Ecommerce on CMS CMS Documentation CMS templates Template types Other important CMS features First steps with a new CMS
Databases for CMS
All
CMS use a database (DB) of some kind. This is because a CMS does not
function in the same way as a standard website, or as we call it a
'flat HTML' site. Or, indeed, like a semi-dynamic site - one using HTML
plus PHP or ASP. See the relevant page here, CMS Part 5, for a full
description of how a CMS works.
Apart
from a very few that use a flat file DB, an SQL database of some kind
is used. A flat file is basically a text file, and functions better
than might be expected - the maximum page number is actually around
20,000 with this system, though a safer max number is about 5,000 or
less. If a larger site than this is needed, an SQL DB is the way to go.
SQL
databases are provided in various formats such as MySQL and PostgreSQL.
The most popular of these is the former, which has a large number of
support resources. It is true to say that PostgreSQL has a slightly
better reputation but in practice, for the vast majority of users,
MySQL is by far the best choice. A Microsoft server has the choice of
using the MS SQL Server database, or an OSS SQL DB such as MySQL if
that has been installed. Not all MS server hosts know how to do this.
It
is worth pointing out that the Microsoft PC database, Access, from the
Office suite of programs, should never be used on a server under any
circumstances. It is not designed for this in any way and invites
trouble. Some of the most famous exploits of all, with severe
implications for many of the people affected, involved an Access DB.
A
MySQL DB-run site has the potential for many hundreds of thousands of
pages, perhaps over a million. Large sites of this size, though,
frequently run on multiple databases.
An
important point is to make sure to use a website host with an
enlightened attitude to databases - some hosts are still back in the
late 90's and think a database is an expensive and rare luxury. There
are site hosts that provide 5 MySQL DB's and 5 PostgreSQL DB's on a £30
a year hosting package, for instance; don't accept a 'no' or a 'yes but
it costs a lot more' answer - find another host ASAP. You can get 20
DBs on a £50 ($100) per year hosting deal - just look for it.
Client-side CMS
All
the applications listed here are server-side apps, though one also has
the ability to run client-side (server-side meaning that, as you would
expect, the CMS resides on a server - 'client-side' means it runs on
your PC). One or two ecommerce apps (and good ones too) are also
client-side apps. You generate the site, then FTP it up to the server.
This is acceptable with 500 or 1,000 pages, but 30,000 sounds as if it
might be a problem.
Of
course, there are all sorts of issues with running such a major
application client-side; the truth is that for any decent-size site
with modern functionality, it doesn't work well. When you think about
this, it isn't really a CMS solution, it's an extended flat-HTML
website management solution: generating the site and uploading it is
going back to the old way of running a website. The only advantage over
the visual or HTML editor method is simply that you don't have to
create each page individually, the CMS generates it for you. It's a
step backward, returning to the days of flat HTML - PHP - ASP sites
with reduced capability in every area.
Hard-coded
sites are best in two areas: dead simple small sites with unchanging
content, and big commercial projects with all-custom coding; otherwise
a normal server-side CMS, or ecommerce app - and especially a
combination of the two - has them all beat.
Ecommerce on CMS
One of the most common requests from users is a CMS with ecommerce capability.
One of the rarest facilities for CMS coders to build in is an ecommerce facility.
Obviously,
one isn't talking to the other. Any capable CMS needs to either come
with a shopping cart built in, or be able to have one plugged in
seamlessly. You can argue all you like about this - but in that case
you are probably a short-sighted CMS dev who doesn't care what the
end-user needs. Ask the users and see what they want.
Another
way of looking at this is that ecommerce apps need content pages for
decent search results, but not all provide the ability to add them. A
CMS that does both is therefore the perfect answer.
Luckily
this situation has improved a lot in the last year or so. Because the
need for CMS shopping carts was so glaringly obvious, many 3rd-party
developers have produced plugin solutions. In all honesty, at this
stage, it would be fair to say that the majority of these plugin
shopping cart solutions for CMS are 'incomplete'. There is still work
to do in this department.
Best open-source ecommerce CMS
There
is only one complete OSS CMS-shopping cart solution: Joomla-Virtuemart,
so choice is limited. Luckily it does the job well and will suit many
users; see the review in part 3 of this section. There are other
alternative ecommerce plugins for Joomla.
Many
other open-source CMS have shopping cart plugins but the safest way to
describe them is limited. In general they suit basic displays of a few
products, with limited options for templating, product variations,
order variations, payment gateways, tax, shipping, delivery and so on.
For example, many of these plugins have 10 or less payment gateway
options; compare this with osCommerce (the popular OSS ecommerce app),
which has nearly 500.
Compared
to a real ecommerce application, they are therefore limited to about
25% functionality or thereabouts; the result is that some developers
prefer to bridge a CMS and an ecommerce program in order to get
something like full functionality. There are a lot of problems with
this method though.
Best commercial ecommerce CMS
As with
all questions in the commercial area you have to start with the budget.
The cheapest reliable complete solution we know is the semi-OSS (or
semi-commercial if you like) eZpublish ecommerce version. The core CMS
app is OSS, but the shopping cart is commercial; and support /
implementation is of course commercial. An estimate for the cheapest
up-and-running solution here is around £2,500 ($5,000) - though for
DIY, costs are a lot less. See the review elsewhere.
CMS Documentation
Ah,
now you're asking... If you know anything at all about open-source,
you'll know documentation is a dirty word. It's usually either terrible
or non-existent. This is probably the main reason why commercial
enterprises steer well clear of it - with no docs, and little in the
way of commercial support options, they can't really do much else.
You need to realise two things: (1) open-source software is written by geeks for geeks; and (2) no geek gives a sh cares a hoot about image.
What
you see is what you get, and if you can't make it work - or if you
really don't appreciate how good it actually is - then they just don't
care. Why should they, no one's paying them. It's written by teams of
people who are the best in the world at their game; the best and the
brightest minds contribute, and the last thing on anyone's agenda is
the help manual. OSS is something of a status symbol among geeks; if
you are a core dev on Apache, for instance, everyone knows you can cut
the mustard. No manual, no advertising is needed to tell that to the
people who matter. And the only people who matter are other geeks.
This
presents some problems for the rest of the world. Finally, people have
rallied round to try to do something about this situation, but it
generally takes a very large community indeed to find anyone who can
spell or communicate in anything other than Martian. The prize goes to
Joomla, for the best documentation, as you can find a dozen or more
ebooks and PDFs around that will get you out of trouble. They still
haven't figured out how to write something for users who aren't at
least semi-geeks, but no doubt that will come one day.
Usability
is always the very last item on anyone's agenda. Look at the W3C: a
hilarious example of how a large number of very knowledgeable people
find it absolutely impossible to communicate that information to anyone
else. Of course, as anyone knows, engineers can't communicate; but one
would have thought that technicians working in a communication medium
might have realised that.
Not sure what we mean? Well - for example, validate a webpage using the W3C online validator, and then try to find on-site resources that tell you precisely
how to fix the errors located. Not an unreasonable request, one would
have thought, from the people who write the standards in the first
place.
CMS Templates
We ought to look at this as it is one of the very best features of a CMS - or should be. For some people, the templates are the raison d'etre of the things in the first place; for others, it's the user-edits by by browser that clinch the deal.
Firstly,
having templates available means you can automatically have a
reasonable-looking site straight out of the box. No designing, no
graphics, no coding, no Dreamweaver, no nothing - just add your text. I
can't tell you how really A1 that is for a terrible site designer like
me. I just can't do it, so having a template means 90% of those worries
are gone. And if, as with Joomla, there are thousands of templates and
hundreds of template designers around, you can't go wrong; just search
'joomla templates' and you'll see. Even the templates can be altered so
they are unrecognisable.
Alternatively,
if you're a great designer, and can do a nice layout in layer-based
(div) code and CSS (no tables or cells and all that rubbish please),
then so much the better - use your favourite visual or code editor,
build your page, then input it to a CMS type that can use this for a
template.
This
method typifies the design-centric approach to CMS implementation. If
you want to take that route, we advise the use of SiteSpinner and
CMS-MS. The former is an excellent layer-based visual HTML editor, the
latter the simplest CMS that can make full use of that approach. If you
are an HTML coder coming over to CMS, then we advise using div and CSS
based layouts wherever possible, when designing from scratch as with
CMS-MS and Lucid. Don't use tables, as that is simply bringing across
the worst of the old-fashioned ways into a new medium. Well, OK, cells
would be even worse, admittedly.
Template types
There are two main approaches to templates that you'll find: the pre-built solution, and the use-your-own type.
The pre-built template method
The best example of the pre-built template class is Joomla, as (a) it
has about the best system of that type, and (b) there are more
templates for it than any other CMS. They are PHP-HTML-CSS based, and
can therefore be modified by anyone who can understand those. You don't
have to be able to write the code, in any case, just recognise which
does what and change it. You can easily get a completely different look
by swapping out some gfx and changing some CSS colours - simple. Then,
by publishing or un-publishing modules, your pages will look completely
different from anyone else's even using the same template. The best CMS
on this system will allow you to use different templates on different
pages. You could easily go too far here, though; but a good way to use
this flexibilty is to clone the template, then change some graphics,
and use the alternative template on a couple of pages. That way it's
different but keeps to the same house style.
If
you wish, you can get plugins for Dreamweaver that enable you to output
your PHP page as a Joomla template, including the other stuff it needs:
a CSS file, the gfx, and a master file list.
The build your own template method
Typified by Lucid or CMS-MS; you just give it your standard pre-built
HTML page. Then, various proprietary tags are added for the editable
regions etc.
The best way to use this system is to design an HTML page in the first place:
- that is based on layers and CSS (i.e. on divs)
- that validates
Having done that, you've got the best possible foundation; and, truth
be told, probably better than even Joomla, since they are still
struggling with table-based layouts and will be for some time, probably
until Joomla 2.0.
Other important CMS features
There
are many features that might influence your decision. Among them are
ACL, number of plugins available, workflow controls, and content
versioning. Support options are important: will you have a webmaster, a
sysadmin, and support developers? Or just perhaps fix it all yourself.
A
webmaster manages the day-to-day running of the site. They create pages
for those who prefer not to do so, but in the CMS world do not usually
expedite content changes or edits unless these are too complex for the
end-users. They keep an eye on security, basic search engine
compliance, hosting and other on-site issues.
A
sysadmin (sytems administrator), where employed, oversees one or more
websites. They control major aspects of site management such as backend
users, hosting and security contracts, etc.
Support
developers build, change, or repair site functionality. They may create
or install new core functions or add additional features. They fix
problems.
First steps with a new CMS
First
things first: install the CMS on your local LAN, which means on another
PC nearby that is connected to yours and has a server application
installed. This has two very important uses:
- You can get the hang of it without working on a live site
- You can pre-build your CMS locally, then FTP it up to the server
So
you'll need another computer to load it on. That will of course be a PC
- we don't have the space here to talk about fashion accessories
(Macs). You could, in fact, set up your own single PC as a server, but
this has some disadvantages so we'll gloss over that. If you need a
cheap PC just go down to your local tip (or rubbish dump, or 'civic
amenity' in local council-speak) on a Saturday morning. People dump old
PCs and monitors by the cartload, most of them in good working
condition. Nothing's worth less than an old PC or CRT monitor, except
maybe a ten year old map.
Any old PC will do for a LAN server - but it will need a NIC of some
kind, meaning a network interface card, LAN card, wifi card, etc. Even
if you don't have that, all is not lost, you can use a USB LAN cable
instead. The IP numbers are a bit weird, but it will work fine.
You
now need to turn your PC into a server, so you need a server app. One
of the easiest ways to do this, while ensuring you get the necessary
scripting and database installed at the same time (PHP, Perl and
MySQL), is to use the XAMPP server package install. This is Apache for
Windows, which has all the other vital bits and pieces you'll need, and
is a free download. Almost always this is a one-click install, which is
one of the huge benefits of Windows (the others being the fabulous GUI,
extreme ease of use, the vast range of software, and so on). If the
install fails (one time in a thousand), it will be due to a phpMyAdmin
and/or MySQL initiation error. We've done a howto on installing and troubleshooting XAMPP, and you can find it via the Tech FAQs page on this site.
XAMPP
is the perfect LAN server but don't use it for production, it's a dev
server set-up only. Production servers (livesites) need much tighter
security, but on XAMPP that is left wide open to enable maximum
development capability. A production server needs a properly-compiled
set-up for security - Ubuntu Server might suit if you want a quick
install. On a Windows box, for production (Internet-facing duties)
you'll need to change over to Win Server 2K3 and IIS. Lash-ups are
insecure and asking for trouble.
Part 3 - see main menu at left
Most Useful CMS Sites [tell us yours]
Church of the Highly Improbable www.highlyimprobable.org The answer to everything, perhaps. What fun you can have with a CMS, eh? A Postnuke CMS site.
[Site title indecipherable but may include cheese] www.mynameismonkey.com An
interesting site that develops the idea of blogging with no content
whatsoever (or is that every blog?), on a system that is not designed
for it (a CMS), in order to look nice and hide the fact that there is
nothing actually there. Quite fun I should think. Amusing for 30
seconds, anyway; I prefer his church. And Postnuke wins that contest I
reckon. A fairly reasonable template - at least as far as Drupal is concerned :) A Drupal CMS site.
TNA Wrestling www.tnawrestling.com Over
a million uniques a month on this one so leave off with the J don't
scale, please. Maybe it's running on Lighty then. And a fabulous site
in all respects, especially the hysterical ring announcer - I prefer
the UFC guy, much more sensible. And what about those tough girls eh? The most fun you can have with Joomla CMS.
|