Laravel-adminでRateit

どうもこんにちは

Laravel-adminで、入力にRateitを使いたくなったので
やったことのメモです。
管理画面なのにわざわざRateitで入力するってどういうことよ?!
というツッコミは一切受け付けません。


RateItとは?

評価を入力、表示するときに使う★(スター)を便利にできるjQueryのプラグインです。
サンプルも多く、非常に使いやすい印象です。
詳しくはコチラ ⇒ GitHub – gjunge/rateit.js: Rating plugin for jQuery.


目標

Laravel-adminのカスタムフィールドで追加してみます。
公式ドキュメントはコチラ ⇒ Form field management – Laravel-admin の Extend the custom field

また、見た目は、サンプルから
2c) Icon Font – Sizing
7) Javascript invocation
の合わせ技、みたいなものを作ります。

Rateitのサンプル ⇒ Rateit.js by gjunge

では、実装に行きましょう。


フィールドクラス

なにはなくともコレです。js、CSSはCDNで取得しています。
リソースを自分のアプリに入れておきたいときは、$css, $jsの内容を書き換えればよいかと。
今回はApp\Admin\Extensions\Fields\RateIt.phpとしました。

 


ビューファイル

指定されたときの見た目です。前述通り、サンプルの2a)と7)に特化したのでこんな感じになっていますが、
他の見た目やHTMLにしたいときは、ビューファイルと、フィールドクラスのvarivables()メソッドで返す値を
調節してください。
というわけで、resources\views\admin\form\rateit.blade.phpというファイルを作ります。
※ムリくりなstyleタグはご愛嬌


作ったクラスを登録

app\Admin\bootstrap.phpに、作ったフィールドクラスを登録します。

これで、$form->rateit(…)が使えるようになります。


やってみる

適当なコントローラ(表現が適当)の、編集画面にrateitな項目を追加します。
こんな感じです。

 
styleメソッドには、divのstyle属性に入るスタイルを記述します。
optionsには、javascriptのrateitメソッドに渡すオプション値(連想配列、出力時にjsonに変換)を設定します。

で、画面を表示すると

ほい。できあがり。

公式ドキュメントに沿って作っただけですが、そこまで詰まることなく進みました。
フィールドクラスとか、ビューファイルをもうちょっと改造して、
もっと汎用的に作ってくれる人絶賛募集中です。
※管理画面でRateitを使用する需要がどこにあるのか、というツッコミは無視(2回目

R.TANAKAがお届けしました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です