<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Richard Willars</title>
	
	<link>http://www.richardwillars.com</link>
	<description>Web Designer / Web Developer / Application Builder</description>
	<lastBuildDate>Wed, 28 Oct 2009 16:20:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/RichardWillars" /><feedburner:info uri="richardwillars" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FRichardWillars" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FRichardWillars" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FRichardWillars" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/RichardWillars" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FRichardWillars" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FRichardWillars" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FRichardWillars" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>Share &amp; Resolve</title>
		<link>http://feedproxy.google.com/~r/RichardWillars/~3/3WpK94vWuBw/</link>
		<comments>http://www.richardwillars.com/my-work/share-resolve/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 16:17:53 +0000</pubDate>
		<dc:creator>Richard Willars</dc:creator>
				<category><![CDATA[My Work]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[build]]></category>

		<guid isPermaLink="false">http://www.richardwillars.com/?p=129</guid>
		<description><![CDATA[Client: Share and Resolve – a company that provides a specialist bespoke service for those who have suffered a head injury and wish to begin the process of returning to work or further education.
Project: http://www.shareandresolve.co.uk
Working for WebServ UK I developed an informative and simple website for this small company. The site allows potential customers to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Client:</strong> Share and Resolve – a company that provides a specialist bespoke service for those who have suffered a head injury and wish to begin the process of returning to work or further education.</p>
<p><strong>Project: </strong><a href="http://www.shareandresolve.co.uk">http://www.shareandresolve.co.uk</a></p>
<p>Working for WebServ UK I developed an informative and simple website for this small company. The site allows potential customers to find information regarding the company and the services that they provide. I worked  with graphic designers within WebServ UK to produce a website and brand for Share and Resolve that matched perfectly.</p>
<p>The site is powered by PHP 5 and MySQL and runs on a bespoke content management system to allow the company employees to maintain the site in an easy to use environment. It was great fun working with Share and Resolve and it&#8217;s always a pleasure to be involved in a website that exists for a fantastic purpose and to help others.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RichardWillars?a=3WpK94vWuBw:OuzLIPUH0zs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=3WpK94vWuBw:OuzLIPUH0zs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=3WpK94vWuBw:OuzLIPUH0zs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=3WpK94vWuBw:OuzLIPUH0zs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=3WpK94vWuBw:OuzLIPUH0zs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=3WpK94vWuBw:OuzLIPUH0zs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=3WpK94vWuBw:OuzLIPUH0zs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=3WpK94vWuBw:OuzLIPUH0zs:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.richardwillars.com/my-work/share-resolve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.richardwillars.com/my-work/share-resolve/</feedburner:origLink></item>
		<item>
		<title>Independent Financial Advice Bureau</title>
		<link>http://feedproxy.google.com/~r/RichardWillars/~3/zDRAmIhzAKc/</link>
		<comments>http://www.richardwillars.com/my-work/independent-financial-advice-bureau/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 16:05:49 +0000</pubDate>
		<dc:creator>Richard Willars</dc:creator>
				<category><![CDATA[My Work]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://www.richardwillars.com/?p=123</guid>
		<description><![CDATA[Client: Independent Financial Advice Bureau – a company that provides  financial advice to clients in the Staffordshire and Midlands area.
Project: http://www.independentfinancialadvicebureau.co.uk
Working for Staffordshire University I developed an informative and simple website for this small company. The site allows potential customers to find information regarding the company and the services that they provide. I also [...]]]></description>
			<content:encoded><![CDATA[<p>Client: Independent Financial Advice Bureau – a company that provides  financial advice to clients in the Staffordshire and Midlands area.</p>
<p>Project: <a href="http://www.independentfinancialadvicebureau.co.uk">http://www.independentfinancialadvicebureau.co.uk</a></p>
<p>Working for Staffordshire University I developed an informative and simple website for this small company. The site allows potential customers to find information regarding the company and the services that they provide. I also worked with the company to improve their logo and establish a professional and informative brand.</p>
<p>The site is powered by PHP 5 and MySQL and runs on a bespoke content management system to allow the company employees to maintain the site in an easy to use environment.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RichardWillars?a=zDRAmIhzAKc:xh3B1h5gnKU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=zDRAmIhzAKc:xh3B1h5gnKU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=zDRAmIhzAKc:xh3B1h5gnKU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=zDRAmIhzAKc:xh3B1h5gnKU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=zDRAmIhzAKc:xh3B1h5gnKU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=zDRAmIhzAKc:xh3B1h5gnKU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=zDRAmIhzAKc:xh3B1h5gnKU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=zDRAmIhzAKc:xh3B1h5gnKU:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.richardwillars.com/my-work/independent-financial-advice-bureau/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.richardwillars.com/my-work/independent-financial-advice-bureau/</feedburner:origLink></item>
		<item>
		<title>AcE Manager</title>
		<link>http://feedproxy.google.com/~r/RichardWillars/~3/5gzxeF4j5Co/</link>
		<comments>http://www.richardwillars.com/my-work/ace-manager/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 15:45:10 +0000</pubDate>
		<dc:creator>Richard Willars</dc:creator>
				<category><![CDATA[My Work]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://www.richardwillars.com/?p=117</guid>
		<description><![CDATA[Client: Centre for Research in Early Childhood (CREC) – a company dedicated to raising the quality of early childhood and family provision in order to enhance the life chances of children
Project: https://www.amberpublications.org.uk/manager/
Working for Staffordshire University I developed a child behaviour tracking and analysis system for CREC. The site is a unique web application that allows [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Client:</strong> Centre for Research in Early Childhood (CREC) – a company dedicated to raising the quality of early childhood and family provision in order to enhance the life chances of children</p>
<p><strong>Project:</strong> <a href="https://www.amberpublications.org.uk/manager/" target="_blank">https://www.amberpublications.org.uk/manager/</a></p>
<p>Working for Staffordshire University I developed a child behaviour tracking and analysis system for CREC. The site is a unique web application that allows child behaviours to be tracked and improved throughout their time in nurseries, and is now used by any teachers who are involved in the CREC scheme. I worked with the client to tailor their specification and to thoroughly understand what they were trying to achieve, and then set about developing this complex and vast application.</p>
<p>The site is powered by PHP 5 and MySQL, and also features import and export functionality so data can be integrated with other systems. I enjoyed this project because it was so unique and also gave me the opportunity to build a system that could benefit thousands of young people in the future.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RichardWillars?a=5gzxeF4j5Co:RiTAAORHsUg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=5gzxeF4j5Co:RiTAAORHsUg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=5gzxeF4j5Co:RiTAAORHsUg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=5gzxeF4j5Co:RiTAAORHsUg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=5gzxeF4j5Co:RiTAAORHsUg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=5gzxeF4j5Co:RiTAAORHsUg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=5gzxeF4j5Co:RiTAAORHsUg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=5gzxeF4j5Co:RiTAAORHsUg:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.richardwillars.com/my-work/ace-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.richardwillars.com/my-work/ace-manager/</feedburner:origLink></item>
		<item>
		<title>Google chart sparkline – encoding in PHP</title>
		<link>http://feedproxy.google.com/~r/RichardWillars/~3/UT7VmSw5cM8/</link>
		<comments>http://www.richardwillars.com/articles/php/google-chart-sparkline-encoding-in-php/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 11:53:01 +0000</pubDate>
		<dc:creator>Richard Willars</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[encode]]></category>
		<category><![CDATA[google chart]]></category>

		<guid isPermaLink="false">http://www.richardwillars.com/?p=58</guid>
		<description><![CDATA[The Google Chart API is quite powerful and easy to use, with many customisations available. For my projects i&#8217;ve been using the &#8216;simple encoding&#8216; method for passing chart data to the Google Chart API. After doing a search on the Internet for a PHP script that converts the data into the encoded string and failing [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://code.google.com/apis/chart/" target="_blank">Google Chart API</a> is quite powerful and easy to use, with many customisations available. For my projects i&#8217;ve been using the &#8216;<a href="http://code.google.com/apis/chart/formats.html#simple" target="_blank">simple encoding</a>&#8216; method for passing chart data to the Google Chart API. After doing a search on the Internet for a PHP script that converts the data into the encoded string and failing miserably I decided to write my own. This simple PHP function to convert a numerical array of data into the encoded string.<span id="more-58"></span></p>
<pre>&lt;?php
function simpleEncode($valueArray,$maxValue) {
	$simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
	$str = 's:';
	$t = count($valueArray);
	for ($i=0;$i&lt;$t;$i++) {
		$currentValue = $valueArray[$i];
		if ((strlen($currentValue)!=0) &amp;&amp; ($currentValue&gt;=0)) {
    		$str .= substr($simpleEncoding,round((strlen($simpleEncoding)-1) * $currentValue / $maxValue),1);
    	}
      	else {
      		$str .= '_';
      	}
  	}
	return $str;
}
?&gt;</pre>
<p>You can then create the graph in a similar fashion to this:</p>
<pre>&lt;?php
$data = array(1,3,5,3,2,9,1,10,4);
?&gt;
&lt;img alt="sparkline" src="http://chart.apis.google.com/chart?cht=lc&amp;chs=100x30&amp;chls=1,1,0&amp;chxt=r,x,y
&amp;chxs=0,990000,11,0,_|1,990000,1,0,_|2,990000,1,0,_&amp;chxl=0:||1:||2:||&amp;chd=&lt;?php echo simpleEncode($data,max($data)); ?&gt;"/&gt;</pre>
<p>Which would output something similar to this:</p>
<p><img src="http://chart.apis.google.com/chart?cht=lc&amp;chs=100x30&amp;chls=1,1,0&amp;chxt=r,x,y&amp;chxs=0,990000,11,0,_|1,990000,1,0,_|2,990000,1,0,_&amp;chxl=0:||1:||2:||&amp;chd=s:KKKKKUUppzz9" alt="example sparkline" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RichardWillars?a=UT7VmSw5cM8:09RnDUvI1T8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=UT7VmSw5cM8:09RnDUvI1T8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=UT7VmSw5cM8:09RnDUvI1T8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=UT7VmSw5cM8:09RnDUvI1T8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=UT7VmSw5cM8:09RnDUvI1T8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=UT7VmSw5cM8:09RnDUvI1T8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=UT7VmSw5cM8:09RnDUvI1T8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=UT7VmSw5cM8:09RnDUvI1T8:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.richardwillars.com/articles/php/google-chart-sparkline-encoding-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.richardwillars.com/articles/php/google-chart-sparkline-encoding-in-php/</feedburner:origLink></item>
		<item>
		<title>PHP Form Processor – version 2!</title>
		<link>http://feedproxy.google.com/~r/RichardWillars/~3/65QkrbWJRcI/</link>
		<comments>http://www.richardwillars.com/blog/php-form-processor-version-2/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 15:38:51 +0000</pubDate>
		<dc:creator>Richard Willars</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[processor]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.richardwillars.com/?p=41</guid>
		<description><![CDATA[Happy new year everybody! I&#8217;d thought I&#8217;d start off the new year with a little present for you all.. the new version of my PHP Form Processor. Thanks to Andrew Dunn for some excellent ideas on how to improve the processor, as well as for tweaking bits of code here and there, I&#8217;m able to [...]]]></description>
			<content:encoded><![CDATA[<p>Happy new year everybody! I&#8217;d thought I&#8217;d start off the new year with a little present for you all.. the new version of my PHP Form Processor. Thanks to Andrew Dunn for some excellent ideas on how to improve the processor, as well as for tweaking bits of code here and there, I&#8217;m able to bring you version 2 of the form processor.</p>
<p>The last few months has seen some additional functionality added, as well as fixing a few bugs here and there. Version 2 of the processor is fully backwards compatible with version 1, so don&#8217;t panic!</p>
<p>Here&#8217;s a brief summary of the changes:</p>
<ul>
<li>Callbacks added to radio buttons</li>
<li>All functions now declared as public or private respectively</li>
<li>A configuration system, which lets you change the behaviour of the form processor</li>
<li>The ability to echo the form output or save it to a variable (useful for templating systems)</li>
<li>A text transform rule has been added, which allows you to set text to be lowercase, uppercase or uppercase the first letter of each word</li>
<li>A minimum length rule has been added, which allows you to set the minimum number of characters a user must enter</li>
<li>A maximum length rule has been added, which allows you to set the maximum number of characters a user must enter</li>
<li>Cleaned up the code</li>
<li>Swapped exit() statements with exceptions, so these can be caught and handled if necessary</li>
</ul>
<p>I&#8217;ve also created a few example forms to show the functionality of the form processor. Please take a look at the <a href="http://www.richardwillars.com/articles/php/php-form-processor/">PHP Form Processor article</a> for full details.</p>
<p>Gavin Holt is also doing a series of articles demonstrating practical usage of the form processor. <a href="http://www.gavin-holt.com/articles/tutorial-series-php-forms-made-easy/" target="_blank">Check it out</a> for some excellent ideas and usage examples.</p>
<p><a href="http://www.richardwillars.com/demos/fp/formprocessor.zip" target="_blank">DOWNLOAD THE PHP FORM PROCESSOR<br />
</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RichardWillars?a=65QkrbWJRcI:k0NLIM5srR4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=65QkrbWJRcI:k0NLIM5srR4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=65QkrbWJRcI:k0NLIM5srR4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=65QkrbWJRcI:k0NLIM5srR4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=65QkrbWJRcI:k0NLIM5srR4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=65QkrbWJRcI:k0NLIM5srR4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=65QkrbWJRcI:k0NLIM5srR4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=65QkrbWJRcI:k0NLIM5srR4:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.richardwillars.com/blog/php-form-processor-version-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<enclosure url="http://www.richardwillars.com/demos/fp/formprocessor.zip" length="15910" type="application/zip" /><feedburner:origLink>http://www.richardwillars.com/blog/php-form-processor-version-2/</feedburner:origLink></item>
		<item>
		<title>PHP Form Processor</title>
		<link>http://feedproxy.google.com/~r/RichardWillars/~3/6SJ80v-GFwU/</link>
		<comments>http://www.richardwillars.com/articles/php/php-form-processor/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 12:33:36 +0000</pubDate>
		<dc:creator>Richard Willars</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[processor]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.richardwillars.com/?p=40</guid>
		<description><![CDATA[A powerful open source PHP form processor that allows for rapid development and maintainence, as well as protecting your website forms from various hacking attacks.]]></description>
			<content:encoded><![CDATA[<p>Ever since I started building websites I&#8217;ve found making forms to be time consuming, tedious and generally boring, and I&#8217;m pretty sure most web developers are in a similar situation.</p>
<p>First of all you have your HTML form, which then submits all the data to PHP to be validated etc. You have to write the validation rules for each form field in PHP, and then come up with a system of reporting errors back to the user. With large forms this can get extremely complicated!</p>
<p>Around two years ago I came across a <a href="http://simonwillison.net/2003/Jun/17/theHolyGrail/">form validator by Simon Willison</a>. This basically let you write the entire form and it&#8217;s validation rules in the html. These rules are then read by PHP, applied to the relevant form fields and so on. It&#8217;s a very elegant solution that makes building forms much easier and faster, as well as easier to debug and maintain. I&#8217;ve been using this script for the last 2 years and have made various changes to the script along the way to suit my purposes.</p>
<p>However, the script does have it&#8217;s down-points. It uses the PHP 4 XML library which to be honest is rubbish! It causes the code to become extremely bloated and  unable to handle certain characters such as ampersands (&amp;). This means that as soon as a user enters an ampersand or a character like a dollar, the script would crash!</p>
<p>The script also only supported textfields, and didn&#8217;t provide support for radio buttons, checkboxes and select drop-down lists.</p>
<p>With all these positives and negatives in mind I&#8217;ve built my own PHP Form Processor from scratch, which I think does the job quite nicely. The script is open source and I&#8217;ve provided a tutorial and several example forms on how to use it.</p>
<p>The script also protects your forms against CSRF (Cross-site request forgery) and form manipulation. Anyway, without futher ado, here is the tutorial..<span id="more-40"></span></p>
<p><strong>Requirements</strong></p>
<ul>
<li>PHP 5 with SimpleXML support</li>
<li>Session support</li>
<li>Cheese on toast</li>
</ul>
<p><strong>Demonstration</strong></p>
<p>Traditionally an XHTML form input box would look like this:</p>
<pre>&lt;input type="text" id="myBox" name="myBox" /&gt;</pre>
<p>Using the PHP form processor this would be written as:</p>
<pre>&lt;element id="myBox"&gt;
 &lt;input type="text" /&gt;
 &lt;error&gt; &lt;strong class="error"&gt;!&lt;/strong&gt;&lt;/error&gt;
 &lt;compulsory message="myBox must be filled in" /&gt;
 &lt;validate test="alpha" message="myBox must only be letters" /&gt;
&lt;/element&gt;</pre>
<p>At first glance it looks a lot more bloated than the traditional method, so lets take a look at what it&#8217;s doing and why it&#8217;s better.</p>
<p>When using the form processor all the form items are wrapped in element tags. The element tag tells the form processor that it&#8217;s a form field, and also specifies the ID. Within the element tag we define the properties and rules of the form field. In the above example we&#8217;re telling the form processor that the form field we want is a text field (&lt;input type=&#8221;text&#8221; /&gt;), as well as defining various rules to apply to the user&#8217;s input.</p>
<p>The line  &#8217;&lt;error&gt; &lt;strong class=&#8221;error&#8221;&gt;!&lt;/strong&gt;&lt;/error&gt;&#8217; defines what is displayed when a validation rule fails. In this case a bold exclamation mark would be displayed just after the text field.</p>
<p>The next few lines are the rules which we want to apply to the text field. The compulsory line states that the field must be filled in, and if it&#8217;s not present the message &#8216;myBox must be filled in&#8217; to the user. The validate line states that the user input must only be letters, and if it&#8217;s not present the message &#8216;myBox must only be letters&#8217; to the user.</p>
<p>Many rules can be applied to the form fields. They will be applied to the form field in the order that you define them (top to bottom). For example, if there are 3 rules defined for a form field and the first rule fails then the next 2 rules won&#8217;t be applied. Instead the error message for rule 1 will be shown to the user. If the 1st rule runs fine it&#8217;ll move onto the 2nd rule etc.</p>
<p>Here is a description of each of the rules available:</p>
<p><strong>Compulsory</strong></p>
<p>Checks whether the user has entered any input or not.</p>
<pre>&lt;compulsory message="This field is compulsory" /&gt;</pre>
<table border="0">
<tbody>
<tr>
<td>Textfield</td>
<td>Password</td>
<td>Textarea</td>
<td>Dropdown list</td>
<td>Checkbox</td>
<td>Radio button</td>
<td>Button</td>
</tr>
<tr>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>No</td>
<td>No</td>
<td>No</td>
</tr>
</tbody>
</table>
<p><strong>Validate</strong></p>
<p>Checks whether the user input matches the format specified. The format can be alpha, alphanumeric or numeric.</p>
<pre>&lt;validate test="alpha" message="email must be alpha" /&gt;</pre>
<table border="0">
<tbody>
<tr>
<td>Textfield</td>
<td>Password</td>
<td>Textarea</td>
<td>Dropdown list</td>
<td>Checkbox</td>
<td>Radio button</td>
<td>Button</td>
</tr>
<tr>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>No</td>
<td>No</td>
<td>No</td>
</tr>
</tbody>
</table>
<p><strong>Regular Expression</strong></p>
<p>Checks whether the user input matches the regular expression specified.</p>
<pre>&lt;regexp test="|^[a-zA-Z]*$|" message="email doesn't match the regexp" /&gt;</pre>
<table border="0">
<tbody>
<tr>
<td>Textfield</td>
<td>Password</td>
<td>Textarea</td>
<td>Dropdown list</td>
<td>Checkbox</td>
<td>Radio button</td>
<td>Button</td>
</tr>
<tr>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>No</td>
<td>No</td>
<td>No</td>
</tr>
</tbody>
</table>
<p><strong>Text transform<br />
</strong></p>
<p>Alters how the user input is outputted.</p>
<pre>&lt;text transform="upper" /&gt; UPPERCASES THE ENTIRE INPUT
&lt;text transform="lower" /&gt; lowercases the entire input
&lt;text transform="ucwords" /&gt; Uppercases The First Letter Of Each Word</pre>
<table border="0">
<tbody>
<tr>
<td>Textfield</td>
<td>Password</td>
<td>Textarea</td>
<td>Dropdown list</td>
<td>Checkbox</td>
<td>Radio button</td>
<td>Button</td>
</tr>
<tr>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>No</td>
<td>No</td>
<td>No</td>
</tr>
</tbody>
</table>
<p><strong>Minimum length<br />
</strong></p>
<p>Checks whether the user input is of a required length.</p>
<pre>&lt;minLength length="4" message="This field must contain more than 3 characters" /&gt;</pre>
<table border="0">
<tbody>
<tr>
<td>Textfield</td>
<td>Password</td>
<td>Textarea</td>
<td>Dropdown list</td>
<td>Checkbox</td>
<td>Radio button</td>
<td>Button</td>
</tr>
<tr>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>No</td>
<td>No</td>
<td>No</td>
</tr>
</tbody>
</table>
<p><strong>Maximum length<br />
</strong></p>
<p>Checks whether the user input is greater than a required length.</p>
<pre>&lt;maxLength length="10" message="This field must contain less than 10 characters" /&gt;</pre>
<table border="0">
<tbody>
<tr>
<td>Textfield</td>
<td>Password</td>
<td>Textarea</td>
<td>Dropdown list</td>
<td>Checkbox</td>
<td>Radio button</td>
<td>Button</td>
</tr>
<tr>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>No</td>
<td>No</td>
<td>No</td>
</tr>
</tbody>
</table>
<p><strong>Match</strong></p>
<p>Checks whether the user input matches the user input in another field. Most common usage is for confirming passwords.</p>
<pre>&lt;match element="anotherFieldID" message="this field must match another field" /&gt;</pre>
<table border="0">
<tbody>
<tr>
<td>Textfield</td>
<td>Password</td>
<td>Textarea</td>
<td>Dropdown list</td>
<td>Checkbox</td>
<td>Radio button</td>
<td>Button</td>
</tr>
<tr>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>No</td>
<td>No</td>
<td>No</td>
</tr>
</tbody>
</table>
<p><strong>Callback</strong></p>
<p>Takes the user input and passes it to a PHP function of your choice. The function should take one parameter as a string (the user input), and return Boolean true or false. If the function returns false the error message will be presented to the user.</p>
<p>An unlimited number of callbacks can be defined for each form field &#8211; just place them one after another. Each callback will be run in order.. if the first one is ok then it moves onto the next one. However, if the first one fails it won&#8217;t run the other callbacks or rules.</p>
<pre>&lt;callback function="functionname" message="callback 1 failed" /&gt;</pre>
<table border="0">
<tbody>
<tr>
<td>Textfield</td>
<td>Password</td>
<td>Textarea</td>
<td>Dropdown list</td>
<td>Checkbox</td>
<td>Radio button</td>
<td>Button</td>
</tr>
<tr>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
</tr>
</tbody>
</table>
<p><strong>Summary &amp; goodies!</strong></p>
<p><strong></strong>The entire form and it&#8217;s rules are read in by PHP, which then goes through the form and extracts the rules. It then cleans up the form and produces strict XHTML which it outputs to the user. This means they never see the rules and just see standard XHTML markup.</p>
<p>It&#8217;s a difficult concept and you might be a bit confused at this point, so it&#8217;s probably best just to give you a working example. Here is a simple form which tests some of the functionality available (complete with source-code).</p>
<p><strong><a href="http://www.richardwillars.com/demos/fp/examples/" target="_blank">View example forms</a><br />
<a href="http://www.richardwillars.com/demos/fp/formprocessor.zip" target="_blank">Download the form processor (with examples) (version 2.01 &#8211; 24/01/2009)</a></strong></p>
<p><strong><br />
</strong></p>
<p>As always I&#8217;d love to hear from you, so any thoughts, comments, bugs etc, please post! I&#8217;d also like to see examples of where people have used it, so feel free to drop me links!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RichardWillars?a=6SJ80v-GFwU:5wzOe8XYXR4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=6SJ80v-GFwU:5wzOe8XYXR4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=6SJ80v-GFwU:5wzOe8XYXR4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=6SJ80v-GFwU:5wzOe8XYXR4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=6SJ80v-GFwU:5wzOe8XYXR4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=6SJ80v-GFwU:5wzOe8XYXR4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=6SJ80v-GFwU:5wzOe8XYXR4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=6SJ80v-GFwU:5wzOe8XYXR4:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.richardwillars.com/articles/php/php-form-processor/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		<enclosure url="http://www.richardwillars.com/demos/fp/formprocessor.zip" length="15910" type="application/zip" /><feedburner:origLink>http://www.richardwillars.com/articles/php/php-form-processor/</feedburner:origLink></item>
		<item>
		<title>It’s not often i’m blown away..</title>
		<link>http://feedproxy.google.com/~r/RichardWillars/~3/07SsrfzRHZs/</link>
		<comments>http://www.richardwillars.com/blog/general/its-not-often-im-blown-away/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 20:20:06 +0000</pubDate>
		<dc:creator>Richard Willars</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[woopra]]></category>

		<guid isPermaLink="false">http://www.richardwillars.com/?p=39</guid>
		<description><![CDATA[My discovery of Woopra and a few details on what it can do.]]></description>
			<content:encoded><![CDATA[<p>&#8230;but I was today. Fellow web developer <a href="http://www.gavin-holt.com">Gavin Holt</a> pointed out a new website analytics tool called <a href="http://www.woopra.com">Woopra</a>. I took a look at the website not expecting to be impressed, but then I watched a few videos demoing it and I just had to give it a go.</p>
<p>Two hours later my Woopra account was activated, and I&#8217;ve now got rid of Google Analytics and replaced it with Woopra. I can honestly say that after 5 minutes of using it it beats Google Analytics hands down in almost every aspect. The fact that I can see visitors as they appear on my site in real time, and then talk to them and watch the route they take through my site is frankly phenomenal. Google Analytics took 24 hours to update.. long after my visitors had been and gone.</p>
<p>My only concern is that people might get a bit privacy conscious if I suddenly start talking to them, and asking them if they&#8217;re liking the current the page they&#8217;re on! Do you see this in a different light? Would you be shocked if this happened to you?</p>
<p>The only flaw i&#8217;ve spotted so far is the pop-up chat is a bit unfriendly to initiate, but that would be an easy enough problem to rectify.</p>
<p>I&#8217;d recommend that anyone who has a website gives Woopra ago, just to experience the power! If you&#8217;re reading this post on my site watch out, I might just demo the power of Woopra to you <img src='http://www.richardwillars.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Let me know how you get on, and what you think it!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RichardWillars?a=07SsrfzRHZs:323w4nfzAfM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=07SsrfzRHZs:323w4nfzAfM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=07SsrfzRHZs:323w4nfzAfM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=07SsrfzRHZs:323w4nfzAfM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=07SsrfzRHZs:323w4nfzAfM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=07SsrfzRHZs:323w4nfzAfM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=07SsrfzRHZs:323w4nfzAfM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=07SsrfzRHZs:323w4nfzAfM:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.richardwillars.com/blog/general/its-not-often-im-blown-away/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.richardwillars.com/blog/general/its-not-often-im-blown-away/</feedburner:origLink></item>
		<item>
		<title>We love WordPress!</title>
		<link>http://feedproxy.google.com/~r/RichardWillars/~3/A2pDcq69pbc/</link>
		<comments>http://www.richardwillars.com/blog/general/we-love-wordpress/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 22:14:16 +0000</pubDate>
		<dc:creator>Richard Willars</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.richardwillars.com/?p=38</guid>
		<description><![CDATA[It&#8217;s always nice to get  recognition for your work, and I definitely received some today when my website was featured on We Love WP, a site that showcases aesthetically pleasing WordPress sites.  I&#8217;m not sure how popular the We Love WP site is, but it&#8217;ll be interesting to look at my traffic statistics tomorrow to see exactly how many users have visited [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s always nice to get  recognition for your work, and I definitely received some today when my website was featured on <a href="http://www.welovewp.com/">We Love WP</a>, a site that showcases aesthetically pleasing WordPress sites.  I&#8217;m not sure how popular the We Love WP site is, but it&#8217;ll be interesting to look at my traffic statistics tomorrow to see exactly how many users have visited my website.</p>
<p>If anyone can recommend any popular and respected website showcase sites, I&#8217;d love to hear from you. Or if you&#8217;re feeling in a really good mood and want to submit my website yourself, please feel free to!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RichardWillars?a=A2pDcq69pbc:rYAmjtoUuVc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=A2pDcq69pbc:rYAmjtoUuVc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=A2pDcq69pbc:rYAmjtoUuVc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=A2pDcq69pbc:rYAmjtoUuVc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=A2pDcq69pbc:rYAmjtoUuVc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=A2pDcq69pbc:rYAmjtoUuVc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=A2pDcq69pbc:rYAmjtoUuVc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=A2pDcq69pbc:rYAmjtoUuVc:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.richardwillars.com/blog/general/we-love-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.richardwillars.com/blog/general/we-love-wordpress/</feedburner:origLink></item>
		<item>
		<title>Willesley Online</title>
		<link>http://feedproxy.google.com/~r/RichardWillars/~3/tKbLKMmAT3A/</link>
		<comments>http://www.richardwillars.com/my-work/willesley-online/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 14:25:31 +0000</pubDate>
		<dc:creator>Richard Willars</dc:creator>
				<category><![CDATA[My Work]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://www.richardwillars.com/?p=37</guid>
		<description><![CDATA[Client: Ashby &#38; Coalville District Scouts
Project: http://www.willesley.org
I&#8217;ve been the  Web Developer for Ashby &#38; Coalville District Scouts for a few years now, and the website was due for a revamp, as well requiring a sophisticated backend to handle the administration of Willesley Campsite. The site features information on the district, the campsite, hosts mini [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Client:</strong> Ashby &amp; Coalville District Scouts</p>
<p><strong>Project:</strong> <a href="http://www.willesley.org/">http://www.willesley.org</a></p>
<p>I&#8217;ve been the  Web Developer for Ashby &amp; Coalville District Scouts for a few years now, and the website was due for a revamp, as well requiring a sophisticated backend to handle the administration of Willesley Campsite. The site features information on the district, the campsite, hosts mini websites for each group/unit in the district, as well as an entire booking system for the campsite.</p>
<p>This project took several months to complete, mainly due to the vastness and requirements of the campsite administration system. I did this project for free as a way of saying thank you for my years in Scouting and how it has improved my life.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RichardWillars?a=tKbLKMmAT3A:P4XjDp52Mhk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=tKbLKMmAT3A:P4XjDp52Mhk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=tKbLKMmAT3A:P4XjDp52Mhk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=tKbLKMmAT3A:P4XjDp52Mhk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=tKbLKMmAT3A:P4XjDp52Mhk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=tKbLKMmAT3A:P4XjDp52Mhk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=tKbLKMmAT3A:P4XjDp52Mhk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=tKbLKMmAT3A:P4XjDp52Mhk:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.richardwillars.com/my-work/willesley-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.richardwillars.com/my-work/willesley-online/</feedburner:origLink></item>
		<item>
		<title>SE Scotland Region Scouts</title>
		<link>http://feedproxy.google.com/~r/RichardWillars/~3/WUmhOVaOv6w/</link>
		<comments>http://www.richardwillars.com/my-work/se-scotland-region-scouts/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 14:11:55 +0000</pubDate>
		<dc:creator>Richard Willars</dc:creator>
				<category><![CDATA[My Work]]></category>
		<category><![CDATA[build]]></category>

		<guid isPermaLink="false">http://www.richardwillars.com/?p=36</guid>
		<description><![CDATA[Client: South East Scotland Region Scouts
Project: http://www.southeastscotlandscouts.org.uk
When The Scout Association reorganised their structure a few weeks ago, new websites were required for each of the regions. WebServ UK were called in to finish a half built design and convert it into a functioning Joomla template. Utilising XHTML, CSS and JavaScript technologies, the project was completed [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Client:</strong> South East Scotland Region Scouts</p>
<p><strong>Project:</strong> <a href="http://www.southeastscotlandscouts.org.uk/">http://www.southeastscotlandscouts.org.uk</a></p>
<p>When The Scout Association reorganised their structure a few weeks ago, new websites were required for each of the regions. WebServ UK were called in to finish a half built design and convert it into a functioning Joomla template. Utilising XHTML, CSS and JavaScript technologies, the project was completed within a matter of hours.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RichardWillars?a=WUmhOVaOv6w:SfA_GXBCmbM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=WUmhOVaOv6w:SfA_GXBCmbM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=WUmhOVaOv6w:SfA_GXBCmbM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=WUmhOVaOv6w:SfA_GXBCmbM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=WUmhOVaOv6w:SfA_GXBCmbM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=WUmhOVaOv6w:SfA_GXBCmbM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/RichardWillars?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/RichardWillars?a=WUmhOVaOv6w:SfA_GXBCmbM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/RichardWillars?i=WUmhOVaOv6w:SfA_GXBCmbM:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.richardwillars.com/my-work/se-scotland-region-scouts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.richardwillars.com/my-work/se-scotland-region-scouts/</feedburner:origLink></item>
	</channel>
</rss>
