**[[質問箱5/106]] [#h62ea71c]
|RIGHT:70|LEFT:410|c
|~カテゴリ|デザイン・CSS・スキン|
|~サマリ|差分表示のときだけ整形済みテキストを折り返し表示したい|
|~バージョン|1.4.7_notb_utf8|
|~投稿者|[[tfujii]]|
|~状態|質問|
|~状態|完了|
|~投稿日|&new{2012-09-09 (日) 15:09:50};|
***質問 [#gc446099]
:概要|~
またお世話になります。差分表示(?cmd=diff)のときだけ整形済みテキスト(pre)を折り返し表示したいです。~
~
:試行錯誤したこと|~
pukiwiki.skin.php で、~
 <?php print($vars['cmd']); ?>
とやると、差分ページでは"diff"と返される事を知っていたので、イケる!と思って下記のようにしたのですができませんでした。。~
~
pukiwiki.css.php ※余計なものは省略しています~
 pre {
 <?php if ($vars['cmd'] == 'diff') { ?>
 	white-space: -moz-pre-wrap; /* Mozilla */
 	white-space: -pre-wrap;     /* Opera 4-6 */
 	white-space: -o-pre-wrap;   /* Opera 7 */
 	white-space: pre-wrap;      /* CSS3 */
 	word-wrap: break-word;      /* IE 5.5+ */
 <?php } else { ?>
 	white-space:pre;
 <?php } ?>
 }
~
$vars が読み込まれていないのかと思い、~
 <?php global $vars; ?>
を記述に加えてみたのですがそれでもうまくいきませんでした。~
~
なぜCSSでは$varsが使えないのでしょうか(そもそも$varsが何者かもよくわかっていないのですが・・^^;)~
~
:PKWK使用環境|~
Apache/2.2.22 (Win32) PHP/5.3.14~


***回答 [#wd0e4683]
- pukiwiki.css.php はcssを出力するだけの独立したプログラムですのでpukiwiki本体の変数は参照できないです。 --  &new{2012-09-09 (日) 20:11:00};

-pukiwiki.skin.phpのほうからpukiwiki.css.phpに $vars['cmd']の値を渡してやる方法が考えられます。

--pukiwiki.skin.phpのcss指定部分の変更例
 <link rel="stylesheet" type="text/css" media="screen" href="skin/pukiwiki.css.php?charset=<?php echo $css_charset ?>" charset="<?php echo $css_charset ?>" />
の部分を
 <link rel="stylesheet" type="text/css" media="screen" href="skin/pukiwiki.css.php?charset=<?php echo $css_charset.'&cmd='.$vars['cmd'] ?>" charset="<?php echo $css_charset ?>" />
のように換える

--受け取ったpukiwiki.css.phpのほうで
 $cmd  = isset($_GET['cmd'])   ? $_GET['cmd']    : '';

としてやれば、$cmdに本体の変数の値を取り入れることができるでしょう
- ありがとうございます、できました^^。CSSで印刷時かどうかを区別するための $media という変数もpukiwiki.skin.phpの方から同じ要領で値が渡されていますね。とても参考になりました。感謝です。 -- [[tfujii]] &new{2012-09-10 (月) 13:10:23};

#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.078 sec.

OSDN