sfUIPlugin を試してみる
sfUIPlugin ってどんなプラグイン?
モデルからテーブル作ってくれんじゃね?インストール
symfony plugin-install http://plugins.symfony-project.com/sfUIPlugin
カンタンインストール。[sfUIPlugin-0.0.1.tgz - 2007/11/9 現在]
設定
まず、UIヘルパーを利用できるようにします。[settings.yml]
all:
.settings:
standard_helpers: [UI]
全てのテンプレートで使えるようにする場合は、standard_helpers に'UI'を上記のように追加します。あるいは、UIヘルパーを利用するテンプレートだけに適用したい場合は、下記のコードをテンプレートの最初に挿入します。
<?php use_helper('UI') ?>利用できる関数
Wikiにあるように sfUIPlugin で利用できるヘルパー関数は 'object_data_grid' のみです。object_data_grid
echo object_data_grid(
$sf_data->getRaw('obj'),
array("ID" => "1", "NAME" => "1", "PROFILE"=>"1", "ACTIONS" => "2"),
array("getId", "getName", "getProfile"),
array("@UI_show?id={getId}", "", ""),
array("Edit" => "@UI_editform?id={getId}",
"Delete" => "@UI_deleteform?id={getId}"),
array("5%", "20%", "65%", "10%"),
"th-class",
"td1-class",
"td2-class",
"Empty"
);
引数の説明:
- テーブルに書き出すモデル
- テーブルヘッダの配列。Keyがラベルでvalueがcolspanの値。
- 表示するデータのメソッド名の配列。
- 表示するデータに貼るリンクの配列。
- データに対するアクションリンクの連想配列。
- セルごとの幅の値を入れた配列。
- th にあてるクラス名。
- td[1] にあてるクラス名。
- td[2] にあてるクラス名。(td[1]とtd[2]は交互に適用される)
- 第1引数が'空'だった場合表示される文字列。モデルだとデータが無くても空判定にはなりません(このコードじゃ意図した結果にならない)。
最低限の修正
いじり始めると切りがないので、とりあえず、バグ修正と表示の整形だけ。[/plugins/sfUIPlugin/lib/helper/UIHelper.php]
//27行目辺り
$header_class = (empty($header_class)) ? "" : "class='$header_class'";
↓
$header_class = (empty($header_class)) ? "" : "class=\"$header_class\"";
//31行目辺り
$size = "width='".$sizes[$i]."'";
↓
$size = "width=\"".$sizes[$i]."\"";
//32行目辺り
$table .= "<th $size $header_class colspan='$colspan'>\n".$header."</th>\n";
↓
$table .= "<th $size $header_class colspan=\"$colspan\">\n".$header."</th>\n";
//47行目辺り
"<td class=$class>\n".$value."</td>\n";
↓
"<td class=\"$class\">\n".$value."</td>\n";
//53行目辺り
"<td class=$classe>\n".trata_link_acao($action_link, $obj, $action)."</td>\n";
↓
"<td class=\"$class\">\n".trata_link_acao($action_link, $obj, $action)."</td>\n";
はい、んで、コレが作成したサンプルです。
EditとDeleteは sfSavvyPlugin のやつの使い回しです。sfUIPlugin はテーブル生成だけのヘルパーです。
まとめ
なんだかグッタリ。まだ、使える段階じゃないみたい。sfUIPluginっていうからには、今後様々なUIパーツが実装されんのかな。それとも自然消滅かな。
なんだかモチベーションが下がってきた。
--
モンハンやろー。
About this entry
Title
Archive type
Individual archive
Published
2007/11/09 18:14
0 Comments