Javascriptをヘッダ内で読み込む
例えばViewで
<?php echo $javascript->link('jquery') ?>
ってやると、書いた場所にscriptタグが出てしまいます。これをヘッダの中で読み込みたい場合は、ここに2つの変更を加えます。
<?php echo $javascript->link('jquery', false) ?>
まずは上記のように、linkメソッドに第2引数にfalseを渡します。これはその場に出力するかどうかのフラグで、デフォルトでtrueになってます。
次にレイアウト側を修正します。具体的には$scripts_for_layoutという変数をhead要素内に書き込むことで、scriptタグを出力する場所を指定します。
<?php echo '<?xml version="1.0" encoding="utf-8"?>' . "\n" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <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" /> <meta http-equiv="Content-Stype-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title><?php echo $title_for_layout ?></title> <link rel="stylesheet" href="/css/style.css" type="text/css" /> <?php echo $scripts_for_layout ?> </head>
これで$scripts_for_layoutを指定した場所に読み込まれるようになります。