CakeDC の Users Plugin を最小インストールする方法♪

CakePHP2 で 、Windows XP のいわゆるローカル環境の XAMPP 上で行っています。環境構築方法は、◆簡易★最新版◆Apach 、MySAQL 、PHP を Windows 環境でも開発できるように簡☆単さを重視して Eclipse の Pleiades All in One PHP をインストールします。 | oki2a24 と、インストール ― CakePHP Cookbook v2.x documentation をご参照ください。CakePHP2 をインストールして、http://localhost/cake01/ でアクセスできるようにしました。

今回は最小限の手間で Users プラグインを動かすための手順を記します。

1.プラグインを用意します

CakeDC/users ・ GitHub からダウンロード後解凍し、フォルダを Users にリネーム、/app/Plugin に置きます。

CakeDC/utils ・ GitHub からダウンロード後解凍し、フォルダを Utils にリネーム、/app/Plugin に置きます。

CakeDC/search ・ GitHub からダウンロード後解凍し、フォルダを Search にリネーム、/app/Plugin に置きます。

2.データベースのテーブル用意します

Users プラグインを導入することで使用できるようになるスキーマシェルを実行して、users、user_details テーブルを作成します。

set path=%path%;C:\pleiades\xampp\php
php C:\pleiades\xampp\htdocs\cake01\app\Console\cake.php schema create users --plugin Users

ちなみに、スキーマシェルを実行すると次のようになります。

schema create users --plugin Users

Welcome to CakePHP v2.2.2 Console
---------------------------------------------------------------
App : app
Path: C:\pleiades\xampp\htdocs\cake01\app\
---------------------------------------------------------------
Cake Schema Shell
---------------------------------------------------------------

The following table(s) will be dropped.
user_details
users
Are you sure you want to drop the table(s)? (y/n)
[n] > y
Dropping table(s).
user_details updated.
users updated.

The following table(s) will be created.
user_details
users
Are you sure you want to create the table(s)? (y/n)
[y] > y
Creating table(s).
user_details updated.
users updated.
End create.

またまたちなみに、スキーマを実行完了すると、次の2つのテーブル、users、user_detailsが作成されます。

mysql> desc users;
+---------------------+--------------+------+-----+---------+-------+
| Field               | Type         | Null | Key | Default | Extra |
+---------------------+--------------+------+-----+---------+-------+
| id                  | varchar(36)  | NO   | PRI | NULL    |       |
| username            | varchar(255) | NO   | MUL | NULL    |       |
| slug                | varchar(255) | NO   |     | NULL    |       |
| password            | varchar(128) | YES  |     | NULL    |       |
| password_token      | varchar(128) | YES  |     | NULL    |       |
| email               | varchar(255) | YES  | MUL | NULL    |       |
| email_verified      | tinyint(1)   | YES  |     | 0       |       |
| email_token         | varchar(255) | YES  |     | NULL    |       |
| email_token_expires | datetime     | YES  |     | NULL    |       |
| tos                 | tinyint(1)   | YES  |     | 0       |       |
| active              | tinyint(1)   | YES  |     | 0       |       |
| last_login          | datetime     | YES  |     | NULL    |       |
| last_action         | datetime     | YES  |     | NULL    |       |
| is_admin            | tinyint(1)   | YES  |     | 0       |       |
| role                | varchar(255) | YES  |     | NULL    |       |
| created             | datetime     | YES  |     | NULL    |       |
| modified            | datetime     | YES  |     | NULL    |       |
+---------------------+--------------+------+-----+---------+-------+
17 rows in set (0.09 sec)

mysql> desc user_details;
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | varchar(36)  | NO   | PRI | NULL    |       |
| user_id   | varchar(36)  | NO   |     | NULL    |       |
| position  | float        | NO   |     | 1       |       |
| field     | varchar(255) | NO   | MUL | NULL    |       |
| value     | text         | YES  |     | NULL    |       |
| input     | varchar(16)  | NO   |     | NULL    |       |
| data_type | varchar(16)  | NO   |     | NULL    |       |
| label     | varchar(128) | NO   |     | NULL    |       |
| created   | datetime     | YES  |     | NULL    |       |
| modified  | datetime     | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
10 rows in set (0.01 sec)

3.メール設定をします。

XAMPP のバージョンによっては、下記の設定が無効になっている場合があります。SSL SMTP サーバーを使用してのメール送信を可能にするため、コメントをはずし、下記のようにします。

C:\pleiades\xampp\php\php.ini

extension=php_openssl.dll

Gmail の SSL SMTP サーバ経由でメールを送信するため、設定を下記のように修正する。

/app/Config/email.php

	public $default = array(
			'host' => 'ssl://smtp.gmail.com',
			'port' => 465,
			'username' => 'example@gmail.com',
			'password' => 'password_da_yo',
			'transport' => 'Smtp',
			'log' => true
	);

ちなみに、ユーザ名、パスワードを間違えたり、Google の2段階認証をオンにしていると次のエラーとなります。気をつけましょう。

SMTP Error: 535 5.7.1 http://support.google.com/mail/bin/answer.py?answer=14257 sa2sm5918183pbc.4

「XAMPP 環境」=「ドメインが localhost」が原因で noreply@localhost からのメールを Gmail の SSL SMTP サーバ経由で送信することができないため、自動送信メールの from のメールアドレスを変更します。次の一行をコードの最後に追加します。

app/Config/bootstrap.php

Configure::write('App.defaultEmail', 'example@gmail.com');

以上です。

★実際にユーザー登録してみます。

ログイン

http://localhost/cake01/users/users/add

CakePHP the rapid development php framework Users - Google Chrome 20121023 224145.bmp

ユーザ登録

ユーザ登録画面です。

CakePHP the rapid development php framework Add Users 20121023 224338.bmp

仮登録完了でメールを確認してくださいのメッセージがログイン画面に表示されました。

登録、e-mail 20121023 224617.bmp

ユーザ登録確認メール

全画面キャプチャ 20121023 224754.jpg

メールのリンククリックで本登録完了です!

全画面キャプチャ 20121023 225022.bmp

ユーザ情報編集

ログイン直後です。ユーザ一覧情報が表示されています。

全画面キャプチャ 20121023 225447.bmp

ユーザ情報編集画面です。

全画面キャプチャ 20121023 225545.bmp

ユーザ情報編集完了です。画面の移動はありません。

全画面キャプチャ 20121023 225631.bmp

ユーザ詳細情報は1項目1行でテーブルに保存される仕様なんですね!ということは、ユーザの詳細情報(user_details に登録される)をプラグイン利用者が自由に決められるということです。これは便利です♪

全画面キャプチャ 20121023 225830.bmp

パスワード変更画面です。

全画面キャプチャ 20121023 230028.bmp

パスワード変更後、なぜか CakePHP のトップページに移動してしまいました。なぜでしょう?

全画面キャプチャ 20121023 230108.bmp

ユーザ情報確認画面です。

全画面キャプチャ 20121023 233343.bmp

パスワードリセット

パスワードを忘れたときの画面です。登録時のメールアドレスを入力します。

全画面キャプチャ 20121023 230154.bmp

パスワードリセットのために入力したアドレスにメールを送ったメッセージが表示されました。

全画面キャプチャ 20121023 230212.bmp

届いたメールのリンクからパスワード再発行ページへジャンプすることができます。

Password Reset - oki2a24@gmail.com - Gmail - Google Chrome 20121023 230227.jpg 

パスワードリセット画面です。

全画面キャプチャ 20121023 230431.bmp

パスワードリセットが成功したとのメッセージです。やったね♪そしてログイン画面です。

全画面キャプチャ 20121023 230459.bmp

おまけ

ログイン後画面でのセッション情報です。

全画面キャプチャ 20121024 01523.bmp

おわりに

印象としては、URL が users/users と users が2回繰り返されるのがちょっと、、、ですね。最初がプラグインをあらわし、次がコントローラーを表しているようですけれども。ですが、これは ルーティングで変更できますね。詳しくはプラグインのページを見ましょう♪

最後に、参考サイトです。アリガトウゴザイマス!!!

ディスカッションに参加

1件のコメント

コメントを残す

コメントを残す