CodeIgniterで管理ページを作成する
CodeIgniterで管理ページを作成するにはどうすればよいのか、「CodeIgniter徹底入門」を参考にしながら作ってみます。
一つ気付いたことがあるのですが、「CodeIgniter徹底入門」には管理ページの作成方法は載っていません。なので、解説を参考に考えながら作成していきます。管理ページの作成方法が載っていたら良かったですね。
ログイン認証にはsimpleloginライブラリを使おうかと思っているのですが、まだどうするか考え中なので、枠組みだけ作っておくことにします。
管理ページ用の設定の追加
CakePHPの管理ページ機能が便利なので、真似をしながら作成していきます。(CakePHPを使えばいいじゃん、とか突っ込まないように。やっていることが見えやすいのがCIのいいところだと思います。)
管理者用のMVCはディレクトリを分けたいので、config.phpにそれ用の設定を追加します。
- /system/application/config/config.php
$config['admin_path'] = 'admin';
ここで管理ページ用のディレクトリ名を指定することにします。
MY_Controllerクラスの作成
管理者用のコントローラでログインのチェック処理を共有したいので、コアのControllerクラスを継承して、MY_Controllerクラスを作成します。
- /system/application/libraries/MY_Controller.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class MY_Controller extends Controller { function MY_Controller() { parent::Controller(); } } ?>
ここにはコントローラで共通のメソッドや処理を書いていきます。
ログインのチェック処理の追加
作成したMY_Controllerクラスにログインのチェック処理を追加します。
- /system/application/libraries/MY_Controller.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class MY_Controller extends Controller { function MY_Controller() { parent::Controller(); $this->output->set_header('Content-Type: text/html; charset=UTF-8'); // $this->load->library(array('simplelogin', 'session')); // $this->load->helper(array('url')); // // $admin_path = $this->config->slash_item('admin_path'); // $admin_segment = $this->uri->rsegment(1, false); // // if ($admin_segment && $admin_segment == $admin_path // && $this->session->userdata('logged_in') !== true) { // redirect('/' . $admin_path . '/account/login/'); // exit; // } } }
ログインのチェック処理は、simpleloginライブラリの使用を前提に枠組みだけ作成しました。URIの第一セグメントにadmin_pathを含む場合で、ログインしていない場合はログインページにリダイレクトするようにしています。
全てのコントローラに共通するHTTPヘッダの設定も追加しておきました。
Accountコントローラの作成
管理者アカウントの管理をするAccountコントローラを作成します。
- /system/application/controllers/admin/account.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Account extends MY_Controller { function Account() { parent::MY_Controller(); } function index() { // $admin_path = $this->config->slash_item('admin_path'); // $this->load->view($admin_path . '/index'); } function login() { // $admin_path = $this->config->slash_item('admin_path'); // $this->load->view($admin_path . '/login'); } function logout() { // $admin_path = $this->config->slash_item('admin_path'); // $this->load->view($admin_path . '/logout'); } } ?>
ここに、実際のログイン認証関連の処理を追加していきます。
こんな方法で良いのかはわかりませんが、とりあえずは管理ページの作り方がわかったので、後は他の部分が完成した後に詰めていきたいと思います。
ちなみに、個人的にビューではヘルパー関数は使わない派です。生成されるXHTMLが見えないのは不安ですし、Dreamweaverなどから扱う場合にも不便だからです。ただ、ビューから他のビューを呼び出したり、コントローラを呼び出すためのURIを生成するためにadmin_pathの設定が必要になるので、それを取得するためのヘルパー関数などは作成しておくとよいのかもしれませんね。
トラックバック (1)
[…] CodeIgniterで管理ページを作成する […]
コメント (0)
この記事へのコメントはまだありません。