メニュー(スマホは左の Hamburger icon より)


XOOPSのモジュールによっては、セキュリティの関係でリンクを掲載する場合、HTMLのコードを使用できる場合とできない場合があります。HTMLのコードを使用できるモジュールであればリンクの target設定を target="_self" あるいは target="_blank"で使い分けることができますが、使用できない場合は、そのままリンクのアドレスを入れてしまうとどうしても新しいウィンドウに表示されてしまいます。リンクを現在のウィンドウを使いたい場合使い勝手が悪いと思います。

そこで、XOOPSモジュールの多くが利用できるBBcodeを利用しとを使い分けることによって、いわゆるリンクのtargetを設定を変更し、現在のウィンドウに表示するか、別ウィンドウに表示するかを使い分けようと思います。

BBcodeの設定をみるとXOOPS Cube Legacy2.2.0では、以前のtarget="_blank"設定がrel="external"と変更されています。初期設定のままだと全て現在のウィンドウで表示することになります。別ウィンドウでの表示設定を有効にするには、まずLegacyのパッケージからextras/extra_preload/jQuery_ExternalLink.class.php をhtml/prelaodファイルの中にアップロードします。このスクリプトによって全てのBBcodeで別ウィンドウが表示されます。

次に/modules/legacy/kernel/Legacy_TextFilter.class.phpのファイル内の340行目あたり下記赤字部分(rel="external" → data-ajax="fasle")を変更します。

----- Legacy_TextFilter.class.php -----

function makeXCodeConvertTable(&$patterns, &$replacements) {
$patterns = "/\[siteurl\=(['\"]?)([^\"'<>]*)\\1\](.*)\[\/siteurl\]/sU";
$replacements[0] = $replacements[1] = '<a href="'.XOOPS_URL.'/\\2" data-ajax="fasle">\\3</a>';
$patterns = "/\[url\=(['\"]?)(http[s]?:\/\/[^\"'<>]*)\\1\](.*)\[\/url\]/sU";
$replacements[0] = $replacements[1] = '<a href="\\2" rel="external">\\3</a>';
$patterns = "/\[url\=(['\"]?)(ftp?:\/\/[^\"'<>]*)\\1\](.*)\[\/url\]/sU";
$replacements[0] = $replacements[1] = '<a href="\\2" rel="external">\\3</a>';
$patterns = "/\[url\=(['\"]?)([^\"'<>]*)\\1\](.*)\[\/url\]/sU";
$replacements[0] = $replacements[1] = '<a href="http://\\2" rel="external">\\3</a>';
$patterns = "/\[color\=(['\"]?)([a-zA-Z0-9]*)\\1\](.*)\[\/color\]/sU";
$replacements[0] = $replacements[1] = '<span style="color: #\\2;">\\3</span>';
$patterns = "/\[size\=(['\"]?)([a-z-]*)\\1\](.*)\[\/size\]/sU";
$replacements[0] = $replacements[1] = '<span style="font-size: \\2;">\\3</span>';
$patterns = "/\[font\=(['\"]?)([^;<>\*\(\)\"']*)\\1\](.*)\[\/font\]/sU";
$replacements[0] = $replacements[1] = '<span style="font-family: \\2;">\\3</span>';
$patterns = "/\[email\]([^;<>\*\(\)\"']*)\[\/email\]/sU";
$replacements[0] = $replacements[1] = '<a href="mailto:\\1">\\1</a>';

この変更により、BBcodeでリンク設定をすれば
[url =リンク先のURL]リンク先名あるいは画像[/url]  →target="_blank"
[siteurl =自サイトのURLを省略したURL]リンク先名あるいは画像[/siteurl]  →target="_self"
※自サイトのURLには"/"も含むことに注意。また上記ではbbコードを表示するため"="の前に空白を入れています
として使い分けをすることができます。

以下テストとしてBBcodeを利用しリンクしてみました。
ソロツーリングと旅の地図(bbコード=url)
ソロツーリングと旅の地図( bbコード=siteurl)
※XOOPS自体のバージョンアップする時にファイルを上書きしてしまうと、この設定が元に戻ってしまうので注意が必要です。
プリンタ用画面
投票数:4 平均点:2.50
カテゴリートップ
XOOPSの運用
次
XOOPS用BBコード

欲しい商品が必ず見つかるメジャーなネットショップ



趣味を楽しむメニュー


趣味を楽しもう新着記事


旅行メジャーサイト簡素リンク

このサイト内の検索

オンライン状況

25 人のユーザが現在オンラインです。 (2 人のユーザが 趣味を楽しもう を参照しています。)

登録ユーザ: 0
ゲスト: 25

もっと...