みなさんは管理画面のデザインをどうやって起こしていますか?
おいらはよくお客さんから、「エンドユーザが見る部分はデザインにこだわりたいけど、運営側しか見ない管理画面は(予算を落とすために)素っ気ない形で良いよ」と言われます。
まぁ、たしかにその通りなんですが、デザイナーを挟まないで自分でメニュー構造を作るような感じだと、それはもう、すっばらしく素っ気ない訳で、せっかくシステムとしてはなかなかのモノが出来ても、見た目で「たいしたことねーな」的な烙印を押されてしまいます。るるー。
まぁ、逆に言えば、見た目さえキレイなら、多少機能が落ちてもお客さんのウケは良いわけで…
そんなこんなしてる時に、管理画面用のフリーテンプレートが公開されている という記事を見つけました。(今見直したら、generator作ったら?ぐらい言ってますね)
実物はFree Admin Template For Web Applicationsのデモですが、よく見ると質の高さがわかります。
「こりゃあいい、そのうち使おう」とブックマークだけしておいたのですが、そのうち個人プロジェクトで使う機会がありまして、作りながら「これならデフォルトのScaffoldに置き換えれるかも?」と思ってその時の成果を元に作ってみたのが、adminpage_scaffold_generatorです。(ちなみに、その個人プロジェクトの方はまだリリースしてません)
adminpage_scaffold_generatorの使いどころ
まとめてみると、こんな感じでしょうか。
- 管理画面。なぜなら元になるテンプレートが管理画面を想定したものだから
- ActiveScaffoldではちょっと用途が違ってて、そのままは使えないような場合の改造元
- 各種マスタ類のメンテ画面で、そのまま使いたい場合
- どっちみちコードや見た目には手を入れるにしても、管理画面のためにデザインを起こすまでもない場合の、改造元として
で、基本的にデフォルトのScaffoldに対して見た目だけ変えたものなので、適用範囲や機能もそれに準じています。
- 生成されるコードは、デフォルトのものとまったく同じはずです
- デフォルトのScaffoldの性質上、controller毎にlayoutファイルが生成されますが、実際のところはlayoutは1枚にして、ヘッダーや左サイドメニューの内容を動的に入れ替えるような感じになると思います。(この部分は何もしていないので、自分で作る必要があります)
まぁ、デフォルトのscaffold使って管理画面を作るよりは、格段に楽になると思います。
ほとんどの場合(自分の案件は全て?)このscaffoldを使って作ったものをベースにしていいんじゃないでしょうか?
注意事項
ライセンス上の制約があります。
- 元になっているデフォルトのscaffold_generator(railsに添付)がRubyライセンスなので、Gemの主体となっているMITライセンスを採用できませんでした。よってGPL ver3としています。まぁ、これはadminpage_scaffold_generatorのコードに対するライセンスなので、ジェネレータを使って作った管理画面の元ソースには影響はないでしょう。よってあまり重要ではありません。
- ジェネレータを使って作った管理画面の元ソースに使われているアイコン(16x16の小さい方)は、FAMFAMFAMさんがリリースされているもので、クリエイティブ・コモン・ライセンスver2.5になります。(なんだよ2.5って)
- よって、生成される管理画面の下部にクレジットが入りますが、これを取る事はできません。(必要ならFAMFAMFAMさんに問い合わせてください。相談に乗る旨はあった気がします)
- 中くらい(32x32)のアイコンと、テンプレート(HTMLやCSS)はFreeライセンスのようです。テンプレートの作者に問い合わせると、「自分が作ったと言って配布しなければ、あとは自由にして良いよ」とのこと。
- クリエイティブ・コモン・ライセンスの縛りから抜けるには、16x16のアイコンを使わないように変更するか、他のものに差し替えればよろしいかと。
- その他、配布物のLicenseというテキストファイルにまとめてあるので、気になる方はご確認ください。
adminpage_scaffold_generatorの使い方
長くなってしまったので、手短に。(と言っても複雑ではないのですが)
1. gemのインストール
gem install adminpage_scaffold_generator
でgemをインストールする。
2.Railsアプリのルートに移動
rails newapp
とか
cd (APP_ROOT)
とかですね。
3.管理画面を生成する
script/generator adminpage_scaffold (モデル名) [(カラム名:型) [(カラム名:型)....]]
みたいな感じでしょうか。
一応おさらいとしては
- 元にしているデフォルトのscaffoldと機能はまったく同じなので、オプションなども同じように使えます
- モデル名は末尾にsは付きません。(○:testmodel ×:testmodels)
- rails ver2.0からカラム名と型名が必要になったんでしたけ?(うろ覚え)
ここで、うまく動かない人は以下の事を確認してください
$ gem list
で
$ adminpage_scaffold_generator
が表示されているか?(インストールされているか?)
(APP_ROOT) $ script/generate
で
Installed Generators
Rubygems: adminpage_scaffold, install_rubigen_scripts
Builtin: controller, integration_test, mailer, migration, model, observer, plugin, resource, scaffold, session_migration
みたいに、generatorとして認識されているか?
(APP_ROOT) $ script/generate adminpage_scaffold
とか
(APP_ROOT) $ script/generate adminpage_scaffold hoge --help
とかして、オプションは正しいか?
プラグインバージョン
実は、gemを使わなくても、railsのpluginとしても動作するようにしてあります。(内容はほぼ変わらないので)
(APP_ROOT) $ script/plugin install http://adminpage.rubyforge.org/svn/trunk/plugins
でインストールできます。使い方も同じです。お試しにどうぞ。
(上記はtrunkを使っているのでたまに不安定になるかもです。嫌な方はtagsの中のものをどうぞ)
サポートなど
一応サポートフォーラムは作っておきました。
あとは、RubyForgeのプロジェクトページや、英語版マニュアルページや(ちゃんと書いてないけど)rdocも参照してください。
前回のGemCastが面白かったので、今回は自分で録画してyoutubeとニコニコ動画にアップしようかと思っています。
0 件のコメント:
コメントを投稿