Best options for full customer control of content?

Hi Railers,

I have a scenario to figure out that I’ve never yet come to a good
answer for,
and I’m hoping some of you can shed some light.

The owner of website I built a while back (in PHP) would like to extend
the
capabilities of the website to be fully CMS driven, with multiple
language
versions (French, Spanish etc.) available in future. At the moment, a
few
parts of the site have a simple CMS (news, jobs, etc.) but most of the
pages
are static.

I’m totally OK with setting up any number of pages to have
user-alterable
content, but the difficulty with this site is that the page content
isn’t
always just text - it’s got layout, styles and so on associated with it.

Given that the customer is non-technical, and given that I’m pretty sure
they
aren’t going to be able to get their head around XHTML, every time this
situation comes up, I find it very hard to come to the “best possible”
solution, since I’m not even sure there is one.

Sure, user editable content (plain text, or even formatted text) is fine
with
a CMS, but for more complicated stuff (images, lists, tables of data,
forms
etc.) like a complete page, is there any kind of feasible way of doing
it,
while still shielding the site owner from having to get to grips with
XHTML,
or at least markup of some description? Is there any way of doing it
that
will realistically protect them from destroying the site?

The other thing I’d like to avoid if possible is serving up invalid
markup,
and it just seems that the only way I can make sure this doesn’t happen
is to
give rather limited access to what can / can’t be done markup-wise with
the
CMS of a site.

So, that’s basically the trouble: the non-technical customer wants to be
able
to do all kinds of whizz-bang stuff with the pages, and I’m just not
sure
it’s a good idea to give them that much rope to hang themselves on.

It’s not the fact that they’re likely to put me out of a job (they
aren’t),
it’s just that up until now, there’s a good reason they’ve paid us
little
bits of maintenance fee to change things on the site - because we know
what
we’re doing with code, and in the long run it’s just easier for us to do
it
for them.

Am I being too paranoid about this? I don’t want to cause problems
either
way, but I really feel like saying “sorry but this site is too
complicated
for you to have that much control over - we can let you change all the
text,
but not the layout of the pages” or something like that.

If this project goes ahead, I’m intending to rebuild the site in Rails
anyway,
since it’ll be worth the time I’ll save later. But in a way, this is
the
kind of project I hate, since I just don’t believe there’s a really good
solution to it.

WYSIWYG doesn’t work. Markdown and so on is OK but still requires some
technical knowledge and can therefore be messed up. Access to the bare
XHTML
would allow the fullest degree of control, but is way too dangerous to
consider, because the customer will end up destroying their site in some
way
or another… probably while I’m snowboarding down the side of a
mountain
somewhere, as all web developers do! (Well, I’ll be in Japan for 6
weeks
next summer, so that’s undoubtedly when disaster will strike!)

Maybe Markdown with a version rollback facility might be the best
option, so
at least if it goes wrong they can quickly restore the previous good
page?

What would you do? Is there a “safe” way of giving a non-technical
customer
this much control of their site? A detailed user manual and a day’s
training, perhaps? Should I just get over my worries, give them what
they
want, and charge them maintenance fees if/when they mess up the site?

Should I just suggest that all this is likely to be considerably more
expensive than just getting us to make the changes as and when they’re
needed?

I mean, you wouldn’t ask your car mechanic to set up a system so you
could fix
your own engine, would you? Perhaps such a system is possible, but
there’s a
reason you hire him to fix your car in the first place - it’s easier, he
gets
the job done right every time, the engine doesn’t blow up in your face,
and
it’s several times cheaper that way anyway.

Any suggestions appreciated - and I’m surely not the only one who ever
needs
to solve this problem! :slight_smile:

Thanks for your time,

~Dave

Dave S.
Rent-A-Monkey Website Development
Web: http://www.rentamonkey.com/

Dave…

Is it essential that the solution be Open Source? If not, you could
look into creating the site in Rails and then using Macromedia
Contribute for the maintenance. This probably would require some
tweaking of the Rails site since Contribute expects there to be
defined areas of user responsibility. But I have a couple of Web
development colleagues who tell me (I have no personal experience
with it) that Contribute does a really good job of isolating the
changes in such a way that the user can’t really screw up layout or
functionality as long as the designer sets up the right page regions
for user maintenance.

If, OTOH, you want or need to stay with Open Source tools, then what
came to mind when I read your post was the idea of devising pages
that use AJAX componentry to create the updates to feed back into the
pages needing user modification. I haven’t thought this through and
obviously haven’t tried coding it but it feels like that might be a
reasonably feasible solution.

I’ll be watching. This is an issue I’ll face in a few months’ time.

On Jan 13, 2006, at 7:12 AM, Dave S. wrote:

Given that the customer is non-technical, and given that I’m pretty
sure they
aren’t going to be able to get their head around XHTML, every time
this
situation comes up, I find it very hard to come to the “best possible”
solution, since I’m not even sure there is one.

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
Dan S.
Technology Visionary - Technology Assessment - Documentation
“Looking at technology from every angle”

On 1/13/06, Dave S. [email protected] wrote:

I’m totally OK with setting up any number of pages to have user-alterable
content, but the difficulty with this site is that the page content isn’t
always just text - it’s got layout, styles and so on associated with it.

Given that the customer is non-technical, and given that I’m pretty sure they
aren’t going to be able to get their head around XHTML, every time this
situation comes up, I find it very hard to come to the “best possible”
solution, since I’m not even sure there is one.

Teach them how to use textile. It’s not hard.

Dave S. wrote:

WYSIWYG doesn’t work.
Why not? There are quite a few rich text controls available - both free
and non-free - that can handle the sort of layout control you’re talking
about. I even recall someone doing a Rails-FCKEditor mash at some
point, although I forget who…

Sounds like a project crying to be started, doesn’t it? This could be
a really great module or plugin.

Dan

Dan S. wrote:

Sounds like a project crying to be started, doesn’t it? This could be
a really great module or plugin.

Dan

/signed

I have experience with FCKeditor, and a lot more WYSYWIG editors. It
always stays unpolished and non-experienced users really get lost. The
Firefox/IE differences keep turning up. (line break/new paragraph). I
have a lot of labour in a good WYSYWIG editor, but it just doesn’t work
for non-experienced users. Most of them use Word and than paste it. you
can filter a lot, but still there are creepy things. I’ll follow this
thread and make suggestions if this comes off the ground.

I don’t have any experience with FCKEditor, but I’ve used Telerik’s
r.a.d.
Editor a lot in my .NET development. My experience with that had been
so-so,
to say the least. Browser-based stuff seems to be pretty sketchy for
reliability and consistent performance. It’s “flaky”, I guess you could
say.
The UI just isn’t as predictable as Word or Contribute, which is what
client’s expect when they use it. If it doesn’t work as expected, they
don’t
know the right way to fiddle with it to get it to work. Then they get
frustrated. Then they call me.

Most of the time, unless I have a good reason why not to, I just tell my
clients to get Contribute. I’ve avoided it so far with Rails, though,
because since Rails assembles pages out of views, partials, etc,
Contribute
can’t handle that, and it also looks for pages that match the directory
tree
that it finds when it’s browsing the site. Rails definitely doesn’t
match
that structure. You’d have to make the Contribute-modifiable pages as
straight (X)HTML, and keep the Rails stuff seperate and not modifiable.
That’s the way it’s appeared in my short experience with it. I was
actually
forced to code a site in PHP because I had to use Dreamweaver templates,
and
the whole site had to be modifiable in Contribute. Ugh.

If someone else has any better ideas for Rails/Contribute integration,
I’d
love to hear 'em. This is a real concern for me as well, because a lot
of my
clients have come to expect “complete control”, or as near to that as I
can
deliver.

Matt