<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web Development &#38; Stuff</title>
	<atom:link href="http://web-development-blog.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://web-development-blog.co.uk</link>
	<description>Some interesting findings from web-dev land...</description>
	<lastBuildDate>Fri, 06 Aug 2010 10:02:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Stop Javascript event bubbling / propagation with nested html elements using jQuery</title>
		<link>http://web-development-blog.co.uk/2010/07/28/stop-javascript-event-bubbling-propagation-nested-html-elements/</link>
		<comments>http://web-development-blog.co.uk/2010/07/28/stop-javascript-event-bubbling-propagation-nested-html-elements/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 13:51:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=359</guid>
		<description><![CDATA[You can stop nested elements triggering their parent element event handlers (DOM bubbling) using this handy jQuery method:
http://api.jquery.com/event.stopImmediatePropagation/
I ran into this issue whilst working on a calendar/scheduling app. Where day containing elements needed click events and their child elements needed click events too. 
Love the jQuery ;]
]]></description>
			<content:encoded><![CDATA[<p>You can stop nested elements triggering their parent element event handlers (DOM bubbling) using this handy jQuery method:</p>
<p><a href="http://api.jquery.com/event.stopImmediatePropagation/">http://api.jquery.com/event.stopImmediatePropagation/</a></p>
<p>I ran into this issue whilst working on a calendar/scheduling app. Where day containing elements needed click events and their child elements needed click events too. </p>
<p>Love the jQuery ;]</p>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2010/07/28/stop-javascript-event-bubbling-propagation-nested-html-elements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>File uploads to PHP scripts hang in Safari bug</title>
		<link>http://web-development-blog.co.uk/2010/06/15/file-uploads-to-php-scripts-hang-in-safari-bug/</link>
		<comments>http://web-development-blog.co.uk/2010/06/15/file-uploads-to-php-scripts-hang-in-safari-bug/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 17:37:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Linux servers]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=354</guid>
		<description><![CDATA[I was experiencing this issue with some larger file uploads using the CakePHP Media plugin.
https://bugs.webkit.org/show_bug.cgi?id=5760
Add this to the virtual host declaration in your Apache config file to fix it:
123456&#60;VirtualHost x.x.x.x:x&#62;

&#160; &#160; # Prevent Safari from hanging on uploads
&#160; &#160; BrowserMatch &#160;Safari&#160; nokeepalive

&#60;/VirtualHost&#62;
]]></description>
			<content:encoded><![CDATA[<p>I was experiencing this issue with some larger file uploads using the CakePHP Media plugin.</p>
<p><a href="https://bugs.webkit.org/show_bug.cgi?id=5760">https://bugs.webkit.org/show_bug.cgi?id=5760</a></p>
<p>Add this to the virtual host declaration in your Apache config file to fix it:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sy0">&lt;</span>VirtualHost x.x.x.x:x<span class="sy0">&gt;</span><br />
<br />
&nbsp; &nbsp; <span class="co0"># Prevent Safari from hanging on uploads</span><br />
&nbsp; &nbsp; BrowserMatch &nbsp;Safari&nbsp; nokeepalive<br />
<br />
<span class="sy0">&lt;/</span>VirtualHost<span class="sy0">&gt;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2010/06/15/file-uploads-to-php-scripts-hang-in-safari-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t trust the output of innerHTML() or jQuery.html() in Internet Explorer</title>
		<link>http://web-development-blog.co.uk/2010/05/16/dont-trust-the-output-of-innerhtml-or-jquery-html-in-internet-explorer/</link>
		<comments>http://web-development-blog.co.uk/2010/05/16/dont-trust-the-output-of-innerhtml-or-jquery-html-in-internet-explorer/#comments</comments>
		<pubDate>Sun, 16 May 2010 13:52:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=341</guid>
		<description><![CDATA[Especially if you&#8217;re trying to match attributes and their values!
Thankfully Kooilnc, the godsend has a solution:
http://stackoverflow.com/questions/1231770/innerhtml-removes-attribute-quotes-in-internet-explorer
I&#8217;ve wrapped that up into a jQuery function here:
123456789101112131415161718192021222324$.fn.ieInnerHTML = function&#40;&#41; &#123; 
&#160; var zz = this.html&#40;&#41;,
&#160; &#160; &#160; &#160;z = 
&#160; &#160; &#160;zz.match&#40;/&#60;\/?\w+((\s+\w+(\s*=\s*(?:&#34;.*?&#34;&#124;'.*?'&#124;[^'&#34;&#62;\s]+))?)+\s*&#124;\s*)\/?&#62;/g&#41;;
&#160; &#160; if &#40;z&#41;&#123;
&#160; &#160; &#160; for &#40;var i=0;i&#60;z.length;i++&#41;&#123;
&#160; &#160; &#160; &#160; var y, zSaved = z&#91;i&#93;;
&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Especially if you&#8217;re trying to match attributes and their values!</p>
<p>Thankfully Kooilnc, the godsend has a solution:</p>
<p><a href="http://stackoverflow.com/questions/1231770/innerhtml-removes-attribute-quotes-in-internet-explorer">http://stackoverflow.com/questions/1231770/innerhtml-removes-attribute-quotes-in-internet-explorer</a></p>
<p>I&#8217;ve wrapped that up into a jQuery function here:</p>
<div class="codecolorer-container javascript " style="overflow:auto;white-space:nowrap;width:100%;height:300px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><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 /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace">$.<span class="me1">fn</span>.<span class="me1">ieInnerHTML</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; <span class="kw2">var</span> zz <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">html</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;z <span class="sy0">=</span> <br />
&nbsp; &nbsp; &nbsp;zz.<span class="me1">match</span><span class="br0">&#40;</span><span class="co2">/&lt;\/?\w+((\s+\w+(\s*=\s*(?:&quot;.*?&quot;|'.*?'|[^'&quot;&gt;\s]+))?)+\s*|\s*)\/?&gt;/g</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>z<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i<span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span>i<span class="sy0">&lt;</span>z.<span class="me1">length</span><span class="sy0">;</span>i<span class="sy0">++</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> y<span class="sy0">,</span> zSaved <span class="sy0">=</span> z<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; z<span class="br0">&#91;</span>i<span class="br0">&#93;</span> <span class="sy0">=</span> z<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">replace</span><span class="br0">&#40;</span><span class="co2">/(&lt;?\w+)|(&lt;\/?\w+)\s/</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span><span class="br0">&#40;</span>a<span class="br0">&#41;</span><span class="br0">&#123;</span><span class="kw1">return</span> a.<span class="me1">toLowerCase</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; y <span class="sy0">=</span> z<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">match</span><span class="br0">&#40;</span><span class="co2">/\=\w+[?\s+|?&gt;]/g</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>y<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> j<span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span>j<span class="sy0">&lt;</span>y.<span class="me1">length</span><span class="sy0">;</span>j<span class="sy0">++</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; z<span class="br0">&#91;</span>i<span class="br0">&#93;</span> <span class="sy0">=</span> z<span class="br0">&#91;</span>i<span class="br0">&#93;</span>.<span class="me1">replace</span><span class="br0">&#40;</span>y<span class="br0">&#91;</span>j<span class="br0">&#93;</span><span class="sy0">,</span>y<span class="br0">&#91;</span>j<span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.<span class="me1">replace</span><span class="br0">&#40;</span><span class="co2">/\=(\w+)([?\s+|?&gt;])/g</span><span class="sy0">,</span><span class="st0">'=&quot;$1&quot;$2'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;zz <span class="sy0">=</span> zz.<span class="me1">replace</span><span class="br0">&#40;</span>zSaved<span class="sy0">,</span>z<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="kw1">return</span> zz<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="co1">// Usage:</span><br />
$<span class="br0">&#40;</span><span class="st0">'#getInnerHtmlOfThis'</span><span class="br0">&#41;</span>.<span class="me1">ieInnerHTML</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2010/05/16/dont-trust-the-output-of-innerhtml-or-jquery-html-in-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax requests cached by Internet Explorer</title>
		<link>http://web-development-blog.co.uk/2010/05/16/ajax-requests-cached-by-internet-explorer/</link>
		<comments>http://web-development-blog.co.uk/2010/05/16/ajax-requests-cached-by-internet-explorer/#comments</comments>
		<pubDate>Sun, 16 May 2010 13:30:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=335</guid>
		<description><![CDATA[God I hate IE&#8230;. and I really don&#8217;t often hate anything&#8230;.
IE tends to cache its responses to some AJAX requests, which if you ask me is very stupid for its default behaviour.
FireFox caching is disabled by default. As always much love to the Fox.
Anyway, if you&#8217;re using jQuery.ajax() remember to pass the cache: false argument [...]]]></description>
			<content:encoded><![CDATA[<p>God I hate IE&#8230;. and I really don&#8217;t often hate anything&#8230;.</p>
<p>IE tends to cache its responses to some AJAX requests, which if you ask me is very stupid for its default behaviour.</p>
<p>FireFox caching is disabled by default. As always much love to the Fox.</p>
<p>Anyway, if you&#8217;re using jQuery.ajax() remember to pass the cache: false argument otherwise you may get unexpected results.</p>
<div class="codecolorer-container javascript " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="javascript codecolorer" style="font-family:Monaco,Lucida Console,monospace">$.<span class="me1">ajax</span><span class="br0">&#40;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; async<span class="sy0">:</span><span class="kw2">true</span><span class="sy0">,</span><br />
&nbsp; &nbsp; cache<span class="sy0">:</span><span class="kw2">false</span><span class="sy0">,</span> &nbsp; <span class="co1">// &lt;-- Set this or you will feel pain!!</span><br />
&nbsp; &nbsp; type<span class="sy0">:</span><span class="st0">'post'</span><span class="sy0">,</span> <br />
&nbsp; &nbsp; data<span class="sy0">:</span> <span class="st0">'data[TreeRows]='</span> <span class="sy0">+</span> data<span class="sy0">,</span><br />
&nbsp; &nbsp; success<span class="sy0">:</span><span class="kw2">function</span><span class="br0">&#40;</span>request<span class="sy0">,</span> xhr<span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">true</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span> <br />
&nbsp; &nbsp; url<span class="sy0">:</span><span class="st0">'/admin/pages/save_tree_state'</span><br />
&nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2010/05/16/ajax-requests-cached-by-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql multiple conditional joins with conditional select</title>
		<link>http://web-development-blog.co.uk/2010/05/15/mysql-multiple-conditional-joins-with-conditional-select/</link>
		<comments>http://web-development-blog.co.uk/2010/05/15/mysql-multiple-conditional-joins-with-conditional-select/#comments</comments>
		<pubDate>Sat, 15 May 2010 09:18:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=332</guid>
		<description><![CDATA[For my own records but may also be of interest to some&#8230;
This statement performs 4 conditional left outer joins and then uses CASE to conditionally select the returned columns as a single group of columns. 
So a polymorphic one to one relationship is returned in a single query.
123456789101112131415$sql = &#60;&#60;&#60;SQL
SELECT *, ELT(Log.action,'$elt_list') AS what,
&#160;CASE WHEN [...]]]></description>
			<content:encoded><![CDATA[<p>For my own records but may also be of interest to some&#8230;</p>
<p>This statement performs 4 conditional left outer joins and then uses CASE to conditionally select the returned columns as a single group of columns. </p>
<p>So a polymorphic one to one relationship is returned in a single query.</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><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 /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="re0">$sql</span> <span class="sy0">=</span> <span class="co3">&lt;&lt;&lt;SQL<br />
SELECT *, ELT(Log.action,'$elt_list') AS what,<br />
&nbsp;CASE WHEN Friend.source_type = '$typeVisitor' THEN 'Anonymous Visitor' WHEN Friend.source_type = '$typeRecipient' THEN 'Referrer' WHEN Friend.source_type = '$typeDiVisitor' THEN 'DI visitor' WHEN Friend.source_type = '$typeFriend' THEN 'Friend' ELSE NULL END as 'source',<br />
&nbsp;CASE WHEN Friend.source_type = '$typeVisitor' THEN Visitor.title WHEN Friend.source_type = '$typeRecipient' THEN Recipient.title WHEN Friend.source_type = '$typeDiVisitor' THEN DiVisitor.title WHEN Friend.source_type = '$typeFriend' THEN RefFriend.title ELSE NULL END as 'Source.title',<br />
&nbsp;CASE WHEN Friend.source_type = '$typeVisitor' THEN Visitor.firstname WHEN Friend.source_type = '$typeRecipient' THEN Recipient.firstname WHEN Friend.source_type = '$typeDiVisitor' THEN DiVisitor.firstname WHEN Friend.source_type = '$typeFriend' THEN RefFriend.firstname ELSE NULL END as 'Source.firstname',<br />
&nbsp;CASE WHEN Friend.source_type = '$typeVisitor' THEN Visitor.surname WHEN Friend.source_type = '$typeRecipient' THEN Recipient.surname WHEN Friend.source_type = '$typeDiVisitor' THEN DiVisitor.surname WHEN Friend.source_type = '$typeFriend' THEN RefFriend.surname ELSE NULL END as 'Source.surname',<br />
&nbsp;CASE WHEN Friend.source_type = '$typeVisitor' THEN Visitor.email WHEN Friend.source_type = '$typeRecipient' THEN Recipient.email WHEN Friend.source_type = '$typeDiVisitor' THEN DiVisitor.email WHEN Friend.source_type = '$typeFriend' THEN RefFriend.email ELSE NULL END as 'Source.email'<br />
&nbsp;FROM friends AS Friend <br />
&nbsp;LEFT OUTER JOIN visitors AS Visitor ON (Visitor.id = Friend.source_id) AND (Friend.source_type = '$typeVisitor')<br />
&nbsp;LEFT OUTER JOIN visitors AS Recipient ON (Recipient.id = Friend.source_id) AND (Friend.source_type = '$typeRecipient')<br />
&nbsp;LEFT OUTER JOIN di_visitors AS DiVisitor ON (DiVisitor.id = Friend.source_id) AND (Friend.source_type = '$typeDiVisitor')<br />
&nbsp;LEFT OUTER JOIN friends AS RefFriend ON (RefFriend.id = Friend.source_id) AND (Friend.source_type = '$typeFriend'),<br />
&nbsp;log_table AS Log<br />
&nbsp;WHERE Log.model_id=Friend.id AND Log.type=$tf<br />
SQL</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2010/05/15/mysql-multiple-conditional-joins-with-conditional-select/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Call to undefined method Folder::ls() on line 277 &#8211; CakePHP 1.3 with Media plugin</title>
		<link>http://web-development-blog.co.uk/2010/04/17/call-to-undefined-method-folderls-on-line-277-cakephp-1-3-with-media-plugin/</link>
		<comments>http://web-development-blog.co.uk/2010/04/17/call-to-undefined-method-folderls-on-line-277-cakephp-1-3-with-media-plugin/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 12:52:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=329</guid>
		<description><![CDATA[If you&#8217;re trying to use the CakePHP Media plugin with 1.3 (I&#8217;m running RC3) and you get this error when deleting an attachment:
1Call to undefined method Folder::ls&#40;&#41; in /path_to_app/app/plugins/media/models/behaviors/media.php &#160;on line 277
ls() has been deprecated in favour of read(), change line 277 of /path_to_app/app/plugins/media/models/behaviors/media.php to:
1list&#40;$versions, &#41; = $Folder-&#62;read&#40;&#41;;
All should work fine thereafter ;]
]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re trying to use the CakePHP Media plugin with 1.3 (I&#8217;m running RC3) and you get this error when deleting an attachment:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace">Call to undefined method Folder::<span class="kw2">ls</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw1">in</span> <span class="sy0">/</span>path_to_app<span class="sy0">/</span>app<span class="sy0">/</span>plugins<span class="sy0">/</span>media<span class="sy0">/</span>models<span class="sy0">/</span>behaviors<span class="sy0">/</span>media.php &nbsp;on line <span class="nu0">277</span></div></td></tr></tbody></table></div>
<p>ls() has been deprecated in favour of read(), change line 277 of /path_to_app/app/plugins/media/models/behaviors/media.php to:</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw3">list</span><span class="br0">&#40;</span><span class="re0">$versions</span><span class="sy0">,</span> <span class="br0">&#41;</span> <span class="sy0">=</span> <span class="re0">$Folder</span><span class="sy0">-&gt;</span><span class="me1">read</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div></td></tr></tbody></table></div>
<p>All should work fine thereafter ;]</p>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2010/04/17/call-to-undefined-method-folderls-on-line-277-cakephp-1-3-with-media-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CakePHP HABTM with single option select menu</title>
		<link>http://web-development-blog.co.uk/2010/02/27/cakephp-habtm-with-single-option-select-menu/</link>
		<comments>http://web-development-blog.co.uk/2010/02/27/cakephp-habtm-with-single-option-select-menu/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 14:57:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=307</guid>
		<description><![CDATA[I wasn&#8217;t having much luck with the example given in the CakePHP book for a Has and Belongs To Many relationship with a single option select menu in the view.
Anyway overriding the element type does the trick:
1&#60;?php echo $form-&#62;input&#40;'ResellerField', array&#40;'multiple' =&#62; false&#41;&#41; ?&#62;
]]></description>
			<content:encoded><![CDATA[<p>I wasn&#8217;t having much luck with the <a href="http://book.cakephp.org/view/85/Saving-Related-Model-Data-HABTM">example given in the CakePHP book</a> for a Has and Belongs To Many relationship with a single option select menu in the view.</p>
<p>Anyway overriding the element type does the trick:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br /></div></td><td><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sy0">&lt;</span>?php <span class="kw3">echo</span> <span class="re1">$form</span>-<span class="sy0">&gt;</span>input<span class="br0">&#40;</span><span class="st_h">'ResellerField'</span>, array<span class="br0">&#40;</span><span class="st_h">'multiple'</span> =<span class="sy0">&gt;</span> <span class="kw2">false</span><span class="br0">&#41;</span><span class="br0">&#41;</span> ?<span class="sy0">&gt;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2010/02/27/cakephp-habtm-with-single-option-select-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP v1.2 helper naming convention</title>
		<link>http://web-development-blog.co.uk/2010/02/26/cakephp-v12-helper-naming-convention/</link>
		<comments>http://web-development-blog.co.uk/2010/02/26/cakephp-v12-helper-naming-convention/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 16:34:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=299</guid>
		<description><![CDATA[To create a helper which name consists of more than one word use the following naming convention:
12345678910111213# Helper name: MyHelper

# File name
app/views/helpers/my_helper.php

# Class name (Camel Case)
class MyHelper extends AppHelper 

# In Controller (Camel Case)
var $helpers = array&#40;'MyHelper'&#41;;

# In View (Camel Back):
$myHelper-&#62;method&#40;&#41;;
]]></description>
			<content:encoded><![CDATA[<p>To create a helper which name consists of more than one word use the following naming convention:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><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 /></div></td><td><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co0"># Helper name: MyHelper</span><br />
<br />
<span class="co0"># File name</span><br />
app<span class="sy0">/</span>views<span class="sy0">/</span>helpers<span class="sy0">/</span>my_helper.php<br />
<br />
<span class="co0"># Class name (Camel Case)</span><br />
class MyHelper extends AppHelper <br />
<br />
<span class="co0"># In Controller (Camel Case)</span><br />
var <span class="re1">$helpers</span> = array<span class="br0">&#40;</span><span class="st_h">'MyHelper'</span><span class="br0">&#41;</span>;<br />
<br />
<span class="co0"># In View (Camel Back):</span><br />
<span class="re1">$myHelper</span>-<span class="sy0">&gt;</span>method<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2010/02/26/cakephp-v12-helper-naming-convention/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP ACL console refresher</title>
		<link>http://web-development-blog.co.uk/2010/02/22/cakephp-acl-console-refresher/</link>
		<comments>http://web-development-blog.co.uk/2010/02/22/cakephp-acl-console-refresher/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 19:56:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=293</guid>
		<description><![CDATA[Quick refresher for my own records. CakePHP ACL component console commands:
1234567891011121314151617181920212223# View ACO tree
cake acl view aco

# Create root ACO container - in this instance site
cake acl create aco root site

# Create ACO controller node - in this instance the products controller
cake acl create aco site Products 

# Create ACO controller action node - in [...]]]></description>
			<content:encoded><![CDATA[<p>Quick refresher for my own records. CakePHP ACL component console commands:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:100%;height:300px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><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 /></div></td><td><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co0"># View ACO tree</span><br />
cake acl view aco<br />
<br />
<span class="co0"># Create root ACO container - in this instance site</span><br />
cake acl create aco root site<br />
<br />
<span class="co0"># Create ACO controller node - in this instance the products controller</span><br />
cake acl create aco site Products <br />
<br />
<span class="co0"># Create ACO controller action node - in this instance admin_index</span><br />
cake acl create aco site<span class="sy0">/</span>Products admin_index<br />
<br />
<span class="co0"># Create regular ACO controller action node</span><br />
cake acl create aco site<span class="sy0">/</span>Products index - <span class="kw1">in</span> this instance index<br />
<br />
<span class="co0"># Delete ACO node - in this instance node id 5</span><br />
cake acl delete aco <span class="nu0">5</span><br />
<br />
<span class="co0"># Grant group (id 1) permission to the entire site - this will vary unless you called your root container site</span><br />
cake acl grant group.1 site all<br />
<br />
<span class="co0"># Grant group (id 3) permission to Users controller home action</span><br />
cake acl grant group.3 site<span class="sy0">/</span>Users<span class="sy0">/</span>home all</div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2010/02/22/cakephp-acl-console-refresher/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Set setgid bit (group id) on directory giving group ownership/permissions</title>
		<link>http://web-development-blog.co.uk/2010/01/19/set-setgid-bit-group-id-on-directory-giving-group-ownership-permissions/</link>
		<comments>http://web-development-blog.co.uk/2010/01/19/set-setgid-bit-group-id-on-directory-giving-group-ownership-permissions/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 16:02:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux servers]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://web-development-blog.co.uk/?p=286</guid>
		<description><![CDATA[For my own records, had to look this up again today so thought best blog it:
12sudo chmod -R g+s *
# Would set group permissions recursively for all directories at the current location.
If anyone is interested, files in these directories will have the group ownership as the directory, instead of the group of the user that [...]]]></description>
			<content:encoded><![CDATA[<p>For my own records, had to look this up again today so thought best blog it:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="kw2">sudo</span> <span class="kw2">chmod</span> <span class="re5">-R</span> g+s <span class="sy0">*</span><br />
<span class="co0"># Would set group permissions recursively for all directories at the current location.</span></div></td></tr></tbody></table></div>
<p>If anyone is interested, files in these directories will have the group ownership as the directory, instead of the group of the user that created the file. Which is very handy if you have a user group all working in the same set of directories/directory.</p>
]]></content:encoded>
			<wfw:commentRss>http://web-development-blog.co.uk/2010/01/19/set-setgid-bit-group-id-on-directory-giving-group-ownership-permissions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
