この記事は既に古いです。
最新版のXOOPSではこの通りにならないかもしれません。参考にとどめてください。


PHPのソースとかを表示しやすくするためにちょっと改造しました。
ついでに、セクションのトップページでアイコンしか出ないのもあんまりなので、そこも少しいじります。

すべて、XOOPS_ROOT_PATH/modules/sections/index.phpに対する変更です。

まず、トップページの表示の改造は、53行目付近の
echo "http://www.panic-net.org/index.php?op";
これを
echo " $secname";
これに書き換えればセクション名が表示されるようになります。

コード表示に関しては、本来はmakeTareaData4Showというメソッドで変換されているはずなのですが、うまく表示されません。
ENT_QUOTESオプションを追加したかったのと他への影響が出ないように、セクション側をすこしいじりました。

まず、103行目付近の
$content = $myts->makeTareaData4Show($content);
これを
$content = $myts->makeTareaData4Show(htmlspecialchars($content,ENT_QUOTES));
このように書き換えることで、HTMLタグを変換して表示するようになります( "<" を "&" とかね)

さらにおまけですが、PHPのコードの引用をしやすくするために、
[code}
PHPのコード
[/code}
(閉じる側は本当は]です。この表示自体がこの変換に引っかからないように閉じ側は}と表記してます)
という独自タグを仕込んで見ました。

138行目付近の
echo ($contentpages[$arrayelement]);
部分を
$string = preg_replace("/\[code\](.*?)\[\/code\]/si", "

 

", $contentpages[$arrayelement]);
echo ($string);
とすることで、[code}[/code}の変換機能をつけました。

<?
echo "これは例";
?>

囲まれた部分をPREで囲み、<? ?> を付加します。

TIPSですが、実はもともとセクションには複数ページを作る機能があり[pagebreak}で区切ることでページを分けることが出来ます。

------
2001/3/24変更

上記[code}の部分を
$string = preg_replace("/\[php\](.*?)\[\/php\]/si", "

 

", $contentpages[$arrayelement]);
$string = preg_replace("/\[code\](.*?)\[\/code\]/si", "

\\1

", $string);
と変更しました。

[code}[/code}で囲まれた部分は

で囲まれた形にし、[php}[/php}で囲まれた部分は、が付加されるようにしました。 

Contents