$script_for_layout にスタイルシートCSSを展開する

久しぶりの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>

(2)スタイルを適用したいViewに下記を記述する。

<?php $this->Html->css('pdf',
    'stylesheet', array('media'=>'all', 'inline'=>false)); ?>

(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>

※$this->html->cssは、第3引数に ‘inline’=>falseを記載すること。
これがないと、定義したViewの部分に展開される。
※CakePHP1.2の場合は、第4引数に記載していたようです。

コメントを残す

役立つ
面白い

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください