<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Barnaby Scott</title>
	<atom:link href="http://barnabyscott.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://barnabyscott.co.uk</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Thu, 18 Aug 2011 15:25:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Setting the href attribute of an SVG link</title>
		<link>http://barnabyscott.co.uk/2011/setting-the-href-attribute-of-an-svg-link/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=setting-the-href-attribute-of-an-svg-link</link>
		<comments>http://barnabyscott.co.uk/2011/setting-the-href-attribute-of-an-svg-link/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 15:25:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[SVG]]></category>

		<guid isPermaLink="false">http://barnabyscott.co.uk/?p=38</guid>
		<description><![CDATA[I have been working on a project that required a fairly interactive SVG recently and ran into a small snag with links. To set an attribute of an SVG element you would normally do something like this: el.setAttributeNS&#40;null, &#34;visibility&#34;, 'visibile'&#41;; This doesn&#8217;t work with links because the href attribute is namespaced with xlink (It looks like [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working on a project that required a fairly interactive SVG recently and ran into a small snag with links. To set an attribute of an SVG element you would normally do something like this:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">el.<span style="color: #660066;">setAttributeNS</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;visibility&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'visibile'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>This doesn&#8217;t work with links because the href attribute is namespaced with <strong>xlink</strong> (It looks like this is being removed in SVG 2). So you would embed a link in a page like this:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">xlink:href</span>=<span style="color: #ff0000;">&quot;/about&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;InfoLink&quot;</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;_top&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>..wrapped nodes..<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p>And set the href attribute like this:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">el.<span style="color: #660066;">setAttributeNS</span><span style="color: #009900;">&#40;</span> <span style="color: #3366CC;">&quot;http://www.w3.org/1999/xlink&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;href&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;/otherpage&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://barnabyscott.co.uk/2011/setting-the-href-attribute-of-an-svg-link/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ExpressionEngine channel API &#8211; files</title>
		<link>http://barnabyscott.co.uk/2011/expressionengine-channel-api-files/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=expressionengine-channel-api-files</link>
		<comments>http://barnabyscott.co.uk/2011/expressionengine-channel-api-files/#comments</comments>
		<pubDate>Sat, 13 Aug 2011 09:57:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[ExpressionEngine]]></category>

		<guid isPermaLink="false">http://barnabyscott.co.uk/?p=32</guid>
		<description><![CDATA[I have recently been trying to insert channel data directly into an ExpressionEngine site using their API. The situation is a little better than that of my previous post regarding members as there is an API there for you to use. There are still some gotchas to the process tho. The most troublesome so far [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently been trying to insert channel data directly into an ExpressionEngine site using their API. The situation is a little better than that of my previous post regarding members as there is an API there for you to use. There are still some gotchas to the process tho. The most troublesome so far has been when the channel has a file field on it.In this post i&#8217;ll cover how to add the path to a file when inserting data without the need to have POST&#8217;d the data.</p>
<p>To begin, if you look at the data stored for an existing entry with a file in the <strong>channel_data</strong> table in your EE database you will see that it is stored in the format:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{filedir_3}imagename.jpg</div></div>
<p>So your first attempt at uploading the data you would probably try moving the image file to the correct directory then inserting the previous string with the correct directory id and field id. Like so:</em></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'api'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">api</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">instantiate</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'channel_entries'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'channel_categories'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'channel_fields'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'field_id_24'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/sprintf"><span style="color: #990000;">sprintf</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'{filedir_%u}%s'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dir_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filename</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">api_channel_entries</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">submit_new_entry</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$channel_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p><em>N.b. You can get the directory ids from the <strong>upload_prefs</strong> table and the field ids from the <strong>channel_fields</strong> table.</em></p>
<p>Doing that however results in the following:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{filedir_}{filedir_3}imagename.jpg</div></div>
<p>It looks like the Channel API inserts the directory id itself and as we didn&#8217;t pass it we get an empty string. Checking out the Publish form with Firebug we see that in addition to the <strong>field_id_24</strong> field it is sending a field called <strong>field_id_24_directory</strong> containing the directory id to store the image in. The next attempt now looks something like this:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'api'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">api</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">instantiate</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'channel_entries'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'channel_categories'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'channel_fields'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'field_id_24'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$filename</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'field_id_24_directory'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dir_id</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">api_channel_entries</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">submit_new_entry</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$channel_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>The still doesn&#8217;t work as you are left with this:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{filedir_}imagename.jpg</div></div>
<p>So you are passing all of the correct data but for some reason the directory id isn&#8217;t being recognised. After a lot of digging the trail eventually leads to the File fieldtype class&#8217; save method. which i will reproduce in full:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> save<span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$directory</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'field_id_'</span><span style="color: #339933;">.</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">field_id</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_directory'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$directory</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">input</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$directory</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'{filedir_'</span><span style="color: #339933;">.</span><span style="color: #000088;">$directory</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'}'</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Do you see the problem? After the Channel API being perfectly happy to run with data that you provide it rather than resorting to checking the $_POST variables the file fieldtype lets us down by requiring that the directory id is set in the POST data. Now we know what the problem is we can fix it, in a fairly hacky way. Our next and final attempt would look something like this:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'api'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">api</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">instantiate</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'channel_entries'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'channel_categories'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'channel_fields'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'field_id_24'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$filename</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'field_id_24_directory'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dir_id</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">api_channel_entries</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">submit_new_entry</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$channel_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>And thats it, we have successfully added an image to a channel entry without needing to POST the data through a form, the only side affect is that we are left feeling slightly dirty about our code.</p>
]]></content:encoded>
			<wfw:commentRss>http://barnabyscott.co.uk/2011/expressionengine-channel-api-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expression Engine extensibility</title>
		<link>http://barnabyscott.co.uk/2011/expression-engine-extensibility/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=expression-engine-extensibility</link>
		<comments>http://barnabyscott.co.uk/2011/expression-engine-extensibility/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 15:25:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[ExpressionEngine]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://barnabyscott.co.uk/?p=10</guid>
		<description><![CDATA[A recent project used Expression Engine which was on the whole a pleasant experience there was however an inevitable sour note. I found the process of developing a module slightly cumbersome. They seem to have emulated WordPress (or vice versa) with regard to the basic hooks and filters approach, which although meeting some simple needs, falls short [...]]]></description>
			<content:encoded><![CDATA[<p>A recent project used Expression Engine which was on the whole a pleasant experience there was however an inevitable sour note. I found the process of developing a module slightly cumbersome. They seem to have emulated WordPress (or vice versa) with regard to the basic hooks and filters approach, which although meeting some simple needs, falls short of full utility.</p>
<p>My aim was to create a module that among other things would add a new member to the site under a specific member group. This seemed like it would be a common use case that would be well covered by the core libraries. I started off digging through the <a href="http://expressionengine.com/user_guide/">user guide</a> with no success so moved on to the forums. Here again I was stumped mainly being pointed in the direction of third party modules like the <a href="http://www.solspace.com/software/detail/user/">Solspace User module</a>. I decided i would look at the ExpressionEngine core to see how it was done there before shelling out $99 on something i might not need.</p>
<p>After a dig about the result was the member module containing the <strong>register_member</strong> method which used the <strong>Member_register</strong> class, Bingo! A cursory check showed that it could meet my needs but being PHP4 and having no DocBlock  i was worried that it might be intended to be a private method and subject to change. I posted a <a href="http://expressionengine.com/forums/viewthread/192016/">simple query</a> to the official support forum, which was awarded with defining silence. This point i am a little disappointed in given that ExpressionEngine is a commercial product.</p>
<p>Moving on i dug deeper into the <strong>register_member</strong> function and discovered quite apart from my expectations that it was getting it&#8217;s data directly from $_POST and littered with calls to output methods. This class is seems, is to be used for one thing only: adding members based on the specific input of the registration form. I was left with rolling my own member code and inserting them directly into the database.</p>
<p>This strikes me as a missed opportunity for ExpressionEngine both for maintaining the quality of plugins and easing developer involvement. By providing and API for modules to perform CRUD operations on the database you could better ensure the quality of the data and the security of the system. The following code is an example of how this interface might function:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">try <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'member'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;<span style="color: #000088;">$user_id</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">EE</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Member</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addMember</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'username'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'dave'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'password'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ilovehorses'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'email'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'dave@example.com'</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> catch<span style="color: #009900;">&#40;</span> Exception <span style="color: #000088;">$e</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">// Do stuff</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Hopefully EllisLabs are moving towards this sort of core, as providing this sort of API not just for members but for all CRUD operations that a module would need could massively improve the ExpresisonEngine ecosystem for developers. An additional benefit of creating these APIs and making the core classes consumers of them is that you make it easier to run unit tests on ExpressionEngine.</p>
]]></content:encoded>
			<wfw:commentRss>http://barnabyscott.co.uk/2011/expression-engine-extensibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New install</title>
		<link>http://barnabyscott.co.uk/2011/new-install/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-install</link>
		<comments>http://barnabyscott.co.uk/2011/new-install/#comments</comments>
		<pubDate>Sun, 24 Jul 2011 11:30:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://barnabyscott.co.uk/?p=7</guid>
		<description><![CDATA[Hello again Turns out this is the only site that i didn&#8217;t have a backup of for my server move. Oh well it was pretty much inane babble anyway. I shall make a more concerted effort to update more frequently from now on]]></description>
			<content:encoded><![CDATA[<p>Hello again</p>
<p>Turns out this is the only site that i didn&#8217;t have a backup of for my server move. Oh well it was pretty much inane babble anyway.</p>
<p>I shall make a more concerted effort to update more frequently from now on</p>
]]></content:encoded>
			<wfw:commentRss>http://barnabyscott.co.uk/2011/new-install/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

