<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0" xml:base="http://planetcakephp.org">
<channel>
 <title>Planet CakePHP</title>
 <link>http://planetcakephp.org</link>
 <description>Aggregating all CakePHP-related articles, blog posts and news.</description>
 <language>en</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/planet-cakephp-aggregator-all" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="planet-cakephp-aggregator-all" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">planet-cakephp-aggregator-all</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
 <title>【KtaiLibrary】Ktai Library勉強会楽しかった！</title>
 <link>http://blog.ecworks.jp/archives/1133</link>
 <description>&lt;p&gt;&lt;a href="http://blog.ecworks.jp/wp-content/uploads/2009/03/icon_ktai.png"&gt;&lt;/a&gt;昨晩、「Ktai Library勉強会＠関東」がE2さんにて行われました。&lt;br /&gt;
まずはお集まりいただいた皆様＆スタッフの皆様どうもお疲れ様＆ありがとうございました！&lt;br /&gt;
CakePHP関連のイベントは色々ありましたが、1冊の本がベースで、しかもそれに準じて開発していく形式のイベントは今回初めてだったため、大変におもしろかったです。なんというか、従来のカンファレンス形式は「聞くだけ」なのに対し、自分で手を動かす「ワークショップ」形式は達成感のようなものが得られる点、そして本をベースにすることにより、解説を聞くことで作業が中断してしまうことが無く自分主導で進捗が得られる点にメリットがあるかなーと感じました。逆に、開催中は大変に静かになるため、個人的には全く落ち着かないのですが(笑)。&lt;br /&gt;
誤植関係が良く見つかってまあお恥ずかしい限りですが、それとは別に、また例によって環境依存系のトラブルが多発しまして、進捗がなかなか得られなかった方もいらっしゃいました。そのトラブルとは、「Firefox3.6 &amp;amp; FireMobileSimulator1.1.10でdocomo・au表示の際にバイナリ絵文字が表示されない」というもので、Windows, Mac関係なしに出ていました。バイナリではなくて数値表現にすると出てくるため、ブラウザ内で表示トラブルだと思うのですが…&lt;br /&gt;
まあ2時間では限界があり、結局セットアップで終わってしまった方が多かったのではないかと思いますが、とりあえず皆さん絵文字が表示できていたみたいなのでホッと胸をなで下ろした感じです。&lt;br /&gt;
後半は懇親会というか、ピザ＆ビール片手に雑談会でした。&lt;br /&gt;
CakePHP1.3の新機能系の話や、symfonyやCodeIgniterとCakeとの思想の違いのような話、Cakeの未来はどうなる？的な話等々で盛り上がりました。&lt;br /&gt;
そして、当方でざっくりと「Ktai Libraryの今後について」をご紹介。&lt;br /&gt;
詳細についてはまたブログの方で書かせていただきますが、現在開発を進めている0.3の話などをさせていただきました。&lt;br /&gt;
そしてkaz_29さんの方から、現在目下制作中の「ExtJSプラグイン」ですがこれが大変に素晴らしい！ブラウザOSっぽいことが出来たりするのですが、Cakeのアプリのユーザインターフェースががらりと変わりそうなイノベーションを感じる！&lt;br /&gt;
気がつけば終電を気にしなければならない時間まで経過してしまいましたが、最後に記念撮影をして終わりました。&lt;br /&gt;
&lt;a href="http://blog.ecworks.jp/wp-content/uploads/2010/03/cc607fdb5b6fd16c0166878ecd71c40e.jpg"&gt;&lt;/a&gt;参加メンバー全員で記念撮影&lt;br /&gt;
まあ運営側にはいくつか課題点はあるのですが、こういった勉強会スタイルはもっと数が増えたらいいなと思いました。普通にCakePHP勉強会をやっても「さて何を勉強しよう」みたいになっちゃうと思いますが、ある程度的が絞れるので。スタッフ間で「Model勉強会、とかみたいにしても十分需要あるかもね」みたいな話とかもしました。まあ今回もたくさんある手法の1つだと思うのですが、いろいろなものを試してみたいと思います。&lt;br /&gt;
まあそんなわけで次もあると思うので、今回参加された方、逃した方も是非宜しくお願いします。&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/J6iB7K6qiMU" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/japanese">日本語</category>
 <pubDate>Tue, 09 Mar 2010 02:53:33 +0000</pubDate>
 <dc:creator>ECWorks Blog » CakePHP</dc:creator>
 <guid isPermaLink="false">4812 at http://planetcakephp.org</guid>
</item>
<item>
 <title>Debugging a Browser Redirect Loop</title>
 <link>http://stackoverflow.com/questions/2404977/debugging-a-browser-redirect-loop</link>
 <description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;I am using CakePHP with the Auth and ACL components.  My page loads fine for non-registered users, but if I try to log in as a registered user I get an infinite redirect loop in the browser.&lt;/p&gt;
&lt;p&gt;I am sure that this is some sort of permissions problem, but the problem exists even for users who have permissions for everything.  The only way to prevent this behavior is to allow '*' in my AppController's beforeFilter method.&lt;/p&gt;
&lt;p&gt;What is the best way to debug this sort of problem?&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/Pnfw03Hq0Rc" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Mon, 08 Mar 2010 21:41:57 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4815 at http://planetcakephp.org</guid>
</item>
<item>
 <title>CakePHP : signets remarquables du 04/03/2010 au 08/03/2010</title>
 <link>http://cherryonthe.popnews.com/2010/03/08/cakephp-signets-remarquables-du-04032010-au-08032010/</link>
 <description>&lt;p&gt;Quelques bonnes adresses CakePHP vues entre le 04/03/2010 et le 08/03/2010:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;a href="http://bakery.cakephp.org/articles/view/introducing-vam-cart" title="Introducing VaM Cart (Articles) | The Bakery, Everything CakePHP"&gt;Introducing VaM Cart (Articles) | The Bakery, Everything CakePHP&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Ouah, un concurrent basé sur CakePHP à Magento ou Prestashop ?? Faut voir…&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://www.milesj.me/forum/topics/view/new-versions-uploader-2-5-gears-2-0" title="Uploader 2.5, Gears 2.0"&gt;New Versions: Uploader 2.5, Gears 2.0&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Très actif, le jeune Miles Johnson annonce la sortie d'une mise à jour en version 2.0 de son plugin d'upload pour CakePHP.&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://jamienay.com/2010/03/copyable-behavior-for-cakephp-1-3-recursive-record-copying/" title="Recursive Record Copying"&gt;Copyable Behavior for CakePHP 1.3: Recursive Record Copying&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Jamie Nay offre à la communauté un behavior permettant la copie récursive d'un enregistrement. Potentiellement très utile.&lt;/dd&gt;
&lt;dt&gt;&lt;a href="http://www.milesj.me/forum/topics/view/new-version-forum-1-8-finally" title="Forum 1.8 (Finally) !"&gt;Milesj.me Support Forum - 	Forum » Announcements » New Version: Forum 1.8 (Finally) !&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Le jeune et brillant Miles annonce la version 1.8 de son plugin de forum.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Plus sur &lt;a href="http://delicious.com/djenvert/cakephp" title="cakephp"&gt;ma page delicious  CakePHP&lt;/a&gt;.&lt;br /&gt;
à lire également&lt;/p&gt;
&lt;ul class="related_post"&gt;
&lt;li&gt;29 janvier 2010 — &lt;a href="http://cherryonthe.popnews.com/2010/01/29/cakephp-signets-remarquables-du-25012010-au-29012010/" title=" signets remarquables du 25/01/2010 au 29/01/2010"&gt;CakePHP : signets remarquables du 25/01/2010 au 29/01/2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2 mars 2010 — &lt;a href="http://cherryonthe.popnews.com/2010/03/02/cakephp-signets-remarquables-du-17022010-au-02032010/" title=" signets remarquables du 17/02/2010 au 02/03/2010"&gt;CakePHP : signets remarquables du 17/02/2010 au 02/03/2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;17 janvier 2010 — &lt;a href="http://cherryonthe.popnews.com/2010/01/17/cakephp-signets-remarquables-du-12012010-au-17012010/" title=" signets remarquables du 12/01/2010 au 17/01/2010"&gt;CakePHP : signets remarquables du 12/01/2010 au 17/01/2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;11 janvier 2010 — &lt;a href="http://cherryonthe.popnews.com/2010/01/11/cakephp-signets-remarquables-du-07012010-au-11012010/" title=" signets remarquables du 07/01/2010 au 11/01/2010"&gt;CakePHP : signets remarquables du 07/01/2010 au 11/01/2010&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/laDoVyq0XyM" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/french">Français</category>
 <pubDate>Mon, 08 Mar 2010 19:00:59 +0000</pubDate>
 <dc:creator>Guillaume</dc:creator>
 <guid isPermaLink="false">4807 at http://planetcakephp.org</guid>
</item>
<item>
 <title>How can I find all records for a model without doing a long list of "OR" conditions?</title>
 <link>http://stackoverflow.com/questions/2402059/how-can-i-find-all-records-for-a-model-without-doing-a-long-list-of-or-conditio</link>
 <description>&lt;p&gt;I'm having trouble composing a CakePHP find() which returns the records I'm looking for.&lt;/p&gt;
&lt;p&gt;My associations go like this:&lt;/p&gt;
&lt;p&gt;User -&gt;(has many)-&gt; Friends ,&lt;br /&gt;&lt;br /&gt;
User -&gt;(has many)-&gt; Posts&lt;/p&gt;
&lt;p&gt;I'm trying to display a list of all a user's friends recent posts, in other words, list every post that was created by a friend of the current user logged in.&lt;/p&gt;
&lt;p&gt;The only way I can think of doing this is by putting all the user's friends' user_ids in a big array, and then looping through each one, so that the find() call would look something like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$posts = $this-&gt;Post-&gt;find('all',array(
            'conditions' =&gt; array(
                'Post.user_id' =&gt; array(
                    'OR' =&gt; array(
                        $user_id_array[0],$user_id_array[1],$user_id_array[2] # .. etc
                    )
                )           
            )
        ));
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I get the impression this isn't the best way of doing things as if that user is popular that's a lot of OR conditions. Can anyone suggest a better alternative?&lt;/p&gt;
&lt;p&gt;To clarify, here is a simplified version of my database:&lt;/p&gt;
&lt;p&gt;"Users" table&lt;br /&gt;&lt;br /&gt;
id&lt;br /&gt;&lt;br /&gt;
username&lt;br /&gt;&lt;br /&gt;
etc  &lt;/p&gt;
&lt;p&gt;"Friends" table&lt;br /&gt;&lt;br /&gt;
id&lt;br /&gt;&lt;br /&gt;
user_id&lt;br /&gt;&lt;br /&gt;
friend_id&lt;br /&gt;&lt;br /&gt;
etc  &lt;/p&gt;
&lt;p&gt;"Posts" table&lt;br /&gt;&lt;br /&gt;
id&lt;br /&gt;&lt;br /&gt;
user_id&lt;br /&gt;&lt;br /&gt;
etc  &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/lT3vGAYjrJY" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Mon, 08 Mar 2010 14:42:30 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4814 at http://planetcakephp.org</guid>
</item>
<item>
 <title>Problem in integrating Wordpress blog's in Cakephp Website</title>
 <link>http://stackoverflow.com/questions/2400816/problem-in-integrating-wordpress-blogs-in-cakephp-website</link>
 <description>&lt;p&gt;Hello Everyone,&lt;br /&gt;
I was working on a site of Cakephp which was successfully delivered.But recently Client again appered and asked me to put the Wordpress blog in it,to cover up the Blogging thing in his site.He wants to share the authentication between the Cakephp and WP.Whoever registers in his site,then Logins in it and if he clicks on the Blog Tab,he must be redirected to the WP blog with the session still there.After some googling I have installed it in /app/webroot/blog folder but I am not able to edit the .htaccess file.&lt;br /&gt;
Please help me in the right direction,that how to share the authentication betwenn Cake Php and Wordpress, and the second one how to customize the .htaccess file so that URL's look good.&lt;br /&gt;
 Thanks in advance..!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/XhxnktYlUFI" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Mon, 08 Mar 2010 11:09:36 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4817 at http://planetcakephp.org</guid>
</item>
<item>
 <title>OpenInviter for CakePHP</title>
 <link>http://bakery.cakephp.org/articles/view/openinviter-for-cakephp-2</link>
 <description>&lt;p&gt;A few months ago, I've published a case study on the bakery about a website made with Cake.&lt;/p&gt;
&lt;p&gt; 	 		&lt;a href="http://bakery.cakephp.org/articles/view/unaneem-com-a-community-website-built-on-cakephp-with-extensive-use-of-ajax" title="http://bakery.cakephp.org/articles/view/unaneem-com-a-community-website-built-on-cakephp-with-extensive-use-of-ajax"&gt;http://bakery.cakephp.org/articles/view/unaneem-com-a-community-website-...&lt;/a&gt; 	 &lt;/p&gt;
&lt;p&gt;	As I listed the components I used, i spoke of an OpenInviter component for CakePHP. A lot of people asked more informations about it. &lt;/p&gt;
&lt;p&gt;	The thing is that the OpenInviter tool evolves very fast (a new version every 2-3 days) so it's hard to disclose a stable CakePHP version component. &lt;/p&gt;
&lt;p&gt;	Whatever, I decided to disclose my current version and hope that the community will contribute to make it stable. So here it is...&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/j1bcIyDCKnc" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Mon, 08 Mar 2010 08:07:42 +0000</pubDate>
 <dc:creator>The Bakery</dc:creator>
 <guid isPermaLink="false">4804 at http://planetcakephp.org</guid>
</item>
<item>
 <title>Introducing VaM Cart</title>
 <link>http://bakery.cakephp.org/articles/view/introducing-vam-cart</link>
 <description>&lt;p&gt;VaM Cart - Free, Open Source CakePHP Based Shopping Cart.&lt;/p&gt;
&lt;p&gt;Official Site - &lt;a href="http://vamcart.com/" title="http://vamcart.com/"&gt;http://vamcart.com/&lt;/a&gt;&lt;br /&gt;
Online Demo - &lt;a href="http://vamcart.com/demo/" title="http://vamcart.com/demo/"&gt;http://vamcart.com/demo/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;    * Easy Installation.&lt;br /&gt;
    * CSS, JS minify and compress.&lt;br /&gt;
    * SEO - Search Engine Optimization.&lt;br /&gt;
    * Unlimited Categories, Products.&lt;br /&gt;
    * CakePHP, MVC, Smarty.&lt;br /&gt;
    * Multi Language, Multi Currency.&lt;br /&gt;
    * Templatable.&lt;br /&gt;
    * Open Source.&lt;br /&gt;
    * Automatic Image Resize.&lt;br /&gt;
    * Product Reviews.&lt;br /&gt;
    * Coupons...&lt;/p&gt;
&lt;p&gt;Join Us.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/ok5Usjp1DTc" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Mon, 08 Mar 2010 07:49:00 +0000</pubDate>
 <dc:creator>The Bakery</dc:creator>
 <guid isPermaLink="false">4805 at http://planetcakephp.org</guid>
</item>
<item>
 <title>Copyable Behavior</title>
 <link>http://bakery.cakephp.org/articles/view/copyable-behavior</link>
 <description>&lt;p&gt;Copyable Behavior adds the ability to copy a model record, including all hasMany and hasAndBelongsToMany&lt;br /&gt;
associations. Copyable relies on Containable behavior, which this behavior will attach on the fly as needed. HABTM relationships are just duplicated in the join table, while hasMany and hasOne records are recursively copied as well.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/OFkzhYaDjOQ" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Mon, 08 Mar 2010 07:47:47 +0000</pubDate>
 <dc:creator>The Bakery</dc:creator>
 <guid isPermaLink="false">4806 at http://planetcakephp.org</guid>
</item>
<item>
 <title>The value of a simple release process</title>
 <link>http://mark-story.com/posts/view/the-value-of-a-simple-release-process?utm_source%3Drss</link>
 <description>&lt;p&gt;I’ve been doing many of the CakePHP releases, since “the great framework apocalypse of imminent doom”.  Between then and now, CakePHP has had quite a few releases. During these past few months, I’ve really begun to understand the value of a simple release process.  When I initially started doing releases for CakePHP, our release process involved many steps and I was doing them all manually.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/E0BOKjZ-dcM" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Mon, 08 Mar 2010 02:46:10 +0000</pubDate>
 <dc:creator>Mark Story</dc:creator>
 <guid isPermaLink="false">4811 at http://planetcakephp.org</guid>
</item>
<item>
 <title>Making CakePHP Templates in TextMate</title>
 <link>http://www.goredmonster.com/cakephp/making-cakephp-templates-in-textmate/</link>
 <description>&lt;p&gt;I finally got around to exploring &lt;a href="http://manual.macromates.com/en/templates"&gt;templates&lt;/a&gt; in the TextMate bundle editor. The PHP bundle does not have any templates, and so I set out to create a few to improve my workflow. I thought it would be helpful information for PHP developers using TextMate. I actually used the Ruby interpreter to power my templates, but you can definately use PHP, or any other interpreter you like (Python, Perl, etc.). You might want to check out &lt;a href="http://manual.macromates.com/en/environment_variables.html"&gt;Environment Variables&lt;/a&gt; in the &lt;a href="http://manual.macromates.com/en/"&gt;TextMate manual&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For the impatient: &lt;a href="http://goredmonster.com/downloads/CakePHP.tmbundle.zip"&gt;download the bundle&lt;/a&gt;. You should go through this post and make sure you set up shell variables properly. They are useful and worth understanding.&lt;/p&gt;
&lt;p&gt;Most of my PHP development is done using the &lt;a href="http://www.goredmonster.com/cakephp/introduction-to-cakephp-for-web-designers/"&gt;CakePHP  framework&lt;/a&gt;, and I prefer to create my own files rather than using the &lt;a href="http://book.cakephp.org/view/113/Code-Generation-with-Bake"&gt;Bake console&lt;/a&gt;. Just a personal preference. My templates are already proving to save time I would spend copying/pasting code. &lt;/p&gt;
&lt;p&gt;Automating the creation of templates will save you time. Expensive time that you don’t need to waste on repetitive stuff. You can even modify the existing templates provided in the bundle editor. I know virtually every HTML document I create will need at least one stylesheet, meta data, and scripts.&lt;/p&gt;
&lt;h2&gt;The Bundle Editor&lt;/h2&gt;
&lt;p&gt;The bundle editor provides amazing functionality to TextMate. I’m convinced that the reason I work on a Mac is TextMate and the many customizable, automated features like bundles &lt;img src="http://www.goredmonster.com/wp/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /&gt; .&lt;/p&gt;
&lt;p&gt;To get our bundle started, fire up the bundle editor in &lt;strong&gt;Bundles &gt; Bundle Editor &gt; Show Bundle Editor&lt;/strong&gt;. You could also use the shortcut, Control + Option + Command + B (the bottom three modifier keys + B). The bundle editor allows you to create snippets, macros, drag commands, templates, etc.&lt;br /&gt;
&lt;img src="http://www.goredmonster.com/wp/wp-content/uploads/2010/03/bundle_editor-300x141.gif" alt="TextMate Bundle Editor" title="TextMate Bundle Editor" width="300" height="141" class="size-medium wp-image-243" /&gt;&lt;/p&gt;
&lt;h2&gt;Creating the Bundle and Template&lt;/h2&gt;
&lt;p&gt;Templates require a few things to work. Firstly, a script that actually processes the template, allowing you to generate dynamic template elements on the fly—you’ll see how cool this feature is in a minute. Secondly, the actual template file that we will populate with our code.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a new bundle by clicking the “+” icon on the bottom left of the TextMate bundle editor window and select “New Bundle”. Type in the name of the bundle; mine is called “CakePHP.”&lt;/li&gt;
&lt;li&gt;Now that the bundle is created, highlight it, click the “+” icon again, and select “New Template.” Enter the name of your template; mine is “Controller.”&lt;/li&gt;
&lt;li&gt;Highlight the template you just created and click the “+” icon one last time. Select “New template file”. It will be highlighted, name it something that matches the template and has the extension you want (in my case “.php”)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://www.goredmonster.com/wp/wp-content/uploads/2010/03/cakephp-textmate-bundle.gif" alt="cakephp-textmate-bundle" title="cakephp-textmate-bundle" width="291" height="118" class="size-full wp-image-252" /&gt;&lt;/p&gt;
&lt;p&gt;Your bundle should look similar to mine. Now that the template script and template file are created, highlight the template file (mine is controller.php). Paste in the following code, I’ll explain it afterwards:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;?php
/**
 * Description
 *
 * Copyright ${TM_YEAR}, ${TM_ORGANIZATION_NAME}. All Rights Reserved.
 *
 * @author ${TM_FULLNAME} &amp;lt;${AUTHOR_EMAIL}&gt;
 * @created ${TM_DATE_FULL}
 */
class ${TM_CLASSNAME} extends AppController {
	/**
	 *
	 */
	public $name = '${TM_NAME_PARAM}';
	/**
	 *
	 */
	public $helpers = array();
	/**
	 *
	 */
	public $components = array();

	## Public Actions

	/**
	 *
	 */
	public function index() {}

	/**
	 *
	 */
	public function view($id=null){}

	## Admin Actions

	/**
	 *
	 */
	public function admin_index() {}

	/**
	 *
	 */
	public function admin_edit($id=null){}

	/**
	 *
	 */
	public function admin_delete($id=null){}

}
&lt;/pre&gt;&lt;p&gt;In my controller template, you will notice some dynamic elements and various actions/params that I use frequently in almost every controller.&lt;/p&gt;
&lt;p&gt;The actual class name is generated by the file’s basename (the files name minus the extension) and is called &lt;strong&gt;${TM_CLASSNAME}&lt;/strong&gt; in the template. The basename variable is automatically available to templates. Those of you familiar with CakePHP will know that controller filenames use underscores. So the “UsersController” class file would be “users_controller.php” and the basename would be “users_controller”.&lt;/p&gt;
&lt;p&gt;The template contains a variable called &lt;strong&gt;${TM_FULLNAME}&lt;/strong&gt; which is generated by the full name of your TextMate licence. You can see this name by clicking &lt;strong&gt;TextMate &gt; Registration&lt;/strong&gt; from the menu. The field is called “Owner”.&lt;/p&gt;
&lt;p&gt;The other variables will be created in the template script and through &lt;a href="http://manual.macromates.com/en/environment_variables.html"&gt;shell variables (Section 9.2)&lt;/a&gt;. Shell variables are reusable variables assigned in the preferences. These are really cool, because you can use them throughout the TextMate application. You can also create project-specific shell variables in your TextMate projects. Don’t think that they merely apply for this template only!&lt;/p&gt;
&lt;p&gt;Let’s go ahead and create/update the shell variables this template will use:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;TextMate &gt; Preferences &gt; Advanced&lt;/strong&gt; and select Shell Variables.
&lt;/li&gt;&lt;li&gt;You should see a built-in shell variable called &lt;strong&gt;TM_ORGANIZATION_NAME&lt;/strong&gt; with a made-up name. Edit the value of this field with the organization you want to appear in the block comment.&lt;/li&gt;
&lt;li&gt;Create a new shell variable called “AUTHOR_EMAIL” and put in your email.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://www.goredmonster.com/wp/wp-content/uploads/2010/03/shell_variables.gif" alt="TextMate shell variables" title="TextMate shell variables" width="458" height="410" class="alignnone size-full wp-image-264" /&gt;&lt;/p&gt;
&lt;p&gt;You can now use &lt;strong&gt;${TM_ORGANIZATION_NAME}&lt;/strong&gt; and &lt;strong&gt;${AUTHOR_EMAIL}&lt;/strong&gt; in your templates.&lt;/p&gt;
&lt;h2&gt;Template Script&lt;/h2&gt;
&lt;p&gt;The template script is where the real magic happens in our template. Select the template script of your bundle, and you will see a few fields. Update the fields with the following (see source code below image to copy):&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.goredmonster.com/wp/wp-content/uploads/2010/03/controller_script.gif" alt="Controller bundle script" width="500" class="alignnone size-full wp-image-257" /&gt;&lt;/p&gt;
&lt;p&gt;Here is the source for the Command(s) field:&lt;/p&gt;
&lt;pre&gt;
#!/usr/bin/env ruby -wKU

# METHODS
def camelize(lower_case_and_underscored_word, first_letter_in_uppercase = true)
	if first_letter_in_uppercase
         lower_case_and_underscored_word.to_s.gsub(/\/(.?)/)
             { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
    else
    	lower_case_and_underscored_word.first.downcase +
            camelize(lower_case_and_underscored_word)[1..-1]
    end
end

f = open(ENV["TM_NEW_FILE"], 'w')
template = open("controller.php").read

ENV["TM_YEAR"] = `date +%Y`.chomp
ENV["TM_DATE"] = `date +%Y-%m-%d`.chomp
ENV["TM_DATE_FULL"] = Time.now.strftime("%m-%d-%Y %I:%M %p")
basename = ENV['TM_NEW_FILE_BASENAME']

ENV["TM_CLASSNAME"] = camelize(basename)
ENV["TM_NAME_PARAM"] = camelize(basename.split('_controller').join)

if ENV["TM_SOFT_TABS"] == "YES"
	tab_size = ENV["TM_TAB_SIZE"].to_i
	tab_size = tab_size ? tab_size : 4
	template = template.gsub(/\t/, " "*tab_size)
end

template = template.gsub(/[$]\{([^}]+)\}/){|match| "#{ENV[$1]}" }
f.write template
f.close
&lt;/pre&gt;&lt;p&gt;&lt;em&gt;Note that I’m borrowing the camelize method from the &lt;a href="http://api.rubyonrails.org/"&gt;Rails API&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You don’t have to fully understand the ruby script I’m using, but there are a few things I’ll touch on to help you understand what is going on.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I wanted to customize the date to include the exact time the file was created, so I used Ruby’s Time class to create &lt;strong&gt;ENV["TM_DATE_FULL"]&lt;/strong&gt; with the &lt;strong&gt;strftime&lt;/strong&gt; method. I can now use it in my template as &lt;strong&gt;${TM_DATE_FULL}&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;To follow CakePHP’s convention of camel-case class names, I use the camelize method to camelize the basename of the file and assign to &lt;strong&gt;ENV["TM_CLASSNAME"]&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;em&gt;$name&lt;/em&gt; param of a CakePHP controller is the same as the class name, but omits “controller”, so I am splitting the file basename at ‘_controller’ and joining the first part back to a string; this string is also camel-cased using the camelize method.&lt;/li&gt;

&lt;/ol&gt;
&lt;p&gt;The names match the custom fields in the template file—remember that they are &lt;em&gt;case-sensitive&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Now when you create a new controller in a CakePHP project you can take advantage of your new template. Make sure all your template settings match my code above. You can test a template by clicking the “Test” button in the bundle editor template script.&lt;/p&gt;
&lt;p&gt;We’re done. Create a new file in your TextMate project (Shift + Command + N in a project), select the template we just created from the dropdown, and click “create”.&lt;br /&gt;
&lt;img src="http://www.goredmonster.com/wp/wp-content/uploads/2010/03/textmate_new_from_template.gif" alt="textmate_new_from_template" title="textmate_new_from_template" width="380" height="181" class="alignnone size-full wp-image-274" /&gt;&lt;/p&gt;
&lt;p&gt;I hope this is useful for others, it really improved my workflow. My &lt;a href="http://goredmonster.com/downloads/CakePHP.tmbundle.zip"&gt;bundle download&lt;/a&gt; also contains a model template too, so be sure to check out the bundle code in your new friend, the bundle editor.&lt;/p&gt;
&lt;h2&gt;Other Great Textmate Bundles&lt;/h2&gt;
&lt;p&gt;Some other textmate bundles I really cannot live without:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://github.com/protocool/ack-tmbundle"&gt;Ack in Project&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/zen-coding/"&gt;Zen Coding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.campaignmonitor.com/downloads/textmate-email-bundle/"&gt;TextMate Email Bundle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/J4iBEJK26e0" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Mon, 08 Mar 2010 01:33:05 +0000</pubDate>
 <dc:creator>Paul Redmond</dc:creator>
 <guid isPermaLink="false">4803 at http://planetcakephp.org</guid>
</item>
<item>
 <title>Managing Memory on the Cheap</title>
 <link>http://rafaelbandeira3.wordpress.com/2010/03/08/managing-memory-n-the-cheap/</link>
 <description>&lt;p&gt;It’s not new that taking notes, writing and playing with data makes it easy to remember the subject in question. I remember that back on school time when instead of cheating on the tests I would just prepare the cheat sheet and by doing so I would fix the matter and end up not even needing to cheat at all.&lt;br /&gt;
Another example is post-it cards that allow taking quick notes and thus exercising the subject in question before even getting back to it. After writing in one, before sticking on the wall I already get it stuck in my mind. In both cases I ended up having a document to refer to when in need of some help to refresh my mind, but still I had it much clearer in my mind.&lt;br /&gt;
Here are some habits that help me get on track by creating stronger references in memory for things I need to keep in mind or would like to use in the future:&lt;br /&gt;
Commenting when bookmarking to Delicious&lt;br /&gt;
A short summary of the link’s content or even my opinion about it, highlights of the most useful parts or maybe a quote took from the content.&lt;br /&gt;
Taking Meeting notes&lt;br /&gt;
Outline all topics covered and highlight all off-topics that might come in handy in the future. This one is really tricky to adhere to, a good trick is to start writing everything is said on the meeting, and then start filtering as the meeting goes on. This can be much easier for meetings with defined agendas. However, is very effective for meetings without agenda (interviews, 101s, brainstorming…).&lt;br /&gt;
Writing To-Do lists&lt;br /&gt;
Having a place to dump activities and action items for the future is really handy as it allows not only to quickly understand what will need to be done as it also makes it easier to get back on focus to what I was originally doing. Re-writing the to-do list each day is the ideal exercise to stay fresh on things I need to do.&lt;br /&gt;
Carrying a notebook and pen&lt;br /&gt;
I bought a really nice notebook and an ok pen that I carry with me everywhere now: I think, I write. This is especially handy to harden ideas and ensure I don’t waste them on the void of my (lack of) memory.&lt;br /&gt;
Twittering&lt;br /&gt;
Keeping twitter as my personal journal is a good way to keep remarkable facts in mind. I don’t tweet that much, but I always take some time to drop a note there with things I find cool about my routine or special happenings. Having 3G is something that would definitely help me here, sadly I should only get it sometime around the end of the year.&lt;br /&gt;
Another good thing on twitter is using the favorite feature. You can always retweet things you really like and then already keep them in your memory line of sight, but faving it is a quieter way to do so.&lt;br /&gt;
Managing memory&lt;br /&gt;
These are really about managing memory and reinforcing references to remarkable and interesting things – I wouldn’t use it to manage my knowledge (i.e. keeping track of things I learn and things I should know) – and as memory is something really volatile for me, all techniques – if so I can call them – have to be as “cheap” as possible, which means they need to allow me to execute them really quick and get back on tracks, as I may need to do so while I’m working or while I’m focused on any other thing not related to them.&lt;br /&gt;
It’s really important to keep track of the resulting documents, even though I might never look to them again – just make sure they are at hand long enough to serve me while they might be helpful, but try really hard not to fall into the trap of messy post-it and notes all around the desk.&lt;br /&gt;
What about you, how do you keep up with memory?&lt;br /&gt;
 Tagged: &lt;a href="http://rafaelbandeira3.wordpress.com/tag/life-management/"&gt;Life Management&lt;/a&gt;, &lt;a href="http://rafaelbandeira3.wordpress.com/tag/memory-and-mind/"&gt;Memory and Mind&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rafaelbandeira3.wordpress.com/261/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rafaelbandeira3.wordpress.com/261/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rafaelbandeira3.wordpress.com/261/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rafaelbandeira3.wordpress.com/261/"&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rafaelbandeira3.wordpress.com/261/"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/IrzFm8o8ha8" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Mon, 08 Mar 2010 01:13:34 +0000</pubDate>
 <dc:creator>Rafael Bandeira</dc:creator>
 <guid isPermaLink="false">4810 at http://planetcakephp.org</guid>
</item>
<item>
 <title>[CakePHP] Can not Bake table model, controller and view</title>
 <link>http://stackoverflow.com/questions/2398422/cakephp-can-not-bake-table-model-controller-and-view</link>
 <description>&lt;p&gt;I developed small CakePHP application, and now I want to add one more table (in fact, model/controller/view) into system, named notes. I had already created a table of course.&lt;/p&gt;
&lt;p&gt;But when I run command cake bake model, I do not get table Notes on the list. I can add it manually, but after that I get some errors when running cake bake controller and cake bake view.&lt;/p&gt;
&lt;p&gt;Can you give me some clue why I have those problems, and how to add that new model?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/sGitnOkAnLc" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Sun, 07 Mar 2010 23:20:41 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4816 at http://planetcakephp.org</guid>
</item>
<item>
 <title>CakePHP, MAMP y el socket de Mysql</title>
 <link>http://cakephpilia.blogspot.com/2010/03/cakephp-mamp-y-el-socket-de-mysql.html</link>
 <description>&lt;p&gt;En una entrada anterior ya he comentado el tema de como &lt;a href="http://cakephpilia.blogspot.com/2007/09/cake-bake-y-mamp.html"&gt;ajustar las cosas para que CakePHP pueda comunicarse con Mysql&lt;/a&gt;. Para ello, hay que crear un enlace simbólico del socket /Applications/MAMP/tmp/mysql/mysql.sock en el lugar adecuado, que en el artículo señalado era /var/mysql/mysql.sock.Hace poco, tras varias actualizaciones los shells empezaron a "pedir" un socket en /tmp/mysql.sock, por lo que creé un nuevo enlace, pero olvidé la opción -s y creé un enlace duro en lugar de simbólico.Pues bien, que sepas que los enlaces duros no valen para el caso y los shells no eran capaces de conectar a la base de datos. Ha sido cambiarlo a enlace simbólico y volver a funcionar todo como es debido.Por su parte, la aplicación web se conectaba perfectamente.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/Y_ajBOGZDzU" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/spanish">Español</category>
 <pubDate>Sun, 07 Mar 2010 22:14:00 +0000</pubDate>
 <dc:creator>Fran Iglesias</dc:creator>
 <guid isPermaLink="false">4813 at http://planetcakephp.org</guid>
</item>
<item>
 <title>Making HABTM relationships unique in CakePHP</title>
 <link>http://stackoverflow.com/questions/2396062/making-habtm-relationships-unique-in-cakephp</link>
 <description>&lt;p&gt;I have two models, called Book and Tag, which are in a HABTM relationship. I want a couple (book, tag) to be saved only once. In my models I have&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var $hasAndBelongsToMany = array(
    'Tag' =&gt; array(
        'className' =&gt; 'Tag',
        'joinTable' =&gt; 'books_tags',
        'foreignKey' =&gt; 'book_id',
        'associationForeignKey' =&gt; 'tag_id',
        'unique' =&gt; true
    )
);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;and viceversa, but the Unique flag does not help me; I can still save two times the same couple.&lt;/p&gt;
&lt;p&gt;How do I do this in CakePHP? Should I declare the couple (book, tag) unique in the database directly, or will this make CakePHP go nuts? Is there a Cakey way to handle this situation?&lt;/p&gt;
&lt;p&gt;EDIT: I tried making the couple unique with the query (I'm using MySQL)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ALTER TABLE books_tags ADD UNIQUE (book_id,tag_id);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;but this does not work well. When I save more than one tag at a time, everything goes well if all the couples are new. If at least one of the couples is repeated, CakePHP fails to do the whole operation, so it does not save ANY new couple (not even the good ones).&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/hlg5t5FsLno" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Sun, 07 Mar 2010 11:24:16 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4818 at http://planetcakephp.org</guid>
</item>
<item>
 <title>New Versions: Uploader 2.5, Gears 2.0</title>
 <link>http://feedproxy.google.com/~r/milesj/~3/VgdHNdG6r1c/new-versions-uploader-2-5-gears-2-0</link>
 <description>&lt;p&gt;I have been working on the following versions for over a month and deemed them worthy enough of release. Enjoy!Uploader v2.5&lt;a href="http://www.milesj.me/resources/script/uploader-plugin" title=""&gt;http://www.milesj.me/resources/script/uploader-plugin&lt;/a&gt;&lt;a href="http://github.com/milesj/uploader" title=""&gt;http://github.com/milesj/uploader&lt;/a&gt;&lt;br /&gt;
&lt;ul class="decoda_list"&gt;
&lt;li&gt;Added a controller and model that I use for testing purposes&lt;/li&gt;
&lt;li&gt;Added 5 constants to use for UploaderComponent::crop(): LOC_TOP, LOC_BOT, LOC_LEFT, LOC_RIGHT, LOC_CENTER&lt;/li&gt;
&lt;li&gt;Added root path checking in UploaderComponent::delete()&lt;/li&gt;
&lt;li&gt;Added an S3 (Amazon Simple Storage) transfer component&lt;/li&gt;
&lt;li&gt;Added the S3 support into the AttachmentBehavior&lt;/li&gt;
&lt;li&gt;Fixed a bug with UploaderComponent::dimensions() throwing errors&lt;/li&gt;
&lt;li&gt;Fixed a bug with UploaderComponent::flip() not working&lt;/li&gt;
&lt;li&gt;Rewrote UploaderComponent::__validates() with better logic and checking&lt;/li&gt;
&lt;li&gt;Rewrote UploaderComponent::__parseData() to support multiple models and files&lt;/li&gt;
&lt;li&gt;Rewrote AttachmentBehavior to accept multiple transforms of the same type&lt;/li&gt;
&lt;li&gt;Changed filename auto-append from timestamp to incremental numbering&lt;/li&gt;
&lt;li&gt;Allow for nothing to be appended to the filename&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;&lt;p&gt;Gears v2.0 (Need to rewrite documentation)&lt;a href="http://www.milesj.me/resources/script/template-engine" title=""&gt;http://www.milesj.me/resources/script/template-engine&lt;/a&gt;&lt;a href="http://github.com/milesj/gears" title=""&gt;http://github.com/milesj/gears&lt;/a&gt;&lt;br /&gt;
&lt;ul class="decoda_list"&gt;
&lt;li&gt;Completely rewritten from the ground up; not compatible (at all) with older versions&lt;/li&gt;
&lt;li&gt;Variables are now bound globally instead of per template&lt;/li&gt;
&lt;li&gt;Can configure what ext, layout and path to use&lt;/li&gt;
&lt;li&gt;Uses output buffering to render the templates&lt;/li&gt;
&lt;li&gt;Templates can use the $this variable as it is within the Gears scope&lt;/li&gt;
&lt;li&gt;Removed the cumbersome parent/child hierarchy&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~ff/milesj?a%3DVgdHNdG6r1c:ZQUrWd0Yk0s:V_sGLiPBpWU"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/milesj?a%3DVgdHNdG6r1c:ZQUrWd0Yk0s:qj6IDK7rITs"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/milesj?a%3DVgdHNdG6r1c:ZQUrWd0Yk0s:gIN9vFwOqvQ"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/milesj?a%3DVgdHNdG6r1c:ZQUrWd0Yk0s:TzevzKxY174"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/milesj?a%3DVgdHNdG6r1c:ZQUrWd0Yk0s:yIl2AUoC8zA"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/8Ygg6NLhmMU" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Sun, 07 Mar 2010 02:36:54 +0000</pubDate>
 <dc:creator>Miles Johnson</dc:creator>
 <guid isPermaLink="false">4808 at http://planetcakephp.org</guid>
</item>
<item>
 <title>cakephp error how to clear this error</title>
 <link>http://stackoverflow.com/questions/2392390/cakephp-error-how-to-clear-this-error</link>
 <description>&lt;p&gt;Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'wp_generator' was given in &lt;/p&gt;
&lt;p&gt;plugin.php on line 339&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/sK0rmZxCOFQ" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Sat, 06 Mar 2010 12:04:08 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4820 at http://planetcakephp.org</guid>
</item>
<item>
 <title>which cakephp relationship should be used for groups of users? can haveMany use array for foreign_ID?</title>
 <link>http://stackoverflow.com/questions/2390737/which-cakephp-relationship-should-be-used-for-groups-of-users-can-havemany-use-a</link>
 <description>&lt;p&gt;In my tennis application, my 'match' table has two players (obviously). I've used player1_id and player2_id as a way to track the user ids. I haven't included a user_id foreign key though. &lt;/p&gt;
&lt;p&gt;There is also a 'user' table where I want to pull player's names from. &lt;/p&gt;
&lt;p&gt;Because 'match' has more than one user and users have more than one model, I'm wondering if the following model configuration will work:&lt;/p&gt;
&lt;p&gt;I've setup the user model like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var $name = 'User';
var $hasMany = array(
'Match' =&gt; array(
'className' =&gt; 'Match',
'foreignKey' =&gt; array( 'player1_id', 'player2_id'),
'dependent' =&gt; true,
)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;and the match model like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var $name = 'Match';
var $belongsTo = array(
'User' =&gt; array(
'className' =&gt; 'User',
'foreignKey' =&gt;  'user_id',
'conditions' =&gt; '',
)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I need to display the user first/last name for each player where user_id = player1_id or player2_id. Will this work? Can a foreign key use an array? And can a model operation use an 'or' when searching?&lt;/p&gt;
&lt;p&gt;Or is there a better way to structure a table (like a match, or could be a group meeting) with more than one user? &lt;/p&gt;
&lt;p&gt;Cheers,&lt;br /&gt;
Paul&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/uXfnlypqZic" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Fri, 05 Mar 2010 23:55:32 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4822 at http://planetcakephp.org</guid>
</item>
<item>
 <title>HABTM Data Corrupted During __saveMulti()?</title>
 <link>http://stackoverflow.com/questions/2389952/habtm-data-corrupted-during-savemulti</link>
 <description>&lt;p&gt;I'm using Cake 1.2.6 and last night I noticed that a HABTM relationship wasn't being saved when I submit a form. &lt;/p&gt;
&lt;p&gt;I have a HABTM relationship between &lt;code&gt;Committee&lt;/code&gt; and &lt;code&gt;Volunteer&lt;/code&gt;. The primary key for a &lt;code&gt;Volunteer&lt;/code&gt; is a UUID while the primary key for a &lt;code&gt;Committee&lt;/code&gt; is a human readable string (e.g. &lt;code&gt;BOARDOFDIRECTORS&lt;/code&gt;, &lt;code&gt;FAIRCOMMITTEE&lt;/code&gt;, &lt;code&gt;FAIRASSOCIATES&lt;/code&gt;, etc.). I have a form to create/edit volunteers and that form includes a select box whose options are exactly what you'd expect and are populated with options returned from Cake's &lt;code&gt;find( 'list' )&lt;/code&gt; method. Although I can't think of a reason it would matter, only one committee can be selected for a volunteer (the HABTM is for expected future needs).&lt;/p&gt;
&lt;p&gt;Initial results show that selecting the &lt;code&gt;BOARDOFDIRECTORS&lt;/code&gt; option works as expected, but the others do not. Tracing the execution through the core code leads me to &lt;code&gt;Model-&gt;__saveMulti()&lt;/code&gt; where, in &lt;a href="http://github.com/cakephp/cakephp1x/blob/1.2/cake/libs/model/model.php" rel="nofollow"&gt;Line 1393&lt;/a&gt;, this code is executed:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; $data[$this-&gt;hasAndBelongsToMany[$assoc]['foreignKey']] = $id;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If I dump &lt;code&gt;$data&lt;/code&gt; before that code, the output is &lt;strong&gt;FAIRASSOCIATES&lt;/strong&gt;. Immediately after, its value is &lt;strong&gt;4AIRASSOCIATES&lt;/strong&gt;. It seems safe to assume that's why the relationship isn't being saved, but I haven't figured out why the data is changing at this point in the execution.&lt;/p&gt;
&lt;p&gt;Has anyone else seen this? Am I missing some critical piece? To the best of my knowledge, this was working fine in v1.2.1 (I upgraded a week ago or so).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The first bit of &lt;em&gt;apparent&lt;/em&gt; weirdness I see is that, although my &lt;code&gt;$row&lt;/code&gt; is a string, the condition in &lt;a href="http://github.com/cakephp/cakephp1x/blob/be7ddfb972a1fc508c3e4b0d8c78494923bc20e2/cake/libs/model/model.php#L1366" rel="nofollow"&gt;Line 1366&lt;/a&gt; evaluates to &lt;code&gt;true&lt;/code&gt; so I drop into that code block. If my data is a string, how can it have a member value?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I clearly have some thinking to do, but here's the bottom line. If I drop log writes immediately before and immediately after &lt;a href="http://github.com/cakephp/cakephp1x/blob/be7ddfb972a1fc508c3e4b0d8c78494923bc20e2/cake/libs/model/model.php#L1394" rel="nofollow"&gt;Line 1394&lt;/a&gt; like so:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$this-&gt;log( 'Setting ' . $data . '[' . $this-&gt;hasAndBelongsToMany[$assoc]['foreignKey'] . '] = ' . $id, LOG_DEBUG );

$data[$this-&gt;hasAndBelongsToMany[$assoc]['foreignKey']] = $id;

$this-&gt;log( 'Creating ' . json_encode( $data ) . ' on ' . $join, LOG_DEBUG );
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The relevant output is:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;2010-03-05 18:57:08 Debug: Setting FAIRASSOCIATES[volunteer_id] = 4b78717f-8ad4-4671-b81c-4e8745591fb4
2010-03-05 18:57:08 Debug: Creating "4AIRASSOCIATES" on CommitteesVolunteer
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Possible issues:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I'm not sure how/why Cake is trying to set the &lt;code&gt;volunteer_id&lt;/code&gt; member on a string&lt;/li&gt;
&lt;li&gt;"FAIRASSOCIATES" is the ID of a committee to which a volunteer is grouped, not a model of any sort, so I don't understand the relevance of &lt;code&gt;FAIRASSOCIATES[volunteer_id]&lt;/code&gt; at all.&lt;/li&gt;
&lt;li&gt;I have no idea how or why the value of &lt;code&gt;$data&lt;/code&gt; is being morphed into &lt;code&gt;4AIRASSOCIATES&lt;/code&gt; by that one line of code.&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/GVfppJBWDXw" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Fri, 05 Mar 2010 21:10:55 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4819 at http://planetcakephp.org</guid>
</item>
<item>
 <title>NINJAS!</title>
 <link>http://dojo.codegreene.com/2010/ninjas/</link>
 <description>&lt;p&gt;&lt;a href="http://abduzeedo.com/awesomeness-ninjas"&gt;&lt;/a&gt;&lt;br /&gt;
A &lt;a title="Joseph Lebaron" href="http://leadmediapartners.com/images/team/joseph.jpg"&gt;friend&lt;/a&gt; tipped us off that &lt;a href="http://abduzeedo.com/"&gt;Abduzeedo&lt;/a&gt; had a Friday post on the &lt;a title="The Awesomeness of Ninjas" href="http://abduzeedo.com/awesomeness-ninjas"&gt;Awesomeness of Ninjas&lt;/a&gt;, mentioning the article probably deserved a spot on the dojo blog. I couldn’t agree more.&lt;br /&gt;
From the day I interviewed at Code Greene, Mark (the head sensei here), explained that he was assembling a team of ninjas to do his bidding. Our business has borrowed Japanese philosophy in a number of areas; namely, &lt;a href="http://en.wikipedia.org/wiki/The_Toyota_Way"&gt;The Toyota Way&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Kaizen"&gt;kaizen&lt;/a&gt;, and eliminating &lt;a href="http://en.wikipedia.org/wiki/Muda_(Japanese_term)"&gt;muda&lt;/a&gt; as it applies to workflow and personal improvement. We have 3 actual ninja swords in the office, and we once killed a guy. Well, that’s not entirely true, I can’t actually vouch for the authenticity of the swords.&lt;br /&gt;
Anyways, all I really wanted to say is that ninjas are awesome. Go check out the &lt;a href="http://abduzeedo.com/awesomeness-ninjas"&gt;post&lt;/a&gt; and relish in their glory.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/SNFHPimgxS0" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Fri, 05 Mar 2010 17:32:53 +0000</pubDate>
 <dc:creator>The Code Dojo</dc:creator>
 <guid isPermaLink="false">4801 at http://planetcakephp.org</guid>
</item>
<item>
 <title>Sharpening the Blades: Styling Forms, Problem with Passwords and HTML5 in IE9</title>
 <link>http://dojo.codegreene.com/2010/sharpening-the-blades-styling-forms-problem-with-passwords-and-html5-in-ie9/</link>
 <description>&lt;p&gt;This edition of Sharpening the Blades features an article from Mike about using jQuery, CSS and image sprites to create stylish forms, an article from Benjam about Passwords on the web and Mark chimes in with an article about the possibility of HTML5 in Internet Explorer 9.&lt;br /&gt;
&lt;strong&gt;Mike&lt;/strong&gt;,&lt;a href="http://pixelmatrixdesign.com/uniform/)" target="_blank"&gt; Get your form on with Uniform&lt;br /&gt;
&lt;/a&gt;We’ve all been there. You finish an amazing design using some sweet custom form elements that perfectly match the theme of your design. Then after a few frustrating attempts, you realize that some form elements just can’t be styled. Or if they can, not consistently. So you throw on a border, maybe a background image, and hope for the best as dreams of your custom UI vanish into nothingness. But fear not! Using the clever jQuery script Uniform and some CSS sprites, your form designs can once more be glorious! Works beautifully in all major browsers (degrades gracefully in IE6). &lt;a href="http://pixelmatrixdesign.com/uniform/)" target="_blank"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;Benjam&lt;/strong&gt;, &lt;a href="http://www.alistapart.com/articles/the-problem-with-passwords/" target="_blank"&gt;The Problem with Passwords&lt;/a&gt;&lt;br /&gt;
Being in the Web Development industry for a while now, and having had a few third-party scripts that were on my site hacked, I have become more and more interested in web security.  Passwords are on the front lines to that.  Being a user of Web technologies, I’m also interested in usability and choice, and when it comes to showing or hiding passwords (what? you can do that?) I’m in the boat of give the user the choice.  This article nicely explains a few examples that offer people the choice to show or hide their passwords, both of which are very useful.&lt;br /&gt;
&lt;strong&gt;Mark&lt;/strong&gt;, &lt;a href="http://www.webmonkey.com/blog/Microsoft_to_Double_Down_on_HTML5_With_Internet_Explorer_9" target="_blank"&gt;Microsoft to Double Down on HTML5 in Internet Explorer 9&lt;/a&gt;&lt;br /&gt;
Doubling down seems like the wrong approach to me. If I were the CEO at Microsoft I would instead of thinking of trying to put their foot down harder, they should instead learn to bend in the winds of the market and work on compliance with the other browsers. Though I hate to say it even forced upgrades like Firefox does would be good, to keep people current and reduce the amount of cross browsers compatibility problems Microsoft gives developers. I don’t think Microsoft realizes that by making developers lives bad by trying to be different they are actually building up a mass market of developers who hate them because it is so difficult to make cross compatibility easy and affordable.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/lKebH53FhNI" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Fri, 05 Mar 2010 17:00:07 +0000</pubDate>
 <dc:creator>The Code Dojo</dc:creator>
 <guid isPermaLink="false">4802 at http://planetcakephp.org</guid>
</item>
<item>
 <title>What framework would allow for the largest coverage of freelance developers in the media/digital marketing sector</title>
 <link>http://stackoverflow.com/questions/2387590/what-framework-would-allow-for-the-largest-coverage-of-freelance-developers-in-th</link>
 <description>&lt;p&gt;This question is &lt;strong&gt;not&lt;/strong&gt; about which is the best, it is about which makes the most business sense to use as a company's platform of choice for ongoing freelance development.&lt;/p&gt;
&lt;p&gt;I'm currently trying to decide what framework to move my company in regarding frameworks for web application work.&lt;/p&gt;
&lt;p&gt;Options are&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ASP.NET MVC&lt;/li&gt;
&lt;li&gt;Django&lt;/li&gt;
&lt;li&gt;CakePHP/Symfony etc..&lt;/li&gt;
&lt;li&gt;Struts&lt;/li&gt;
&lt;li&gt;Pearl on Rails&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Please feel free to add more to the discussion.&lt;/p&gt;
&lt;p&gt;I currently work in ASP.NET MVC in my Spare time, and find it incredibly enjoyable to work with. It is my first experince with an MVC framework for the web, so I can't talk on the others.&lt;/p&gt;
&lt;p&gt;The reason for not pushing this at the company is that I feel that there are not many developers in the Media/Marketing world who would work with this, so it may be hard to extend the team, or at least cost more.&lt;/p&gt;
&lt;p&gt;I would like to move into learning and pushing Django, partly to learn python, partly to feel a bit cooler (all my geeky friends use Java/Python). Microsoft is the dark side to most company's I work with (Marketing/Media focused). But again I'm worried about developers in this sector.&lt;/p&gt;
&lt;p&gt;PHP seems like the natural choice, but I'm scared by the sheer amount of possible frameworks, and also that the quality of developer may be lower. I know there are great php developers out there, but how many of them know multiple frameworks? Are they similar enough that anyone decent at php can pick them up?&lt;/p&gt;
&lt;p&gt;Just put struts in the list as an option, but personally I live with a Java developer, and considering my experience with c#, I'm just not that interested in learning Java (selfish personal geeky reasons)&lt;/p&gt;
&lt;p&gt;Final option was a joke&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.bbc.co.uk/blogs/radiolabs/2007/11/perl_on_rails.shtml" rel="nofollow"&gt;http://www.bbc.co.uk/blogs/radiolabs/2007/11/perl_on_rails.shtml&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/Lz-tinFJdUk" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Fri, 05 Mar 2010 14:58:12 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4791 at http://planetcakephp.org</guid>
</item>
<item>
 <title>Copyable Behavior for CakePHP 1.3: Recursive Record Copying</title>
 <link>http://jamienay.com/2010/03/copyable-behavior-for-cakephp-1-3-recursive-record-copying/</link>
 <description>&lt;p&gt;Until I switched to CakePHP, any CMS I built for a client had a “copy this item” tool. The Cake framework doesn’t have anything like that built in, so for the past year or so the new Cake-powered CMS I built for work hasn’t had any sort of ‘copy item’ ability. Recently, however, I needed the functionality, so I decided to write a behavior to handle it. And now I’m happy to release it to the community as Copyable Behavior.&lt;br /&gt;
&lt;a href="http://github.com/jamienay/copyable_behavior"&gt;&lt;strong&gt;Download Copyable Behavior on Github&lt;/strong&gt;&lt;/a&gt;.&lt;br /&gt;
I’ve wrapped it in a plugin, since that seems to be the trend in the community these days (though I’m not sure why just downloading a behavior file is so bad).&lt;br /&gt;
Copyable adds a copy() function to your model, which you can use to copy (that is, create a duplicate of) a record and any of its hasOne, hasMany, or hasAndBelongsToMany relationships. In the case of hasOne and hasMany, those records are recursively copied as well. For example, if you want to copy a LinkCategory that hasMany Link, all of the Link records will be copied. The copy is fully recursive, meaning that if Link HasMany Comment, then all of those records will be copied as well. In the case of HABTM associations, only the join table rows are copied, not the associated records. The copy() function takes one argument – the ID of the record you wish to copy.&lt;br /&gt;
Copyable uses Containable to help generate its queries, but don’t worry – it’ll attach Containable if it can’t find it on the model.&lt;br /&gt;
A handful of config options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;recursive: whether to copy hasOne- and hasMany-associated models (default: true)&lt;/li&gt;
&lt;li&gt;habtm: whether to copy hasAndBelongsToMany relationships (default: true)&lt;/li&gt;
&lt;li&gt;stripFields: an array model fields that should ignored when copying (default: id, created, modified, lft, rght)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After attaching Copyable to a model via the $actsAs array – I recommend putting it on AppModel – usage is as simple as:&lt;/p&gt;
&lt;p&gt;// From a controller method&lt;br /&gt;
$this-&amp;gt;MyModel-&amp;gt;copy($id);&lt;/p&gt;
&lt;p&gt;// From a model method&lt;br /&gt;
$this-&amp;gt;copy($id);&lt;/p&gt;
&lt;p&gt;This is still an early version (I just finished it – and started it – today), but results have been pretty good so far. Suggestions welcome. I’ll probably throw this on the Bakery after it’s been out there for a little while. But for now, &lt;a href="http://github.com/jamienay/copyable_behavior"&gt;it’s on Github&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/YMTTIdchCeM" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Fri, 05 Mar 2010 05:21:49 +0000</pubDate>
 <dc:creator>Jamie Nay</dc:creator>
 <guid isPermaLink="false">4790 at http://planetcakephp.org</guid>
</item>
<item>
 <title>The Future of the Web and Things Like That</title>
 <link>http://feedproxy.google.com/~r/allTrades/~3/4vyvBgFC-w8/future-web-3d-sensors</link>
 <description>&lt;p&gt;Category: &lt;a href="http://marcgrabanski.com/category/tips-random" base="1"&gt;Tips &amp;amp; Random&lt;/a&gt; Tags: &lt;a href="http://marcgrabanski.com/tag/html5"&gt;HTML5&lt;/a&gt;, &lt;a href="http://marcgrabanski.com/tag/future"&gt;Future&lt;/a&gt;, &lt;a href="http://marcgrabanski.com/tag/3d"&gt;3D&lt;/a&gt;After watching Jesse Schell's presentation on the future of gaming:&lt;/p&gt;
&lt;p&gt;I'll summarize from memory in case you don't have time to watch it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Farm Ville, Guitar Hero, Wii, Wii Fit.. etc all made TONS of money. They seem to hit the gaming industry out of nowhere.&lt;/li&gt;
&lt;li&gt;They have one thing in common - they bring gaming to the real world.&lt;/li&gt;
&lt;li&gt;When technology gets better, more types of devices emerge. "all in one" is a fallacy.&lt;/li&gt;
&lt;li&gt;Companies are using points systems to get consumers to buy certain products.&lt;/li&gt;
&lt;li&gt;He says point systems *gaming* should be brought into all areas of reality.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, this video in combined with my presentations on HTML5 has really got me thinking. What is the future of the web?&lt;br /&gt;
More Devices and Faster Internet&lt;br /&gt;
The two things we can count: more devices and faster internet. I'm sure iPad is just the start of new types of devices and innovation in that space. Google is gearing up to release &lt;a href="http://www.google.com/appserve/fiberrfi"&gt;1GB internet&lt;/a&gt;, 100 times what most people have in their homes now.&lt;br /&gt;
So how are all these devices connected? The internet.&lt;br /&gt;
What is the language of the internet? HTML. (xml and json too for data transfer)&lt;br /&gt;
Interpreters&lt;br /&gt;
Web browsers are interpreters of this hodge-podge data format we have, HTML. Even CSS and JavaScript are interpreted. This is why web developers will never have perfect standards because everything is based on interpretation. Browsers can agree to interpret things in roughly the same ways, but the law of humanity combined with innovation mean nothing will be interpreted 100% the same.&lt;br /&gt;
New Interpretations of HTML&lt;br /&gt;
Take the video tag, for instance. The entire world's internet eyes and brain (browsers) have to now interpret a new piece of data, the video tag. A single browser could decide to interpret a "frog" tag, but that wouldn't serve us much good - so there will always be some commonality behind new tags and innovation. HTML will continue to add new pieces of data that will be interpreted in different ways. We will always have browser plugins and JavaScript to add new functionality to browsers before the browsers implement their own interpretations.&lt;br /&gt;
Apple did a smart move by open sourcing webkit. Now as more and more browsers use their rendering engine, apple (and whomever works on webkit) can set the standards, forcing other browsers to start implementing what they are. We've seen some of this taken place. HTML is a world where people basically make up new words and the whole world will eventually learn how to interpret that word.&lt;br /&gt;
The Brave New Internet&lt;br /&gt;
What I'm really looking forward to is 3D and sensor APIs.&lt;br /&gt;
Sensor APIs will detect if the device has a certain sensor, just like the geolocation API does now in HTML5, and then fall back if it doesn't have it. This will be great to be able to gather all new types of data through JavaScript. We could record audio and video natively or even detect air pollution levels if hardware devices start to have new types of sensors.&lt;br /&gt;
3D is certainly the area I'm most excited for. A world where today's games like Half Life 2 can download streaming into your web browser in real time. Gigabit internet will provide that ability. O3D and WebGL are starting to pave the way for 3D in the browser. And I fully intend to leverage browser's new 3D abilities when it comes out.&lt;br /&gt;
If you haven't seen it, check out Google's O3D beach demo. O3D is a plugin, but we know that plugins are trailblazers to new browser functionality.&lt;/p&gt;
&lt;p&gt;Safari and Firefox are implementing WebGL and this can be seen in their nightly builds. Pay attention to the &lt;a href="http://learningwebgl.com/blog/"&gt;Learning WebGL blog&lt;/a&gt; to see what has been happening in the world of WebGL.&lt;br /&gt;
I can't wait to start using it. Web + 3D is the world I pictured and wanted to be a part of since back in 2001 when I went to DigiPen, Nintendo's school, for 3D Animation.&lt;/p&gt;
&lt;p&gt;So come on, let's create a 3D web together!&lt;br /&gt;
&lt;a href="http://feeds.feedburner.com/~ff/allTrades?a%3D4vyvBgFC-w8:6V4VKk47_2Q:yIl2AUoC8zA"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/allTrades?a%3D4vyvBgFC-w8:6V4VKk47_2Q:63t7Ie-LG7Y"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/allTrades?a%3D4vyvBgFC-w8:6V4VKk47_2Q:V_sGLiPBpWU"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/Irv03jZ63-0" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Thu, 04 Mar 2010 20:52:40 +0000</pubDate>
 <dc:creator>Marc Grabanski</dc:creator>
 <guid isPermaLink="false">4787 at http://planetcakephp.org</guid>
</item>
<item>
 <title>How create select/options tag from find('threaded') in CakePHP</title>
 <link>http://stackoverflow.com/questions/2381957/how-create-select-options-tag-from-findthreaded-in-cakephp</link>
 <description>&lt;p&gt;How to create select/option html tag from find('threaded') data in CakePHP?&lt;br /&gt;
Function find() return results like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Array
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(&lt;br /&gt;
    [0] =&gt; Array&lt;br /&gt;
        (&lt;br /&gt;
            [Forum] =&gt; Array&lt;br /&gt;
                (&lt;br /&gt;
                    [id] =&gt; 1&lt;br /&gt;
                    [name] =&gt; Forum&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;            )

        [children] =&gt; Array
            (
                [0] =&gt; Array
                    (
                        [Forum] =&gt; Array
                            (
                                [id] =&gt; 3
                                [name] =&gt; Programowanie
                                [parent_id] =&gt; 1
                            )
                    )

                [1] =&gt; Array
                    (
                        [Thread] =&gt; Array
                            (
                                [id] =&gt; 11
                                [name] =&gt; Nowe forumowisko
                                [parent_id] =&gt; 1
                            )
                    )
            )
    )

[1] =&gt; Array
    (
        [Forum] =&gt; Array
            (
                [id] =&gt; 4
                [name] =&gt; Nauka
                [parent_id] =&gt; 0
            )

        [children] =&gt; Array
            (
            )
     )
)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;How?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/XZrI37Pgt1c" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Thu, 04 Mar 2010 19:02:43 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4795 at http://planetcakephp.org</guid>
</item>
<item>
 <title>using cakephp, how do I handle model operations that return no results so my view doesn't break?</title>
 <link>http://stackoverflow.com/questions/2380654/using-cakephp-how-do-i-handle-model-operations-that-return-no-results-so-my-view</link>
 <description>&lt;p&gt;In my controller I have model operations that can return empty results. I've setup the view to display the results using a foreach loop. But if the model opertion is empty and returns no results then the foreach loop is breaking in my view.&lt;/p&gt;
&lt;p&gt;This is the operation:&lt;/p&gt;
&lt;p&gt;$match3 = $this-&gt;Draw-&gt;Match-&gt; find('all',array('conditions'=&gt;array('Match.draw_id'=&gt;$id, 'Match.round_id'=&gt; 1, 'Match.match_position' =&gt; 3)));&lt;/p&gt;
&lt;p&gt;What do I need to add to the model operation to return null? Or is null the best way to handle this?&lt;/p&gt;
&lt;p&gt;If there is no data then I don't want anything displayed. &lt;/p&gt;
&lt;p&gt;I did try this but got an undefined index error:&lt;/p&gt;
&lt;p&gt;if (!$match3)&lt;br /&gt;
   return null;&lt;br /&gt;
else&lt;br /&gt;
return $match3;&lt;/p&gt;
&lt;p&gt;Is there a best practice when it comes to handling empty model operations?&lt;/p&gt;
&lt;p&gt;Much appreciated.&lt;br /&gt;
-Paul&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/iS3vbloET4c" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Thu, 04 Mar 2010 15:55:27 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4792 at http://planetcakephp.org</guid>
</item>
<item>
 <title>How to paginate existing model functions in CakePHP?</title>
 <link>http://stackoverflow.com/questions/2380570/how-to-paginate-existing-model-functions-in-cakephp</link>
 <description>&lt;p&gt;I have loads of model functions returning different datasets already.&lt;br /&gt;
I would like to be able to paginate these without having to rewrite them all using the paginate method in the controller. Is there a tidy way of doing this?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/QCwDKCx-pR4" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Thu, 04 Mar 2010 15:44:59 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4794 at http://planetcakephp.org</guid>
</item>
<item>
 <title>Children in the same Model - CakePHP</title>
 <link>http://stackoverflow.com/questions/2380425/children-in-the-same-model-cakephp</link>
 <description>&lt;p&gt;My table 'Post' has field: id, name, content, post_id&lt;br /&gt;
When i create new post, the field 'post_id'=0, but when I "answer" to Post, the field 'post_id' get id off answered post ID.&lt;br /&gt;
My question is, how get post by slug field width post_id=0 (parent) and get his children with 'post_id' = parent.id in one query?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/hhls2Fghjdk" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Thu, 04 Mar 2010 15:25:30 +0000</pubDate>
 <dc:creator>Weekly cakephp Questions - Stack Overflow</dc:creator>
 <guid isPermaLink="false">4796 at http://planetcakephp.org</guid>
</item>
<item>
 <title>JavaScript Meetup Hamburg + Slides</title>
 <link>http://feedproxy.google.com/~r/debuggable/~3/nkohVEbm3a0/javascript-meetup-hamburg-slides%3A4b8f9986-4e64-4755-b420-074dcbdd56cb</link>
 <description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Andy Wenk posted &lt;a href="http://blog.netzmeister-st-pauli.com/post/426345602/hhjs-first-meetup-hamburg"&gt;a very nice summary&lt;/a&gt; of the event.&lt;/p&gt;
&lt;p&gt;Last night Tim and I took a little road trip to Hamburg. I had no idea the &lt;a href="http://en.wikipedia.org/wiki/Reeperbahn"&gt;Reeperbahn&lt;/a&gt; looked like Las Vegas : ).&lt;/p&gt;
&lt;p&gt;Anyway, our actual destination was the first &lt;a href="http://twitter.com/hhjs"&gt;Hamburg JS&lt;/a&gt; meetup where &lt;a href="http://www.nonblocking.io/"&gt;Malte Ubl&lt;/a&gt; invited me to speak about node.js. The turnout was fantastic, and thanks to &lt;a href="http://www.sinnerschrader.de/"&gt;SinnerSchrader&lt;/a&gt;'s hosting of the event, there was plenty of pizza, beer and an absolutely fantastic location.&lt;/p&gt;
&lt;p&gt;I've also updated my previous node.js talk, all the examples should now be 0.1.30+ compatible, and the section about "The Future" of node has a more recent and interesting list of things that are on the radar:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.slideshare.net/the_undefined/nodejs-a-quick-tour-ii" title="Node.js - A Quick Tour II"&gt;Node.js - A Quick Tour II&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can also &lt;a href="http://felixge.s3.amazonaws.com/10/nodejs-a-quick-tour-2.pdf"&gt;download the slides as PDF&lt;/a&gt; (164 kb).&lt;/p&gt;
&lt;p&gt;--fg&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/QPYwG05xuLg" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Thu, 04 Mar 2010 11:43:53 +0000</pubDate>
 <dc:creator>Debuggable Ltd</dc:creator>
 <guid isPermaLink="false">4786 at http://planetcakephp.org</guid>
</item>
<item>
 <title>CakePHP sessions at gnuNify 2010</title>
 <link>http://www.abbasali.net/blog/2010/03/03/cakephp-sessions-at-gnunify-2010/</link>
 <description>&lt;p&gt;As mentioned in my earlier post gnuNify was held on Feb 19th and 20th 2010 at Symbiosis Institute of Computer Studies and Research, Pune.&lt;br /&gt;
Aditya and I had submitted two CFPs each and all of them were selected. My first CFP was a talk on Get going with CakePHP and the second one was a 4 [...]&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/RVDbpe9vFG4" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/english">English</category>
 <pubDate>Thu, 04 Mar 2010 09:01:08 +0000</pubDate>
 <dc:creator>Abbas Ali</dc:creator>
 <guid isPermaLink="false">4784 at http://planetcakephp.org</guid>
</item>
<item>
 <title>∞ Waarom we geen dorst krijgen terwijl we slapen</title>
 <link>http://bjornpost.com/sidenotes/read/waarom-we-geen-dorst-krijgen-terwijl-we-slapen</link>
 <description>&lt;blockquote&gt;
&lt;p&gt;New research suggests the body's internal clock is what prevents you from becoming dehydrated and needing to drink during sleep.&lt;/p&gt;
&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/planet-cakephp-aggregator-all/~4/iDs5r1eCiLg" height="1" width="1"/&gt;</description>
 <category domain="http://planetcakephp.org/aggregator/languages/dutch">Nederlands</category>
 <pubDate>Thu, 04 Mar 2010 07:41:42 +0000</pubDate>
 <dc:creator>Bjorn Post</dc:creator>
 <guid isPermaLink="false">4785 at http://planetcakephp.org</guid>
</item>
</channel>
</rss>
