恥知らずのウェブエンジニア -web engineer, shameless

これは一歩を踏み出すことができない者たちのブログ

FuelPHP,AdminLTE,Chart.jsで管理画面的なものを作る[1]雰囲気作り

雰囲気作りといえば、これですね。


いろいろアレなことがあり、FuelPHP,AdminLTE,Chart.jsでサービスの管理画面的なものを作ろうと思います。
具体的にはもろもろの指標をグラフとかで表示する感じです。

今のとこのイメージは
・各指標でグラフで表示
・期間変更をajaxで反映
・グラフをマウスオーバーすれば、詳細な表示が見れる
・比較する指標、期間を重ねて表示
あたりを考えています。


まずは環境作りから。

FuelPHPインストール

インストール方法 - インストール - FuelPHP ドキュメント
ドキュメントにある通り、単純にclone

プロジェクトのディレクトリはadminでいこうと思います

$ cd PROJECT_DIR/admin
$ git clone git://github.com/fuel/fuel.git .
$ ./composer.phar update

Chart.js導入


nnnick/Chart.js · GitHub
上記からDownload ZIPし、中に入っているChart.jsを先ほどのFuelPHPのpublicの下に置きます。
今回は下記のように置いてみました。

public/assets/js/lib/Chart.js

AdminLTE導入


AdminLTE·ここまで多ければ何でもできそう。多機能なBootstrapベースの管理画面テンプレート MOONGIFT
AdminLTEは管理画面向きのbootstrapになります。


こちらも下記からDownload ZIP。

almasaeed2010/AdminLTE · GitHub


中に入っているcss,img.jsをそれぞれ下記のように設置しました。
とりあえずlibの下に。
imgはとりあえずimg直下にそのままコピー。必要あり次第変更で。

js
public/assets/js/lib/
├── AdminLTE
├── Chart.js
├── bootstrap-slider
├── bootstrap-wysihtml5
├── colorpicker
├── datatables
├── datepicker
├── daterangepicker
├── flot
├── iCheck
├── input-mask
├── ionslider
├── jqueryKnob
├── jvectormap
├── misc
├── morris
├── slimScroll
├── sparkline
└── timepicker

public/assets/js/lib/AdminLTE/
├── app.js
├── dashboard.js
└── demo.js
css
public/assets/css/lib/AdminLTE
├── AdminLTE.css
├── bootstrap-slider
├── bootstrap-wysihtml5
├── colorpicker
├── datatables
├── datepicker
├── daterangepicker
├── iCheck
├── images
├── ionslider
├── jvectormap
├── morris
└── timepicker

AdminLTEのサンプルを表示させてみる

ここまできたので、AdminLTEのサンプルページをFuelPHPで表示させてみます。


とりあえずfuel/app/classes/controller/admin.phpをつくり下記のように
fuel/app/views/admin/index.phpを表示するよう。

class Controller_Admin extends Controller
{
	public function action_index()
	{
		return Response::forge(View::forge('admin/index'));
	}
}

でfuel/app/views/admin/index.phpは、解凍したAdminLTEの直下にあるindex.htmlをコピーします。

合わせてcss,js,imgのパスを変更します。
css,js,imgは下記のようにassetクラスを使ったものに変更
Asset 使い方 - クラス - FuelPHP ドキュメント

<?php echo Asset::css('lib/AdminLTE/morris/morris.css'); ?>
<?php echo Asset::js('lib/morris/morris.min.js'); ?>
<?php echo Asset::img('avatar3.png', array('id' => 'logo', 'class' => 'img-circle', 'alt' => 'User Image')); ?>


こちらでひとまず、AdminLTEのサンプルページをFuelPHPで表示することができました。

次回は、実際にDBからデータ取得し、グラフ表示をしていきたいと思います。




感謝致します。
f:id:ogataka50:20141012180841j:plain