Skip navigation.

exploreopera

| Help

Sign up | Help

Posts tagged with "design"

Free Flat-File CMSs Reviewed, Part 4

, , , ...

Continued from Part 3...

Nearly there...

Lanius is a CMS I looked at a month or two back, and reinstalled today for a review. It's quite a comprehensive package. Technically, the most impressive aspect of it is that in order to provide flat-file support, the developers wrote their own flat-file SQL-compatible database engine, AND made it compatible with the ADOdb Lite data abstraction API. It means that Lanius is a database-driven CMS, and can operate using any ADOdb Lite compatible database, such as MySQL, MS-SQL and PostgreSQL. Gladius just happens to be slower and less efficient than a proper database, but can operate on any PHP installation (v4 or v5). Backing up the CMS consists of taking a database SQL dump. The dump can then be processed by any ADOdb database to restore the site. You can easily migrate from one database to another if necessary.

Enough of databases! Lanius supports multiple users with different access levels. Static pages are not supported, although the FAQ describes a workaround that involves disabling the voting and comments systems for the entire site. Content is organised into sections and categories within sections (i.e. two levels). However, I couldn't figure out how to add and maintain new categories. It comes with web forum and photo gallery support. The gallery supports multiple categories. Blogs are not specially supported, although I imagine the intended implementation is to set up a particular category and post articles in there.

For me, the lack of static page support puts Lanius well down my short list. The global nature of page comments is also a problem for me. The existence of the Gladius database creates the tantalizing idea that more full-on database-only CMSs could potentially implement flat-file support. I guess it would depend on if they were implemented using ADOdb Lite or not.

I still haven't gotten around to looking at Dokuwiki and PmWiki, and probably won't until next weekend.

Free Flat-File CMSs Reviewed, Part 3

, , , ...

Continued from Part 2...

Phew! This has become quite an investigation! :sherlock:

TinyCMS is really small and really simple. It uses the OpenWYSIWYG editor. There is no gallery support. Most importantly, I was unable to enter the admin page - "You are not allowed to access the admin panel". There were several similar reports on the support forum. The workaround seemed to be to fiddle with the cookie settings in the script. I could see the script was correctly setting the login cookie in the browser, but for reasons unknown nothing would work. If it worked, I suspect it might be suitable for my simple customer sites, but as it doesn't...

The next CMS, phpCMS, I had tried out ages ago while I was looking for a simple CMS for my customer sites (and settled on CMSimple). It had been a while, so I installed it again. FCKeditor support is available as an option, as is a gallery (instructions are given for integrating SPGM). phpCMS operates at a rather low level. It handles static content, but there is no set structure. This makes for an extremely flexible system, but it's also a very steep learning curve.

Those are all the flat-file CMSs I've run into so far. During my search I also considered wikis.

The WikiMatrix Wizard allows for a wide selection of wikis to be analyzed. Comparison of flat-file wikis written in PHP. Of those, DokuWiki looks the most promising, followed by PmWiki. DokuWiki has plugins for page comments, photo galleries, and for blogging. However, I'm not so sure about using a wiki for a web site. Some further research will be required.

Free Flat-File CMSs Reviewed, Part 2

, , , ...

Continued from Part 1...

Since my first post, I've reviewed some more flat-file CMSs:

LightNEasy was a surprising find. It has built-in support for photo galleries (with LightBox), a huge array of themes (which tells me it can't be hard making a new/custom one), plus plugins to integrate a flat-file discussion forum (Easy Forum) and flat-file wiki (Pawfaliki)! Wow - I haven't seen a wiki integrated anywhere else. A blog could be supported via its built-in News facility, but it doesn't support editing the post date/time stamp, nor are comments supported. Editing is via FCKeditor. The News facility supports multiple categories, but the static page system only goes to three levels deep. A bit shallow for my liking. Signing up for the LightNEasy support forum results in password emails going missing, and no response to follow-up requests. Followup: It seems they run a rather aggressive anti-spam system which was eating my messages. When I switched from my usual email address to my Gmail address, the messages got through OK.

Easy Forum deserves a bit more coverage. It's very simple. So simple, it's a bit difficult to use. It's also missing some basic anti-spamming-user-registration (eg a captcha). It does have a posting throttle to stop things getting out of hand. I couldn't work out how user banning works.

Pawfaliki is a very simple wiki. Each page is stored as a separate file. There is no UI to delete a page; it must be deleted manually from the file system.

FlatPress is primarily a blog, but also has support for a single level of uncategorised static pages. Editing is via a simple bbcode editor. It comes with a range of plugins, such as a calendar for your blog postings. Downloadable plugins include photo gallery support and TinyMCE editor support. There are quite a few themes available for download too.

fuzzylime is a truly impressive effort. It supports static content, multiple blogs, comments (optionally supported on blogs, photos and static pages), guestbooks, galleries, polls and mailing lists. Static pages all go into a big pool of pages, but per-page submenus can be created, thus giving the appearance of an infinite depth of content. The cost is that the relationships between static content pages need to be manually maintained and there is no way to get an overview of the site content. The blog support does not include a calendar. The default editor is plain text - HTML needs to be manually written in. There is a WYSIWYG editor available, but it needs to be downloaded through the menu system - and that wasn't working when I tried it. Since I couldn't download it, there's no way to tell what it is, although I suspect it's FCKeditor. The selection of templates is limited, and looks a bit complicated to make yourself. So far, this one seems to be the best fit for my new combined static web site, blog, and photo galleries. The fully automatic installer script has a bug that prevents correct operation, and there's a known bug handling the per-page submenus. Followup: The installer bug is now fixed.

JAF (Just Another Flat-file) CMS is a very simple setup, supporting a single uncategorised group of static pages, an uncategorised news item facility, and a gallery of photos without captions. Editing is plain text (manual HTML) - correction, it's using HTMLArea which uses browser sniffing that prevents operation in Opera. Easy enough to work around, but I think I'll give this a miss on principle. The HTMLArea code is more than four years old, JAF itself is over two years old. Other modules include a forum (which I couldn't get to work), guestbook and voting poll. Way too simple, feature-free and out of date for my liking.

Wait, there's more! I've run out of time today, so I'm posting this now. Part 3 (and maybe more) will follow, sometime. There's at least two or three other systems waiting for me to look at.

Free Flat-File CMSs Reviewed

, , , ...

My personal web site is basically a set of templated XHTML pages with a whole lot of Perl scripts holding everything together.

For nearly a year now I've been toying with the idea of re-writing my site into PHP. What started this was my acquisition of a QNAP TS-109 Pro. This cool hard drive enclosure has a built-in Apache web server and MySql support. I would host my local copy of my web site on the QNAP, and have my ISP host my "live" site on their servers. I'd also had a couple of run-ins with my ISP complaining about my inefficient Perl scripts. Maybe PHP would be better?

That's where it becomes complicated. My ISP only has PHP 4 - no PHP 5! Nor do they provide any database support. No MySql, no sqlite. My web pages are currently split across two sites: my personal site of static web pages, and my blog here on my.opera. I have some photo galleries on both sites. I'd really like to create an integrated site and have easy access to the data for backing up. None of my my.opera stuff is backed up anywhere.

So for me I want to use PHP, no database, and build a site that incorporates a decent tree of static pages (a depth of five or more would be comfortable, unlimited would be best), supports a blog and multiple photo galleries. Comments and trackbacks on the blog items and photos (and maybe the static pages too) would be really nice. Being able to directly maintain the site online using a WYSIWYG editor is a high priority.

Apart from my own pages, I've also made a couple of web sites for customers. All hand-made, which I was getting tired of. What I wanted was some way of being able to make a web site that would be updatable by someone with minimal web knowledge - i.e. so customers could update and add/remove pages themselves using a WYSIWYG editor. Since my customers have so far wanted to host their sites in their own web space, I needed a system with minimal requirements. For example, no database. I decided something that worked with text files and written in PHP would be required, but nothing like the requirements for my own site.

For the simple types of web sites I've built so far for my customers, I found CMSimple to be an excellent fit. While I'm not going to rebuild my older web sites using it (unless I'm paid for it, of course), I think I will use it for any future customer sites. CMSimple comes with a custom WYSIWYG editor, but allows the more full-featured editors TinyMCE and FCKeditor to be used. TinyMCE in particular has very good integration, being able to easily create intra-site links and refer to images. CMSimple supports a hierarchy of pages, but only to a depth of three. There is no built-in support for a blog or photo galleries, but there seems to be a photo gallery plugin available. Restyling the site via templates is pretty straightforward.

Limbo was one of the first I looked at. I was immediately put off by the date of the most recent changes (March 2006), but I downloaded it anyway. I could not get it running at all, and subsequently found out it isn't compatible with PHP 5, which is what my home servers are running.

Quick.Cms is a nice looking system. It supports a tree hierarchy (to seemingly unlimited depth), and supports the TinyMCE editor, but doesn't support full-featured page editing. For example, no table or images support, although it has a separate facility for adding images to pages that creates automatic thumbnails and Lightbox viewer. There is no blog support, but gallery (sort of) and visitor comments are supported by upgrading to a paid version. The free Quick.Cms would be an excellent alternative to CMSimple for my customer sites.

ReloadCMS is a nice looking CMS too. There was a small hiccup on install as the "content" subfolder was missing the subfolders "users" (which blocked adding any users - even the administrator), "datafiles" and "forum". The "gallery" subfolder was missing subfolders "new", "images" and "thumbnails". Yes, it comes with a simple web forum and photo gallery. It has a limited page (it calls them articles) hierarchy - just sections and categories within sections. In general I wouldn't consider ReloadCMS for my customers, mostly because it is very much a multi-user oriented system, and so far my customers are just interested in static pages. Nor would I consider it for me due to the very limited article organizational capabilities.

NanoCMS is an extremely simple CMS. As its name implies, it is tiny. Page categorisation is flat (single level). It supports the TinyMCE editor as an add-on. If you want images on your site, you need to upload and manage them yourself. There are no gallery or blog facilities. This would also be suitable for some of my customer sites, but I think CMSimple or Quick.Cms are almost as simple with better functionality.

GuppY is the Opera of CMSs. That is, I'm sure that if I looked hard enough, I'd find a kitchen sink in there somewhere! It supports static pages (articles), but only a single level of categories. It also has facilities for a blog, photo galleries, downloads, links (bookmarks), a forum, a guestbook, news items, an FAQ, and polls. I'm sure I've forgotten several other things. The lack of depth in the article categories is quite annoying, as it would otherwise seem to be a fine option for my new personal web site.

Sapid is rather interesting. It seems to be a general purpose CMS framework. There is a tree hierarchy of pages and it looks like each page can specify its own template to use. There are all sorts of interesting modules to do menus, navigation, news items. I have no idea how they work! The modules seem to be a declarative programming language of some sort, written in XML. I have a sneaking suspicion that if you knew what you were doing, you could relatively easily make Sapid do anything. As it stands, it's too complex to figure out. There do seem to be modules for a "personal website" and a "blog", though.

Pivot is a blog system. Multiple blogs are supported. It does not support a hierarchy of static pages. When you create new entries/articles there is a flat category system to organise them. The WYSIWYG editor is custom and really a markup-style editor that you click to preview the item.

Project Steve Guttenberg (they really need to change their name to something like "PSG") is a multi-user blog system. It doesn't support static pages, so not of interest to me. FlatPress is basically the same.

In short, I've looked at stacks of CMSs. Collectively, all the features I want are out there. The problem is that they're in different systems and I just want to deal with a single system! :cry: The PHP programmer in me is now itching to start development on my own CMS so that I can get exactly the system I want. The voice of reason is telling to just pick one and work around its limitations. A CMS system seems deceptively simple, but I know if I were to start, all the simple tasks would become monsters. Page management, navigation tools, photo gallery management, visitor comments, polls, site statistics, etc, etc. :no:

I guess the question is - are there any PHP plain text CMSs I've missed? GuppY seems to be the closet thing for my personal use. However, for some reason I can't explain it just doesn't feel right. The lack of article depth is certainly a problem. Maybe it just feels too much like a community system and less like a personal web site?

I think I'll continue looking. I'm planning on revamping my site over the Christmas break, so there's still a few months for something new to turn up.

...continued in Part 2...

Layout tables are nice

, , ,

:yuck: More anti-table zealotry!

Sure, I've seen stacks of sites that over-use tables for layout, but seriously, the existing CSS methods for emulating table layouts without tables are all ridiculously complex, fragile, and error-prone. The amount of hoops you have to jump through to produce a common three-column equal-height layout with header and footer without tables is just stupid. And all you need to do to make it fall apart is look at it the wrong way!

Let's face it - until there is broad support for the proper way to do table layouts (i.e. CSS display:table-* properties - I'm look at you, MSIE!), by far the simplest and most robust way to do a table layout is to use a table. CSS may technically be up to it, but browser CSS support is not.

Here's a case in point. I recently evaluated CMSimple for whipping up a quick and easy to use website. This is a slightly abridged version of the default page template:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head><?php echo head();?></head>
  <body bgcolor="#808080" <?php echo onload();?>>
    <a id="TOP" name="TOP"></a>
    <table align="center" width="750" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td valign="top" colspan="2">
          <table align="center" width="100%" border="0" cellpadding="10" cellspacing="0" bgcolor="black" style="background-image: url(<?php echo $pth['folder']['templateimages']?>top.jpg);">
            <tr>
              <td valign="bottom" class="sitename" height="80">
                <font color="white"><?php echo sitename();?></font>
              </td>
              <td valign="top" align="right">
                <table align="center" width="100%" border="0" cellpadding="10" cellspacing="0">
                  <tr>
                    <td valign="top" align="right" class="searchbox"><?php echo searchbox();?></td>
                  </tr>
                </table>
              </td>
            </tr>
          </table>
        </td>
      </tr>
      <tr>
        <td valign="top" width="200" bgcolor="#c0c0c0">
          <table align="center" width="100%" border="0" cellpadding="5" cellspacing="0">
            <tr>
              <td valign="top"><?php echo toc();?></td>
            </tr>
            <tr>
              <td valign="top" class="menu"><?php echo sitemaplink();?></td>
            </tr>
            <tr>
              <td valign="top" class="menu"><?php echo lastupdate();?></td>
            </tr>
          </table>
        </td>
        <td valign="top" width="550" bgcolor="white">
          <table align="center" width="100%" border="0" cellpadding="5" cellspacing="0">
            <tr>
              <td valign="top" class="locator" bgcolor="#808080"><?php echo locator();?></td>
            </tr>
            <tr>
              <td valign="top">
              <?php echo editmenu();?><?php echo content();?><?php echo submenu();?>
                <p>
                   
                </p>
              </td>
            </tr>
          </table>
        </td>
      </tr>
      <tr>
        <td bgcolor="#808080" align="center" class="navigator">
          <!-- YOU ARE NOT ALLOWED TO REMOVE OR HIDE THIS LINK WITHOUT A COMMERCIAL LICENCE-->
          <a href="http://www.cmsimple.dk/" class="navigator">Powered by CMSimple</a>
          <!-- IF REMOVE OR HIDE: Then you must pay for a licence - see http://www.cmsimple.dk/?Licence -->
        </td>
        <td bgcolor="black" valign="top">
          <table width="100%" border="0" cellpadding="5" cellspacing="0">
            <tr>
              <td width="33%" class="navigator" valign="top"><?php echo previouspage();?></td>
              <td align="center" width="33%" class="navigator" valign="top"><?php echo top();?></td>
              <td align="right" width="33%" class="navigator" valign="top"><?php echo nextpage();?></td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
  </body>
</html>
Yep - far too many nested tables. It's also a fixed width and proved very stubborn trying to make it into a flexible-width layout. In fact, with all the tables in there, I gave up. I pulled it apart and re-built it from scratch:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<?php echo head();?>
</head>
<body <?php echo onload();?>>
<div id="TOP"></div>
<div id="header">
<span class="sitename"><?php echo sitename(); ?></span>
<?php echo searchbox(); ?>
</div>
<table id="body" class="layout">
<tr><td id="nav">
<?php echo toc(); ?>
<div id="sitemaplink"><?php echo sitemaplink(); ?></div>
<div id="lastupdate"><?php echo lastupdate(); ?></div>
</td><td id="content">
<div id="locator"><?php echo locator(); ?></div>
<?php echo editmenu(); ?>
<?php echo content(); ?>
</td></tr>
</table>
<div id="copyright">
<!-- YOU ARE NOT ALLOWED TO REMOVE OR HIDE THIS LINK WITHOUT A COMMERCIAL LICENCE -->
<a href="http://www.cmsimple.dk/" class="copyright">Powered by CMSimple</a>
<!-- IF REMOVE OR HIDE: Then you must pay for a licence - see http://www.cmsimple.dk/?Licence -->
</div>
</body>
</html>
Much, much more simple! The effort put into the single layout table probably amounted to a minute or two. I know I would have spent hours trying to achieve the same thing without tables. I could have done it, I have no doubt, but it's just not worth the time.

It's all about the right tool for the job. If the right tool (CSS display:table-*) is not available, then the second best (table markup) will have to do. A bunch of nested divs, with carefully matching widths and negative margins, etc is not an improvement!

I'm quite certain that the anti-table CSS mindset is second only to Internet Explorer itself for unproductive time lost forever.
October 2008
SMTWTFS
September 2008November 2008
1234
567891011
12131415161718
19202122232425
262728293031