<?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>BANSYSTEMSBLOG</title>
	<atom:link href="http://www.ban-systems.com/wordpress/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.ban-systems.com/wordpress</link>
	<description>Load of the ○○○○PHP!?</description>
	<lastBuildDate>Sat, 10 Jul 2010 09:58:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>坂東市でbaker集まる！？</title>
		<link>http://www.ban-systems.com/wordpress/?p=604</link>
		<comments>http://www.ban-systems.com/wordpress/?p=604#comments</comments>
		<pubDate>Sat, 10 Jul 2010 09:58:33 +0000</pubDate>
		<dc:creator>konnoy</dc:creator>
				<category><![CDATA[cakePHP]]></category>

		<guid isPermaLink="false">http://www.ban-systems.com/wordpress/?p=604</guid>
		<description><![CDATA[本日、20時過ぎにbakerお二方が遠路はるばる坂東市にお越しになってくれます。
@masa-pさん、@binbin4649さんです。
baker（ベイカー）とはcakePHP（ケイクピーエイチピー）を使用してWEB開発を行う人のこと。
僕もいろいろなところへ顔出しはしているので今回はきていただいちゃいましたw
もしかしたら今後もあるかもしれないので興味ある方はご連絡ください。
坂東市にショックを受けて二度目はないかもしれませんけど(^^;
一応こんな感じで集まるときは、コーディングもするだろうし、cakePHPの話もするだろうし、WEB全般の話をするだろうし、全く関係ない話もするだろうしで、つまりは全般的に勉強になる、為になると思います。
ちょっと嬉しい出来事なのでブログにアップさせてもらいました！
]]></description>
			<content:encoded><![CDATA[<p>本日、20時過ぎにbakerお二方が遠路はるばる坂東市にお越しになってくれます。<br />
@masa-pさん、@binbin4649さんです。<br />
baker（ベイカー）とはcakePHP（ケイクピーエイチピー）を使用してWEB開発を行う人のこと。</p>
<p>僕もいろいろなところへ顔出しはしているので今回はきていただいちゃいましたw<br />
もしかしたら今後もあるかもしれないので興味ある方はご連絡ください。<br />
坂東市にショックを受けて二度目はないかもしれませんけど(^^;</p>
<p>一応こんな感じで集まるときは、コーディングもするだろうし、cakePHPの話もするだろうし、WEB全般の話をするだろうし、全く関係ない話もするだろうしで、つまりは全般的に勉強になる、為になると思います。<br />
ちょっと嬉しい出来事なのでブログにアップさせてもらいました！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ban-systems.com/wordpress/?feed=rss2&amp;p=604</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bakeするとJs-&gt;submitで保存できるフォームが作れるテンプレート[cakePHP1.3以降対象]</title>
		<link>http://www.ban-systems.com/wordpress/?p=599</link>
		<comments>http://www.ban-systems.com/wordpress/?p=599#comments</comments>
		<pubDate>Mon, 28 Jun 2010 00:47:16 +0000</pubDate>
		<dc:creator>konnoy</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.ban-systems.com/wordpress/?p=599</guid>
		<description><![CDATA[JsHelper使ってますか！
僕は元気ですw
便利なものは使おうということで、Js->submitで保存できるテンプレートを作りました。
bakeするとadd.ctpとedit.ctpがJs->submitになるというものです。
Ajaxで保存します。
cake/console/templates/defaultをコピーして、vendors/shells/templatesへコピーします。
defaultをjssubmitへリネームします。
変更内容
1.Ajax処理にするため、保存時に全体を書き換えるめ、idでactionより上をすべて囲む
2.Js Helperを読み込む
3.Js->submitを設定する
4.大前提としてjQueryを用意する

//form.ctp
&#60;div id=&#34;&#60;?php echo $action ?&#62;&#34;&#62;
&#60;div class=&#34;&#60;?php echo $pluralVar;?&#62; form&#34;&#62;
&#60;?php echo &#34;&#60;?php echo \$this-&#62;Html-&#62;script('jquery', array('inline'=&#62;false));?&#62;\n&#34;;?&#62;
&#60;?php echo &#34;&#60;?php echo \$this-&#62;Form-&#62;create('{$modelClass}');?&#62;\n&#34;;?&#62;
	&#60;fieldset&#62;
 		&#60;legend&#62;&#60;?php echo &#34;&#60;?php printf(__('&#34; . Inflector::humanize($action) . &#34; %s', true), __('{$singularHumanName}', true)); ?&#62;&#34;;?&#62;&#60;/legend&#62;

&#60;table&#62;
&#60;?php
		echo &#34;\t&#60;?php\n&#34;;
		foreach ($fields as $field) {
			if (strpos($action, 'add') !== false &#38;&#38; $field == $primaryKey) {
				continue;
			} elseif (!in_array($field, array('created', 'modified', 'updated'))) {
				echo &#34;echo '&#60;tr&#62;&#60;td&#62;';\n&#34;;
				echo &#34;\t\techo [...]]]></description>
			<content:encoded><![CDATA[<p>JsHelper使ってますか！<br />
僕は元気ですw</p>
<p>便利なものは使おうということで、Js->submitで保存できるテンプレートを作りました。<br />
bakeするとadd.ctpとedit.ctpがJs->submitになるというものです。<br />
Ajaxで保存します。</p>
<p>cake/console/templates/defaultをコピーして、vendors/shells/templatesへコピーします。</p>
<p>defaultをjssubmitへリネームします。</p>
<p>変更内容<br />
1.Ajax処理にするため、保存時に全体を書き換えるめ、idでactionより上をすべて囲む<br />
2.Js Helperを読み込む<br />
3.Js->submitを設定する<br />
4.大前提としてjQueryを用意する</p>
<pre class="brush: php;">
//form.ctp
&lt;div id=&quot;&lt;?php echo $action ?&gt;&quot;&gt;
&lt;div class=&quot;&lt;?php echo $pluralVar;?&gt; form&quot;&gt;
&lt;?php echo &quot;&lt;?php echo \$this-&gt;Html-&gt;script('jquery', array('inline'=&gt;false));?&gt;\n&quot;;?&gt;
&lt;?php echo &quot;&lt;?php echo \$this-&gt;Form-&gt;create('{$modelClass}');?&gt;\n&quot;;?&gt;
	&lt;fieldset&gt;
 		&lt;legend&gt;&lt;?php echo &quot;&lt;?php printf(__('&quot; . Inflector::humanize($action) . &quot; %s', true), __('{$singularHumanName}', true)); ?&gt;&quot;;?&gt;&lt;/legend&gt;

&lt;table&gt;
&lt;?php
		echo &quot;\t&lt;?php\n&quot;;
		foreach ($fields as $field) {
			if (strpos($action, 'add') !== false &amp;&amp; $field == $primaryKey) {
				continue;
			} elseif (!in_array($field, array('created', 'modified', 'updated'))) {
				echo &quot;echo '&lt;tr&gt;&lt;td&gt;';\n&quot;;
				echo &quot;\t\techo \$this-&gt;Form-&gt;input('{$field}');\n&quot;;
				echo &quot;echo '&lt;/td&gt;&lt;/tr&gt;';\n&quot;;
			}
		}
		if (!empty($associations['hasAndBelongsToMany'])) {
			foreach ($associations['hasAndBelongsToMany'] as $assocName =&gt; $assocData) {
				echo &quot;echo '&lt;tr&gt;&lt;td&gt;'\n&quot;;
				echo &quot;\t\techo \$this-&gt;Form-&gt;input('{$assocName}');\n&quot;;
				echo &quot;echo '&lt;/td&gt;&lt;/tr&gt;'\n&quot;;
			}
		}
		echo &quot;\t?&gt;\n&quot;;
?&gt;
&lt;/table&gt;
	&lt;/fieldset&gt;
&lt;?php
	echo &quot;&lt;?php echo \$this-&gt;Js-&gt;submit(__('Save', true), array('update'=&gt;'#&quot;.$action.&quot;', 'url'=&gt;'&quot;.$action.&quot;', 'buffer'=&gt;false));?&gt;\n&quot;;
	echo &quot;&lt;?php echo \$this-&gt;Form-&gt;end();?&gt;\n&quot;;
?&gt;
&lt;/div&gt;

&lt;div class=&quot;actions&quot;&gt;
	&lt;h3&gt;&lt;?php echo &quot;&lt;?php __('Actions'); ?&gt;&quot;; ?&gt;&lt;/h3&gt;
	&lt;ul&gt;

&lt;?php if (strpos($action, 'add') === false): ?&gt;
		&lt;li&gt;&lt;?php echo &quot;&lt;?php echo \$this-&gt;Html-&gt;link(__('Delete', true), array('action' =&gt; 'delete', \$this-&gt;Form-&gt;value('{$modelClass}.{$primaryKey}')), null, sprintf(__('Are you sure you want to delete # %s?', true), \$this-&gt;Form-&gt;value('{$modelClass}.{$primaryKey}'))); ?&gt;&quot;;?&gt;&lt;/li&gt;
&lt;?php endif;?&gt;
		&lt;li&gt;&lt;?php echo &quot;&lt;?php echo \$this-&gt;Html-&gt;link(sprintf(__('List %s', true), __('{$pluralHumanName}', true)), array('action' =&gt; 'index'));?&gt;&quot;;?&gt;&lt;/li&gt;
&lt;?php
		$done = array();
		foreach ($associations as $type =&gt; $data) {
			foreach ($data as $alias =&gt; $details) {
				if ($details['controller'] != $this-&gt;name &amp;&amp; !in_array($details['controller'], $done)) {
					echo &quot;\t\t&lt;li&gt;&lt;?php echo \$this-&gt;Html-&gt;link(sprintf(__('List %s', true), __('&quot; . Inflector::humanize($details['controller']) . &quot;', true)), array('controller' =&gt; '{$details['controller']}', 'action' =&gt; 'index')); ?&gt; &lt;/li&gt;\n&quot;;
					echo &quot;\t\t&lt;li&gt;&lt;?php echo \$this-&gt;Html-&gt;link(sprintf(__('New %s', true), __('&quot; . Inflector::humanize(Inflector::underscore($alias)) . &quot;', true)), array('controller' =&gt; '{$details['controller']}', 'action' =&gt; 'add')); ?&gt; &lt;/li&gt;\n&quot;;
					$done[] = $details['controller'];
				}
			}
		}
?&gt;
	&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>jQueryを読み込んでいますが、別に読み込んでいる場合は不要です。</p>
<p>設置したらbakeします。</p>
<p>./cake/console/cake bake</p>
<p>Viewを選択します。<br />
Welcome to CakePHP v1.3.0 Console<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
App : app<br />
Path: /Applications/MAMP/htdocs/hoge/app<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Interactive Bake Shell<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
[D]atabase Configuration<br />
[M]odel<br />
[V]iew<br />
[C]ontroller<br />
[P]roject<br />
[F]ixture<br />
[T]est case<br />
[Q]uit<br />
What would you like to Bake? (D/M/V/C/P/F/T/Q)<br />
> v</p>
<p>※テーブルは任意のテーブルです</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Bake View<br />
Path: /Applications/MAMP/htdocs/hoge/app/views/<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Possible Controllers based on your current database:<br />
1. Users<br />
Enter a number from the list above,<br />
type in the name of another controller, or &#8216;q&#8217; to exit<br />
[q] >1 </p>
<p>※途中で下記のメッセージがでたら、jssubmitを選択する</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
You have more than one set of templates installed.<br />
Please choose the template set you wish to use:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
1. jssubmit<br />
2. default<br />
Which bake theme would you like to use? (1/2)<br />
[1] > 1</p>
<p>その後はそのままbakeするだけ！<br />
できあがったformはコントローラーを変更する必要はなく使用できるはずです。</p>
<p>デモ:http://bansystems.org:8080/hoge/users/add</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ban-systems.com/wordpress/?feed=rss2&amp;p=599</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>業務システムを意識したユーザーインターフェース on cakePHP</title>
		<link>http://www.ban-systems.com/wordpress/?p=584</link>
		<comments>http://www.ban-systems.com/wordpress/?p=584#comments</comments>
		<pubDate>Wed, 23 Jun 2010 04:22:54 +0000</pubDate>
		<dc:creator>konnoy</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.ban-systems.com/wordpress/?p=584</guid>
		<description><![CDATA[最近、クラサバのレガシーシステムをWEBに移行したいというご要望が多々あります。
しかしWEBシステムでデフォルトで構築した場合のユーザビリティは必ずしも使い勝手が良いとは言いづらいものがります。
そこでいささか手間ではありますが、JavaScriptとJQueryを利用して、レガシーなシステムを再現してみましょうという試みです。
コボルなどではキーボードオンリーで操作するのが常であり、入力オペレーターは既にそれに慣れすぎていて、
少しでもマウスを使うのことを敬遠しがちです。しかしこれはどうすることもできません。
現場の作業員は誰が登場しても説得することは不可能なのです（経験者は語る）
※飲みに誘っても断られるだけです(^^;
ま、ということで作りました。技術的には大したことではありませんがgithubに上げておきます。
使い方：
econtrol.phpをapp/views/helpersに置いてください。
controllerの設定

&#60;?php
class VouchersController extends AppController {

	var $name = 'Vouchers';
	var $helpers = array('Js', 'Econtrol');

viewの設定

//画面上のコントロールを順番にエンターで移動する処理
&#60;?php echo $this-&#62;Econtrol-&#62;handleEnter();?&#62;
&#60;?php echo $this-&#62;Econtrol-&#62;end();?&#62;

//submitから次のコントロールへ移動する処理
&#60;?php echo $this-&#62;Econtrol-&#62;submitEnter(&#34;#voucheradd&#34;,&#34;#ProductName&#34;);?&#62;
&#60;?php echo $this-&#62;Econtrol-&#62;submitEnter(&#34;#itemsadd&#34;,&#34;#ProductName&#34;);?&#62;

※submitからの移動はループ処理ではわからなかったのでそこだけjQueryになってます。
やり方教えてください！

//$this-&#62;Form-inputを$this-&#62;Econtrol-&#62;inputへ変更します。
echo $this-&#62;Econtrol-&#62;input('Invoice_no');

submitはajaxを使用しなければなりません。

//Js Helperを使用していますが、直接書いてもokです。
echo $js-&#62;submit('Save', array('id'=&#62;'voucheradd', 'update'=&#62;'#voucher','url' =&#62; '/vouchers/add'));
echo $js-&#62;writebuffer(array('inline'=&#62;false));

デモページはこちら。
http://bansystems.org:8080/kbms/demo/vouchers/add
githubはこちら。
http://github.com/konnoyosuke/econtrol
]]></description>
			<content:encoded><![CDATA[<p>最近、クラサバのレガシーシステムをWEBに移行したいというご要望が多々あります。<br />
しかしWEBシステムでデフォルトで構築した場合のユーザビリティは必ずしも使い勝手が良いとは言いづらいものがります。<br />
そこでいささか手間ではありますが、JavaScriptとJQueryを利用して、レガシーなシステムを再現してみましょうという試みです。</p>
<p>コボルなどではキーボードオンリーで操作するのが常であり、入力オペレーターは既にそれに慣れすぎていて、<br />
少しでもマウスを使うのことを敬遠しがちです。しかしこれはどうすることもできません。<br />
現場の作業員は誰が登場しても説得することは不可能なのです（経験者は語る）<br />
※飲みに誘っても断られるだけです(^^;</p>
<p>ま、ということで作りました。技術的には大したことではありませんがgithubに上げておきます。</p>
<p>使い方：<br />
econtrol.phpをapp/views/helpersに置いてください。</p>
<p>controllerの設定</p>
<pre class="brush: php;">
&lt;?php
class VouchersController extends AppController {

	var $name = 'Vouchers';
	var $helpers = array('Js', 'Econtrol');
</pre>
<p>viewの設定</p>
<pre class="brush: php;">
//画面上のコントロールを順番にエンターで移動する処理
&lt;?php echo $this-&gt;Econtrol-&gt;handleEnter();?&gt;
&lt;?php echo $this-&gt;Econtrol-&gt;end();?&gt;

//submitから次のコントロールへ移動する処理
&lt;?php echo $this-&gt;Econtrol-&gt;submitEnter(&quot;#voucheradd&quot;,&quot;#ProductName&quot;);?&gt;
&lt;?php echo $this-&gt;Econtrol-&gt;submitEnter(&quot;#itemsadd&quot;,&quot;#ProductName&quot;);?&gt;
</pre>
<p>※submitからの移動はループ処理ではわからなかったのでそこだけjQueryになってます。<br />
やり方教えてください！</p>
<pre class="brush: php;">
//$this-&gt;Form-inputを$this-&gt;Econtrol-&gt;inputへ変更します。
echo $this-&gt;Econtrol-&gt;input('Invoice_no');
</pre>
<p>submitはajaxを使用しなければなりません。</p>
<pre class="brush: php;">
//Js Helperを使用していますが、直接書いてもokです。
echo $js-&gt;submit('Save', array('id'=&gt;'voucheradd', 'update'=&gt;'#voucher','url' =&gt; '/vouchers/add'));
echo $js-&gt;writebuffer(array('inline'=&gt;false));
</pre>
<p>デモページはこちら。<br />
<a href="http://bansystems.org:8080/kbms/demo/vouchers/add">http://bansystems.org:8080/kbms/demo/vouchers/add</a></p>
<p>githubはこちら。<br />
<a href="http://github.com/konnoyosuke/econtrol">http://github.com/konnoyosuke/econtrol</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ban-systems.com/wordpress/?feed=rss2&amp;p=584</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cakebeerアイコン</title>
		<link>http://www.ban-systems.com/wordpress/?p=578</link>
		<comments>http://www.ban-systems.com/wordpress/?p=578#comments</comments>
		<pubDate>Wed, 16 Jun 2010 03:08:56 +0000</pubDate>
		<dc:creator>konnoy</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.ban-systems.com/wordpress/?p=578</guid>
		<description><![CDATA[おふざけで作ったCakeBeerアイコンです。

]]></description>
			<content:encoded><![CDATA[<p>おふざけで作ったCakeBeerアイコンです。</p>
<p><a href="http://www.ban-systems.com/wordpress/wp-content/uploads/2010/06/cakebeer.png"><img src="http://www.ban-systems.com/wordpress/wp-content/uploads/2010/06/cakebeer-283x300.png" alt="cakebeer" title="cakebeer" width="283" height="300" class="alignnone size-medium wp-image-581" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ban-systems.com/wordpress/?feed=rss2&amp;p=578</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cakePHP勉強会5@Tokyoに参加しました</title>
		<link>http://www.ban-systems.com/wordpress/?p=563</link>
		<comments>http://www.ban-systems.com/wordpress/?p=563#comments</comments>
		<pubDate>Wed, 09 Jun 2010 20:44:19 +0000</pubDate>
		<dc:creator>konnoy</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.ban-systems.com/wordpress/?p=563</guid>
		<description><![CDATA[cakePHP勉強してますか！
私は元気ですw
さて、去る５月２９日にcakePHP勉強会に参加してきました。
今回はサテライト会場が北海道、東海、福岡に企画されてそれぞれをSkypeで中継すると言う新しい試みで行われて大変盛り上がりました。
またNYから@yandoさんの発表がありました。
PHP Matsuriは大変興味があり、是非参加したいと思っております。→@phpmatsuriをフォローしましょうー。
ちなみに、弊社は晴海グランドホテルは以前開発合宿しました。連泊５日間…。
都内で観光するわけがなく、２４時間部屋に篭りっきりです（マジ）
しかし、４日目の夜にやばくなって、月島でもんじゃでリフレッシュしました（これもマジ）
月島もんじゃは最高です！

本題ですが、勉強会の内容の感想は月並みになってしまいますので、@MASA-Pさんのサイトにリンクが纏められていますのでそちらを参考にしてください。
http://blog.ecworks.jp/archives/1207
私自身、実務ではcakePHPをメインで開発を行っております。殆どが業務システムです。
最近では、印刷通販システムを構築しましたので公開しましたらお知らせしたいと思います。
面白くてハマっているのはjQueryですね。cakeで便利に使うためにいろいろ考えていきたいと思っております。
今後、cakePHPでやることは実務でmongoDBを組み合わせていきたいと思っております。
それと、これは目標ですがiPadで業務システムを推進していきたいと思っております。もちろんバックエンドはcakeでw
では今夏は#cake_beerで行きますか？(^-^¥
※時間がなくて色がぬれなかったのはかんべんしてください（バックトゥザフューチャーのドク風で）

]]></description>
			<content:encoded><![CDATA[<p>cakePHP勉強してますか！<br />
私は元気ですw</p>
<p>さて、去る５月２９日にcakePHP勉強会に参加してきました。<br />
今回はサテライト会場が北海道、東海、福岡に企画されてそれぞれをSkypeで中継すると言う新しい試みで行われて大変盛り上がりました。<br />
またNYから@yandoさんの発表がありました。<br />
PHP Matsuriは大変興味があり、是非参加したいと思っております。→@phpmatsuriをフォローしましょうー。</p>
<p>ちなみに、弊社は晴海グランドホテルは以前開発合宿しました。連泊５日間…。<br />
都内で観光するわけがなく、２４時間部屋に篭りっきりです（マジ）<br />
しかし、４日目の夜にやばくなって、月島でもんじゃでリフレッシュしました（これもマジ）<br />
月島もんじゃは最高です！<br />
<a href="http://www.ban-systems.com/wordpress/wp-content/uploads/2010/06/IMG_0552.JPG"><img src="http://www.ban-systems.com/wordpress/wp-content/uploads/2010/06/IMG_0552-150x150.jpg" alt="IMG_0552" title="IMG_0552" width="150" height="150" class="alignnone size-thumbnail wp-image-572" /></a></p>
<p>本題ですが、勉強会の内容の感想は月並みになってしまいますので、@MASA-Pさんのサイトにリンクが纏められていますのでそちらを参考にしてください。<br />
<a href="http://blog.ecworks.jp/archives/1207">http://blog.ecworks.jp/archives/1207</a></p>
<p>私自身、実務ではcakePHPをメインで開発を行っております。殆どが業務システムです。<br />
最近では、印刷通販システムを構築しましたので公開しましたらお知らせしたいと思います。<br />
面白くてハマっているのはjQueryですね。cakeで便利に使うためにいろいろ考えていきたいと思っております。<br />
今後、cakePHPでやることは実務でmongoDBを組み合わせていきたいと思っております。<br />
それと、これは目標ですがiPadで業務システムを推進していきたいと思っております。もちろんバックエンドはcakeでw</p>
<p>では今夏は#cake_beerで行きますか？(^-^¥<br />
※時間がなくて色がぬれなかったのはかんべんしてください（バックトゥザフューチャーのドク風で）<br />
<a href="http://www.ban-systems.com/wordpress/wp-content/uploads/2010/06/cakestudy51.jpg"><img src="http://www.ban-systems.com/wordpress/wp-content/uploads/2010/06/cakestudy51-300x225.jpg" alt="cakestudy5" title="cakestudy5" width="300" height="225" class="alignnone size-medium wp-image-576" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ban-systems.com/wordpress/?feed=rss2&amp;p=563</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deleteのlinkをimageへ変更する</title>
		<link>http://www.ban-systems.com/wordpress/?p=560</link>
		<comments>http://www.ban-systems.com/wordpress/?p=560#comments</comments>
		<pubDate>Thu, 13 May 2010 07:31:46 +0000</pubDate>
		<dc:creator>konnoy</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.ban-systems.com/wordpress/?p=560</guid>
		<description><![CDATA[Actionの削除リンクを画像にしたいですよね！
下記のようにします。

//cakephp1.3
&#60;?php echo $this-&#62;Html-&#62;link($this-&#62;Html-&#62;image(&#34;delete.jpg&#34;), array('action' =&#62; 'delete', $users['User']['id']), array('escape'=&#62;false), sprintf(__('Are you sure you want to delete # %s?', true), $users['User']['id']));?&#62;

]]></description>
			<content:encoded><![CDATA[<p>Actionの削除リンクを画像にしたいですよね！<br />
下記のようにします。</p>
<pre class="brush: php;">
//cakephp1.3
&lt;?php echo $this-&gt;Html-&gt;link($this-&gt;Html-&gt;image(&quot;delete.jpg&quot;), array('action' =&gt; 'delete', $users['User']['id']), array('escape'=&gt;false), sprintf(__('Are you sure you want to delete # %s?', true), $users['User']['id']));?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ban-systems.com/wordpress/?feed=rss2&amp;p=560</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[cakePHP]:電話番号のバリデーション</title>
		<link>http://www.ban-systems.com/wordpress/?p=556</link>
		<comments>http://www.ban-systems.com/wordpress/?p=556#comments</comments>
		<pubDate>Wed, 12 May 2010 00:50:32 +0000</pubDate>
		<dc:creator>konnoy</dc:creator>
				<category><![CDATA[cakePHP]]></category>

		<guid isPermaLink="false">http://www.ban-systems.com/wordpress/?p=556</guid>
		<description><![CDATA[
var $validate = array(
	'tel' =&#62; array(
	'rule'=&#62;array('custom','/\d{2,4}-\d{2,4}-\d{4}/'),
	'message'=&#62;'電話番号を入力してください。'
	)
 );

]]></description>
			<content:encoded><![CDATA[<pre class="brush: php;">
var $validate = array(
	'tel' =&gt; array(
	'rule'=&gt;array('custom','/\d{2,4}-\d{2,4}-\d{4}/'),
	'message'=&gt;'電話番号を入力してください。'
	)
 );
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ban-systems.com/wordpress/?feed=rss2&amp;p=556</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cakePHPでバリデーション パスワード確認用など</title>
		<link>http://www.ban-systems.com/wordpress/?p=117</link>
		<comments>http://www.ban-systems.com/wordpress/?p=117#comments</comments>
		<pubDate>Tue, 11 May 2010 05:10:06 +0000</pubDate>
		<dc:creator>konnoy</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.ban-systems.com/wordpress/?p=117</guid>
		<description><![CDATA[cakePHPでのバリデーションは便利ですね！
実際の画面にはemailやpasswordなど確認用のフィールドが存在すると思います。
確認用のバリデーションは下記のように設定します。

&#60;?php
class User extends AppModel {
var $name = 'User';

var $validate = array(
	'email' =&#62; array(
		'email' =&#62; array(
			'rule' =&#62; array('email', true),
			'message' =&#62; 'メールアドレスを正しく入力してください。'
		),
		'email' =&#62; array(
			'rule' =&#62; 'isUnique',
			'message' =&#62; 'このメールアドレスはすでに使用されています。'
		),
	  'confirmFields' =&#62; array(
		'rule' =&#62; array('confirmFields', 'email_confirm'),
		'message' =&#62; 'emailが一致しません',
		),
	),

	'email_confirm' =&#62; array(
		'email' =&#62; array(
		'rule' =&#62; array('email', true),
		'message' =&#62; 'メールアドレスを正しく入力してください。'
		),
	),

	'new_password' =&#62; array(
	  'minLength' =&#62; array(
		  'rule' =&#62; array('minLength', 8),
		 [...]]]></description>
			<content:encoded><![CDATA[<p>cakePHPでのバリデーションは便利ですね！<br />
実際の画面にはemailやpasswordなど確認用のフィールドが存在すると思います。<br />
確認用のバリデーションは下記のように設定します。</p>
<pre class="brush: php;">
&lt;?php
class User extends AppModel {
var $name = 'User';

var $validate = array(
	'email' =&gt; array(
		'email' =&gt; array(
			'rule' =&gt; array('email', true),
			'message' =&gt; 'メールアドレスを正しく入力してください。'
		),
		'email' =&gt; array(
			'rule' =&gt; 'isUnique',
			'message' =&gt; 'このメールアドレスはすでに使用されています。'
		),
	  'confirmFields' =&gt; array(
		'rule' =&gt; array('confirmFields', 'email_confirm'),
		'message' =&gt; 'emailが一致しません',
		),
	),

	'email_confirm' =&gt; array(
		'email' =&gt; array(
		'rule' =&gt; array('email', true),
		'message' =&gt; 'メールアドレスを正しく入力してください。'
		),
	),

	'new_password' =&gt; array(
	  'minLength' =&gt; array(
		  'rule' =&gt; array('minLength', 8),
		  'message' =&gt; 'パスワードは8文字以上の長さで入力してください。。'
		  ),
	  'notEmpty' =&gt; array(
		'rule' =&gt; 'notEmpty',
		'message' =&gt; 'パスワードを入力してください。'
			),
	  'confirmFields' =&gt; array(
		'rule' =&gt; array('confirmFields', 'password_confirm'),
		'message' =&gt; 'パスワードが一致しません',
		),
	 ),
	'password_confirm' =&gt; array(
	  'minLength' =&gt; array(
		  'rule' =&gt; array('minLength', 8),
		  'message' =&gt; 'パスワードは8文字以上の長さで入力してください。。'
		  ),
	  'notEmpty' =&gt; array(
		'rule' =&gt; 'notEmpty',
		'message' =&gt; 'パスワードを入力してください。'
		),
	),
);

//$data:バリデーション名; $target:フィールド名;
function confirmFields($data, $target) {
	$source = '';
	if (isset($target)) {
		$source = array_shift($data);
	}
	return $source == $this-&gt;data[$this-&gt;name][$target];
}
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ban-systems.com/wordpress/?feed=rss2&amp;p=117</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cakePHP1.3 Htmlヘルパーからimage出力</title>
		<link>http://www.ban-systems.com/wordpress/?p=107</link>
		<comments>http://www.ban-systems.com/wordpress/?p=107#comments</comments>
		<pubDate>Sat, 10 Apr 2010 23:00:18 +0000</pubDate>
		<dc:creator>konnoy</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.ban-systems.com/wordpress/?p=107</guid>
		<description><![CDATA[cakePHP1.3からは引数の指定が変わっていました。
cakePHP1.2では、



&#60;?php
echo $html-&#62;link(
    $html-&#62;image(&#34;recipes/6.jpg&#34;, array(&#34;alt&#34; =&#62; &#34;Brownies&#34;)),
    &#34;recipes/view/6&#34;,
    null, null, false
);
?&#62;


cakePHP1.3では、


&#60;?php
echo $html-&#62;link(
    $html-&#62;image(&#34;recipes/6.jpg&#34;, array(&#34;alt&#34; =&#62; &#34;Brownies&#34;)),
    &#34;recipes/view/6&#34;,
    array('escape'=&#62;false)
);
?&#62;


$html->linkでも動きますが、1.3からの書き方は$this->Html->linkになっています。
]]></description>
			<content:encoded><![CDATA[<p>cakePHP1.3からは引数の指定が変わっていました。</p>
<p>cakePHP1.2では、</p>
<div style="font-size:small;">
<pre class="brush: php;">

&lt;?php
echo $html-&gt;link(
    $html-&gt;image(&quot;recipes/6.jpg&quot;, array(&quot;alt&quot; =&gt; &quot;Brownies&quot;)),
    &quot;recipes/view/6&quot;,
    null, null, false
);
?&gt;
</pre>
</div>
<p>cakePHP1.3では、</p>
<div style="font-size:small;">
<pre class="brush: php;">
&lt;?php
echo $html-&gt;link(
    $html-&gt;image(&quot;recipes/6.jpg&quot;, array(&quot;alt&quot; =&gt; &quot;Brownies&quot;)),
    &quot;recipes/view/6&quot;,
    array('escape'=&gt;false)
);
?&gt;
</pre>
</div>
<p>$html->linkでも動きますが、1.3からの書き方は$this->Html->linkになっています。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ban-systems.com/wordpress/?feed=rss2&amp;p=107</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tracでの複数プロジェクト管理</title>
		<link>http://www.ban-systems.com/wordpress/?p=90</link>
		<comments>http://www.ban-systems.com/wordpress/?p=90#comments</comments>
		<pubDate>Wed, 17 Feb 2010 04:00:03 +0000</pubDate>
		<dc:creator>konnoy</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.ban-systems.com/wordpress/?p=90</guid>
		<description><![CDATA[※mod_pythonやdigest認証は設定済みです。
複数プロジェクト管理するために、trac-adminで新しいリポジトリを指定して作成した場合に、
もともとあるユーザを新しいプロジェクトで権限を与える必要があります。
１.複数プロジェクト

２.管理画面が表示されない。

３.利用可能な管理パネルが存在しません

４.コンソールから権限を設定します。まずインタラクティブモードにする。
trac-admin [path/to/project-dir]

５.パーミッションを設定する。
Trac [patth/to/project] > permission add yosuke TRAC_ADMIN
６.管理画面が表示される。

プロジェクト毎にTracの権限設定が必要。
]]></description>
			<content:encoded><![CDATA[<p>※mod_pythonやdigest認証は設定済みです。</p>
<p>複数プロジェクト管理するために、trac-adminで新しいリポジトリを指定して作成した場合に、<br />
もともとあるユーザを新しいプロジェクトで権限を与える必要があります。</p>
<p>１.複数プロジェクト<br />
<img src="http://www.ban-systems.com/wordpress/wp-content/uploads/2010/02/10021701-300x169.jpg" alt="10021701" title="10021701" width="300" height="169" class="alignnone size-medium wp-image-94" /></p>
<p>２.管理画面が表示されない。<br />
<img src="http://www.ban-systems.com/wordpress/wp-content/uploads/2010/02/10021702-300x85.jpg" alt="10021702" title="10021702" width="300" height="85" class="alignnone size-medium wp-image-95" /></p>
<p>３.利用可能な管理パネルが存在しません<br />
<img src="http://www.ban-systems.com/wordpress/wp-content/uploads/2010/02/10021703-300x134.jpg" alt="10021703" title="10021703" width="300" height="134" class="alignnone size-medium wp-image-96" /></p>
<p>４.コンソールから権限を設定します。まずインタラクティブモードにする。<br />
<code>trac-admin [path/to/project-dir]</code><br />
<img src="http://www.ban-systems.com/wordpress/wp-content/uploads/2010/02/10021704-300x86.jpg" alt="10021704" title="10021704" width="300" height="86" class="alignnone size-medium wp-image-97" /></p>
<p>５.パーミッションを設定する。</p>
<p><code>Trac [patth/to/project] > permission add yosuke TRAC_ADMIN</code></p>
<p>６.管理画面が表示される。<br />
<img src="http://www.ban-systems.com/wordpress/wp-content/uploads/2010/02/10021705-300x78.jpg" alt="10021705" title="10021705" width="300" height="78" class="alignnone size-medium wp-image-98" /></p>
<p>プロジェクト毎にTracの権限設定が必要。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ban-systems.com/wordpress/?feed=rss2&amp;p=90</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
