注文の多いXOOPS屋 TOP現在のブログ旧スタッフblog アーカイブ
このページは 2007〜2008 年に公開していた「株式会社RYUS スタッフblog」のアーカイブです。内容は当時のものです。

XOOPS Cube で、 [code] の内容を別画面で表示可能にする preload と JavaScript

2007/03/02 17:06   Ryuji   カテゴリ: XOOPS Cube

XOOPS Cube には、HTML や PHP コードを示すために使う code という BBcode があります。
この BBcode は最終的には pre タグでマークアップされます。

以前、OCEAN NET の matchan と話していたときに、この code の表示方法にうまいやり方がないだろうかとぃう話になったことがあります。

困っていたポイントは次の 2 点です。
・1 行が長いコードを code で囲うと、レイアウトがくずれる。
・上記を防ぐために幅固定をすると、見づらい

コードの見やすさを取るか、レイアウトが保たれることを取るかの二択だったわけです。

そこで、code の中身を別窓で表示するための preload と javascript を作ってみました。

・ryusXCodePopup.zip

ファイルを解凍すると 3 つのファイルがあります。

XCodePopup.js と blank.html はお使いになってるテーマディレクトリに入れてください。
ryusXCubePopup.class.php は、XOOPS Cube の preload に入れてください。
theme.html の head 内に次の 1 行を足してください。


<script type=\"text/javascript\" src=\"<{$xoops_imageurl}>XCcodePopup.js\"></script>

これで、code で囲った箇所の上に [popup] が表示されるようになります。
[popup] をクリックすると code の中身が別窓で表示されます。

動作サンプルは、 こちら をごらんください。

別窓で表示する部分は、javascript でやってますので、javascript を工夫すれば、もうちょっと見栄え良くなるかもしれません。

コメント (4)

matchan — 2007-03-02 18:42
素晴らしいです!
早速組み込んでみました(^^:
http://www.oceannet.jp/modules/news/index.php?page=article&storyid=3
Ryuji — 2007-03-04 22:53
さっそくデザインいじってくれてありがとうございます。
クラス指定だけでも付けようと思ってて忘れてました(^^;
sippu — 2007-08-13 10:04
preでページレイアウトが崩れる件ですが、わたしなりに解決策を見つけました。
http://www.sippu.com/xcube/modules/d3forum/index.php?topic_id=6
ご参考までに。
Ryuji — 2007-08-13 21:41
tableタグで囲ってしまうのもひとつの手かもしれませんね。