印刷レイアウトをカスタマイズする機能は、私もほしいです。
っが、どう印刷したいかは人によると思いますので、かなりいろいろ弄れないと一般受けしそうに無いところが悩ましい…
っで、↑のスクリプトなんですが…意図がよくわからない。
取り外してるほとんどの要素が印刷対象外なので、普通に印刷してもバナーやらナビやらは印刷されないはず。
(ブラウザによるのかもしれませんが、IE&Fx3 では印刷されませんね。)
なんか、別の意図があるのかな?
普通にブラウザの印刷メニューを使った場合、添付ファイルと履歴は印字されるので、それが邪魔なら
これだけ適用して印刷すれば、同じような出力になりますね。たぶん。
#mainnav とかは css/trac.css で @media print を使って印刷上に出力されないようになってますよ…というのは置いといて。
#attachments が常に印字されなくてもいいのであれば $TRACENV/templates/site.html を以下の内容で作成してもらって...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org/" py:strip=""> <py:match path="head" once="true" buffer="false"><head> ${select('*|text()')} <link rel="stylesheet" href="/trac_common/site.css" type="text/css" /> </head></py:match> </html>CollabNetSVN\httpd\htdocs\trac_common\site.css を ↓ みたいな感じ(この中身は好きなように)とかすれば
@media print { .ticket #attachments, .ticket #changelog { display: none } }目的が達成できると思います。
あとは site.css と合わせて site.js も読み込むようにしておくのもいいと思います。
個々の TRACENV ごとじゃなくて、すべて TRACENV に適用したい場合は [inherit] file と [inherit] templates_dir と組み合わせれば、1つの site.html をすべてに適用…みたいなことも出来ます。
チケットを印刷したいと思い。ちょっと拡張したら思ったより実用的でしたので、ご報告します。
私はチケット画面に「印刷用に整形」ボタンを配置し、クリックすると、↑のjavaScriptを実行するように実装しました。(もちろんボタン自身も消すようにしました)↓のようなjavaScriptを実行すると、チケットだけが表示されますので、それを印刷しました。