Links Opening New Windows

当BBSが使用しているphpBB3のインストール後のデフォルト仕様の雛形フォーラムです。
備忘録を置いてあります。
返信する
アバター
Sir.Jake
管理人
記事: 871
登録日時: 2017年10月04日(水) 10:24
お住まい: Japan(日本)
連絡する:

Links Opening New Windows

投稿記事 by Sir.Jake »

Links Opening New Windows記事中の変更事項のうち
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 URL

次に、あなたのスタイルの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',
         );
また、テンプレートファイルも更新したので、ボードの管理パネルのフロントページにあるそれぞれのボタンを使ってボードのキャッシュを消去することを忘れないでください。

注:変更は既存の投稿には影響しません。再編集できるように編集する必要があります。
返信する