header image

Ryuzeeの他サイト

mixi Twitter Twitter

Categories

携帯対応

QRコード

RING

人気ブログランキング



新着記事

7 月 30th, 2008 PHP none Comments
add Hatena Bookmark

CodeIgniterがなかなか自由度が高くて気に入っているのだけれど、一方で、Cakeみたいにbakeコマンドで、CRUDがノンコーディングで出来てしまうわけでも無いので、面倒と言えば面倒。
そういう面倒さはCodeIgniterとRapydを組み合わせてあげることで解決できそうだ。
RapydもオープンソースのPHPフレームワークで、単体で動作するバージョンと、CodeIgniterのライブラリとして動作するバージョンの二つが提供されている。

CIと組み合わせてデータの一覧画面を表示する例を以下に記述する。

まずCIのコントローラの中で、$this->rapyd->load("datagrid");として、DataGridのライブラリを呼び出して、あとはクエリを組み立て、buildコマンドで、データを生成してしまえば良い。テンプレート側に色々なコードを書かないで、テーブル、ソート機能、編集へのリンク、ページング機能が実現できる。あー簡単。

<?php
require_once('basecontroller.php');
class Task extends BaseController
{
        function Task()
        {
                parent::BaseController();
        }
        function index()
        {
                $this->rapyd->load("datagrid");
                $grid = new DataGrid("Task List", "task");
                $grid->per_page = 2;
                $grid->column_detail("taskId","taskId", site_url('rapyd/hoge/<#taskId#>'));
                $grid->column("Title", "title");
                $grid->column("Description""description");
                $grid->build();
                $data["grid_output"] = $grid->output;
                $data["rapyd_head"] = $this->rapyd->get_head();
                $this->load->view('rapyd/task_view', $data);
        }
}
?>

サンプル画面は以下のような感じ。

Rapydの弱点は、出力するhtmlがあんまり綺麗じゃない、という点だろう。実際に見てみると早い。

<table style="margin:0;width:100%;border-collapse:collapse;padding:0;">
  <tr>
    <td>

      <table style="margin:0;width:100%;border-collapse:collapse;padding:0;">
        <tr>
          <td class="mainheader">Task List</td>
          <td class="mainheader" align="right"></td>
        </tr>
      </table>

      <div class="mainbackground" style="padding:2px;clear:both;">
      <table width="100%" cellpadding="1">

        <tr>
          <td class="tableheader">
            <table style="width:100%; border-collapse:collapse;">
              <tr>
(中略)
              </tr>
            </table></td></tr></table></div></td></tr></table>

なんなんだ、これは・・・、というレベルの汚さ。なぜ、もうちょっとまともにclassを振らないのか。
この問題は、/application/rapyd/views/defaultにある、datagrid.phpというviewを修正すれば直る。これを自分好み、もしくは自分が構築しているシステムのレギュレーションにあわせてあげると素敵になるだろう。

関連コンテンツ

このエントリは参考になりましたか?

よろしければ5段階評価で該当する☆をクリックしてください。

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

“CodeIgniter+Rapydで簡単開発”へのコメントはありません。

コメントはありません。是非コメントしてください。

コメントする

XHTML: 以下のタグが利用可能です: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback

 

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0