<?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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0">

<channel>
	<title>Musings of ErisDS</title>
	
	<link>http://erisds.co.uk</link>
	<description>Web development, Symfony, Wordpress and general geekery</description>
	<lastBuildDate>Thu, 29 Jul 2010 11:02:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/erisds" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="erisds" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><image><link>http://erisds.co.uk</link><url>http://www.gravatar.com/avatar/cb82ccb3c72846f4e111348b8d5a01e5.png</url><title>Eris</title></image><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">erisds</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Snippet: Magento – Using OR and LEFT JOIN in addAttributeToFilter</title>
		<link>http://erisds.co.uk/magento/snippet-magento-using-or-and-left-join-in-addattributetofilter</link>
		<comments>http://erisds.co.uk/magento/snippet-magento-using-or-and-left-join-in-addattributetofilter#comments</comments>
		<pubDate>Thu, 29 Jul 2010 11:02:52 +0000</pubDate>
		<dc:creator>ErisDS</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[collections]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://erisds.co.uk/?p=1496</guid>
		<description><![CDATA[I'm still pretty new to Magento, and am learning more about it every day. I've been trying to learn all I can about internals such as managing collections &#038; recently stumbled on trying to filter a collection by two attributes. I wanted to build a list of all products that had one OR another attribute set to certain values.


Related posts:<ol><li><a href='http://erisds.co.uk/symfony/snippet-creating-debugging-complex-sql-queries-in-symfony' rel='bookmark' title='Permanent Link: Snippet: Creating &#038; Debugging Complex SQL queries in Symfony'>Snippet: Creating &#038; Debugging Complex SQL queries in Symfony</a><small>When working with large and complex datasets in Symfony, there...</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-accessing-the-object-in-a-form' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Accessing the Object in a Form'>Snippet: Symfony Forms &#8211; Accessing the Object in a Form</a><small>Perusing my Google Analytics data shows up some interesting results....</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-allowing-extra-fields' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Allowing Extra Fields'>Snippet: Symfony Forms &#8211; Allowing Extra Fields</a><small>Place this line of code in the configure method of...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m still pretty new to Magento, and am learning more about it every day. I&#8217;ve been trying to learn all I can about internals such as managing collections &#038; recently stumbled on trying to filter a collection by two attributes. I wanted to build a list of all products that had one OR another attribute set to certain values.</p>
<p>I found lots of documentation on <kbd>addAttributeToFilter</kbd> that showed how to add several filters creating an &#8220;AND&#8221; relationship and also examples how to test if a single attribute had one value or another. Perhaps it&#8217;s just me, but I always find it hard to find documentation on how to do anything more complex than the basics in Magento!</p>
<div class="codecolorer-container php twitlight" 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 />11<br />12<br /></div></td><td><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;">protected</span> <span style="color: #000000; font-weight: bold;">function</span> _prepareCollection<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000088;">$collection</span> <span style="color: #339933;">=</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">getModel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'catalog/product'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getCollection</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000088;">$collection</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addAttributeToFilter</span><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'attribute'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'my_attribute'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'eq'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'0'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'attribute'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'my_other_attribute'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'neq'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'0'</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'left'</span><br />
&nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>After a bit of playing I found you can pass nested arrays with different attribute values to create the &#8220;OR&#8221; relationship in the generated SQL. To get this working correctly I also had to pass &#8220;left&#8221; as the final parameter to make Magento use left joins rather than cross joins. It&#8217;s neat and tidy once you know it, but a bit awkward to figure out if you don&#8217;t!</p>
<p class="small"><strong>A Note on Snippets:</strong> To me Magento is a mind boggling world of abstraction, configuration and depths of potential knowledge. I find the documentation less than helpful and it is often the simplest pieces of code which are the hardest to either find or remember. These snippets are placed here for my own reference and will hopefully be useful to others. If you find them useful or have any suggestions, please let me know.</p>


<p>Related posts:<ol><li><a href='http://erisds.co.uk/symfony/snippet-creating-debugging-complex-sql-queries-in-symfony' rel='bookmark' title='Permanent Link: Snippet: Creating &#038; Debugging Complex SQL queries in Symfony'>Snippet: Creating &#038; Debugging Complex SQL queries in Symfony</a><small>When working with large and complex datasets in Symfony, there...</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-accessing-the-object-in-a-form' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Accessing the Object in a Form'>Snippet: Symfony Forms &#8211; Accessing the Object in a Form</a><small>Perusing my Google Analytics data shows up some interesting results....</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-allowing-extra-fields' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Allowing Extra Fields'>Snippet: Symfony Forms &#8211; Allowing Extra Fields</a><small>Place this line of code in the configure method of...</small></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/erisds?a=c8RE8Y6NJTo:sCzS2bF_pcs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/erisds?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=c8RE8Y6NJTo:sCzS2bF_pcs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/erisds?i=c8RE8Y6NJTo:sCzS2bF_pcs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=c8RE8Y6NJTo:sCzS2bF_pcs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/erisds?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=c8RE8Y6NJTo:sCzS2bF_pcs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/erisds?i=c8RE8Y6NJTo:sCzS2bF_pcs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=c8RE8Y6NJTo:sCzS2bF_pcs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/erisds?i=c8RE8Y6NJTo:sCzS2bF_pcs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=c8RE8Y6NJTo:sCzS2bF_pcs:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/erisds?d=I9og5sOYxJI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://erisds.co.uk/magento/snippet-magento-using-or-and-left-join-in-addattributetofilter/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snippet: Symfony &amp; Propel – Queries with SQL functions</title>
		<link>http://erisds.co.uk/symfony/snippet-symfony-propel-queries-with-sql-functions</link>
		<comments>http://erisds.co.uk/symfony/snippet-symfony-propel-queries-with-sql-functions#comments</comments>
		<pubDate>Fri, 23 Jul 2010 12:40:41 +0000</pubDate>
		<dc:creator>ErisDS</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[criteria]]></category>
		<category><![CDATA[propel]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://erisds.co.uk/?p=1498</guid>
		<description><![CDATA[This is a super short snippet that I <em>ALWAYS</em> forget how to do! Often I want to build more complex where clauses with Propel Criteria which use SQL functions such as UCASE, LCASE, LEN and the date functions DAY, MONTH and YEAR. This is possible using Propel &#038; Criteria, but how to do it is not immediately obvious.

The snippet below shows how to select objects from the database which were created in a specific month and year. Using Criteria::CUSTOM, it's possible to specify a column and a comparison to do with that column. This is quite useful for doing things like building archive lists. 

[cc lang="php"]
$c->add(MyObjPeer::CREATED_AT, 'MONTH('.MyObjPeer::CREATED_AT.')='. $month, Criteria::CUSTOM);
$c->addAnd(MyObjPeer::CREATED_AT, 'YEAR('.MyObjPeer::CREATED_AT.')='. $year, Criteria::CUSTOM);
[/cc]


Related posts:<ol><li><a href='http://erisds.co.uk/symfony/snippet-creating-debugging-complex-sql-queries-in-symfony' rel='bookmark' title='Permanent Link: Snippet: Creating &#038; Debugging Complex SQL queries in Symfony'>Snippet: Creating &#038; Debugging Complex SQL queries in Symfony</a><small>When working with large and complex datasets in Symfony, there...</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-setting-the-form-formatter' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Setting the Form Formatter'>Snippet: Symfony Forms &#8211; Setting the Form Formatter</a><small>By default Symfony displays forms in tables, with each new...</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-definition-list-form-formatter' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Definition List Form Formatter'>Snippet: Symfony Forms &#8211; Definition List Form Formatter</a><small>Back in April I posted a Snippet on Symfony Form...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>This is a super short snippet that I <em>ALWAYS</em> forget how to do! Often I want to build more complex where clauses with <a href="http://www.propelorm.org/wiki/Development/Criteria" title="Propel Criteria Documentation">Propel Criteria</a> which use SQL functions such as UCASE, LCASE, LEN and the date functions DAY, MONTH and YEAR. This is possible using Propel &#038; Criteria, but how to do it is not immediately obvious.</p>
<p>The snippet below shows how to select objects from the database which were created in a specific month and year. Using <kbd>Criteria::CUSTOM</kbd>, it&#8217;s possible to specify a column and a comparison to do with that column. This is quite useful for doing things like building archive lists.</p>
<div class="codecolorer-container php twitlight" 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 /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add</span><span style="color: #009900;">&#40;</span>MyObjPeer<span style="color: #339933;">::</span><span style="color: #004000;">CREATED_AT</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'MONTH('</span><span style="color: #339933;">.</span>MyObjPeer<span style="color: #339933;">::</span><span style="color: #004000;">CREATED_AT</span><span style="color: #339933;">.</span><span style="color: #0000ff;">')='</span><span style="color: #339933;">.</span> <span style="color: #000088;">$month</span><span style="color: #339933;">,</span> Criteria<span style="color: #339933;">::</span><span style="color: #004000;">CUSTOM</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$c</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addAnd</span><span style="color: #009900;">&#40;</span>MyObjPeer<span style="color: #339933;">::</span><span style="color: #004000;">CREATED_AT</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'YEAR('</span><span style="color: #339933;">.</span>MyObjPeer<span style="color: #339933;">::</span><span style="color: #004000;">CREATED_AT</span><span style="color: #339933;">.</span><span style="color: #0000ff;">')='</span><span style="color: #339933;">.</span> <span style="color: #000088;">$year</span><span style="color: #339933;">,</span> Criteria<span style="color: #339933;">::</span><span style="color: #004000;">CUSTOM</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p class="small"><strong>A Note on Snippets:</strong> When using frameworks such as Symfony it is often the simplest pieces of code which are the hardest to either find or remember. These snippets are placed here for my own reference and will hopefully be useful to others. If you find them useful or have any suggestions, please let me know.</p>


<p>Related posts:<ol><li><a href='http://erisds.co.uk/symfony/snippet-creating-debugging-complex-sql-queries-in-symfony' rel='bookmark' title='Permanent Link: Snippet: Creating &#038; Debugging Complex SQL queries in Symfony'>Snippet: Creating &#038; Debugging Complex SQL queries in Symfony</a><small>When working with large and complex datasets in Symfony, there...</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-setting-the-form-formatter' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Setting the Form Formatter'>Snippet: Symfony Forms &#8211; Setting the Form Formatter</a><small>By default Symfony displays forms in tables, with each new...</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-definition-list-form-formatter' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Definition List Form Formatter'>Snippet: Symfony Forms &#8211; Definition List Form Formatter</a><small>Back in April I posted a Snippet on Symfony Form...</small></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/erisds?a=2VaHqauV9WU:xo-fsKkJkpg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/erisds?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=2VaHqauV9WU:xo-fsKkJkpg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/erisds?i=2VaHqauV9WU:xo-fsKkJkpg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=2VaHqauV9WU:xo-fsKkJkpg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/erisds?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=2VaHqauV9WU:xo-fsKkJkpg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/erisds?i=2VaHqauV9WU:xo-fsKkJkpg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=2VaHqauV9WU:xo-fsKkJkpg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/erisds?i=2VaHqauV9WU:xo-fsKkJkpg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=2VaHqauV9WU:xo-fsKkJkpg:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/erisds?d=I9og5sOYxJI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://erisds.co.uk/symfony/snippet-symfony-propel-queries-with-sql-functions/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Future of Web Design London 2010: My thoughts two months on…</title>
		<link>http://erisds.co.uk/business/future-of-web-design-my-thoughts-two-months-on</link>
		<comments>http://erisds.co.uk/business/future-of-web-design-my-thoughts-two-months-on#comments</comments>
		<pubDate>Mon, 19 Jul 2010 12:43:16 +0000</pubDate>
		<dc:creator>ErisDS</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://erisds.co.uk/?p=1320</guid>
		<description><![CDATA[<img src="http://erisds.co.uk/wp-content/uploads/2010/07/fowd-e1278418726961-300x300.png" alt="" title="fowd" width="300" height="300" class="alignleft size-medium wp-image-1416" />Technology conferences are fun, an enormous amount of extremely geeky fun. Most folks can't wait to get home and blog about all the wonderful things they've seen, heard and learnt over the duration of the conference. Those reviews are great insights into what works and what doesn't, but are they an accurate reflection of the long-term benefits web industry professionals can gain from attending conferences?

Two months on and I'm still reeling from my single day experience of the Future of Web Design Conference. I shared a ticket with colleague and so attended the party &#38; second day of the conference, having the chance to meet some awesome people and learn a great deal. I highly recommend attending the <abbr title="Future of Web Design">FOWD</abbr> conference and these are my reasons why.


Related posts:<ol><li><a href='http://erisds.co.uk/business/how-to-solve-problematic-client-relationships-back-to-basics' rel='bookmark' title='Permanent Link: How to Solve Problematic Client Relationships: Back to Basics'>How to Solve Problematic Client Relationships: Back to Basics</a><small>Please Note: This is the companion blog post to a...</small></li>
<li><a href='http://erisds.co.uk/internet/the-explicitweb-podcast' rel='bookmark' title='Permanent Link: The ExplicitWeb Podcast'>The ExplicitWeb Podcast</a><small>Last week marked the launch of the 7th ExplicitWeb podcast,...</small></li>
<li><a href='http://erisds.co.uk/symfony/symfony-what-is-it-good-for' rel='bookmark' title='Permanent Link: Symfony: What is it good for?'>Symfony: What is it good for?</a><small>Symfony is one of my favourite bits of technology. I’ve...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://erisds.co.uk/wp-content/uploads/2010/07/fowd-e1278418726961-300x300.png" alt="" title="fowd" width="300" height="300" class="alignleft size-medium wp-image-1416" />Technology conferences are fun, an enormous amount of extremely geeky fun. Most folks can&#8217;t wait to get home and blog about all the wonderful things they&#8217;ve seen, heard and learnt over the duration of the conference. Those reviews are great insights into what works and what doesn&#8217;t, but are they an accurate reflection of the long-term benefits web industry professionals can gain from attending conferences?</p>
<p>Two months on and I&#8217;m still reeling from my single day experience of the Future of Web Design Conference. I shared a ticket with colleague and so attended the party &amp; second day of the conference, having the chance to meet some awesome people and learn a great deal. I highly recommend attending the <abbr title="Future of Web Design">FOWD</abbr> conference and these are my reasons why.</p>
<h2>The benefits of attending <abbr title="Future of Web Design">FOWD</abbr></h2>
<p>When I left University and started working full time as a web developer a little less than 2 years ago, I had a strong academic background in computer science and business. The first 15 months of work were spent learning how all my know-how applied in the real world where great theory and best practice often get sidelined to make the realities work in practice (and in budget). Back in May, when the conference was held, I had just started working with my colleagues to develop better working practices and improve the services we offer.</p>
<p>I spent my day at the <a href="http://www.futureofwebdesign.com/london-2010" title="Future of Web Design London 2010">Future of Web Design London 2010</a> listening to top class individuals share their experiences of how to make things work in the real world, how to be more efficient and more importantly improve the services and end product that clients receive. Whilst I listened, I reflected on my own experiences and was also reminded of the theories and best practices I&#8217;d learnt at University before the real world kicked in. I was also given the opportunity to talk to highly experience professionals about their experiences and share my own ideas of how to <a title="How to Solve Problematic Client Relationships: Back to Basics" href="http://erisds.co.uk/business/how-to-solve-problematic-client-relationships-back-to-basics">better manage and improve relationships with clients</a>.</p>
<p>In essence I was able to review all that I had learned and come up with better ways to do what we do. I realised that my job is NOT about just delivering what&#8217;s possible for the client&#8217;s budget but about selling the bigger and better ideas to clients. This may be another theoretical idealism but there are two key points to achieving this goal.</p>
<p>Firstly, <strong>iterate</strong>. Break a project down in to manageable steps (for development and for budget) and continuously iterate and improve a project as budget, time, and technology constraints allow. Secondly, <strong>be data driven</strong>. Be proactive, source out new ways to develop &amp; improve, and use analytical data as evidence to support new ideas. By breaking down projects into bite-sized, evidenced steps, clients are more likely to buy-in to your ideas and as the ROI builds hopefully so will their willingness to try new things.</p>
<p>So here I am, two months after the conference and still feeling completely re-inspired. I&#8217;ve found a direction and a clear picture of what I want to be doing in 5 years. I&#8217;ve found a new passion in Analytics and I&#8217;ve fallen back in love with my job. I&#8217;m pretty sure all of these things are worth far more than the cost of a one day <abbr title="Future of Web Design">FOWD</abbr> pass.</p>
<h2>Top tips for conference attending</h2>
<p>If you are thinking about attending an event like <abbr title="Future of Web Design">FOWD</abbr>, or sending some of your staff to a conference I do recommend the following:</p>
<ul>
<li>It&#8217;s only worth attending with an open mind and a willingness to learn.</li>
<li>Don&#8217;t bother taking notes. Everything is available online afterwards so spend your time absorbing and reflecting. You&#8217;ll come away with far more insights.</li>
<li>Take the opportunity to talk to your peers and your heroes. Don&#8217;t waste time being shy, you will learn far more by engaging with the people you respect.</li>
<li>If you are sending staff, make them aware they will have an opportunity to feedback their findings afterwards &#8211; this will give them more purpose.</li>
<li>Go with the intention to have a lot of fun, and don&#8217;t feel guilty for it!</li>
</ul>
<h2>My top 3 FOWD London 2010 talks</h2>
<ol>
<li>Brett Welch &#8211; Rethink Your Job (and Earn More Money)</li>
<li>Dan Rubin &#8211; Blending Usability Testing with Interface Design, Prototyping and Rapid Iteration</li>
<li>Niamh Phelan &#8211; Google Analytics Masterclass</li>
</ol>
<p><strong>UPDATE:</strong> You can still get the <abbr title="Future of Web Design">FOWD</abbr> London 2010 <a title="Future of Web design London 2010 video pass" href="http://futureofwebdesign.com/london-2010/register/">video pass</a> to watch these talks.</p>


<p>Related posts:<ol><li><a href='http://erisds.co.uk/business/how-to-solve-problematic-client-relationships-back-to-basics' rel='bookmark' title='Permanent Link: How to Solve Problematic Client Relationships: Back to Basics'>How to Solve Problematic Client Relationships: Back to Basics</a><small>Please Note: This is the companion blog post to a...</small></li>
<li><a href='http://erisds.co.uk/internet/the-explicitweb-podcast' rel='bookmark' title='Permanent Link: The ExplicitWeb Podcast'>The ExplicitWeb Podcast</a><small>Last week marked the launch of the 7th ExplicitWeb podcast,...</small></li>
<li><a href='http://erisds.co.uk/symfony/symfony-what-is-it-good-for' rel='bookmark' title='Permanent Link: Symfony: What is it good for?'>Symfony: What is it good for?</a><small>Symfony is one of my favourite bits of technology. I’ve...</small></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/erisds?a=7j1w9c4caYs:aCvAUgAm5Pc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/erisds?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=7j1w9c4caYs:aCvAUgAm5Pc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/erisds?i=7j1w9c4caYs:aCvAUgAm5Pc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=7j1w9c4caYs:aCvAUgAm5Pc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/erisds?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=7j1w9c4caYs:aCvAUgAm5Pc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/erisds?i=7j1w9c4caYs:aCvAUgAm5Pc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=7j1w9c4caYs:aCvAUgAm5Pc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/erisds?i=7j1w9c4caYs:aCvAUgAm5Pc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=7j1w9c4caYs:aCvAUgAm5Pc:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/erisds?d=I9og5sOYxJI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://erisds.co.uk/business/future-of-web-design-my-thoughts-two-months-on/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Getting Rid of Non Breaking Spaces (&amp;nbsp)</title>
		<link>http://erisds.co.uk/code/getting-rid-of-non-breaking-spaces-nbsp</link>
		<comments>http://erisds.co.uk/code/getting-rid-of-non-breaking-spaces-nbsp#comments</comments>
		<pubDate>Tue, 13 Jul 2010 12:12:54 +0000</pubDate>
		<dc:creator>ErisDS</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://erisds.co.uk/?p=1322</guid>
		<description><![CDATA[Have you ever tried to parse, process or preg_replace some HTML? Ever tried to do it when the HTML is UTF-8 encoded? Getting rid of white space can be tricky, here's a few tricks I've learned.


Related posts:<ol><li><a href='http://erisds.co.uk/code/yui-javascript-carousel-custom-navigation-part-1' rel='bookmark' title='Permanent Link: YUI: Javascript Carousel with Custom Navigation &#8211; Part 1'>YUI: Javascript Carousel with Custom Navigation &#8211; Part 1</a><small>Welcome to my first JavaScript related post! I'm currently in...</small></li>
<li><a href='http://erisds.co.uk/code/yui-javascript-carousel-custom-navigation-part-2' rel='bookmark' title='Permanent Link: YUI: Javascript Carousel with Custom Navigation &#8211; Part 2'>YUI: Javascript Carousel with Custom Navigation &#8211; Part 2</a><small>Welcome to Part 2 of my YUI Carousel series. If...</small></li>
<li><a href='http://erisds.co.uk/symfony/symfony-new-static-text-management-plugin' rel='bookmark' title='Permanent Link: Symfony: New Static Text Management Plugin'>Symfony: New Static Text Management Plugin</a><small>Generally, when I find something interesting I use twitter &...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Have you ever tried to parse, process or preg_replace some HTML? Ever tried to do it when the HTML is UTF-8 encoded? Getting rid of white space can be tricky, here&#8217;s a few tricks I&#8217;ve learned.</p>
<p>I was playing around with debugging some HTML output from <a href="http://erisds.co.uk/category/symfony" title="Other articles about Symfony">Symfony</a> the other day. The HTML was dynamic content added through <a href="http://tinymce.moxiecode.com/">TinyMCE</a> and I needed to clean superfluous formatting so that the content output looked right. I hate regular expressions and this is the first time I&#8217;ve really needed to delve into them properly, so I totally hit a stumbling block when trying to get rid of &amp;nbsp; and other bits of whitespace.</p>
<p>I tried various methods of decoding the content first, to no avail. It turns out the answer is to look for the encoded characters. I found it quite tricky to discover what the encoded values for the white space were and also to detect exactly what white space characters were present, but hopefully these two tips will help you.</p>
<h2>UTF-8 representations of white space characters</h2>
<p>The following are common white space characters. If you&#8217;re missing a few, try out <a title="File Format Character Reference" href="http://www.fileformat.info/info/unicode/char/search.htm" target="_blank">File Format for finding character codes</a>. </p>
<blockquote><p>
\x20 &#8211; The standard space or &#8216;\s&#8217;<br />
\xC2\xA0 &#8211; The non-breaking space &#8216;&amp;nbsp;&#8217;<br />
\x0D &#8211; Carriage Return or &#8216;\r&#8217;<br />
\x0A &#8211; New Line or &#8216;\n&#8217;<br />
\x09 &#8211; The tab or &#8216;\t&#8217;
</p></blockquote>
<h2>Discovering which characters are present</h2>
<p>Figuring out exactly what white space characters are present in your encoded HTML can be tricky. I used <a href="http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm">XVI32</a>, which is a hex editor. If you view the source of the HTML you are trying to clean and copy &#038; paste an offending section into the right-hand window it will show the encoded characters in the left hand window.  </p>
<p><img src="http://erisds.co.uk/wp-content/uploads/2010/07/xvi32.png" alt="" title="xvi32" width="560" height="411" class="aligncenter size-full wp-image-1471" /></p>
<p>Hopefully this post might save you some time. If you have a similar problem that isn&#8217;t covered here, I&#8217;d be interested to know so <a href="#respond-box" title="leave a comment">drop me a comment!</a></p>
<p><ins datetime="2010-07-19T19:29:28+00:00"><strong>Update:</strong> I thought it would be helpful to add an example of how I used these character codes. This simple function replaces all encoded non-breaking spaces with a normal space. It&#8217;s only a small snippet, but it might be of use ;).</ins></p>
<div class="codecolorer-container php twitlight" 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 /></div></td><td><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> cleanNonBreakingSpaces<span style="color: #009900;">&#40;</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/\xC2\xA0/'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">,</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$text</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>You could replace the space with an encoded &#8220;normal&#8221; space character, although I&#8217;m not sure how well that will work:</p>
<div class="codecolorer-container php twitlight" 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 /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/\xC2\xA0/'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'\x20'</span><span style="color: #339933;">,</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Or you could check for both encoded or non-encoded non-breaking spaces:</p>
<div class="codecolorer-container php twitlight" 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 /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/(\xC2\xA0/|&amp;nbsp;)'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">,</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<h3>Resources</h3>
<ul>
<li><a title="File Format Character Reference" href="http://www.fileformat.info/info/unicode/char/search.htm" target="_blank">File Format</a> &#8211; An excellent site for looking up character codes.</li>
<li><a title="XVI32 Freeware Hex Editor" href="http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm">XVI Freeware Hex Editor</a> &#8211; A great tool for discovering hidden characters.</li>
</ul>


<p>Related posts:<ol><li><a href='http://erisds.co.uk/code/yui-javascript-carousel-custom-navigation-part-1' rel='bookmark' title='Permanent Link: YUI: Javascript Carousel with Custom Navigation &#8211; Part 1'>YUI: Javascript Carousel with Custom Navigation &#8211; Part 1</a><small>Welcome to my first JavaScript related post! I'm currently in...</small></li>
<li><a href='http://erisds.co.uk/code/yui-javascript-carousel-custom-navigation-part-2' rel='bookmark' title='Permanent Link: YUI: Javascript Carousel with Custom Navigation &#8211; Part 2'>YUI: Javascript Carousel with Custom Navigation &#8211; Part 2</a><small>Welcome to Part 2 of my YUI Carousel series. If...</small></li>
<li><a href='http://erisds.co.uk/symfony/symfony-new-static-text-management-plugin' rel='bookmark' title='Permanent Link: Symfony: New Static Text Management Plugin'>Symfony: New Static Text Management Plugin</a><small>Generally, when I find something interesting I use twitter &...</small></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/erisds?a=irtf9H7YUvE:EDqzph59uTU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/erisds?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=irtf9H7YUvE:EDqzph59uTU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/erisds?i=irtf9H7YUvE:EDqzph59uTU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=irtf9H7YUvE:EDqzph59uTU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/erisds?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=irtf9H7YUvE:EDqzph59uTU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/erisds?i=irtf9H7YUvE:EDqzph59uTU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=irtf9H7YUvE:EDqzph59uTU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/erisds?i=irtf9H7YUvE:EDqzph59uTU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=irtf9H7YUvE:EDqzph59uTU:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/erisds?d=I9og5sOYxJI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://erisds.co.uk/code/getting-rid-of-non-breaking-spaces-nbsp/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Snippet: Symfony Forms – Accessing the Object in a Form</title>
		<link>http://erisds.co.uk/symfony/snippet-symfony-forms-accessing-the-object-in-a-form</link>
		<comments>http://erisds.co.uk/symfony/snippet-symfony-forms-accessing-the-object-in-a-form#comments</comments>
		<pubDate>Thu, 08 Jul 2010 10:23:29 +0000</pubDate>
		<dc:creator>ErisDS</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[propel]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://erisds.co.uk/?p=1344</guid>
		<description><![CDATA[Perusing my Google Analytics data shows up some interesting results. For starters the top search query which sends people to my blog is "symfony accessing object in a form". This has been consistent for several months, but there is no article on my blog which answers that question. I imagine this must be very frustrating for people so it's about time I added the answer here as a snippet.


Related posts:<ol><li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-setting-the-form-formatter' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Setting the Form Formatter'>Snippet: Symfony Forms &#8211; Setting the Form Formatter</a><small>By default Symfony displays forms in tables, with each new...</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-setting-default-values' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Setting Default Values'>Snippet: Symfony Forms &#8211; Setting Default Values</a><small>I often forget how to set default values for form...</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-definition-list-form-formatter' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Definition List Form Formatter'>Snippet: Symfony Forms &#8211; Definition List Form Formatter</a><small>Back in April I posted a Snippet on Symfony Form...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Perusing my Google Analytics data shows up some interesting results. For starters the top search query which sends people to my blog is <strong>&#8220;symfony accessing object in a form&#8221;</strong>. This has been consistent for several months, but there is no article on my blog which answers that question. I imagine this must be very frustrating for people so it&#8217;s about time I added the answer here as a snippet.</p>
<div class="codecolorer-container php twitlight" 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 /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">// lib/form/MyObjectForm.class.php</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> configure<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000088;">$myobject</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getObject</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>In a form class <kbd>$this</kbd> refers to the form. Both <kbd>sfFormPropel</kbd> and <kbd>sfFormDoctrine</kbd> have the method <kbd>getObject()</kbd> which will return the object associated with the form. In Symfony, the form ALWAYS has an object associated with it, as even if you don&#8217;t pass it one, the form setup will create and associate a new (unsaved) object.</p>
<p>On the <a href="http://erisds.co.uk/symfony/snippet-symfony-forms-setting-default-values">default values snippet</a>, I was asked how to set default values for a form in an action. If you want default values for the form, you can set them in the form class as explained in that snippet, or if you want the object to have a default value, override the model with constants (or provide them in your schema).</p>
<p>If you want to pass <strong>preset values</strong> to the form in your <kbd>actions.class.php</kbd> you can do so when you create the form. The constructors for both <a href="http://www.propelorm.org/" target="_blank" title="Propel ORM">Propel</a> and <a href="http://www.doctrine-project.org/" target="_blank" title="Doctrine ORM">Doctrine</a> forms take an object as an argument which the ORM will then use as the associated object. Therefore you can create a new object, assign the values you want and then pass the object to the form as shown below:</p>
<div class="codecolorer-container php twitlight" 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 />11<br />12<br /></div></td><td><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;">&lt;?php</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//apps/myApp/modules/myModule/actions/actions.class.php</span><br />
&nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> executeMyAction<span style="color: #009900;">&#40;</span>sfWebRequest <span style="color: #000088;">$request</span><span style="color: #009900;">&#41;</span><br />
&nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// create an object for the form</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$myobject</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MyObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;<span style="color: #666666; font-style: italic;">// object already has default values, or to set additional ones:</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$myobject</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setValue</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Default'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #666666; font-style: italic;">// instantiate the new form with it's object</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">form</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MyObjectForm<span style="color: #009900;">&#40;</span><span style="color: #000088;">$object</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p><ins datetime="2010-07-10T13:34:03+00:00">
<p><strong>Update:</strong> It&#8217;s probably worth adding, if you&#8217;re looking to access the user object specifically, I have more detail on that in <a href="http://erisds.co.uk/symfony/snippet-symfony-user-access-the-user-object" title="Snippet: Symfony User – Access the User Object">another snippet which deals with the user object</a>.</p>
<p></ins></p>
<p>Please let me know if you have any problems with these snippets, or if you find them useful! If you are someone who has come to my blog through this or a similar search query, drop me a comment and let me know if I&#8217;ve answered the question, or if there is more that I could help with.</p>
<p class="small"><strong>A Note on Snippets:</strong> When using frameworks such as Symfony it is often the simplest pieces of code which are the hardest to either find or remember. These snippets are placed here for my own reference and will hopefully be useful to others. If you find them useful or have any suggestions, please let me know.</p>


<p>Related posts:<ol><li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-setting-the-form-formatter' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Setting the Form Formatter'>Snippet: Symfony Forms &#8211; Setting the Form Formatter</a><small>By default Symfony displays forms in tables, with each new...</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-setting-default-values' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Setting Default Values'>Snippet: Symfony Forms &#8211; Setting Default Values</a><small>I often forget how to set default values for form...</small></li>
<li><a href='http://erisds.co.uk/symfony/snippet-symfony-forms-definition-list-form-formatter' rel='bookmark' title='Permanent Link: Snippet: Symfony Forms &#8211; Definition List Form Formatter'>Snippet: Symfony Forms &#8211; Definition List Form Formatter</a><small>Back in April I posted a Snippet on Symfony Form...</small></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/erisds?a=C-C1PSJVKmw:0yFt6qa6GLA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/erisds?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=C-C1PSJVKmw:0yFt6qa6GLA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/erisds?i=C-C1PSJVKmw:0yFt6qa6GLA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=C-C1PSJVKmw:0yFt6qa6GLA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/erisds?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=C-C1PSJVKmw:0yFt6qa6GLA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/erisds?i=C-C1PSJVKmw:0yFt6qa6GLA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=C-C1PSJVKmw:0yFt6qa6GLA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/erisds?i=C-C1PSJVKmw:0yFt6qa6GLA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=C-C1PSJVKmw:0yFt6qa6GLA:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/erisds?d=I9og5sOYxJI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://erisds.co.uk/symfony/snippet-symfony-forms-accessing-the-object-in-a-form/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Upgrading old WordPress installs – not as scary as you think!</title>
		<link>http://erisds.co.uk/wordpress/upgrading-old-wordpress-installs-not-as-scary-as-you-think</link>
		<comments>http://erisds.co.uk/wordpress/upgrading-old-wordpress-installs-not-as-scary-as-you-think#comments</comments>
		<pubDate>Fri, 02 Jul 2010 12:27:38 +0000</pubDate>
		<dc:creator>ErisDS</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://erisds.co.uk/?p=1380</guid>
		<description><![CDATA[<img src="http://erisds.co.uk/wp-content/uploads/2010/07/wordpress-logo-notext-rgb-150x150.png" alt="" title="WordPress logo" width="150" height="150" class="alignleft size-thumbnail wp-image-1389" />Earlier this week I received an email requesting some help with a WordPress install that had been hacked. The site was almost 3 years old and was still running WordPress 2.2. It was quite funny getting to see and play with retro WordPress again, but it had to go.


Related posts:<ol><li><a href='http://erisds.co.uk/wordpress/wordpress-2-8' rel='bookmark' title='Permanent Link: WordPress 2.8'>WordPress 2.8</a><small>Over the weekend I updated my blog to Wordpress 2.8....</small></li>
<li><a href='http://erisds.co.uk/wordpress/spotlight-wordpress-pods-plugin' rel='bookmark' title='Permanent Link: Spotlight: WordPress Pods Plugin'>Spotlight: WordPress Pods Plugin</a><small>Have you ever needed to build a website which fit...</small></li>
<li><a href='http://erisds.co.uk/wordpress/snippet-wordpress-admin-tidy-dashboard-widgets-by-role' rel='bookmark' title='Permanent Link: Snippet: WordPress Admin &#8211; Tidy Dashboard Widgets By Role'>Snippet: WordPress Admin &#8211; Tidy Dashboard Widgets By Role</a><small>Recently I worked on a Wordpress site where I wanted...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://erisds.co.uk/wp-content/uploads/2010/07/wordpress-logo-notext-rgb-300x300.png" alt="" title="WordPress logo" width="300" height="300" class="alignleft size-medium wp-image-1389" />Earlier this week I received an email requesting some help with a WordPress install that had been hacked. The site was almost 3 years old and was still running WordPress 2.2. It was quite funny getting to see and play with retro WordPress again, but it had to go.</p>
<p>First of all I got rid of the hack. I didn&#8217;t do much research into WP2.2 security holes or spend any time trying to work out how it was done, I ran a text search on the files for the text and links that had been injected into the page and quickly discovered some superfluous functions in the theme footer and some other files. Deleting these got rid of the problem and restored the site to normal.</p>
<p>To be honest, I was nervous about upgrading this blog from WordPress 2.9.2 to 3.0, the software is moving on so quickly now, so the concept of upgrading from 2.2 where there isn&#8217;t even the luxury of an upgrade button filled me with dread. I did a little research into upgrading, and put out a <a href="http://twitter.com/ErisDS/status/17333044663" title="ErisDS on twitter - upgrading WordPress 2.2">feeler tweet</a> to see if anyone had experience useful tips. Someone suggested that I upgrade to 2.8 first then 2.9 and 3.0 but I decided to just go for it to start with.</p>
<h2>Upgrading WordPress</h2>
<p>The <a href="http://codex.wordpress.org/Upgrading_WordPress_Extended#Detailed_Upgrade_Instructions_for_1.5.x.2C_and_versions_2.0_-_2.6.5.2C_to_3.0">WordPress documentation has extensive information on upgrading </a>WordPress.</p>
<p>In short, the steps involve:</p>
<ol>
<li>Backing up all your files and database</li>
<li>Deactivating all plugins</li>
<li>Deleting your WordPress install except for the customised parts (wp-config.php, .htaccess, themes, plugins, uploads, images, and any language files)</li>
<li>Downloading the <a href="http://wordpress.org/download/">latest version of WordPress</a> and unpacking.</li>
<li>Uploading the new WordPress files to your website</li>
<li>Going to wp-admin and following the instructions to run the upgrade script</li>
</ol>
<p>The <a href="http://codex.wordpress.org/Upgrading_WordPress_Extended#Detailed_Upgrade_Instructions_for_1.5.x.2C_and_versions_2.0_-_2.6.5.2C_to_3.0">WordPress upgrade documentation</a> goes into great detail, so I highly recommend you follow it word for word. I was very careful to follow the instructions carefully, and I&#8217;m pleased to report that the upgrade was a complete success. Not a bug, not a snag, not a hitch &#8211; easy peasy!</p>
<h2>My Top Tips</h2>
<p>Some additional things I recommend doing are:</p>
<ul>
<li>Be absolutely sure to deactivate all your plugins before deleting files and starting the upgrade process</li>
<li>Once the upgrade process has run, check your website thoroughly before reactivating or upgrading any plugins</li>
<li>If all is OK, take another backup of the database and files at this point</li>
<li>After backing up, reactivate each plugin one-by-one testing the site thoroughly after each reactivation to ensure no bugs are caused and that the plugin provides the expected functionality.</li>
<li>Take note of any plugins which malfunction, see if there is an available upgrade (don&#8217;t run it yet) and deactivate the plugin until you have tested them all</li>
<li>Backup again! You&#8217;ve now got all the working plugins enabled and the site is almost back to normal&#8230; so backup before upgrading your plugins!</li>
<li>Upgrade each plugin one-by-one (and reactivate if necessary), again testing after each upgrade.</li>
<li>You may have to find new plugins to replace old ones which are no longer maintained, but with luck your site should now be back to normal.</li>
</ul>


<p>Related posts:<ol><li><a href='http://erisds.co.uk/wordpress/wordpress-2-8' rel='bookmark' title='Permanent Link: WordPress 2.8'>WordPress 2.8</a><small>Over the weekend I updated my blog to Wordpress 2.8....</small></li>
<li><a href='http://erisds.co.uk/wordpress/spotlight-wordpress-pods-plugin' rel='bookmark' title='Permanent Link: Spotlight: WordPress Pods Plugin'>Spotlight: WordPress Pods Plugin</a><small>Have you ever needed to build a website which fit...</small></li>
<li><a href='http://erisds.co.uk/wordpress/snippet-wordpress-admin-tidy-dashboard-widgets-by-role' rel='bookmark' title='Permanent Link: Snippet: WordPress Admin &#8211; Tidy Dashboard Widgets By Role'>Snippet: WordPress Admin &#8211; Tidy Dashboard Widgets By Role</a><small>Recently I worked on a Wordpress site where I wanted...</small></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/erisds?a=aCbUH8Z6sWU:T8rDxsb9_Jo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/erisds?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=aCbUH8Z6sWU:T8rDxsb9_Jo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/erisds?i=aCbUH8Z6sWU:T8rDxsb9_Jo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=aCbUH8Z6sWU:T8rDxsb9_Jo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/erisds?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=aCbUH8Z6sWU:T8rDxsb9_Jo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/erisds?i=aCbUH8Z6sWU:T8rDxsb9_Jo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=aCbUH8Z6sWU:T8rDxsb9_Jo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/erisds?i=aCbUH8Z6sWU:T8rDxsb9_Jo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=aCbUH8Z6sWU:T8rDxsb9_Jo:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/erisds?d=I9og5sOYxJI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://erisds.co.uk/wordpress/upgrading-old-wordpress-installs-not-as-scary-as-you-think/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snippet: WordPress Admin – Tidy Dashboard Widgets By Role</title>
		<link>http://erisds.co.uk/wordpress/snippet-wordpress-admin-tidy-dashboard-widgets-by-role</link>
		<comments>http://erisds.co.uk/wordpress/snippet-wordpress-admin-tidy-dashboard-widgets-by-role#comments</comments>
		<pubDate>Wed, 30 Jun 2010 11:30:56 +0000</pubDate>
		<dc:creator>ErisDS</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://erisds.co.uk/?p=924</guid>
		<description><![CDATA[Recently I worked on a Wordpress site where I wanted to be able to customise the dashboard for different user roles. Wordpress by default has administrators, editors, authors, contributors and subscribers. It's not too much to assume you might not want to show your editors or authors all the details of your blog posts etc and this short snippet will allow you to do just that.



Related posts:<ol><li><a href='http://erisds.co.uk/wordpress/snippet-wordpress-customise-the-excerpt-length-and-more-string' rel='bookmark' title='Permanent Link: Snippet: WordPress &#8211; Customise the Excerpt Length and More string'>Snippet: WordPress &#8211; Customise the Excerpt Length and More string</a><small>These functions and hooks let you customise the output of...</small></li>
<li><a href='http://erisds.co.uk/wordpress/spotlight-wordpress-pods-plugin' rel='bookmark' title='Permanent Link: Spotlight: WordPress Pods Plugin'>Spotlight: WordPress Pods Plugin</a><small>Have you ever needed to build a website which fit...</small></li>
<li><a href='http://erisds.co.uk/wordpress/wordpress-2-8' rel='bookmark' title='Permanent Link: WordPress 2.8'>WordPress 2.8</a><small>Over the weekend I updated my blog to Wordpress 2.8....</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Recently I worked on a WordPress site where I wanted to be able to customise the dashboard for different user roles. <a href="http://codex.wordpress.org/Roles_and_Capabilities">WordPress has the default roles</a> of administrators, editors, authors, contributors and subscribers. It&#8217;s not too much to assume you might not want to show your editors or authors all the details of your blog posts etc and placing these short code snippets into your theme&#8217;s<kbd>functions.php</kbd> file will allow you to do just that.</p>
<h2>Clearing up</h2>
<p>Lets get rid of the incoming links widget for authors and editors and then clean up some of the other boxes for everyone:</p>
<div class="codecolorer-container php twitlight" 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 />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /></div></td><td><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> tidy_dashboard<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wp_meta_boxes</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current_user</span><span style="color: #339933;">;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #666666; font-style: italic;">// remove incoming links info for authors or editors</span><br />
&nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/in_array"><span style="color: #990000;">in_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'author'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current_user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">roles</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <a href="http://www.php.net/in_array"><span style="color: #990000;">in_array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'editor'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current_user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">roles</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'normal '</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_incoming_links'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; <span style="color: #666666; font-style: italic;">// remove the plugins info and news feeds for everyone</span><br />
&nbsp; <a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'normal'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_plugins'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_primary'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_secondary'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #666666; font-style: italic;">//add our function to the dashboard setup hook</span><br />
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wp_dashboard_setup'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'tidy_dashboard'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Here&#8217;s a full list of how to unset each of the current default dashboard widgets:</p>
<div class="codecolorer-container php twitlight" 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 />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//Right Now - Comments, Posts, Pages at a glance</span><br />
<a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'normal'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_right_now'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//Recent Comments</span><br />
<a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'normal'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_recent_comments'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//Incoming Links</span><br />
<a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'normal'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_incoming_links'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//Plugins - Popular, New and Recently updated Wordpress Plugins</span><br />
<a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'normal'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_plugins'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;">//Wordpress Development Blog Feed</span><br />
<a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_primary'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//Other Wordpress News Feed</span><br />
<a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_secondary'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//Quick Press Form</span><br />
<a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_quick_press'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//Recent Drafts List</span><br />
<a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard_recent_drafts'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<h2>Add your own</h2>
<p>Perhaps rather than the default information, you have other items you&#8217;d like to be on the dashboard for authors or editors etc? I often add a dashboard widget to list private pages. Here&#8217;s how:</p>
<div class="codecolorer-container php twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><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 />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">// function to display widget</span><br />
<span style="color: #000000; font-weight: bold;">function</span> display_dashboard_widget<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #666666; font-style: italic;">//define arguments for WP_Query()</span><br />
&nbsp; <span style="color: #000088;">$qargs</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'post_type'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'page'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'post_status'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'private'</span><br />
&nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #666666; font-style: italic;">// perform the query</span><br />
&nbsp; <span style="color: #000088;">$q</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> WP_Query<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000088;">$q</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$qargs</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; <span style="color: #666666; font-style: italic;">// setup the content with a list</span><br />
&nbsp; <span style="color: #000088;">$widget_content</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;ul&gt;'</span><span style="color: #339933;">;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #666666; font-style: italic;">// execute the WP loop</span><br />
&nbsp; <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$q</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">have_posts</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$q</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">the_post</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; <span style="color: #000088;">$widget_content</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;li&gt;&lt;a href=&quot;'</span><span style="color: #339933;">.</span>get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; rel=&quot;bookmark&quot;&gt;'</span><span style="color: #339933;">.</span> get_the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/a&gt;&lt;/li&gt;'</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #000088;">$widget_content</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/ul&gt;'</span><span style="color: #339933;">;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #666666; font-style: italic;">// return the content you want displayed</span><br />
&nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$widget_content</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <br />
<br />
<span style="color: #666666; font-style: italic;">//function to setup widget</span><br />
<span style="color: #000000; font-weight: bold;">function</span> add_dashboard_widgets<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #666666; font-style: italic;">// create a dashboard widget called &quot;private_page_menu_dashboard_widget&quot; with the title &quot;Private Pages Menu&quot; and call our display function to draw it</span><br />
&nbsp; wp_add_dashboard_widget<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'private_page_menu_dashboard_widget'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Private Pages Menu'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'display_dashboard_widget'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <br />
<br />
<span style="color: #666666; font-style: italic;">// finally we have to hook our function into the dashboard setup using add_action</span><br />
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wp_dashboard_setup'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'add_dashboard_widgets'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>The only problem with <kbd>wp_add_dashboard_widget</kbd> is that it doesn&#8217;t allow you to define where on the dashboard the widget is placed. Instead it just places the box at the bottom of the left hand side in the <kbd>['normal']['core']</kbd> array.</p>
<p>I want my private page menu to display at the top on the right hand side of the dashboard, so I am going to add a few more lines to <kbd>add_dashboard_widgets()</kbd> to shuffle the boxes around the way I want them. This will be overridden by user settings if the boxes are dragged around, but insures that my authors and editors see the box in an obvious position when they first login.</p>
<div class="codecolorer-container php twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><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 />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br /></div></td><td><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> add_dashboard_widgets<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #666666; font-style: italic;">// don't forget the global to get all dashboard widgets</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wp_meta_boxes</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
&nbsp; <span style="color: #666666; font-style: italic;">// create a dashboard widget called &quot;private_page_menu_dashboard_widget&quot; with the title &quot;Private Pages Menu&quot; and call our display function to draw it</span><br />
&nbsp; wp_add_dashboard_widget<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'private_page_menu_dashboard_widget'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Private Pages Menu'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'display_dashboard_widget'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; <span style="color: #666666; font-style: italic;">// reorder the boxes - first save the left and right columns into variables</span><br />
&nbsp; <span style="color: #000088;">$left_dashboard</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'normal'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000088;">$right_dashboard</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; <span style="color: #666666; font-style: italic;">// take a copy of the new widget from the left column </span><br />
&nbsp; <span style="color: #000088;">$my_widget</span> <span style="color: #339933;">=</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;">'private_page_menu_dashboard_widget'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$left_dashboard</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'private_page_menu_dashboard_widget'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #666666; font-style: italic;">// remove the new widget from the left column</span><br />
&nbsp; <a href="http://www.php.net/unset"><span style="color: #990000;">unset</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$left_dashboard</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'private_page_menu_dashboard_widget'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; <span style="color: #666666; font-style: italic;">// use array_merge so that the new widget is pushed on to the beginning of the right column's array &nbsp;</span><br />
&nbsp; <span style="color: #000088;">$right_dashboard</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array_merge"><span style="color: #990000;">array_merge</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$my_widget</span><span style="color: #339933;">,</span> <span style="color: #000088;">$right_dashboard</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; <span style="color: #666666; font-style: italic;">// finally replace the left and right columns with the new reordered versions</span><br />
&nbsp; <span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'normal'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$left_dashboard</span><span style="color: #339933;">;</span>&nbsp; <br />
&nbsp; <span style="color: #000088;">$wp_meta_boxes</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dashboard'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'side'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$right_dashboard</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>I hope you find these tricks as useful as I do!</p>
<h3>Resources</h3>
<ul>
<li><a href="http://www.smashingmagazine.com/2009/12/14/advanced-power-tips-for-wordpress-template-developers-reloaded/">Power Tips for WordPress Template Developers: Reloaded</a> &#8211; more cool back end optimisations, hacks and tweaks</li>
<li><a href="http://wordpress.org/extend/plugins/register-plus/">Register Plus WordPress Plugin</a> &#8211; customise your registration, login and admin areas</li>
<li><a href="http://codex.wordpress.org/Dashboard_Widgets_API">Dashboard Widgets API</a> &#8211; more info on adding and removing dashboard widgets</li>
</ul>
<p class="small"><strong>A Note on Snippets:</strong> When customising a CMS such as WordPress it is often the simplest pieces of code which are the hardest to either find or remember. These snippets are placed here for my own reference and will hopefully be useful to others. If you find them useful or have any suggestions, please let me know.</p>


<p>Related posts:<ol><li><a href='http://erisds.co.uk/wordpress/snippet-wordpress-customise-the-excerpt-length-and-more-string' rel='bookmark' title='Permanent Link: Snippet: WordPress &#8211; Customise the Excerpt Length and More string'>Snippet: WordPress &#8211; Customise the Excerpt Length and More string</a><small>These functions and hooks let you customise the output of...</small></li>
<li><a href='http://erisds.co.uk/wordpress/spotlight-wordpress-pods-plugin' rel='bookmark' title='Permanent Link: Spotlight: WordPress Pods Plugin'>Spotlight: WordPress Pods Plugin</a><small>Have you ever needed to build a website which fit...</small></li>
<li><a href='http://erisds.co.uk/wordpress/wordpress-2-8' rel='bookmark' title='Permanent Link: WordPress 2.8'>WordPress 2.8</a><small>Over the weekend I updated my blog to Wordpress 2.8....</small></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/erisds?a=wQKqenRNbUI:_KTQwDOrVQM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/erisds?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=wQKqenRNbUI:_KTQwDOrVQM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/erisds?i=wQKqenRNbUI:_KTQwDOrVQM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=wQKqenRNbUI:_KTQwDOrVQM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/erisds?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=wQKqenRNbUI:_KTQwDOrVQM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/erisds?i=wQKqenRNbUI:_KTQwDOrVQM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=wQKqenRNbUI:_KTQwDOrVQM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/erisds?i=wQKqenRNbUI:_KTQwDOrVQM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=wQKqenRNbUI:_KTQwDOrVQM:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/erisds?d=I9og5sOYxJI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://erisds.co.uk/wordpress/snippet-wordpress-admin-tidy-dashboard-widgets-by-role/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>5 Top Resources for Twitter Success</title>
		<link>http://erisds.co.uk/internet/5-top-resources-for-twitter-success</link>
		<comments>http://erisds.co.uk/internet/5-top-resources-for-twitter-success#comments</comments>
		<pubDate>Thu, 24 Jun 2010 22:25:38 +0000</pubDate>
		<dc:creator>ErisDS</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://erisds.co.uk/?p=1324</guid>
		<description><![CDATA[I've been experimenting with developing my Twitter account for the last year or so, and this week I published 5 simple steps for getting from beginner to a successful Twitterer: <a title="Getting Started with Twitter: 5 Simple Steps" href="http://www.enginecreative.co.uk/blog/getting-started-with-twitter-5-simple-steps.html" target="_blank">Getting Started with Twitter: 5 Simple Steps</a>. The article is aimed largely at small companies and organisations who are looking to use Twitter to drive traffic to their sites and improve their Brand's reputation.


Related posts:<ol><li><a href='http://erisds.co.uk/internet/digging-twitter' rel='bookmark' title='Permanent Link: Digging Twitter'>Digging Twitter</a><small>Last night this article hit the front page of Digg....</small></li>
<li><a href='http://erisds.co.uk/personal/disneyland-here-i-come' rel='bookmark' title='Permanent Link: Disneyland, here I come!'>Disneyland, here I come!</a><small>Two weeks ago, my slightly better half had his 30th...</small></li>
<li><a href='http://erisds.co.uk/design/magic-kingdom-font-space-encounter' rel='bookmark' title='Permanent Link: Magic Kingdom Font &#8211; Space Encounter'>Magic Kingdom Font &#8211; Space Encounter</a><small>This is a pretty silly &#038; out of the norm...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been experimenting with developing my Twitter account for the last year or so, and this week I published 5 simple steps for getting from beginner to a successful Twitterer: <a title="Getting Started with Twitter: 5 Simple Steps" href="http://www.enginecreative.co.uk/blog/getting-started-with-twitter-5-simple-steps.html" target="_blank">Getting Started with Twitter: 5 Simple Steps</a>. The article is aimed largely at small companies and organisations who are looking to use Twitter to drive traffic to their sites and improve their Brand&#8217;s reputation.</p>
<p>I thought I&#8217;d post a link here, as I wanted to add my top 5 resources. The following 5 articles go into more depth regarding what Twitter is about, do&#8217;s and dont&#8217;s and how to make best use of the service. Enjoy!</p>
<ol>
<li><a rel="bookmark" href="http://stoneatwine.wordpress.com/2010/03/10/twitter-glossary-15-common-twitter-terms-explained/">Twitter Glossary – 15 Common Twitter Terms Explained</a></li>
<li><a rel="bookmark" href="http://stoneatwine.wordpress.com/2010/03/10/twitter-glossary-15-common-twitter-terms-explained/"></a><a title="Practical 101s: Getting started with Twitter" href="http://davefleet.com/2008/10/practical-101s-getting-started-with-twitter/" target="_blank">Practical 101s: Getting started with Twitter &#8211; from Dave Flee</a>t</li>
<li> <a title=" My Twitter Rules: What Not To Do" href="http://john.onolan.org/my-twitter-rules-what-not-to-do/" target="_blank">My Twitter Rules : What not to do - from John O&#8217;Nolan</a></li>
<li><a title=" My Twitter Rules: What Not To Do" href="http://john.onolan.org/my-twitter-rules-what-not-to-do/" target="_blank"></a><a title="7 Ways to Use Microblogging Services for Traffic and Brand Exposure" href="http://www.doshdosh.com/7-ways-to-use-microblogging-services-for-traffic-and-brand-exposure/" target="_blank">7 ways to use Microblogging Services for Traffic and Brand Exposure &#8211; from DoshDosh</a></li>
<li><a title="7 Ways to Use Microblogging Services for Traffic and Brand Exposure" href="http://www.doshdosh.com/7-ways-to-use-microblogging-services-for-traffic-and-brand-exposure/" target="_blank"></a><a title="How to Track your Success (or Failure) on Twitter" href="http://rich-page.com/ramblings/how-to-track-your-success-or-failure-on-twitter/" target="_blank">How to Track your Success or Failure on Twitter &#8211; from Rich Page</a></li>
</ol>


<p>Related posts:<ol><li><a href='http://erisds.co.uk/internet/digging-twitter' rel='bookmark' title='Permanent Link: Digging Twitter'>Digging Twitter</a><small>Last night this article hit the front page of Digg....</small></li>
<li><a href='http://erisds.co.uk/personal/disneyland-here-i-come' rel='bookmark' title='Permanent Link: Disneyland, here I come!'>Disneyland, here I come!</a><small>Two weeks ago, my slightly better half had his 30th...</small></li>
<li><a href='http://erisds.co.uk/design/magic-kingdom-font-space-encounter' rel='bookmark' title='Permanent Link: Magic Kingdom Font &#8211; Space Encounter'>Magic Kingdom Font &#8211; Space Encounter</a><small>This is a pretty silly &#038; out of the norm...</small></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/erisds?a=ifcsKogJwMA:ASxpYVoDwU0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/erisds?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=ifcsKogJwMA:ASxpYVoDwU0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/erisds?i=ifcsKogJwMA:ASxpYVoDwU0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=ifcsKogJwMA:ASxpYVoDwU0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/erisds?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=ifcsKogJwMA:ASxpYVoDwU0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/erisds?i=ifcsKogJwMA:ASxpYVoDwU0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=ifcsKogJwMA:ASxpYVoDwU0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/erisds?i=ifcsKogJwMA:ASxpYVoDwU0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=ifcsKogJwMA:ASxpYVoDwU0:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/erisds?d=I9og5sOYxJI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://erisds.co.uk/internet/5-top-resources-for-twitter-success/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The ExplicitWeb Podcast</title>
		<link>http://erisds.co.uk/internet/the-explicitweb-podcast</link>
		<comments>http://erisds.co.uk/internet/the-explicitweb-podcast#comments</comments>
		<pubDate>Sun, 20 Jun 2010 10:50:20 +0000</pubDate>
		<dc:creator>ErisDS</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[explicitweb]]></category>
		<category><![CDATA[featured]]></category>

		<guid isPermaLink="false">http://erisds.co.uk/?p=1188</guid>
		<description><![CDATA[<a href="http://explicitweb.co.uk"><img class="alignleft size-medium wp-image-1305" title="ExplicitWeb" src="http://erisds.co.uk/wp-content/uploads/2010/06/explicitweb_logo-300x300.jpg" alt="" width="300" height="300" /></a>Last week marked the launch of the <a title="Ep. 7 of Explicit Web - Content vs. Design, Microformats, Working in Bursts, and the iPad" href="http://explicitweb.co.uk/post/697393363/episode-7-content-vs-design-microformats" target="_blank">7th ExplicitWeb podcast</a>, complete with our second guest, Rick Nunn. The show seems to be gathering strength with each new episode and I thought it about time I shared my thoughts. If you haven't heard the podcast yet, I recommend checking us out either at the <a title="ExplictWeb Podcast " href="http://explicitweb.co.uk/" target="_blank">ExplicitWeb site</a> or our page on <a title="Explicit Web on iTunes" href="http://bit.ly/cun27g" target="_blank">iTunes</a>.

Just a quick post on the origins of the podcast, the idea behind it and why it is the way it is!


Related posts:<ol><li><a href='http://erisds.co.uk/business/how-to-solve-problematic-client-relationships-back-to-basics' rel='bookmark' title='Permanent Link: How to Solve Problematic Client Relationships: Back to Basics'>How to Solve Problematic Client Relationships: Back to Basics</a><small>Please Note: This is the companion blog post to a...</small></li>
<li><a href='http://erisds.co.uk/code/html-canvas-going-ninja-with-net-magazines-processing-js-tutorial' rel='bookmark' title='Permanent Link: HTML Canvas: Going Ninja with .Net Magazine&#8217;s Processing.js tutorial'>HTML Canvas: Going Ninja with .Net Magazine&#8217;s Processing.js tutorial</a><small>Yesterday I finally got around to sitting down with the...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://explicitweb.co.uk"><img class="alignleft size-medium wp-image-1305" title="ExplicitWeb" src="http://erisds.co.uk/wp-content/uploads/2010/06/explicitweb_logo-300x300.jpg" alt="" width="300" height="300" /></a>Last week marked the launch of the <a title="Ep. 7 of Explicit Web - Content vs. Design, Microformats, Working in Bursts, and the iPad" href="http://explicitweb.co.uk/post/697393363/episode-7-content-vs-design-microformats" target="_blank">7th ExplicitWeb podcast</a>, complete with our second guest, Rick Nunn. The show seems to be gathering strength with each new episode and I thought it about time I shared my thoughts. If you haven&#8217;t heard the podcast yet, I recommend checking us out either at the <a title="ExplictWeb Podcast " href="http://explicitweb.co.uk/" target="_blank">ExplicitWeb site</a> or our page on <a title="Explicit Web on iTunes" href="http://bit.ly/cun27g" target="_blank">iTunes</a>.</p>
<p>ExplicitWeb came from a series of conversations between <a title="John O'Nolan on ExplicitWeb" href="http://john.onolan.org/the-explicitweb-podcast/" target="_blank">John O&#8217;Nolan</a>, <a title="Rob Hawkes on ExplicitWeb" href="http://rawkes.com/blog/2010/03/10/explicitweb-a-podcast-from-the-front-lines-of-web-development" target="_blank">Rob Hawkes</a> and I regarding the state of web industry podcasts. We felt that the existing podcasts were often overly long and self-indulgent, many focus on one subject per show making them hit-and-miss, and most are done by professional podcasters, or people who have become professional podcasters meaning they no longer practise web design and development on a daily basis. The three of us saw an opportunity to do something new &amp; different and <a title="ExplictWeb Podcast " href="http://explicitweb.co.uk/" target="_blank">ExplicitWeb</a> was born.</p>
<p>Doing things differently means shaking it up a bit (and invariably making some people unhappy). Here&#8217;s a few features of ExplicitWeb:</p>
<ul>
<li><strong>ExplicitWeb is short</strong> &#8211; the average show time is around 39 minutes. Hopefully this means you won&#8217;t get bored.</li>
<li><strong>ExplicitWeb is in 3 segments</strong> &#8211; each host presents a topic, meaning that in those 39-odd minutes you get 3 bite-sized looks at 3 very different subjects.</li>
<li><strong>ExplicitWeb is flexible</strong> &#8211; we regularly play with the format: one episode was a 30 minute interview and in another we added an extra segment presented by a guest. We&#8217;re open to ideas and always looking to improve.</li>
<li><strong>ExplicitWeb is diverse</strong> &#8211; we&#8217;re from agency, freelance and student backgrounds, developer, designer, and somewhere in the middle and yup we&#8217;ve even got the token girl ;)</li>
<li><strong>ExplicitWeb is informal</strong> &#8211; we try to present our topics like we&#8217;re having a chat down your local. We don&#8217;t try to be holier-than-thou and what we say comes from our real world experience in a hopefully down-to-earth way&#8230;</li>
<li><strong>ExplicitWeb is Explicit</strong> &#8211; &#8230;not because it&#8217;s smart or funny, but because that&#8217;s how we talk normally.</li>
<li><strong>ExplicitWeb is how it comes (warts and all) </strong>- we don&#8217;t censor and rarely edit. It keeps it quick &amp; easy to produce and hopefully gives the show that &#8220;in the pub&#8221; feel!</li>
<li><strong>ExplicitWeb is bi-weekly</strong> &#8211; despite our time-cutting measures we still only realistically have time to produce a show every 2 weeks. This is definitely the biggest gripe of our listeners! Honestly we&#8217;d all LOVE to have the time to do it weekly, but we don&#8217;t. Hey, at least it&#8217;s not monthly!</li>
</ul>
<p>The entire point behind <a title="ExplictWeb Podcast " href="http://explicitweb.co.uk/" target="_blank">ExplicitWeb</a> is that we are web industry professionals, not professional podcasters. We hope that the benefits of this approach outweigh the negatives. That the content we produce is better for it, even if it means less frequent shows.</p>
<p><a title="ExplicitWeb Podcast" href="http://explicitweb.co.uk" target="_blank">Check out the show</a> and if you like it please don&#8217;t forget to subscribe on <a title="Explicit Web on iTunes" href="http://bit.ly/cun27g" target="_blank">iTunes</a> or to <a title="ExplicitWeb RSS Feed" href="http://media.explicitweb.co.uk/feed/explicitweb_feed.xml" target="_blank">the feed</a> if you prefer. Whether you have positive feedback or constructive criticism, <a title="ExplicitWeb on Twitter" href="http://twitter.com/explicitweb" target="_blank">let us know</a> and maybe <a title="Vote for your favourite ExplicitWeb episode" href="http://explicitweb.co.uk/post/718005957/quick-poll-which-episode-is-your-favourite-so-far" target="_blank">vote for your favourite episode</a>? If you&#8217;ve got ideas for topics, or would like to present one yourself, <a title="ExplicitWeb on Twitter" href="http://twitter.com/explicitweb" target="_blank">get in touch</a>.</p>


<p>Related posts:<ol><li><a href='http://erisds.co.uk/business/how-to-solve-problematic-client-relationships-back-to-basics' rel='bookmark' title='Permanent Link: How to Solve Problematic Client Relationships: Back to Basics'>How to Solve Problematic Client Relationships: Back to Basics</a><small>Please Note: This is the companion blog post to a...</small></li>
<li><a href='http://erisds.co.uk/code/html-canvas-going-ninja-with-net-magazines-processing-js-tutorial' rel='bookmark' title='Permanent Link: HTML Canvas: Going Ninja with .Net Magazine&#8217;s Processing.js tutorial'>HTML Canvas: Going Ninja with .Net Magazine&#8217;s Processing.js tutorial</a><small>Yesterday I finally got around to sitting down with the...</small></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/erisds?a=d1yP4tYyCM0:h7vB2Emdd8Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/erisds?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=d1yP4tYyCM0:h7vB2Emdd8Y:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/erisds?i=d1yP4tYyCM0:h7vB2Emdd8Y:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=d1yP4tYyCM0:h7vB2Emdd8Y:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/erisds?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=d1yP4tYyCM0:h7vB2Emdd8Y:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/erisds?i=d1yP4tYyCM0:h7vB2Emdd8Y:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=d1yP4tYyCM0:h7vB2Emdd8Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/erisds?i=d1yP4tYyCM0:h7vB2Emdd8Y:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=d1yP4tYyCM0:h7vB2Emdd8Y:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/erisds?d=I9og5sOYxJI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://erisds.co.uk/internet/the-explicitweb-podcast/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How to Solve Problematic Client Relationships: Back to Basics</title>
		<link>http://erisds.co.uk/business/how-to-solve-problematic-client-relationships-back-to-basics</link>
		<comments>http://erisds.co.uk/business/how-to-solve-problematic-client-relationships-back-to-basics#comments</comments>
		<pubDate>Tue, 01 Jun 2010 18:00:24 +0000</pubDate>
		<dc:creator>ErisDS</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[theory]]></category>

		<guid isPermaLink="false">http://erisds.co.uk/?p=1193</guid>
		<description><![CDATA[<p class="small"><strong>Please Note:</strong> <em>This is the companion blog post to a section I did on <a href="http://www.explicitweb.co.uk" title="Explicit Web" target="_blank">Explicit Web</a> in Episode 6. This topic is possibly easier to digest in audio form, so I highly recommend you have a listen!</em></p>


<img src="http://erisds.co.uk/wp-content/uploads/2010/05/dreamstimefree_351344-300x200.jpg" alt="" title="Conference Room" width="300" height="200" class="alignleft size-medium wp-image-1209" /><strong>Nightmare clients:</strong> We've all had them.
They come in all shapes &#038; sizes: needy ones, demanding ones, ones that know too much, ones that know too little, ones that don't call, ones that don't pay, and all making our lives a more difficult that we'd like them to be. Using "Transactional Analysis" I'm going to help you figure out what's going wrong and perhaps set things straight with those problematic client relationships.


Related posts:<ol><li><a href='http://erisds.co.uk/business/future-of-web-design-my-thoughts-two-months-on' rel='bookmark' title='Permanent Link: Future of Web Design London 2010: My thoughts two months on&#8230;'>Future of Web Design London 2010: My thoughts two months on&#8230;</a><small>Technology conferences are fun, an enormous amount of extremely geeky...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p class="small"><strong>Please Note:</strong> <em>This is the companion blog post to a section I did on <a href="http://www.explicitweb.co.uk" title="Explicit Web" target="_blank">Explicit Web</a> in <a href="http://explicitweb.co.uk/post/653783325/episode-6-future-of-web-design-psycho-babble" title="Explicit Web Episode 6" target="_blank">Episode 6</a>. This topic is possibly easier to digest in audio form, so I highly recommend you have a listen!</em></p>
<p><img src="http://erisds.co.uk/wp-content/uploads/2010/05/dreamstimefree_351344-300x200.jpg" alt="" title="Conference Room" width="300" height="200" class="alignleft size-medium wp-image-1209" /><strong>Nightmare clients:</strong> We&#8217;ve all had them.<br />
They come in all shapes &#038; sizes: needy ones, demanding ones, ones that know too much, ones that know too little, ones that don&#8217;t call, ones that don&#8217;t pay, and all making our lives a more difficult that we&#8217;d like them to be. Using &#8220;Transactional Analysis&#8221; I&#8217;m going to help you figure out what&#8217;s going wrong and perhaps set things straight with those problematic client relationships.</p>
<p>The phrase <em>&#8220;problematic client relationship&#8221;</em> was chosen very carefully. I don&#8217;t doubt for a second that your nightmare client is being difficult, but I also believe that it&#8217;s far harder to change their behaviour than it is to change your own. More importantly, the key is to realise that the problem <em>between</em> you and your client lies in the relationship <em>between</em> you and your client. By changing the relationship, you can resolve your differences without ever having to directly confront them.</p>
<h3>Transactional Analysis</h3>
<p>Before you close the page because of the scary psycho-babble term, <strong>WAIT</strong>! It&#8217;s just a posh name for a really clever, yet simple premise that WILL MAKE YOUR LIFE EASIER. Please bear with me whilst I attempt to explain it in as few words as possible then I&#8217;ll cut to the fun stuff with examples.</p>
<p><img src="http://erisds.co.uk/wp-content/uploads/2010/05/ta.png" alt="Transactional Analysis Diagram" title="Transactional Analysis Diagram" width="300" height="280" class="alignleft size-full wp-image-1245" />Transactional Analysis (<abbr title="Transactional Analysis">TA</abbr>) theory says that when ever two people communicate, they do so whilst acting in one of three roles: parent, adult or child. These aren&#8217;t actual parents, adults and children, they are concepts: e.g. a parent assumes authority &#038; takes a lot of responsibility, a child accepts the authority of others and takes very little responsibility and an adult is the &#8220;grown-up&#8221; happy middle ground. A parent and child can successfully communicate (although it&#8217;s not always appropriate) and so can two adults, but any other pairing would likely result in communication breakdown.</p>
<p>Most communication should be done adult to adult. When one person starts out or inadvertantly slips from adult into the parent or child role, it causes communication to become strained, or worse can force the other person to reactively slip into the opposite role. This can be a source of major frustration and difficulty for either party.</p>
<p><abbr title="Transactional Analysis">TA</abbr>&#8216;s core principle is that whenever there is a breakdown in communication, it can always be attributed to one or the other parties acting in an inappropriate role for the situation. Applying this to the service provider &#8211; client relationship, communication should always be adult to adult. Each party on equal terms, consulting and working together to achieve a common goal. With that in mind, let&#8217;s analyse some typical scenarios.</p>
<h3>Classic Clients</h3>
<p>Have a read through these classic client scenarios and see if you can figure out what the cause of the breakdown in communication is according to <abbr title="Transactional Analysis">TA</abbr>. I explain my thoughts below, but they&#8217;re all open to interpretation!</p>
<p><strong>Classic Client 1:</strong> You get an email from a client, containing a vague brief for a 5 page website. After asking for some more detail, they reply they aren&#8217;t too sure, can they pay you to sort it all out? After all you&#8217;re the professional! You take on the job, hire a copywriter &#038; are really enjoying having the freedom to express yourself on a project. 2 weeks before launch , you receive and email from the client saying: <em>&#8220;We&#8217;re really sorry, but we&#8217;ve changed our minds, we don&#8217;t like the website any more. It just really isn&#8217;t what we had in mind.&#8221;</em></p>
<p><strong>Classic Client 2:</strong> You get an email from a client, containing a detailed brief for a new website. You agree to work with them and set about designing the site. You show the client what is your best design yet, you&#8217;re really happy with it and they are too, only they want to make a few minor amends. You concede, after all it&#8217;s only a few tiny changes. You start the build stage, and receive a couple of requests for further &#8220;5 minute amends&#8221;, again they&#8217;re only small so you oblige. A few weeks before launch the client sees a near-complete working example and provides some feedback: <em>&#8220;In my head the latest news block was going to scroll, oh and can we change the headers to be large, bold, red, and comic sans?&#8221;</em>.</p>
<blockquote class="halfwidth alignright"><p><em>&#8220;&#8230;whenever there is a breakdown in communication, it can always be attributed to one or the other parties acting in an inappropriate role for the situation.&#8221;</em>
</p></blockquote>
<h4>My thoughts</h4>
<p><strong>Classic Client 1:</strong> This client is clearly not willing to take on any responsibility or authority for their project i.e. acting in the &#8220;child&#8221; role. I&#8217;d guess that their initial decision to be uninvolved made them feel less able to communicate their own thoughts later on, only communicating when it became obvious that they were going to have to pay for something that didn&#8217;t meet their expectations. The service provider was almost tricked into assuming responsibility, I mean who wouldn&#8217;t jump at the opportunity to have free reign over a project?</p>
<p><strong>Classic Client 2:</strong> Slowly over the course of the project, this client has grown accustomed to getting their own way, to being the &#8220;parent&#8221; or &#8220;authority&#8221;. Now they expect changes they request to be carried out and the service provider is feeling unable to communicate their objections. This gradual change of roles is really hard to detect &#038; is a great example of the frustation that is felt by the &#8220;child&#8221;.</p>
<h3>In Conclusion&#8230;</h3>
<p>So what have we learnt from this exercise? Using <abbr title="Transactional Analysis">TA</abbr> we have an excellent tool for analysing our relationships and determining the root cause of a communication problem. However determining the cause is only half the story &#8211; we can also infer from <abbr title="Transactional Analysis">TA</abbr> how to go about resolving communication breakdowns.</p>
<p>If the problem is caused by slipping out of the appropriate &#8220;adult&#8221; role then clearly the resolution is to retake the correct role. In the same way that one party adopting the parent role can force the other to react in the child role, it should be possible to maintain the adult role and coerce your client to respond in kind. This principle should guide your actions but does require skill and good judgement.</p>
<p>It is far harder to apply the principles of <abbr title="Transactional Analysis">TA</abbr> &#8220;after the fact&#8221; &#8211; what it is better at, is prevention. <strong>Educating</strong> your clients throughout your relationship as to what should be expected from each of you is a great way to help ensure your client holds up their end of the bargain. I tend to find that life is full of <strong>little slips</strong>, where one or other person in a communication slips into the wrong role temporarily. <abbr title="Transactional Analysis">TA</abbr> allows us to identify and recover from these slips much more quickly, averting disaster. </p>
<blockquote class="halfwidth alignright"><p><em><strong>Client:</strong> “You need to learn how to run a business. You fucking kids don’t know anything, and just want to rip all us honest business people off.” </em><cite><a href="http://clientsfromhell.net/post/598616578/client-were-not-happy-with-the-website-design" target="_blank" title="Clients from Hell">Clients from Hell</a></cite></p></blockquote>
<p>Finally, there is just no accounting for some people (I recommend a visit to the <a href="http://clientsfromhell.net" title="Clients from Hell" target="_blank">Clients from Hell blog</a>). Sometimes we have to execute disaster avoidance &#8211; if a new client approaches you acting as parent or child, and one or two carefully worded communications doesn&#8217;t resolve the problem, then cut your losses or resolve yourself to a nightmare project. Some client relationships are best solved by not having them at all.</p>
<h3>Relevant &#038; Related Writings</h3>
<ul>
<li><a href="http://john.onolan.org/avoiding-nightmare-clients/" title="Avoiding nightmare clients - John O'Nolan" target="_blank">Avoiding nightmare clients</a> &#8211; John O&#8217;Nolan</li>
<li><a href="http://boagworld.com/news/educating-clients-to-say-yes" title="Educating Clients to say Yes" target="_blank">Educating Clients to say Yes</a> &#8211; Boag World</li>
<li><a href="http://www.smashingmagazine.com/2010/04/23/educating-your-client-on-web-development-successfully/" title="Educating your client on web development successfully." target="_blank">Educating your client on web development successfully.</a> &#8211; Smashing Magazine</li>
<li><a href="http://sam.brown.tc/entry/416/the-importance-of-teaching-your-clients-and-being-the-boss" title="The importance of teaching your clients and being the boss" target="_blank">The importance of teaching your clients and being the boss</a> &#8211; Sam Brown</li>
</ul>


<p>Related posts:<ol><li><a href='http://erisds.co.uk/business/future-of-web-design-my-thoughts-two-months-on' rel='bookmark' title='Permanent Link: Future of Web Design London 2010: My thoughts two months on&#8230;'>Future of Web Design London 2010: My thoughts two months on&#8230;</a><small>Technology conferences are fun, an enormous amount of extremely geeky...</small></li>
</ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/erisds?a=FPpBTnY1MTk:A0seSbaqUxg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/erisds?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=FPpBTnY1MTk:A0seSbaqUxg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/erisds?i=FPpBTnY1MTk:A0seSbaqUxg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=FPpBTnY1MTk:A0seSbaqUxg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/erisds?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=FPpBTnY1MTk:A0seSbaqUxg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/erisds?i=FPpBTnY1MTk:A0seSbaqUxg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=FPpBTnY1MTk:A0seSbaqUxg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/erisds?i=FPpBTnY1MTk:A0seSbaqUxg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/erisds?a=FPpBTnY1MTk:A0seSbaqUxg:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/erisds?d=I9og5sOYxJI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://erisds.co.uk/business/how-to-solve-problematic-client-relationships-back-to-basics/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
