ホーム > フォーラム > 質問箱 > XOOPS CODEタグの中でキーワードの文字色を変えたい

XOOPS CODEタグの中でキーワードの文字色を変えたい
投稿者: hikaruVBA | 投稿日時: 2005/9/11 11:12 | 閲覧: 10945回
hikaruVBA
こんにちは hikaruVBA です
立て続けにすみません

VBAのITサイトをXoopsで構築使用としているものですが
オリジナルのTipsをxoopsfaqモジュールをコメントなしにして
使おうと思っています。

Tipsを追加するとき管理メニューから
書き込んで、サンプルコードは [CODE] タグで囲んでいます
CODEタグ自体のスタイルはxoopscode のClassを
変更すればいいのはわかったのですが
VBAのコードのキーワード Dim,For,Next・・・などを
を色を変えて表示したいのです
通常のhtmlでは キーワードを逐次Fontタグで
囲んでいたのですが
[CODE] タグ内ではそれをやっても、
そのままタグが表示されてしまいます
(当然といえば当然ですが)

仕方がないので、[CODE] タグを使わずに、
PREタグから逐次打ちこむことで、希望の表示は可能になったのですが

何とかカスタマイズして、[CODE] タグ内で
文字色の変更だけでもOKにできないでしょうか?

つまり
[CODE] タグを挿入することで付加される
<div class="xoopsCode"><pre><code>


<div class="xoopsCode"><pre>

だけにするとか・・

長くなりましたが、別案も含めてアドバイスよろしくお願いします

コメント(4)

新しいものから | 古いものから | ネスト表示 | RSS feed
Re: XOOPS CODEタグの中でキーワードの文字色を変えたい 
投稿者: mayor | 投稿日時: 2005/9/11 11:42
mayor
XOOPS_ROOT/class/module.textsanitizer.php に
    function codeConv($text, $xcode = 1, $image = 1){
        if($xcode != 0){
            $patterns = "/?[code](.*)?[?/code?]/esU";
            if ($image != 0) {
                // image allowed
                $replacements = "'<div class=?"xoopsCode?"><pre><code>'.MyTextSanitizer::codeSanitizer('$1').'</code></pre></div>'";
                //$text =& $this->xoopsCodeDecode($text);
            } else {
                // image not allowed
                $replacements = "'<div class=?"xoopsCode?"><pre><code>'.MyTextSanitizer::codeSanitizer('$1', 0).'</code></pre></div>'";
                //$text =& $this->xoopsCodeDecode($text, 0);
            }
            $text =  preg_replace($patterns, $replacements, $text);
        }
        return $text;
    }
という部分があるので、
    function codeConv($text, $xcode = 1, $image = 1){
        if($xcode != 0){
            $patterns = "/?[code](.*)?[?/code?]/esU";
            if ($image != 0) {
                // image allowed
                $replacements = "'<div class=?"xoopsCode?"><pre>'.MyTextSanitizer::codeSanitizer('$1').'</pre></div>'";
                //$text =& $this->xoopsCodeDecode($text);
            } else {
                // image not allowed
                $replacements = "'<div class=?"xoopsCode?"><pre>'.MyTextSanitizer::codeSanitizer('$1', 0).'</pre></div>'";
                //$text =& $this->xoopsCodeDecode($text, 0);
            }
            $text =  preg_replace($patterns, $replacements, $text);
        }
        return $text;
    }
とすれば、変更できますよ。

ただし、xoopsfaq に限らず、XOOPS全体で、[code]タグは上記のように変更されますので、
ファイルのバックアップをとって、ハックしてください。


あるいは、タグを用いないで、[color]タグを用いるとか。
&#91;color=ff0000&#93;文字&#91;/color&#93;
のようにすれば、色がつけられます。
xoopsfaqだけに使うのであれば、こちらの方がいいかもしれません。



Re: XOOPS CODEタグの中でキーワードの文字色を変えたい 
投稿者: choromo | 投稿日時: 2005/9/11 11:48
choromo
こんにちは
色を付けたいだけならば,
[code][color=ff0000]赤い文字です[/color][/code]でいいと思います。
本当は,
xoops_root/class/module.textsanitizer.php
を編集する,追加する,等をするとうんと楽になると思います。
方法については,
「Custmizing xoops」が参考になります。あるいは「サニタイザ」や「module.textsanitizer」をキーワードにして検索すれば詳しい説明をみられるかもしれません。
[keyred][/keyred] → で赤文字に
[keybold][[/keybold]で太字に
というふうに,自分オリジナルなBBCodeを作れるわけです。
※注:[]はあえて全角で入力しています。

Re: XOOPS CODEタグの中でキーワードの文字色を変えたい 
投稿者: hikaruVBA | 投稿日時: 2005/9/11 16:00
hikaruVBA
こんにちは hikaruVBAです
mayor レスありがとうございます。

コードまでアップしていただいて・・・感謝です
本来の質問より、
「ここでタグをつけてるんだぁ・・」ということが
わかって、うれしいです。

また、関数のスコープの関しても、アドバイス
ありがとうございます

Color タグはまだ試していなかったので
なりほど言われてみればそうですね。
それを使えばよかったんです。
既存のhtmlに簡単な置換を施して貼り付ければ楽になりそうです

とりあえずColorタグで乗り切ることにしたいと思います。
もちろんFunctionの勉強もさせていただきます。
ありがとうございました。

Re: XOOPS CODEタグの中でキーワードの文字色を変えたい 
投稿者: hikaruVBA | 投稿日時: 2005/9/11 16:14
hikaruVBA
こんにちは hikaruVBAです
choromoさん、こちらにもレスいただいてありがとうございました

color タグを使う方法を、別なアドバイスでも紹介していただきましたので、これで行くことにします。

xoops_root/class/module.textsanitizer.php
については早速mayorさんからも、具体的な提案を
いただきました。
将来的にぜひハックしたいと思います。

「自分オリジナルなBBCode」
非常に魅力的ですね
標準のxoopsだけでも、時間が足りないのに、うれしい悲鳴です
ちなみに BBcode って Xoopsタグと同じ意味でしょうか?
どちらが正式名称なんでしょうね?

本題は解決しましたが
参考までに教えてくださるとうれしいです。

どうもありがとうございました

    投票(0)

    新しいものから | 古いものから | RSS feed
     
    To Top