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

<channel>
	<title>しみ備忘録 &#187; Yii Framework</title>
	<atom:link href="http://labo.shimi-zoo.com/post/category/php/yii-php/feed" rel="self" type="application/rss+xml" />
	<link>http://labo.shimi-zoo.com</link>
	<description>酔っぱらいスクリプターの備忘録。よく消える（意味ねぇ</description>
	<lastBuildDate>Tue, 11 May 2010 19:04:03 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>小メモ &#124; Yii Framework触るぜ日記(14)</title>
		<link>http://labo.shimi-zoo.com/post/100</link>
		<comments>http://labo.shimi-zoo.com/post/100#comments</comments>
		<pubDate>Tue, 11 May 2010 19:04:03 +0000</pubDate>
		<dc:creator>shimizu</dc:creator>
				<category><![CDATA[Yii Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://labo.shimi-zoo.com/?p=100</guid>
		<description><![CDATA[ハマったので備忘録。
YIiでサイトのデザインをthemeで作る際に罠はっけーーん！

themeでデザインする際にデフォルトのデザインように2カラム、1カラムとわけたりするよね。
で、その際にスキャッフォールディングで]]></description>
			<content:encoded><![CDATA[<p>ハマったので備忘録。<br />
YIiでサイトのデザインをthemeで作る際に罠はっけーーん！<br />
<span id="more-100"></span><br />
themeでデザインする際にデフォルトのデザインように2カラム、1カラムとわけたりするよね。<br />
で、その際にスキャッフォールディングで生成されたlayoutファイルみたく<br />
$this->beginContent(&#8216;application.views.layouts.main&#8217;);<br />
と<br />
$this->endContent();<br />
で囲む事になる（デフォルトのviews/layouts/column2.phpとか見るといいですよ）。<br />
で、今回怒ってるのはbeginContent()の引数がアレです。罠です。<br />
上の例だとprotected/views/layouts/main.phpを見ちゃいますから、themeを使うなら変えないとダメですよね。<br />
これの変え方がワカランチンでした。。。<br />
※今回だとwebroot/themes/hoge/views/layouts/main.phpを読み込みたい、とします。</p>
<p>色々試してみました。<br />
$this->beginContent($this->theme->basePath.&#8217;/views/layouts/main.php&#8217;);<br />
とか<br />
$this->beginContent( dirname(__FILE__).&#8217;/main.php&#8217;);<br />
とか<br />
$this->beginContent( &#8216;main.php&#8217;);<br />
とか<br />
$this->beginContent( &#8216;main&#8217;);<br />
とかしてもダメ。<br />
エラー出る。</p>
<p>「なんなねん！」</p>
<p>と、一時間位悩んだ結果、動いたのは下記の引数でした。<br />
$this->beginContent( &#8216;/layouts/main&#8217;);</p>
<p>もーよーわからんわ（´・ω・｀）どういうパス指定やねん･･･</p>
]]></content:encoded>
			<wfw:commentRss>http://labo.shimi-zoo.com/post/100/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yiiを紹介とかしてるスライドの紹介 &#124; Yii Framework触るぜ日記(13.5)</title>
		<link>http://labo.shimi-zoo.com/post/92</link>
		<comments>http://labo.shimi-zoo.com/post/92#comments</comments>
		<pubDate>Mon, 26 Apr 2010 09:39:25 +0000</pubDate>
		<dc:creator>shimizu</dc:creator>
				<category><![CDATA[Yii Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://labo.shimi-zoo.com/?p=92</guid>
		<description><![CDATA[なんとなく、yii を紹介してるスライドをいくつかまとめてみる。
スライドでの紹介とか見ると「へぇ～。やってみよっかな」ってなるよね。
なるよね？
Yii紹介
はじめてのyii
Yii Introduction
英語です]]></description>
			<content:encoded><![CDATA[<p>なんとなく、yii を紹介してるスライドをいくつかまとめてみる。<br />
スライドでの紹介とか見ると「へぇ～。やってみよっかな」ってなるよね。<br />
なるよね？</p>
<p><a href="http://www.slideshare.net/flttechkn/yii" target="_blank">Yii紹介</a></p>
<p><a href="http://handsout.jp/slide/1691" target="_blank">はじめてのyii</a></p>
<p><a href="http://www.slideshare.net/jasrags/yii-introduction" target="_blank">Yii Introduction</a><br />
英語ですが。<br />
ソースコードが少し多めなんで理解を深めるのにどうぞ。</p>
<p><a href="http://handsout.jp/slide/1153" target="_blank">XOOPSのモジュールをYiiで開発</a><br />
すげぇｗ</p>
<p>ってか日本語のスライド3つしか見つけられなかった(´・ω・`)<br />
増えてったら逐次たす！多分。</p>
]]></content:encoded>
			<wfw:commentRss>http://labo.shimi-zoo.com/post/92/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>guiのcrudツール&#8221;gii&#8221; &#124; Yii Framework触るぜ日記(13)</title>
		<link>http://labo.shimi-zoo.com/post/84</link>
		<comments>http://labo.shimi-zoo.com/post/84#comments</comments>
		<pubDate>Sat, 24 Apr 2010 10:06:32 +0000</pubDate>
		<dc:creator>shimizu</dc:creator>
				<category><![CDATA[Yii Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://labo.shimi-zoo.com/?p=84</guid>
		<description><![CDATA[giiはyiiのスキャフォールディングをweb画面上で行おうというもの。
イチイチ、sshで入ってゴニョゴニョしなくてもいい！
各フォームでフィールドにフォーカスするとそれに応じた説明も表示されるし、phpMyAdmin]]></description>
			<content:encoded><![CDATA[<p>giiはyiiのスキャフォールディングをweb画面上で行おうというもの。<br />
<div id="attachment_86" class="wp-caption alignnone" style="width: 310px"><a href="http://labo.shimi-zoo.com/wp-content/uploads/2010/04/Gii-a-Web-based-code-generator-for-Yii_1272101370628.png"><img src="http://labo.shimi-zoo.com/wp-content/uploads/2010/04/Gii-a-Web-based-code-generator-for-Yii_1272101370628-300x169.png" alt="Gii- a Web-based code generator for Yii" title="Gii- a Web-based code generator for Yii" width="300" height="169" class="size-medium wp-image-86" /></a><p class="wp-caption-text">Gii- a Web-based code generator for Yii</p></div><br />
イチイチ、sshで入ってゴニョゴニョしなくてもいい！<br />
各フォームでフィールドにフォーカスするとそれに応じた説明も表示されるし、phpMyAdminでテーブルさわってmodel作り直しなどもweb上からだと気軽に出来ますよね！</p>
<p>ただこのgii、実はまだ正式実装はされていません。<br />
Yii PHP framework 1.1.2からの実装予定らしいです。<br />
今使うにはsvnで最新のtrunkをcheckoutしないとダメです。<br />
えぇ、ガッツリ人柱ですね。<br />
素直に1.1.2をワクテカしておきましょう（・∀・）</p>
<p>あと誰か日本語に翻訳してくれるとハッピーですよね。<br />
エキサイト翻訳との往復は疲れる…</p>
<div id="attachment_88" class="wp-caption alignnone" style="width: 310px"><a href="http://labo.shimi-zoo.com/wp-content/uploads/2010/04/Gii-Model-Generator_1272101806557.png"><img src="http://labo.shimi-zoo.com/wp-content/uploads/2010/04/Gii-Model-Generator_1272101806557-300x193.png" alt="Gii - Model Generator" title="Gii - Model Generator" width="300" height="193" class="size-medium wp-image-88" /></a><p class="wp-caption-text">Gii - Model Generator</p></div>
]]></content:encoded>
			<wfw:commentRss>http://labo.shimi-zoo.com/post/84/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Widget試してみる Yii Framework触るぜ日記(12)</title>
		<link>http://labo.shimi-zoo.com/post/82</link>
		<comments>http://labo.shimi-zoo.com/post/82#comments</comments>
		<pubDate>Sat, 17 Apr 2010 20:11:25 +0000</pubDate>
		<dc:creator>shimizu</dc:creator>
				<category><![CDATA[Yii Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://labo.shimi-zoo.com/?p=82</guid>
		<description><![CDATA[widgetって、何て読むのが正解なんでしょうね？
ゥィジェット？ガジェット？
そういえば、widthはウィドゥスでheightはハイト（ヘイト）･･･ですよね？
さらにさらにaタグのhrefはエイチレフでimgのsrc]]></description>
			<content:encoded><![CDATA[<p>widgetって、何て読むのが正解なんでしょうね？<br />
ゥィジェット？ガジェット？<br />
そういえば、widthはウィドゥスでheightはハイト（ヘイト）･･･ですよね？<br />
さらにさらにaタグのhrefはエイチレフでimgのsrcはエスアールシー。です･･･よね？</p>
<p>さて、今回はwidgetを試してみるテストです。<br />
よくあるviewの共通部分を管理しようというものですよね。<br />
正直、公式サイトにある日本語のポートレットについてのページがエラーになっててよくわかんないですけど。<br />
とりいそぎ書き留めます。</p>
<p><span id="more-82"></span><br />
まずYiiでのwidgetの書き方は、きっとこうだ！</p>
<pre class="brush: php;">
class hellow extends CWidget
{
	public function run()
	{
		echo('Hellow');
	}
}
</pre>
<p>上記のファイルをhellow.phpとでもしてcompornentsディレクトリに入れてしまえいいです。<br />
もちろん、compornentsディレクトリの中は読み込んでますよね？<br />
みそはCWidgetを継承してrun()で表示したい内容をアレするだけです。<br />
使い方は</p>
<pre class="brush: php;">
$this-&gt;widget('hellow');
</pre>
<p>ってすればhellowクラスのwidgetがrun()します。</p>
<p>外部ファイルを用意して表示内容をそっちで設定したい場合は、</p>
<pre class="brush: php;">
class hellow extends CWidget
{
	public function run()
	{
		$this-&gt;render('application.components.view.hellow');
	}
}
</pre>
<p>とでもしてrenderで指定した場所（この場合protected/components/view/hellow.phpですよね）にベタ書きすればOKです。<br />
全てPHPなので好きに出来ますよね！</p>
<p>正直、この程度ならviewの方でやればいいじゃん！って感じですが俺のアルコールド度がかなりなモノになっているので･･･今日はここまで！<br />
明日は<a href="http://osaka.cssnite.jp/vol20/pre.html" target="_blank">CSS Nite in OSAKA, Vol.20 序章編</a>だけど起きれるかな？<br />
続きはwebで！</p>
]]></content:encoded>
			<wfw:commentRss>http://labo.shimi-zoo.com/post/82/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>エクステンション使ってみた Yii Framework触るぜ日記(11)</title>
		<link>http://labo.shimi-zoo.com/post/76</link>
		<comments>http://labo.shimi-zoo.com/post/76#comments</comments>
		<pubDate>Sat, 03 Apr 2010 11:14:36 +0000</pubDate>
		<dc:creator>shimizu</dc:creator>
				<category><![CDATA[Yii Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://labo.shimi-zoo.com/?p=76</guid>
		<description><![CDATA[Yiiにだって便利なエクステンションはあるんだい！
ってコトでいくつか使ってみました。
yii-userエクステンション
これは前に書いたや。
終わり。
ktaiエクステンション
ktai
微妙に使ってます。
というのも]]></description>
			<content:encoded><![CDATA[<p>Yiiにだって便利なエクステンションはあるんだい！<br />
ってコトでいくつか使ってみました。</p>
<h3 class="title"><span>yii-userエクステンション</span></h3>
<p>これは<a href="http://labo.shimi-zoo.com/post/71">前に書いた</a>や。<br />
終わり。</p>
<h3 class="title"><span>ktaiエクステンション</span></h3>
<p><a href="http://www.yiiframework.com/extension/ktai/" target="_blank">ktai</a><br />
微妙に使ってます。<br />
というのも、自分で書いた携帯用viewファイル読み込み使いたかったし、SoftBankでのUTF8化に対応してなかったので。。<br />
※SoftBank機だと書き込みフォームをUTF8にしないと絵文字送ってくれない機種などあります。</p>
<p>とか書いたけど携帯用サイトを構築するのに便利な機能が一通り揃ってますよ！<br />
docomo向けにcssをインライン化してくれたり、絵文字に対応、携帯用viewファイルなど。<br />
ただ、一個バグがあって連続した絵文字の表示が出来なかったです。<br />
とはいえ一箇所修正するだけっぽいので自分で直しちゃいましょう。<br />
filters.ktai.Emoji.phpの150行目あたりです。</p>
<pre class="brush: php;">
  static public function convert($str)
  {
    // $regexp = '/\[([ies]:[0-9]{1,3})\]/';
    $regexp = '/\[([ies\*]):([\x21-\x7E]+)\]/';
    return preg_replace_callback($regexp, array('Emoji', 'convert_callback'), $str);
  }
</pre>
<p>これを下記のように。</p>
<pre class="brush: php;">
  static public function convert($str)
  {
    // $regexp = '/\[([ies]:[0-9]{1,3})\]/';
    $regexp = '/\[([ies\*]):([\x21-\x7E]{1,3})\]/';
    return preg_replace_callback($regexp, array('Emoji', 'convert_callback'), $str);
  }
</pre>
<p>えぇ。<br />
見て分かるようにアップデートされた際に量指定演算子付け忘れられたダケみたいです。<br />
これで連続した絵文字も無問題になります。</p>
<h3 class="title"><span>firephp-logrouteエクステンション</span></h3>
<p><a href="http://www.yiiframework.com/extension/firephp-logroute/" target="_blank">firephp-logroute</a><br />
ログ出力をFirePHPに対応したヘッダーで出すエクステンションです。<br />
いや、別にCWebLogRouteでいいじゃん！って話もあるけど。<br />
上記の携帯エクステンションと一緒に使うとログ部分がSJIS化されずに化けたりしますしね。<br />
使い方は<a href="http://www.firephp.org/Wiki/Libraries/FirePHPCore" target="_blank">コチラ</a>でCoreファイルをDLしてvendorsに保存。<br />
firephp-logrouteエクステンションもDLして保存。<br />
あとはconfig/main.phpのlogの設定をかえるだけです。</p>
<pre class="brush: php;">
'log'=&gt;array(
    'class'=&gt;'CLogRouter',
    'routes'=&gt;array(
        array(
            'class' =&gt; 'ext.shiki.firePHPLogRoute.ShikiFirePHPLogRoute', // &quot;ext&quot; alias points to /protected/extensions
            'fbPath' =&gt; 'application.vendors.FirePHPCore031.lib.FirePHPCore.fb', // set path to fb.php
        ),
    ),
),
</pre>
<p>これで画面は綺麗なまま、FireBugでログをチェック出来ます。<br />
ヨカッタ（・∀・）</p>
<h3 class="title"><span>active-data-provider-with-scopesエクステンション</span></h3>
<p><a href="http://www.yiiframework.com/extension/active-data-provider-with-scopes/" target="_blank">active-data-provider-with-scopes</a><br />
これ。<br />
前回のNameScopeの時には書かなかったけど、CDataProvidorでNameScopeが使えないという弱点を克服するものです！<br />
まぁムチャすれば出来ないコトもなかったんですが、このエクステンションを使えばより直感的になります。<br />
使い方は…DLしてcompornentsディレクトリにでも放り込んで下さい。<br />
したら、ControllerでCをEに変更するだけです。<br />
例えばCRUDしたIndexアクションの場合は下記のような感じだと思います。</p>
<pre class="brush: php;">
	public function actionIndex()
	{
		$dataProvider=new CActiveDataProvider('Post');
		$this-&gt;render('index',array(
			'dataProvider'=&gt;$dataProvider,
		));
	}
</pre>
<p>これの<strong>CActiveDataProvider</strong>を<strong>EActiveDataProvider</strong>に変更するだけ。<br />
これでNameScopeを使う準備はOKです。<br />
雰囲気としては</p>
<pre class="brush: php;">
		$dataProvider=new EActiveDataProvider('Profile',array(
			'criteria'=&gt;array(
				'scope'=&gt;array('published'),
			),
		) );
</pre>
<p>やっほーい！<br />
便利なNameScopeが更に便利に使えちゃいます！</p>
<p>おまけ：ムリにCActiveDataProviderにsocpeを使うネタ。</p>
<pre class="brush: php;">
		$dataProvider=new CActiveDataProvider('Profile',array(
			'criteria'=&gt;Post::model()-&gt;published()-&gt;getDbCriteria(),
		) );
</pre>
<p>何か気持ち悪いよね！</p>
]]></content:encoded>
			<wfw:commentRss>http://labo.shimi-zoo.com/post/76/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Name Scopeってしゅごいねー Yii Framework触るぜ日記(10)</title>
		<link>http://labo.shimi-zoo.com/post/74</link>
		<comments>http://labo.shimi-zoo.com/post/74#comments</comments>
		<pubDate>Tue, 30 Mar 2010 14:33:59 +0000</pubDate>
		<dc:creator>shimizu</dc:creator>
				<category><![CDATA[Yii Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://labo.shimi-zoo.com/?p=74</guid>
		<description><![CDATA[「しゅごいねー」は不朽の名作『赤ちゃんと僕』のミノル君からパクりました。
YiiにはName Scopeという便利機能があります。
cakeとかSymfonyにもあるのかな？Railsからパクったらしいです。
例えば

]]></description>
			<content:encoded><![CDATA[<p>「しゅごいねー」は不朽の名作『赤ちゃんと僕』のミノル君からパクりました。</p>
<p>YiiにはName Scopeという便利機能があります。<br />
cakeとかSymfonyにもあるのかな？Railsからパクったらしいです。<br />
例えば</p>
<pre class="brush: php;">
class model
{
	public function scopes()
	{
		return array(
			'scope1'=&gt;array(
				'condition'=&gt;'status=:status',
				'params'=&gt;array(':status'=&gt;'public',
				'order'=&gt;'created',
			),
			'scope2'=&gt;array(
				'limit'=&gt;10,
			),
		);
	}
</pre>
<p>こんな感じで設定しておけば、</p>
<pre class="brush: php;">
$models = $model-&gt;scope1()-&gt;scope2()-&gt;findAll();
</pre>
<p>上記みたく書いたらscope1の条件とかscope2のlimitが反映されて検索してくれる。<br />
さらに、リレーション時にも使えて</p>
<pre class="brush: php;">
$model-&gt;scope1-&gt;with('comment:scope3')-&gt;findAll();
</pre>
<p>こんな感じでリレーションcommentで使うmodelにscope3が設定されてると、それが反映されて以下略、みたいな。</p>
<p>このName Scopeの素晴らしさはそれだけではなく、引数も扱えるんですよ。</p>
<pre class="brush: php;">
class model{
	function scopeHoge( $category ){
		$this-&gt;getDbCriteria()-&gt;mergeWith(array(
			'condition'=&gt;'category='.$category,
		));
		return $this;
	}
</pre>
<p>これで下記のように書けばcateogryが3のモノを取ってくる。</p>
<pre class="brush: php;">
$model-&gt;scopeHoge(3)-&gt;findAll();
</pre>
<p>便利ですよね。<br />
思わずRails先生の方向いて手をあわせました。</p>
<p>でも一個だけ弱点があって。。。<br />
引数を取れる関数バージョン時とリーレションでの適用を同時に使えないんですよ。</p>
<pre class="brush: php;">
$model-&gt;scope1()-&gt;with('comment:scopeHoge(3)')-&gt;findAll();
</pre>
<p>いや、引数取れないんだしいいじゃん！って話もあるんですけどね。<br />
リレーションで使うName Scopeは素直にscopes関数で設定してあげましょう。<br />
出来れば命名規則（プリフィックスでscopeとか）でもいいから関数対応してほしいナ。</p>
<p>あと、注意点としてwith()の返り値はmodel(CActiveRecode)じゃなくてCActiveFinderという別モノなので、with()からNameScopeにはチェイン出来ません。<br />
かならず『モデル->スコープ->with->find』という流れにするように気を付けましょう（・∀・）コレで10分ハマッタ！</p>
]]></content:encoded>
			<wfw:commentRss>http://labo.shimi-zoo.com/post/74/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ヨッパゲついでに小話２　Yii Framework触るぜ日記(9)</title>
		<link>http://labo.shimi-zoo.com/post/71</link>
		<comments>http://labo.shimi-zoo.com/post/71#comments</comments>
		<pubDate>Wed, 24 Mar 2010 18:21:50 +0000</pubDate>
		<dc:creator>shimizu</dc:creator>
				<category><![CDATA[Yii Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://labo.shimi-zoo.com/?p=71</guid>
		<description><![CDATA[ビール数杯と焼酎数杯でペロンペロンです。
こんなだと女の子に嫌われるゾ！
だからって酒飲まないのは負けみたいだし強くなろうね（・∀・）
さて、酔いついでに最近貯めていたYii PHP frameworkの小話を保存する。]]></description>
			<content:encoded><![CDATA[<p>ビール数杯と焼酎数杯でペロンペロンです。<br />
こんなだと女の子に嫌われるゾ！<br />
だからって酒飲まないのは負けみたいだし強くなろうね（・∀・）</p>
<p>さて、酔いついでに最近貯めていたYii PHP frameworkの小話を保存する。</p>
<h3 class="title"><span>Model名</span></h3>
<p>Model名はYiiの公式サイトでは頭文字を大文字にする事を推奨ます。<br />
と、あるんですがコレ、推奨じゃなくて必須(?)です。<br />
便利なリレーションのwith()で入れ子にした際に一文字目を大文字で探されます。</p>
<pre class="brush: php;">
    $posts=Post::model()-&gt;with(
    'author.profile',
    'author.posts',
    'categories')-&gt;findAll();
</pre>
<p>こんな感じでやった際に、author.profileのprofileなんかはProfile.phpで探されます。<br />
（この例だとpostsもPosts.phpで探します）<br />
ワイ、途中で全部大文字にしたがな！</p>
<h3 class="title"><span>Yii-userエクステンション</span></h3>
<p><a href="http://www.yiiframework.com/extension/yii-user/" target="_blank">Yii-userエクステンション</a>便利そうなんで使ってみました。<br />
その際の注意点を。<br />
まず･･･action名を省略して引数を持ったURLでアクセスするとurlManagerの設定(?)によってはエラーになります。<br />
恐らくpathに設定してたせいですが…。<br />
考えるのも面倒だったので下記の2箇所を修正しました。<br />
これは新規登録時とパスワード忘れた時用のメールに記載されるURLです。<br />
RegistrationController.phpの48行目の&#8217;/user/activation&#8217;を&#8217;/user/activation/activation&#8217;に。<br />
RecoveryControllerも変更（確か･･･コレ･･･だったよーな･･･）。<br />
あと、typoとか翻訳ファイル（元にはないけど/messages/jのファイル）に抜けがあるんで気をつけた方がいいです。<br />
modules/user/models/RegistrationForm.php<br />
こちらに、「users&#8217;s」ってのがありますが、これはtypoで正解は「user&#8217;s」のハズです（翻訳ファイルもそーなってる）。<br />
あとは翻訳ファイルに<br />
&#8216;Manage Profile Field&#8217;を追加<br />
&#8216;This users\&#8217;s email adress already exists.&#8217;を追加<br />
&#8216;Update&#8217;を追加<br />
これで使える気がします。<br />
他にもあれば教えて下さい！<br />
俺使ってるんで！</p>
<h3 class="title"><span>その他</span></h3>
<p>あった気がしたけど･･･アタマが回らないので。<br />
えー、今（2010/03/25）にYii PHP Framework試すならバージョン1.1.0がオススメです。<br />
1.1.1だとbeforeFindがマトモに動かないのでちょっと厳しいかなと思います。<br />
1.1.2で修正予定らしいのでそれが出たらそれで。</p>
<p>そんな感じです。<br />
こーゆー感じなのでグダグダな感じなのでYii Framework触るぜ日記はいつ終わるかわかりません。<br />
だけど、これだけ書いたら今度こそリセットしたくないなーとは思いました！<br />
いつかYiiの情報が日本語で溢れる日を夢見て、今日もあと２，３杯呑んで寝るとします（・∀・）</p>
]]></content:encoded>
			<wfw:commentRss>http://labo.shimi-zoo.com/post/71/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>アクション毎にCSSとかJavaScriptを使う　Yii Framework触るぜ日記(8)</title>
		<link>http://labo.shimi-zoo.com/post/69</link>
		<comments>http://labo.shimi-zoo.com/post/69#comments</comments>
		<pubDate>Wed, 24 Mar 2010 17:32:53 +0000</pubDate>
		<dc:creator>shimizu</dc:creator>
				<category><![CDATA[Yii Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://labo.shimi-zoo.com/?p=69</guid>
		<description><![CDATA[愚痴っただけでも何なので。
このページではhoge.cssを使いたい！
とかfoo.jsを読み込みたい！
ってのがあるんですよ。
ね。
そんなときの解決方法。
protected/view/layouts/main.ph]]></description>
			<content:encoded><![CDATA[<p>愚痴っただけでも何なので。</p>
<p>このページではhoge.cssを使いたい！<br />
とかfoo.jsを読み込みたい！<br />
ってのがあるんですよ。<br />
ね。<br />
そんなときの解決方法。</p>
<p>protected/view/layouts/main.phpを見てみると、な～んも書いてない。<br />
「オレ、ここで指定されたCSSとかJavaScriptはくよ！」<br />
そんな雰囲気がまったくない。</p>
<p>･･･あれ～っと思いつつAPIを見てるとそれらしきもの発見。<br />
CClientScriptがそれです。<br />
CWebApplicationのAPIに【clientScript: manages client scripts (javascripts and CSS).】<br />
と<a href="http://www.yiiframework.com/doc/api/CWebApplication#getClientScript-detail" target="_blank">書かれている</a>。<br />
CSSって書かれるし･･･。</p>
<p>ダメ元で試したら、やり方は簡単でした（さすがYii！）。<br />
Controllerの当該actionで下記のように書くだけ。</p>
<pre class="brush: php;">
Yii::app()-&gt;getClientScript()-&gt;registerCssFile( '/css/hoge.css' );
</pre>
<p>これで書いたactionの時のみ/css/hoge.cssを読み込みます！<br />
<a href="http://www.yiiframework.com/doc/api/CClientScript" target="_blank">CClientScript</a>のAPIを見れば他にどんな事ができるか一目瞭然です。<br />
layouts/main.phpには何ら特別な記述されてないのにっ！　不思議！！<br />
ソースを読もうかと思ったけどお酒が回ってるので諦めました。</p>
<p>まとめ<br />
今日のお寿司は美味しかったです（・∀・）ひゃっほーい！</p>
]]></content:encoded>
			<wfw:commentRss>http://labo.shimi-zoo.com/post/69/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>あれ？ Yii Framework触るぜ日記(7.5)</title>
		<link>http://labo.shimi-zoo.com/post/62</link>
		<comments>http://labo.shimi-zoo.com/post/62#comments</comments>
		<pubDate>Wed, 24 Mar 2010 08:24:10 +0000</pubDate>
		<dc:creator>shimizu</dc:creator>
				<category><![CDATA[Yii Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://labo.shimi-zoo.com/?p=62</guid>
		<description><![CDATA[日記というかただの愚痴なんで7.5です。
もしくはbug reportingですかね（・∀・）
CActiveRecode.phpのquery()のトコが気になる。
Yii PHP framework 1.1.0

	p]]></description>
			<content:encoded><![CDATA[<p>日記というかただの愚痴なんで7.5です。<br />
もしくはbug reportingですかね（・∀・）</p>
<p>CActiveRecode.phpのquery()のトコが気になる。<br />
Yii PHP framework 1.1.0</p>
<pre class="brush: php;">
	private function query($criteria,$all=false)
	{
		$this-&gt;beforeFind();
		$this-&gt;applyScopes($criteria);
		$command=$this-&gt;getCommandBuilder()-&gt;createFindCommand($this-&gt;getTableSchema(),$criteria);
		return $all ? $this-&gt;populateRecords($command-&gt;queryAll()) : $this-&gt;populateRecord($command-&gt;queryRow());
	}
</pre>
<p>だったのが<br />
Yii PHP framework 1.1.1<br />
では</p>
<pre class="brush: php;">
	private function query($criteria,$all=false)
	{
		$this-&gt;applyScopes($criteria);
		if(empty($criteria-&gt;with))
		{
			if(!$all)
				$criteria-&gt;limit=1;
			$this-&gt;beforeFind();
			$command=$this-&gt;getCommandBuilder()-&gt;createFindCommand($this-&gt;getTableSchema(),$criteria);
			return $all ? $this-&gt;populateRecords($command-&gt;queryAll()) : $this-&gt;populateRecord($command-&gt;queryRow());
		}
		else
			return $this-&gt;with($criteria-&gt;with)-&gt;query($criteria,$all);
	}
</pre>
<p>何か色々機能が増えてそうだね♪　って話じゃない。<br />
$this->applyScopes($criteria)を呼ぶタイミングが変わってるんですよ。<br />
$this->beforeFind()の前と後に。<br />
でapplyScopes()は何と言うか、CDbCriteria（よーするにSQLクエリー）の情報を混ぜる役目っぽいのですよ。</p>
<p>新しいバージョン(1.1.1)ではbeforeFind()の前に呼ばれている。<br />
これだと…そう、beforeFind()で条件を指定出来なくない！？<br />
って話。<br />
<a href="http://labo.shimi-zoo.com/post/32">Yii Framework触るぜ日記(4)</a>でやったshimiSoftDeleteが動いてなくて「あれ？俺、試してなかったっけ？」となっていたんですが…バグじゃね？<br />
念の為にyii-1.1.0で試したらちゃんと動くじゃねーか！<br />
仕様変更とも言えるかもしれないけど…検索条件さわれないbeforeFindに何の意味があるんですか（ノд｀）俺の数時間返せ…</p>
<p>Yii PHP framework 1.1.2で修正される事を切に願います。<br />
ってか誰か英語出来る人、本家に聞いてみてほしい(´・ω・`)</p>
<p>追記：速攻<br />
<a href="http://code.google.com/p/yii/issues/detail?id=698&#038;colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Stars%20Summary" target="_blank">issue見たらあった</a>。。。orz<br />
えー…なんなろこのキモチ(´・ω・`)</p>
<p>追記：one more thing!<br />
えーっと、1.1.2が出るまで自力で修正する人は<br />
CActiveRecode::query()の位置を変えるのと、CActiveFinder::query()の方も変更しないとwith()使った際にアレです。<br />
これでさらに30分は使った。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://labo.shimi-zoo.com/post/62/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>urlManager Yii Framework触るぜ日記(7)</title>
		<link>http://labo.shimi-zoo.com/post/52</link>
		<comments>http://labo.shimi-zoo.com/post/52#comments</comments>
		<pubDate>Thu, 18 Mar 2010 11:05:25 +0000</pubDate>
		<dc:creator>shimizu</dc:creator>
				<category><![CDATA[Yii Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://labo.shimi-zoo.com/?p=52</guid>
		<description><![CDATA[URLを変えたかったんです。
前にやった方法だと何だか長ったらしいじゃないですか。
http://shimi-zoo.com/member/view/id/1
上記のようなURLになるのを
http://shimi-zo]]></description>
			<content:encoded><![CDATA[<p>URLを変えたかったんです。<br />
前にやった方法だと何だか長ったらしいじゃないですか。</p>
<p>http://shimi-zoo.com/member/view/id/1</p>
<p>上記のようなURLになるのを</p>
<p>http://shimi-zoo.com/member/1</p>
<p>こんな感じでアクセスしたいんです。</p>
<p>方法は簡単でapplication/protected/config/main.phpに設定するだけです。<br />
公式の解説ページは<a href="http://www.yiiframework.com/doc/guide/ja/topics.url" target="_blank">コッチ</a>。</p>
<pre class="brush: php;">
'urlManager'=&gt;array(
'urlFormat'=&gt;'path',
'showScriptName'=&gt;false,
'rules'=&gt;array(
'member/&lt;id:\d+&gt;'=&gt;'member/view',
'member/&lt;id:\d+&gt;/&lt;_a:\w+&gt;'=&gt;'member/&lt;_a&gt;',
),
),
</pre>
<p>これで$_GET['id']で取得出来るし見た目的にもいい感じかな、と。<br />
6行目の指定で他のactionにも紐付けられる感じです。</p>
<p>URLの生成については</p>
<pre class="brush: php;">
$this-&gt;createUrl('view',array('id=&gt;1));
CHtml::link('リンクだよ', array('view','id'=&gt;1) );
CHtml::link('リンクだよ', array('member/view','id'=&gt;1) );
</pre>
<p>どれでやっても対応した形式のURLにしてくれます。</p>
<p>まぁ、それだけ。忘れる前にメモる！</p>
<p>追記：3/22<br />
urlManagerつながりでココに追記しておく。<br />
urlFormatをpathに設定するときはactionを省略してかつ、引数を持たせるとダメみたいですね。<br />
たとえばbookコントローラーのdefaultアクションにid=5を渡す時。<br />
/book/id/5<br />
みたいなIDになってbookのactionIdを動かそうとするワケです。<br />
普段は気をつければいいレベルだけどモジュールでそういうアクションを指定されてるとアウトですね。。。Yii-userとか。</p>
]]></content:encoded>
			<wfw:commentRss>http://labo.shimi-zoo.com/post/52/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
