おぼえがき

おぼえがき

fuelphpでAssetsを利用して画面特有のcss,jsなどを呼び込む

2013-03-17 | php
前回、fuelphpでpjaxを扱うである画面だけ、pjaxのjsライブラリが必要だった。

テンプレートのベースである、templateファイルにpjaxのライブラリのパスを
書いてしまうと、使ってない画面までこのライブラリが呼ばれて無駄。
かと言って、個別テンプレートでそのライブラリを呼ぶのもいけてない。

assetsを利用してこの問題が解決できる。


■コントローラー

class Controller_Welcome extends Controller_Template
{
 public function action_index()
 {
  Asset::css(array('bootstrap.min.css', 'bootstrap-responsive.min.css','bootswatch.css'), array(), 'add_css', false);
  $this->template->content = View::forge('welcome/index');
 }

※ここで、'add_css'っていうグループを登録しておく


■テンプレート

<!DOCTYPE html>
<html lang="ja">
 <head>
  <meta charset="utf-8">
  <?php echo Asset::css('全てのテンプレートで呼ぶ.css'); ?>
  <?php echo Asset::js('全てのテンプレートで呼ぶ.js'); ?>
  <!-- 画面固有のCSS -->
  <?php echo Asset::render('add_css');?>


これで、コントローラー側で、add_cssグループに、CSSファイルがアサイン
されているときだけ、画面固有のCSSが表示されるようになる。

ちなみに、
<?php echo Asset::render('add_css',true);?>
ってやると、外部ファイルを呼ぶのではなくて、外部ファイルがここに
展開される

なるほどね

最新の画像もっと見る

コメントを投稿