その指定の仕方。
default.ctp
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $title_for_layout?></title>
<?php
echo $html->css(array(
'/bootstrap/css/bootstrap.min',
'/bootstrap/css/bootstrap-responsive.min',
'style'
),
'stylesheet',
array('inline'=>true)
);
echo $html->script(array(
'jquery'
),
array('inline'=>true)
);
echo $scripts_for_layout;
?>
</head>
通常、view側で$html->css()や$html->script()を使用して指定したものが、レイアウト側の$scripts_for_layoutで出力されます。ですが、ここでは、どのviewからも呼び出すものは7~19行目のようにdefault.ctp側で指定しています。注意点は二つ。
・echoなどの出力系コマンドで出力する。(7,15行目)
→view側で指定する場合は、 "echo $scripts_for_layout;"で出力されるのでecho等は必要なかった。
・inlineをtrueとする。(13、18行目)
→ここで指定したものは$scripts_for_layoutではかせるのではなく、「その場」で吐かせるため。
(inlineをfalseにするのは$scripts_for_layoutの中に入れ込むということ。ただし、layout側でfalseを指定した場合、$scripts_for_layoutに入ってこない。)
あと、これは作り方によりますが、基本的には上のコードのように"echo $scripts_for_layout;"の直前で出力させることになるかと思います。ベーシックなjs、cssなので、先に読み込ませるべきものが多いと思います。
0 件のコメント:
コメントを投稿