久しぶりのCakePHPネタです。(CakePHP1.3)
Viewごとに、「適用するCSSスタイル、Javaスクリプトを変えたい!」という時は、レイアウトにある$script_for_layoutを活用する。
(1)例えば、default.ctp に・・・
<!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>
<?php echo $this->Html->charset(); ?>
<title><?php echo $title_for_layout ?></title>
<meta http-equiv="content-style-type" content="text/css" />
<?php
//==================================================
// CSS、Script
//==================================================
echo $this->Html->css('style');
echo $scripts_for_layout; ?>
</head>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<?php echo $this->Html->charset(); ?>
<title><?php echo $title_for_layout ?></title>
<meta http-equiv="content-style-type" content="text/css" />
<?php
//==================================================
// CSS、Script
//==================================================
echo $this->Html->css('style');
echo $scripts_for_layout; ?>
</head>
(2)スタイルを適用したいViewに下記を記述する。
(3)これで、$script_for_layout部分にスタイルが展開される。
<!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"/>
<title>タイトル</title>
<meta http-equiv="content-style-type" content="text/css" />
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="pdf.css" media="all"/>
</head>
"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"/>
<title>タイトル</title>
<meta http-equiv="content-style-type" content="text/css" />
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="pdf.css" media="all"/>
</head>
※$this->html->cssは、第3引数に ‘inline’=>falseを記載すること。
これがないと、定義したViewの部分に展開される。
※CakePHP1.2の場合は、第4引数に記載していたようです。