<?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.cfwheels.org/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" version="2.0">
   <channel>
      <title>ColdFusion on Wheels</title>
      <description>A full stream of Wheels blog posts, articles, discussion, and screencasts.</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=8701a02d9b531e30868b2616fa80eec8</link>
      <pubDate>Sat, 13 Mar 2010 07:48:40 -0800</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.cfwheels.org/cfwheels" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="cfwheels" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
         <title>Make an RSS Feed for Your Splash Site</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/make-an-rss-feed-for-your-splash-site/</link>
         <description>Using the new Splash Tags for the Splash CMS, you can easily make an RSS feed or an XML sitemap. 1234567891011121314151617181920212223242526272829&amp;#60;cfcontent type=&amp;#34;text/xml&amp;#34; reset=&amp;#34;Yes&amp;#34;&amp;#62;&amp;#60;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;#62;
&amp;#60;rss version=&amp;#34;2.0&amp;#34; xmlns:dc=&amp;#34;http://purl.org/dc/elements/1.1/&amp;#34; &amp;#160; &amp;#160;xmlns:atom=&amp;#34;http://www.w3.org/2005/Atom&amp;#34;&amp;#62;
&amp;#60;channel&amp;#62;
&amp;#160; &amp;#60;atom:link href=&amp;#34;http://www.YourSite.com/index.cfm/feed&amp;#34; &amp;#160; &amp;#160;rel=&amp;#34;self&amp;#34; type=&amp;#34;application/rss+xml&amp;#34; /&amp;#62;
&amp;#160; &amp;#60;title&amp;#62;YourSite.com&amp;#60;/title&amp;#62;
&amp;#160; &amp;#60;link&amp;#62;http://www.YourSite.com&amp;#60;/link&amp;#62;
&amp;#160; &amp;#60;description&amp;#62;Your Description Goes Here&amp;#60;/description&amp;#62;
&amp;#160; &amp;#60;cfoutput&amp;#62;
&amp;#160; &amp;#160; &amp;#60;pubDate&amp;#62;#HTMLEditFormat(DateFormat(now(), 'ddd, dd mmm yyyy'))#
&amp;#160; &amp;#160; &amp;#160; #HTMLEditFormat(TimeFormat(now(), 'HH:mm:ss'))# EST&amp;#60;/pubDate&amp;#62;
&amp;#160; &amp;#60;language&amp;#62;en-us&amp;#60;/language&amp;#62;
&amp;#160; &amp;#60;ttl&amp;#62;40&amp;#60;/ttl&amp;#62;
&amp;#160; &amp;#60;s:find [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=213</guid>
         <pubDate>Sat, 06 Mar 2010 07:38:35 -0800</pubDate>
         <content:encoded><![CDATA[<p>Using the new Splash Tags for the Splash CMS, you can easily make an RSS feed or an XML sitemap.</p>
<pre>
<div style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;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 /></div></td><td><div class="cfm codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfcontent</span> <span style="color:#0000FF;">type</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"text/xml"</span> reset<span style="color:#0000FF;">=</span><span style="color:#009900;">"Yes"</span><span style="color:#0000FF;">&gt;</span></span><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>?xml <span style="color:#0000FF;">version</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"1.0"</span> encoding<span style="color:#0000FF;">=</span><span style="color:#009900;">"UTF-8"</span>?<span style="color:#0000FF;">&gt;</span></span><br />
<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>rss <span style="color:#0000FF;">version</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"2.0"</span> xmlns:dc<span style="color:#0000FF;">=</span><span style="color:#009900;">"http://purl.org/dc/elements/1.1/"</span></span><br />
<span style="color:#333333;"> &nbsp; &nbsp;xmlns:atom<span style="color:#0000FF;">=</span><span style="color:#009900;">"http://www.w3.org/2005/Atom"</span><span style="color:#0000FF;">&gt;</span></span><br />
<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>channel<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>atom:<span style="color:#0000FF;">link</span> <span style="color:#0000FF;">href</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"http://www.YourSite.com/index.cfm/feed"</span></span><br />
<span style="color:#333333;"> &nbsp; &nbsp;<span style="color:#0000FF;">rel</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"self"</span> <span style="color:#0000FF;">type</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"application/rss+xml"</span> <span style="color:#0000FF;">/&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/title.html"><span style="color:#000000;font-weight:bold;">title</span></a><span style="color:#0000FF;">&gt;</span></span>YourSite.com<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/title.html"><span style="color:#000000;font-weight:bold;">title</span></a><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/link.html"><span style="color:#000000;font-weight:bold;">link</span></a><span style="color:#0000FF;">&gt;</span></span>http://www.YourSite.com<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/link.html"><span style="color:#000000;font-weight:bold;">link</span></a><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>description<span style="color:#0000FF;">&gt;</span></span>Your Description Goes Here<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>description<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfoutput</span><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>pubDate<span style="color:#0000FF;">&gt;</span></span>#HTMLEditFormat(DateFormat(now(), 'ddd, dd mmm yyyy'))#<br />
&nbsp; &nbsp; &nbsp; #HTMLEditFormat(TimeFormat(now(), 'HH:mm:ss'))# EST<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>pubDate<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#0000FF;">language</span><span style="color:#0000FF;">&gt;</span></span>en-us<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#0000FF;">language</span><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>ttl<span style="color:#0000FF;">&gt;</span></span>40<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>ttl<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>s:<span style="color:#0000FF;">find</span> slug<span style="color:#0000FF;">=</span><span style="color:#009900;">"blog"</span><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>s:children-each order<span style="color:#0000FF;">=</span><span style="color:#009900;">"publishedAt desc"</span> where<span style="color:#0000FF;">=</span><span style="color:#009900;">"status='published'"</span><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>item<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfset</span> thisChild <span style="color:#0000FF;">=</span> request.tags.currentChild<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/title.html"><span style="color:#000000;font-weight:bold;">title</span></a><span style="color:#0000FF;">&gt;</span></span><span style="color:#0000FF;">#HTMLEditFormat<span style="color:#0000FF;">&#40;</span>thisChild.<span style="color:#0000FF;">title</span><span style="color:#0000FF;">&#41;</span>#</span><span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/title.html"><span style="color:#000000;font-weight:bold;">title</span></a><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>description<span style="color:#0000FF;">&gt;</span></span><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>!<span style="color:#0000FF;">&#91;</span>CDATA<span style="color:#0000FF;">&#91;</span><span style="color:#0000FF;">&lt;</span>s:<span style="color:#0000FF;">content</span> part<span style="color:#0000FF;">=</span><span style="color:#009900;">"body"</span> page<span style="color:#0000FF;">=</span><span style="color:#009900;">"#thisChild#"</span><span style="color:#0000FF;">/&gt;</span></span>]]&gt;<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>description<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>pubDate<span style="color:#0000FF;">&gt;</span></span>#HTMLEditFormat(DateFormat(thisChild.publishedAt, 'ddd, dd mmm yyyy'))#<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#HTMLEditFormat(TimeFormat(thisChild.publishedAt, 'HH:mm:ss'))# EST<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>pubDate<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>guid isPermaLink<span style="color:#0000FF;">=</span><span style="color:#009900;">"true"</span><span style="color:#0000FF;">&gt;</span></span>http://www.yoursite.com/index.cfm/<span style="color:#0000FF;">#thisChild.slug#</span><span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>guid<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/link.html"><span style="color:#000000;font-weight:bold;">link</span></a><span style="color:#0000FF;">&gt;</span></span>http://www.yoursite.com/index.cfm/<span style="color:#0000FF;">#thisChild.slug#</span><span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/link.html"><span style="color:#000000;font-weight:bold;">link</span></a><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>item<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>s:children-each<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>s:find<span style="color:#0000FF;">&gt;</span></span><br />
<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>channel<span style="color:#0000FF;">&gt;</span></span><span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#990000;font-weight:bold;">cfoutput</span><span style="color:#0000FF;">&gt;</span></span><br />
<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>rss<span style="color:#0000FF;">&gt;</span></span><span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#990000;font-weight:bold;">cfcontent</span><span style="color:#0000FF;">&gt;</span></span><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfabort</span><span style="color:#0000FF;">&gt;</span></span></div></td></tr></tbody></table></div>
</pre>
<p>Most of this code is the required RSS XML. Just drop in your site-specific domain name, description, etc.</p>
<p>The &lt;s:find slug=&#8221;blog&gt; tag finds the blog, and then &lt;s:children-each&gt; loops over all the children that are under the blog page. I used thisChild as a convenience variable instead of having to type request.tags.currentChild every time. The &lt;cfabort&gt; at the end keeps Splash from adding extra HTML tags at the end of the file.</p>
<p>You could also create an easy XML site map using a similar approach. Just change out the XML wrapper.</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/zrv8ETPhPUw" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>New Splash Tags for the Splash CMS</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/new-splash-tags-for-the-splash-cms/</link>
         <description>I recently added several new Splash Tags for the Splash content management system. If you don&amp;#8217;t know about Splash, read my Introduction to Splash article. &amp;#60;s: find&amp;#62;
&amp;#60;s: children-each&amp;#62;
&amp;#60;s: children-first &amp;#62;
&amp;#60;s: children-last &amp;#62;
&amp;#60;s: ifFirst &amp;#62;
&amp;#60;s: unlessFirst &amp;#62;
&amp;#60;s: ifLast &amp;#62;
&amp;#60;s: unlessLast &amp;#62; There&amp;#8217;s a complete list of tags and documentation over on the GitHub Wiki. But, I&amp;#8217;ll give you [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=165</guid>
         <pubDate>Fri, 05 Mar 2010 13:10:56 -0800</pubDate>
         <content:encoded><![CDATA[<p>I recently added several new Splash Tags for the Splash content management system. If you don&#8217;t know about Splash, read my <a rel="nofollow" title="Introduction to the Splash CMS" target="_blank" href="http://www.resultantsys.com/index.php/coldfusion/content-management-and-the-splash-cms-introduction/">Introduction to Splash</a> article.</p>
<ul>
<li>&lt;s: find&gt;</li>
<li>&lt;s: children-each&gt;</li>
<li>&lt;s: children-first &gt;</li>
<li>&lt;s: children-last &gt;</li>
<li>&lt;s: ifFirst &gt;</li>
<li>&lt;s: unlessFirst &gt;</li>
<li>&lt;s: ifLast &gt;</li>
<li>&lt;s: unlessLast &gt;</li>
</ul>
<p>There&#8217;s a complete list of tags and documentation over on the <a rel="nofollow" title="Splash Tags Documentation" target="_blank" href="http://wiki.github.com/russjohnson/SplashCMS/splashtags">GitHub Wiki</a>. But, I&#8217;ll give you an overview and show you how to use these tags for a blog.</p>
<p>&lt;s:find&gt; This tag looks up a page and stores the page object so that subsequent tags can use that page object.</p>
<p>&lt;s: children-each&gt; The tag finds all the children of a page and loops over them.</p>
<p>&lt;s: children-first &gt; and &lt;s: children-last &gt; finds the first or last child page.</p>
<p>The rest of the tags are all used inside of a &lt;s: children-each&gt; tag. They check to see if the current child page is the first one, last one, or whatever.</p>
<h2>Making a Blog page with Splash Tags</h2>
<p>Let&#8217;s say you have a page named Blog, that has several posts that are child pages of Blog. Then, in the body for the blog page, put something like this:</p>
<pre>
<div style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;"><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 /></div></td><td><div class="cfm codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/h3.html"><span style="color:#000000;font-weight:bold;">h3</span></a><span style="color:#0000FF;">&gt;</span></span>Articles<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/h3.html"><span style="color:#000000;font-weight:bold;">h3</span></a><span style="color:#0000FF;">&gt;</span></span><br />
<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>s:<span style="color:#0000FF;">find</span> slug<span style="color:#0000FF;">=</span><span style="color:#009900;">"blog"</span><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>s:children-each</span><br />
<span style="color:#333333;"> &nbsp; order<span style="color:#0000FF;">=</span><span style="color:#009900;">"publishedAt desc"</span></span><br />
<span style="color:#333333;"> &nbsp; where<span style="color:#0000FF;">=</span><span style="color:#009900;">"status='published'"</span><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfset</span> thisChild <span style="color:#0000FF;">=</span> request.tags.currentChild<span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfoutput</span><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/dt.html"><span style="color:#000000;font-weight:bold;">dt</span></a> <span style="color:#0000FF;">class</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"blogList"</span><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/a.html"><span style="color:#000000;font-weight:bold;">a</span></a> <span style="color:#0000FF;">href</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"#thisChild.slug#"</span><span style="color:#0000FF;">&gt;</span></span><span style="color:#0000FF;">#thisChild.<span style="color:#0000FF;">title</span>#</span><span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/a.html"><span style="color:#000000;font-weight:bold;">a</span></a><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | #DateFormat(thisChild.publishedAt, 'long')#<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/dt.html"><span style="color:#000000;font-weight:bold;">dt</span></a><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/dd.html"><span style="color:#000000;font-weight:bold;">dd</span></a> <span style="color:#0000FF;">class</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"blogDesc"</span><span style="color:#0000FF;">&gt;</span></span><span style="color:#0000FF;">#thisChild.<span style="color:#0000FF;">description</span>#</span><span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/dd.html"><span style="color:#000000;font-weight:bold;">dd</span></a><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#990000;font-weight:bold;">cfoutput</span><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>s:children-each<span style="color:#0000FF;">&gt;</span></span><br />
<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span>s:find<span style="color:#0000FF;">&gt;</span></span></div></td></tr></tbody></table></div>
</pre>
<p>&lt;s:find slug=&#8221;blog&#8221;&gt; finds the blog page, and then &lt;s:children-each&gt; loops over all the pages. By the way, &lt;s:children-each&gt; uses the CFWheels <a rel="nofollow" title="findAll Model Method" target="_blank" href="http://cfwheels.org/docs/function/findall">findAll model method</a>, so all of the cool CFWheels parameters are available in &lt;s:children-each&gt;!</p>
<p>If you want to see an example of what this looks like, visit the <a rel="nofollow" title="DonorUp Blog Example" target="_blank" href="http://www.donorup.com/index.cfm/blog">DonorUp blog page</a>.</p>
<p>All in all, that&#8217;s a lot of output for very little programming effort. That&#8217;s what I call the secret to programmer happiness!</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/O04K0Lg8TJA" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Content Management and the Splash CMS — Introduction</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/content-management-and-the-splash-cms-introduction/</link>
         <description>Splash CMS is an open source content management system that runs on top of CFWheels. It&amp;#8217;s designed to be a simple, but elegant content management solutions for websites that are managed by small teams.
CFWheels is an open source ColdFusion framework that is inspired by Ruby on Rails. Besides being easy to use and learn, using [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=156</guid>
         <pubDate>Fri, 05 Mar 2010 12:02:46 -0800</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" title="Splash CMS" target="_blank" href="http://www.splashcms.com/">Splash CMS</a> is an open source content management system that runs on top of <a rel="nofollow" title="CFWheels Framework" target="_blank" href="http://cfwheels.org/">CFWheels</a>. It&#8217;s designed to be a simple, but elegant content management solutions for websites that are managed by small teams.</p>
<p>CFWheels is an open source ColdFusion framework that is inspired by Ruby on Rails. Besides being easy to use and learn, using CFWheels lets you adapt great ideas from Ruby on Rails (RoR) applications. RoR has the Radiant CMS, and Splash is the ColdFusion/CFWheels adaptation!</p>
<p>You can easily download Splash from <a rel="nofollow" title="Download Splash CMS" target="_blank" href="http://wiki.github.com/russjohnson/SplashCMS/">http://wiki.github.com/russjohnson/SplashCMS/</a>. The documentation for Splash is still kind of sparse, but the <a rel="nofollow" title="Radiant CMS Documentation" target="_blank" href="http://wiki.github.com/radiant/radiant/">Radiant </a>documentation is mostly applicable, and you can easily see how most things are supposed to work. Then, if you get stuck, email the <a rel="nofollow" title="Splash CMS Google Group" target="_blank" href="http://groups.google.com/group/splashcms">Google Group</a>.</p>
<h2>Splash Layouts, Snippets, and Pages</h2>
<p>Splash uses Layouts, Snippets, and Pages to build a website.</p>
<p>A layout, as you might imagine, is like a skin for an entire website. You can have multiple layouts and use different layouts for different pages.</p>
<p>Pages are specific URLs on a Splash site, and each page has a specific layout specified. A page can have multiple &#8220;page parts.&#8221; Most pages will have a &#8220;Body&#8221; part, but some might also have a &#8220;Sidebar&#8221; or other parts.</p>
<p>Snippets are reusable content chunks. You might have a navigation snippet that displays the main navigation for your site. Headers and Footers are other common snippets.</p>
<h2>Splash Tags</h2>
<p>There is one other very powerful component to Splash &#8212; Splash Tags. These are ColdFusion custom tags that extend ColdFusion and HTML to work with Splash. Here&#8217;s a simple example: the <code><span class="cfm"><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>s:<span style="color:#0000FF;">title</span> <span style="color:#0000FF;">/&gt;</span></span></span></code> tag. This tag just retrieves the page&#8217;s title from the page object and inserts it in place of the tag. So, in your layout, you would typically have something like:</p>
<p><code><span class="cfm"><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/title.html"><span style="color:#000000;font-weight:bold;">title</span></a><span style="color:#0000FF;">&gt;</span></span><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>s:<span style="color:#0000FF;">title</span> <span style="color:#0000FF;">/&gt;</span></span><span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><a rel="nofollow" target="_blank" href="http://december.com/html/4/element/title.html"><span style="color:#000000;font-weight:bold;">title</span></a><span style="color:#0000FF;">&gt;</span></span></span></code></p>
<p>The pages title information from the database is then easily inserted into the HTML title tag!</p>
<p>There are a lot more tags, so <a rel="nofollow" title="Splash Tags Documentation" target="_blank" href="http://wiki.github.com/russjohnson/SplashCMS/splashtags">see the Wiki</a>.</p>
<h2>Splash in Action</h2>
<p>I recently completed the <a rel="nofollow" title="DonorUp Website" target="_blank" href="http://www.donorup.com">DonorUp.com</a> website using Splash. I was really pleased with how easily I was able to get many thing to come together. So, try Splash and leave a comment to let me know how you like it!</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/IF9cxMIuU0k" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Learning Wheels Litepost Contest winners are</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/W2bcuuUqjJE/Learning-Wheels-Litepost-Contest-winners-are</link>
         <description>&lt;p&gt;Wheels announced a &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/blog/index.cfm/2010/1/25/Wheels-LitePost-Contest--win-Amazon-Gift-Card"&gt;Wheels Litepost Learning Contest&lt;/a&gt; on January 25. The contest consisted of creating a simple &lt;a rel="nofollow" target="_blank" href="http://code.google.com/p/litepost/"&gt;Litepost&lt;/a&gt; blogging application using Wheels.&lt;/p&gt; &lt;p&gt;Two five minute &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/blog/index.cfm/2010/2/3/Wheels-LitePost-Contest-screencasts" title="Wheels LitePost Learning Contest Screencasts"&gt;screencasts&lt;/a&gt; were provided to help people get started.&lt;/p&gt; &lt;h3&gt;Goal&lt;/h3&gt;
&lt;p&gt;Fun exercise to learn Wheels for newbies and chance to win an Amazon Gift card.&lt;/p&gt; &lt;h3&gt;Prize&lt;/h3&gt;
&lt;p&gt;Grand Prize (one): &lt;del&gt;$50&lt;/del&gt; &lt;i&gt;$100&lt;/i&gt; Amazon Gift card&lt;/p&gt;
&lt;p&gt;Runner Up Prizes (two): &lt;del&gt;$25&lt;/del&gt; &lt;i&gt;$50&lt;/i&gt; Amazon Gift card&lt;/p&gt;
&lt;p&gt;Everyone: Free one year Mini Hosting Plan at &lt;a rel="nofollow" target="_blank" href="http://alurium.com"&gt;Alurium Hosting&lt;/a&gt; (over $40 value) &lt;h3&gt;Grand Prize Winner is&lt;/h3&gt;
&lt;p&gt;Aaron Wells&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://www.aaronwells.us"&gt;Blog Working Example&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://github.com/mhenke/LitePostWheels"&gt;Source Code&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.henke.ws/images/LitePost_Home_Screenshot.png"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.henke.ws/images/LitePost_Admin_Screenshot.png"/&gt;&lt;/p&gt; &lt;h3&gt;Runner Up Winners are&lt;/h3&gt;
&lt;p&gt;Cathy Shapiro&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://github.com/cshapiro/Litepost_CFWheels"&gt;Source Code&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.henke.ws/images/cshapiro.jpg"/&gt;&lt;/p&gt; &lt;p&gt;Ryan Stille&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://github.com/stillnet/cfwheels-litepost"&gt;Source Code&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.henke.ws/images/stille.jpg"/&gt;&lt;/p&gt; &lt;h3&gt;Comments&lt;/h3&gt;
&lt;p&gt;"This has been a great exercise for me and has really made me more comfortable with the framework."&lt;/p&gt;
&lt;p&gt;"This is my first ever project in Wheels, and I was thrilled about the contest since it gave me a deadline. "&lt;/p&gt;
&lt;p&gt;"So far I've found this to be a pretty neat framework. I see a lot of similarity to Rails. The documentation is very good."&lt;/p&gt; &lt;p&gt;I know the entries would really like feedback on their code. So have at it :-)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/W2bcuuUqjJE" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2010/2/25/Learning-Wheels-Litepost-Contest-winners-are</guid>
         <pubDate>Thu, 25 Feb 2010 17:34:00 -0800</pubDate>
         <category>Contests</category>
      </item>
      <item>
         <title>Learning CFWheels — Debugging</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/learning-cfwheels-debugging/</link>
         <description>CFWheels has some great documentation and examples, but there is still a small learning curve. As you are getting going, it helps to have a few debugging tips. So, keep reading &amp;#8230;
On the CFWheels Google Group, Cathy recently asked about the sendEmail() function. This is a pretty good example to show you some debugging tips.
sendEmail() [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=137</guid>
         <pubDate>Wed, 24 Feb 2010 14:06:55 -0800</pubDate>
         <content:encoded><![CDATA[<p>CFWheels has some great documentation and examples, but there is still a small learning curve. As you are getting going, it helps to have a few debugging tips. So, keep reading &#8230;</p>
<p>On the CFWheels Google Group, Cathy recently asked about the sendEmail() function. This is a pretty good example to show you some debugging tips.</p>
<p><a rel="nofollow" title="sendEmail()" target="_blank" href="http://cfwheels.org/docs/function/sendemail">sendEmail()</a> wraps the cfmail tag. Here&#8217;s some more information:</p>
<p><a rel="nofollow" title="Sending email with CFWheels" target="_blank" href="http://cfwheels.org/docs/chapter/sending-email">CFWheels on sending email</a>.</p>
<p>This all looks pretty straightforward, but what do you do if it&#8217;s not working?</p>
<p>First, setup a test view page. Go to the Wheels views folder and add a new folder called test. Then create a new file called index.cfm in the test folder. The path should be <span style="color:#993300;">/views/test/index.cfm</span>.</p>
<p>In the index.cfm file you just create, put the following:</p>
<pre>
<div style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;"><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="cfm codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfset</span></span><br />
<span style="color:#333333;">&nbsp; set<span style="color:#0000FF;">&#40;</span>functionName<span style="color:#0000FF;">=</span><span style="color:#009900;">"sendEmail"</span>,</span><br />
<span style="color:#333333;">&nbsp; server<span style="color:#0000FF;">=</span><span style="color:#009900;">"yourServer"</span>,</span><br />
<span style="color:#333333;">&nbsp; <span style="color:#0000FF;">username</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"yourUsername"</span>,</span><br />
<span style="color:#333333;">&nbsp; <span style="color:#0000FF;">password</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"yourPassword"</span><span style="color:#0000FF;">&#41;</span></span><br />
<span style="color:#333333;"><span style="color:#0000FF;">&gt;</span></span></div></td></tr></tbody></table></div>
</pre>
<p>This will trigger the sendEmail() function. You can access the test page at <span style="color:#993300;">http://localhost/index.cfm/test</span>. But, if you go to this page, you&#8217;ll get an error because we didn&#8217;t create myemailtemplate, yet. So, make another CFM page in <span style="color:#993300;">/views/test/</span> called <span style="color:#993300;">myemailtemplate.cfm</span>. The content can be anything you want. Something like &#8220;Test email&#8221; is fine.</p>
<p>Wheels knows you are in the Test controller, so it looks for templates in the <span style="color:#993300;">/views/test</span> folder. Wait a minute! You never said anything about creating a controller. That&#8217;s one of the cool things about Wheels. Even without a controller, it will still show you the view page, and things still work!</p>
<p>Now, go back to the test page at <span style="color:#993300;">http://localhost/index.cfm/test</span>. If everything is working, you should get an email message. If it&#8217;s not working, you can put other stuff in your test page. Try these out:</p>
<ul>
<li>&lt;cfdump var=&#8221;#params#&#8221;&gt; will show you the params structure with your actions, controller, data you&#8217;re passing, etc.</li>
<li>&lt;cfdump var=&#8221;#wheels#&#8221;&gt; will show information on your filters.</li>
<li>&lt;cfdump var=&#8221;#application.wheels#&#8221;&gt; will show all the wheels settings, functions, routes &#8212; All kinds of cool things.</li>
</ul>
<p>Now sendEmail() is a little trickier. It uses ColdFusion&#8217;s &lt;cfmail&gt; tag. Put this in your /views/test/index.cfm file:</p>
<pre>
<div style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;"><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="cfm codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfmail</span> <span style="color:#0000FF;">from</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"me@mydomain.com"</span></span><br />
<span style="color:#333333;"> &nbsp; &nbsp;<span style="color:#0000FF;">to</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"me@mydomain.com"</span></span><br />
<span style="color:#333333;"> &nbsp; &nbsp;subject<span style="color:#0000FF;">=</span><span style="color:#009900;">"Test Message"</span><span style="color:#0000FF;">&gt;</span></span><br />
&nbsp; This is a test<br />
<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#990000;font-weight:bold;">cfmail</span><span style="color:#0000FF;">&gt;</span></span></div></td></tr></tbody></table></div>
</pre>
<p>If this won&#8217;t work, then it&#8217;s your server configuration, not Wheels. You may have to specify your server name or login information. That&#8217;s pretty easy, too. Just put the following in your config/settings:</p>
<pre>
<div style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:550px;"><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="cfm codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfset</span></span><br />
<span style="color:#333333;">&nbsp; set<span style="color:#0000FF;">&#40;</span>functionName<span style="color:#0000FF;">=</span><span style="color:#009900;">"sendEmail"</span>,</span><br />
<span style="color:#333333;">&nbsp; server<span style="color:#0000FF;">=</span><span style="color:#009900;">"yourServer"</span>,</span><br />
<span style="color:#333333;">&nbsp; <span style="color:#0000FF;">username</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"yourUsername"</span>,</span><br />
<span style="color:#333333;">&nbsp; <span style="color:#0000FF;">password</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"yourPassword"</span><span style="color:#0000FF;">&#41;</span></span><br />
<span style="color:#333333;"><span style="color:#0000FF;">&gt;</span></span></div></td></tr></tbody></table></div>
</pre>
<p>I hope this helps!</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/8hR6dyDstMQ" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>CF Wheels ORM Fun!!!</title>
         <link>http://www.cfblogworm.com/post.cfm/cf-wheels-orm-fun</link>
         <description>&lt;p&gt;&lt;a rel="nofollow" title="CF Wheels" target="_blank" href="http://cfwheels.org/"&gt;&lt;img style="border:0pt none;margin:1px;vertical-align:top;float:left;" alt="CF Wheels Logo" width="93" height="121"/&gt;&lt;/a&gt;Today I wanted to have some fun, so I decided to check out the CF Wheels Framework inspired by Ruby on Rails. I've never used Ruby on Rails before, but this framework is pretty nice. It took me all of about ten minutes to have a default page up and running + diplaying data from my model. I wanted to demonstrate just how easy it is to populate tabular data using the framework. &lt;/p&gt;
&lt;p&gt;If you haven't already, you need to download the framework from &lt;a rel="nofollow" title="CF Wheels" target="_blank" href="http://cfwheels.org/"&gt;cfwheels.org&lt;/a&gt;, then extract the zipped file into a folder of you're choosing. The first time you run the application, you should see a CF Wheels Intro page. I'm not going to go over any installation or boilerplate stuff; you can find everything you at &lt;a rel="nofollow" title="CF Wheels" target="_blank" href="http://cfwheels.org/"&gt;cfwheels.org&lt;/a&gt;; they have some great video tutorials. &lt;/p&gt;
&lt;p&gt;The first thing I did was create my database, it just includes a single table for now:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Database Design" width="359" height="271"/&gt;&lt;/p&gt;
&lt;p&gt;CF Wheels is convention based, so the database name needs to be plural. We need to do this, so Wheels can properly setup mappings between our database and model. (just wanted to point out that this not a requirement, you can override pretty much all the default settings)&lt;/p&gt;
&lt;p&gt;Let jump into some code: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Setting up our datasource name (config/settings.cfm)&lt;/li&gt;
&lt;p style="padding-left:60px;"&gt;&amp;lt;cfset set(dataSourceName="dsnPractice") /&amp;gt;&lt;/p&gt;
&lt;li&gt;Setting up our model (model/[YourCFC.cfc])&lt;/li&gt;
&lt;p style="padding-left:60px;"&gt;As you can see in the example below, I didn't follow all of the conventions for Wheels, so I had to override the default properties for my table name . I also set a property for my column name, just to show you that you can override default settings. If you had more than one table and some relationships, you would also define those in here using &lt;a rel="nofollow" title="CF Wheels Documentation" target="_blank" href="http://cfwheels.org/docs/chapter/associations"&gt;associations&lt;/a&gt;.&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&amp;lt;cfcomponent extends="model" output="false"&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;cffunction name="init"&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;cfset table("ParlayStats_MLBSchedule") /&amp;gt;&lt;br /&gt; &amp;lt;cfset property(name="scheduleID", column="scheduleID") /&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;/cffunction&amp;gt;&lt;br /&gt; &lt;br /&gt;&amp;lt;/cfcomponent&amp;gt;&lt;/p&gt;
&lt;li&gt;Connecting you're model to you're controller (controllers/[YourController.cfc])&lt;/li&gt;
&lt;p style="padding-left:60px;"&gt;So to get all the records back from my model, we would call model("schedule").findAll(). There are a ton of built in functions for displaying records anyway you like. You can find those methods &lt;a rel="nofollow" title="CF Wheels Documentation" target="_blank" href="http://cfwheels.org/docs/chapter/reading-records"&gt;here&lt;/a&gt;. I also would like to point out that you should have a controller for each folder inside of you're views directory. Mine is setup like so; views/external/home.cfm. So I have a controller named External with a home function inside of it. Everything that I set in my controller + method home will be available inside the home view:&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;img alt="File Structure" width="182" height="456"/&gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&amp;lt;cfcomponent extends="controller" output="true"&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;cffunction name="home"&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;cfset scheduleRow = 1 /&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;cfset title = "Parlay Stats"&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;cfset scheduleQry = model("schedule").findAll() /&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;/cffunction&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/cfcomponent&amp;gt;&lt;/p&gt;
&lt;li&gt;Connecting our view to our controller (views/[YourView.cfm])&lt;/li&gt;
&lt;/ol&gt;
&lt;p style="padding-left:60px;"&gt;In our view we would want to make sure to cfparam the query being passed to it, and then just output those records in a cfloop.&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&amp;lt;cfparam name="scheduleQry" type="query" /&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&amp;lt;dl class="schedule"&amp;gt;&lt;br /&gt; &amp;lt;dt&amp;gt;Giants Schedule&amp;lt;/dt&amp;gt;&lt;br /&gt; &amp;lt;cfloop query="scheduleClass"&amp;gt;&lt;br /&gt; &amp;lt;cfoutput&amp;gt;&lt;br /&gt; &amp;lt;cfif #scheduleRow# mod 2&amp;gt;&lt;br /&gt; &amp;lt;dd class="even"&amp;gt;&amp;lt;a href=""&amp;gt;#scheduleQry.gameNames#&amp;lt;/a&amp;gt;&amp;lt;span&amp;gt;#lsDateFormat(scheduleQry.startDates,'dd mmm yyyy')#&amp;lt;/span&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt; &amp;lt;cfelse&amp;gt;&lt;br /&gt; &amp;lt;dd&amp;gt;&amp;lt;a href=""&amp;gt;#scheduleQry.gameNames#&amp;lt;/a&amp;gt;&amp;lt;span&amp;gt;#lsDateFormat(scheduleQry.startDates,'dd mmm yyyy')#&amp;lt;/span&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt; &amp;lt;/cfif&amp;gt;&lt;br /&gt; &amp;lt;cfset scheduleRow = #scheduleRow# + 1 /&amp;gt;&lt;br /&gt; &amp;lt;/cfoutput&amp;gt;&lt;br /&gt; &amp;lt;/cfloop&amp;gt;&lt;br /&gt; &amp;lt;/dl&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;Final Result:&lt;/p&gt;
&lt;p style="padding-left:60px;"&gt;&lt;img style="float:left;" alt="Tabular Data" width="372" height="257"/&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/NNBIaa6kp4I" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.cfblogworm.com/post.cfm/cf-wheels-orm-fun</guid>
         <pubDate>Sun, 21 Feb 2010 18:21:56 -0800</pubDate>
      </item>
      <item>
         <title>ValidateThis 0.91 - Now with Groovy and ColdFusion on Wheels Support</title>
         <link>http://www.silverwareconsulting.com/index.cfm/2010/2/19/ValidateThis-091--Now-with-Groovy-and-ColdFusion-on-Wheels-Support</link>
         <description>Bob Silverberg was recently able to get his ValidateThis project to work with ColdFusion on Wheels objects. ValidateThis is a validation framework that provides easy client- and server-side data validation.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/3WvhSyWFEyE" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/5d7e710a1454ae835766ae8bd6609444#cfwheels</guid>
         <pubDate>Sat, 20 Feb 2010 14:50:10 -0800</pubDate>
      </item>
      <item>
         <title>ColdFusion on Wheels 1.0.2 Maintenance Release</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/3TXIDB-KeQ4/ColdFusion-on-Wheels-102-Maintenance-Release</link>
         <description>As many of you have noticed we have released a maintenance version of ColdFusion on Wheels 1.0.2. This release comes on the heels of the 1.0.1 release made only days ago. In fact there are no new features in version 1.0.2 and this release only addresses some bugs that made their way into the release cycle of 1.0.1. Almost immediately after releasing 1.0.1 we noticed something was wrong and some bugs had crept in to the code during the packaging of the release. The core team immediately set out to fix the issue and in fact had a new version of the 1.0.1 zip file on the site within an hour. We then took the new release through some more rigorous testing and eventually incremented the version number to indicate the change that had taken place. We drew straws as to who to blame but I don't remember who lost ;-). Seriously though, we only tracked six downloads of the infected 1.0.1 zip file and several of those were by the core team members. So the impact of this was probably very minimal. And yes we have taken steps to make sure it doesn't happen again. Thanks again for your continued support of the project.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/3TXIDB-KeQ4" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2010/2/19/ColdFusion-on-Wheels-102-Maintenance-Release</guid>
         <pubDate>Fri, 19 Feb 2010 10:32:00 -0800</pubDate>
         <category>Releases</category>
      </item>
      <item>
         <title>Using Partials In CFWheels To Keep DRY</title>
         <link>http://www.angry-fly.com/post.cfm/using-partials-in-cfwheels-to-keep-dry</link>
         <description>&lt;p&gt;One of the things I like about &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org"&gt;CFWheels&lt;/a&gt; is that its based on sensible conventions. If you follow these conventions, they can really save you a ton of time writing boiler-plate code as well as configuration. Working synergistically with these conventions are a lot of helper methods that will also reduce the amount of code you have to write as well as keeping your application &lt;a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself"&gt;DRY (Dont Repeat Yourself)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am working on some new features for &lt;a rel="nofollow" target="_blank" href="http://splashcms.com"&gt;SplashCMS&lt;/a&gt; and ran into a situation that helped clean up quite a bit of code in some of my views and I thought it warranted a little example to show how nice this feature really is.&lt;/p&gt;
&lt;p&gt;I have several places where I want to display a list of snippets in this application. Normally you would just write this code in each of the views that display the listing:&lt;/p&gt;
&lt;h3&gt;Snippets.cfc (controller)&lt;/h3&gt;
&lt;p&gt;
&lt;p&gt;&lt;pre class="brush: cf"&gt; &amp;lt;cffunction name="index"&amp;gt; &amp;lt;cfset snippets = model('snippet').findAll(order="name")&amp;gt; &amp;lt;/cffunction&amp;gt; &lt;/pre&gt;&lt;/p&gt; &lt;h3&gt;index.cfm&lt;/h3&gt;
&lt;p&gt;
&lt;p&gt;&lt;pre class="brush: cf"&gt; &amp;lt;table&amp;gt; &amp;lt;cfoutput query="snippets"&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;#linkTo(text="#name#", route="edit_snippet_path", key="#id#", class="snippet")#&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;#linkTo(text='#imageTag("remove.png")#', route='delete_snippet_path', key="#id#", confirm='Are you sure?')#&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt; &amp;lt;/cfoutput&amp;gt; &amp;lt;/table&amp;gt; &lt;/pre&gt;&lt;/p&gt; &lt;p&gt;Not really a big deal I know. Pretty simple code to display a small list in a table. But consider this, if you do this 2 or 3 times for each different type of list you have, that could really start to get unruly in a hurry. So to help us keep our views as DRY as possible, we can leverage a feature in CFWheels called partials.&lt;/p&gt;
&lt;p&gt;Partials can best be described as CFINCLUDE on steroids. They work exactly like a CFINCLUDE in their simplest form but, are pretty cool in the fact that they can be as simple or complex in functionality as you need. In order to keep things as simple as possible for this post we will simply look at how using a Wheels Partial over a CFINCLUDE is beneficial for our situation and will delve further into some of their more powerful features in another post.&lt;/p&gt;
&lt;p&gt;So, in order to keep from repeating ourselves and having as little code as possible in our app, lets look at how we can simplify this. Since we know we are outputting a list of snippets thats returned in our query, we can strip out the code thats used in each view and place it into a partial named the same as our query. By doing this, we are going to take advantage of one of the features of partials that allows us to automatically handle data being passed into it.&lt;/p&gt;
&lt;p&gt;First lets look at the code that makes this happen and then I will explain it further.&lt;/p&gt;
&lt;h3&gt;index.cfm&lt;/h3&gt;
&lt;p&gt;
&lt;p&gt;&lt;pre class="brush: cf"&gt; &amp;lt;table:cf&amp;gt; &amp;lt;cfoutput&amp;gt; #includePartial(snippets)# &amp;lt;/cfoutput&amp;gt; &amp;lt;/table&amp;gt; &lt;/pre&gt;&lt;/p&gt; &lt;h3&gt;_snippet.cfm&lt;/h3&gt;
&lt;p&gt;
&lt;p&gt;&lt;pre class="brush: cf"&gt; &amp;lt;cfoutput&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;#linkTo(text="#name#", route="edit_snippet_path", key="#id#", class="snippet")#&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;#linkTo(text='#imageTag("remove.png")#', route='delete_snippet_path', key="#id#", confirm='Are you sure?')#&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt; &amp;lt;/cfoutput&amp;gt; &lt;/pre&gt;&lt;/p&gt; &lt;p&gt;Notice in the view file (index.cfm) how we are calling the partial and instead of passing a file name, we are passing the actual query into the includePartial() method. By doing this, we are telling Wheels that we want it to find our partial named _snippet and loop over it once for each record in the query. Pretty nice, right? We are letting Wheels handle looping over the query and including our display code for us. This is much more portable now. Any place we want to display this list, we can simply call the partial and we have only one file with display code to manage the list. This helps to DRY up our code.&lt;/p&gt;
&lt;p&gt;One thing to note. You will notice that Im passing a query named "snippets" plural. However the file Wheels will look for is "_snippet.cfm" singular. Partials are always named starting with an underscore "_" and when Wheels evaluates the query passed into it, it knows we are dealing with a Snippet model and our models are always singular, so the convention is to use singular names for the partials as well. Just think of it like this, the partial is always dealing with only one record at a time, thus its singular.&lt;/p&gt;
&lt;p&gt;I hope this helps explain this really cool feature of partials a bit. In my next post we will expand on this example by demonstrating how CFWheels helps you to use grouping in this same partial.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/3Z65tcj8FOA" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.angry-fly.com/post.cfm/using-partials-in-cfwheels-to-keep-dry</guid>
         <pubDate>Wed, 17 Feb 2010 15:02:52 -0800</pubDate>
      </item>
      <item>
         <title>Learning Wheels Litepost Contest ends Feb 19th</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/wvG8eVSPldI/Learning-Wheels-Litepost-Contest-ends-Feb-19th</link>
         <description>&lt;p&gt;The &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/blog/index.cfm/2010/1/25/Wheels-LitePost-Contest--win-Amazon-Gift-Card" title="Wheels LitePost Contest - Win Amazon Gift Card"&gt;Learning Wheels Litepost Contest&lt;/a&gt; is wrapping up on Feb 19th. It is meant for a hopefully, quick and simple intro into Wheels.&lt;/p&gt;
&lt;h3&gt;Prize&lt;/h3&gt;
&lt;p&gt;Grand Prize (one): &lt;i&gt;$100&lt;/i&gt; Amazon Gift card&lt;/p&gt;
&lt;p&gt;Runner Up Prizes (two): &lt;i&gt;$50&lt;/i&gt; Amazon Gift card&lt;/p&gt;
&lt;p&gt;Everyone: Free one year Mini Hosting Plan at &lt;a rel="nofollow" target="_blank" href="http://alurium.com"&gt;Alurium Hosting&lt;/a&gt; (over $40 value)
&lt;/p&gt; [More]&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/wvG8eVSPldI" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2010/2/17/Learning-Wheels-Litepost-Contest-ends-Feb-19th</guid>
         <pubDate>Wed, 17 Feb 2010 07:58:00 -0800</pubDate>
         <category>Contests</category>
      </item>
      <item>
         <title>ColdFusion on Wheels 1.0.1 Maintenance Release</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/R4rDmDuNoMI/ColdFusion-on-Wheels-101-Maintenance-Release</link>
         <description>&lt;p&gt;Today, we release a minor maintenance version, ColdFusion on Wheels 1.0.1. &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/download"&gt;Download it today&lt;/a&gt;. There are no new features, but everyone likes a more stable code base!&lt;/p&gt;
&lt;p&gt;For those of you upgrading from version 1.0, the path is very simple. Simply replace the &lt;kbd&gt;wheels&lt;/kbd&gt; folder of your install with the new &lt;kbd&gt;wheels&lt;/kbd&gt; folder from the zip file.&lt;/p&gt;
&lt;p&gt;With help from the community, we were able to identify and squash 25 bugs. All of them were minor edge cases, so most have not caused any pain whatsoever for Wheels developers. For a detailed list, refer to the &lt;kbd&gt;CHANGELOG&lt;/kbd&gt; included with the download.&lt;/p&gt; [More]&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/R4rDmDuNoMI" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2010/2/16/ColdFusion-on-Wheels-101-Maintenance-Release</guid>
         <pubDate>Tue, 16 Feb 2010 05:35:00 -0800</pubDate>
         <category>Releases</category>
      </item>
      <item>
         <title>Trying out the CFWheels framework</title>
         <link>http://www.stillnetstudios.com/playing-with-cfwheels/</link>
         <description>Ryan Stille shares some gotchas and first impressions after starting to work on the Wheels LitePost contest. He shares some positive thoughts and then a couple initial frustrations with form helpers and validations.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/2s_iHgmcLVg" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/009f8048913499d3b9fab47cee7ef73e#cfwheels</guid>
         <pubDate>Sun, 14 Feb 2010 13:23:54 -0800</pubDate>
      </item>
      <item>
         <title>Getting Started with ColdFusion? - Stack Overflow</title>
         <link>http://stackoverflow.com/questions/2143824/getting-started-with-coldfusion</link>
         <description>In these "getting started" scenarios, it&amp;#039;s interesting to see that Wheels is starting to get mentioned as a framework to check out. Feel free to vote up those entries and chime in more about our community.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/lzB0tpPNj8c" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/719eb82159f2a8dff815a083a8eb5533#cfwheels</guid>
         <pubDate>Tue, 09 Feb 2010 11:15:46 -0800</pubDate>
      </item>
      <item>
         <title>Buggy curly braces</title>
         <link>http://per.djurner.net/buggy-curly-brackets</link>
         <description>&lt;p&gt;&lt;p&gt;Due to my habit of leaving out curly braces on simple if/else statements a ColdFusion 9 bug hit me today. Have a look at the following code:&lt;/p&gt;
&lt;p&gt;&lt;code&gt; if (0==1)
&amp;nbsp;&amp;nbsp;tmp;
else
&amp;nbsp;&amp;nbsp;aStruct = {}; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;There's no reason that code should fail, right? But it does. When you run it you get an error message saying that "&lt;em&gt;Variable ASTRUCT is undefined&lt;/em&gt;".&lt;/p&gt;
&lt;p&gt;It looks like ColdFusion is misinterpreting the curly braces that declares the struct as being the end of the if/else statement. This is also proven by the fact that you can make the code run by adding proper curly braces to the if/else statement or using StructNew to declare the struct instead of the implicit declaration.&lt;/p&gt;
&lt;p&gt;To make matters worse, this used to work in ColdFusion 8.&lt;/p&gt;
&lt;p&gt;Anyway, off to Adobe to report it...&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://per.djurner.net/buggy-curly-brackets"&gt;Permalink&lt;/a&gt; | &lt;a rel="nofollow" target="_blank" href="http://per.djurner.net/buggy-curly-brackets#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/pGOjnDModPI" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://per.djurner.net/buggy-curly-brackets</guid>
         <pubDate>Mon, 08 Feb 2010 06:35:00 -0800</pubDate>
      </item>
      <item>
         <title>Does exactly what it says on the tin</title>
         <link>http://www.clearcrystalmedia.com/pm/ronseal-test-method-naming/</link>
         <description>
&lt;p&gt;"Does exactly what it says on the tin."&lt;/p&gt;
&lt;p&gt;I love it. All of our method and function names should do exactly the same.&lt;/p&gt;
&lt;p&gt;Read on for more context and why Andy Bellenie is a genius.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.clearcrystalmedia.com/pm/?p=439</guid>
         <pubDate>Sat, 06 Feb 2010 10:39:57 -0800</pubDate>
         <content:encoded><![CDATA[<p></p>
<p>&#8220;Does exactly what it says on the tin.&#8221;</p>
<p>I love it. All of our method and function names should do exactly the same.</p>
<p>During a discussion with the <a rel="nofollow" target="_blank" href="http://cfwheels.org/community/core-team">ColdFusion on Wheels core team</a> about the <code><a rel="nofollow" target="_blank" href="http://cfwheels.org/docs/function/valid">valid()</a></code> and <code><a rel="nofollow" target="_blank" href="http://cfwheels.org/docs/function/beforevalidation">beforeValidation()</a></code> methods, <a rel="nofollow" target="_blank" href="http://cfwheels.org/user/profile/24">Andy Bellenie</a> made this remark:</p>
<blockquote><p>My point is that a callback called <code>beforeValidation</code> should run, well, before validation &#8211; not during it. This seems self-evident to me and I&#8217;d have a hard time explaining to anyone why it should work differently.</p></blockquote>
<p>Then he pointed to &#8220;the <a rel="nofollow" title="Ronseal TV Advert - Ronseal Quick Drying Woodstain" target="_blank" href="http://www.youtube.com/watch?v=HA_qxAWCwqI">Ronseal test</a>, the holy grail of method naming.&#8221;</p>
<p>Thanks Andy for the inspiration.</p> <p class='technorati-tags'>Technorati Tags: <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/best+practices'>best practices</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cfwheels'>cfwheels</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/chris+peters'>chris peters</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/clear+crystal+media'>clear crystal media</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/ColdFusion'>ColdFusion</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/coldfusion+on+wheels'>coldfusion on wheels</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/development'>development</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/polymorphism'>polymorphism</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/Programming'>Programming</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/web+development'>web development</a></p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/V94nweuI_p4" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>CFWheels preinstalled into hosting accounts</title>
         <link>http://alurium.com/2010/02/05/cfwheels-preinstalled-into-hosting-accounts/</link>
         <description>Peter Amiri announces that ColdFusion on Wheels will now be preinstalled on all of Alurium Hosting&amp;#039;s new Railo accounts.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/q1-M-faTiP0" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/8678923ab4b5a1027e720413a069f12d#cfwheels</guid>
         <pubDate>Sat, 06 Feb 2010 09:41:35 -0800</pubDate>
      </item>
      <item>
         <title>Select Multiple Values for select() CFWheels</title>
         <link>http://www.oxalto.co.uk/blog/post.cfm/select-multiple-values-for-select-cfwheels</link>
         <description>&lt;p&gt;Just found this nice little feature, which is basically undocumented..&lt;/p&gt;
&lt;p&gt;There are two Form helpers for drop down select boxes in CfWheels - one is the standard selectTag(), and the other is select() which will bind itself to an object automatically. The selectTag() function is just designed for bog standard forms with no object property.&lt;/p&gt;
&lt;p&gt;In CfWheels, you can pass normal HTML attributes into the form helpers, like 'id', 'class' etc.. these are largely undocumented in the CfWheels docs, as they're well, fairly obvious.&lt;/p&gt;
&lt;p&gt;What I've just found, which plesantly surprised me, is that you can pass 'multiple=true' into the select() form helper, and if the corresponding object's value is a comma deliminated list, it automatically puts in the necessary markers for it to be selected: this is one step up from the standard logic of just passing through the attribute, as CfWheels seems to be doing conditional statements to determine whether it's selected or not. Nice.&lt;/p&gt;
&lt;p&gt;So with the following (with the options 'allBlocks' being a query of available blocks):&lt;/p&gt;
&lt;p&gt;
&lt;code class="coldfusion"&gt;#select(objectName=&lt;span class='cc_value'&gt;"page"&lt;/span&gt;, multiple='true', label=&lt;span class='cc_value'&gt;"Prepend to Content"&lt;/span&gt;, property=&lt;span class='cc_value'&gt;"prepend_blockid"&lt;/span&gt;, options=allBlocks)#&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If in my object 'page', page.prepend_blockid = '1,4,5,6,7', then wheels will automatically give me&lt;/p&gt;
&lt;p&gt;&amp;lt;&lt;span class="start-tag"&gt;select&lt;/span&gt;&lt;span class="attribute-name"&gt; id&lt;/span&gt;=&lt;span class="attribute-value"&gt;"page-prepend_blockid" &lt;/span&gt;&lt;span class="attribute-name"&gt;multiple&lt;/span&gt;=&lt;span class="attribute-value"&gt;"multiple" &lt;/span&gt;&lt;span class="attribute-name"&gt;name&lt;/span&gt;=&lt;span class="attribute-value"&gt;"page[prepend_blockid]"&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="start-tag"&gt;option&lt;/span&gt;&lt;span class="attribute-name"&gt; value&lt;/span&gt;=&lt;span class="attribute-value"&gt;""&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span class="end-tag"&gt;option&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="start-tag"&gt;option &lt;/span&gt;&lt;span class="attribute-name"&gt;selected&lt;/span&gt;=&lt;span class="attribute-value"&gt;"selected"&lt;/span&gt;&lt;span class="attribute-name"&gt; value&lt;/span&gt;=&lt;span class="attribute-value"&gt;"1"&lt;/span&gt;&amp;gt;About Menu Block&amp;lt;/&lt;span class="end-tag"&gt;option&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="start-tag"&gt;option&lt;/span&gt;&lt;span class="attribute-name"&gt; value&lt;/span&gt;=&lt;span class="attribute-value"&gt;"2"&lt;/span&gt;&amp;gt;About Us Quick Text&amp;lt;/&lt;span class="end-tag"&gt;option&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="start-tag"&gt;option&lt;/span&gt;&lt;span class="attribute-name"&gt; value&lt;/span&gt;=&lt;span class="attribute-value"&gt;"3"&lt;/span&gt;&amp;gt;Site Information Menu&amp;lt;/&lt;span class="end-tag"&gt;option&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="start-tag"&gt;option&lt;/span&gt;&lt;span class="attribute-name"&gt; &lt;/span&gt;&lt;span class="attribute-name"&gt;selected&lt;/span&gt;=&lt;span class="attribute-value"&gt;"selected"&lt;/span&gt;&lt;span class="attribute-name"&gt; value&lt;/span&gt;=&lt;span class="attribute-value"&gt;"4"&lt;/span&gt;&amp;gt;What We Do Menu Block&amp;lt;/&lt;span class="end-tag"&gt;option&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="start-tag"&gt;option &lt;/span&gt;&lt;span class="attribute-name"&gt;selected&lt;/span&gt;=&lt;span class="attribute-value"&gt;"selected"&lt;/span&gt;&lt;span class="attribute-name"&gt; value&lt;/span&gt;=&lt;span class="attribute-value"&gt;"5"&lt;/span&gt;&amp;gt;Google Search Form&amp;lt;/&lt;span class="end-tag"&gt;option&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="start-tag"&gt;option&lt;/span&gt;&lt;span class="attribute-name"&gt; &lt;/span&gt;&lt;span class="attribute-name"&gt;selected&lt;/span&gt;=&lt;span class="attribute-value"&gt;"selected" &lt;/span&gt;&lt;span class="attribute-name"&gt;value&lt;/span&gt;=&lt;span class="attribute-value"&gt;"6"&lt;/span&gt;&amp;gt;Contact Form&amp;lt;/&lt;span class="end-tag"&gt;option&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="start-tag"&gt;option&lt;/span&gt;&lt;span class="attribute-name"&gt; &lt;/span&gt;&lt;span class="attribute-name"&gt;selected&lt;/span&gt;=&lt;span class="attribute-value"&gt;"selected" &lt;/span&gt;&lt;span class="attribute-name"&gt;value&lt;/span&gt;=&lt;span class="attribute-value"&gt;"7"&lt;/span&gt;&amp;gt;Twitter Update&amp;lt;/&lt;span class="end-tag"&gt;option&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="start-tag"&gt;option&lt;/span&gt;&lt;span class="attribute-name"&gt; value&lt;/span&gt;=&lt;span class="attribute-value"&gt;"8"&lt;/span&gt;&amp;gt;Resources Menu&amp;lt;/&lt;span class="end-tag"&gt;option&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="start-tag"&gt;option&lt;/span&gt;&lt;span class="attribute-name"&gt; value&lt;/span&gt;=&lt;span class="attribute-value"&gt;"9"&lt;/span&gt;&amp;gt;Latest 5 Webcasts&amp;lt;/&lt;span class="end-tag"&gt;option&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span class="start-tag"&gt;option&lt;/span&gt;&lt;span class="attribute-name"&gt; value&lt;/span&gt;=&lt;span class="attribute-value"&gt;"10"&lt;/span&gt;&amp;gt;Latest 5 Podcasts&amp;lt;/&lt;span class="end-tag"&gt;option&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;span class="end-tag"&gt;select&lt;/span&gt;&amp;gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/_7RmkWBmHlM" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.oxalto.co.uk/blog/post.cfm/select-multiple-values-for-select-cfwheels</guid>
         <pubDate>Fri, 05 Feb 2010 06:18:56 -0800</pubDate>
      </item>
      <item>
         <title>onError Handling for CFWheels and Splash CMS</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/onerror-handling-for-cfwheels-and-splash-cms/</link>
         <description>For most websites it&amp;#8217;s usually a good idea to have error pages that have user-friendly error messages that are styled to look like the rest of the site. Also, you may want to send yourself an eMail when an error happens. Read on to see how to make this work.
For the DonorUp website, I used [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=134</guid>
         <pubDate>Thu, 04 Feb 2010 14:55:48 -0800</pubDate>
         <content:encoded><![CDATA[<p>For most websites it&#8217;s usually a good idea to have error pages that have user-friendly error messages that are styled to look like the rest of the site. Also, you may want to send yourself an eMail when an error happens. Read on to see how to make this work.</p>
<p>For the <a rel="nofollow" title="DonorUp Website" target="_blank" href="http://www.DonorUp.com">DonorUp</a> website, I used CFWheels and the Splash CMS. Once I knew the tricks, it turned out to be really easy to make this work. So, I decided to write a post to explain what you need to know.</p>
<p>Typically, in ColdFusion, you add an onError() method to your Application.cfc file. Wheels gives you various hooks into Application.cfc, but Wheels already has an onError() method. So, you can&#8217;t add another one! Fortunately, Wheels has an easy way to handle most errors.</p>
<h2>How to send error messages from CFWheels</h2>
<p>All you have to do to get Wheels to send error message emails is add the following into your <span style="color:#993300;">/config/settings.cfm</span> file:</p>
<p><span style="color:#993300;">&lt;cfset set(sendEmailOnError = true)&gt;<br />
&lt;cfset set(errorEmailAddress = &#8220;you@yourServer.com&#8221;)&gt;</span></p>
<p>Now, whenever there&#8217;s an error, you&#8217;ll get a really nice email with all the troubleshooting info you&#8217;ll need. Easy!</p>
<h2>How to setup a custom error page in CFWheels or Splash</h2>
<p>As part of its built-in error handling, Wheels runs the file at <span style="color:#993300;">/events/onerror.cfm</span>. Just put a redirect to your error page at the top of onerror.cfm and you&#8217;re done:</p>
<p><span style="color:#993300;">&lt;cfset redirectTo(route=&#8221;viewer&#8221;, slug=&#8221;error-page&#8221;)&gt;</span></p>
<p>In my case, I went into the Splash CMS admin and added a page called Error Page. This way, the page is automatically styled to match the rest of the site. The error page apologizes to the user for the error, and let&#8217;s them know I am going to fix it!</p>
<p>When Wheels does its error handling, it will run /events/onerror.cfm, and the redirectTo() will send them to my error page! If you aren&#8217;t running Splash, you could just use the other arguments of <a rel="nofollow" title="redirectTo() Documentation" target="_blank" href="http://cfwheels.org/docs/function/redirectto">redirectTo() </a>to send them to any controller and action.</p>
<p>You can also put your own HTML or CFML code in onerror.cfm, but I like doing it this way better as it uses all the layouts and styling of my site!</p>
<p>Please leave me a comment if you like this approach or have other ideas!</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/Caj5EjYV68Y" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Installing CFWheels on Hostek</title>
         <link>http://forum.hostek.com/showthread.php?243-Installing-CFWheels&amp;s=ed39282cdda4fc971701e731422f4bdc&amp;p=357</link>
         <description>davidd shares instructions for installing Wheels on Hostek&amp;#039;s ColdFusion 8 and ColdFusion 9 servers.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/1_BuMsJsmtQ" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/901a4138baa8f0b622665728345ed218#cfwheels</guid>
         <pubDate>Thu, 04 Feb 2010 11:52:00 -0800</pubDate>
      </item>
      <item>
         <title>Coldfusion on Wheels – our first journey together</title>
         <link>http://www.technoclasm.com/2010/02/coldfusion-on-wheels-our-first-journey-together/</link>
         <description>Joel Stobart shares his first impressions of working with ColdFusion on Wheels. It&amp;#039;s a fairly balanced review with positives, negatives, and some notes on what to expect when you&amp;#039;re first starting out.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/zC2zMd8AzsY" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/f4a04d02b65fc115ab3f2e80d3857c93#cfwheels</guid>
         <pubDate>Thu, 04 Feb 2010 11:44:29 -0800</pubDate>
      </item>
      <item>
         <title>Submit Your cfwheels.org Feedback on UserVoice</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/Zg2wjL5U7EY/Submit-Your-cfwheelsorg-Feedback-on-UserVoice</link>
         <description>&lt;p&gt;A couple weeks ago, we launched a &lt;a rel="nofollow" target="_blank" href="http://cfwheelsorg.uservoice.com/"&gt;UserVoice forum&lt;/a&gt; for feedback about the Wheels website itself. To submit feedback about our website, simply go to the website and click on the red Feedback tab along the left side of the screen. You can also vote for other features and improvements that others have suggested.&lt;/p&gt;
&lt;p&gt;And hey, we've actually implemented our first idea generated from your feedback! Our first UserVoice request was implemented last week: the site-wide search engine for cfwheels.org. Now you can search through the entire website for any content or documentation that you may be looking for. We'll be reviewing data that the search engine collects to improve your experience even more.&lt;/p&gt;
&lt;p&gt;It's been pretty clear all along that feedback about the Wheels framework itself should go in our &lt;a rel="nofollow" target="_blank" href="http://code.google.com/p/cfwheels/issues/list"&gt;issue tracker&lt;/a&gt;, but requests for the website were starting to get mixed in with that. Now the two trackers are separate but equal.&lt;/p&gt;
&lt;p&gt;Have an idea for our website? Go ahead and &lt;a rel="nofollow" target="_blank" href="http://cfwheelsorg.uservoice.com/"&gt;submit your idea now&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/Zg2wjL5U7EY" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2010/2/4/Submit-Your-cfwheelsorg-Feedback-on-UserVoice</guid>
         <pubDate>Thu, 04 Feb 2010 09:57:00 -0800</pubDate>
         <category>Website</category>
      </item>
      <item>
         <title>Intro into Wheels Object Relational Mapping (ORM)</title>
         <link>http://cfwheels.org/events/listing/3</link>
         <description>&lt;h2&gt;Date/Time&lt;/h2&gt; &lt;p&gt;Thursday, January 21, 2010 6:00 pm ET&lt;/p&gt; &lt;h2&gt;Location&lt;/h2&gt; &lt;p&gt;&lt;/p&gt; &lt;h2&gt;Presenter&lt;/h2&gt; &lt;p&gt;Mike Henke&lt;/p&gt; &lt;h2&gt;Abstract&lt;/h2&gt; &lt;p&gt;An overview of Object Relational Mapping (ORM) and how is it used in Wheels. Learn how ORM simplifies your database interaction code. Mapping objects in your application to records in your database tables is a key concept in Wheels. We will take a look at exactly how this mapping is performed.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/events/listing/3</guid>
         <pubDate>Thu, 04 Feb 2010 03:02:15 -0800</pubDate>
      </item>
      <item>
         <title>Wheels LitePost Learning Contest screencasts</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/F8v1oWTPRcg/Wheels-LitePost-Contest-screencasts</link>
         <description>&lt;p&gt;
Here are two 5 minute screencasts to help you get started for the &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/blog/index.cfm/2010/1/25/Wheels-LitePost-Contest--win-Amazon-Gift-Card"&gt;Wheels Litepost Learning Contest&lt;/a&gt;.
&lt;/p&gt; [More]&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/F8v1oWTPRcg" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2010/2/3/Wheels-LitePost-Contest-screencasts</guid>
         <pubDate>Wed, 03 Feb 2010 08:11:00 -0800</pubDate>
         <category>Contests</category>
      </item>
      <item>
         <title>ColdFusion on Wheels, Inspired by Ruby on Rails</title>
         <link>http://cfwheels.org/events/listing/2</link>
         <description>&lt;h2&gt;Date/Time&lt;/h2&gt; &lt;p&gt;Friday, April 23, 2010 4:15 pm CT&lt;/p&gt; &lt;h2&gt;Location&lt;/h2&gt; &lt;p&gt;Minneapolis, Minnesota&lt;/p&gt; &lt;h2&gt;Presenter&lt;/h2&gt; &lt;p&gt;Mike Henke&lt;/p&gt; &lt;h2&gt;Abstract&lt;/h2&gt; &lt;p&gt;Inspired by Ruby on Rails, ColdFusion on Wheels provides CFML developers with a rapid MVC framework for increased productivity, organized code. We'll be showing the development workflow for CFWheels starting with the basics and ending with more advanced techniques.&lt;/p&gt;
&lt;p&gt;Audience: Anyone looking for a MVC framework that works like ColdFusion developers for rapid, easy development.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/events/listing/2</guid>
         <pubDate>Wed, 03 Feb 2010 05:02:31 -0800</pubDate>
      </item>
      <item>
         <title>ColdFusion on Wheels ORM and Why It's Mo' Betta</title>
         <link>http://cfwheels.org/events/listing/1</link>
         <description>&lt;h2&gt;Date/Time&lt;/h2&gt; &lt;p&gt;Wednesday, February 10, 2010 4:30 pm MT&lt;/p&gt; &lt;h2&gt;Location&lt;/h2&gt; &lt;p&gt;Salt Lake City, Utah&lt;/p&gt; &lt;h2&gt;Presenter&lt;/h2&gt; &lt;p&gt;Chris Peters&lt;/p&gt; &lt;h2&gt;Abstract&lt;/h2&gt; &lt;p&gt;Learn how the ORM in ColdFusion on Wheels helps you speed up your development and keep your code nice and tidy. Chris Peters will give a tour of the "model layer" of the Wheels MVC framework. His goal is to leave you thinking, "Wow, I really need to try that out!"&lt;/p&gt;
&lt;p&gt;(P.S. The presentation title was a special collaboration between Chris Peters and David McGuigan. This title comes "as is" without warranty of any kind.)&lt;/p&gt;
&lt;h2&gt;Topics:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Wheels's approach to ORM&lt;/li&gt;
&lt;li&gt;The CRUD lifecycle&lt;/li&gt;
&lt;li&gt;Business rule validation&lt;/li&gt;
&lt;li&gt;Adding code to respond to events&lt;/li&gt;
&lt;li&gt;Associating tables in plain English&lt;/li&gt;
&lt;li&gt;Super-readable dynamic methods&lt;/li&gt;
&lt;li&gt;Magic tricks&lt;/li&gt;
&lt;/ul&gt; &lt;h2&gt;About the Presenter&lt;/h2&gt; &lt;p&gt;Chris Peters is the biggest fan of the ColdFusion on Wheels framework. He has been developing CFML applications since the ColdFusion MX days and hasn't found a better way. Chris leads the Wheels evangelism team, builds and maintains the framework's website at cfwheels.org, and is developing an open source portal framework on top of Wheels called Administrivia.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/events/listing/1</guid>
         <pubDate>Wed, 03 Feb 2010 04:02:00 -0800</pubDate>
      </item>
      <item>
         <title>Andy Bellenie Joins the Core Team</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/788AGvPw0Eg/Andy-Bellenie-Joins-the-Core-Team</link>
         <description>&lt;p&gt;The &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/community/core-team"&gt;core team&lt;/a&gt; has been impressed with the work that &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/user/profile/24"&gt;Andy Bellenie&lt;/a&gt; has been contributing to the core and community for quite some time. So we extended an invitation for him to be the a part of the team, and he said yes.&lt;/p&gt;
&lt;p&gt;Andy is very talented and definitely has opinions about the "right way" of doing things. In fact, we couldn't see why he shouldn't be a part of the team.&lt;/p&gt;
&lt;p&gt;Please join us in congratulating Andy. We're glad to have you on board officially!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/788AGvPw0Eg" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2010/2/2/Andy-Bellenie-Joins-the-Core-Team</guid>
         <pubDate>Tue, 02 Feb 2010 05:20:00 -0800</pubDate>
         <category>Community</category>
      </item>
      <item>
         <title>Episode 9: Adding a Route for User Profiles</title>
         <link>http://cfwheels.org/screencasts/view/10</link>
         <description>Creating custom URL patterns is a breeze in ColdFusion on Wheels. Learn how to build URL patterns using a feature called routes.</description>
         <guid isPermaLink="false">http://cfwheels.org/screencasts/view/10</guid>
         <pubDate>Sun, 31 Jan 2010 02:01:08 -0800</pubDate>
         <media:content fileSize="16124597" url="http://cfwheels.org/files/screencasts/social-network-9.mp4" type="video/mp4" />
         <enclosure length="16124597" url="http://cfwheels.org/files/screencasts/social-network-9.mp4" type="video/mp4" />
      </item>
      <item>
         <title>Wheels LitePost Contest - Win Amazon Gift Card</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/3SC802RlmNQ/Wheels-LitePost-Contest--win-Amazon-Gift-Card</link>
         <description>&lt;p&gt;ColdFusion On Wheels is announcing a contest to create an example of &lt;a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/LitePost_%28blogging_application%29"&gt;LitePost&lt;/a&gt; using Wheels&lt;/p&gt; &lt;p&gt;The LitePost project is hosted &lt;a rel="nofollow" target="_blank" href="http://code.google.com/p/litepost/"&gt;here&lt;/a&gt;. It is a simple blogging application to compare different ColdFusion frameworks. A sql script for the tables and other framework examples are &lt;a rel="nofollow" target="_blank" href="http://litepost.googlecode.com/svn/trunk/"&gt;available&lt;/a&gt;.&lt;/p&gt; &lt;h3&gt;Goal&lt;/h3&gt;
&lt;p&gt;Fun exercise to learn Wheels for newbies and chance to win an Amazon Gift card.&lt;/p&gt; &lt;h3&gt;Prize&lt;/h3&gt;
&lt;p&gt;Grand Prize (one): &lt;del&gt;$50&lt;/del&gt; &lt;i&gt;$100&lt;/i&gt; Amazon Gift card&lt;/p&gt;
&lt;p&gt;Runner Up Prizes (two): &lt;del&gt;$25&lt;/del&gt; &lt;i&gt;$50&lt;/i&gt; Amazon Gift card&lt;/p&gt;
&lt;p&gt;Everyone: Free one year Mini Hosting Plan at &lt;a rel="nofollow" target="_blank" href="http://alurium.com"&gt;Alurium Hosting&lt;/a&gt; (over $40 value)
&lt;/p&gt; [More]&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/3SC802RlmNQ" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2010/1/25/Wheels-LitePost-Contest--win-Amazon-Gift-Card</guid>
         <pubDate>Mon, 25 Jan 2010 11:14:00 -0800</pubDate>
         <category>Contests</category>
      </item>
      <item>
         <title>CFMeetup - Intro into Wheels ORM Thurs Jan 21 6pm EST</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/KFDhFc8qIFM/CFMeetup--Intro-into-Wheels-ORM-Thurs-Jan-21-6pm-EST</link>
         <description>What: "Intro into Wheels Object Relational Mapping (ORM)", with Mike Henke WHEN: Thurs. Jan 21, 6:00pm US ET (UTC/GMT-5) MEETING URL: &lt;a rel="nofollow" target="_blank" href="http://experts.acrobat.com/cfmeetup/"&gt;http://experts.acrobat.com/cfmeetup/&lt;/a&gt;
DURATION: Approx. 1 hour
Meeting will be recorded. URL will be posted after meeting at http://recordings.coldfusionmeetup.com ABOUT THIS SESSION: Our 6pm (US ET) talk on Thursday Jan 21 will be "Intro into Wheels Object Relational Mapping (ORM)", with Mike Henke. (For an introduction to CFWheels, see the recording of the talk earlier this month by Chris Peters. More at &lt;a rel="nofollow" target="_blank" href="http://www.meetup.com/coldfusionmeetup/calendar/12231118/"&gt;http://www.meetup.com/coldfusionmeetup/calendar/12231118/&lt;/a&gt;.) TOPIC DESCRIPTION: (provided by the speaker) An overview of Object Relational Mapping (ORM) and how is it used in Wheels. Learn how ORM simplifies your database interaction code. Mapping objects in your application to records in your database tables is a key concept in Wheels. We will take a look at exactly how this mapping is performed.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/KFDhFc8qIFM" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2010/1/20/CFMeetup--Intro-into-Wheels-ORM-Thurs-Jan-21-6pm-EST</guid>
         <pubDate>Wed, 20 Jan 2010 11:14:00 -0800</pubDate>
         <category>Events</category>
      </item>
      <item>
         <title>Starting out with CfWheels + jQuery + Colorbox</title>
         <link>http://www.oxalto.co.uk/blog/post.cfm/starting-out-with-cfwheels-jquery-colorbox</link>
         <description>&lt;p&gt;One of the things I'm writing at the moment is a fairly complex bespoke content management system. I've done a fair few CMSes in my time, but most of them have had relatively simple back ends - you know the type, where you've got a separate 'admin' section, which in CF terms is often a completely different application; this is usually for authentication's sake (let's face it, it's fairly easy to secure an entire application.cfc) and to keep it relatively contained in a single folder.&lt;/p&gt;
&lt;p&gt;As I've been playing around with &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org"&gt;CfWheels&lt;/a&gt; of late, I thought I'd force myself to use it with this project, as for me, that's usually the best way to learn something - plus I always had the 'get out' clause of being able to override internal wheels behaviour if needed. Wheels instantly throws you into a different mindset when it comes to CMS-like apps; as there are various conventions like MVC and ORM already in place, it makes sense to approach everything from that 'wheels' point of view.&lt;/p&gt;
&lt;p&gt;As building forms is so insanely easy in wheels (see the form helpers), I very quickly got to the point where I started to crave a little more interaction; especially when starting to deal with many to many relationships, and how to update those. But my main objective was to break out of the 'separate-page-in-a-different-application-to-update' mindset.&lt;/p&gt;
&lt;p&gt;Enter &lt;a rel="nofollow" target="_blank" href="http://jquery.com/"&gt;jQuery&lt;/a&gt; &amp;amp; &lt;a rel="nofollow" target="_blank" href="http://colorpowered.com/colorbox/"&gt;colorbox&lt;/a&gt; based forms. Having not really played around with jQuery that much (I know, I know) I've been pretty shocked about how quickly I managed to pull together some proof of concept forms. Add something like colorbox into the mix, and suddenly you've got instant editing ability from any page in your application, without going to have to find the entry in the admin section.&lt;/p&gt;
&lt;p&gt;I'm going to try my best to explain where I've got to, with the usual caveats - there's almost always a better way to do this, and I've probably just not come across it yet - so comments welcomed..&lt;/p&gt;
&lt;p&gt;I'm going to assume you have a basic wheels framework in place, complete with your datasource. For this example, I'm just going to concentrate on one controller and a couple of views.&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Starting up - the layout file&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The first thing is to include the necessary JS &amp;amp; CSS files, so in my layout.cfm file I've got&lt;/p&gt;
&lt;p&gt;
&lt;code class="coldfusion"&gt;#styleSheetLinkTag(sources=&lt;span class='cc_value'&gt;"colorbox"&lt;/span&gt;, media=&lt;span class='cc_value'&gt;"screen,projection"&lt;/span&gt;)#&lt;br /&gt;#javaScriptIncludeTag(&lt;span class='cc_value'&gt;"jquery-1.3.2,jquery.colorbox"&lt;/span&gt;)#&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;The Main View page&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;We need a page view which will output our page object, and provide our edit link: so in /views/pages/view.cfm you might have something like this:&lt;/p&gt;
&lt;p&gt;
&lt;code class="coldfusion"&gt;&lt;span class='cc_cf_cftag'&gt;&amp;lt;cfparam name=&lt;span class='cc_value'&gt;"page"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class='cc_cf_cftag'&gt;&amp;lt;cfoutput&amp;gt;&lt;/span&gt;&lt;span class='cc_html_basic'&gt;&amp;lt;p class=&lt;span class='cc_value'&gt;"admin-links"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;#linkTo(text=&lt;span class='cc_value'&gt;"Edit This Page"&lt;/span&gt;, class=&lt;span class='cc_value'&gt;"colorbox"&lt;/span&gt;, action=&lt;span class='cc_value'&gt;"edit"&lt;/span&gt;, key=page.id)#&lt;br /&gt;&lt;span class='cc_html_basic'&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;#page.content#&lt;br /&gt;&lt;span class='cc_cf_cftag'&gt;&amp;lt;/cfoutput&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Note the class="colorbox" - this we will use later to tie in the form submission with javascript. So this page is essentially providing a link which points at /pages/edit/[pageid].&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Next, we need a form:&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;In my /views/pages folder, I've got a 'partial' called _form.cfm, which is basically a view designed to be called without layout.&lt;/p&gt;
&lt;p&gt;
&lt;code class="coldfusion"&gt;#startFormTag(action=&lt;span class='cc_value'&gt;"update"&lt;/span&gt;)#&lt;br /&gt;#hiddenField(objectName=&lt;span class='cc_value'&gt;"page"&lt;/span&gt;, property=&lt;span class='cc_value'&gt;"id"&lt;/span&gt;)#&lt;br /&gt;#textArea(objectName=&lt;span class='cc_value'&gt;"page"&lt;/span&gt;, property=&lt;span class='cc_value'&gt;"content"&lt;/span&gt;)#&lt;br /&gt;#submitTag()#&lt;br /&gt;#endFormTag()#&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Nothing too unusual there, move along..&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Controller: Pages.cfc&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;In this file, i've got 3 functions: A view, edit and update function. The edit function is fired when the form is loaded, and the update function is fired on the submission of the form.&lt;/p&gt;
&lt;p&gt;
&lt;code class="coldfusion"&gt;&lt;span class='cc_cf_cftag'&gt;&amp;lt;cffunction name=&lt;span class='cc_value'&gt;"view"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;cfset page = model(&lt;span class='cc_value'&gt;"page"&lt;/span&gt;).findAllBySESURL(value=params.title)&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class='cc_cf_cftag'&gt;&amp;lt;/cffunction&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class="coldfusion"&gt;&lt;span class='cc_cf_cftag'&gt;&amp;lt;cffunction name=&lt;span class='cc_value'&gt;"edit"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;cfset page = model(&lt;span class='cc_value'&gt;"page"&lt;/span&gt;).findByKey(key=params.key)&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;cfset renderPartial(&lt;span class='cc_value'&gt;"pageform"&lt;/span&gt;)&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class='cc_cf_cftag'&gt;&amp;lt;/cffunction&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span class='cc_cf_cftag'&gt;&amp;lt;cffunction name=&lt;span class='cc_value'&gt;"update"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;cfset page = model(&lt;span class='cc_value'&gt;"page"&lt;/span&gt;).findByKey(params.page.id)&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;cfset page.update(params.page)&amp;gt;&lt;/span&gt; &lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;cfif page.hasErrors()&amp;gt;&lt;/span&gt; &lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;cfset flashInsert(error=&lt;span class='cc_value'&gt;"Page Content couldn't update."&lt;/span&gt;)&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;cfset redirectTo(back=true)&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;cfelse&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;cfset flashInsert(success=&lt;span class='cc_value'&gt;"Page Content updated successfully."&lt;/span&gt;)&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;cfset redirectTo(back=true)&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;/cfif&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span class='cc_cf_cftag'&gt;&amp;lt;/cffunction&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Note the renderPartial("form") line. This makes wheels look for a "_form.cfm" file in my /views/pages/ folder. The other bit of note is 'redirectTo(back=true)' - this closes the modal window and updates our initial page.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tie it all together:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The last bit is just the javascript to tie the link into loading the form in a modal window:&lt;/p&gt;
&lt;p&gt;
&lt;code class="coldfusion"&gt; &amp;lt;script type=&lt;span class='cc_value'&gt;"text/javascript"&lt;/span&gt;&amp;gt;&lt;br /&gt; $(document).ready(function(){&lt;br /&gt;$(&lt;span class='cc_value'&gt;".colorbox"&lt;/span&gt;).colorbox({&lt;br /&gt; transition: 'fade',&lt;br /&gt; speed: 200&lt;br /&gt; });&lt;br /&gt; &amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This tells colorbox to open any link with a class of .colorbox.&lt;/p&gt;
&lt;p&gt;So really, it's three simple things to remember:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; opening the form via colorbox requires a class/id in the link (at least, that's one way of doing it, there are many others)&lt;/li&gt;
&lt;li&gt;Using partials in modal windows means you don't have to have the layout, and you can reuse that form from anywhere (you could also use renderPage(layout=false))&lt;/li&gt;
&lt;li&gt;Using redirectTo(back=true) does refresh the page, but the most important thing is, you've not really left it due to the overlay.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/iGgqlfQKh7Q" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.oxalto.co.uk/blog/post.cfm/starting-out-with-cfwheels-jquery-colorbox</guid>
         <pubDate>Wed, 20 Jan 2010 07:58:07 -0800</pubDate>
      </item>
      <item>
         <title>YM_Gravatar 0.2</title>
         <link>http://gaclabs.com/2010/01/ym_gravatar-0-2</link>
         <description>I just now found an email that Chris Peters sent me about my Gravatar plugin back on 12/15/2009. He said the main thing holding him back from using the plugin was he couldn&amp;#8217;t pass additional arguments to the &amp;#60;img&amp;#62; tag. Based on his input and suggestions, I have modified the Gravatar plugin where you can [...]</description>
         <guid isPermaLink="false">http://gaclabs.com/?p=99</guid>
         <pubDate>Wed, 20 Jan 2010 07:34:52 -0800</pubDate>
         <content:encoded><![CDATA[<p>I just now found an email that <a rel="nofollow" target="_blank" href="http://www.clearcrystalmedia.com/pm/">Chris Peters</a> sent me about my Gravatar plugin back on 12/15/2009. He said the main thing holding him back from using the plugin was he couldn&#8217;t pass additional arguments to the &lt;img&gt; tag. Based on his input and suggestions, I have modified the Gravatar plugin where you can do just that.</p>
<p>Thanks Chris!</p>
<p><a rel="nofollow" target="_blank" href="http://gaclabs.com/projects/wheels-plugins/ym_gravatar">http://gaclabs.com/projects/wheels-plugins/ym_gravatar</a></p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/41UtGVSnx-8" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Episode 8: Reading and Displaying a Single Record</title>
         <link>http://cfwheels.org/screencasts/view/9</link>
         <description>Learn the mechanics of reading a single record from the database and displaying its data in the view. This example covers building a simple public user profile page.</description>
         <guid isPermaLink="false">http://cfwheels.org/screencasts/view/9</guid>
         <pubDate>Sat, 16 Jan 2010 03:01:26 -0800</pubDate>
         <media:content fileSize="13076261" url="http://cfwheels.org/files/screencasts/social-network-7.mp4" type="video/mp4" />
         <enclosure length="13076261" url="http://cfwheels.org/files/screencasts/social-network-7.mp4" type="video/mp4" />
      </item>
      <item>
         <title>Upcoming (and previous) Wheels Presentations</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/b0P8L2_Fsbc/Upcoming-and-previous-Wheels-Presentations</link>
         <description>&lt;p&gt;
Thanks to the ColdFusion Community for supporting Wheels. Hat-tips to upcoming ColdFusion Conferences &lt;a rel="nofollow" target="_blank" href="http://cfobjective.com/"&gt;cf.Objective()&lt;/a&gt; and &lt;a rel="nofollow" target="_blank" href="http://cfunited.com"&gt;CFUnited&lt;/a&gt; for accepting and expressing interest in Wheels sessions. Individual thanks to Sean Corfield for &lt;a rel="nofollow" target="_blank" href="http://corfield.org/blog/index.cfm/do/blog.entry/entry/CFUnited_2010__where_are_the_OO_submissions"&gt;asking people to submit Wheels topics&lt;/a&gt; to CFUnited and &lt;a rel="nofollow" target="_blank" href="http://www.carehart.org"&gt;Charlie Arehart&lt;/a&gt; for hosting Wheels topics on the &lt;a rel="nofollow" target="_blank" href="http://www.meetup.com/coldfusionmeetup"&gt;Online ColdFusion Meetup&lt;/a&gt;. Finally, thanks to &lt;a rel="nofollow" target="_blank" href="http://cfhour.com"&gt;CFHour()&lt;/a&gt; for scheduling &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/user/profile/1"&gt;Chris Peters&lt;/a&gt; to talk on an upcoming show about Wheels. [More]&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/b0P8L2_Fsbc" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2010/1/11/Upcoming-and-previous-Wheels-Presentations</guid>
         <pubDate>Mon, 11 Jan 2010 10:32:00 -0800</pubDate>
      </item>
      <item>
         <title>CFEclipse Dictionary for CF on Wheels</title>
         <link>http://quinnmadson.blogspot.com/2010/01/cfeclipse-dictionary-for-cf-on-wheels.html</link>
         <description>Quinn Madson provides a ColdFusion on Wheels dictionary file for CFEclipse and instructions for installing it.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/it_Q9Ymwmh8" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/27dd92923d5969e9c8643c1636647ef8#cfwheels</guid>
         <pubDate>Thu, 07 Jan 2010 11:41:13 -0800</pubDate>
      </item>
      <item>
         <title>Learning the Basics of the ColdFusion on Wheels Framework</title>
         <link>http://cfwheels.org/events/listing/4</link>
         <description>&lt;h2&gt;Date/Time&lt;/h2&gt; &lt;p&gt;Thursday, January 7, 2010 6:00 pm ET&lt;/p&gt; &lt;h2&gt;Location&lt;/h2&gt; &lt;p&gt;&lt;/p&gt; &lt;h2&gt;Presenter&lt;/h2&gt; &lt;p&gt;Chris Peters&lt;/p&gt; &lt;h2&gt;Abstract&lt;/h2&gt; &lt;p&gt;Chris Peters demonstrates how to build a simple CRUD (create, read,
update, delete) application using the ColdFusion on Wheels framework.
By the end of the hour, you'll have a solid understanding of what it's
like to build applications rapidly with Wheels. Surely, you'll be
ready to give the framework a look on your own time!&lt;/p&gt; &lt;h2&gt;About the Presenter&lt;/h2&gt; &lt;p&gt;Chris Peters has been developing CFML applications since the
Macromedia ColdFusion MX days. He has implemented mission-critical
applications in education, government, and business settings and has
found no other technology to be as rapid and practical as CFML.
Currently, Chris is the biggest fan of the ColdFusion on Wheels MVC
framework and is using it to build an open source portal system called
Administrivia.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/events/listing/4</guid>
         <pubDate>Thu, 07 Jan 2010 00:01:31 -0800</pubDate>
      </item>
      <item>
         <title>CFMeetup Presentation this Thursday</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/0HSXah8M_RE/CFMeetup-Presentation-this-Thursday</link>
         <description>&lt;p&gt;Come hear me present on the basics of ColdFusion on Wheels on &lt;a rel="nofollow" target="_blank" href="http://www.meetup.com/coldfusionmeetup/"&gt;ColdFusion Meetup&lt;/a&gt; this Thursday. The presentation is Thursday, January 7, 2010, at 6:00 pm Eastern Time.&lt;/p&gt;
&lt;p&gt;
I just sent this description over to Charlie Arehart:&lt;/p&gt;
&lt;p&gt; Chris Peters demonstrates how to build a simple CRUD (create, read, update, delete) application using the ColdFusion on Wheels framework. By the end of the hour, you'll have a solid understanding of what it's like to build applications rapidly with Wheels. Surely, you'll be ready to give the framework a look on your own time!&lt;/p&gt;
&lt;p&gt;
This is recommended for novice users, those of you who haven't had the chance to try out Wheels, disenfranchised framework users, or anyone else who wants to come heckle me in the Acrobat Connect chatroom. :)
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://experts.acrobat.com/cfmeetup/"&gt;Enter the Meeting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href="http://recordings.coldfusionmeetup.com/"&gt;Recordings of Previous Meetings&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/0HSXah8M_RE" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2010/1/5/CFMeetup-Presentation-this-Thursday</guid>
         <pubDate>Tue, 05 Jan 2010 12:50:00 -0800</pubDate>
         <category>Events</category>
      </item>
      <item>
         <title>DefaultScope 0.6.2 released</title>
         <link>http://illuminerdi.com/2009/12/defaultscope-0-6-2-released/</link>
         <description>DefaultScope plugin 0.6.2 has been released!
* &amp;#60;http://cfwheels.org/plugins/listing/23&amp;#62;
* &amp;#60;http://github.com/illuminerdi/DefaultScope&amp;#62;
The DefaultScope plugin adds the ability to set defaults for the findAll() method on a per-Model basis.
Changes:
### 0.6.2 / 2009.12.19
* 1 minor enhancement:
* fix for DefaultScope causing issues with the calculations methods (andybellenie)
Big thanks to Andy for identifying this issue and supplying patches for it.</description>
         <guid isPermaLink="false">http://illuminerdi.com/?p=426</guid>
         <pubDate>Sat, 19 Dec 2009 14:14:11 -0800</pubDate>
         <content:encoded><![CDATA[<p>DefaultScope plugin 0.6.2 has been released!</p>
<p>* &lt;<a rel="nofollow" target="_blank" href="http://cfwheels.org/plugins/listing/23">http://cfwheels.org/plugins/listing/23</a>&gt;<br />
* &lt;<a rel="nofollow" target="_blank" href="http://cfwheels.org/plugins/listing/23">http://github.com/illuminerdi/DefaultScope</a>&gt;</p>
<p>The DefaultScope plugin adds the ability to set defaults for the findAll() method on a per-Model basis.</p>
<p>Changes:</p>
<p>### 0.6.2 / 2009.12.19</p>
<p>* 1 minor enhancement:</p>
<p>* fix for DefaultScope causing issues with the calculations methods (andybellenie)</p>
<p>Big thanks to Andy for identifying this issue and supplying patches for it.</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/GKhhdMlxoQ8" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>New Stuff for MXUnit, Model-Glue and ValidateThis on the Horizon</title>
         <link>http://www.silverwareconsulting.com/index.cfm/2009/12/17/New-Stuff-for-MXUnit-ModelGlue-and-ValidateThis-on-the-Horizon</link>
         <description>Bob Silverberg updates us on progress with ValidateThis Wheels integration, a plugin that he&amp;#039;s been working on with Mike Henke.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/HkACXpX1690" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/0fe17076f3a63d27c9a8cf0e224ce42c#cfwheels</guid>
         <pubDate>Fri, 18 Dec 2009 07:07:43 -0800</pubDate>
      </item>
      <item>
         <title>Wheels Added to CFML Framework Generator for Eclipse</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/Mmxmim_WddQ/Wheels-Added-to-CFML-Framework-Generator-for-Eclipse</link>
         <description>&lt;p&gt;Robert Burns was pretty quick at adding Wheels to his &lt;a rel="nofollow" target="_blank" href="http://www.robertburns.me/blog/archives/145"&gt; CFML Framework Skeletons plugin&lt;/a&gt; for Eclipse after we released version 1.0.&lt;/p&gt;
&lt;p&gt;After installing the plugin in CFEclipse or ColdFusion Builder, you can start a new Wheels project in a wizard that appears after going to &lt;kbd&gt;File &amp;gt; New &amp;gt; Project...&lt;/kbd&gt;. It will load up all the framework files that you need automatically.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://cfwheels.org/images/blog/2009/12/17/cfml-framework-generator.jpg" alt="ColdFusion on Wheels is now an option in the framework generator plugin for Eclipse."/&gt;&lt;/p&gt;
&lt;p&gt;To install, add &lt;kbd&gt;&lt;a rel="nofollow" target="_blank" href="http://www.robertburns.me/update/"&gt;http://www.robertburns.me/update/&lt;/a&gt;&lt;/kbd&gt; to your update sites in Eclipse.&lt;/p&gt;
&lt;p&gt;The framework generator also supports code for ColdBox, FuseBox, FW/1, LightFront, Mach-II, and Model-Glue.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/Mmxmim_WddQ" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2009/12/17/Wheels-Added-to-CFML-Framework-Generator-for-Eclipse</guid>
         <pubDate>Thu, 17 Dec 2009 05:55:00 -0800</pubDate>
         <category>Community</category>
      </item>
      <item>
         <title>Episode 7: Authentication with Filters</title>
         <link>http://cfwheels.org/screencasts/view/8</link>
         <description>Learn how to set up simple user authentication on a website by using a Wheels feature called filters.</description>
         <guid isPermaLink="false">http://cfwheels.org/screencasts/view/8</guid>
         <pubDate>Thu, 17 Dec 2009 03:12:34 -0800</pubDate>
         <media:content fileSize="20619997" url="http://cfwheels.org/files/screencasts/social-network-7.mp4" type="video/mp4" />
         <enclosure length="20619997" url="http://cfwheels.org/files/screencasts/social-network-7.mp4" type="video/mp4" />
      </item>
      <item>
         <title>Coldfusion with Wheels gains traction</title>
         <link>http://www.technoclasm.com/2009/12/coldfusion-with-wheels-gains-traction/</link>
         <description>Joel Stobart comments about how framework adoption works in traditional development environments and how the recent Wheels 1.0 release can improve its ability to gain traction.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/kA-UID5shr8" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/b945dbcf0d9ad5615bdcd98d57147605#cfwheels</guid>
         <pubDate>Tue, 15 Dec 2009 06:41:37 -0800</pubDate>
      </item>
      <item>
         <title>CFWheels and ORM</title>
         <link>http://www.akbarsait.com/blog/index.cfm/2009/12/14/CFWheels-and-ORM</link>
         <description>Object Relation mapping is one of the key feature in CFWheels. CFWheels makes things easier to start using ORM in your applications. The ORM configuration in CFWheels is implemented by creating a mapping between a database table and ColdFusion compon... [More]&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/OiyRMkQik3U" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.akbarsait.com/blog/index.cfm/2009/12/14/CFWheels-and-ORM</guid>
         <pubDate>Mon, 14 Dec 2009 21:28:00 -0800</pubDate>
      </item>
      <item>
         <title>Wheels Round Up for 2009/12/11</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/3JI2BFedSJ8/Wheels-Round-Up-for-20091211</link>
         <description>&lt;h2&gt;Thanks&lt;/h2&gt;
&lt;p&gt;I would like a couple hat-tips to Sean Corfield for mentioning Wheels in his blog entry about &lt;a rel="nofollow" target="_blank" href="http://corfield.org/blog/index.cfm/do/blog.entry/entry/On_Hal_Helms_Ruby_on_Rails_and_the_Death_of_ColdFusion_and_Fusebox"&gt;Hal Helms leaving CFML&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;And to &lt;a rel="nofollow" target="_blank" href="http://www.remotesynthesis.com/archives.cfm/category/open-source-cf"&gt;ColdFusion Open-Source Update&lt;/a&gt; by Brian Rinaldi who regularly mentions Wheels along with all sorts of other CF Open Source news.
&lt;/p&gt;
&lt;p&gt;Finally, Thanks to Ben Forta, yes Mr. ColdFusion himself. He &lt;a rel="nofollow" target="_blank" href="http://forta.com/blog/index.cfm/2009/12/10/ColdFusion-on-Wheels-10-Released"&gt;mentions Wheels 1.0 Release&lt;/a&gt;.
&lt;/p&gt; [More]&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/3JI2BFedSJ8" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2009/12/11/Wheels-Round-Up-for-20091211</guid>
         <pubDate>Fri, 11 Dec 2009 08:20:00 -0800</pubDate>
         <category>Community</category>
      </item>
      <item>
         <title>Why use CFWheels (ColdFusion) when you got Rails (Ruby)?</title>
         <link>http://blog.multipliedbyinfinity.com/post.cfm/why-use-cfwheels-when-you-got-rails</link>
         <description>Jonathan examines why a CFML developer like himself would want to use Wheels instead of just switching over to Ruby on Rails.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/hTP5ynMMS7k" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/d14f1b3b47a8e775a72e842a9727872e#cfwheels</guid>
         <pubDate>Thu, 10 Dec 2009 12:58:00 -0800</pubDate>
      </item>
      <item>
         <title>Wheels Is Hanging with the Big Boys Just Fine</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/jfe9I9vWuS4/Wheels-Is-Hanging-with-the-Big-Boys</link>
         <description>&lt;p&gt;Well, my first blog post for Wheels. I am &lt;a rel="nofollow" target="_blank" href="http://www.henke.ws/"&gt;Mike Henke&lt;/a&gt;. I fell in love with Wheels after I asked my friend &lt;a rel="nofollow" target="_blank" href="http://www.stillnetstudios.com/"&gt;Ryan Stille&lt;/a&gt; what ColdFusion framework he thought looked interesting and would like to learn. I always wanted to implement a CF framework at work, but business constraints (time, complexity, learning curve, priority) never worked until I found Wheels.&lt;/p&gt;
&lt;p&gt;In this entry, I will be providing some surprising and interesting stats showing how Wheels has grown over the past couple years. Here are a couple to start with: CFWheels.org had a spike of over &lt;strong&gt;&lt;em&gt;500&lt;/em&gt;&lt;/strong&gt; unique visitors and &lt;strong&gt;&lt;em&gt;42 downloads&lt;/em&gt;&lt;/strong&gt; in one day last month.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://cfwheels.org/images/blog/2009/12/9/google-analytics.png" alt="Number of visits is starting to show an exponential trend."/&gt;&lt;br /&gt;
&lt;em&gt;Traffic from past couple years (Google Analytics)&lt;/em&gt;&lt;/p&gt; [More]&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/jfe9I9vWuS4" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2009/12/9/Wheels-Is-Hanging-with-the-Big-Boys</guid>
         <pubDate>Wed, 09 Dec 2009 05:22:00 -0800</pubDate>
         <category>Community</category>
      </item>
      <item>
         <title>CFHour() - This and That</title>
         <link>http://cfhour.com/detail.cfm?entry=5D6782E4-E373-8A75-46B156081633B54E#6B51C8B7-FFA8-6B5D-A995231C8FD141B0</link>
         <description>More discussion about Hal Helms&amp;#039;s departure from CFML to Ruby on Rails. We&amp;#039;re the Rails-like framework for CFML after all, so we should be a part of the conversation.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/0xCqGfsX0xs" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/656a62009006f24705dcf3e4074aea45#cfwheels</guid>
         <pubDate>Wed, 09 Dec 2009 04:36:39 -0800</pubDate>
      </item>
      <item>
         <title>Episode 6: Styling Forms</title>
         <link>http://cfwheels.org/screencasts/view/7</link>
         <description>Chris Peters stylizes form markup globally using a Wheels feature called global helpers. He then applies a simple style sheet in the application's default layout.</description>
         <guid isPermaLink="false">http://cfwheels.org/screencasts/view/7</guid>
         <pubDate>Tue, 08 Dec 2009 05:12:58 -0800</pubDate>
         <media:content fileSize="24177124" url="http://cfwheels.org/files/screencasts/social-network-6.mp4" type="video/mp4" />
         <enclosure length="24177124" url="http://cfwheels.org/files/screencasts/social-network-6.mp4" type="video/mp4" />
      </item>
      <item>
         <title>DefaultScope plugin 0.5 released</title>
         <link>http://illuminerdi.com/2009/12/defaultscope-plugin-0-5-released/</link>
         <description>The DefaultScope plugin 0.5 has been released!
http://cfwheels.org/plugins/listing/23
http://github.com/illuminerdi/DefaultScope
The DefaultScope plugin adds the same functionality to Wheels found in Rails&amp;#8217; ActiveRecord::Base#default_scope. Go ahead and check the documentation on either the Github or CFWheels plugin pages.
Features:
* defaultScope() takes all of the same options as findAll() and stores them for a specific model
* findAll() now pulls in defaultScope values [...]</description>
         <guid isPermaLink="false">http://illuminerdi.com/?p=422</guid>
         <pubDate>Mon, 07 Dec 2009 22:25:23 -0800</pubDate>
         <content:encoded><![CDATA[<p>The DefaultScope plugin 0.5 has been released!</p>
<p><a rel="nofollow" target="_blank" href="http://cfwheels.org/plugins/listing/23">http://cfwheels.org/plugins/listing/23</a><br />
<a rel="nofollow" target="_blank" href="http://github.com/illuminerdi/DefaultScope">http://github.com/illuminerdi/DefaultScope</a></p>
<p>The DefaultScope plugin adds the same functionality to Wheels found in Rails&#8217; ActiveRecord::Base#default_scope. Go ahead and check the documentation on either the Github or CFWheels plugin pages.</p>
<div>Features:<br />
* defaultScope() takes all of the same options as findAll() and stores them for a specific model<br />
* findAll() now pulls in defaultScope values and uses them if not manually overridden
<p>This is my first plugin and I probably did something wrong somewhere. Thanks to <a rel="nofollow" target="_blank" href="http://iamjamesgibson.com">James Gibson</a> for helping me tackle a particularly odd issue with CF8. Please try it out, and let me know if you have any problems or suggestions. It&#8217;s pretty bare-bones, but it does what it says.</p>
<p>Also, in an odd twist, my first plugin is the 23rd listed on <a rel="nofollow" target="_blank" href="http://cfwheels.org">CFWheels</a>, which happens to be my favorite number. Weird.</div><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/NwHNC4XrwHA" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>My first cfwheels plugin - ioc interface</title>
         <link>http://www.andreacfm.com/post.cfm/my-first-cfwheels-plugin-ioc-interface</link>
         <description>&lt;p&gt;&lt;img style="float:left;margin:10px;" src="http://www.andreacfm.com/assets/content//logos/cfwheels-logo.png" alt="" width="93" height="121"/&gt;I decided to play around with &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org"&gt;cfwheels&lt;/a&gt; cause I was amazed by some examples I saw around and I have to admit is good fun. &lt;/p&gt;
&lt;p&gt;After 1 hr testing I realized that no ioc support is build into cfwheels and ..... I really cannot live with no Ioc container available at any time so I decided to add a plugin for managing a beanFactory into cfwheels.&lt;/p&gt;
&lt;p&gt;Probably is not the best cfwheel plugin ever written but was very easy and painless. While I tend to be very OO guy I am amazed by conventions in last period ( I am also playing with Sean Corfield &lt;a rel="nofollow" target="_blank" href="http://fw1.riaforge.org/"&gt;FW1&lt;/a&gt; ). While I am also an happy user of Coldbox and ModelGlue I find that sometimes frameworks added complexity also to easy tasks. From here my desire to look into frameworks that make of conventions their core basement.&lt;/p&gt;
&lt;p&gt;In my mind conventions means less code in default situations and about this cfwheels and fw1 at the moment are the best. Btw I also think that for a more complex task Coldbox really has something more to help development of more advanced applications.&lt;/p&gt;
&lt;p&gt;You can find the plugin &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/plugins/listing/22"&gt;here&lt;/a&gt; to play with it and have a look to &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org"&gt;cfwheels&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/cuDsvWFT68M" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.andreacfm.com/post.cfm/my-first-cfwheels-plugin-ioc-interface</guid>
         <pubDate>Mon, 07 Dec 2009 07:24:48 -0800</pubDate>
      </item>
      <item>
         <title>Using Helicon ISAPI_Rewrite 3 with cfwheels URL rewriting</title>
         <link>http://www.oxalto.co.uk/blog/post.cfm/using-helicon-isapi-rewrite-3-with-cfwheels-url-rewriting</link>
         <description>&lt;p&gt;Maybe one for the cfwheels docs..&lt;/p&gt;
&lt;p&gt;The URL rewriting chapter in the CFWheels docs mentions &lt;a rel="nofollow" target="_blank" href="http://iirf.codeplex.com/"&gt;Ionic's ISAPI Rewrite Filter&lt;/a&gt;. However, I've got a machine which is running IIS6 and version 3 of the &lt;a rel="nofollow" target="_blank" href="http://www.helicontech.com/isapi_rewrite/"&gt;Helicon Tech ISAPI rewrite module&lt;/a&gt;. Version 3 of this module uses .htaccess, rather than the .ini files of version 2.&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you're planning on running CFWheels with full rewriting using Version 3 of this module, you'll need to modify the .htaccess file supplied for use with apache. Don't worry, it's just a full stop (that's period to you USA people) needs removing..&lt;/p&gt;
&lt;p&gt;in the last line:&lt;/p&gt;
&lt;pre&gt;RewriteRule ^(.*)$ ./rewrite.cfm/$1 [L]&lt;/pre&gt;
&lt;p&gt;Should read&lt;/p&gt;
&lt;pre&gt;RewriteRule ^(.*)$ /rewrite.cfm/$1 [L]&lt;/pre&gt;
&lt;p&gt;Then it appears to play nicely.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/gSZVIVC-q4A" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.oxalto.co.uk/blog/post.cfm/using-helicon-isapi-rewrite-3-with-cfwheels-url-rewriting</guid>
         <pubDate>Mon, 07 Dec 2009 04:00:40 -0800</pubDate>
      </item>
      <item>
         <title>FreeAgent Blog: New Sample - CF on Wheels</title>
         <link>http://freeagent.riaforge.org/blog/index.cfm/2009/12/4/Wheels</link>
         <description>Isaac announces his release of a new sample of FreeAgent for Wheels. FreeAgent allows CFML developers to write applications that are portable from CFML framework to CFML framework.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/AIkfBObMgBo" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/59d3cc7f06b035a5c4ee686321f4aa06#cfwheels</guid>
         <pubDate>Fri, 04 Dec 2009 07:02:05 -0800</pubDate>
      </item>
      <item>
         <title>Discovering CFWheels</title>
         <link>http://www.oxalto.co.uk/blog/post.cfm/discovering-cfwheels</link>
         <description>&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/"&gt;&lt;img style="float:left;margin-right:20px;" alt="" width="93" height="121"/&gt;&lt;/a&gt;I've spent the past week or so with my head down, coding, and completely loving it.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/"&gt;CFWheels&lt;/a&gt; is a CFML framework based on Ruby on Rails - at least it shares a lot of the same concepts from what I can tell. My previous experience with frameworks hasn't been too great. I got put off the 'big player' names like Model Glue, Fusebox et al, as when I investigated them (admittedly a few of years ago) I got instantly put off by XML configuration, and quite frankly, some concepts I just couldn't grasp at the time. Also, loading 100's of templates for the apps I was writing at the time was just unnecessary.&lt;/p&gt;
&lt;p&gt;Maybe the timing's good, but I've been blown away by CFWheels. &lt;/p&gt;
&lt;p&gt;My own coding style has changed a lot in the last 12 - 36 months, and I was getting to the point where I was writing lots of custom code to do certain things - a good example would be URL rewriting - each application I'd write would have similar, if not the same requirements. I'm a big fan of logical and symantically meaningful URL paths, and where I can, I've been trying to gradually make all my apps follow some sort of pattern. Once you find something which works, you basically cut and paste it into every new app you make, and each application might it's own quirks, meaning you have multiple, similar versions of the same block of code.&lt;/p&gt;
&lt;p&gt;Basic CRUD operations too - it's incredible how much code I've written over the years which is based around what I'd call a 'CRUD switch' - i.e a cfswitch block with cases of 'view,add,edit,delete'. Almost without realising it , I'd been gradually moving towards the MVC pattern of coding, it just made sense.&lt;/p&gt;
&lt;p&gt;Enter CFWheels: I downloaded it, and started playing. Within about 2-3 hours, I'd mastered enough of the basics to port an existing (simple) site over. I even got to the point where I was using an internal Wheels function, and just *guessed* what the arguments should have been; low and behold, it worked. When you find a framework which actually 'thinks' like you do, it's a pretty great feeling.&lt;/p&gt;
&lt;p&gt;My particular highlights thus far:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Basic jawdropping when I realised the power of the internal ORM engine.&lt;/li&gt;
&lt;li&gt;'Routes' - very, very useful.&lt;/li&gt;
&lt;li&gt;The separate configuration setting options for development/design/production etc&lt;/li&gt;
&lt;li&gt;Caching is, well, just painless.&lt;/li&gt;
&lt;li&gt;HasMany() - running out of superlatives, but to be able to say, 'Departments hasMany People' and then in the People model, 'People BelongsTo Departments', and then refer directly to the relationship without a line of SQL? cool.&lt;/li&gt;
&lt;li&gt;The Form Helpers save a lot of code.&lt;/li&gt;
&lt;li&gt;The CFWheels Google group guys have been really helpful, and the documentation is excellent.&lt;/li&gt;
&lt;li&gt;The Global Helpers bit is very useful, previously, you'd have to cache all your Utility functions in a CFC and chuck it in the Application scope - now you just add it to one place to make it available to all your views.&lt;/li&gt;
&lt;li&gt;All the internal Wheels functions - when I'd hit a point where I thought 'there should be a function for this', there was. &lt;/li&gt;
&lt;li&gt;It's fast. Especially on Railo (disclaimer: it just 'feels' fast! And no, i've not tried it on CF9, and no, I've got no figures to back this one up)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Naturally, some low points too:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Note to self: don't casually, or accidently dump extremely large objects on a production server. It appears to eat up RAM very quickly.&lt;/li&gt;
&lt;li&gt;Associations - amazing concept, but out of everything, took me the longest time to get my head around; then I found 'shortcuts' and it all made sense.&lt;/li&gt;
&lt;li&gt;I did get initially confused when something which I expected to be a query turned out to be an object..(then I found you can override that behaviour!)&lt;/li&gt;
&lt;li&gt;The routes system could really do with a better 'catchall' system - it works, but I don't want to have to specify all my controllers routes: I want Wheels to introspect them and work it out :) (I'm aware there is talk going on re: this issue)&lt;/li&gt;
&lt;li&gt;I still want to see some more example applications of best practice / example apps generally.&lt;/li&gt;
&lt;li&gt;It took me a while to be comfortable with *NOT* scoping everything :)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All in all, I'm really enjoying this one, and it's made me reconsider my previously (slight naïve) position on frameworks.&lt;/p&gt;
&lt;p&gt;Well worth a couple of hours of your life to try.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/"&gt;http://cfwheels.org/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/9bh7POqbvLA" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.oxalto.co.uk/blog/post.cfm/discovering-cfwheels</guid>
         <pubDate>Fri, 04 Dec 2009 03:35:39 -0800</pubDate>
      </item>
      <item>
         <title>Introducing WordArt for ColdFusion</title>
         <link>http://www.codecurry.com/2009/12/introducing-wordart-for-coldfusion.html</link>
         <description>&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/5qJTcS7if3g" height="1" width="1"/&gt;</description>
         <author>noreply@blogger.com (Sameer Gupta)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-864954454752009521.post-7788051564124740494</guid>
         <pubDate>Tue, 01 Dec 2009 05:19:00 -0800</pubDate>
      </item>
      <item>
         <title>Apache Rewrites for Subfolder Install of CFWheels</title>
         <link>http://nagpals.com/blog/post.cfm/cfwheels-subfolder-rewrites</link>
         <description>&lt;p&gt;&lt;img style="float:right;" alt="CFWheels" width="93" height="121"/&gt;&lt;/p&gt;
&lt;p&gt;By default the CFWheels framework and application is installed in the webroot.&lt;/p&gt;
&lt;p&gt;But if you want to install it in a subfolder in the webroot, you need to change the rewrites slightly.&lt;/p&gt;
&lt;p&gt;I use the following and it works quite well. &lt;/p&gt;
&lt;p&gt;In the example below, I have a server called hello.&lt;span class="monospace"&gt;cfwheels.local&lt;/span&gt;, and it points to a folder under the webroot called &lt;span class="monospace"&gt;hello&lt;/span&gt;. &lt;/p&gt;
&lt;pre class="cf"&gt; ServerName hello.cfwheels.local RewriteEngine On RewriteOptions Inherit RewriteCond %{REQUEST_URI} ^.*/(flashservices|flex2gateway|railo-context|robots.txt)($|/.*$) [NC] RewriteRule ^(.*)$ http://127.0.0.1:8080/$1 [P,L] RewriteCond %{REQUEST_URI} ^.*/(files|images|javascripts|miscellaneous|stylesheets|plugins|sitemap.xml|rewrite.cfm)($|/.*$) [NC] RewriteRule ^(.*)$ http://127.0.0.1:8080/hello$1 [P,L] RewriteRule ^(.*)$ http://127.0.0.1:8080/hello/rewrite.cfm$1 [P,L] RewriteRule ^/(.*)$ http://127.0.0.1:8080/hello/rewrite.cfm/$1 [P,L] ProxyPassReverse / http://127.0.0.1:8080/hello/rewrite.cfm/ ProxyPreserveHost on &lt;/pre&gt;
&lt;p&gt;If you think there is a better way to accomplish this, please drop in a line.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/sU-P34BUC2I" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://nagpals.com/blog/post.cfm/cfwheels-subfolder-rewrites</guid>
         <pubDate>Mon, 30 Nov 2009 10:36:22 -0800</pubDate>
      </item>
      <item>
         <title>CfWheels now at version 1.0 – congratulations!</title>
         <link>http://www.webnibbles.co.uk/cfwheels-now-at-version-1-0-congratulations/</link>
         <description>CfWheels &amp;#8211; my framework of choice for coldfusion has finally been expunged from release candidate status!
CfWheels is a full-stack framework with some quite strong opinions on code organisation and layout. This is not a bad thing at all, if you do things the wheels way, it makes your life easier.
Built into the concept of the [...]</description>
         <guid isPermaLink="false">http://www.webnibbles.co.uk/2009/11/29/cfwheels-now-at-version-1-0-congratulations/</guid>
         <pubDate>Sun, 29 Nov 2009 14:37:59 -0800</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://cfwheels.org/">CfWheels</a> &#8211; my framework of choice for coldfusion has finally been expunged from release candidate status!</p><p>CfWheels is a full-stack framework with some quite strong opinions on code organisation and layout. This is not a bad thing at all, if you do things the wheels way, it makes your life easier.</p><p>Built into the concept of the framework are 3 core pieces of ideology that will make your life easier. When i say built in, i really mean baked in as the level of thought these interactions have had is quite surprising. These features are:</p><p><a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Object-relational_mapping">ORM</a> &#8211; Object Relational Management</p><p><a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/URL_rewriting">URL Rewriting</a></p><p><a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">MVC</a> &#8211; the Model View Controller ideology for code separation</p><p>Wheels is based on the Ruby on Rails framework, which is widely considered to be a great tool for <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Rapid_application_development">RAD</a>. Most people who seem to love ruby on rails do so for its speed and ease of use, and there are countless books on this subject. Coldfusion is already a fantastic RAD language, and CfWheels when combined with tools such as Scaffolding can give you a very swift boost into a project.</p><p>Scaffolding allows you to generate controller and views for a table that contain all of the basic functionality you will generally require.</p><p>A quick and dirty example:</p><p>Step 1. Install CfWheels on either Adobe&#8217;s own CF8/9, Railo or BlueDragon.</p><p>Step 2. install the scaffolding plugin by dropping the zip file into the cfwheels plugin folder</p><p>Step 3. Write a simple database table containing the data set you wish to use</p><p>Step 4. Click the scaffolding link at the top of the cfwheels debug information panel</p><p>Step 5. Enter the name of the table</p><p>Step 6. Navigate to the controller (/tablename) and you will see that all the fields are now generated into an input for you, and also basic add/edit/remove functionality exists.</p><p>wow, you just built a fully functional application! While clearly this might not suit every project, it can certainly be a good place to start, and a great introduction into cfwheels.</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/4hquUdq-KsE" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Up and rolling with Git on Snow Leopard</title>
         <link>http://www.clearcrystalmedia.com/pm/git-snow-leopard/</link>
         <description>&lt;p&gt;This morning, I set up a &lt;a rel="nofollow" target="_blank" href="http://github.com/clearcrystalmedia"&gt;GitHub account&lt;/a&gt; so that I could have some public repositories for my &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/plugins/"&gt;ColdFusion on Wheels plugins&lt;/a&gt;. Feel free to follow me and watch my repositories as I post them up. (Gotta learn how to do that first though!)&lt;/p&gt;
&lt;p&gt;Read on for a summary of how I installed my local copy of Git on Snow Leopard.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.clearcrystalmedia.com/pm/?p=425</guid>
         <pubDate>Sat, 28 Nov 2009 07:34:42 -0800</pubDate>
         <content:encoded><![CDATA[<p>This morning, I set up a <a rel="nofollow" target="_blank" href="http://github.com/clearcrystalmedia">GitHub account</a> so that I could have some public repositories for my <a rel="nofollow" target="_blank" href="http://cfwheels.org/plugins/">ColdFusion on Wheels plugins</a>. Feel free to follow me and watch my repositories as I post them up. (Gotta learn how to do that first though!)</p>
<p>Then came the process of installing Git on Snow Leopard so that my computer can talk to the repository. In my opinion, the Git website could do a better job with their Mac OS X installer (or at least the instructions).</p>
<p>Fortunately, Hivelogic has a great step-by-step on <a rel="nofollow" target="_blank" href="http://hivelogic.com/articles/compiling-git-on-snow-leopard/">installing Git on Snow Leopard</a>. If you&#8217;re running Snow Leopard, I highly recommend doing everything that they say in the post. If they ask you to touch your nose while spinning in circles, do it.</p>
<p>Now on to figuring out how to get my <a rel="nofollow" target="_blank" href="http://cfwheels.org/plugins/listing/19">reCAPTCHA on Wheels</a> plugin into my new repo.</p> <p class='technorati-tags'>Technorati Tags: <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/ccm'>ccm</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cfwheels'>cfwheels</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/chris+peters'>chris peters</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/clear+crystal+media'>clear crystal media</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/coldfusion+on+wheels'>coldfusion on wheels</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/Git'>Git</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/github'>github</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/install'>install</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/installation'>installation</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/polymorphism'>polymorphism</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/scm'>scm</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/version+control'>version control</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/web+development'>web development</a></p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/5N8vFlQODOA" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Search CFWheels Documentation</title>
         <link>http://nagpals.com/blog/post.cfm/search-cfwheels-documentation</link>
         <description>&lt;p&gt;&lt;img style="float:right;" alt="" width="93" height="121"/&gt;&lt;/p&gt;
&lt;p&gt;CFWheels has excellent documentation. Well organized, sufficiently detailed, well presented. &lt;/p&gt;
&lt;p&gt;Something that is missing at the moment, and is on the list of things to-do for the CFWheels team, is to add a search feature to the docs.&lt;/p&gt;
&lt;p&gt;Till the time that feature is implemented, I created a Google custom search for CFWheels docs.&lt;/p&gt;
&lt;p&gt;I just find that after one has understood the basics and has started building an application, there is a need to be able to quickly search for information rather than go through listing of topics to figure out where can one find a piece of information.&lt;/p&gt;
&lt;p&gt;To that end, a search interface proves very useful.&lt;/p&gt;
&lt;p&gt;So, if you want to search CFWheels documentation till the time a formal search is put on the site, you are more than welcome to use the custom search that I use.&lt;/p&gt;
&lt;p&gt;You can access the search at: &lt;a rel="nofollow" title="CFWheels Documentation Search"&gt;http://nagpals.com/utils/cfwheels/search/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Or use the search box below to search:&lt;/p&gt;
&lt;div id="cse" style="width:100%;"&gt;Loading&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/XkX5RePl16k" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://nagpals.com/blog/post.cfm/search-cfwheels-documentation</guid>
         <pubDate>Fri, 27 Nov 2009 13:15:41 -0800</pubDate>
      </item>
      <item>
         <title>CFWheels - Rediscovering beauty in CF Code</title>
         <link>http://nagpals.com/blog/post.cfm/cfwheels-rediscovering-beauty-in-cf-code</link>
         <description>&lt;p&gt;&lt;img style="float:right;" alt="" width="93" height="121"/&gt;&lt;/p&gt;
&lt;p&gt;I haven't been blogging much of late. Lots of traveling and work
kept me away.&lt;/p&gt;
&lt;p&gt;During this time, however, I have somehow managed to find time to
play with CFWheels. And I must say it has been a pleasure working
with it. &lt;/p&gt;
&lt;p&gt;I've dabbled with Ruby on Rails and Grails in the past and have
always lamented about the fact that the frameworks in CF do not
possess the same beauty and elegance.&lt;/p&gt;
&lt;p&gt;Well, CFWheels changes all that. &lt;/p&gt;
&lt;p&gt;If you ask me, I'd say that all
CF developers should at least try it out to once to see all that it
has to offer.&lt;/p&gt;
&lt;p&gt;Personally, I like they way the MVC architecture is implemented in
CFWheels -- pretty much like Rails/Grails. Plus domain modeling and
URL rewriting using routes -- leading to very nice, readable URL. And
not to mention time-saver features like view helpers that let you
build nice views and forms and add validation to them. And also the
plugins... And also the provision for different environment like
design/development/test/production.&lt;/p&gt;
&lt;p&gt;I've tried it on Railo and it is blazing fast. I'm sure it would
be as quick on CF9.&lt;/p&gt;
&lt;p&gt;I could go on and on. But it is simpler for you to simply head
over &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/"&gt;CFWheels&lt;/a&gt; to discover the
magic.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/eoj6VqH0HeM" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://nagpals.com/blog/post.cfm/cfwheels-rediscovering-beauty-in-cf-code</guid>
         <pubDate>Fri, 27 Nov 2009 12:57:30 -0800</pubDate>
      </item>
      <item>
         <title>ColdFusion on Wheels Framework Version 1.0 Released</title>
         <link>http://seattlecfug.com/blog/coldfusion-on-wheels-release-update</link>
         <description>Brian Ward summarizes his experience with Wheels so far. He also does a good job of explaining some differentiators of our framework: simplicity, intuitiveness, and something that you can grow into.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/VpHHfU1a4gc" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/442a66bcfad79699b252c03520aac47a#cfwheels</guid>
         <pubDate>Wed, 25 Nov 2009 12:45:40 -0800</pubDate>
      </item>
      <item>
         <title>ColdFusion on Wheels: Tour de Framework</title>
         <link>http://cfwheels.org/events/listing/5</link>
         <description>&lt;h2&gt;Date/Time&lt;/h2&gt; &lt;p&gt;Wednesday, November 25, 2009 1:00 pm WET&lt;/p&gt; &lt;h2&gt;Location&lt;/h2&gt; &lt;p&gt;Devon, United Kingdom&lt;/p&gt; &lt;h2&gt;Presenter&lt;/h2&gt; &lt;p&gt;Chris Peters&lt;/p&gt; &lt;h2&gt;Abstract&lt;/h2&gt; &lt;p&gt;This month we have Chris Peters presenting on ColdFusion on Wheels.&lt;/p&gt;
&lt;p&gt;ColdFusion on Wheels provides fast application development, a great organization system for your code, and is just plain fun to use.&lt;/p&gt;
&lt;p&gt;It's an open source CFML framework created in the spirit of Ruby on Rails.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/events/listing/5</guid>
         <pubDate>Wed, 25 Nov 2009 00:11:26 -0800</pubDate>
      </item>
      <item>
         <title>CFWheels added to CFML Framework Skeletons – Eclipse Plugin</title>
         <link>http://www.robertburns.me/blog/archives/145</link>
         <description>Robert Burns very promptly added Wheels to his CFML Framework Skeletons Eclipse plugin. Now you can tell your Eclipse-based IDE of choice that you want for your new CFML project to be a Wheels project.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/MGH9fvuTdyM" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/3b2858ccf267ee5a41e1d877259289c7#cfwheels</guid>
         <pubDate>Tue, 24 Nov 2009 17:24:53 -0800</pubDate>
      </item>
      <item>
         <title>Installing CFWheels 1.0</title>
         <link>http://www.akbarsait.com/blog/index.cfm/2009/11/24/Installing-CFWheels-10</link>
         <description>ColdFusion on Wheels 1.0 a production ready version hits the web today. To be frank I haven't tried it before and just want to understand its specific features over the other frameworks available for ColdFusion. So I have downloaded and installed it ... [More]&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/PaeNB0wpCFQ" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.akbarsait.com/blog/index.cfm/2009/11/24/Installing-CFWheels-10</guid>
         <pubDate>Tue, 24 Nov 2009 16:32:00 -0800</pubDate>
      </item>
      <item>
         <title>Wheels 1.0: We're Production Ready</title>
         <link>http://feeds.cfwheels.org/~r/cfwheels/blog/~3/E-OE0sBX0Mc/Wheels-10-Were-Production-Ready</link>
         <description>&lt;p&gt;We've gone 1.0! Go &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/download"&gt;download ColdFusion on Wheels 1.0&lt;/a&gt; and give it a try. If you're upgrading from a previous version, please review the &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/docs/chapter/upgrading-wheels"&gt;instructions for Upgrading to 1.0&lt;/a&gt; (even if you're upgrading from the release candidate).&lt;/p&gt;
&lt;p&gt;It's an honor for me to announce this release and to thank our passionate community. The core team and community have put a ton of hard work into this project since I started contributing in November of 2007. Per Djurner has truly done some hero work. Everyone owes him a beer.&lt;/p&gt;
&lt;p&gt;Even though &lt;a rel="nofollow" target="_blank" href="http://corfield.org/blog/index.cfm/do/blog.entry/entry/On_Hal_Helms_Ruby_on_Rails_and_the_Death_of_ColdFusion_and_Fusebox"&gt;Sean Corfield claims that Wheels doesn't have much traction&lt;/a&gt;, we have been overwhelmed by &lt;a rel="nofollow" target="_blank" href="http://twitter.com/synxer/status/5956374387"&gt;the&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://groups.google.com/group/cfwheels/browse_thread/thread/f3f9a91ed0415897"&gt;positive&lt;/a&gt; &lt;a rel="nofollow" target="_blank" href="http://twitter.com/rhwalt/statuses/5990048515"&gt;feedback&lt;/a&gt; of the framework. I expect more to come. It's been picking up.&lt;/p&gt;
&lt;p&gt;I'm going to risk forgetting to thank someone who has helped. I'm sorry if I missed you. Thanks so much to Rob Cameron (The Godfather), Per Djurner, Tony Petruzzi, Peter Amiri, Raul Riera, James Gibson, Mike Henke, Clarke Bishop, Russ Johnson, Grant Copley, Isaac Dealey, Tom Hoen, Andy Bellenie, Milo Maneo, Louis Plante, Joshua Clingenpeel, William Fisk, and Mike Haggerty for contributing to the project in meaningful ways. (Hey, I've always wanted to release a CD with a "Thank You" section, so this will have to do. :))&lt;/p&gt;
&lt;p&gt;Here's to a framework with a very bright future and a major contribution to the CFML community at large.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/blog/~4/E-OE0sBX0Mc" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/blog/index.cfm/2009/11/24/Wheels-10-Were-Production-Ready</guid>
         <pubDate>Tue, 24 Nov 2009 06:40:00 -0800</pubDate>
         <category>Releases</category>
      </item>
      <item>
         <title>Go get it…. CFWheels hits 1.0!!!!</title>
         <link>http://rip747.wordpress.com/2009/11/24/go-get-it-cfwheels-hits-1-0/</link>
         <description>After many long months and some great dedication from all those involved, today CFWheels hit the 1.0 milestone. &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&amp;blog=295460&amp;post=747&amp;subd=rip747&amp;ref=&amp;feed=1"/&gt;</description>
         <guid isPermaLink="false">http://rip747.wordpress.com/?p=747</guid>
         <pubDate>Tue, 24 Nov 2009 04:48:45 -0800</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://cfwheels.org/"></a>After many long months and some great dedication from all those involved, today <a rel="nofollow" target="_blank" href="http://cfwheels.org/">CFWheels</a> hit the 1.0 milestone.</p>
<br /> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/rip747.wordpress.com/747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rip747.wordpress.com/747/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/rip747.wordpress.com/747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rip747.wordpress.com/747/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/rip747.wordpress.com/747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rip747.wordpress.com/747/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/rip747.wordpress.com/747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rip747.wordpress.com/747/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/rip747.wordpress.com/747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rip747.wordpress.com/747/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&blog=295460&post=747&subd=rip747&ref=&feed=1"/><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/LWvatGbcXYo" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/f09f0a0d45c19276540a9899d0e6b667?s=96&amp;amp;amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image" media:title="rip747" />
      </item>
      <item>
         <title>On Hal Helms, Ruby on Rails and the Death of ColdFusion and Fusebox</title>
         <link>http://corfield.org/blog/index.cfm/do/blog.entry/entry/On_Hal_Helms_Ruby_on_Rails_and_the_Death_of_ColdFusion_and_Fusebox</link>
         <description>Sean Corfield uses Hal Helms&amp;#039;s departure to Rails as a means for comparing the CFML landscape to other development environments. A good discussion on CFML frameworks and our role in open source.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/IzZeEyw1QAI" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/3dca605b5655d0d38516b3e030baa6b3#cfwheels</guid>
         <pubDate>Mon, 23 Nov 2009 11:33:27 -0800</pubDate>
      </item>
      <item>
         <title>Hello World</title>
         <link>http://cfwheels.org/screencasts/view/6</link>
         <description>Peter Amiri walks you through setting up a "Hello World" application using the ColdFusion on Wheels framework. Learn how to set up simple controller logic, display view files, link between views, and change the default home route.</description>
         <guid isPermaLink="false">http://cfwheels.org/screencasts/view/6</guid>
         <pubDate>Mon, 23 Nov 2009 06:11:35 -0800</pubDate>
         <media:content fileSize="40845719" url="http://cfwheels.org/files/screencasts/hello-world.mov" type="video/mp4" />
         <enclosure length="40845719" url="http://cfwheels.org/files/screencasts/hello-world.mov" type="video/mp4" />
      </item>
      <item>
         <title>Using extra CFC attributes for documentation</title>
         <link>http://www.clearcrystalmedia.com/pm/extra-cfc-attributes-documentation/</link>
         <description>&lt;p&gt;For the &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/docs"&gt;ColdFusion on Wheels API documentation&lt;/a&gt;, we chose to do something a little unconventional (but pretty cool). Using some extra CFC attributes and CFML 's &lt;code&gt;&lt;a rel="nofollow" target="_blank" href="http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7dd9.html"&gt;GetMetaData()&lt;/a&gt;&lt;/code&gt; function, we wrote a pretty cool documentation parser for ColdFusion on Wheels.&lt;/p&gt;
&lt;p&gt;Read on for an example of what we did.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.clearcrystalmedia.com/pm/?p=412</guid>
         <pubDate>Thu, 12 Nov 2009 13:57:02 -0800</pubDate>
         <content:encoded><![CDATA[<p>For the <a rel="nofollow" target="_blank" href="http://cfwheels.org/docs">ColdFusion on Wheels API documentation</a>, we chose to do something a little unconventional (but pretty cool). Instead of trying to write or use a comment parser for our documentation, we just added additional attributes to our CFC s&#8217; <code>&lt;cffunction&gt;</code> tags.</p>
<p>Look at this example for the <a rel="nofollow" target="_blank" href="http://cfwheels.org/docs/function/autolink"><code>autoLink()</code></a> view helper:</p> <div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;"><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cffunction</span> <span style="color:#0000FF;">name</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"autoLink"</span> returntype<span style="color:#0000FF;">=</span><span style="color:#009900;">"string"</span> <span style="color:#0000FF;">access</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"public"</span> output<span style="color:#0000FF;">=</span><span style="color:#009900;">"false"</span> <span style="color:#0000FF;">hint</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"Turns all URLs and e-mail addresses into clickable links."</span></span>
<span style="color:#333333;"> examples<span style="color:#0000FF;">=</span></span>
<span style="color:#333333;"> <span style="color:#009900;">'</span>
<span style="color:#333333;"> ##autoLink("Download Wheels from http://cfwheels.org/download")##</span>
<span style="color:#333333;"> -&gt; Download Wheels from &lt;a href="http://cfwheels.org/download"&gt;http://cfwheels.org/download&lt;/a&gt;</span>
&nbsp;
<span style="color:#333333;"> ##autoLink("Email us at info@cfwheels.org")##</span>
<span style="color:#333333;"> -&gt; Email us at &lt;a href="mailto:info@cfwheels.org"&gt;info@cfwheels.org&lt;/a&gt;</span>
<span style="color:#333333;"> '</span></span>
<span style="color:#333333;"> categories<span style="color:#0000FF;">=</span><span style="color:#009900;">"view-helper,text"</span> functions<span style="color:#0000FF;">=</span><span style="color:#009900;">"excerpt,highlight,simpleFormat,titleize,truncate"</span></span>
<span style="color:#333333;"><span style="color:#0000FF;">&gt;</span></span> <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfargument</span> <span style="color:#0000FF;">name</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"text"</span> <span style="color:#0000FF;">type</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"string"</span> <span style="color:#0000FF;">required</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"true"</span> <span style="color:#0000FF;">hint</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"The text to create links in."</span><span style="color:#0000FF;">&gt;</span></span> <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfargument</span> <span style="color:#0000FF;">name</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"link"</span> <span style="color:#0000FF;">type</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"string"</span> <span style="color:#0000FF;">required</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"false"</span> <span style="color:#0000FF;">default</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"all"</span> <span style="color:#0000FF;">hint</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"Whether to link URLs, email addresses or both. Possible values are: `all` (default), `URLs` and `emailAddresses`."</span><span style="color:#0000FF;">&gt;</span></span>
&nbsp; <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfscript</span><span style="color:#0000FF;">&gt;</span></span> var loc = {}; loc.urlRegex = "(?ix)([^(url=)|(href=)'""])(((https?)://([^:]+&#92;:[^@]*@)?)([&#92;d&#92;w&#92;-]+&#92;.)?[&#92;w&#92;d&#92;-&#92;.]+&#92;.(com|net|org|info|biz|tv|co&#92;.uk|de|ro|it)(( / [&#92;w&#92;d&#92;.&#92;-@%&#92;&#92;&#92;/:]* )+)?(&#92;?[&#92;w&#92;d&#92;?%,&#92;.&#92;/&#92;##!@:=&#92;+~_&#92;-&amp;amp;]*(?<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span>!<span style="color:#0000FF;">&#91;</span>&#92;.<span style="color:#0000FF;">&#93;</span><span style="color:#0000FF;">&#41;</span><span style="color:#0000FF;">&#41;</span>?<span style="color:#0000FF;">&#41;</span><span style="color:#009900;">";</span>
<span style="color:#333333;"> loc.mailRegex = "</span><span style="color:#0000FF;">&#40;</span><span style="color:#0000FF;">&#40;</span><span style="color:#0000FF;">&#91;</span>^@&#92;s<span style="color:#0000FF;">&#93;</span>+<span style="color:#0000FF;">&#41;</span>@<span style="color:#0000FF;">&#40;</span><span style="color:#0000FF;">&#40;</span>?:<span style="color:#0000FF;">&#91;</span>-a-z0-<span style="color:#FF0000;">9</span><span style="color:#0000FF;">&#93;</span>+&#92;.<span style="color:#0000FF;">&#41;</span>+<span style="color:#0000FF;">&#91;</span>a-z<span style="color:#0000FF;">&#93;</span><span style="color:#0000FF;">&#123;</span><span style="color:#FF0000;">2</span>,<span style="color:#0000FF;">&#125;</span><span style="color:#0000FF;">&#41;</span><span style="color:#0000FF;">&#41;</span><span style="color:#009900;">";</span>
<span style="color:#333333;"> loc.returnValue = arguments.text;</span>
<span style="color:#333333;"> if (arguments.link != "</span>emailAddresses<span style="color:#009900;">")</span>
<span style="color:#333333;"> loc.returnValue = loc.returnValue.ReplaceAll(loc.urlRegex, "</span>$<span style="color:#FF0000;">1</span><span style="color:#0000FF;">&lt;</span><span style="color:#000000;font-weight:bold;">a</span> <span style="color:#0000FF;">href</span><span style="color:#0000FF;">=</span><span style="color:#009900;">""</span>$<span style="color:#FF0000;">2</span><span style="color:#009900;">""</span><span style="color:#0000FF;">&gt;</span></span>$2<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#000000;font-weight:bold;">a</span><span style="color:#0000FF;">&gt;</span></span>"); if (arguments.link != "URLs") loc.returnValue = REReplaceNoCase(loc.returnValue, loc.mailRegex, "<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#000000;font-weight:bold;">a</span> <span style="color:#0000FF;">href</span><span style="color:#0000FF;">=</span><span style="color:#009900;">""</span>mailto:&#92;<span style="color:#FF0000;">1</span><span style="color:#009900;">""</span><span style="color:#0000FF;">&gt;</span></span>&#92;1<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#000000;font-weight:bold;">a</span><span style="color:#0000FF;">&gt;</span></span>", "all"); <span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#990000;font-weight:bold;">cfscript</span><span style="color:#0000FF;">&gt;</span></span> <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfreturn</span> loc.returnValue<span style="color:#0000FF;">&gt;</span></span>
&nbsp;
<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#990000;font-weight:bold;">cffunction</span><span style="color:#0000FF;">&gt;</span></span></pre></div></div> <p>It makes the function declarations a little beefier, but the documentation is right there with the code. As you can see, we added <code>examples</code>, <code>categories</code>, and <code>functions</code> attributes to the <code>&lt;cffunction&gt;</code> declaration.</p>
<p>Writing a parser took a little over a week, but it was fairly simple with CFML &#8217;s <code><a rel="nofollow" target="_blank" href="http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7dd9.html">GetMetaData()</a></code> function and some extra business rules.</p>
<p>Here&#8217;s a link to the <a rel="nofollow" target="_blank" href="http://cfwheels.org/docs/function/autolink"><code>autoLink()</code></a> documentation on CFWheels.org so you can see what the output looks like. Everything on that page is generated based on the code above.</p> <p class='technorati-tags'>Technorati Tags: <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/adobe'>adobe</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/ccm'>ccm</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cfml'>cfml</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cfwheels'>cfwheels</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/chris+peters'>chris peters</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/clear+crystal+media'>clear crystal media</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/ColdFusion'>ColdFusion</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/coldfusion+on+wheels'>coldfusion on wheels</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/polymorphism'>polymorphism</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/railo'>railo</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/web+development'>web development</a></p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/8309nbKrM2I" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>CFWheels</title>
         <link>http://cfwheels.org/events/listing/6</link>
         <description>&lt;h2&gt;Date/Time&lt;/h2&gt; &lt;p&gt;Tuesday, November 10, 2009 6:30 pm ET&lt;/p&gt; &lt;h2&gt;Location&lt;/h2&gt; &lt;p&gt;Rockville, Maryland&lt;/p&gt; &lt;h2&gt;Presenter&lt;/h2&gt; &lt;p&gt;Mike Henke&lt;/p&gt; &lt;h2&gt;Abstract&lt;/h2&gt; &lt;p&gt;Inspired by Ruby on Rails, ColdFusion on Wheels provides fast application development, a great organization system for your code, and is just plain fun to use. We will start by covering key principles of the framework and end with a working application.&lt;/p&gt; &lt;h2&gt;About the Presenter&lt;/h2&gt; &lt;p&gt;Hi, I am Mike Henke (pronounced hang-kee). I work in web page development and databases. I have worked with ColdFusion since 1999. My main focus currently is learning Flex 2, Object Oriented Programming, Design patterns, and usability. I am also really interested in learning more about automating development and testing tasks.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://cfwheels.org/events/listing/6</guid>
         <pubDate>Tue, 10 Nov 2009 00:11:10 -0800</pubDate>
      </item>
      <item>
         <title>Episode 5: Object Validation</title>
         <link>http://cfwheels.org/screencasts/view/5</link>
         <description>Chris Peters teaches you about more validation options and how you can add them to the registration form quickly and easily.</description>
         <guid isPermaLink="false">http://cfwheels.org/screencasts/view/5</guid>
         <pubDate>Wed, 04 Nov 2009 03:11:50 -0800</pubDate>
         <media:content fileSize="18027667" url="http://cfwheels.org/files/screencasts/social-network-5.mp4" type="video/mp4" />
         <enclosure length="18027667" url="http://cfwheels.org/files/screencasts/social-network-5.mp4" type="video/mp4" />
      </item>
      <item>
         <title>CFWheels and Git: Ignoring unpacked plugin directories</title>
         <link>http://rip747.wordpress.com/2009/11/02/cfwheels-and-git-ignoring-unpacked-plugin-directories/</link>
         <description>Just a quick little git and Wheels tip. Most of the time, you might only want to track your plugins .zip file in your repo and ignore the plugin&amp;#8217;s unpacked directory since it&amp;#8217;s pretty much redundant to track both. In order to do this, create a .gitignore file where your .git directory lives. In it [...]&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&amp;blog=295460&amp;post=729&amp;subd=rip747&amp;ref=&amp;feed=1"/&gt;</description>
         <guid isPermaLink="false">http://rip747.wordpress.com/?p=729</guid>
         <pubDate>Mon, 02 Nov 2009 13:48:06 -0800</pubDate>
         <content:encoded><![CDATA[<p>Just a quick little <a rel="nofollow" target="_blank" href="http://www.gitscm.org/">git</a> and <a rel="nofollow" target="_blank" href="http://cfwheels.org/">Wheels</a> tip. Most of the time, you might only want to track your plugins .zip file in your repo and ignore the plugin&#8217;s unpacked directory since it&#8217;s pretty much redundant to track both. In order to do this, create a .gitignore file where your .git directory lives. In it add the following:</p>
<p>plugins/**/*</p>
<p>What that does is essentially tells git to ignore any subdirectories off the main plugin directory.</p>
<br /> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/rip747.wordpress.com/729/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rip747.wordpress.com/729/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/rip747.wordpress.com/729/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rip747.wordpress.com/729/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/rip747.wordpress.com/729/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rip747.wordpress.com/729/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/rip747.wordpress.com/729/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rip747.wordpress.com/729/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/rip747.wordpress.com/729/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rip747.wordpress.com/729/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&blog=295460&post=729&subd=rip747&ref=&feed=1"/><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/z9qLreeg1lA" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/f09f0a0d45c19276540a9899d0e6b667?s=96&amp;amp;amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image" media:title="rip747" />
      </item>
      <item>
         <title>Episode 4: Redirects and the Flash</title>
         <link>http://cfwheels.org/screencasts/view/4</link>
         <description>Chris Peters finishes the "success" portion of the registration functionality by adding a success message to the Flash and redirecting the user to their home screen.</description>
         <guid isPermaLink="false">http://cfwheels.org/screencasts/view/4</guid>
         <pubDate>Mon, 26 Oct 2009 07:10:30 -0700</pubDate>
         <media:content fileSize="16174535" url="http://cfwheels.org/files/screencasts/social-network-4.mp4" type="video/mp4" />
         <enclosure length="16174535" url="http://cfwheels.org/files/screencasts/social-network-4.mp4" type="video/mp4" />
      </item>
      <item>
         <title>Wheels spotted in the wild…</title>
         <link>http://rip747.wordpress.com/2009/10/22/cwheels-spotted-in-the-wild/</link>
         <description>UPDATE: CFML syntax highlighting has been add to Pygments as of version 1.3. You can see the closed ticket information here.
If there was one thing that always bugged me about github is the lack of support of CFML syntax highlighting. It seems that CFML never gets any love, but that is about to change! The [...]&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&amp;blog=295460&amp;post=727&amp;subd=rip747&amp;ref=&amp;feed=1"/&gt;</description>
         <guid isPermaLink="false">http://rip747.wordpress.com/?p=727</guid>
         <pubDate>Thu, 22 Oct 2009 13:32:54 -0700</pubDate>
         <content:encoded><![CDATA[<p><strong>UPDATE:</strong> CFML syntax highlighting has been add to Pygments as of version 1.3. You can see the closed ticket information <a rel="nofollow" target="_blank" href="http://dev.pocoo.org/projects/pygments/ticket/424">here</a>.</p>
<p>If there was one thing that always bugged me about <a rel="nofollow" target="_blank" href="http://dev.pocoo.org/projects/pygments/ticket/424">github</a> is the lack of support of CFML syntax highlighting. It seems that CFML never gets any love, but that is about to change! The <a rel="nofollow" target="_blank" href="http://pygments.org/">Pygments</a> project is an open source generic syntax highlighter written in <a rel="nofollow" target="_blank" href="http://www.python.org/">python</a> that has support for a ton of different languages. Now it seems the Pygments is working on CFML syntax highlighting <a rel="nofollow" target="_blank" href="http://dev.pocoo.org/projects/pygments/query?status=assigned&amp;status=new&amp;status=accepted&amp;status=reopened&amp;group=status&amp;milestone=1.2">for their next release</a>!</p>
<p>What does this all have to do with <a rel="nofollow" target="_blank" href="http://cfwheels.org/">Wheels</a> you might ask? Well it seems that the CFML code they are <a rel="nofollow" target="_blank" href="http://dev.pocoo.org/projects/pygments/ticket/424">using as a test bed</a> for the highlighting is none other then the Wheels repo!</p>
<br /> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/rip747.wordpress.com/727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rip747.wordpress.com/727/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/rip747.wordpress.com/727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rip747.wordpress.com/727/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/rip747.wordpress.com/727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rip747.wordpress.com/727/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/rip747.wordpress.com/727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rip747.wordpress.com/727/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/rip747.wordpress.com/727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rip747.wordpress.com/727/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&blog=295460&post=727&subd=rip747&ref=&feed=1"/><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/_FD3KxWmCb8" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/f09f0a0d45c19276540a9899d0e6b667?s=96&amp;amp;amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image" media:title="rip747" />
         <category>CFWheels</category>
      </item>
      <item>
         <title>Script-based controllers and models, tag-based views</title>
         <link>http://www.clearcrystalmedia.com/pm/script-controllers-models-tag-views/</link>
         <description>&lt;p&gt;I'm looking forward to playing around with &lt;a rel="nofollow" target="_blank" href="http://www.adobe.com/products/coldfusion/"&gt;ColdFusion 9&lt;/a&gt; when I get some more time here in a month or so. One of the areas that interests me in particular is the ability to write full CFC s in CFScript syntax.&lt;/p&gt;
&lt;p&gt;Read on for what I feel is the perfect blend of CFML features used in the different layers of the &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org/"&gt;ColdFusion on Wheels&lt;/a&gt; framework:&lt;/p&gt;
&lt;ul&gt; &lt;li&gt;Controllers in script syntax&lt;/li&gt; &lt;li&gt;Models in script syntax&lt;/li&gt; &lt;li&gt;Views in tag syntax&lt;/li&gt;
&lt;/ul&gt;</description>
         <guid isPermaLink="false">http://www.clearcrystalmedia.com/pm/?p=404</guid>
         <pubDate>Thu, 22 Oct 2009 12:41:48 -0700</pubDate>
         <content:encoded><![CDATA[<p>I&#8217;m looking forward to playing around with <a rel="nofollow" target="_blank" href="http://www.adobe.com/products/coldfusion/">ColdFusion 9</a> when I get some more time here in a month or so. One of the areas that interests me in particular is the ability to write full CFC s in CFScript syntax.</p>
<p>Think about this scenario in <a rel="nofollow" target="_blank" href="http://cfwheels.org/">ColdFusion on Wheels</a>:</p>
<ul>
<li>Controllers in script syntax</li>
<li>Models in script syntax</li>
<li>Views in tag syntax</li>
</ul>
<p>I like the idea of this, though I&#8217;ll admit that I haven&#8217;t tried it yet. The more data- and logic-heavy parts of the app can be script-driven, while the tag-based syntax can be used with HTML .</p>
<p>Imagine this scenario for a Wheels model class:</p> <div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;">component extends="Model" {
&nbsp; /** @hint Initializes associations and validations */ public function init() { // Associations hasMany("chirps"); // Validations validatesPresenceOf("firstName,lastName,email,gender,urlId"); validatesUniquenessOf("email,urlId"); validatesLengthOf(properties="firstName,lastName", maximum=50); }
&nbsp;
}</pre></div></div> <p>And this for a Wheels controller:</p> <div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;">component extends="Controller" {
&nbsp; /** @hint Shows form for registering for social network. */ public function register() { user = model("user").new(); }
&nbsp; /** @hint Saves registration submission. */ public function create() { user = model("user").new(params.user); user.save();
&nbsp; if(user.hasErrors()) { renderPage(action="register"); } else { flashInsert(success="Thank you for registering for Social Network."); redirectTo(controller="home"); } }
&nbsp;
}</pre></div></div> <p>And then any view logic can be mixed in via tags with all the other HTML tags (right where it belongs).</p> <div class="wp_syntax"><div class="code"><pre class="cfm" style="font-family:monospace;"><span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfsetting</span> enablecfoutputonly<span style="color:#0000FF;">=</span><span style="color:#009900;">"true"</span><span style="color:#0000FF;">&gt;</span></span>
&nbsp;
<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfparam</span> <span style="color:#0000FF;">name</span><span style="color:#0000FF;">=</span><span style="color:#009900;">"user"</span><span style="color:#0000FF;">&gt;</span></span>
&nbsp;
<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfoutput</span><span style="color:#0000FF;">&gt;</span></span>
&nbsp;
<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#000000;font-weight:bold;">h1</span><span style="color:#0000FF;">&gt;</span></span>Register for Social Network<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#000000;font-weight:bold;">h1</span><span style="color:#0000FF;">&gt;</span></span>
&nbsp;
#startFormTag(action="create")#
&nbsp;
#textField(label="First Name", objectName="user", property="firstName")#
#textField(label="Last Name", objectName="user", property="lastName")#
#textField(label="Email", objectName="user", property="email")#
&nbsp;
<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#000000;font-weight:bold;">fieldset</span><span style="color:#0000FF;">&gt;</span></span> <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#000000;font-weight:bold;">legend</span><span style="color:#0000FF;">&gt;</span></span>Gender<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#000000;font-weight:bold;">legend</span><span style="color:#0000FF;">&gt;</span></span> #radioButton(label="Male", objectName="user", property="gender", tagValue="M")# #radioButton(label="Female", objectName="user", property="gender", tagValue="F")#
<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#000000;font-weight:bold;">fieldset</span><span style="color:#0000FF;">&gt;</span></span>
&nbsp;
<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#000000;font-weight:bold;">fieldset</span><span style="color:#0000FF;">&gt;</span></span> <span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#000000;font-weight:bold;">legend</span><span style="color:#0000FF;">&gt;</span></span>Profile Address<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#000000;font-weight:bold;">legend</span><span style="color:#0000FF;">&gt;</span></span> #textField(label="http://<span style="color:#0000FF;">#cgi.script_name#</span>/profile/", objectName="user", property="urlId")#
<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#000000;font-weight:bold;">fieldset</span><span style="color:#0000FF;">&gt;</span></span>
&nbsp;
<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#000000;font-weight:bold;">div</span><span style="color:#0000FF;">&gt;</span></span> #submitTag(value="Register Now")#
<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#000000;font-weight:bold;">div</span><span style="color:#0000FF;">&gt;</span></span>
&nbsp;
<span style="color:#0000FF;">#endFormTag<span style="color:#0000FF;">&#40;</span><span style="color:#0000FF;">&#41;</span>#</span>
&nbsp;
<span style="color:#333333;"><span style="color:#0000FF;">&lt;/</span><span style="color:#990000;font-weight:bold;">cfoutput</span><span style="color:#0000FF;">&gt;</span></span>
&nbsp;
<span style="color:#333333;"><span style="color:#0000FF;">&lt;</span><span style="color:#990000;font-weight:bold;">cfsetting</span> enablecfoutputonly<span style="color:#0000FF;">=</span><span style="color:#009900;">"false"</span><span style="color:#0000FF;">&gt;</span></span></pre></div></div> <p>This makes me excited for Railo adoption of script-based CFC s and for time to warp 5 years into the future when script-based CFC s are more widely used in general.</p> <p class='technorati-tags'>Technorati Tags: <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/ccm'>ccm</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cf'>cf</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cf9'>cf9</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cfc'>cfc</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cfml'>cfml</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cfscript'>cfscript</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cfwheels'>cfwheels</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/chris+peters'>chris peters</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/clear+crystal+media'>clear crystal media</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/ColdFusion'>ColdFusion</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/coldfusion+9'>coldfusion 9</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/coldfusion+on+wheels'>coldfusion on wheels</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/mvc'>mvc</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/polymorphism'>polymorphism</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/railo'>railo</a></p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/ctzfYvxk1Q4" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Setting Up a Riaforge Project with Git and GitHub (Part 3)</title>
         <link>http://henke.ws/post.cfm/setting-up-a-riaforge-project-with-git-and-github-part-3</link>
         <description>Mike Henke uses the Wheels repository as an example for forking code over to Git.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/3iewOChmBrU" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/5ff38575a24f93796f39eddd78f3d876#cfwheels</guid>
         <pubDate>Wed, 21 Oct 2009 08:21:02 -0700</pubDate>
      </item>
      <item>
         <title>Shouldn’t be long now…</title>
         <link>http://rip747.wordpress.com/2009/10/20/shouldnt-be-long-now/</link>
         <description>http://code.google.com/p/cfwheels/source/detail?r=3243 &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&amp;blog=295460&amp;post=724&amp;subd=rip747&amp;ref=&amp;feed=1"/&gt;</description>
         <guid isPermaLink="false">http://rip747.wordpress.com/?p=724</guid>
         <pubDate>Tue, 20 Oct 2009 13:48:34 -0700</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://code.google.com/p/cfwheels/source/detail?r=3243">http://code.google.com/p/cfwheels/source/detail?r=3243</a></p>
<br /> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/rip747.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rip747.wordpress.com/724/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/rip747.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rip747.wordpress.com/724/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/rip747.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rip747.wordpress.com/724/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/rip747.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rip747.wordpress.com/724/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/rip747.wordpress.com/724/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rip747.wordpress.com/724/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&blog=295460&post=724&subd=rip747&ref=&feed=1"/><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/NJwkwVO_Arw" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/f09f0a0d45c19276540a9899d0e6b667?s=96&amp;amp;amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image" media:title="rip747" />
         <category>CFWheels</category>
      </item>
      <item>
         <title>Episode 3: Object Validation and Showing Errors</title>
         <link>http://cfwheels.org/screencasts/view/3</link>
         <description>Chris Peters adds data validation to the user registration form. He then demonstrates how this ties in nicely with the form helpers to show friendly errors caught by the validation.</description>
         <guid isPermaLink="false">http://cfwheels.org/screencasts/view/3</guid>
         <pubDate>Mon, 19 Oct 2009 07:10:33 -0700</pubDate>
         <media:content fileSize="25009143" url="http://cfwheels.org/files/screencasts/social-network-3.mp4" type="video/mp4" />
         <enclosure length="25009143" url="http://cfwheels.org/files/screencasts/social-network-3.mp4" type="video/mp4" />
      </item>
      <item>
         <title>Episode 2: Form Helpers</title>
         <link>http://cfwheels.org/screencasts/view/2</link>
         <description>Chris Peters demonstrates how to bind a Wheels model object to a form through the use of form helpers. He then shows how a model object interacts with the database through the model object's save() method.</description>
         <guid isPermaLink="false">http://cfwheels.org/screencasts/view/2</guid>
         <pubDate>Mon, 12 Oct 2009 05:10:48 -0700</pubDate>
         <media:content fileSize="27944641" url="http://cfwheels.org/files/screencasts/social-network-2.mp4" type="video/mp4" />
         <enclosure length="27944641" url="http://cfwheels.org/files/screencasts/social-network-2.mp4" type="video/mp4" />
      </item>
      <item>
         <title>Episode 1: Setting up ColdFusion on Wheels</title>
         <link>http://cfwheels.org/screencasts/view/1</link>
         <description>Chris Peters starts the webcast series by demonstrating how to set up ColdFusion on Wheels. He shows how to configure a data source and test that it's working.</description>
         <guid isPermaLink="false">http://cfwheels.org/screencasts/view/1</guid>
         <pubDate>Thu, 08 Oct 2009 05:10:17 -0700</pubDate>
         <media:content fileSize="22695002" url="http://cfwheels.org/files/screencasts/social-network-1.mp4" type="video/mp4" />
         <enclosure length="22695002" url="http://cfwheels.org/files/screencasts/social-network-1.mp4" type="video/mp4" />
      </item>
      <item>
         <title>Wheels is only a hammer</title>
         <link>http://www.clearcrystalmedia.com/pm/wheels-is-only-a-hammer/</link>
         <description>&lt;p&gt;My posting this is a seriously delayed reaction. But I must admit that I was using Wheels as a hammer and trying to treat a problem like a nail when I wrote about &lt;a rel="nofollow" target="_blank" href="http://www.clearcrystalmedia.com/pm/wheels-jquery-partial-form-focus/"&gt;creating a Wheels partial for setting form focus&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Read on to see where I went wrong.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://www.clearcrystalmedia.com/pm/?p=385</guid>
         <pubDate>Thu, 08 Oct 2009 03:49:23 -0700</pubDate>
         <content:encoded><![CDATA[<p>My posting this is a seriously delayed reaction. But I must admit that I was using Wheels as a hammer and trying to treat a problem like a nail when I wrote about <a rel="nofollow" target="_blank" href="http://www.clearcrystalmedia.com/pm/wheels-jquery-partial-form-focus/">creating a Wheels partial for setting form focus</a>.</p>
<p>Stephen came up with a much nicer jQuery-only solution for setting form focus:</p> <div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color:#009900;">&#40;</span>document<span style="color:#009900;">&#41;</span>.<span style="color:#660066;">ready</span><span style="color:#009900;">&#40;</span><span style="color:#003366;font-weight:bold;">function</span><span style="color:#009900;">&#40;</span><span style="color:#009900;">&#41;</span><span style="color:#009900;">&#123;</span> $<span style="color:#009900;">&#40;</span>”.<span style="color:#000066;">focus</span>”<span style="color:#009900;">&#41;</span>.<span style="color:#000066;">focus</span><span style="color:#009900;">&#40;</span><span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span>
<span style="color:#009900;">&#125;</span><span style="color:#009900;">&#41;</span><span style="color:#339933;">;</span></pre></div></div> <p>So now you can set form focus on load by setting that element&#8217;s class to <code>focus</code>. No need to create a Wheels partial and set a variable in your CFML .</p>
<p>In my newbness, I wasn&#8217;t thinking that you could have that <code>$(".focus")</code> hanging there without it applying to something on every page. Now I am schooled.</p>
<p>Thanks Stephen!</p> <p class='technorati-tags'>Technorati Tags: <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cfml'>cfml</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/cfwheels'>cfwheels</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/ColdFusion'>ColdFusion</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/coldfusion+on+wheels'>coldfusion on wheels</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/html'>html</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/javascript'>javascript</a>, <a rel="nofollow" class='technorati-link' target="_blank" href='http://technorati.com/tag/jQuery'>jQuery</a></p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/HVMd_6nomzM" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Some Coldfusion to manage database schema changes similar to Rails Migrations</title>
         <link>http://coldfusiononrails.blogspot.com/2009/10/some-coldfusion-to-manage-database.html</link>
         <description>Tom describes some CFML that he wrote to provide somewhat Rails-like migrations in ColdFusion.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/vhcW1b8VXAk" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/0faa4fc50ce6c3ff8172d8a2a9e88b76#cfwheels</guid>
         <pubDate>Tue, 06 Oct 2009 10:28:56 -0700</pubDate>
      </item>
      <item>
         <title>Interesting Railo mapping bug</title>
         <link>http://per.djurner.net/interesting-railo-mapping-bug</link>
         <description>&lt;p&gt;&lt;p&gt;During a Wheels debug session with &lt;a rel="nofollow" target="_blank" href="http://rip747.wordpress.com/"&gt;Tony&lt;/a&gt; we discovered a bug in Railo 3.1.1 related to mappings.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Normally when you create an object in Railo it is slow the first time but then lightning fast on subsequent creations of the same object. This applies both to the page request (e.g. if you create multiple objects on the same page it is only slow on the first one) and to the life span of the application (e.g. if you create an object on a page, creating that same object is faster on the second page called).&lt;/p&gt;
&lt;p&gt;When testing the latest version of Wheels on Railo we noticed however that the initial slowness would remain the same across page requests, even though the object had already been created in a previous request. It was like Railo was not able to cache the object information internally and thus had to recreate the object from scratch on every page request (excuse the non-technical lingo here but I have no idea how Railo handles this under the hood).&lt;/p&gt;
&lt;p&gt;After messing around with our test code for a bit we came to the conclusion that this bug appears when&amp;nbsp;you have a CFC that extends another CFC via a mapping. When we used a plain folder in the "extends" attribute it would run just fine.&lt;/p&gt;
&lt;p&gt;We're currently implementing a work-around for this issue and hope to include it in the next Wheels version. If this is something you have problems with right now you can remove the mapping that is set in the "wheels/functions.cfm" file (only do this if you're running your site off the web root though).&lt;/p&gt;
&lt;p&gt;By the way, the &lt;a rel="nofollow" target="_blank" href="http://www.getrailo.com/index.cfm/about-us/railo-team/"&gt;Railo team&lt;/a&gt; has been informed and they say they will have this fixed (or at least made faster) in an upcoming patch.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://per.djurner.net/interesting-railo-mapping-bug"&gt;Permalink&lt;/a&gt; | &lt;a rel="nofollow" target="_blank" href="http://per.djurner.net/interesting-railo-mapping-bug#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/MWq9QdUftZ8" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://per.djurner.net/interesting-railo-mapping-bug</guid>
         <pubDate>Tue, 29 Sep 2009 09:51:00 -0700</pubDate>
      </item>
      <item>
         <title>So you want to create a CFWheels application?</title>
         <link>http://henke.ws/page.cfm/cfwheels-series</link>
         <description>A multi-part series whose content borrows heavily from Dan Wilson&amp;#039;s "So You Want to" series about Model Glue:Unity.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/CrIGXUtKaEE" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/eb59d40da11f3921ca62d1ef5c3065ae#cfwheels</guid>
         <pubDate>Fri, 25 Sep 2009 06:59:53 -0700</pubDate>
      </item>
      <item>
         <title>Head First Rails Applied to CFWheels</title>
         <link>http://www.resultantsys.com/index.php/cfwheels</link>
         <description>Clarke Bishop follows along with the book Head First Rails, but using ColdFusion on Wheels instead of Ruby on Rails.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/9XdxBaS9QFg" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/e8ef5ee0240a5b04bfb7fb2beea10b25#cfwheels</guid>
         <pubDate>Fri, 25 Sep 2009 06:57:27 -0700</pubDate>
      </item>
      <item>
         <title>ColdFusion vs. PHP: Frameworks Part 1</title>
         <link>http://melissa-brandon.com/2009/03/coldfusion-vs-php-frameworks-part-1/</link>
         <description>Brandon Hansen compares CFML vs. PHP frameworks with Wheels and DIY Framework, respectively.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/sindJg7GeB0" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/29f87ba13478cee22be5145bc2e3def7#cfwheels</guid>
         <pubDate>Fri, 25 Sep 2009 06:55:21 -0700</pubDate>
      </item>
      <item>
         <title>CF on Wheels: What I Like</title>
         <link>http://www.jonhartmann.com/index.cfm/2009/1/20/CF-on-Wheels-What-I-Like</link>
         <description>Jon Hartmann reviews ColdFusion on Wheels&amp;#039;s ORM, MVC design, easy setup, and full action handling.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/w3y73NvICq8" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/ed3d1dc30ebf5c2d481c3f18b24208ec#cfwheels</guid>
         <pubDate>Fri, 25 Sep 2009 06:51:04 -0700</pubDate>
      </item>
      <item>
         <title>CFConversations Roundtable 7 - Part 2 on controller frameworks!</title>
         <link>http://www.cfconversations.com/index.cfm/2008/10/26/CFConversations-20</link>
         <description>Chris Peters joins a roundtable discussion of front controller frameworks, moderated by Brian Meloche. Participants included Adam Haskell, Ray Camden, Mark Mandel, and Nick Kwiatkowski.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/YRb7blr5iSk" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/4644fa7f34d22b72b1fd8d456d80638c#cfwheels</guid>
         <pubDate>Fri, 25 Sep 2009 06:48:52 -0700</pubDate>
      </item>
      <item>
         <title>Coldfusion On Wheels, the forgotten framework</title>
         <link>http://adamfortuna.com/2007/02/08/coldfusion-on-wheels-the-forgotten-framework/</link>
         <description>Adam Fortuna reminds his readers of Wheels and gives a quickstart set of examples on how it works.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/3_r9-Gkv85c" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/a6ec9c07bdfa49693c5f9c1d3c18855a#cfwheels</guid>
         <pubDate>Fri, 25 Sep 2009 06:38:10 -0700</pubDate>
      </item>
      <item>
         <title>ColdCourse: Search Engine Safe URLs for Fusebox, Mach-II, Model-Glue and ColdBox</title>
         <link>http://adamfortuna.com/2007/03/04/coldcourse-search-engine-safe-urls-for-fusebox-mach-ii-model-glue-and-coldbox/</link>
         <description>A shout-out to Wheels as the basis for the ColdCourse open source search-engine-safe URL project.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/upUz4BoI0Pk" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/06f7a9e5407ead549b1b29590fb13e78#cfwheels</guid>
         <pubDate>Fri, 25 Sep 2009 06:31:50 -0700</pubDate>
      </item>
      <item>
         <title>ColdFusion for JSP Developers</title>
         <link>http://today.java.net/pub/a/today/2007/02/27/coldfusion-for-jsp-developers.html</link>
         <description>A look at why ColdFusion is a relevant view and middleware technology for Java developers. Wheels gets mentioned as a selling point for using CF.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/J0VtpLM09Ug" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/db3718f518aeab28dcfd82a8c3ff0470#cfwheels</guid>
         <pubDate>Fri, 25 Sep 2009 06:29:12 -0700</pubDate>
      </item>
      <item>
         <title>Putting Wheels On ColdFusion</title>
         <link>http://www.webpronews.com/expertarticles/2006/08/02/putting-wheels-on-coldfusion</link>
         <description>WebProNews coverage of Rob Cameron&amp;#039;s release of ColdFusion on Wheels.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/1fSoNOagS0g" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/4b528fe4cc412aebb5bb86721a4afe2d#cfwheels</guid>
         <pubDate>Fri, 25 Sep 2009 06:26:33 -0700</pubDate>
      </item>
      <item>
         <title>The CFWheels are a turning!</title>
         <link>http://www.imarichardson.com/2005/12/17/the-cfwheels-are-a-turning/</link>
         <description>A very early look at ColdFusion on Wheels after its initial beta release in 2005.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/t_n3MczO82s" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/1c908f724a8a539d9956ce58d12ce946#cfwheels</guid>
         <pubDate>Fri, 25 Sep 2009 06:24:05 -0700</pubDate>
      </item>
      <item>
         <title>ColdFusion on Wheels on Wikipedia</title>
         <link>http://en.wikipedia.org/wiki/ColdFusion_on_Wheels</link>
         <description>Wikipedia article about Wheels. Feel free to edit the article to give it more notability.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/articles/~4/Sv4MRfgJn_A" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://delicious.com/url/af214db24ba695b3ad5e319becf3813a#cfwheels</guid>
         <pubDate>Fri, 25 Sep 2009 06:19:16 -0700</pubDate>
      </item>
      <item>
         <title>Wheels 1.0 is coming</title>
         <link>http://rip747.wordpress.com/2009/09/22/wheels-1-0-is-coming/</link>
         <description>It&amp;#8217;s been the buzz around our community lately that Wheels 1.0 will hopefully be hitting the streets in November 2009. Out of all the open and closed source projects I&amp;#8217;ve been involved with over my career, I have to say that Wheels hold a special place in my heart. The entire team (and especially Per) [...]&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&amp;blog=295460&amp;post=706&amp;subd=rip747&amp;ref=&amp;feed=1"/&gt;</description>
         <guid isPermaLink="false">http://rip747.wordpress.com/?p=706</guid>
         <pubDate>Tue, 22 Sep 2009 17:49:05 -0700</pubDate>
         <content:encoded><![CDATA[<p>It&#8217;s been the <a rel="nofollow" target="_blank" href="http://www.clearcrystalmedia.com/pm/coldfusion-on-rails-almost-here/">buzz</a> around our community lately that <a rel="nofollow" target="_blank" href="http://www.cfwheels.org/">Wheels</a> 1.0 will hopefully be hitting the streets in November 2009. Out of all the open and closed source projects I&#8217;ve been involved with over my career, I have to say that Wheels hold a special place in my heart. The <a rel="nofollow" target="_blank" href="http://www.cfwheels.org/community">entire team</a> (and especially <a rel="nofollow" target="_blank" href="http://per.djurner.net/">Per</a>) is doing an outstanding job getting the final code base up to par.</p>
<p>Keep up the great work everyone!</p>
<br /> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/rip747.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rip747.wordpress.com/706/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/rip747.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rip747.wordpress.com/706/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/rip747.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rip747.wordpress.com/706/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/rip747.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rip747.wordpress.com/706/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/rip747.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rip747.wordpress.com/706/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&blog=295460&post=706&subd=rip747&ref=&feed=1"/><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/PtOb_2RQzOc" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/f09f0a0d45c19276540a9899d0e6b667?s=96&amp;amp;amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image" media:title="rip747" />
         <category>CFWheels</category>
      </item>
      <item>
         <title>Wheels 1.0, when?</title>
         <link>http://per.djurner.net/wheels-10-when</link>
         <description>&lt;p&gt;&lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://twitter.com/cf_chrispeters"&gt;Chris Peters&lt;/a&gt; totally gave it away in &lt;a rel="nofollow" target="_blank" href="http://www.cfwheels.org/blog/index.cfm/2009/9/15/Released-Today-ColdFusion-on-Wheels-094"&gt;his post&lt;/a&gt; on the official Wheels blog:&lt;br /&gt;"&lt;em&gt;We're pretty much locked on features until we release 1.0 in a couple months&lt;/em&gt;".&lt;/p&gt;
&lt;p&gt;A "couple" usually means "2", right?&lt;/p&gt;
&lt;p&gt;So, let's do the math in ColdFusion (I could use my brain for the calculation I guess but ColdFusion is already up to version 9 while the last reports from my brain indicate perpetual beta status).&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &amp;lt;cfset releaseDate = Month(Now()) + 2&amp;gt;
&amp;lt;cfdump var="#MonthAsString(releaseDate)#"&amp;gt; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;For those of you who don't have the luxury of having a ColdFusion development server to run this complex code on I can tell you that the answer is "November".&lt;/p&gt;
&lt;p&gt;I'm looking forward to it, are you?&lt;/p&gt;
&lt;p&gt;By the way, the above code was done without any use of a framework!&lt;br /&gt;Yeah, it was painful but I stuck with it.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://per.djurner.net/wheels-10-when"&gt;Permalink&lt;/a&gt; | &lt;a rel="nofollow" target="_blank" href="http://per.djurner.net/wheels-10-when#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/wUPT81sjLSw" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://per.djurner.net/wheels-10-when</guid>
         <pubDate>Wed, 16 Sep 2009 05:38:00 -0700</pubDate>
      </item>
      <item>
         <title>CFWheels — Using Layouts and Stylesheets</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/cfwheels-using-layouts-and-stylesheets/</link>
         <description>On Page 73 of Head First Rails, we need to add a design for the meBay site.
Just like Rails, CFWheels supports layouts to create a master template and to avoid repeating yourself.
For our simple app, we could just work with the default layout located at /views/layout.cfm. But, to follow the book, let&amp;#8217;s create a controller-specific [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=112</guid>
         <pubDate>Sun, 06 Sep 2009 10:50:21 -0700</pubDate>
         <content:encoded><![CDATA[<p>On <strong>Page 73</strong> of Head First Rails, we need to add a design for the meBay site.</p>
<p>Just like Rails, CFWheels <a rel="nofollow" title="Layouts in CFWheels" target="_blank" href="http://cfwheels.org/docs/chapter/using-layouts">supports layouts</a> to create a master template and to avoid repeating yourself.</p>
<p>For our simple app, we could just work with the default layout located at <span style="color:#800000;">/views/layout.cfm</span>. But, to follow the book, let&#8217;s create a controller-specific layout at: <span style="color:#800000;">/views/ads/layout.cfm</span>. So, this layout.cfm in the /view/ads/ subdirectory will only be used for views associated with the ads controller.</p>
<p>[cf]<br />
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
&lt;head&gt;<br /> &lt;cfoutput&gt;<br /> &lt;title&gt;Ads: #params.action#&lt;/title&gt;<br /> #stylesheetLinkTag("default")#<br /> &lt;/cfoutput&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br /> &lt;cfoutput&gt;<br /> &lt;div id="wrapper"&gt;<br /> &lt;div id="header"&gt;<br /> &lt;div&gt;<br /> &lt;h1&gt;MeBay&lt;/h1&gt;<br /> &lt;ul id="nav"&gt;<br /> &lt;li&gt;#linkTo(text="All Ads", route="adsNoKey")#&lt;/li&gt;<br /> &lt;/ul&gt;<br /> &lt;/div&gt;<br /> &lt;/div&gt;</p>
<p> &lt;div id="content"&gt;<br /> #contentForLayout()#<br /> &lt;/div&gt;<br /> &lt;div id="clearfooter"&gt;&lt;/div&gt;<br /> &lt;/div&gt;<br /> &lt;div id="footer"&gt;&lt;/div&gt;<br /> &lt;/cfoutput&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
[/cf]</p>
<p>Most of this code is HTML boilerplate. #params.action# inserts the name of the current action in the Title tag. The params structure is always passed from the controller to the view. It includes the name of the action, variables, etc. You can always cfdump it out if you want to see what all is in there.</p>
<p>#stylesheetLinkTag(&#8221;default&#8221;)# uses another CFWheels helper function. By convention, stylesheets are located in the <span style="color:#800000;">/stylesheets</span> directory. So this function builds the link to our stylesheet named default.css. <a rel="nofollow" title="Head First Rails Website" target="_blank" href="http://www.headfirstlabs.com/books/hfrails/">Download the code for Chapter 2</a> from the Head First Rails website, and get default.css from the <span style="color:#800000;">/public/stylesheets/</span> folder. In CFWheels, put default.css in your <span style="color:#800000;">/stylesheets</span> folder. If you have trouble with the stylesheet, make sure all the images references are correct. If your web server configuration is different, you might need to adjust the paths.</p>
<p>On line 16, we&#8217;ve setup a link to our index action.</p>
<p>On line 22, you see <span style="color:#800000;">#contentForLayout()#</span>. This is where CFWheels puts the content from the other view pages &#8212; show.cfm and index.cfm. It&#8217;s the equivalent of <span style="color:#800000;">&lt;%= yield %&gt;</span> in Rails.</p>
<p>That&#8217;s it! Now we have a pretty, styled meBay application. Visit <span style="color:#800000;">http://localhost/index.cfm/ads/</span> and see how pretty things look.</p>
<p>Next, it&#8217;s on to Chapter 3. In software development, things always change. And, now meBay wants to let people post ads online!</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/QoDaQLWSjYg" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>CFWheels — Adding a Custom Index Page</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/cfwheels-adding-a-custom-index-page/</link>
         <description>Starting on Page 73 of Head First Rails, we need to add an index page so that people can find the pages they want!
First, let&amp;#8217;s add a new route so that http://localhost/index.cfm/ads/ goes to the new index action we&amp;#8217;ll add in a minute.
Open up /config/routes.cfm, and change it to:
[cf]
&amp;#60;cfset addRoute(name=&amp;#34;ads&amp;#34;, pattern=&amp;#34;/ads/[key]&amp;#34;, controller=&amp;#34;ads&amp;#34;, action=&amp;#34;show&amp;#34;)&amp;#62;
&amp;#60;cfset addRoute(name=&amp;#34;adsNoKey&amp;#34;, pattern=&amp;#34;/ads/&amp;#34;, [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=101</guid>
         <pubDate>Sun, 06 Sep 2009 08:46:43 -0700</pubDate>
         <content:encoded><![CDATA[<p>Starting on <strong>Page 73</strong> of Head First Rails, we need to add an index page so that people can find the pages they want!</p>
<p>First, let&#8217;s add a new route so that <span style="color:#800000;">http://localhost/index.cfm/ads/</span> goes to the new index action we&#8217;ll add in a minute.</p>
<p>Open up <span style="color:#800000;">/config/routes.cfm</span>, and change it to:</p>
<p>[cf]<br />
&lt;cfset addRoute(name="ads", pattern="/ads/[key]", controller="ads", action="show")&gt;<br />
&lt;cfset addRoute(name="adsNoKey", pattern="/ads/", controller="ads", action="index")&gt;<br />
&lt;cfset addRoute(name="catchall", pattern="[path]", controller="redirect", action="index")&gt;<br />
&lt;cfset addRoute(name="home", pattern="", controller="redirect", action="index")&gt;<br />
[/cf]</p>
<p>Notice the new route on line 2: <span style="color:#800000;">&lt;cfset addRoute(name=&#8221;adsNoKey&#8221;, pattern=&#8221;/ads/&#8221;, controller=&#8221;ads&#8221;, action=&#8221;index&#8221;)&gt;</span>. CFWheels checks the routes in order. So, if the URL pattern matches <span style="color:#800000;">/ads/[key]</span>, it will go to the show action. But, if the key isn&#8217;t there, it matches the <span style="color:#800000;">/ads/</span> pattern and goes to the new index action.</p>
<p>Now, we need to add an index action to the controller and then an index.cfm view. Open up <span style="color:#800000;">/controllers/Ads.cfc</span> and add the new index function. Leave the show function alone.</p>
<p>[cf]<br />
&lt;!&#8212; ads/index &#8212;&gt;<br />
&lt;cffunction name="index"&gt;<br /> &lt;cfset ads = model("Ad").findAll()&gt;<br /> &lt;cfdump var="#ads#"&gt;&lt;cfabort&gt;<br />
&lt;/cffunction&gt;<br />
[/cf]</p>
<p>Notice the that we set <span style="color:#800000;">ads = model(&#8221;Ad&#8221;).findAll()</span>. This tells Wheels, to go get the Ad model, and findAll the data &#8212; Pretty Powerful! The data comes back as a ColdFusion query object.</p>
<p>For testing, put the &lt;cfdump&gt;line in your controller, and send your browser to: <span style="color:#800000;">http://localhost/index.cfm/ads/</span>. You&#8217;ll see the query dumped out in all its glory! This is a pretty good debugging trick. Add a &lt;cfdump&gt; to your controller to see what variables and data the controller is passing to the view. Remove the &lt;cfdump&gt; line, and let&#8217;s go create the view.</p>
<p>Go create <span style="color:#993300;">/views/ads/index.cfm</span>:</p>
<p>[cf]<br />
&lt;h1&gt;All Ads&lt;/h1&gt;<br />
&lt;ul&gt;<br />
&lt;cfoutput query="ads"&gt;<br /> &lt;li&gt;#linkTo(text="#ads.name#", route="ads", key="#ads.id#")#&lt;/li&gt;<br />
&lt;/cfoutput&gt;<br />
&lt;/ul&gt;<br />
[/cf]</p>
<p>Pretty simple! Specifying the query attribute in <span style="color:#800000;">&lt;cfoutput&gt;</span> makes this just like a <span style="color:#800000;">&lt;cfloop&gt;</span>. You end up with a bunch of List Items (&lt;li&gt;) &#8212; One for each record in the query we got from the controller.</p>
<p><span style="color:#800000;">linkTo()</span> is another cool Wheels helper function. You could just use an &lt;a&gt; tag. However, using the linkTo() function is a <a rel="nofollow" title="CFWheels linkTo()" target="_blank" href="http://code.google.com/p/cfwheels/wiki/LinkingPages">best practice</a> because it makes your application more portable. We specified the &#8220;ads&#8221; route in the function. If, later on, we changed our subfolders or URL rewriting, everything would still work.</p>
<p>That&#8217;s it. Send your browser to: <span style="color:#800000;">http://localhost/index.cfm/ads/</span> and you should see a list of ads. Each ad will have a link that takes you to the show action and displays the ad.</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/QtFjcO-AiKM" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>CFWheels — Fixing the Controller and View</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/cfwheels-fixing-the-controller-and-view/</link>
         <description>Last time, we setup our route, and now if you go to: http://localhost/index.cfm/ads/3, you won&amp;#8217;t get an error. But, just like on Page 63 of Head First Rails, the ads are blank and the page is kind of boring &amp;#8212; There&amp;#8217;s no data.
First, we need to fix our controller at /controllers/Ads.cfc. Make sure your show [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=95</guid>
         <pubDate>Sun, 30 Aug 2009 08:21:04 -0700</pubDate>
         <content:encoded><![CDATA[<p>Last time, we setup our route, and now if you go to: <span style="color:#800000;">http://localhost/index.cfm/ads/3</span>, you won&#8217;t get an error. But, just like on Page 63 of Head First Rails, the ads are blank and the page is kind of boring &#8212; There&#8217;s no data.</p>
<p>First, we need to fix our controller at <span style="color:#800000;">/controllers/Ads.cfc</span>. Make sure your show function looks like:</p>
<p>[cf]<br />
&lt;cffunction name="show"&gt;<br /> &lt;!&#8212; Find the record &#8212;&gt;<br /> &lt;cfset ad = model("Ad").findByKey(params.key)&gt;<br />
&lt;/cffunction&gt;<br />
[/cf]</p>
<p>When Wheels created the model, it automatically adds the findByKey method. All we have to do is tell it which key we want, and params.key has the key value!</p>
<p>We still need to fix <span style="color:#800000;">/views/ads/show.cfm</span> to display the data. Change this file to:</p>
<p>[cf]<br />
&lt;cfoutput&gt;<br />
&lt;p&gt;&lt;b&gt;Name:&lt;/b&gt;#ad.name#&lt;/p&gt;<br />
&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;#ad.description#&lt;/p&gt;<br />
&lt;p&gt;&lt;b&gt;Price:&lt;/b&gt;#ad.price#&lt;/p&gt;<br />
&lt;p&gt;&lt;b&gt;Seller Id:&lt;/b&gt;#ad.seller_id#&lt;/p&gt;<br />
&lt;p&gt;&lt;b&gt;Email:&lt;/b&gt;#ad.email#&lt;/p&gt;<br />
&lt;p&gt;&lt;img src="#ad.img_url#"/&gt;&lt;/p&gt;<br />
&lt;/cfoutput&gt;<br />
[/cf]</p>
<p>Pretty neat. Just put the values in the view and wrap it up in a &lt;cfoutput&gt; tag! Wheels handles the hard part of getting the data from the database into the model.</p>
<p>Go back to: <span style="color:#800000;">http://localhost/index.cfm/ads/3</span>, and you&#8217;ll see that the data is now being correctly displayed.</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/LSvwbmD-FjE" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>CFWheels — How to Setup and Use Routes</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/cfwheels-how-to-setup-and-use-routes/</link>
         <description>Routes offer a way to map web URLs to specific controllers in your application. It&amp;#8217;s one place where you might use configuration in CFWheels.
There&amp;#8217;s a good section in the CFWheels docs on Using Routes. But, I&amp;#8217;m going to continue following along with the examples in Head First Rails, starting on page 56.
If you try a [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=84</guid>
         <pubDate>Sun, 30 Aug 2009 07:56:07 -0700</pubDate>
         <content:encoded><![CDATA[<p>Routes offer a way to map web URLs to specific controllers in your application. It&#8217;s one place where you might use configuration in CFWheels.</p>
<p>There&#8217;s a good section in the CFWheels docs on <a rel="nofollow" title="CFWheels -- Using Routes" target="_blank" href="http://cfwheels.org/docs/chapter/using-routes">Using Routes</a>. But, I&#8217;m going to continue following along with the examples in Head First Rails, starting on page 56.</p>
<p>If you try a URL like this: <span style="color:#800000;">http://localhost/index.cfm/ads/3</span>, Wheels will give you an error: <span style="color:#800000;">Could not find the view page for the &#8216;3&#8242; action in the &#8216;ads&#8217; controller</span>. That&#8217;s because, Wheels is looking for the Ads controller with the &#8220;3&#8243; action. Rails would complain that there is no action (Method in the Ads controller) called &#8216;3&#8242;. But, Wheels is smarter and just goes straight to the view. We don&#8217;t have a &#8216;3&#8242; method in Ads.cfc, but Wheels still tries to load a view from <span style="color:#800000;">/views/ads/3.cfm</span>. The file isn&#8217;t there, so it throws an error.</p>
<p>Setting up a Route will let us fix this! Open up <span style="color:#800000;">/config/routes.cfm</span>. It defaults to something like:</p>
<p>[cf]<br />
&lt;cfset addRoute(name="home", pattern="", controller="wheels", action="congratulations")&gt;<br />
[/cf]</p>
<p>Did you ever wonder how you got to that nice congratulations page when you just go to: <span style="color:#800000;">http://localhost/</span>? What happens is that our route, the &#8220;home&#8221; route, says, that if the URL pattern is &#8220;&#8221; (Blank String), Wheels should go the the wheels controller, and run the action congratulations.</p>
<p>Take a peek at <span style="color:#800000;">/controllers/Wheels.cfc</span>. Sure enough, there is a congratulations method that loads up info on the current version of Wheels. And, then of course, it looks for the view in <span style="color:#800000;">/views/wheels/congratulations.cfm</span>. The file is already there as part of the default Wheels installation. If you open it up, you can see the HTML code including the place where it inserts the version information Wheels got from the controller.</p>
<p>The default routes.cfm file is nice, but lets make some changes!</p>
<p>[cf]<br />
&lt;cfset addRoute(name="ads", pattern="/ads/[key]", controller="ads", action="show")&gt;<br />
&lt;cfset addRoute(name="catchall", pattern="[path]", controller="redirect", action="index")&gt;<br />
&lt;cfset addRoute(name="home", pattern="", controller="redirect", action="index")&gt;<br />
[/cf]</p>
<p>It&#8217;s important to understand that Wheels goes through the routes in order from top to bottom. As soon as it finds a match, it goes to the appropriate controller. Here&#8217;s how you interpret this route.cfm:</p>
<ul>
<li><strong>Ads</strong>. If the URL pattern looks like: <span style="color:#800000;">http//localhost/index.cfm/ads/3</span>, go to the show action in the ads controller. Did you notice the pattern includes [key]? This tells Wheels to set the key parameter to whatever is in the URL &#8212; 3 in this case.</li>
<li><strong>Catchall</strong>. If the URL doesn&#8217;t match the Ads pattern, Wheels will try the next pattern. This pattern matches <span style="color:#800000;">[path]</span>. In other words, it matches anything, and puts the value in the path parameter. Actually, it doesn&#8217;t put everything in the path paramter &#8212; Just the part before the next slash, &#8220;/&#8221;. <span style="color:#800000;">http//localhost/index.cfm/xxx/yyy/zzz/3</span> will only have &#8220;xxx&#8221; in the path parameter. A route like this is a good one to add to catch any unknown URLs a user might enter &#8212; Sort of like a 404 Error page.</li>
<li><strong>Home</strong>. If the URL pattern is blank, we&#8217;ve got one more route to cover that case. Remember, the pattern is just the stuff that comes after <span style="color:#800000;">http//localhost/index.cfm/</span>.</li>
</ul>
<p>Ultimately Routes just offer a convenient way to map a URL to a controller. They are useful for having prettier URLs that make more sense to the users. You can always use query params in your URL and completely bypass routes. This URL, <span style="color:#800000;">http://localhost/index.cfm?controller=ads&amp;action=show&amp;key=3</span> directly specifies the controller and action, so there&#8217;s no need for Wheels to check the route!</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/7c7R7KkwnEM" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>CFWheels — Creating a Custom Controller and View</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/cfwheels-creating-a-custom-controller-and-view/</link>
         <description>We&amp;#8217;re on Page 52 of Head First Rails, and we need to create a custom Controller and View.
I&amp;#8217;m going to keep following the book, but there is a great tutorial that covers the same ideas over on the CFWheels website.
Convention Rules! CFWheels has conventions for almost everything. As long as you follow the conventions, things [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=69</guid>
         <pubDate>Thu, 27 Aug 2009 13:47:36 -0700</pubDate>
         <content:encoded><![CDATA[<p>We&#8217;re on Page 52 of Head First Rails, and we need to create a custom Controller and View.</p>
<p>I&#8217;m going to keep following the book, but there is a <a rel="nofollow" title="CFWheels Beginner Tutorial" target="_blank" href="http://cfwheels.org/docs/chapter/beginner-tutorial%3a-hello-world">great tutorial </a>that covers the same ideas over on the CFWheels website.</p>
<p>Convention Rules! CFWheels has conventions for almost everything. As long as you follow the conventions, things just work naturally.</p>
<p>For example, look at a URL like this <span style="color:#993300;">http://localhost/ads/show/5</span>. CFWheels will automatically interpret this to run the <span style="color:#993300;">show </span>function in the <span style="color:#993300;">ads </span>controller. The number 5 is passed as a &#8220;key&#8221;.</p>
<p>Before I keep going, I have to touch on URL rewriting. The URL I just used as an example will only work if your server supports full URL rewriting. I&#8217;m using the ColdFusion development server, and it only offers &#8220;partial&#8221; URL rewriting. So, I have to use a URL like this: <span style="color:#993300;">http://localhost/<strong>index.cfm</strong>/ads/show/5.</span> Notice that <strong>index.cfm</strong> has to be inserted in the URL!</p>
<p>You can also specify the Controller and Action like this: <span style="color:#800000;">http://localhost/index.cfm?controller=ads&amp;action=show&amp;key=5</span>. Doing it this way will always work. It bypasses routes and any server URL rewriting problems. You might want to just use this form of URL while you are learning or if you are debugging a problem.</p>
<p>In any case, the idea is to run the show function in the ads controller. CFWheels will look for <span style="color:#800000;">Ads.cfc</span> in the controller folder, and will look for the show function inside Ads.cfc.</p>
<p>Then, it will run the show function and load the view. It will expect there to be a view file in <span style="color:#800000;">/views/ads </span>named <span style="color:#800000;">show.cfm</span> to match the function you called.</p>
<p>But, guess what? If you don&#8217;t create the Ads.cfc controller, CFWheels, will still try to run the view. Normally, you&#8217;ll want the controller to get some data for you, but if not, you could skip the controller altogether.</p>
<p>Here&#8217;s my controller code for <span style="color:#800000;">/controllers/Ads.cfc</span>:</p>
<p>[cf]<br />
&lt;cfcomponent extends="Controller"&gt;</p>
<p> &lt;cffunction name="index"&gt;</p>
<p> &lt;/cffunction&gt;</p>
<p> &lt;cffunction name="show"&gt;</p>
<p> &lt;/cffunction&gt;</p>
<p>&lt;/cfcomponent&gt;<br />
[/cf]</p>
<p>Later, we&#8217;ll add some functionality to the controller, but I&#8217;m following the book. And, for now, the only two actions we need are index and show.</p>
<p>At this point, you could try to go to <span style="color:#800000;">http://localhost/index.cfm?controller=ads&amp;action=show&amp;key=5</span>. But, you&#8217;d get a Wheels error because there is no view file.</p>
<p>Here&#8217;s my view code for <span style="color:#993300;">/views/ads/show.cfm</span>:</p>
<p>[cf]<br />
&lt;p&gt;&lt;b&gt;Name:&lt;/b&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;b&gt;Price:&lt;/b&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;b&gt;Seller Id:&lt;/b&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;b&gt;Email:&lt;/b&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;img src=""/&gt;&lt;/p&gt;<br />
[/cf]</p>
<p>I know, this doesn&#8217;t do much either, but we&#8217;ll add on. Be Patient!</p>
<p>Now, if you go to <span style="color:#800000;">http://localhost/index.cfm?controller=ads&amp;action=show&amp;key=5</span>, you&#8217;ll see the lovely static view file you just created.</p>
<p>Next time, we&#8217;ll look at routes some more, and eventually, we&#8217;ll actually make this app work.</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/L_SD29JdkIA" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>CFWheels — Creating a Custom Model</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/cfwheels-creating-a-custom-model/</link>
         <description>Continuing the series on using Head First Rails to learn CFWheels, lets move on to Chapter 2 &amp;#8212; Beyond Scaffolding. We are going to create the MeBay application!
Starting on Page 45 in Head First Rails &amp;#8230;
Whether we use scaffolding or not, we still have to create the database. In Rails, you do this with the [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=57</guid>
         <pubDate>Tue, 25 Aug 2009 08:36:55 -0700</pubDate>
         <content:encoded><![CDATA[<p>Continuing the series on using Head First Rails to learn CFWheels, lets move on to Chapter 2 &#8212; Beyond Scaffolding. We are going to create the MeBay application!</p>
<p>Starting on<strong> Page 45</strong> in Head First Rails &#8230;</p>
<p>Whether we use scaffolding or not, we still have to create the database. In Rails, you do this with the <span style="color:#800000;">script/generate model</span> command and then running <span style="color:#800000;">rake</span>. But, in CFWheels, it&#8217;s easiest to just use SQL and create the database directly. Here is some mySQL code to create the needed ads table.</p>
<p>[sql]</p>
<p>CREATE TABLE `ads` (<br />
`id` INTEGER PRIMARY KEY NOT NULL auto_increment,<br />
`name` varchar(255),<br />
`description` text,<br />
`price` decimal,<br />
`seller_id` integer,<br />
`email` varchar(255),<br />
`img_url` varchar(255),<br />
`created_at` datetime,<br />
`updated_at` datetime<br />
);<br />
[/sql]</p>
<p>Later on, we&#8217;ll want to populate the table with some sample data, so let me go ahead and show the full SQL that creates the table and adds the test data:</p>
<p>[sql]<br />
DROP TABLE IF EXISTS `ads` ;<br />
CREATE TABLE `ads` (<br />
`id` INTEGER PRIMARY KEY NOT NULL auto_increment,<br />
`name` varchar(255),<br />
`description` text,<br />
`price` decimal,<br />
`seller_id` integer,<br />
`email` varchar(255),<br />
`img_url` varchar(255),<br />
`created_at` datetime,<br />
`updated_at` datetime<br />
);<br />
INSERT INTO `ads` VALUES(1,&#8217;Typewriter&#8217;,'Old manual typewriter. Many years useful service. Works best with a bottle next to it.&#8217;,71.95,54,&#8217;dhammett@email.com&#8217;,'http://homepage.mac.com/david_griffiths/typewriter.png&#8217;,&#8221;,&#8221;);<br />
INSERT INTO `ads` VALUES(2,&#8217;Football&#8217;,'Some strings frayed.&#8217;,74.02,45,&#8217;marty@googlemail.com&#8217;,'http://www.freefever.com/freeclipart/clipart/football2.gif&#8217;,&#8221;,&#8221;);<br />
INSERT INTO `ads` VALUES(3,&#8217;Moosehead&#8217;,'Slightly moth-eaten. One of the antlers is broken and there&#8217;&#8217;s a strange buzzing sound behind the eyes&#8230;&#8217;,2978.25,56,&#8217;kathy@hotmail.com&#8217;,'http://saloon.javaranch.com/ubb/moosefly.gif&#8217;,&#8221;,&#8221;);<br />
INSERT INTO `ads` VALUES(4,&#8217;Desk&#8217;,'Milk desk - go&#8230;&#8217;,4800,123,&#8217;andy@allmail&#8230;.&#8217;,'http://picasaweb.goog&#8230;&#8217;,&#8221;,&#8221;);<br />
INSERT INTO `ads` VALUES(5,&#8217;Door curtain&#8217;,'Beaded door cu&#8230;&#8217;,11,773,&#8217;dawn@hotmail&#8230;.&#8217;,'http://www.freewebsit&#8230;&#8217;,&#8221;,&#8221;);<br />
INSERT INTO `ads` VALUES(6,&#8217;Apple Newton&#8217;,'Still works! M&#8230;&#8217;,25,2,&#8217;ahertz@differ&#8230;&#8217;,'http://www.differnet&#8230;.&#8217;,&#8221;,&#8221;);<br />
INSERT INTO `ads` VALUES(7,&#8217;Sinclair C5&#8242;,&#8217;Battery flat t&#8230;&#8217;,372.06,346,&#8217;clive@sinclai&#8230;&#8217;,'http://www.ebay.com/w&#8230;&#8217;,&#8221;,&#8221;);<br />
INSERT INTO `ads` VALUES(8,&#8217;Edsel&#8217;,'Never used aut&#8230;&#8217;,355,755,&#8217;bing@badabing&#8230;&#8217;,'http://pages.google.c&#8230;&#8217;,&#8221;,&#8221;);<br />
INSERT INTO `ads` VALUES(37,&#8217;Diamond&#8217;,'203.4 carats, grade D pear cut diamond. Low price for quick sale. Owner leaving the country.&#8217;,1000000,5234,&#8217;pink@panther.com&#8217;,'http://&#8217;,&#8221;,&#8221;);<br />
[/sql]</p>
<p>It&#8217;s easy enough to manually create the Model, but for convenience, let&#8217;s use the scaffolding plugin anyway.</p>
<p>Click the <strong><span style="text-decoration:underline;"><span style="color:#993300;">Scaffold</span></span></strong> link at the bottom of any CFWHeels page &#8211; In the debug section, next to Plugins. Then, on the scaffold page, enter <span style="color:#800000;">ad</span> as the Object name, select Model from the Type drop down, and click Generate. Remember, the table is named <span style="color:#800000;">ads</span> (plural with an “s”), but the the model is named <span style="color:#800000;">ad</span> (singular).</p>
<p>Now, open /models/Ad.cfc. You&#8217;ll see something that looks like:</p>
<p>[cf]<br />
&lt;cfcomponent extends="Model"&gt;</p>
<p>&lt;!&#8212; All initialization related tasks are done in the "init" function which is run the first time the model is requested. &#8212;&gt;<br />
&lt;cffunction name="init"&gt;<br />
&lt;/cffunction&gt;</p>
<p>&lt;/cfcomponent&gt;<br />
[/cf]</p>
<p>That&#8217;s all it takes to create a model! Your model must extend Model.cfc &#8212; That&#8217;s where all the CFWheels goodness happens. Other than that, all you need is an init function. Later on, you can use the init function to add extra capabilities, but for now, all that&#8217;s needed is a blank init function!</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/bN1-iF1z9Bs" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>CFWheels — Adding a new table with model, view, and controller</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/cfwheels-adding-a-new-table-with-model-view-and-controller/</link>
         <description>In Part 2, we looked at Editing the View in CFWheels.
We thought we were done, but now the boss wants to record events along with ticket sales. Remember we are following along in Head First Rails, and converting everything to CFWheels!
Fortunately, with scaffolding, all we need to do is create the new database table and [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=43</guid>
         <pubDate>Sun, 16 Aug 2009 11:34:16 -0700</pubDate>
         <content:encoded><![CDATA[<p>In Part 2, we looked at <a rel="nofollow" title="Editing the View in CFWheels" target="_blank" href="http://www.resultantsys.com/index.php/coldfusion/editing-the-view-in-cfwheels/">Editing the View in CFWheels</a>.</p>
<p>We thought we were done, but now the boss wants to record events along with ticket sales. Remember we are following along in <a rel="nofollow" title="Head First Rails" target="_blank" href="http://www.amazon.com/gp/product/0596515774?ie=UTF8&amp;tag=distanz&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596515774">Head First Rails</a>, and converting everything to CFWheels!</p>
<p>Fortunately, with scaffolding, all we need to do is create the new database table and run the scaffolding plugin.</p>
<p>Here&#8217;s the create table SQL query:</p>
<blockquote><p>CREATE TABLE `events` (<br />
`id` int(11) NOT NULL auto_increment,<br />
`artist` varchar(255) NOT NULL,<br />
`description` text,<br />
`price_low` decimal NOT NULL,<br />
`price_high` decimal NOT NULL,<br />
`event_date` date NOT NULL,<br />
PRIMARY KEY (`id`)<br />
)</p></blockquote>
<p>I got the idea from a Rails app to create a &#8220;spec&#8221; directory to hold application specification information. And, I created a database sub-directory to hold all my table creation SQL. So the query is stored in <span style="color:#993300;">/spec/database/events.sql</span>.</p>
<p>Next, click the <strong><span style="text-decoration:underline;"><span style="color:#993300;">Scaffold</span></span></strong> link. Look in the debug information at the bottom of each page, next to Plugins. Then, on the scaffold page, enter <span style="color:#993300;">event </span>as the Object name, and click Generate. Remember, the table is named <span style="color:#993300;">events </span>(plural with an &#8220;s&#8221;), but the the object is named <span style="color:#993300;">event </span>(singular).</p>
<p>All that&#8217;s left is to open <span style="color:#993300;">/views/events</span>/ and edit the labels in <span style="color:#993300;">edit.cfm, index.cfm, new.cfm</span> and s<span style="color:#993300;">how.cfm</span>. This last step isn&#8217;t really needed to make things work, but the boss is kind of picky.</p>
<p>Great &#8212; We&#8217;ve finished with Chapter 1 of Head First Rails. You now know how to:</p>
<ul>
<li>Create a new CFWheels application</li>
<li>Install the scaffolding plugin to CFWheels</li>
<li>Setup a database table and use scaffolding to automatically generate the Model, View, and Controller code.</li>
<li>Edit HTML in the View</li>
<li>Add fields and new tables to the database</li>
</ul>
<p>Next time, we&#8217;ll start Chapter 2, and build an application from scratch &#8212; Without using scaffolding.</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/TnoYJfAe7ZQ" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Editing the View in CFWheels</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/editing-the-view-in-cfwheels/</link>
         <description>In Part 1, we looked at Scaffolding Basics in CFWheels.
Now, I&amp;#8217;ll continue working through the exercises in Head First Rails and converting things to CFWheels.
Page 27: Edit the HTML in the View
When you use scaffolding, the labels will be the same as the field names in the database. This may be OK, but if you [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=36</guid>
         <pubDate>Wed, 12 Aug 2009 08:55:29 -0700</pubDate>
         <content:encoded><![CDATA[<p>In <strong>Part 1</strong>, we looked at <a rel="nofollow" title="Part 1: Scaffolding Basics" target="_blank" href="http://www.resultantsys.com/index.php/coldfusion/cfwheels-scaffolding-basics/">Scaffolding Basics in CFWheels</a>.</p>
<p>Now, I&#8217;ll continue working through the exercises in Head First Rails and converting things to CFWheels.</p>
<p><strong>Page 27: Edit the HTML in the View</strong></p>
<p>When you use scaffolding, the labels will be the same as the field names in the database. This may be OK, but if you need to change them to make them more readable by humans, it&#8217;s easy enough to edit the HTML in the views.</p>
<ul>
<li>Look at the directory for <span style="color:#993300;">webroot/views/tickets</span>. You&#8217;ll see four files named edit.cfm, index.cfm, new.cfm, and show.cfm. These are the four files that you need to edit.</li>
<li>Open up edit.cfm, and you&#8217;ll see the code like: <span style="color:#993300;">&lt;label&gt;Seat_id_seq&lt;/label&gt;</span>. Seat_id_seq isn&#8217;t a very human-friendly label, so let&#8217;s change it to Seat #.</li>
<li>Change the code to <span style="color:#993300;">&lt;label&gt;Seat ##&lt;/label&gt;</span>. Remember this is inside a &lt;cfoutput&gt; block, so you have to escape the # symbol by typing it twice.</li>
<li>Open index.cfm and change the appropriate line to <span style="color:#993300;">&lt;cfcol header=&#8221;Seat ##&#8221; text=&#8221;#seat_id_seq#&#8221; /&gt;</span>.</li>
<li>Now make similar changes to new.cfm and show.cfm.</li>
<li>Save everything, then go to <span style="color:#993300;">http://localhost/tickets/index.cfm?controller=tickets&amp;action=index<span style="color:#000000;"> to see your beautiful new labels!</span></span></li>
</ul>
<p>I made one other change to the code to make things work correctly! At the bottom of the show.cfm file, there&#8217;s a line that starts out with<br />
<span style="color:#993300;">#linkTo(text=&#8221;Return to the listing&#8221;, action=&#8221;action&#8221;)#</span>. This may be a bug in scaffolding, or maybe I did something wrong. This line should really say:<br />
#linkTo(text=&#8221;Return to the listing&#8221;, action=&#8221;<strong><span style="color:#993300;">index</span></strong>&#8220;)#. This way, the link will go back to the index view.</p>
<p><strong>Page 31: Adding a new data field</strong></p>
<p>The Boss forgot that we need a phone number field, so now we have to add it!</p>
<p>In Rails, you have to do<span style="color:#993300;"> &gt; script/generate migration &#8230;</span> and then run <span style="color:#993300;">&gt; rake db:migrate</span>. In CFWheels, we&#8217;ll just run an Alter Table query on the database. Here&#8217;s the query I ran:</p>
<blockquote><p>ALTER TABLE tickets<br />
ADD phone varchar(255)</p></blockquote>
<p>But, just like with Rails, changing the database isn&#8217;t enough (Page 36). We still have to update the code in the View files to handle the new field. Here&#8217;s the code I added to edit.cfm and new.cfm:</p>
<blockquote><p>&lt;p&gt;&lt;label&gt;Phone&lt;/label&gt; &lt;br /&gt;<br />
#textField(objectName=&#8217;ticket&#8217;, property=&#8217;phone&#8217;)#&lt;/p&gt;</p></blockquote>
<p>Notice the <span style="color:#800000;">textField()</span> function. This is the CFWheels equivalent of <span style="color:#800000;">&lt;%= f.text_field :phone %&gt;</span>. Rails also has the <span style="color:#800000;">f.label</span> function. I&#8217;m not sure of the advantages of using a helper function for labels. But, this doesn&#8217;t seem to be available in CFWheels &#8212; At least not yet!</p>
<p>By the way, you can get details on any helper function like the textField tag at:</p>
<p><a rel="nofollow" title="CFWheels at code.google.com" target="_blank" href="http://code.google.com/p/cfwheels/wiki/textFieldTag">http://code.google.com/p/cfwheels/wiki/textFieldTag</a></p>
<p>The changes to show.cfm and index.cfm are similar. If you have any trouble, leave me a comment!</p>
<p>I heard a rumor that the Boss wants to add event information to our application. We&#8217;ll look at this next time!</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/gZ2RNbdOlCI" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>CFWheels Scaffolding Basics</title>
         <link>http://www.resultantsys.com/index.php/coldfusion/cfwheels-scaffolding-basics/</link>
         <description>I choose CFWheels as my first ColdFusion framework to learn. I was going to learn ColdBox, but quickly discovered that I would really have to learn Transfer or Reactor and Coldspring at the same time. These may be good tools, but I wanted to focus mostly on mastering the Model View Controller pattern.
I&amp;#8217;ve been really [...]</description>
         <guid isPermaLink="false">http://www.resultantsys.com/?p=26</guid>
         <pubDate>Tue, 11 Aug 2009 05:09:27 -0700</pubDate>
         <content:encoded><![CDATA[<p>I choose CFWheels as my first ColdFusion framework to learn. I was going to learn ColdBox, but quickly discovered that I would really have to learn Transfer or Reactor and Coldspring at the same time. These may be good tools, but I wanted to focus mostly on mastering the Model View Controller pattern.</p>
<p>I&#8217;ve been really pleased with CFWheels. It&#8217;s the ColdFusion answer to Ruby on Rails, and it just makes sense to me!</p>
<p>The documentation is good. Still, for a new learner, some things are missing. So, I thought maybe I can leverage some Rails resources. I found a great book &#8212; Head First Rails. I&#8217;m going to do some posts on translating the book to CFML and to CFWheels. I think this will help my learning and may help others.</p>
<p>From here, I&#8217;m assuming that you know something about web development, CFML, and already have a ColdFusion server running on your computer. If not, this information may be too advanced for you. CFWheels runs great on the development edition of ColdFusion that&#8217;s available from Adobe. Railo is also supported. You can learn more about the requirements at: <a rel="nofollow" title="CFWheels System Requirements" target="_blank" href="http://cfwheels.org/docs/chapter/requirements">http://cfwheels.org/docs/chapter/requirements</a>.</p>
<p>Now on to <strong><a rel="nofollow" title="Head First Rails" target="_blank" href="http://www.amazon.com/gp/product/0596515774?ie=UTF8&amp;tag=distanz&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596515774">Head First Rails</a>, Chapter 1: Really Rapid CFWheels</strong></p>
<p><strong>Page 7: Creating a New A</strong><strong>pplication<br />
</strong></p>
<p>In Rails, you open a command prompt and type <span style="color:#993300;">&gt; rails tickets</span>. This sets up the folder structure for your app.</p>
<p>In CFWheels, you do the same thing by <a rel="nofollow" title="Download CFWheels" target="_blank" href="http://cfwheels.org/download">downloading the CFWheels files</a> and just unzipping them to a folder named <span style="color:#993300;">tickets </span>in your webroot. The name of the <em><strong>folder </strong></em>is <em><strong>very </strong></em>important. CFWheels and Rails both rely on convention instead of configuration. Things have to be named consistently!</p>
<p><strong>Page 14: Creating Tables (Migration)</strong></p>
<p>In Rails, you create tables in the database by going to a command prompt and typing <span style="color:#993300;">&gt; ruby script/generate scaffold tickets &#8230;</span> Then, you have to run a migration by typing <span style="color:#993300;">&gt; rake db.migrate</span>. These two commands also write code for your application! Rails will automatically create Model, View, and Controller files for your new table.</p>
<p>CFWheels handles this a little differently, but you can quickly get to the same place. First, you have to install the Scaffolding plugin.</p>
<ul>
<li><a rel="nofollow" title="Download Scaffolding" target="_blank" href="http://scaffoldwheels.riaforge.org/">Download the scaffolding plugin</a></li>
<li>Save the .zip file in your wwwroot/tickets/plugins folder.</li>
<li>Reload CFWheels by running this URL in your browser: <span style="color:#993300;">http://localhost/tickets/?reload=true</span></li>
<li>CFWheels will automatically unzip and install the file! You&#8217;ll see Scaffold listed as a plugin at the bottom of the page along with other debugging information.</li>
<li><span style="text-decoration:line-through;"><em><strong>NOTE: Apparently there&#8217;s a problem with the Plugin Manager right now. </strong></em>I had to delete the Plugin Manager files from the plugins directory. Then, this process worked for me.</span> I discovered the problem was with my ColdFusion server configuration. I had added a Dump() method to Component.cfc. When Wheels tried to load multiple plug-ins, it saw the duplicated method, and threw an error as a result of the naming conflict.</li>
</ul>
<p>You&#8217;ll only need to do the steps above once. Now, lets use scaffolding to create an app in CFWheels. Instead of using the script/generate syntax, CFWheels expects you to just create your table via a SQL query or whatever database tools you like to use. Most developers know how to do this, and I like this approach better than learning a new syntax in Rails!</p>
<p>Here&#8217;s my Create Table SQL script. This is essentially the same command you type into Rails via script/generate.</p>
<blockquote><p>CREATE TABLE `tickets` (<br />
`id` int(11) NOT NULL auto_increment,<br />
`name` varchar(255) NOT NULL,<br />
`seat_id_seq` varchar(255) NOT NULL,<br />
`address` text NOT NULL,<br />
`price_paid` decimal NOT NULL,<br />
`email_address` varchar(255) DEFAULT NULL,<br />
PRIMARY KEY (`id`)<br />
)</p></blockquote>
<p>Now, it get&#8217;s really easy. Either click the Scaffold link on the bottom of your browser screen, or point your browser to <span style="color:#993300;">http://localhost/tickets/index.cfm?controller=wheels&amp;action=plugins&amp;name=scaffold</span>. This will display the scaffolding plugin screen.</p>
<p>Just enter the name of the table and click Generate. That&#8217;s it! Instant Application. Go to <span style="color:#993300;">http://localhost/tickets/index.cfm?controller=tickets&amp;action=index</span> to see your new application. Rails automatically creates a route, so their URL is simpler, and you can easily do the same thing if you want. For me, when learning, I&#8217;d rather see the controller and action clearly shown in the URL. There&#8217;s always time to switch to pretty URL&#8217;s later on.</p>
<p>Next we&#8217;ll edit the HTML in the view. But, that&#8217;s another post. Please leave a comment if I got something wrong or you like my approach!</p><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/HrkCPBi6SQo" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Announcing WorkingWithCFML.com</title>
         <link>http://www.angry-fly.com/post.cfm/announcing-workingwithcfml-com</link>
         <description>&lt;p&gt;Although there are many downsides to being unemployed, there are a few upsides to it as well. One of which is that you have a TON of time to play with code and learn new things. After almost 3 months between projects now, I started getting the fever to launch something. So I was playing around with &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org"&gt;CFWheels&lt;/a&gt; at that time and decided to throw something together.&lt;/p&gt;
&lt;p&gt;The result is &lt;a rel="nofollow" target="_blank" href="http://workingwithcfml.com"&gt;WorkingWithCFML.com&lt;/a&gt;. Its not nearly feature complete, but I wanted to get something out there and start playing around. Its basically a site that allows CFML developers to create profiles, recommend other developers, etc. The idea is not mine, Most of the functionality is heavily "borrowed" from the Rails site workingwithrails.com. I just thought it would be a cool project and wanted to see how much i could get done with Wheels.&lt;/p&gt;
&lt;p&gt;Currently I have around 45 man hours in the site, that includes bug-fixing the last couple days. Its running on the latest version of &lt;a rel="nofollow" target="_blank" href="http://getrailo.org"&gt;Railo&lt;/a&gt; 3.1.0.026 and was written with version 0.9.3 of &lt;a rel="nofollow" target="_blank" href="http://cfwheels.org"&gt;CFWheels&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;If you are so inclined, create profile and share. If you happen to run into any issues, or if you can think of a feature that you would like added, please let me know. Afterall, I dont have much else to do right now. ;)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/4RDoseWWaYo" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.angry-fly.com/post.cfm/announcing-workingwithcfml-com</guid>
         <pubDate>Fri, 07 Aug 2009 11:30:24 -0700</pubDate>
      </item>
      <item>
         <title>Handling Nested Resources in CFWheels</title>
         <link>http://www.angry-fly.com/post.cfm/handling-nested-resources-in-cfwheels</link>
         <description>&lt;p&gt;Several frameworks these days are including a routing system to make it easy to implement user friendly urls, or as some like to call them, search engine safe urls. These routing systems can also make refactoring much simpler as well if you use them properly. &lt;/p&gt;
&lt;p&gt;I have been playing around with CFWheels lately and was wondering how I could take advantage of nested resources in this framework. Nested resources is something I picked up while working on some Rails projects, its a way to automatically handle related objects in your forms. Let me show you a quick example.&lt;/p&gt;
&lt;p&gt;Say we are building a bug tracker. We have 2 objects, a Projects object and a Ticket object. Here is how the associations are setup.&lt;/p&gt;
&lt;p&gt;
Project.cfc&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;and now our Ticket.cfc&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now normally if you were adding a ticket, you could use a URL like this:&lt;/p&gt;
&lt;p&gt;localhost/tickets/new&lt;/p&gt;
&lt;p&gt;And you could pass in the projectID as a hidden field or something like that to handle the association.&lt;/p&gt;
&lt;p&gt;But, there is a much easier way to handle this. First lets take advantage of the routing system and create a few routes. I like named routes in my applications much better than the defaults. If I ever refactor a controller and rename an action, etc. I can change the route and every link in my site that points to that route is automatically updated for me. Hows that for a time saver?&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;These 3 routes handle the nesting for us. Notice how the project part of the url is always first? Then the nested resource since tickets belong to projects. This URL structure will ensure that our projectID is always available in the params scope. Our URl will now look like this if we are adding a ticket to a project.&lt;/p&gt;
&lt;p&gt;localhost/project/1/tickets/new&lt;/p&gt;
&lt;p&gt;Heres a typical link that would point to our form to create a new ticket.&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;#linkTo(text=&lt;span class='cc_value'&gt;"New Ticket"&lt;/span&gt;, route=&lt;span class='cc_value'&gt;"new_project_ticket"&lt;/span&gt;, projectid=params.projectid)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;To setup our form for the new ticket an automatically populate the projectID hidden field, we can write our controller action like this.&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;That takes advantage of the built-in associations in Wheels and builds the new ticket object through the project object for us. You form would be a standard Wheels form but will automatically have the projectID set in the hidden field for you.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/bbyaUXPKTPA" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.angry-fly.com/post.cfm/handling-nested-resources-in-cfwheels</guid>
         <pubDate>Wed, 15 Jul 2009 14:24:49 -0700</pubDate>
      </item>
      <item>
         <title>Geek Week: Day 5</title>
         <link>http://rip747.wordpress.com/2009/05/13/geek-week-day-5/</link>
         <description>Well Day3 and 4 ended up with me having to do client work and some work for my day job. Those two days were a bust and I should of ended the days with doing some more coding, but afterwards my mind just wasn&amp;#8217;t into it. I&amp;#8217;m learning that this wasn&amp;#8217;t the smartest idea. I [...]&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&amp;blog=295460&amp;post=614&amp;subd=rip747&amp;ref=&amp;feed=1"/&gt;</description>
         <guid isPermaLink="false">http://rip747.wordpress.com/?p=614</guid>
         <pubDate>Wed, 13 May 2009 20:17:16 -0700</pubDate>
         <content:encoded><![CDATA[<p>Well Day3 and 4 ended up with me having to do client work and some work for my day job. Those two days were a bust and I should of ended the days with doing some more coding, but afterwards my mind just wasn&#8217;t into it. I&#8217;m learning that this wasn&#8217;t the smartest idea. I now see why it takes a long time to get things done.</p>
<p>On top of all that, while I was just sitting down to type this out, I saw that the two commits to trunk that I made today weren&#8217;t the smartest changes either and I was asked to revert them, which I did.</p>
<p>I think I&#8217;m going to take a break tomorrow from testing and trying to find bugs since I basically creating my own <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley'/> </p>
<p>Wheels was donated some <a rel="nofollow" target="_blank" href="http://code.google.com/p/cfwheels/issues/detail?id=94&amp;colspec=ID%20Type%20Status%20Milestone%20Owner%20Summary">migration code</a> quite a <a rel="nofollow" target="_blank" href="http://groups.google.com/group/cfwheels/browse_frm/thread/3285bec6c47a345a?tvc=1&amp;q=migrations">while ago from Ryan</a>. One of my goals this weeks was to try to get migrations working. I figured tomorrow I fork the my local repo and see what I can do to get this in.</p>
<br /> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/rip747.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rip747.wordpress.com/614/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/rip747.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rip747.wordpress.com/614/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/rip747.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rip747.wordpress.com/614/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/rip747.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rip747.wordpress.com/614/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/rip747.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rip747.wordpress.com/614/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&blog=295460&post=614&subd=rip747&ref=&feed=1"/><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/0E5VztVpP9A" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/f09f0a0d45c19276540a9899d0e6b667?s=96&amp;amp;amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image" media:title="rip747" />
      </item>
      <item>
         <title>Geek Week Update: Day 2</title>
         <link>http://rip747.wordpress.com/2009/05/10/geek-week-update-day-2/</link>
         <description>Today was WAAAAY more productive then yesterday, way more, even though I went to bed at 6:30am this morning. I had to finish a project for a client and decided that I better get it out of the way before it started to haunt me and dip into my Wheels time.
The entire day was spent [...]&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&amp;blog=295460&amp;post=612&amp;subd=rip747&amp;ref=&amp;feed=1"/&gt;</description>
         <guid isPermaLink="false">http://rip747.wordpress.com/?p=612</guid>
         <pubDate>Sun, 10 May 2009 19:33:21 -0700</pubDate>
         <content:encoded><![CDATA[<p>Today was <strong>WAAAAY</strong> more productive then <a rel="nofollow" target="_blank" href="http://rip747.wordpress.com/2009/05/09/geek-week-update-day-1/">yesterday</a>, way more, even though I went to bed at 6:30am this morning. I had to finish a project for a client and decided that I better get it out of the way before it started to haunt me and dip into my Wheels time.</p>
<p>The entire day was spent revamping the testing framework for the last time (I hope) as I think I finally got it to where I want it to be. I did a bunch of optimizations to the testrunner and the output display. In doing so I discover the beauty of getComponentMetaData().</p>
<p>When running the tests, I had some logic in place that basically would inspect the meta data of the component you wanted to test to see if it is extending the wheels.test base component. There&#8217;s no reason to even waste the time searching for tests to run if the component won&#8217;t even have any and the only way it&#8217;s going to have tests is if it extends the wheels.test base component.</p>
<p>In order to do the check I would use createobject to create an instance of the component and then use getMetaData() to inspect the meta data. To me this seemed kinda dumb and it bothered me that I knew there had to be a better way and that&#8217;s when I found getCompoentMetaData(). Basically this does the same thing as getMetaData() but you don&#8217;t have to waste your time instantiating the component. All you have to do is pass the component path to getComponentMetaData() and it does the work for you and returns the exact same meta data that getMetaData() would. Very handy function indeed.</p>
<p>The other thing that was bothering me was the hackery way I was altering the application.wheels.modelPath and the application.wheels.modelComponentPath so that I could call test models with the model() function. Before I was performing my half ass hack inside the test cases themselves in the setup(), but I knew that this was going to get messy. It finally dawned on me to just add them into the testing framework itself for now. Later on we&#8217;ll think of a better way to pass a component path to model(), but as for right now this prevents me from having to do the hack manually and even though it&#8217;s still a hack, it&#8217;s a bit cleaner.</p>
<p>After finally getting the testing framework ironed out, I moved on to refactoring all the tests to get more output and separate the multiple calls to assert() I was doing in each test. All and all, Wheels not has 61 tests in 19 cases. Not bad for a start. It&#8217;s definitely <strong>NOT</strong> where I wanted to be at this point, but there&#8217;s no sense in rushing either.</p>
<p>Tonight I &#8216;m going to do some research into designing a testing database that I can use to properly test the model layer. I&#8217;m sure I&#8217;ll be totally OCD about the way it&#8217;s designed and will spend most of the day second guessing myself over and over. One of the ideas to get around this was was to look at maybe using the <a rel="nofollow" target="_blank" href="http://blogcfc.riaforge.org">blogCFC</a> database since it&#8217;s already been ported to like <strong>EVERY RDBMS</strong> engine out there (go Ray!). We&#8217;ll have to see.</p>
<p>Will update again tomorrow.</p>
<br /> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/rip747.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rip747.wordpress.com/612/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/rip747.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rip747.wordpress.com/612/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/rip747.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rip747.wordpress.com/612/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/rip747.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rip747.wordpress.com/612/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/rip747.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rip747.wordpress.com/612/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&blog=295460&post=612&subd=rip747&ref=&feed=1"/><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/xSnVO2RiACM" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/f09f0a0d45c19276540a9899d0e6b667?s=96&amp;amp;amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image" media:title="rip747" />
      </item>
      <item>
         <title>Geek Week Update: Day 1</title>
         <link>http://rip747.wordpress.com/2009/05/09/geek-week-update-day-1/</link>
         <description>So how is it going so far? HORRIBLE!
Well first off, I updated my cygwin install with the latest version of git and subervion-perl a couple of weeks ago and when I went to rebase with the CFWheels repo, it would die. Only one commit at a time would be pulled down and then errors all [...]&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&amp;blog=295460&amp;post=608&amp;subd=rip747&amp;ref=&amp;feed=1"/&gt;</description>
         <guid isPermaLink="false">http://rip747.wordpress.com/?p=608</guid>
         <pubDate>Sat, 09 May 2009 18:27:58 -0700</pubDate>
         <content:encoded><![CDATA[<p>So how is it going so far? <strong>HORRIBLE!</strong></p>
<p>Well first off, I updated my cygwin install with the latest version of git and subervion-perl a couple of weeks ago and when I went to rebase with the <a rel="nofollow" target="_blank" href="http://www.cfwheels.org/">CFWheels</a> repo, <a rel="nofollow" target="_blank" href="http://rctay.spaces.live.com/blog/cns!59D3BFCD027B09E5!792.entry">it would die</a>. Only one commit at a time would be pulled down and then errors all over the place. After searching on google I found out that this is a known problem with the latest subversion-perl so I had to downgrade. That took me about an hour to figure out. I could have <a rel="nofollow" target="_blank" href="http://thelilaeanbellis.com/shared/git-handle.patch">applied a patch</a> to the version that I had already installed, but I wasn&#8217;t in the mood to be jerking around like that and I figured I&#8217;d leave that stuff to the experts.</p>
<p>After that I was finally able to sync with the svn repo and get everything up and running.</p>
<p>With my confidence in the toliet, I started writing tests and finding bugs that needed to be fixed. When I found <a rel="nofollow" target="_blank" href="http://code.google.com/p/cfwheels/source/detail?r=2533">my first bug</a>, I decided to use trusty old tortoisesvn to write the patch and get it into trunk since I had local checkout already. That went well, but it wasn&#8217;t the best way to do it. I should be using git and git-svn to do this stuff and by using tortise I had to litterally duplicate the patch that I already had in git. <strong>NOT SMART!</strong></p>
<p>Anyhow, I continued coding and soon found <a rel="nofollow" target="_blank" href="http://code.google.com/p/cfwheels/source/detail?r=2535#">another bug</a> that needed some attention. &#8220;<strong>WHAT LUCK!</strong>&#8221; I thought because now I could submit the patch through git-svn like I should have been doing all along. <strong>BIG MISTAKE!</strong> Let&#8217;s just say that I fought with this for almost two hours, because I kept screwing up the workflow left and right and having to <strong>git reset &#8211;hard</strong>. Thank God that <a rel="nofollow" target="_blank" href="http://stackoverflow.com">stackoverflow.com</a> exists and after reading carefully, <a rel="nofollow" target="_blank" href="http://stackoverflow.com/questions/190431/is-git-svn-dcommit-after-merging-in-git-dangerous">the solution that I found</a>, and some playing around, I finally got the workflow down and was able to commit the patch.</p>
<p>All and all, I&#8217;m having a rough time. Maybe I&#8217;m just off my game today since I have a lot of other things in my head right now and my mental state isn&#8217;t in sync. No matter, tomorrow is another day and more coding.</p>
<p>Tomorrow I&#8217;m planning on completing the creation of a test database so that I can test out all the functions that depend on models and cleanning up the tests.</p>
<p>About the tests. Right now, the way I&#8217;m writing tests, I&#8217;ll have more then one assert in each test. From what I&#8217;ve seen and researched how other people write tests, this is the wrong way. You should have one assert for each test. After writing a bunch of them, this makes sense. Reason being is because if you have 5 asserts in one test and one of the asserts fails, the whole test fails. Now currently this isn&#8217;t a problem because I know it&#8217;s the last assert I wrote that failed. However, down the road I can see this becoming a problem when we&#8217;re trying to figure out where the test is failing. It&#8217;s not like I want the rest of the team to be commenting out asserts until they find the one thats failing. I come to the conclusion at this point that I&#8217;m going to have to rewrite all the tests I&#8217;ve created into this new format. Oh well it&#8217;s what learning is all about and the reason I love doing open source stuff.</p>
<p>I&#8217;ll update again tomorrow.</p>
<br /> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/rip747.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rip747.wordpress.com/608/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/rip747.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rip747.wordpress.com/608/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/rip747.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rip747.wordpress.com/608/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/rip747.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rip747.wordpress.com/608/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/rip747.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rip747.wordpress.com/608/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&blog=295460&post=608&subd=rip747&ref=&feed=1"/><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/A5pXWq60PpM" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/f09f0a0d45c19276540a9899d0e6b667?s=96&amp;amp;amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image" media:title="rip747" />
      </item>
      <item>
         <title>CFWheels Geek Week scheduled</title>
         <link>http://rip747.wordpress.com/2009/04/27/cfwheels-geek-week-scheduled/</link>
         <description>I finally got the dates to take off and GEEK OUT ON WHEELS (I like the way that sounds)! I&amp;#8217;ll be officially off from May 9th &amp;#8211; May 17th.
Again, if you want to help in anyway, either use google code or github to check out the code. &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&amp;blog=295460&amp;post=603&amp;subd=rip747&amp;ref=&amp;feed=1"/&gt;</description>
         <guid isPermaLink="false">http://rip747.wordpress.com/?p=603</guid>
         <pubDate>Mon, 27 Apr 2009 07:59:58 -0700</pubDate>
         <content:encoded><![CDATA[<p>I finally got the dates to take off and <a rel="nofollow" target="_blank" href="http://cfwheels.org/"><strong>GEEK OUT ON WHEELS</strong></a> (I like the way that sounds)! I&#8217;ll be officially off from May 9th &#8211; May 17th.</p>
<p>Again, if you want to help in anyway, either use <a rel="nofollow" target="_blank" href="http://code.google.com/p/cfwheels/">google code</a> or <a rel="nofollow" target="_blank" href="http://github.com/rip747/cfwheels/tree/master">github</a> to check out the code.</p>
<br /> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/rip747.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rip747.wordpress.com/603/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/rip747.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rip747.wordpress.com/603/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/rip747.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rip747.wordpress.com/603/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/rip747.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rip747.wordpress.com/603/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/rip747.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rip747.wordpress.com/603/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&blog=295460&post=603&subd=rip747&ref=&feed=1"/><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/iMma61u77yU" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/f09f0a0d45c19276540a9899d0e6b667?s=96&amp;amp;amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image" media:title="rip747" />
      </item>
      <item>
         <title>CFWheels: 0.9.1 now available</title>
         <link>http://rip747.wordpress.com/2009/04/27/cfwheels-091-now-available/</link>
         <description>Quick annoucement that we have just released version 0.9.1 of CFWheels! &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&amp;blog=295460&amp;post=601&amp;subd=rip747&amp;ref=&amp;feed=1"/&gt;</description>
         <guid isPermaLink="false">http://rip747.wordpress.com/?p=601</guid>
         <pubDate>Mon, 27 Apr 2009 07:47:25 -0700</pubDate>
         <content:encoded><![CDATA[<p>Quick annoucement that we have just released version <a rel="nofollow" target="_blank" href="http://www.cfwheels.org/download">0.9.1</a> of <a rel="nofollow" target="_blank" href="http://www.cfwheels.org/">CFWheels</a>!</p>
<br /> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/rip747.wordpress.com/601/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rip747.wordpress.com/601/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godelicious/rip747.wordpress.com/601/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rip747.wordpress.com/601/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gostumble/rip747.wordpress.com/601/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rip747.wordpress.com/601/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/godigg/rip747.wordpress.com/601/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rip747.wordpress.com/601/"/></a> <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/goreddit/rip747.wordpress.com/601/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rip747.wordpress.com/601/"/></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rip747.wordpress.com&blog=295460&post=601&subd=rip747&ref=&feed=1"/><img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/r-JozY4eSaI" height="1" width="1"/>]]></content:encoded>
         <media:content url="http://1.gravatar.com/avatar/f09f0a0d45c19276540a9899d0e6b667?s=96&amp;amp;amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image" media:title="rip747" />
      </item>
      <item>
         <title>Railo really is fast!</title>
         <link>http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/railo-really-is-fast--198</link>
         <description>I&amp;apos;ve had a few hours spare so thought I&amp;apos;d see for myself if Railo is as fast as I&amp;apos;ve heard. Well, after running a few of my own mini applications I can backup the claims.&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/CCXiFCuGwss" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/198</guid>
         <pubDate>Thu, 02 Apr 2009 12:52:00 -0700</pubDate>
      </item>
      <item>
         <title>Cfwheels Sample application</title>
         <link>http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/cfwheels-sample-application-145</link>
         <description>This is a really simple example of getting and displaying data from a database using the ColdFusion of Wheels framework. I should point out that I am not an expert, this is just me learning!&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/-FUMAQxmWls" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/145</guid>
         <pubDate>Tue, 23 Sep 2008 06:29:00 -0700</pubDate>
      </item>
      <item>
         <title>Dynamic Sub-Domain Redirect</title>
         <link>http://riahaiku.blogspot.com/2008/09/dynamic-sub-domain-redirect.html</link>
         <description>&lt;p&gt;Ever wanted an easy to implement, dynamic sub-domain redirect built into your Coldfusion project? Well, here's something I've done using Coldfusion on Wheels' easy-to-append Application.cfc functions, along with a Controller that handles the business logic for the handed-in sub-domain.&lt;/p&gt;
&lt;p&gt;Edit the &lt;code&gt;events&lt;/code&gt;'s &lt;code&gt;onrequeststart.cfm&lt;/code&gt; to have the following:&lt;/p&gt;
&lt;ol&gt; &lt;li&gt;A variable to store the current CGI.SERVER_NAME&lt;/li&gt; &lt;li&gt;A regex (provided below) to parse the data&lt;/li&gt; &lt;li&gt;An if-test to evaluate the results after parsing&lt;/li&gt; &lt;li&gt;A redirect/cflocation to the action of choice&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It could look something like this:&lt;/p&gt;
&lt;p style="font:9.0px Monaco;"&gt;&lt;span style=""&gt;&amp;lt;cfset testPath = ReReplace(CGI.SERVER_NAME, "&amp;#92;.&amp;#92;w*&amp;#92;w*", "", "all")&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font:9.0px Monaco;"&gt;&lt;span style=""&gt;&amp;lt;cfif testPath DOES NOT CONTAIN "www" and testPath DOES NOT CONTAIN "your_domain_here" &amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font:9.0px Monaco;"&gt;&lt;span style=""&gt;&amp;lt;cflocation url="http://www.your_domain_here.com/index.cfm/controller/?your_var=#testPath#"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="font:9.0px Monaco;"&gt;&amp;lt;/cfif&amp;gt;&lt;/p&gt;
&lt;p&gt;That's it! Just make sure you have a controller that actually does something (like display certain data based on the handed-in dynamic sub-domain) and you're good to go.&lt;/p&gt;
&lt;p&gt;Thanks to Matthew over at the &lt;a rel="nofollow" target="_blank" href="http://denverdev.blogspot.com/2008/09/dns-tertiary-subdomain-tricks-for-web.html" title="Devnver Dev"&gt;Denver Dev&lt;/a&gt; blog for the help on the regex.&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/626481988039614050-1713333935790822543?l=riahaiku.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/9DhD1hCq-Js" height="1" width="1"/&gt;</description>
         <author>Jordan M</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-626481988039614050.post-1713333935790822543</guid>
         <pubDate>Sat, 06 Sep 2008 09:09:00 -0700</pubDate>
      </item>
      <item>
         <title>Simplified Scope with CFW</title>
         <link>http://riahaiku.blogspot.com/2008/09/simplified-scope-with-cfw.html</link>
         <description>&lt;p&gt;So as of the start of my entries here, I've really been focused on CFW (Coldfusion Wheels). As I've continued to review and play with some application scenarios, I'm finding a number of really handy simplifications CFW has introduced that trump the standard approach of non-framework based Coldfusion deployments.&lt;/p&gt;
&lt;p&gt;The one that got my attention today was the &lt;code&gt;param&lt;/code&gt; struct. Rather than having a URL "scope" and a "form" scope and some CGI variables (for identifying pathing domain, etc.), everything's tossed into the &lt;code&gt;param&lt;/code&gt; for CFW.&lt;/p&gt;
&lt;p&gt;
Not only does this brain damage of persisting variables from different structures, it just really cleans up code.
&lt;/p&gt;
&lt;p&gt;
Go ahead, check it out: &lt;a rel="nofollow" target="_blank" href="http://www.cfwheels.com/docs/chapter/request-handling" title="The Params Struct in CFW"&gt;The Params Struct in CFW&lt;/a&gt;
&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/626481988039614050-3819258137969949671?l=riahaiku.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/-YBw7izzs1M" height="1" width="1"/&gt;</description>
         <author>Jordan M</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-626481988039614050.post-3819258137969949671</guid>
         <pubDate>Sat, 06 Sep 2008 08:55:00 -0700</pubDate>
      </item>
      <item>
         <title>CFWheels Starters</title>
         <link>http://riahaiku.blogspot.com/2008/09/cfwheels-starters.html</link>
         <description>&lt;p&gt;The most important aspect of the Coldfusion on Wheels (CFW) framework is the MVC--model view controller--architecture and the highly extendable aspects that CFW offers. Binding views and controls is as easy as implementing a Coldfusion Component (CFC) within the "controllers" folder (as of version 0.8.1) and a matching CFM page in the "views" folder.&lt;/p&gt;
&lt;p&gt;Where things really get interesting is the flexibility of Coldfusion's Application.cfc as implemented by CFW and how this can affect the view's content and rendering. Whereas a usual implementation of the Application.cfc would include a verbose document defining functions for the onApplicationStart, onError, onRequestStart, and so on, deployment of the CFW's Application.cfc is left alone.&lt;/p&gt;
&lt;p&gt;As I've discovered, rather then messing with the CFW core files (in case of a necessary upgrade), you can simply drop in a Application.cfc corresponding function-named CFC within the CFW's "events" directory and the code will be called along with the same-named function of the Application.cfc.&lt;/p&gt;
&lt;p&gt;Documentation on this can be found &lt;a rel="nofollow" target="_blank" href="http://www.cfwheels.com/docs/chapter/event-handlers" title="CF on Wheels Documentation of Event Handlers"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now that rocks!&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/626481988039614050-2255297826542305244?l=riahaiku.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/5uHHAikuRAc" height="1" width="1"/&gt;</description>
         <author>Jordan M</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-626481988039614050.post-2255297826542305244</guid>
         <pubDate>Fri, 05 Sep 2008 09:05:00 -0700</pubDate>
      </item>
      <item>
         <title>Coldfusion on Wheels</title>
         <link>http://riahaiku.blogspot.com/2008/09/coldfusion-on-wheels.html</link>
         <description>&lt;p&gt;I recently was searching for a quick, easy to implement Coldfusion framework, and came across &lt;a rel="nofollow" target="_blank" href="http://www.cfwheels.com" title="CF on Wheels"&gt;CF on Wheels&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Although it's not in a 1.0 release yet, the framework looks extremely promising. I've been working with it this week and from initial download to "hello world" tests of the deployment, I'm impressed.&lt;/p&gt;
&lt;p&gt;Whether you're running on a dedicated (Apache or IIS) server or a shared environment, the tidy URL writing and SEO-friendly pathing is a real clincher.&lt;/p&gt;
&lt;p&gt;More to come.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/626481988039614050-5808192689777347133?l=riahaiku.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/U51s3jiCDPU" height="1" width="1"/&gt;</description>
         <author>Jordan M</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-626481988039614050.post-5808192689777347133</guid>
         <pubDate>Fri, 05 Sep 2008 07:43:00 -0700</pubDate>
      </item>
      <item>
         <title>What it's all about</title>
         <link>http://riahaiku.blogspot.com/2008/09/what-it-all-about.html</link>
         <description>&lt;p&gt;Welcome to the RIA Haiku blog. From here on out I'll be posting about the ins, and outs, of RIA development, the technologies I'm currently exploring, and tips I've come across which have helped in my software development career.&lt;/p&gt;
&lt;p&gt;As for the name, posts will focus on being concise and in three piece aspects.&lt;/p&gt;
&lt;p&gt;Look forward to the first post soon.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/626481988039614050-2531526945100790031?l=riahaiku.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/Klyv4ECOBPo" height="1" width="1"/&gt;</description>
         <author>Jordan M</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-626481988039614050.post-2531526945100790031</guid>
         <pubDate>Fri, 05 Sep 2008 07:38:00 -0700</pubDate>
      </item>
      <item>
         <title>ColdFusion on Wheels - table relationships</title>
         <link>http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/coldfusion-on-wheels-table-relationships-87</link>
         <description>If you have two tables in your database that have a one to many relationship then you need to set up the relationship between the two in ColdFusion on Wheels.For example if you have a posts table and a comments table (Note that ColdFusion on Wheels&amp;amp;hellip&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/cv3yTqTGRtg" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/87</guid>
         <pubDate>Wed, 28 May 2008 08:04:00 -0700</pubDate>
      </item>
      <item>
         <title>Coldfusion on wheels</title>
         <link>http://www.cfframeworks.com/blog/index.cfm/2008/4/23/Coldfusion-on-wheels</link>
         <description>As &lt;a rel="nofollow" target="_blank" href='http://www.forta.com/blog/index.cfm/2008/4/23/ColdFusion-On-Wheels-7-Beta-Released'&gt;Mr Forta&lt;/a&gt; has pointed out over on his blog the &lt;a rel="nofollow" target="_blank" href='http://www.cfwheels.com/'&gt;CFWheels&lt;/a&gt; chaps have released an update to their framework. This framework has been quite for a while so im looking forward to checking it out again. &lt;blockquote&gt; ColdFusion on Wheels provides fast application development, a great organization system for your code, and is just plain fun to use. One of our biggest goals is for you to be able to get up and running with Wheels quickly. We want for you to be able to learn it as rapidly as it is to write applications with it.
&lt;/blockquote&gt; &lt;a rel="nofollow" target="_blank" href='http://www.cfwheels.com/blog/'&gt;Chris has blogged here whats new&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/34FCqkb4nd0" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.cfframeworks.com/blog/index.cfm/2008/4/23/Coldfusion-on-wheels</guid>
         <pubDate>Wed, 23 Apr 2008 15:56:00 -0700</pubDate>
         <category>ColdFusion on Wheels</category>
      </item>
      <item>
         <title>ColdFusion on Wheels 0.7 released</title>
         <link>http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/coldfusion-on-wheels-0-7-released-69</link>
         <description>CFWheels, the ColdFusion framework inspired by Ruby on Wheels has just reached version 0.7. I&amp;apos;ve just been reading the docs and really like some of the features it has. It is an MVC framework and as with all frameworks it has it&amp;apos;s strengths and weakn&amp;amp;hellip&lt;img src="http://feeds.feedburner.com/~r/cfwheels/bloggers/~4/ONSNgjIly00" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/69</guid>
         <pubDate>Wed, 23 Apr 2008 10:46:00 -0700</pubDate>
      </item>
   </channel>
</rss><!-- fe5.pipes.re3.yahoo.com uncompressed/chunked Sat Mar 13 07:48:37 PST 2010 -->
