2013年4月11日木曜日

[CakePHP] $this->fetch('css') $this->fetch('script')

全ページ共通のCSSやスクリプトは、レイアウトファイル(app/View/Layouts/default.ctp)に書けばいい
じゃあ、特定のページのみ適応したいCSSやスクリプトはどうやってせっていするか

default.ctp を見てみたらこんな記述がある

  echo $this->fetch('css');
  echo $this->fetch('script'); 

ここに渡せばできるはず

どうやって渡すか
HtmlHelper で設定できる

個別Viewファイルにこんな感じで書けばいい
$this->Html->css('hoge', null, array('inline' => false));
$this->Html->script('hoge', array('inline' => false));

結果は
<link rel="stylesheet" type="text/css" href="/cakephp/css/hoge.css" />
<script type="text/javascript" src="/cakephp/js/hoge.js"></script>
※パスの先頭が /cakephp となっているのは、cakephp というディレクトリをドキュメントルート下に置いているため

'inline' => false を設定することでビューブロックとして扱われるみたい

また、
$this->Html->css('hoge.css', null, array('inline' => false));
のように拡張子があってもなくてもいいみたい

PATHを指定したい場合は
$this->Html->css('/hoge/hoge', null, array('inline' => false));
とやれば
<link rel="stylesheet" type="text/css" href="/cakephp/hoge/hoge.css" />
となる



0 件のコメント:

コメントを投稿