includes/functions_content.php 910行以降の変更はこれで。”\”で適宜エスケープしないとエラーする。
それ以外は、元記事のまま。
サイトのキャッシュをクリアすると反映されるよ//$html = "$whitespace<!-- $tag --><a$class href="$url">$text</a><!-- $tag -->$append";
// $html = "$whitespace<!-- $tag --><a$class href=\"$url\">$text</a><!-- $tag -->$append";
if ($type == MAGIC_URL_EMAIL)
{
$html = "$whitespace<!-- $tag --><a$class href=\"$url\">$text</a><!-- $tag -->$append";
}
else
{
$html = "$whitespace<!-- $tag --><a$class href=\"$url\" onclick=\"window.open(this.href);return false;\">$text</a><!-- $tag -->$append";
}
return $html;
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
元記事の日本語訳
https://www.phpbb.com/support/docs/en/3 ... w-windows/
新しいウィンドウを開くリンク
説明: phpBB3ボード上のリンクに新しいウィンドウを開く方法を説明します。
カテゴリー: Miscellanea
この記事へのリンク:すべてを選択
Knowledge Base - Links Opening New Windows
phpBB3と比較すると、phpBB2のリンクは少し違っていました。クリックしたときに、リクエストされたページで新しいウィンドウが開きました。これはいくつかの理由でphpBB3で変更されましたが、最も重要なものの1つはボード全体のXHTML 1.0 Strict-validationを達成するという目標でした。
あなたの新しいphpBB3ボードでも同じ動作をしたいのであれば、いくつか小さな変更を加える必要があります。
自動検出されたリンクの変更
まず、自動検出されたリンク(url-BBCodeでラップしなかったもの)をクリックすると、新しいウィンドウが開きます。そのためにincludes / functions_content.phpを開いて次の行を探します(592行目を参照)。
コード: 全て選択
$html = "$whitespace<!-- $tag --><a$class href="$url">$text</a><!-- $tag -->$append";
それを次の行に置き換えます。
コード: 全て選択
if ($type == MAGIC_URL_EMAIL)
{
$html = "$whitespace<!-- $tag --><a$class href="$url">$text</a><!-- $tag -->$append";
}
else
{
$html = "$whitespace<!-- $tag --><a$class href="$url" onclick="window.open(this.href);return false;">$text</a><!-- $tag -->$append";
}
次に、あなたのスタイルのbbcode.htmlを開きます(もしあなたがprosilverを使っているなら、これはstyles / prosilver / template / bbcode.htmlファイルになります)、次の行を探します:
コード: 全て選択
<!-- BEGIN url --><a href="{URL}" class="postlink">{DESCRIPTION}</a><!-- END url -->
今度はこの行に置き換えてください:
コード: 全て選択
<!-- BEGIN url --><a href="{URL}" onclick="window.open(this.href);return false;" class="postlink">{DESCRIPTION}</a><!-- END url -->
phpBBが出力をもう一度読むのを助ける
最後に、次の変更を加えて、作成されたHTML出力がphpBBによって再び解析されるようにする必要があります:includes / functions.phpを開き、2740行...
コード: 全て選択
case 'bbcode_htm':
return array(
'#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
'#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#',
'#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#',
'#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
'#<!\-\- .*? \-\->#s',
'#<.*?>#s',
);
コード: 全て選択
case 'bbcode_htm':
return array(
'#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
'#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?" onclick="window\.open\(this\.href\);return false;">.*?</a><!\-\- l \-\->#',
'#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)" onclick="window\.open\(this\.href\);return false;">.*?</a><!\-\- \1 \-\->#',
'#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
'#<!\-\- .*? \-\->#s',
'#<.*?>#s',
);
注:変更は既存の投稿には影響しません。再編集できるように編集する必要があります。