WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート [symfony] admin generatorのテーマ

スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加

GmAdminGeneratorPlugin


admin generatorのテーマを作ってみたのでアップします。

インストール&使用方法

symfony plugin-install http://plugin.gomo.jp/plugins/GmAdminGeneratorPlugin/GmAdminGeneratorPlugin-1.4.8.tgz

すでにインストールしてあってupgradeする場合は
symfony plugin-upgrade http://plugin.gomo.jp/plugins/GmAdminGeneratorPlugin/GmAdminGeneratorPlugin-1.4.8.tgz

cssとimagesの入ったフォルダをシンボリックリンクする。
ln -s ~/plugins/GmAdminGeneratorPlugin/web/GmAdminGenerator ~/web/GmAdminGenerator

symfony propel-init-admin --theme=gomo app module Class

■外部キーによるグルーピング
グルーピングは外部キーがURLに無かったときに404にしてしまう機能(limit)とセレクトタグを出して選ばせる機能(group)と二つあります。
limit

generator:
class: sfPropelAdminGenerator
param:
model_class: Line
theme: gomo

limit: district_id #グルーピングする外部キーカラム名

group

generator:
class: sfPropelAdminGenerator
param:
model_class: Line
theme: gomo

group:
column: district_id #グルーピングする外部キーカラム名
options_order: {column: sort_order, order: asc} #セレクトタグ内の並び順

1.3.0からlimitとgroupは同時に使えるようになりました。
■ドラッグアンドドロップによる並び替え

generator:
class: sfPropelAdminGenerator
param:
model_class: Line
theme: gomo

sort:
column: sort_order #並べ替えに使うカラム名を指定
submit_on_drop: off #ドロップと同時にセーブするか、ボタンでセーブするか


■リストのソートリンクを無効化

generator:
class: sfPropelAdminGenerator
param:
model_class: Line
theme: gomo

list:
link_for_sort: off


■強制的に今の日時で登録するチェックボックス
例:カラムcreated_atに自動取得のチェックボックスを出す。

generator:
class: sfPropelAdminGenerator
param:
model_class: Line
theme: gomo

edit:
fields:
created_at: {get_now_checkbox: 自動取得} #ラベル名を取得


■あるフォームの内容を他のフォームにコピーする。

generator:
class: sfPropelAdminGenerator
param:
model_class: Line
theme: gomo

edit:
fields:
frgn:
copy_value:
copy_field: name
regex: ^[A-Za-z0-9ぁ-んー]+$ #この正規表現にマッチするときだけコピーする
interval: 0.1 #チェックするインターバル


■重複登録を防ぐためにチェックする。

generator:
class: sfPropelAdminGenerator
param:
model_class: Line
theme: gomo

edit:
duplication_check:
observe_field: name #このカラムのフォームが変更されたら調べに行く
compare_field: frgn #このカラムのフォームの内容でDBを検索
interval: 0.5 #何秒おきに調べるか?
substring_matching: off #部分一致検索を使用するか?offなら前方一致検索


■多対多のリレーションで、ドラッグ&ドロップで並び替え

generator:
class: sfPropelAdminGenerator
param:
model_class: Line
theme: gomo

relation:
title: "路線に駅を登録する" #ページの左上のタイトル
associated_list:
title: "この路線の駅" #関連付けられているリストのタイトル
unassociated_list:
title: "駅リスト" #関連付けられていないリストのタイトル
sort: frgn #リストのオーダーに使うカラム[frgn,desc]も可
search: #リストが多いときに検索できるようにする
field: frgn #検索に使うカラム
interval: 0.5
list_all_default: on #デフォルトで全ての項目を表示するか。offだと検索するまで何も出ません。
substring_matching: on
class: LineStation #中間テーブルのクラス
sort_column: sort_order #並び替え用カラム
submit_on_drop: on #ドロップと同時にセーブするか、ボタンでセーブするか

■多対1と多対多のadmin_select_listに検索


generator:
class: sfPropelAdminGenerator
param:
model_class: Line
theme: gomo

edit:
account_id:
search:
field: [name,desc] #必須です。検索対象カラムと並び順
interval: 0.5 #何秒おきに検索するか?
substring_matching: on #部分一致で検索する(%hoge%かhoge%か?)


Change Log
1.4.8symfonyのバージョンチェックを修正
1.4.7いくつかのPHPショートタグ <? を <?php に変更しました。
1.4.6limit・groupと同時にvalidateを使用するとエラーが出ていたので修正しました。
1.4.5'_*_hearder.php' と '_*_footer.php'にlimitとgourpをアサインしました。sortとrelationにheaderとfooterを追加しました。
1.4.4limitかgroupを使用した時リストでページングがうまく動いていなかったので修正しました。
1.4.3パーシャルとコンポーネントの時もsetterメソッドを作ってしまっていたので修正。純正テーマもそうなってるみたいです。
1.4.2style sheetを微調整しました。
1.4.1displayのcategoryを分けた時にエラーが出ていたので修正。edit.search.カラム名.list_all_defaultは動いていませんでした。実装が困難そうなので一旦削除。
1.4.0多対1と多対多のadmin_select_listに検索をつけました。
1.3.0limitとgroupを同時に使えるようにしました。
1.2.1listSuccessでgroup単独で使ったときprototype.jsを読み込み忘れていたので修正。
1.2.0外部キーでグルーピングをソートの他、編集やリストにも適応、あわせてソート単体ののグルーピングは削除しました。
1.1.0並び替え時に外部キーなどでグルーピングして並び替えも出来るようにしました。
1.0.3!is_null => issetへ
1.0.2メソッド名を動的にしなければならないところが、固定されていたバグを修正。主キーの名前がidに固定されていたので修正。
1.0.1ある条件下でUndefined variableのエラーが出ていたので修正

[symfony 1.1.6]
スポンサーサイト

    このエントリーをはてなブックマークに追加
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。