Archive for 9月, 2011



9
9月

CodeIgniter2 #6 認証

このエントリーをはてなブックマークに追加
はてなブックマーク - CodeIgniter2 #6 認証
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

さて、認証システムだがこちらも標準ではない。で、いろいろ参考にして今回はこちらのページのを使用することにしました。

  1. データベースにテーブルを作成
  2. application/libraries/authex.php を作成
  3. login コントローラ/Viewを作成

ふむふむ。

parent::Controller(); のところを parent::__construct(); に変更しないと動かないぞと。

9
9月

CodeIgniter2 #5 画面のいろいろ

このエントリーをはてなブックマークに追加
はてなブックマーク - CodeIgniter2 #5 画面のいろいろ
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed


まあ、WEB制作には画面の設計がつきもので、デザインに凝り、ボタンに凝り、位置に凝り、精一杯の努力をするわけだがなんとしても絵心がないので、今回はそこらあたりをまとめて何とかしてくれそうな  jQuery Mobile にした。

それだけ。

まあ、その他を検討していないわけではないが、betaって言う問題もあるけどそのうちbetaも取れるだろうし。その他のいろいろに比べれば利点がいっぱいと言うことで決定。

6
9月

CodeIgniter2 #04 Layout レイアウトライブラリ

このエントリーをはてなブックマークに追加
はてなブックマーク - CodeIgniter2 #04 Layout レイアウトライブラリ
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

標準では Layout 機能がないのでここからもらってくる。

// file /application/libraries/Layout.php
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');

class Layout
{

    var $obj;
    var $layout;

    function Layout($layout = "layout_main")
    {
        $this->obj =& get_instance();
        $this->layout = $layout;
    }

    function setLayout($layout)
    {
      $this->layout = $layout;
    }

    function view($view, $data=null, $return=false)
    {
        $loadedData = array();
        $loadedData['content_for_layout'] = $this->obj->load->view($view,$data,true);

        if($return)
        {
            $output = $this->obj->load->view($this->layout, $loadedData, true);
            return $output;
        }
        else
        {
            $this->obj->load->view($this->layout, $loadedData, false);
        }
    }
}
?>

使い方はこんな感じ。

// 最初にライブラリの読み込み
$this->load->library('layout', 'layout_main'); 

// もしいつも使うのであれば、application/config.php にて以下の設定を行う
$autoload['libraries'] = array('layout'); 

// ビューの出力
$data->title_for_layout='ページタイトル';
$this->layout->view('/shop/view_cart', $data); 

// layout ファイル /application/views/layout_main.php
<html>
<head>
<title><?=$title_for_layout?></title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<link rel="stylesheet" href="/css/main.css" type="text/css" />
</head>
<body>
<div id="pagewidth" >
  <div id="header" ><img src="/images/header.jpg" width="700" height="200"></div>
  <div id="wrapper" class="clearfix" >
    <div id="twocols" class="clearfix">
      <?php echo $content_for_layout?>
    </div>
  </div>
  <div id="footer" > Footer >/div>
</div>
</body>
</html>
6
9月

CodeIgniter2 #03 $_GETを使えるように

このエントリーをはてなブックマークに追加
はてなブックマーク - CodeIgniter2 #03 $_GETを使えるように
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed


いくら何でも、$_GET とれないと困るだろうということで、ここと、ここを参考にさせてもらって修正する。

  • application/config/config.php の 修正
$config['allow_get_array']  = TRUE;
$config['enable_query_strings'] = TRUE;
$config['controller_trigger'] = 'c';
$config['function_trigger']   = 'm';
$config['directory_trigger']  = 'd';

$config['permitted_uri_chars'] = '';

$config['uri_protocol']	= "AUTO";
  • application/config/hooks.php の修正
$config['enable_hooks'] = TRUE;

$hook['pre_system'][] = array(
                   'class'    => 'ConvertQueryString',
                   'function' => 'execute',
                   'filename' => 'ConvertQueryString.php',
                   'filepath' => 'hooks',
                   'params'   => array()
);

これで、$_GET のパラメータはすべて $_PUT にぶち込まれるので、バリデーションも行える様になる。ただ、getで呼び出すときには &c=controller&m=function  を付加する必要がある。

※サーバによっては?以降がうまくとれないことがあるらしい。

※form_open (‘c=controller&m=func”) って書く必要がある

6
9月

CodeIgniter2 #02 ありがちな初期設定

このエントリーをはてなブックマークに追加
はてなブックマーク - CodeIgniter2 #02 ありがちな初期設定
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

つづいて、初期の設定あれこれ

  1. こちらのページを参考にしました。
  2. application/config/config.php にベースURLを記述
  3. application/config/database.php にデータベース接続情報を記述
  4. index.php の実行モードを development から testing へ変更。エラーを画面表示するようにする。
  5. application/config/config.php の $config['log_threshold'] = 4; へ変更。すべてのログを出力する。
  6. application/logs/ フォルダーのパーミッションを書き込み可能に変更。
  7. application/config/config.php の $config['encryption_key'] = ”; に適当な文字列を設定。
  8. application/config/config.php の $config['sess_cookie_name'] = ‘ci_session’;  に適当な文字列を設定。
  9. $config['sess_use_database'] = FALSE;  を TRUE に変更。データベースにセッションテーブルを作成する。
  10. application/config/config.php の $config['global_xss_filtering'] = FALSE;  を TRUE に変更。
  11. application/config/config.php の $config['csrf_protection'] = FALSE;  を TRUE に変更。(全てのformタグをformヘルパーの form_open() で開くこと)

とりあえず、これくらい設定する。

で、URLにアクセスしてみる。エラーが出なければOK。エラーが出た場合にはログが application/logs/ に出力されるので確認する。下の出ればOK。

6
9月

CodeIgniter2 #01 ありがちにインストール

このエントリーをはてなブックマークに追加
はてなブックマーク - CodeIgniter2 #01 ありがちにインストール
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

CodeIgniter2.0.3を使ってみようと思ったときのメモ

ちなみにCodeIgniterにした理由以下の通り。

  • 軽量である&学習時間が少なくてすむ
  • フレームワークの縛りが緩い
  • 日本語ドキュメントが充実
  • php 5.1.6 に対応している

特に最後の php5.1.6に正式に対応しているのが決め手。Cake/Symfony等の最新バージョンでは 5.3 以上でないといけないとなっており、利用できないサーバが発生する可能性が高いためです。自社で専用サーバにて稼働させる場合には特に問題ないけど、ありがちな話でお客様は安い共有サーバを使っていたりする可能性が高いので。

  1. 日本CodeIgniterユーザ会のページより日本語化済みのファイルをダウンロード。
  2. ファイルを展開(展開後のファイルサイズは6.5M程度、ユーザーガイドを除けば1.3M)

とりあえず、これで用意はできた。もちろん別途に以下の用意もしました。

  1. サーバ(今回は自社のPleskサーバに領域を設定)
  2. ドメイン
  3. データベース(MySQL)
Celadon theme by the Themes Boutique