By James Booth
So you want to showcase your work on the Web, but you don't know squat about running a Web site? Neither did I. I was making due with FrontPage, but wasn't really on intimate terms with it. The site was getting pretty large and becoming difficult to manage manually. I knew it was time for a content management system, and that's how I found CityDesk from Fog Creek Software.
What is a CMS (content management system)? Put simply, a content management system is "a software system for organizing and facilitating the collaborative creation of documents and other content." Thanks, Wikipedia. In this case, it's used for managing a Web site, Web content, and editing and constructing articles.
The ZENPRESS system we use to publish the ZATZ magazines began life as a content management system, but has grown far beyond that by this time. It not only manages articles, but all our ads, weekly update mailings, RSS feeds, author pages, and even more. For the Web site I was building personally, ZENPRESS nuclear-level overkill, so I decided to check out CityDesk.
How does a content management system help you publish your work on the Net? Using templates can ensure global continuity, and make it simple to drop in content. A CMS can update and publish your content for you. And the use of scripts, short segments of programming code, can automate many tasks. CityDesk from Fog Creek, seen in Figure A, is just such a CMS.
FIGURE A
CityDesk starts up with a nice picture of a city. (click for larger image)
So, why are we talking about CityDesk here in Connected Photographer? The answer is simple: once you take your pictures, many of you will want to put them online. We've discussed doing this with services like Flickr, but if you're going to create a full Web site, you'll need a content management system like CityDesk or ZENPRESS. Since ZENPRESS isn't available to end users, CityDesk is at least a good starting point.
CityDesk overview
CityDesk automates the process of formatting and creating pages, site navigation, and publishing to a server. Layout and appearance only need to be defined once. Afterwards, you can edit, or add and remove articles using the built-in word processor. Publishing changes are done with a single click.
Some of CityDesk's advanced features include the use of scripts and variables, template families, multiple publishing locations, and "Never Publish Before/After" control. With all of this, CityDesk runs on a Windows computer, with nothing required to be on the server. It uses file copy or FTP for file transfer and publishing to the server.
And it's all backed by an excellent Fog Creek promise. If, for any reason, you aren't satisfied within the first 90 days, you get a full refund. No questions asked. This is an excellent policy and we explicitly want to point it out, since it's something other vendors should provide. But will you be satisfied? For that, you'll have to read on.
Functional overview
To test the creation and management of CityDesk, I actually created a Web site. The site had a multi-level structure, with image galleries, frequent updates, and archiving. The intent of the test was to see just exactly how easy it was to create, update the site and how automated the site could become.
CityDesk conveniently uses a Windows File System interface for navigation and creation, so even the most novice of users should feel comfortable in its environment, shown in Figure B.
FIGURE B
CityDesk uses a familiar interface. (click for larger image)
Creating the body, or text, of your pages is as simple as typing it in the article window. Or merely cut and paste it. You can then fine tune the formatting, assign a template, publish date, choose a language or languages, and audiences. By assigning the audience, you can control who has access to that particular page, or the entire site, and who doesn't.
Templates are the backbone of CityDesk. Everything is done via templates. They make it possible for everything to look the same, or to add diversity thoughout the site. And they make it possible to institute global changes with ease. In Figure C, you'll find the template interface, and some of the templates created for the test site.
FIGURE C
Templates allow CityDesk to generate a variety of pages. (click for larger image)
Figure D shows the template for the Home page of the test site.
FIGURE D
The home page template. (click for larger image)
In Figure E, you see the template used for articles.
FIGURE E
The articles template. (click for larger image)
Figure F shows the template for the Coach's Corner column.
FIGURE F
The Coach's Corner template. (click for larger image)
In the case of the test site, the templates didn't have a whole lot of variety in their features, one to another. But your templates can be as simple, as complex, or as varied as you'd like. CityDesk will even create templates for you via import from other page builders, like FrontPage. Be forewarned though, FrontPage has a tendency to do something weird to the code at times. If you're familiar with HTML, then you should be able to find the error. If not, then you may need to seek some assistance.
CityScript
The real power of CityDesk is in the CityScript scripting routines, shown in Figure G.
FIGURE G
CityScript give CityDesk its strength and versatility. (click for larger image)
These scripts are what make it possible to automate many of your site's functions, such as lists and archiving. Beware though, CityScript can cause as many headaches as it cures. Having previous experience in coding would be helpful.
I did encounter some problems with my scripting, and after consulting three other programmers, and Fog Creek support, I still did not have a solution. Eventually, CityDesk guru Terry Kearns was able to dredge up the answer to my problem in Fog Creek's old archives.
It would seem that CityDesk treats every variable as a global variable. And that was where I ran into trouble. The scripting examples in the documentation always used the same variable, so I did too. What caused a problem was when one script made a call to a page containing another script (which used the same variable). The fix is rather simple... just use a unique variable in each script.
Although this fix may seem rather simple and straightforward, three professional programmers, and Fog Creek's tech support were unable to find the error. It may have just been a case of seeing the forest for the trees, but Fog Creek tels me a clarification in the documentation is scheduled. As of press time though, it had not been updated.
We should note that treating all variables as global is not a good design architecture. It makes the symbol table lookups easy for the CityDesk programmers, but it makes scripting far more difficult and unreliable than it should be. When scripting is part of a program, as it is in CityDesk, it shouldn't be a bolt-on solution. Scripting boosts a product into an entirely new level and it should support good programming practice inherently in its design. Making everything global is not good programming practice.
Another update FogCreek has promised to make to the documentation regards where the scripts are actually placed. I found this information to be rather vague, and only found the answer by trial and error. For purposes of clarity, I will come right out and say it. The scripts go in the very same place you would put the text and images for your pages.
Scripts can go a long way toward automating may site functions, and some users have even managed to generate thumbnail images with CityScript. I didn't. I opted for the "easier" method of direct placement shown in Figure H.
FIGURE H
Each thumbnail is a link that opens the full-size image in a new window. (click for larger image)
If you're an experienced programmer, or like fiddling with code, you may be able to figure out a way for CityScript to generate a grid of thumbnails.
Conclusion
CityDesk has so many features, in fact, that it would be impossible to cover each and every one in an article of this scope. Whether you're a hard core webmaster, or new to Web publishing, CityDesk will definitely make your publishing experience easier and more manageable -- provided you can master the scripting.
Even if you do have trouble with the scripts, there are a lot of very helpful resources available online, in addition to the support at FogCreek. Coming from someone that is not all that savvy when it comes to setting up and maintaining a Web site, CityDesk eliminates a lot of the hands-on work. Once your site is up and running, the hard part is done. And because it's an all-inclusive package, you don't have to worry about dealing with PHP, CGI, or having specialized software installed on your server. I give CityDesk from Fog Creek Software 3 out of 5.
One of the nice things about CityDesk is there's a free version, limited to a total of 50 files (including articles, pictures, and everything). You can try it out and get to know how a CMS works. The full product is a more pricey $299 per user.
RATING: 3 STARS