CMS to manage a web site
A Content Management System is a fancy word to refer to a tool, usually residing
on a server, to manage the bits that make up a web site. The idea is to create
contents one bit at a time, and keep contents and display totaly separate.
As a practical example of why you should use a CMS even for a very basic,
personal web site, perform the following tasks using your favorite editor, either
plain-text or a WYSIWYG HTML editor like FrontPage or Mozilla Composer:
- Create ten separate HTML pages
- Build a home page that presents a clickable list of those documents
- Go back, and add a header and footer to each and every web page that
make up this little site. The header should contain a basic navigation bar
like the one you see at the top of this very document, while the footer
should include a copyright note
- Once you're done, go back and add a new item in the header bar
Pretty tedious, ain't it? And just imagine what it'd be like handling even
a small intranet at work. You just understood the need for a CMS, ie. a piece
of software that lets you create contents and handle all the layout for you.
Unfortunately, the current state of the art is not satisfying. Most CMS run
on a web server, and expect you to type content through a web browser in, at
basic WYSIWYG widget.
Considering how unstable and fat web browsers are, it puzzles me why no one
has yet come up with a good, light (ideally, a no-brainer, two-second install)
multipurpose, dedicated WYSIWYG client that would enable users to manage their
contents by talking to their CMS server through an open and basic protocol like
XMLRPC. In essence, a word processor for the web. I know of a couple of dedicated
applications to add entries to a blog, but that's about it. Even finding an
embeddable WYSIWYG HTML editor proves to be difficult.
A different approach, taken by CityDesk,
is to have the CMS run on your client host, offering
a WYSIWYG interface, generate a static version of the site before uploading
this to your web server through FTP. Not bad, but I'd rather use an open-source
product, and have it be client-server, so that I can use this solution either
as a personal, desktop tool, or have the server part live on a server so many
people can contribute articles.
Things to check out when choosing a CMS
- Just PHP or Perl, or more modules required?
- MySQL required? Ideally, everything should be saved to flat files to
allow working with any web server. As PHP5 comes with support for SQLite,
second best should be for this light, one-DLL SQL engine
- Either dynamic or static output (the latter is nice, since you can just
upload the output to any web server, with no need for PHP, Perl, and MySQL)
- Support for categories, so you can organize entries in different parts
of the home page
- Each entry should have sections to input a description and keywords,
so as to be linked to by search engines
- Supports API's like the Blogger API, metaWeblog API, MovableType
API, or b2 API, so you can post
from a dedicated application like wBloggar. Support for off-line editing, so as to let road warriors edit entries
while disconnected from the server
- When editing in a browser, support for WYSIWYG widget, and should offer
"Save & Continue Editing". Since browsers aren't the most
stable of appplications, I want to be able to hit the equivalent of CTRL-S
every couple of minutes to make sure I don't lose my work should the browser
GPF. Ideally, when creating an entry, the CMS (or WYSIWYG widget, or dedicated
app) should be able to generate TOC, index, cross-references, and tables.
When writing a longish article, it's nice to have a TOC displayed at the
beginning of the article
- If using the CMS to manage articles, not just a blogger, entries that
you edit after their initial publishing should move up in the home page
so readers can see what changes you made. Ideally, the CMS should let readers
see what changed from version to version
- Support for uploading pictures; Automatic thumbnailing is a plus
- Easy import from either plain HTML or major CMS
- Entries should be either for all readers, or only displayed to registered
- Entries should be accessible through a generic URL, ie. no hard-coded URL to content (so that you can change the structure of
your site without breaking cross-references from either within your site
or URLs that people bookmarked)
- Good indexing and search engine, and search engine-friendly URL's
- Total separation of content and display, eg. users should not be allowed
to add any FONT settings in their entries
- Basic workflow (Draft, Final, Publishable either now or at a certain
date, Published, Retired)
- (Java-based) "Bloggers wanting to rise above the blogosphere noise, but not
prepared to tackle the likes of Drupal, would do well to check out Thingamablog,
a free, open source blogsite publishing package. Thingamablog is a standalone
blogging application that makes authoring and publishing weblogs as simple
as possible, according to the project team. Unlike most blogging software
packages, Thingamablog does not require its web-accessed files to reside
on a cgi/php-enabled webserver, and doesn't need a MySQL database. According
to the project's website, all that's needed to set up and manage a blog
using Thingamablog is FTP, SFTP, or network access to a basic webserver."
- Can't change the locale?
- Blogging cum feedreader
- From Betasoft, maker of
the "ScroogeXHTML for Delphi component which can convert RTF HTML 4.01
- No WYSIWYG editor
- Data saved in FireBird database instead of stand-alone files
- Uses OpenOffice Writer as editor
- Commercial (base package 2,199.00 US, annual software maintenance 20%
of total license)
- "Orb Spinner is a content management
system designed for static websites. It has an imbedded SQL database which is
used to store website content. Website layout is stored in templates, and at
the touch of a button Orb Spinner combines the layout with the content to create
a finished website."
- Data saved in SQLite 3 database
- GUI built with wxWidgets
- Nice to manage a small site, with short articles
- Uses a regular, non-HTML-aware editing widget, so must either type or
copy/paste HTML-formatted text when writing an article
Web Update Builder
suPerlative: The ht Preprocessor
Cute Site Builder
WebContent 4 all
zeta producer Desktop
Dedicated blogging clients
Thanks to standard protocols like XMLRPC or SOAP, some clients are finally
available to connect and edit entries from a desktop, dedicated applications.
- Semi-WYSIWYG client (ie. raw HTML in editing window, with Preview tab
in the same app) written in VB to connect to a CMS that supports standard API's, and
add entries remotely
- Requires MS IE 5.01 or newer
- Nice, but multiple requirements (PowerBlog Personal Client requires a PC
workstation with Windows 2000, Windows XP, or Windows .NET. For Windows 2000,
the following subcomponents are required: Service Pack 1+, Internet Explorer
6.x+, Microsoft Windows Script (typically bundled with Windows 2000))
- Latest news is dated 2002-03-11
BlogApp is a Mac OS X (Jaguar Compatible only) shareware application ($6)
that allows users to easily post to their weblog.
- Latest release 2001-12-03
- Successor to Kung-Log
- Currently only on Macintosh, but Windows version planned
- Not WYSIWYG
WYSIWYG Editing Widgets
This is a list of WYSIWYG editing widgets that you can embed in a dedicated
application to turn it into the poor man's DreamWeaver. They generate either
HTML or RTF, or both. The few widgets I know of are either free/cheap but feature-poor,
or quite expensive but offer more features. I didn't find any good, open-source
MS DHTMLEd ActiveX Control/MSHTML Active Document
- Free ActiveX control that ships with IE 5 and above (C:\Program Files\Common
Files\Microsoft Shared\Triedit\dhtmled.ocx) Since it's an ActiveX control, can be used both in a web page or a dedicated
For hosts not running IE 5+ (ie. 95 and 98 that were not
upgraded to later versions of IE), download the Dynamic HTML Editing Component SDK
in order to get DHTMLEd 1.0
- DHTMLed is the older version ("The DHTML Editing Component and ActiveX control are still available. They
provide similar features to the MSHTML Editor, though they are not customizable."), and is supposed to preserve formatting
better, but YMMV (expect extra spaces to be added randomly); MSHTML is the
newer version, and supports live DOM (ie. you can set up triggers and use
- DHTML Editing Component (MSDN Archives)
- MSHTML Active Document
- MSHTML Editing
("In addition to its HTML rendering and parsing capabilities, MSHTML exposes a
minimal set of HTML editing features. Applications hosting MSHTML can use these
editing features to enable editing of HTML content in a manner similar to text
editing in word processors.")
- Creating Editable Web Pages in Internet Explorer 5.5
Explorer MSHTML/DHTML API ("The Microsoft® HTML parsing and rendering engine (MSHTML) is the main HTML
component of the Microsoft Internet Explorer Web browser. It hosts Microsoft
ActiveX® controls and supports the OLE Control 1996 (OC96) specification for
windowless controls. You can also use the MSHTML/DHTML API to provide browser
functionality to your own applications.")
DHTML ("MSHTML implements the dynamic HTML (DHTML) object model, which is implemented by
MSHTML[...] The DHTML object model gives you direct, programmable access to every HTML
element. You can use script to interact with user actions and change the page
- Reusing MSHTML
("MSHTML itself is an Active Document[...] To integrate Internet browsing into an application, it is recommended that you
host the WebBrowser
Control. The WebBrowser control implements support for in-place linking and
navigation, in addition to MSHTML.")
- About the Browser
("This section explains the architecture of Microsoft® Internet Explorer 4.0 and
later, and provides information you'll find helpful when reusing these
Here's to browse an HTML page, and edit it within a VB app:
- Create a new project, and add the MS Internet Controls to a form
- Browse a web page
Private Sub Form_Load()
- Edit the page currently displayed by the Web browser object
Dim doc As Object
doc = WebBrowser1.Document
= "On" Then
The DHTMLEd OCX lets you save the document to a local file, but I don't yet
know how to do this.
- ActiveX control; requires msxml4.dll, msxml4a.dll, and msxml4r.dll
- Free and Pro versions
- Only H1 and H2
PBear HTML Components for Delphi
- HTML Display Components, ThtmlViewer, TFrameViewer, and TFrameBrowse
- FREE ThtmlLite HTML Display Component
HomePage Software's Webster Pro DLL
- "Namo ActiveSquare5 is an ActiveX control that enables Web application
developers to offer rich document creation and uploading abilities to their
site users, right in the browser."
- Full from $995.00
MS RichEdit Control
This DLL (and the OCX that comes with VB to make its use easier) generates
RTF. Here are the different versions of this DLL:
- 1.0 RichEd32.DLL Win95 This is the lowest common denominator version
of RichEdit, and is the version that the Microsoft RichText OCX for VB is
based on. The code in RichEdit 2 is much improved compared to this version
- 2.0 RichEd20.DLL WinNT 4.0,
Installed with MS Office 126.96.36.1990?
- 3.0 RichEd20.DLL Win2000.
Can also be obtained by installing the Microsoft System Installer (MSI)
- 4.1 Msftedit.dll Comes with XP?
Scrooge XHTML for Delphi
Stephen Lebans' Rich Text
- Angel Writer
app, not a widget
- As of April 2004, a bit unstable, and no support for Hx tags
vbAccelerator RichEdit Control
Edanmo's RTF Widget
- A RichEdit control implemented with VB using the riched20.dll that supports
objects and pictures
- Guess it's an equivalent to the RICHTX32.OCX that comes with VB, and
is really a front-end to Windows' RICHEDxx.DLL
EZTools Web On Windows (WOW)
- A full-fledged HTML editor based on Mozilla Composer, not just a widget
- "The "HTML-to-RTF DLL" and "HTML-to-RTF Pro DLL"
components can convert HTML and ASP files into good-looking RTF with tables
or transform tables to text. Our DLLs are COM objects and developers my
call it from Visual Basic, C#, VBA, VB.Net, Delphi, Java or other language."
- HTML-to-RTF DLL 1 Developer License 149$
- HTML-to-RTF Pro DLL 1 Developer License 239$
- The Richtext Editor project is an Open Source project hosted by
SourceForge.net. The editor is an Internet Explorer based WYSIWYG HTML Text
Editor which can be hosted in a web page or form. It requires no additional
RTF to HTML
"TinyMCE is a platform independent
LGPL by Moxiecode Systems AB."
is an easily installed, easily customisable WYSIWYG editor for simple content.
editing) it degrades gracefully."
- Doesn't require a database
- "In case PHP is running on your web server in safe mode, then phpCMS
only runs with a restricted functualism because the safe mode restricts
strongly the access to the file system. You can ask your web hoster if phpCMS
runs in the safe mode."
- URL rewriting ("Stealth mode") requires making changes to
the www server configuration ("AddType application/x-httpd-parse .htm",
etc.), hence no go for hosted web servers...
- "phpCMS also offers a graphical user interface (GUI). [...] Since
version 1.1.9 there will be an error message, if you use the GUI with the
preset standard password. This is a precaution. To change the password,
you have to edit the file /parser/include/default.php"
- Comes in both flat-file and MySQL versions
- "PHP-Update now also supports picture galleries and a site poll
as well as a mailing list to keep your users up to date."
- Doesn't require a database
- See here.
- "JAF CMS - ...just another flat file CMS, is a Content Management
System (CMS) consist of a powerful set of PHP scripts that allow you to
maintain personal home page. There is no need for a database. The pages
stored in a simple flat file."
- As of May 2005, Lodel is only available
- PHP + MySQL, but lets you import articles written in DOC, RTF, or SXW
(OpenOffice), and converts them into XHTML
- "eDock Server is a secure document server that provides fast and
convenient access to your documents from anywhere. Easily publish, share
and distribute your documents online. Access eDock Server using a standard
web browser from your local network or from the Internet. Use eDock Client
for direct access using your favorite applications (i.e. 602Pro PC SUITE,
MS OFFICE, etc.)."
- "Sitellite is an advanced web based Content Management System (CMS)
and PHP framework which also utilizes Apache and MySQL technology to operate.
Sitellite has existed for over three years and was created by Simian Systems
Canada. Sitellite has both an Open Source (GPL License) version and a Commercial
version available for download and purchase."
HardCore Web Content Management
- GPL for non-commercial use
- Web-based, with tons of DHTML to make it look like Outlook
Simple Web Content Management System
- Ariadne is a Web Application Server and Content Management System. written
entirely in PHP. It has a rich user interface which includes wizards, pulldown
menus, and a WYSIWYG HTML editor (MSIE 4+ only).