Eventually there comes a point in every website's life, when it leaves the safe haven where the developers gave it life, and it gets handed off to the client. At which point it becomes up to one or a bunch of non-developers to make sure the sites content is updated correctly.
As a developer you must walk a fine line between giving total control to the client and possibly letting them destroy their own website, or not giving them enough, which could result in an unhappy client. There are many choices to make: allowing clients to modify the navigation, be able to add their own pages, the ability to change the presentation of textual data, to name a few.
In this post I’m going to go over the ways in which you can allow clients to modify their websites text data. There is no right or wrong choices here and every client is different. It is up to you to choose the option that best fits their needs while keeping the look of the website in tact and keeping your clients from breaking the layout.
How Much Control?
I cannot really think of any reasons why your client might need access to everything in their site. The more rope you give them, the greater the chance they will hang themselves. Not to mention it actually takes you more work to make everything accessible to them. So as a general rule I would say it is best to limit what a client can do on the backend. If they don’t specifically ask for something, don’t give it to them. Simple Enough. Let them have a Super Admin account but for individuals the less they can access the better.
For textual content this holds especially true. There are a number of WYSIWYG editors for ExpressionEngine:
To name a few. Sorry if I neglected to mention others, I know there are a lot out there.
ExpressionEngine of course also has it own Text Formatting options: None, Auto BR, and XHTML.
What to Choose
Knowing which to choose depends on how much control you want to give to the client. By this time you are getting ready to hand off the site you should have a good idea how competent the client is.
Client A) Do you receive emails from them in comic sans? The text content they supplied you with, is it filled with bold text, exclamation points, all capital letters, multiple fonts, etc. If the client thinks he/she is a designer then you probably want to keep them on a very short leash.
- Don’t use a WYSIWYG editor.
- Remove the Bold and Italic from the Default HTML Buttons on your Channel Fields.
- Break the content down into smaller Channel Fields with the Text Formatting set to None when possible.
- All text styles should come from your stylesheet
- Embed any content in the Templates you can that you think will not be updated.
Client B) The client has no HTML knowledge but needs to be able to create and edit complicated entries with lists, tables, floated Images etc.
- This one is going to require a WYSIWYG editor, Matrix will probably also be another essential add-on.
- Remove every font styling option from the WYSIWYG editor. Your CSS file should be all they need.
- Make your Channel Fields flexible and leave plenty of instructions in the Instructions.
- This client is going to need some extra time to teach them how to create content, bill accordingly.
Client C) You. Whether it is your own site or you are doing work on a client’s site, you will often be one of the people dealing with site content.
- Make sure to set up the SuperAdmins Publish layout to something that is productive.
- Add your own Default HTML Buttons to save you time on writing common elements.
Of course there are many other client types out there who will all need their own special setup.
Cleaning Up the Publish Screen
By default ExpressionEngine doesn’t hide anything, but you will definitely want to hide many of the options and present the rest in a way that will makes creating content easy for the client. The same general rule applies, if they don’t need to use it don’t let them. This goes for SuperAdmins accounts as well. If you are not using categories in a Channel simply turn them off on the Publish screen.
Everyone has their preferences, but for me if there are less than ten custom fields being used for a given Channel, I move them all to the main Publish tab and delete all the other tabs. That or leave one secondary tab for the miscellaneous stuff. Any Channel Field that the published needs to use on every single entry should be located on the main Publish tab. Which means Date or Category fields need to be moved over if they are going to be used. Don’t make your clients click through tabs to find the field they need and don’t confuse them with options that aren’t being used.
In Part 2 I’ll go over the options for creating editable navigation and allowing clients to create new pages.