カテゴリ | デザイン・CSS・スキン |
---|---|
サマリ | 差分表示のときだけ整形済みテキストを折り返し表示したい |
バージョン | 1.4.7_notb_utf8 |
投稿者 | tfujii |
状態 | 完了 |
投稿日 | 2012-09-09 (日) 15:09:50 |
<?php print($vars['cmd']); ?>とやると、差分ページでは"diff"と返される事を知っていたので、イケる!と思って下記のようにしたのですができませんでした。。
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 } ?> }
<?php global $vars; ?>を記述に加えてみたのですがそれでもうまくいきませんでした。
<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 ?>" />のように換える
$cmd = isset($_GET['cmd']) ? $_GET['cmd'] : '';としてやれば、$cmdに本体の変数の値を取り入れることができるでしょう
下記の その1 または その2 を行えば、差分表示時に整形済みテキストを折り返し表示できます。複雑ではないかもしれませんが一応まとめておきました。
<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 ?>" />に置換。
$media = isset($_GET['media']) ? $_GET['media'] : '';が書いてある辺りなどに、
$cmd = isset($_GET['cmd']) ? $_GET['cmd'] : '';を追記しておき、
pre { ~(省略)~ }の中にある、
white-space:pre;という行を
<?php if ($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 } ?> }の10行に置換する。
<pre>を
<pre class="diff">にすべて置換する。
pre { ~(省略)~ white-space:pre; ~(省略)~ }を複製し、
pre.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+ */ ~(省略)~ }のように変える。