<?xml version="1.0" encoding="us-ascii" ?><document>	<article>		<overview>			<title>Building our website</title>			<short_summary>				An overview of the tools and technologies used to build the mitchenall.com website.			</short_summary>			<head_section>				<head>Building our website</head>				<para>The mitchenall.com website has evolved over the years using a wide range of tools.  For the current version we have further streamlined the process of creating pages and managing the content on the site and developed a suite of server-side scripts which we are in the process of releasing as freeware.</para>				<para>This article covers the tools which are in use and where to get more information about them.</para>				<head_section>					<head>Authoring the pages</head><para>Our primary tool for writing the HTML and XML content for out site is BBEdit 6.0 from <a href="http://www.barebones.com/" title="Go to Bare Bones Software" target="_blank">Bare Bones</a> software.  We do the entire page authoring on a Macintosh.  In the past we have used <a href="http://www.adobe.com/" title="Goto the Adobe website" target="_blank">GoLive</a> and <a href="http://www.macromedia.com/" title="Goto the Macromedia Website" target="_blank">DreamWeaver</a>, but now we prefer to do the entire HTML coding for this site using BBEdit to give us the most control.  Also, a great deal of the page content is dynamically generated, and BBEdit is a great text editor for PHP as it now provides PHP syntax colouring and integrates nicely with NetFinder and InterArchy.</para>					<para>Graphics are created using <a href="http://www.macromedia.com/" title="Go to the Macromedia website" target="_blank">Macromedia FireWorks</a>.  This is our favourite of all graphic editing packages for creating web graphics, as the export options are some of the best of any package.  It's also very quick and easy to use for creating buttons and other page furniture.  The files it saves are also always well optimised in terms of size.</para>				</head_section>				<head_section>					<head>XML to HTML Conversion</head>					<para>The <a href="http://www.w3.org/XML/" title="Go to the XML Standard page" target="_blank">XML</a> content on our site is converted to HTML using a <a href="http://www.php.net/" title="Go to the PHP Home Page" target="_blank">PHP</a> class and the SAX based <a href="http://php.net/manual/en/ref.xml.php" title="Go to PHP4 - XML Parser Documentation" target="_blank">XML parser in PHP</a>.  The reason we chose this route is because many ISPs don't support the <a href="http://php.net/manual/en/ref.domxml.php" title="Go to the PHP4 - DOM XML documentation" target="_blank">DOM XML support in PHP4</a> (due to the additional memory requirements as the document needs to be completely loaded into RAM) and XSLT isn't always installed with most ISPs.  Using the SAX based parser we are able to quickly convert the XML content to nicely formatted HTML including dynamically adding links to certain XML elements such as 4D Commands in code listings.</para>					<para>Using this approach we will later be able to add more XLink like features to further enhance the presentation of links on the website.</para>				</head_section>				<head_section>					<head>PHP Classes Used</head>					<para>Many the pages are generated dynamically based on standard templates with the content in XML format and the site structure information in a database.  A number of standard classes are used to help us generate the site and handle database access, etc.  PHP has extremely straightforward functions for handling database connections, but using <a href="http://sourceforge.net/projects/phplib" title="Go to the PHPLIB website" target="_blank">PHPLIB</a>, you can have a database independent API which allows you to change to a different database backend by changing 1 line of PHP.  PHPLIB has some great session tracking and authentication tools too, plus, it works with PHP3, so those stuck on olders servers can still use it.</para>					<para>A template class from the <a href="http://phpclasses.upperdesign.com" title="Go to the PHP Class Repository" target="_blank">PHP Class Repository</a> written by Richard Heyes is used for nearly all HTML template operations and allows us to separate nearly all the HTML from the PHP code.  This makes doing site-wide style changes much easier and the PHP code cleaner.</para>				</head_section>				<head_section>					<head>Web server</head>					<para>mitchenall.com run on a virtual server hosted on an Intel PIII machine running Linux with a <a href="http://www.zeus.co.uk/" title="Go to the Zeus website" target="_blank">Zeus</a> web server.  All the pages are semi-dynamic and generated with PHP4 and a <a href="http://www.mysql.com/" title="Go to the mySQL Website" target="_blank">mySQL</a> database.  This solution allows us to easily add new domains, web and mail services for our customers each with the same features as our own site, but with what appears as their own server.  The Zeus web server is a commercial product which has been optimised for CGI and dynamic website performance.  As this is a virtual server it shares the machine with many other websites although the performance is still excellent.</para>					<para>This solution is perfectly suitable for our current internet requirements as our site is fairly low-traffic at present.  We are planning to move to a dedicated server solution based on a similar operating system set-up in the near future to further increase the performance of our site and to add more facilities to our customers.</para>				</head_section>				<head_section>					<head>Site Administration</head>					<para>As our site is heavily database orientated (mitchenall.com is, after all, the database and web-enabling company), much of the site administration is done via the supporting mySQL database.  We use a mixture of tools to help us with this.  On the Mac we have <a href="http://www.rtlabs.com/" title="Go to RT Labs Website (for MacSQL Monitor)" target="_blank">MacSQL Monitor</a> 1.6, which is a reasonable client for mySQL and a few other databases.  We also used a web-based mySQL Admin tool from <a href="http://www.phpwizard.net/" title="Go to the phpWizard Website (for phpMyAdmin)" target="_blank">phpWizard</a> call phpMyAdmin which is well worth looking at.</para>					<para>To help maintain the site index, recommended reading list, external links and related links, we have an on-line site admin tool written in PHP4 which lets the webmaster modify these items quickly and easily using a selection of admin web pages.</para>				</head_section>			</head_section>		</overview>	</article></document>