BBcodeのsiteurlのtarget=”_blank”解除

カテゴリー: xoops — admin @ 12:38 AM

BBcodeのsiteurlのtarget指定を変更する

xoopsを使用していると様々な用途でBBcodeを使用する機会が出てくることでしょう。
さて、最もよく使用するものと言えば、

  • [img]
  • [url]
  • [siteurl]

あたりではないでしょうか。xoopsでは昔から[url]も[siteurl]もtargetにblank指定が標準でされていて、何もしなければ別窓で開いてしまう訳です。
[url]はまだ良いのですが、[siteurl]は自分のサイト内なのでちょっと鬱陶しいですね。
あんまり別窓で開きまくると怪しげなサイトのような雰囲気を醸し出してしまいます。
今回、別窓で開かないようにする為の改造を施してみます。

具体的な変更方法

今回はxoopscube2.1Lagacyの変更方法。
2.0系とかだとgoogle等の検索エンジンで探すと引っ掛かるでしょう。

XOOPSルートディレクトリ/modules/legacy/kernel/Legacy_TextFilter.class.php

この部分で、

292行目   

    function makeXCodeConvertTable(&$patterns, &$replacements) {   

        $patterns[] = "/\[siteurl\=(['\"]?)([^\"'<>]*)\\1\](.*)\[\/siteurl\]/sU";   

        $replacements[0][] = $replacements[1][] = '<a href="'.XOOPS_URL.'/\\2" mce_href="'.XOOPS_URL.'/\\2" target="_blank">\\3</a>'; 

はい、ここをいじります。ここでBBcodeのパターンを置き換えています。
今回はsiteurlをとりあえず変更するので、別窓で開かないようにする為には、target=”_blank”を削除すれば良いのです。

292行目   

    function makeXCodeConvertTable(&$patterns, &$replacements) {   

        $patterns[] = "/\[siteurl\=(['\"]?)([^\"'<>]*)\\1\](.*)\[\/siteurl\]/sU";   

        $replacements[0][] = $replacements[1][] = '<a href="'.XOOPS_URL.'/\\2" mce_href="'.XOOPS_URL.'/\\2">\\3</a>';

簡単に出来ますね。

ちなみに、xhtmlのstrictとかでコーディングされている方は、urlなどもtarget指定しないようにここで設定したり出来ます。