- 追加された行はこの色です。
- 削除された行はこの色です。
[[../]]
**印刷用表示対応スキン Part2 -- [[reimy]] [#v60daa19]
***内容 [#n7fa7abf]
-印刷用専用CSSで好きな部分を非表示に
-メニューバーを非表示に
~なお、今回はページをメールで送信する際にHTML 4.01に変更する機能は入れていません。あまり汎用性があるとは思えないので。必要な人は[[../印刷用表示対応スキン]]のほうを参照してください。
:ダウンロード|
~cvsに反映されたので、
-[[cvs:skin/pukiwiki.skin.ja.php]]
-[[cvs:skin/pukiwiki.skin.en.php]]
-[[cvs:skin/print.css]]
~をダウンロードしてください。
:補足|
~なお、今回はページをメールで送信する際にHTML 4.01に変更する機能は入れていません。あまり汎用性があるとは思えないので。必要な人は[[./印刷用表示対応スキン]]のほうを参照してください。
***利点 [#a0896931]
-スキンだけで実現しているので、PukiWikiのモジュールを改造する必要がない。PukiWIkiのバージョンアップにも楽珍。
***使い方 [#q4c4af20]
たとえば、
http://hoge.net/pukiwiki.php?HogeHoge
のページを印刷用表示にする場合
-URLを手入力する場合や他サイトから直リンクする場合は、
http://hoge.net/pukiwiki.php?cmd=read&page=HogeHoge&prn=on
-印刷用メニューをクリック ←こっちがおすすめ
***注意 [#k9deae67]
-印刷用表示を実行したあと、印刷実行後にメニューの「リロード」をクリックするか、他のページに移動すれば、通常表示に戻る。
***ダウンロード [#v9e6b554]
-&ref(pukiwiki.skin.ja.php);
-&ref(print.ja.css);
***デフォルトスキンとの差分 [#zdec601d]
--- pukiwiki.skin.ja.php.org Thu Jun 5 06:45:58 2003
+++ pukiwiki.skin.ja.php Thu Jun 5 07:09:52 2003
@@ -18,7 +18,11 @@
<?php } ?>
<title><?php echo "$title - $page_title" ?></title>
+<?php if ($vars['prn'] == "") { ?>
<link rel="stylesheet" href="skin/default.ja.css" type="text/css" media="screen" charset="Shift_JIS" />
+<?php } else { ?>
+ <link rel="stylesheet" href="skin/print.ja.css" type="text/css" media="screen,print" charset="Shift_JIS" />
+<?php } ?>
<?php echo $head_tag ?>
</head>
<body>
@@ -41,6 +45,9 @@
[ <a href="<?php echo "$script?plugin=newpage&refer=$r_page" ?>">新規</a>
| <a href="<?php echo $link_edit ?>">編集</a>
+<?php if ($vars['prn'] == "") { ?>
+ | <a href="<?php echo "$script?cmd=read&page=$r_page&prn=on" ?>">印刷用</a>
+<?php } ?>
<?php if ($is_read and $function_freeze) { ?>
<?php if ($is_freeze) { ?>
@@ -79,8 +86,8 @@
<?php echo $hr ?>
</div>
-
-<?php if (arg_check('read') and is_page('MenuBar')) { ?>
+<?php if ($vars['prn'] == '') { ?>
+<?php if (arg_check('read') and is_page('MenuBar')) { ?>
<table border="0" width="100%">
<tr><td valign="top" style="width:120px;word-break:break-all;padding:4px;">
<div id="menubar"><?php echo preg_replace('/<ul[^>]*>/','<ul>',convert_html(get_source('MenuBar'))) ?></div>
@@ -88,11 +95,13 @@
<div><?php echo $body ?></div>
</td></tr>
</table>
+<?php } else { ?>
+<div id="body"><?php echo $body ?></div>
+<?php } ?>
<?php } else { ?>
<div id="body"><?php echo $body ?></div>
<?php } ?>
-
<?php if ($notes) { ?>
<div id="note">
<?php echo $notes ?>
@@ -117,6 +126,9 @@
<a href="<?php echo $script ?>?plugin=newpage"><img src="./image/new.png" width="20" height="20" alt="新規" /></a>
<a href="<?php echo $link_edit ?>"><img src="./image/edit.png" width="20" height="20" alt="編集" /></a>
+<?php if ($vars['prn'] == "") { ?>
+ <a href="<?php echo "$script?cmd=read&page=$r_page&prn=on" ?>"><img src="./image/print.png" width="20" height="20" alt="印刷用" title="印刷用" /></a>
+<?php } ?>
<a href="<?php echo $link_diff ?>"><img src="./image/diff.png" width="20" height="20" alt="差分" /></a>
<?php if ((bool)ini_get('file_uploads')) { ?>
<a href="<?php echo $link_upload ?>"><img src="./image/file.png" width="20" height="20" alt="添付" /></a>
***印刷用CSS [#v545d994]
-print.ja.css
@charset "Shift_JIS";
@import url("default.ja.css");
~これだけでも画面左のメニューバーは表示されないが、このあとに表示したくないブロックのclassにdisplay:none;を設定していけばよい。
~たとえば、フッターを表示したくなければ、
.footer{
display:none;
}
~関連ページへのリンクを表示したくなければ、
.related{
display:none;
}
~更新日時を表示したくなければ
.lastmodified{
display:none;
}
~アイコンメニューを表示したくなければ
.toolbar{
display:none;
}
~ヘッダを表示したくなければ
.header{
display:none;
}
~メニューを表示したくなければ
.navigator{
dispaly:none;
}
~というように追加する。
~なお、メニュー、アイコンメニューの両方を表示しないようにすると、元の表示に戻るには、ブラウザの「戻る」で戻るしかなくなるので注意。
***おまけ [#vd7a912e]
~印刷時にcomment.inc.phpのフォームを表示したくない場合は、comment.inc.phpのフォームの<div>を<div class="comment_form">に書き換えて、print.ja.cssに
.comment_form{
display:none;
}
~を追加すればよい。同様にarticle.inc.phpやvote.inc.phpなどでも可能。
***サンプル [#n7d59ea7]
~[[れいみぃ:FrontPage]]で実装してます。
~印刷用と言いつつ、実際は表示用としても使うことを前提にしている。[[pukiwiki:質問箱]]で、スタイルシートの変更ができない環境でスタイルシートを変更したいという希望があったので、こういう形にした。
~その必要が無ければ、このようなやり方をしなくても、条件分岐することなく、単純に印刷用CSSをダイレクトに<link ... media="print" />で指定してしまうだけでよい。