![]() |
![]() |
|
|
||
A few years ago (1997), on a whim I decided to put up a website about not liking to cook. Truth is I'd rather be anywhere but in the kitchen so that is what I named my website: Anywhere But In the Kitchen. At the time, I had no idea that recipe sites were so popular. I was just presenting my own "get out of the kitchen fast" tips and tricks and hoped others would do so too. I figured I wasn't the only one who doesn't just love to cook. So I wrote some copy, made some graphics, and enlisted William's help to create a CGI program so that folks could share their recipes, and then a program so folks could request a recipe and others could respond. (It is so marvelous having a programmer in the house ;-) ) We added the usual "recommend this site" and "feedback" forms, of course. With some fun to read content and the interactive opportunities, we put the site up and hardly gave a thought to if or how it would grow into anything. But the website did grow! And grow. And grow! And it became a maintenance nightmare. The worst culprits were
It was time consuming, tedious (read odious) work and I tended to put it off until the task was too huge to ignore and too ugly to bear. We've done minor revisions of the site design from time to time, updating graphics, adding new features "email this recipe to yourself" for example. Last year we did some tweaking of the programs that posted request and their answers to keep the page from getting too long, too fast, but what we really needed was an automated maintenance system. So that became my latest project automating the Kitchen. This was my plan of action:
Let's look at each of these items separately. 1. Streamline the layout design using SSI The plain and simple reason for using SSI on a website is to make updating quicker and future changes much easier. For the Kitchen I sketched out the index page as I wanted the site to look:
From this layout, I created two text files to be included with SSI on every page. One file contains the logo and navigation. The other file contains the bottom copyright notice and link to WillMaster.com. The rest of the index page consists of a table with the top left area for the page introduction, the top right area for the search box, and the rest for page content. This made "redoing" the site into the leaner design very simple, requiring little time to "cut" the introductory text and "paste" it into the appropriate spot on the template; then repeat with the page content. The real beauty of this system comes into play the next time I revamp this site. And there will be a next time; otherwise this site would become stale and appear outdated. Because I'm using SSI, I can change the navigation, or the logo, or add new categories by making the change in only one file; a file inserted in all pages with SSI. (Note: I chose to leave the index page a regular .html page so search engine referrals would not require redirecting; so, technically, to make a change as described in the above paragraph would require amendments to two files.) SSI has much to be said for it in terms of planning for future expansion. I rarely design a site without it, anymore. (2) Utilize Style Sheets When I first designed the Kitchen site, back in 1997, I designated type style the same way every one did in the "olden days" with tags. Now that font tags and many other tags we used for "styling" our pages are being deprecated, all those old sites need to be brought into the 21st century with Cascading Style Sheets. (Note: Some folks hate style sheets and refuse to use them. OK. But for me, they are another tool in my "easier maintenance arsenal". I don't design without them.) One style sheet, one bit of code in the head tag of every page and the whole site has one "look", one style that unifies the site. If I get bored with the current style, I can dig out the style sheet, change the font face, font color, background color, header style any little tweak I want to make, and the changes I make in that one file is instantly implemented over the whole site. Gotta love it! (So how did I get rid of the old styling tags still embedded in the copy? Search and replace!) (3) Automate as much as possible the "filing" of recipes into correct categories Here's the problem: We had to devise a system of categorizing every recipe that was contributed so the thousands of files could be browsed without the Cake Recipes being mixed in with the "Beef Entrees". William, being the database expert that he is, devised a database system that sorts the files appropriately and displays them on demand. But here's the cruncher: somebody has to assign a category to each recipe either at the point that they enter the system or at some other point. To assign them at the point they enter the system meant relying on the accuracy of each contributor. 99.9% of the folks who visit the Kitchen site have kind and considerate intentions. However the level of "computer savvy" for these visitors is not always in the upper half of the spectrum. It became a question of whether it would be easier to catch the "missassigned" files or would it be easier to assign all categories myself. Reluctantly, I had to admit it would be easier to do the assignment myself than to try to catch errors. The old system: Each recipe that came into the system was assigned to the "Newest Recipe" category. It was my job, when I cleaned the old posts off the contribution pages to reassign each recipe file to the appropriate category. Download the files, rename them appropriately, upload them again. The existing software then updated the indexes so that each recipe could be located within it's category. Well. Desperation being the mother of invention, I made a program for myself to assist in the process. I am so thrilled! Three clicks in my control panel and the recipe is correctly assigned and will be displayed appropriately. And because of the way we have set up the contributions (next section), I can keep up on the process on a daily basis and not have to wait until "maintenance week". [Big Sigh of Relief] Two pertinent questions might be asked at this point:
(4) Automate maintenance of "Request a Recipe" page
The "Request a Recipe" page is now using a modified version of Master Board, introduced in this newsletter a few weeks ago. Master Board doesn't require much load time as the initial page only shows the requests. Each request gets it's own page with all related responses displayed with it. PLUS, it is programmed to delete or archive threads that have been inactive for a specified period of time. This means I don't have to manually clear out the Request Board every couple weeks. The important modification made to Master Board was to allow Master Board not only to write the file to the Board database but to also write the recipe (if it is one) to the recipe database. Very nifty. The "Share a Recipe" page didn't need all the features of a Bulletin Board. It is basically a guest book that is now modified to automatically write the recipe to the recipe database, just as the new Request Board does. Time spent on this revision? About a week, all told. A week well spent in avoiding the drudgery of future maintenance chores. You can see the result at http://willmaster.com/a/8/pl.pl?86artref What's the lesson learned here today? Next time you get a whim to put up a website, plan for it's popularity! Plan ahead for maintenance: SSI, Cascading Style Sheets, CGI programs that automate your chores these can be your friends! See you in the Kitchen :) Mari Bontrager Copyright 2001 Mari Bontrager
| ||