<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>CakePHP | Web活メモ帳</title>
	<atom:link href="https://blog.verygoodtown.com/tag/cakephp/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.verygoodtown.com</link>
	<description>WEB開発者が使える世界の情報を発信します</description>
	<lastBuildDate>Tue, 03 Jul 2012 00:03:49 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.9.10</generator>
<site xmlns="com-wordpress:feed-additions:1">122803348</site>	<item>
		<title>cakephpを使って10分でCMSを作る方法</title>
		<link>https://blog.verygoodtown.com/2011/07/cakephp-10-minutes-cms/</link>
					<comments>https://blog.verygoodtown.com/2011/07/cakephp-10-minutes-cms/#comments</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Wed, 06 Jul 2011 01:00:04 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=7612</guid>

					<description><![CDATA[<p>こんにちわ。 先日cakephpを使って10分でCMSを作る方法を教える必要があったのですが、まとめた資料をブログでもシェアします。 CMSってこんなに簡単に作れるんだ！を体験してもらえたら幸いです。 環境はすでに構築し [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2011/07/cakephp-10-minutes-cms/">cakephpを使って10分でCMSを作る方法</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></description>
										<content:encoded><![CDATA[<p>こんにちわ。<br />
先日cakephpを使って10分でCMSを作る方法を教える必要があったのですが、まとめた資料をブログでもシェアします。<br />
CMSってこんなに簡単に作れるんだ！を体験してもらえたら幸いです。</p>
<p><span id="more-7612"></span></p>
<p>環境はすでに構築してある前提ですが、ローカルサーバーを立てたい場合には、<br />
以下のサイトが参考になるかと思います。</p>
<ul>
<li><a href="http://www.be-webdesigner.com/technotes/server/install/xampp.htm" target="_blank">XAMPPのインストール for Windows</a></li>
<li><a href="http://www.be-webdesigner.com/technotes/server/install/mamp.htm" target="_blank">MAMPのインストール for Mac</a></li>
</ul>
<p>ではでは、早速挑戦してみましょう！</p>
<h3>1.CakePHPの最新版をダウンロード</h3>
<p>まずはCakePHPの公式サイトから最新版をダウンロードします。<br />
<a href="https://github.com/cakephp/cakephp/downloads" target="_blank">https://github.com/cakephp/cakephp/downloads</a></p>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/07/20110704-01-1.jpg" alt="20110704 01 1" title="20110704-01-1.jpg" border="0" width="582" height="399" /></p>
<p>ダウンロードしたファイルを解凍すると長い名前になっているので、「cakephp」などにリネームしておきます。</p>
<p>そしてFTPソフトでサーバーにアップロードします。アップ先は公開ディレクトリにしてください。</p>
<p>SSHで実行する場合は、以下のコマンドを叩きます。</p>
<pre class="code">
wget https://github.com/cakephp/cakephp/tarball/1.3
tar xvfz 1.3
mv ./cakephp-cakephp-ee16348/ ./cakephp/
</pre>
<h3>1.CakePHPのセットアップ</h3>
<p>それでは、CakePHPが動作するようにセットアップしていきます。</p>
<p>セットアップにはbakeというコマンドを使用します。<br />
これはコマンドラインでMVC　（M=モデル、V＝ビュー、C＝コントローラー）のプログラムを自動で生成してくれる機能です。<br />
爆速でプログラミングできるようになるので、今回はこれを使います。</p>
<p>それでは、まずターミナルを立ち上げて以下のコマンドを実行しましょう。<br />
今回はnewappというディレクトリを作成して、そこに全て格納するようにします。</p>
<p>cakephpへのパスは先ほどダウンロードしたディレクトリです。<br />
適時変更しながら読み進めてくださいね。</p>
<pre class="code">
$ cakephp/cake/console/cake bake <span class="update">← bakeコマンドを実行します。</span>

Welcome to CakePHP v1.3.10 Console
---------------------------------------------------------------
App : public
Path: /home/username/public
---------------------------------------------------------------
What is the full path for this app including the app directory name?
 Example:/home/username/public/myapp  
[/home/username/public/myapp] > <span class="update">/home/username/public/newapp
 ←パスを指定します。</span>

Bake Project
Skel Directory: /home/username/public/cakephp/cake/console/templates/skel
Will be copied to: /home/username/public/newapp
---------------------------------------------------------------
Look okay? (y/n/q) 
[y] > <span class="update">←空Enter</span>
Do you want verbose output? (y/n) 
[n] >  <span class="update">←空Enter</span>
---------------------------------------------------------------
Created: newapp in /home/username/public/newapp
---------------------------------------------------------------

Creating file /home/username/public/newapp/views/pages/home.ctp
Wrote `/home/username/public/newapp/views/pages/home.ctp`
Welcome page created
Random hash key created for 'Security.salt'
Random seed created for 'Security.cipherSeed'
CAKE_CORE_INCLUDE_PATH set to /home/username/public/cakephp in webroot/index.php
CAKE_CORE_INCLUDE_PATH set to /home/username/public/cakephp in webroot/test.php
Remember to check these value after moving to production server
Your database configuration was not found. Take a moment to create one.
---------------------------------------------------------------
Database Configuration:
---------------------------------------------------------------
Name:  
[default] >  <span class="update">←空Enter</span>
Driver: (db2/firebird/mssql/mysql/mysqli/odbc/oracle/postgres/sqlite/sybase) 
[mysql] >  <span class="update">←空Enter。MySQLを使う。</span>
Persistent Connection? (y/n) 
[n] > <span class="update">←空Enter</span>
Database Host:  
[localhost] > <span class="update">←DBのホスト名を入力。今回はlocalhostを使用。</span>
Port?  
[n] > <span class="update">←空Enter。ポートはデフォルトを使用。</span>
User:  
[root] > hoge <span class="update">←DBのユーザー名を指定</span>
Password:  
> fuga <span class="update">←DBのパスワードを指定</span>
Database Name:  
[cake] > hoge <span class="update">←DB名を指定</span>
Table Prefix?  
[n] > <span class="update">←空Enter</span>
Table encoding?  
[n] > <span class="update">←空Enter</span>

---------------------------------------------------------------
The following database configuration will be created:
---------------------------------------------------------------
Name:         default
Driver:       mysql
Persistent:   false
Host:         localhost
User:         hoge
Pass:         ************
Database:     hoge
---------------------------------------------------------------
Look okay? (y/n) 
[y] > <span class="update">←この内容でOKなら空Enter。</span>
Do you wish to add another database configuration?  
[n] > <span class="update">←空Enter。DB設定は１つのみ。</span>

Creating file /home/username/public/newapp/config/database.php
Wrote `/home/username/public/newapp/config/database.php`
</pre>
<p>これで /home/username/public/newapp にアプリケーションがセットアップできました。</p>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/07/20110704-02.jpg" alt="20110704 02" title="20110704-02.jpg" border="0" width="500" height="326" /></p>
<p>↑http://[ドメイン]/newapp/にアクセスして、ページが表示されればひとまずOKです。</p>
<h3>2.テーブルを作成する</h3>
<p>それでは、CakePHPで更新するテーブルを作成します。<br />
今回はPostテーブルという名前で作成します。</p>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/07/20110704-03.jpg" alt="20110704 03" title="20110704-03.jpg" border="0" width="500" height="130" /></p>
<p>↑タイトルと本文だけのシンプルな構造です。</p>
<p>SQLはこんな感じです。</p>
<pre class="code">
CREATE TABLE IF NOT EXISTS `posts` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `title` varchar(255) character set utf8 NOT NULL,
  `body` text character set utf8 NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 ;
</pre>
<h3>3.アプリケーションのセットアップ</h3>
<p>ここから再度コンソールに戻ってbakeを実行します。<br />
オプションの引数でアプリ名を指定します。</p>
<pre class="code">
$ cakephp/cake/console/cake bake -app newapp
<span class="update">←newappのセットアップを行います</span>

Welcome to CakePHP v1.3.10 Console
---------------------------------------------------------------
App : newapp
Path: /home/username/public/newapp
---------------------------------------------------------------
Interactive Bake Shell
---------------------------------------------------------------
[D]atabase Configuration
[M]odel
[V]iew
[C]ontroller
[P]roject
[F]ixture
[T]est case
[Q]uit
What would you like to Bake? (D/M/V/C/P/F/T/Q) 
> M <span class="update">←モデルを作成します。</span>
---------------------------------------------------------------
Bake Model
Path: /home/username/public/newapp/models/
---------------------------------------------------------------
Possible Models based on your current database:
1. Post
Enter a number from the list above,
type in the name of another model, or 'q' to exit  
[q] > 1 <span class="update">←Postモデルを作成する</span>
Would you like to supply validation criteria 
for the fields in your model? (y/n) 
[y] > <span class="update">←空Enter。入力チェックを追加します。</span>

Field: id
Type: integer
---------------------------------------------------------------
Please select one of the following validation options:
---------------------------------------------------------------
1 - alphanumeric
2 - between
3 - blank
4 - boolean
5 - cc
6 - comparison
7 - custom
8 - date
9 - decimal
10 - email
11 - equalto
12 - extension
13 - inlist
14 - ip
15 - maxlength
16 - minlength
17 - money
18 - multiple
19 - notempty
20 - numeric
21 - phone
22 - postal
23 - range
24 - ssn
25 - time
26 - url
27 - userdefined
28 - uuid
29 - Do not do any validation on this field.
... or enter in a valid regex validation string.
  
[29] >  <span class="update">←空Enter。idフィールドは入力チェックはしない。</span>

Field: title
Type: string
---------------------------------------------------------------
Please select one of the following validation options:
---------------------------------------------------------------
1 - alphanumeric
2 - between
3 - blank
4 - boolean
5 - cc
6 - comparison
7 - custom
8 - date
9 - decimal
10 - email
11 - equalto
12 - extension
13 - inlist
14 - ip
15 - maxlength
16 - minlength
17 - money
18 - multiple
19 - notempty
20 - numeric
21 - phone
22 - postal
23 - range
24 - ssn
25 - time
26 - url
27 - userdefined
28 - uuid
29 - Do not do any validation on this field.
... or enter in a valid regex validation string.
  
[19] >  <span class="update">←空Enter。タイトルを必須項目にする。</span>
Would you like to add another validation rule? (y/n) 
[n] > y <span class="update">←続けて入力チェックを追加する</span>

Field: title
Type: string
---------------------------------------------------------------
Please select one of the following validation options:
---------------------------------------------------------------
1 - alphanumeric
2 - between
3 - blank
4 - boolean
5 - cc
6 - comparison
7 - custom
8 - date
9 - decimal
10 - email
11 - equalto
12 - extension
13 - inlist
14 - ip
15 - maxlength
16 - minlength
17 - money
18 - multiple
19 - notempty
20 - numeric
21 - phone
22 - postal
23 - range
24 - ssn
25 - time
26 - url
27 - userdefined
28 - uuid
29 - Do not do any validation on this field.
... or enter in a valid regex validation string.
  
[19] > 15 <span class="update">←タイトルの文字数制限を行う。</span>
Would you like to add another validation rule? (y/n) 
[n] > <span class="update">←空Enter。次の項目へ。</span>

Field: body
Type: text
---------------------------------------------------------------
Please select one of the following validation options:
---------------------------------------------------------------
1 - alphanumeric
2 - between
3 - blank
4 - boolean
5 - cc
6 - comparison
7 - custom
8 - date
9 - decimal
10 - email
11 - equalto
12 - extension
13 - inlist
14 - ip
15 - maxlength
16 - minlength
17 - money
18 - multiple
19 - notempty
20 - numeric
21 - phone
22 - postal
23 - range
24 - ssn
25 - time
26 - url
27 - userdefined
28 - uuid
29 - Do not do any validation on this field.
... or enter in a valid regex validation string.
  
[29] > 19 <span class="update">←本文を必須にする</span>
Would you like to add another validation rule? (y/n) 
[n] > <span class="update">←空Enter。次の項目へ。</span>

Field: created
Type: datetime
---------------------------------------------------------------
Please select one of the following validation options:
---------------------------------------------------------------
1 - alphanumeric
2 - between
3 - blank
4 - boolean
5 - cc
6 - comparison
7 - custom
8 - date
9 - decimal
10 - email
11 - equalto
12 - extension
13 - inlist
14 - ip
15 - maxlength
16 - minlength
17 - money
18 - multiple
19 - notempty
20 - numeric
21 - phone
22 - postal
23 - range
24 - ssn
25 - time
26 - url
27 - userdefined
28 - uuid
29 - Do not do any validation on this field.
... or enter in a valid regex validation string.
  
[29] > <span class="update">←空Enter。作成日は入力チェックはしない</span>

Field: modified
Type: datetime
---------------------------------------------------------------
Please select one of the following validation options:
---------------------------------------------------------------
1 - alphanumeric
2 - between
3 - blank
4 - boolean
5 - cc
6 - comparison
7 - custom
8 - date
9 - decimal
10 - email
11 - equalto
12 - extension
13 - inlist
14 - ip
15 - maxlength
16 - minlength
17 - money
18 - multiple
19 - notempty
20 - numeric
21 - phone
22 - postal
23 - range
24 - ssn
25 - time
26 - url
27 - userdefined
28 - uuid
29 - Do not do any validation on this field.
... or enter in a valid regex validation string.
  
[29] > <span class="update">←空Enter。更新日は入力チェックはしない</span>
Would you like to define model associations
(hasMany, hasOne, belongsTo, etc.)? (y/n) 
[y] > n <span class="update">←モデルのアソシエーション。今回は使用しない</span>

---------------------------------------------------------------
The following Model will be created:
---------------------------------------------------------------
Name:       Post
DB Table:   `posts`
Validation: Array
(
    [title] => Array
        (
            [notempty] => notempty
            [maxlength] => maxlength
        )

    [body] => Array
        (
            [notempty] => notempty
        )

)

---------------------------------------------------------------
Look okay? (y/n) 
[y] > <span class="update">←上記プレビューの内容で良ければ空Enter</span>

Baking model class for Post...

Creating file /home/username/public/newapp/models/post.php
Wrote `/home/username/public/newapp/models/post.php`
SimpleTest is not installed. Do you want to bake unit test files anyway? (y/n) 
[y] > n <span class="update">←自動テストは今回は作成しない</span>
</pre>
<p>これでModelの設定は完了です。<br />
次にControllerを設定します。</p>
<pre class="code">
---------------------------------------------------------------
Interactive Bake Shell
---------------------------------------------------------------
[D]atabase Configuration
[M]odel
[V]iew
[C]ontroller
[P]roject
[F]ixture
[T]est case
[Q]uit
What would you like to Bake? (D/M/V/C/P/F/T/Q) 
> C <span class="update">←コントローラーを作成</span>
---------------------------------------------------------------
Bake Controller
Path: /home/username/public/newapp/controllers/
---------------------------------------------------------------
Possible Controllers based on your current database:
1. Posts
Enter a number from the list above,
type in the name of another controller, or 'q' to exit  
[q] > 1 <span class="update">←Postを選択</span>
---------------------------------------------------------------
Baking PostsController
---------------------------------------------------------------
Would you like to build your controller interactively? (y/n) 
[y] >  <span class="update">←空Enter。対話式で作成します。</span>
Would you like to use dynamic scaffolding? (y/n) 
[n] >  <span class="update">←空Enter。scaffoldは使用しない。</span>
Would you like to create some basic class methods 
(index(), add(), view(), edit())? (y/n) 
[n] > y <span class="update">←Postデータの一覧や追加変更処理を自動生成する</span>
Would you like to create the basic class methods for admin routing? (y/n) 
[n] >  <span class="update">←空Enter。URLにadminを使用しない。</span>
Would you like this controller to use other helpers
besides HtmlHelper and FormHelper? (y/n) 
[n] >  <span class="update">←空Enter。Htmlヘルパーを使用しない。</span>
Would you like this controller to use any components? (y/n) 
[n] >  <span class="update">←空Enter。コンポーネントを使用しない。</span>
Would you like to use Session flash messages? (y/n) 
[y] >  <span class="update">←空Enter。flashコンポーネントを使用する。</span>

---------------------------------------------------------------
The following controller will be created:
---------------------------------------------------------------
Controller Name:
	Posts
---------------------------------------------------------------
Look okay? (y/n) 
[y] >  <span class="update">←上記プレビューの内容で良ければ空Enter</span>

Creating file /home/username/public/newapp/controllers/posts_controller.php
Wrote `/home/username/public/newapp/controllers/posts_controller.php`
SimpleTest is not installed. Do you want to bake unit test files anyway? (y/n) 
[y] > n <span class="update">←自動テストは今回は作成しない</span>
</pre>
<p>これでコントローラーも完了です。<br />
最後にViewファイルを作ります。</p>
<pre class="code">
---------------------------------------------------------------
Interactive Bake Shell
---------------------------------------------------------------
[D]atabase Configuration
[M]odel
[V]iew
[C]ontroller
[P]roject
[F]ixture
[T]est case
[Q]uit
What would you like to Bake? (D/M/V/C/P/F/T/Q) 
> V <span class="update">←Viewを選択</span>
---------------------------------------------------------------
Bake View
Path: /home/username/public/newapp/views/
---------------------------------------------------------------
Possible Controllers based on your current database:
1. Posts 
Enter a number from the list above,
type in the name of another controller, or 'q' to exit  
[q] > 1 <span class="update">←Postを選択</span>
Would you like bake to build your views interactively?
Warning: Choosing no will overwrite Posts views if it exist. (y/n) 
[n] > y <span class="update">←上書きを許可</span>
Would you like to create some CRUD views
(index, add, view, edit) for this controller?
NOTE: Before doing so, you'll need to create your controller
and model classes (including associated models). (y/n) 
[y] >  <span class="update">←空Enter。一覧や追加変更ページを自動生成する</span>
Would you like to create the views for admin routing? (y/n) 
[n] >  <span class="update">←空Enter。URLにadminを含むページを作成しない。</span>

Creating file /home/username/public/newapp/views/posts/index.ctp
Wrote `/home/username/public/newapp/views/posts/index.ctp`

Creating file /home/username/public/newapp/views/posts/view.ctp
Wrote `/home/username/public/newapp/views/posts/view.ctp`

Creating file /home/username/public/newapp/views/posts/add.ctp
Wrote `/home/username/public/newapp/views/posts/add.ctp`

Creating file /home/username/public/newapp/views/posts/edit.ctp
Wrote `/home/username/public/newapp/views/posts/edit.ctp`
---------------------------------------------------------------

View Scaffolding Complete.
</pre>
<p>これで表示画面も設定が終わりました。</p>
<p>１点だけ、ファイルを修正する必要があります。</p>
<p>Postモデルのタイトルチェックで追加した文字数制限ですが、<br />
制限したい文字数を記述する必要があるので直接ファイルを書き換えます。</p>
<p>newapp/models/post.phpを開いたら、16行目近辺を以下のように修正します。</p>
<pre class="brush:php;">
'maxlength' => array(
				'rule' => array('maxlength'),
               ・・・
</pre>
<p>↓</p>
<pre class="brush:php;">
'maxlength' => array(
				'rule' => array('maxlength', 255),
</pre>
<p>これでデータの登録更新処理部分は完了です。</p>
<p>ひとまずブラウザから以下のURLにアクセスして動作を確認してみてください。<br />
http://[ドメイン]/newapp/posts/</p>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/07/20110704-04.jpg" alt="20110704 04" title="20110704-04.jpg" border="0" width="500" height="286" /></p>
<p>↑上のような画面が生成されていればOKです。</p>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/07/20110704-05.jpg" alt="20110704 05" title="20110704-05.jpg" border="0" width="500" height="273" /></p>
<p>↑更新画面もばっちりできています。</p>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/07/20110704-06.jpg" alt="20110704 06" title="20110704-06.jpg" border="0" width="500" height="381" /></p>
<p>↑エラー画面もばっちりです。<br />
実際にデータが登録できる事も確認してみてください。</p>
<h3>ログイン画面を作る</h3>
<p>まだこれで終わりではないですよ。<br />
そうです。管理者だけが更新できるようにするためのログイン画面が必要ですね。</p>
<p>ここはbakeだけでは作れないので、手を動かします。<br />
まずはログインできるユーザー情報を格納するテーブルを作ります。</p>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/07/20110704-07.jpg" alt="20110704 07" title="20110704-07.jpg" border="0" width="500" height="122" /></p>
<p>SQL</p>
<pre class="code">
CREATE TABLE IF NOT EXISTS `users` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `username` varchar(255) character set utf8 NOT NULL,
  `password` varchar(255) character set utf8 NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 ;
</pre>
<p>先ほどのPostと同様にUserでもbakeして、controller、model、viewを作成します。<br />
内容は先ほどと同じでOKです。</p>
<pre class="code">
$ cakephp/cake/console/cake bake -app newapp
</pre>
<p>それぞれのファイルを作成したら<br />
users_controller.phpを以下のように編集します。</p>
<p>newapp/controllers/users_controller.php</p>
<pre class="brush:php;">
class UsersController extends AppController {
	var $name = 'Users';
	$components = array('Auth');
	
	function login(){
	}
	function logout(){
	    $this->Auth->logout();
	}
}
</pre>
<p><strong>ログイン画面を作成</strong></p>
<p>app/views/usersフォルダ内にlogin.ctpファイルを作成します。<br />
以下の内容をコピーしてください。</p>
<p>newapp/views/users/login.ctp</p>
<pre class="brush:php;">
 if  ($session->check('Message.auth')) $session->flash('auth');
 echo $form->create('User', array('action' => 'login'));
 echo $form->input('username');
 echo $form->input('password');    
 echo $form->end('Login');
</pre>
<p><strong>ログアウト画面を作成</strong></p>
<p>同時にlogout.ctpも作成します。</p>
<p>newapp/views/users/logout.ctp</p>
<pre class="brush:html;">
<h3>ログアウトしました。</h3>
</pre>
<p>これでログインフォームが出来ました。<br />
次に、ログインするためのユーザー名とパスワードをDBに設定します。</p>
<p>その際にパスワードは暗号化する必要があるのですが、<br />
以下の手順で簡単に暗号化したパスワードを知る事ができますよ。</p>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/07/20110704-08.jpg" alt="20110704 08" title="20110704-08.jpg" border="0" width="499" height="475" /></p>
<p>SQL</p>
<pre class="code">
INSERT INTO  `users` (
`id` ,
`username` ,
`password` ,
`created` ,
`modified`
)
VALUES (
NULL ,  'test',  'cd2409a5830bc21d461a2911da440ea877fab27b',  '2011-07-05 00:00:00',  '2011-07-05 00:00:00'
);
</pre>
<p>最後にpost_controller.phpに認証が必要ないアクションを指定します。<br />
indexとviewアクションは一般ユーザーが見れて良いページなので<br />
この２つのアクションだけ認証が必要ないようにします。</p>
<p>以下のコードをpost_controller.phpに追加してください。</p>
<p>newapp/controllers/posts_controller.php</p>
<pre class="brush:php;">
var $components = array('Auth');

function beforeFilter()
{
    $this->Auth->allow('index', 'view');
}
</pre>
<p>これで完了です！</p>
<p>さあ、http://[ドメイン]/newapp/posts/　にアクセスしてみてください。<br />
ログイン画面が出て、ユーザー名とパスワードを入力するとページが開けるようになりました。</p>
<p>以上で終了です。<br />
簡単に設置できるよう、色々はしょっている部分もあります。ご了承ください。<br />
何かわからない事や質問などありましたらお気軽にコメントくださいね。</p>
<h3>読むべきサイトやブログ記事</h3>
<p>もっと色々な機能が知りたい方やCakePHPを触ってみたい方は以下のサイトやブログを参考にすると色々勉強になると思います。私もいつもお世話になっております。</p>
<ul>
<li><a href="http://book.cakephp.org/ja" target="_blank">CakePHP マニュアル</a></li>
<li><a href="http://cakephp.jp/modules/newbb/" target="_blank">コミュニティ</a></li>
<li><a href="http://d.hatena.ne.jp/cakephper/" target="_blank">cakephperの日記(CakePHP, MongoDB)</a></li>
<li><a href="http://d.hatena.ne.jp/hiromi2424/" target="_blank">24時間CakePHP</a></li>
<li><a href="http://weble.org/category/cakephp" target="_blank">WEBLE</a></li>
<li><a href="http://www.1x1.jp/blog/category/cakephp" target="_blank">Shin x blog</a></li>
<li><a href="http://1-byte.jp/2011/03/09/10_things_you_must_know_about_cakephp/" target="_blank">CakePHP開発者が知るべき10のこと</a></li>
<li><a href="http://fresh.pure-white.jp/cakephp" target="_blank">Fresh! &raquo; CakePHPで作る会員管理システム</a></li>
<li><a href="http://mark-story.com/tags/view/cakephp" target="_blank">Mark Story</a></li>
</ul>
<p>書籍ではこの本がおすすめです。cakephp1.2が対象なのですが、基礎的な部分からテストのやり方など<br />
とてもためになる情報が満載です。</p>
<p><iframe src="//rcm-jp.amazon.co.jp/e/cm?t=msyk5569-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4839930651&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>また、手前味噌ですが当ブログの<a href="https://blog.verygoodtown.com/tag/cakephp/" target="_blank">CakePHPタグ</a>もぜひどうぞ。</p>
<p>以上、cakephpを使って10分でCMSを作る方法でした。</p>The post <a href="https://blog.verygoodtown.com/2011/07/cakephp-10-minutes-cms/">cakephpを使って10分でCMSを作る方法</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2011/07/cakephp-10-minutes-cms/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7612</post-id>	</item>
		<item>
		<title>CakePHPでjQueryを使って画像をトリミングするコンポーネント</title>
		<link>https://blog.verygoodtown.com/2011/01/jquery-image-upload-crop/</link>
					<comments>https://blog.verygoodtown.com/2011/01/jquery-image-upload-crop/#respond</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Mon, 31 Jan 2011 01:10:18 +0000</pubDate>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[crop]]></category>
		<category><![CDATA[jquery]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=6344</guid>

					<description><![CDATA[<p>CakePHPで画像をトリミングするコンポーネントがBakeryにありましたので、ご紹介。 アップロードした画像から必要な部分だけをトリミングできるようになります。 UIにはjQueryのプラグインを使って実装しているよ [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2011/01/jquery-image-upload-crop/">CakePHPでjQueryを使って画像をトリミングするコンポーネント</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/01/20110130-03.jpg" alt="20110130-03" title="20110130-03" width="500" height="234" class="alignnone size-full wp-image-6345" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/01/20110130-03.jpg 500w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2011/01/20110130-03-300x140.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></p>
<p>CakePHPで画像をトリミングするコンポーネントが<a href="http://bakery.cakephp.org/articles/klagoggle_myopenid_com/2010/08/25/jquery-image-upload-crop" target="_blank">Bakery</a>にありましたので、ご紹介。<br />
<span id="more-6344"></span><br />
アップロードした画像から必要な部分だけをトリミングできるようになります。<br />
UIにはjQueryのプラグインを使って実装しているようです。</p>
<p>使用にはGDライブラリが必要になりますが、一般的なサーバーにはインストールされていると思います。<br />
コンポーネントを使用するには、リサイズ用のコンポーネントと一緒にヘルパーを設定して、フォームを作成していくようです。</p>
<pre class="brush:php;">
var $helpers = array('Cropimage')
var $components = array('JqImgcrop');
</pre>
<p>これは便利そうですね。<br />
詳しい使い方はBakeryを参照ください！</p>The post <a href="https://blog.verygoodtown.com/2011/01/jquery-image-upload-crop/">CakePHPでjQueryを使って画像をトリミングするコンポーネント</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2011/01/jquery-image-upload-crop/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6344</post-id>	</item>
		<item>
		<title>CakePHPのデバッグレベルをブラウザから切り替えるFirefox拡張</title>
		<link>https://blog.verygoodtown.com/2010/12/cakephp-debug-mode-change-from-firefox/</link>
					<comments>https://blog.verygoodtown.com/2010/12/cakephp-debug-mode-change-from-firefox/#respond</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Wed, 22 Dec 2010 07:41:39 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[ブラウザと拡張機能]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[firefox addon]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=5756</guid>

					<description><![CDATA[<p>「CakeDebug」はブラウザからCakePHPのデバッグレベルを切り替えるFirefox拡張です。 インストールすると、ブラウザのステータスバーにCakeアイコンとデバッグレベルが表示されるようになります。 右クリッ [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2010/12/cakephp-debug-mode-change-from-firefox/">CakePHPのデバッグレベルをブラウザから切り替えるFirefox拡張</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></description>
										<content:encoded><![CDATA[<p>「<a href="https://github.com/tenkoma/CakeDebugHelper" target="_blank">CakeDebug</a>」はブラウザからCakePHPのデバッグレベルを切り替えるFirefox拡張です。</p>
<p>インストールすると、ブラウザのステータスバーにCakeアイコンとデバッグレベルが表示されるようになります。<br />
<img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101222-02.jpg" alt="20101222-02" title="20101222-02" width="236" height="134" class="alignnone size-full wp-image-5757" /></p>
<p>右クリックからデバッグレベルを選択、変更できるようになりました。<br />
CakePHP開発者の方は全員入れて良いのではないでしょうか！</p>
<p><span id="more-5756"></span></p>
<h3>設定方法</h3>
<p>コンポーネントを<a href="https://github.com/tenkoma/CakeDebugHelper" target="_blank">github</a>からダウンロードして、コンポーネントに読み込むだけです。</p>
<p>app_controller.phpに設定すると良いでしょう。</p>
<pre class="brush:php;">

class AppController extends Controller {
    var $components = array(
        'DebugControl',
    );
}
</pre>
<p>デバッグレベルが0の場合には動作しないようです。<br />
必ず1以上の値を設定してください。</p>
<pre class="brush:php;">
Configure::write('debug', 1);
</pre>The post <a href="https://blog.verygoodtown.com/2010/12/cakephp-debug-mode-change-from-firefox/">CakePHPのデバッグレベルをブラウザから切り替えるFirefox拡張</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2010/12/cakephp-debug-mode-change-from-firefox/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5756</post-id>	</item>
		<item>
		<title>CakePHPで普段使っているpluginをまとめてみた</title>
		<link>https://blog.verygoodtown.com/2010/12/cakephp-my-best-plugin/</link>
					<comments>https://blog.verygoodtown.com/2010/12/cakephp-my-best-plugin/#comments</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Tue, 21 Dec 2010 01:20:58 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[plugin]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=5716</guid>

					<description><![CDATA[<p>2010年を振り返る意味で、自分がCakePHPで開発する際に良く使うプラグインをまとめてみました。 誰かのお役に立てれば幸いです。 1.cakeplus ■ よく使うバリデーションをまとめたBehaviorであるadd [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2010/12/cakephp-my-best-plugin/">CakePHPで普段使っているpluginをまとめてみた</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101220-07.png" alt="20101220-07" title="20101220-07" width="180" height="180" class="alignnone size-full wp-image-5723" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101220-07.png 180w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101220-07-150x150.png 150w" sizes="(max-width: 180px) 100vw, 180px" /></p>
<p>2010年を振り返る意味で、自分がCakePHPで開発する際に良く使うプラグインをまとめてみました。<br />
誰かのお役に立てれば幸いです。</p>
<p><span id="more-5716"></span></p>
<p><a href="http://d.hatena.ne.jp/cakephper/20090909/1252461412" target="_blank"></p>
<h3>1.cakeplus</h3>
<p></a></p>
<p><strong>■ よく使うバリデーションをまとめたBehaviorであるadd_validation_rule</strong><br />
モデルでバリデーションする際に本当に使います。</p>
<pre class="brush:php;">

var $validate = array(
 		'hoge' => array(
			"rule1" => array('rule' => array('katakana_only'),
 				'message' => 'hogeにカタカナ以外が含まれています'
 			),
 		),
 	);
</pre>
<p><strong>■ 自動でhiddenタグを生成するヘルパーformhidden</strong></p>
<p>確認画面を挟む際にhiddenに入力情報をまとめて出力してくれます。</p>
<pre class="brush:php;">
echo $formhidden->hiddenVars();
</pre>
<p>このプラグインを知ってから、CakePHPで作ったサイトには全て組み込んでいるぐらい必須のプラグインです。<br />
<strong>フォームを作成する際にはもう手放せません</strong>。</p>
<p><a href="http://d.hatena.ne.jp/cakephper/20100224/1266986492" target="_blank"></p>
<h3>2.XformHelper</h3>
<p></a></p>
<p>フォーム入力画面と確認画面で共通で使えるヘルパーです。<br />
確認画面を作る際に、確認画面用のviewを作らなくてもよいので大変便利に使わせてもらってます。</p>
<p>例えば、こんなviewをelementに作ったとします。</p>
<pre class="brush:php;">

echo 'タイトル：';
echo $xformjp->input('Post.title');

</pre>
<p>そうすると、入力画面と確認画面のviewから このelementを読み込むだけで、<br />
・入力画面ではフォームを表示<br />
・確認画面では入力されたテキストを表示<br />
を自動的に切り替えてくれる素敵仕様になっています。<br />
これもまず手放せないプラグインとなっています。</p>
<p><a href="https://github.com/kvz/cakephp-commentor-plugin" target="_blank"></p>
<h3>3. cakephp-commentor-plugin</h3>
<p></a></p>
<p>コメントを表示するプラグインです。<br />
投稿はajaxで出来るようになっているので、組み込みも簡単です。</p>
<p>コメントスパム対策プラグインであるAkismetや、連続投稿の防止、IP制限など<strong>様々なスパム対策が施されています</strong>。</p>
<p>使う時はこんな感じでelementを組み込むだけです。</p>
<pre class="brush:php;">

//投稿済みのコメント一覧を表示します
echo $this->element('comments/index', array(
    			'plugin' => 'commentor',
    			'commentParent' => $commentParent,
				));

//投稿フォームを表示します
echo $this->element('comments/add', array(
    		'plugin' => 'commentor',
		));

</pre>
<p><a href="https://github.com/cakephp/debug_kit" target="_blank"></p>
<h3>4. debug_kit</h3>
<p></a></p>
<p>言わずと知れた最強デバッガー。<br />
POSTやViewへ渡した変数の出力やSQLの表示など、必要な情報をブラウザで確認できるようになります。</p>
<p>これはコンポーネントにプラグインを指定するだけで使えるようになります。</p>
<pre class="brush:php;">

var $components = array('DebugKit.Toolbar');

</pre>
<p><a href="http://www.meiocodigo.com/projects/meioupload" target="_blank"></p>
<h3>5. MeioUpload Behavior</h3>
<p></a></p>
<p>画像のアップロードビヘイビア。<br />
プラグイン使用時に画像のフォーム名を指定して、<br />
WWWROOTの下にモデル名 / カラム名 のフォルダを作成すると、該当箇所に勝手にアップロードしてくれます。</p>
<p>リサイズのサイズ設定も初期値を設定してあげるだけで自動的によしなにしてくれます。</p>
<pre class="brush:php;">
    var $actsAs = array(
        'Meioupload.MeioUpload' => array(
            'image' => array(
                'thumbsizes' => array(
                //サムネイルのサイズをここで指定します。
    				'large'  => array('width'=>450, 'height'=>450, 'zoomcrop'=>null),
                ),
            ),
        ),
	);
</pre>
<p><a href="https://github.com/davidpersson/media/tree/master" target="_blank">MediaPlugin</a>という高機能なファイルアップローダーもあるのですが、画像ファイルだけ上げれば良い場合にはこっちを使う事が多いです。</p>
<p><a href="http://hal456.net/qdmail/" target="_blank"></p>
<h3>6. qdmail</h3>
<p></a></p>
<p> PHP高機能日本語メール送信ライブラリ。<br />
メール送信の際はもうこれで良いでしょう的な最強メールClass。</p>
<p>コンポーネントととして利用する場合には、初期値をよしなにしてくれるプラグイン<a href="http://wp.serpere.info/archives/1090" target="_blank">cakephp-qdmailer</a>は必須です。</p>
<p>以下はQdmailerを使用したサンプル</p>
<pre class="brush:php;">
$this->Qdmailer->to( "送信先メールアドレス" );
$this->Qdmailer->subject("サブジェクト");
$this->Qdmailer->from( "送信者のメールアドレス" );

//メール本文はelementを使用
$this->Qdmailer->cakeText( $this->data, 'element名', 'default');

//送信処理
if (!$result = $this->Qdmailer -> send()) {

    //メール送信時にエラーが発生した場合にログを出力
	$message = print_r($this->Qdmailer->errorStatment(false),true);
	$this->log($message);
	$this->log($this->data);
}</pre>
<p><a href="http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1619&#038;forum=6" target="_blank"></p>
<h3>7. multibox_validation</h3>
<p></a></p>
<p>チェックボックスをグループとして扱うためのビヘイビア。</p>
<p>チェックボックスのチェック数をバリデートできるようになります。<br />
例えば、1個以上、4個以下のチェックの場合にエラーを発生させるような動作なんかに使います。</p>
<pre class="brush:php;">
var $actsAs  = array(
    'MultiboxValidation' => array(
        'name' => 'house',
        'min' => '1',
        'max' => '4',
        'message'=>'1から4個の範囲でチェックしてください'
    ),
);</pre>
<p>データはシリアライズされて格納されるのでなかなか便利です。</p>
<p><a href="http://bakery.cakephp.org/articles/dardosordi/2008/07/29/multivalidatablebehavior-using-many-validation-rulesets-per-model" target="_blank"></p>
<h3>8. MultivalidatableBehavior</h3>
<p></a></p>
<p>Validationの必須ルールを動的に変更します。<br />
データ登録時と編集時でバリデーションが違ったり、同じModelでもページ毎にバリデーションが違う場合なんかに良く使います。</p>
<pre class="brush:php;">
function register() { 
    $this->User->setValidation('register'); 

    //登録時にのみチェックするバリデーションに変更します。
} 

function password() { 
    $this->User->setValidation('changePassword'); 

    //パスワード変更時にのみチェックするバリデーションに変更します。
}
</pre>
<p><a href="http://bakery.cakephp.org/articles/alkemann/2008/09/21/orderedbehavior-2-1" target="_blank"></p>
<h3>9. OrderedBehavior</h3>
<p></a></p>
<p>並び順を指定したり変更する事ができます。<br />
idを指定するだけで、一つ上（下）のデータと順番を入れ替える事ができます。</p>
<pre class="brush:php;">
//一つ上に移動する場合
$this->ModelName->moveup($id);
//一つ下に移動する場合
$this->ModelName->movedown($id);
</pre>
<p>※bakeryの記事からバージョンが上がっているようです。<br />
リンク先の一番下のコメントに最新版へのリンクがあります。</p>
<p><a href="http://d.hatena.ne.jp/kaz_29/20100202/1265081303" target="_blank"></p>
<h3>10. csv Datasource</h3>
<p></a></p>
<p>データベースが使えない場合や、管理更新はCSVを使うと言う場合に重宝します。<br />
CSVを使ったfind、ページングができるようになっています。</p>
<pre class="brush:php;">
$conditions = array(
  "id >" => 10,
  "status" => 1
);
$conditions = array(
  "or" => array(
    "id <=" => 10,
    "status" => 1
  )
);
</pre>
<h3>最後に</h3>
<p>CakePHPは最早枯れたフレームワークになって来ていると思います。<br />
もっと便利になるように、みんなで使い倒しましょう。</p>
<p>他にも便利なプラグインがあれば教えてください！</p>The post <a href="https://blog.verygoodtown.com/2010/12/cakephp-my-best-plugin/">CakePHPで普段使っているpluginをまとめてみた</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2010/12/cakephp-my-best-plugin/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5716</post-id>	</item>
		<item>
		<title>jQueryで使えるサジェストプラグイン&#038;チュートリアル10選</title>
		<link>https://blog.verygoodtown.com/2010/12/jquery-autocomplete-plugins/</link>
					<comments>https://blog.verygoodtown.com/2010/12/jquery-autocomplete-plugins/#respond</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Wed, 15 Dec 2010 00:22:25 +0000</pubDate>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Rails]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=5485</guid>

					<description><![CDATA[<p>WebデザインやWeb開発に使えるオープンソースプログラムを紹介するblogfreakzというブログにてjQueryで使えるサジェストプラグインとチュートリアルが紹介されていました。 「10 Awesome jQuery [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2010/12/jquery-autocomplete-plugins/">jQueryで使えるサジェストプラグイン&チュートリアル10選</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-13.jpg" alt="20101214-13" title="20101214-13" width="260" height="260" class="alignnone size-full wp-image-5492" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-13.jpg 260w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-13-150x150.jpg 150w" sizes="(max-width: 260px) 100vw, 260px" /></p>
<p> WebデザインやWeb開発に使えるオープンソースプログラムを紹介する<a href="http://blogfreakz.com/" target="_blank">blogfreakz</a>というブログにてjQueryで使えるサジェストプラグインとチュートリアルが紹介されていました。</p>
<p>「<a href="http://blogfreakz.com/jquery/jquery-autocomplete-plugins-tutorials/" target="_blank">10 Awesome jQuery Autocomplete Plugins &#038; Tutorials</a>」というエントリーから抜粋してご紹介。</p>
<p><span id="more-5485"></span></p>
<h3>A Simple Movie Search App w/ jQuery UI</h3>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-07.jpg" alt="20101214-07" title="20101214-07" width="600" height="333" class="alignnone size-full wp-image-5486" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-07.jpg 600w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-07-300x166.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p><a class="comments_l" target="_blank" href="http://tutorialzine.com/2010/08/simple-movie-search-app-jquery-ajax/">チュートリアル</a>　<a class="comments_l" target="_blank" href="http://demo.tutorialzine.com/2010/08/simple-movie-search-app-jquery-ajax/movieApp.html">デモ</a></p>
<p>PHPと連携するプラグインです。</p>
<h3>How to Use the jQuery UI Autocomplete Widget</h3>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-08.jpg" alt="20101214-08" title="20101214-08" width="382" height="386" class="alignnone size-full wp-image-5487" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-08.jpg 382w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-08-296x300.jpg 296w" sizes="(max-width: 382px) 100vw, 382px" /></p>
<p><a class="comments_l" target="_blank" href="http://net.tutsplus.com/tutorials/javascript-ajax/how-to-use-the-jquery-ui-autocomplete-widget/">チュートリアル</a>　<a class="comments_l" target="_blank" href="http://www.danwellman.co.uk/demos/autocomplete.html">デモ</a></p>
<p>jQuery UI 1.8を使用するサンプルです。</p>
<h3>Facebook Like List auto complete with FCBKcomplete, JQuery and Coldfusion</h3>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-09.jpg" alt="20101214-09" title="20101214-09" width="533" height="229" class="alignnone size-full wp-image-5488" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-09.jpg 533w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-09-300x128.jpg 300w" sizes="(max-width: 533px) 100vw, 533px" /></p>
<p><a class="comments_l" target="_blank" href="http://cflove.org/2010/06/facebook-like-list-auto-complete-with-fcbkcomplete-jquery-and-coldfusion.cfm">チュートリアル</a>　<a class="comments_l" target="_blank" href="http://cflove.org/examples/FCBKcomplete/">デモ</a></p>
<p>FCBKcompleteというjQueryプラグインをColdFusionで使用するチュートリアル。</p>
<h3>Rails + jQuery Autocomplete Tutorial</h3>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-10.jpg" alt="20101214-10" title="20101214-10" width="431" height="105" class="alignnone size-full wp-image-5489" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-10.jpg 431w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-10-300x73.jpg 300w" sizes="(max-width: 431px) 100vw, 431px" /></p>
<p><a class="comments_l" target="_blank" href="http://codepron.info/post/1015983906/rails-jquery-autocomplete-tutorial">チュートリアル</a>　<a class="comments_l" target="_blank" href="http://codepron-autocomplete.heroku.com/">デモ</a></p>
<p>Ruby on Railsを使用したサンプル。</p>
<h3>Create Autocomplete feature with Java – JSP / jQuery</h3>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-11.jpg" alt="20101214-11" title="20101214-11" width="218" height="186" class="alignnone size-full wp-image-5490" /></p>
<p><a class="comments_l" target="_blank" href="http://viralpatel.net/blogs/2009/06/tutorial-create-autocomplete-feature-with-java-jsp-jquery.html">チュートリアル</a></p>
<p>JSPから使用するサンプル。</p>
<h3>CakePHP – jQuery Autocomplete Tutorial</h3>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-12.jpg" alt="20101214-12" title="20101214-12" width="600" height="275" class="alignnone size-full wp-image-5491" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-12.jpg 600w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/12/20101214-12-300x137.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p><a class="comments_l" target="_blank" href="http://blogfreakz.com/cakephp/cakephp-jquery-autocomplete-tutorial/">チュートリアル</a>　<a class="comments_l" target="_blank" href="http://blogfreakz.com/codecanyon/autocomplete/">デモ</a></p>
<p>CakePHPと組み合わせたサンプル。</p>The post <a href="https://blog.verygoodtown.com/2010/12/jquery-autocomplete-plugins/">jQueryで使えるサジェストプラグイン&チュートリアル10選</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2010/12/jquery-autocomplete-plugins/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5485</post-id>	</item>
		<item>
		<title>CakePHPからDropBoxを使用するコンポーネント</title>
		<link>https://blog.verygoodtown.com/2010/04/cakephp-dropbox-component/</link>
					<comments>https://blog.verygoodtown.com/2010/04/cakephp-dropbox-component/#respond</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Wed, 07 Apr 2010 02:09:23 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Component]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=3951</guid>

					<description><![CDATA[<p>自分用メモです。 CakePHPからDropBoxのファイルが操作できるコンポーネントが Bakeryにありました。 DropBoxってAPIなんてあったんですね。ログインして自分のファイルを操作できるようです。 これで [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2010/04/cakephp-dropbox-component/">CakePHPからDropBoxを使用するコンポーネント</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/04/20100407-01.png" alt="20100407-01" title="20100407-01" width="600" height="140" class="alignnone size-full wp-image-3956" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/04/20100407-01.png 600w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/04/20100407-01-300x70.png 300w" sizes="(max-width: 600px) 100vw, 600px" /><br />
自分用メモです。</p>
<p><span id="more-3951"></span></p>
<p>CakePHPから<a href="http://bakery.cakephp.org/articles/view/dropbox-component" target="_blank">DropBoxのファイルが操作できるコンポーネント</a>が Bakeryにありました。</p>
<p> DropBoxってAPIなんてあったんですね。ログインして自分のファイルを操作できるようです。</p>
<p>これでサーバーでもファイルの同期ができそうです。<br />
CakePHPに限らず、色んなサイトで流用できそうですね。</p>The post <a href="https://blog.verygoodtown.com/2010/04/cakephp-dropbox-component/">CakePHPからDropBoxを使用するコンポーネント</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2010/04/cakephp-dropbox-component/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3951</post-id>	</item>
		<item>
		<title>CakePHPで認証付きの静的ページを作る</title>
		<link>https://blog.verygoodtown.com/2010/02/cakephp1-2-admin-page/</link>
					<comments>https://blog.verygoodtown.com/2010/02/cakephp1-2-admin-page/#comments</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Fri, 05 Feb 2010 02:56:49 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[pages_controller]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=1758</guid>

					<description><![CDATA[<p>CakePHP1.2で管理者用の静的ページを作る（認証付き）というエントリーを見つけました。 静的ページで良いんだけど認証ユーザーにだけ見せたい場合とかってみんなどうやってるんでしょうね。自分のやり方を忘れないためにエン [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2010/02/cakephp1-2-admin-page/">CakePHPで認証付きの静的ページを作る</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></description>
										<content:encoded><![CDATA[<p><a href="http://blog.longkey1.net/archives/841" target="_blank">CakePHP1.2で管理者用の静的ページを作る（認証付き）</a>というエントリーを見つけました。</p>
<p>静的ページで良いんだけど認証ユーザーにだけ見せたい場合とかってみんなどうやってるんでしょうね。自分のやり方を忘れないためにエントリー。</p>
<p><span id="more-1758"></span></p>
<p>やり方としてはPagesにアクセスされた際にapp_controllerにて、ログインユーザー以外は非表示になるよう処理を振り分けます。</p>
<p>コードはこんな感じです。</p>
<pre class="brush:php;">
&lt;php
class AppController extends Controller {
    var $lockedPages = array('agreement');
    function beforeFilter()
    {
        // pages controllerかどうかをチェック
        if ($this->name == 'Pages')
        {
            // pagesなら引数を受け取る
            $path = $this->passedArgs;

            // 認証ユーザーしか閲覧できないページか調べる
            if (isset($path[0]) && in_array($path[0], $this->lockedPages))
            {
                //ここでpagesのdisplayをロック
                $this->Auth->deny('display');
            }
        }
    }
}?&gt;
</pre>
<p>$lockedPagesに、認証ユーザーにだけ見せたいPageを配列で指定するだけで簡単に量産することが可能です。<br />
これだとルーティングも特に変更する必要はありません。</p>
<p>どっかの記事にのってたのを参考にしたはずなんですが、元記事が見つけられませんでした。</p>
<p>pages_controllerをapp以下に持ってきた方が色々カスタマイズするには便利なんだけど、静的ページを見せたいだけならいっつもこんな感じです。</p>The post <a href="https://blog.verygoodtown.com/2010/02/cakephp1-2-admin-page/">CakePHPで認証付きの静的ページを作る</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2010/02/cakephp1-2-admin-page/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1758</post-id>	</item>
		<item>
		<title>PHP用の世界最速最軽量MVCフレームワーク「DooPHP」</title>
		<link>https://blog.verygoodtown.com/2010/01/rapid-application-development-php-framework-doophp/</link>
					<comments>https://blog.verygoodtown.com/2010/01/rapid-application-development-php-framework-doophp/#respond</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Sun, 24 Jan 2010 02:48:14 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[DooPHP]]></category>
		<category><![CDATA[フレームワーク]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=1056</guid>

					<description><![CDATA[<p>DooPHPはPHPでできたオープンソースの軽量MVCフレームワークです。より少ないコストでサイトを構築するには最近はこういったフレームワークは必須ですね。 高性能だけれども軽くて早い、ぜひ使ってみたくなるようなベンチマ [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2010/01/rapid-application-development-php-framework-doophp/">PHP用の世界最速最軽量MVCフレームワーク「DooPHP」</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/DooPHP.jpg" alt="DooPHP" title="DooPHP" width="600" height="108" class="alignnone size-full wp-image-1057" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/DooPHP.jpg 600w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/DooPHP-300x54.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /><br />
<a href="http://www.doophp.com/" target="_blank">DooPHP</a>はPHPでできたオープンソースの軽量MVCフレームワークです。より少ないコストでサイトを構築するには最近はこういったフレームワークは必須ですね。</p>
<p>高性能だけれども軽くて早い、ぜひ使ってみたくなるようなベンチマークが公式サイトに掲載されていました。</p>
<p><span id="more-1056"></span></p>
<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/doophp_benchmark_comparison.jpg" alt="doophp_benchmark_comparison" title="doophp_benchmark_comparison" width="600" height="346" class="alignnone size-full wp-image-1061" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/doophp_benchmark_comparison.jpg 600w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/doophp_benchmark_comparison-300x173.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>CakePHPやCodeIgniterと比較したベンチマークを測った所、はるかに多くの処理を実行できたそうです。</p>
<p>DooPHPは軽量ですがいくつかの重要な機能はサポートしています。<br />
・MVC<br />
・REST<br />
・URIルーティング<br />
・ORM<br />
・Templateエンジン</p>
<p>最近はこういったフレームワークが多数出現するため選択肢に幅がでるのは良いのですが、とっかかりが難しく途中で利用を諦める場合があります。業務で利用できるまでになるには日本語での情報が期待ですね。</p>
<p>サイトにはブログなどの多数の<a href="http://www.doophp.com/demos/" target="_blank">デモ</a>があるためPHPデベロッパーの方はぜひ見てみてください。</p>The post <a href="https://blog.verygoodtown.com/2010/01/rapid-application-development-php-framework-doophp/">PHP用の世界最速最軽量MVCフレームワーク「DooPHP」</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2010/01/rapid-application-development-php-framework-doophp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1056</post-id>	</item>
		<item>
		<title>これはすごい！CSS FrameworkのRMSforms</title>
		<link>https://blog.verygoodtown.com/2009/12/%e3%81%93%e3%82%8c%e3%81%af%e3%81%99%e3%81%94%e3%81%84%ef%bc%81css-framework%e3%81%aermsforms/</link>
					<comments>https://blog.verygoodtown.com/2009/12/%e3%81%93%e3%82%8c%e3%81%af%e3%81%99%e3%81%94%e3%81%84%ef%bc%81css-framework%e3%81%aermsforms/#respond</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Wed, 30 Dec 2009 15:56:53 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Forms]]></category>
		<category><![CDATA[Goodies]]></category>
		<category><![CDATA[Other License]]></category>
		<category><![CDATA[Xhtml & Css]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=250</guid>

					<description><![CDATA[<p>画像は公式サイトデモより 最近はフォームを作成する場合、テーブルを使用しないCSSオンリーで作成する事の方が多いのですが、 入力項目によっては横に２つ並べたりする場合（郵便番号、姓名など）テーブルの方が便利な場合がありま [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2009/12/%e3%81%93%e3%82%8c%e3%81%af%e3%81%99%e3%81%94%e3%81%84%ef%bc%81css-framework%e3%81%aermsforms/">これはすごい！CSS FrameworkのRMSforms</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/20091231_004340.png" alt="20091231_004340" title="20091231_004340" width="600" height="137" class="alignnone size-full wp-image-251" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/20091231_004340.png 600w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/20091231_004340-300x68.png 300w" sizes="(max-width: 600px) 100vw, 600px" /><br />
画像は公式サイトデモより</p>
<p>最近はフォームを作成する場合、テーブルを使用しないCSSオンリーで作成する事の方が多いのですが、<br />
入力項目によっては横に２つ並べたりする場合（郵便番号、姓名など）テーブルの方が便利な場合があります。</p>
<p>しかしCakePHPなどを使用していると、どうしてもViewファイルがhtmlとphpコードが入り混じり<br />
可視性が低くなってしまいます。</p>
<p>そこで、全部cssで制御できればViewファイルの整理がかなりできるのではないのでしょうか。<br />
それを解決してくれるのが<a href="http://www.rmsjr.com/blog/web-design/rmsforms-a-flexible-tableless-css-forms-framework/">RMSforms</a>です。</p>
<p>こんなCSSを待っていました。</p>
<p>詳しくは以下</p>
<p><span id="more-250"></span></p>
<p>バージョンが0.5で動作確認しました。</p>
<p><a href="http://www.rmsjr.com/RMSforms/RMSforms-v0.5.html">デモページ</a>を見るとHTML側はシンプルな記述で動作しています。</p>
<pre class="brush:html;">
<fieldset>
  <legend></legend>
    <ul class="form [modifier]">
      <li><label class="[label modifier]"></label><input/></li>
    </ul>
</fieldset> 
</pre>
<p>以下のブラウザで動作するようですので、開発者の方はぜひ観てみてください。<br />
IE6 – 7, Firefox 3 &#038; Google Chrome. </p>
<p>取り急ぎご紹介でした。</p>The post <a href="https://blog.verygoodtown.com/2009/12/%e3%81%93%e3%82%8c%e3%81%af%e3%81%99%e3%81%94%e3%81%84%ef%bc%81css-framework%e3%81%aermsforms/">これはすごい！CSS FrameworkのRMSforms</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2009/12/%e3%81%93%e3%82%8c%e3%81%af%e3%81%99%e3%81%94%e3%81%84%ef%bc%81css-framework%e3%81%aermsforms/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">250</post-id>	</item>
	</channel>
</rss>
