<?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>tutorial | Web活メモ帳</title>
	<atom:link href="https://blog.verygoodtown.com/tag/tutorial/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>jQuery初心者のためのチュートリアル20選</title>
		<link>https://blog.verygoodtown.com/2010/03/jquery-tutorial-beginners-designers/</link>
					<comments>https://blog.verygoodtown.com/2010/03/jquery-tutorial-beginners-designers/#respond</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Wed, 10 Mar 2010 00:10:25 +0000</pubDate>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=3143</guid>

					<description><![CDATA[<p>最近のwebサイトではデザイナーの方でもjavascriptを設置したりする作業が増えてきています。 jqueryプラグインの設置やカスタマイズ方法は覚えておいて損はないのででしょうか。「20 Best And High [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2010/03/jquery-tutorial-beginners-designers/">jQuery初心者のためのチュートリアル20選</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/03/20100309-07.jpg" alt="20100309-07" title="20100309-07" width="600" height="140" class="alignnone size-full wp-image-3150" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-07.jpg 600w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-07-300x70.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /><br />
最近のwebサイトではデザイナーの方でもjavascriptを設置したりする作業が増えてきています。<br />
jqueryプラグインの設置やカスタマイズ方法は覚えておいて損はないのででしょうか。「<a href="http://savedelete.com/20-best-and-highly-useful-jquery-tutorials-for-designers-and-beginners.html" target="_blank">20 Best And Highly Useful jQuery Tutorials For Designers And Beginners</a>」といエントリーのご紹介。</p>
<p>詳しくは以下<br />
<span id="more-3143"></span></p>
<h3>Photo Slider Tutorial</h3>
<p>フォトギャラリーを作成する方法</p>
<p><a href="http://opiefoto.com/articles/photoslider#example" target="_blank"><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-01.jpg" alt="20100309-01" title="20100309-01" width="540" height="276" class="alignnone size-full wp-image-3144" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-01.jpg 540w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-01-300x153.jpg 300w" sizes="(max-width: 540px) 100vw, 540px" /></a></p>
<p><a class="comments_l" target="_blank" href="http://opiefoto.com/articles/photoslider#example">公式サイト</a></p>
<h3>Animated Drop Down Menu with jQuery</h3>
<p>ドロップダウンメニューの作り方</p>
<p><a href="http://www.clarklab.net/blog/posts/animated-drop-down-menu-with-jquery/" target="_blank"><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-02.jpg" alt="20100309-02" title="20100309-02" width="540" height="275" class="alignnone size-full wp-image-3145" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-02.jpg 540w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-02-300x152.jpg 300w" sizes="(max-width: 540px) 100vw, 540px" /></a></p>
<p><a class="comments_l" target="_blank" href="http://www.clarklab.net/blog/posts/animated-drop-down-menu-with-jquery/">公式サイト</a></p>
<h3>How to Mimic the iGoogle Interface </h3>
<p>iGoogleのようなインタフェースの作り方</p>
<p><a href="http://net.tutsplus.com/tutorials/javascript-ajax/inettuts/" target="_blank"><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-03.jpg" alt="20100309-03" title="20100309-03" width="540" height="276" class="alignnone size-full wp-image-3146" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-03.jpg 540w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-03-300x153.jpg 300w" sizes="(max-width: 540px) 100vw, 540px" /></a></p>
<p><a class="comments_l" target="_blank" href="http://net.tutsplus.com/tutorials/javascript-ajax/inettuts/">公式サイト</a></p>
<h3>Horizontal Accordion</h3>
<p>アコーディオンメニュー</p>
<p><a href="http://www.portalzine.de/index?/Horizontal_Accordion" target="_blank"><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-04.jpg" alt="20100309-04" title="20100309-04" width="540" height="275" class="alignnone size-full wp-image-3147" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-04.jpg 540w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-04-300x152.jpg 300w" sizes="(max-width: 540px) 100vw, 540px" /></a></p>
<p><a class="comments_l" target="_blank" href="http://www.portalzine.de/index?/Horizontal_Accordion">公式サイト</a></p>
<h3>Creating a polaroid photo viewer with CSS3 and jQuery </h3>
<p>画像のドラッグ&#038;ドロップを実現</p>
<p><a href="http://www.marcofolio.net/webdesign/creating_a_polaroid_photo_viewer_with_css3_and_jquery.html" target="_blank"><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-05.jpg" alt="20100309-05" title="20100309-05" width="540" height="276" class="alignnone size-full wp-image-3148" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-05.jpg 540w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-05-300x153.jpg 300w" sizes="(max-width: 540px) 100vw, 540px" /></a></p>
<p><a class="comments_l" target="_blank" href="http://www.marcofolio.net/webdesign/creating_a_polaroid_photo_viewer_with_css3_and_jquery.html">公式サイト</a></p>
<h3>Creating A  Online Keyboard with jQuery</h3>
<p>キーボードを作成する方法</p>
<p><a href="http://net.tutsplus.com/tutorials/javascript-ajax/creating-a-keyboard-with-css-and-jquery/" target="_blank"><img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-06.jpg" alt="20100309-06" title="20100309-06" width="540" height="275" class="alignnone size-full wp-image-3149" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-06.jpg 540w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100309-06-300x152.jpg 300w" sizes="(max-width: 540px) 100vw, 540px" /></a></p>
<p><a class="comments_l" target="_blank" href="http://net.tutsplus.com/tutorials/javascript-ajax/creating-a-keyboard-with-css-and-jquery/">公式サイト</a></p>
<p>詳しくは以下からどうぞ。</p>The post <a href="https://blog.verygoodtown.com/2010/03/jquery-tutorial-beginners-designers/">jQuery初心者のためのチュートリアル20選</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2010/03/jquery-tutorial-beginners-designers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3143</post-id>	</item>
		<item>
		<title>画像アップロード時にjQueryでサムネイルを表示する方法</title>
		<link>https://blog.verygoodtown.com/2010/03/image-upload-thumbnail-jquery/</link>
					<comments>https://blog.verygoodtown.com/2010/03/image-upload-thumbnail-jquery/#respond</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Tue, 09 Mar 2010 01:10:52 +0000</pubDate>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[uploader]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=3130</guid>

					<description><![CDATA[<p>通常、画像アップロードを行う際は一度フォームの内容を全て送信しなければいけません。自分がアップしたファイルを確認するのにひと手間かかってしまいます。 しかし、ajaxを使用する事により画像アップロード時に簡単にファイルを [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2010/03/image-upload-thumbnail-jquery/">画像アップロード時に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/2010/03/20100308-11.jpg" alt="20100308-11" title="20100308-11" width="422" height="176" class="alignnone size-full wp-image-3135" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100308-11.jpg 422w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100308-11-300x125.jpg 300w" sizes="(max-width: 422px) 100vw, 422px" /><br />
通常、画像アップロードを行う際は一度フォームの内容を全て送信しなければいけません。自分がアップしたファイルを確認するのにひと手間かかってしまいます。</p>
<p>しかし、ajaxを使用する事により画像アップロード時に簡単にファイルを確認する事ができるようになります。<br />
jQueryを使用したやり方を紹介している「<a href="http://www.zurb.com/playground/ajax_upload" target="_blank">Image Uploads with 100% Less Suck. Guaranteed.</a>」というエントリーより。</p>
<p>詳しくは以下<br />
<span id="more-3130"></span></p>
<p>以下のようなコードで実装できるようです。</p>
<pre class="brush:xml;">
&lt;script&nbsp;src=&quot;/js/jquery.min.js&quot;&nbsp;type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script&nbsp;src=&quot;/js/ajaxupload.js&quot;&nbsp;type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</pre>
<pre class="brush:js;">
$(document).ready(function(){

	var thumb = $('img#thumb');	

	new AjaxUpload('imageUpload', {
		action: $('form#newHotnessForm').attr('action'),
		name: 'image',
		onSubmit: function(file, extension) {
			$('div.preview').addClass('loading');
		},
		onComplete: function(file, response) {
			thumb.load(function(){
				$('div.preview').removeClass('loading');
				thumb.unbind();
			});
			thumb.attr('src', response);
		}
	});
});
</pre>
<p>jQueryを使用する事でこんなに短いコードで実装できるようになっているんですね。<br />
CMS等を自作されている方、実装されてみてはいかがでしょうか。</p>The post <a href="https://blog.verygoodtown.com/2010/03/image-upload-thumbnail-jquery/">画像アップロード時にjQueryでサムネイルを表示する方法</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2010/03/image-upload-thumbnail-jquery/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3130</post-id>	</item>
		<item>
		<title>サンプルソース付き。html5とcss3のチュートリアル</title>
		<link>https://blog.verygoodtown.com/2010/03/sample-source-html5-css3-tutorial/</link>
					<comments>https://blog.verygoodtown.com/2010/03/sample-source-html5-css3-tutorial/#respond</comments>
		
		<dc:creator><![CDATA[linja]]></dc:creator>
		<pubDate>Tue, 02 Mar 2010 02:59:50 +0000</pubDate>
				<category><![CDATA[WEB製作全般]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://blog.verygoodtown.com/?p=2897</guid>

					<description><![CDATA[<p>Simple Website Layout Tutorial Using HTML 5 and CSS 3というエントリーでhtml5とcss3の使い方を説明してくれているチュートリアルがありましたのでご紹介。 サンプル [&#8230;]</p>
The post <a href="https://blog.verygoodtown.com/2010/03/sample-source-html5-css3-tutorial/">サンプルソース付き。html5とcss3のチュートリアル</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/03/20100302-02.jpg" alt="20100302-02" title="20100302-02" width="600" height="187" class="alignnone size-full wp-image-2899" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100302-02.jpg 600w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100302-02-300x93.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /><br />
<a href="http://www.designzzz.com/website-layout-tutorial-html-5-css-3/" target="_blank">Simple Website Layout Tutorial Using HTML 5 and CSS 3</a>というエントリーでhtml5とcss3の使い方を説明してくれているチュートリアルがありましたのでご紹介。</p>
<p>サンプルはソースがダウンロードできるため、ローカル環境で詳しく確認できますね。</p>
<p>実際のデモとソースはこちらから</p>
<p><span id="more-2897"></span><br />
<img loading="lazy" src="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100302-03.jpg" alt="20100302-03" title="20100302-03" width="600" height="464" class="alignnone size-full wp-image-2903" srcset="https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100302-03.jpg 600w, https://blog.verygoodtown.com/wordpress/wp-content/uploads/2010/03/20100302-03-300x232.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<ul>
<li><strong><a href="http://www.designzzz.com/html-5-tutorial.html" target="_blank">デモ</a></strong></li>
<li><a href="http://www.designzzz.com/html-5.zip" target="_blank"><strong>ダウンロード</strong></a></li>
</ul>
<p>サイトでは&lt;header&gt;、&lt;nav&gt;、&lt;footer&gt;、&lt;aside&gt;についてそれぞれ使い方が説明されています。<br />
html5を早めに習得しておきたいかたはぜひ見てみてください。</p>The post <a href="https://blog.verygoodtown.com/2010/03/sample-source-html5-css3-tutorial/">サンプルソース付き。html5とcss3のチュートリアル</a> first appeared on <a href="https://blog.verygoodtown.com">Web活メモ帳</a>.]]></content:encoded>
					
					<wfw:commentRss>https://blog.verygoodtown.com/2010/03/sample-source-html5-css3-tutorial/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2897</post-id>	</item>
	</channel>
</rss>
