jumpto.inc.php

サマリリダイレクトジャンプ プラグイン
リビジョン1.5
対応バージョン1.4.7
投稿者teanan
投稿日2006-06-27 (火) 15:37:18

説明

コンテンツ内の外部サイトへのリンクを置換し、 meta refresh でジャンプするプラグインです。

下記のような方にお勧めします。

  • Refererヘッダが気になる。
  • 外部サイトに飛ぶ前に警告画面を出したい。

使い方

  1. jumpto.inc.php を pluginフォルダに入れます。
  2. skin/pukiwiki.skin.php の最初に次の2行('+'が付いた行)を加えてください。
skin/pukiwiki.skin.php: 10行目付近
  // PukiWiki default skin
  
+ require_once(PLUGIN_DIR . 'jumpto.inc.php');
+ $body = plugin_jumpto_replace($body);
  // ------------------------------------------------------------
  // Settings (define before here, if you want)
  • MenuBarでも置換が必要な場合は、続けて下記も変更してください。
skin/pukiwiki.skin.php: 157行目付近
 <td class="menubar">
-   <div id="menubar"><?php echo do_plugin_convert('menu') ?></div>
+   <div id="menubar"><?php echo plugin_jumpto_replace(do_plugin_convert('menu')) ?></div>
 </td>
  • 他、ページ下の COPYRIGHT部分も同様に。
skin/pukiwiki.skin.php: 267行目付近
  Site admin: <a href="<?php echo $modifierlink ?>"><?php echo $modifier ?></a><p />
- <?php echo S_COPYRIGHT ?>.
+ <?php echo plugin_jumpto_replace(S_COPYRIGHT) ?>.
  • 外部リンクにアイコンをつけたい場合は、次のようにしてください。
    1. official:自作プラグイン/exlink.inc.phpから、アイコンデータをダウンロードします(external_link.gif)。必要に応じて、下記のcssの設定も追加してください。
      例
      img.external_link{
              margin-right:.5em;
              margin-left:.2em;
      }
    2. アイコンデータを image フォルダに格納します。
    3. jumpto.inc.phpファイル内の PLUGIN_JUMPTO_EXLINKの定義をTRUEにします。
      define('PLUGIN_JUMPTO_EXLINK', TRUE);

ダウンロード

更新履歴

  • 2009-01-11 rev.1.5
    • クッションページを新しい画面で開くオプション追加
  • 2006-12-12 rev.1.4
  • 2006-12-12 rev.1.3
    • exlink.inc.phpのアイコンを表示する機能を追加
  • 2006-07-20 rev.1.2
    • 相対リンクの時に置換されてしまうのを修正
  • 2006-07-20 rev.1.1
    • 引き渡すURLがエンコードされていない問題を修正
    • 注意画面の文字化け対策
  • 2006-06-27 rev.1.0
    • 初版

コメント

  • 久々の「必要に迫られて作成しました」シリーズです :) -- teanan 2006-06-27 (火) 15:41:13
  • ちなみに、1.4.7用としていますが、1.4.6以前でも問題は無いと思います。 -- teanan 2006-06-27 (火) 15:47:05
  • ひとつバグ発見。最後の部分、正規表現が1文字違いましたので、うまく変換されない方は修正してみてください。 -- teanan 2006-06-28 (水) 16:38:50
    • revesion 1.1 にて修正済みです。 -- teanan 2006-07-20 (木) 02:34:09
  • 1.4.7で使っていますが、このページにリンクを張ろうとteanan.homeip.netと書いたときに自分のTopページに飛ぶのですがどうすればいいですか? -- ど素人 2006-07-20 (木) 01:51:04
  • 頭の[を1個はずさないと変換されちゃう。 上の投稿のリンクに変換された部分はこれです [teanan.homeip.net>http://teanan.homeip.net/pukiwiki/?%BC%AB%BA%EE%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%2Fjumpto.inc.php]] -- ど素人 2006-07-20 (木) 01:53:08
  • 上記の場合、警告画面がでずに自分のTopに飛びます。 また長い名前の他所のPukiWikiサイトの場合は、警告画面で出るURLが後半分くらい無くなって、飛んだ先でエラーがでます -- ど素人 2006-07-20 (木) 02:04:28
  • バグってました。filerev.1.1 をお試しください (^^; -- teanan 2006-07-20 (木) 02:24:38
  • なんと早い対応ありがとうございます。  1.1で完璧に動作するようになりました。 ありがとございますー  -- ど素人byクジャタ鯖 2006-07-20 (木) 02:55:02
  • FormattingRules・プラグインマニュアルの目次から飛ぶとTopへ飛ぶ場合とちゃんと項目が表示される場合が法則不明で起きてます -- ど素人byクジャタ鯖 2006-07-20 (木) 16:44:16
    • お、なんか変ですね・・・調査します。 -- teanan 2006-07-20 (木) 18:28:53
    • 相対リンクを誤って別サイトとして置換する問題がありました。ご指摘ありがとうございました。filerev.1.2 -- teanan 2006-07-20 (木) 18:41:35
  • 毎度の対応ありがとうございます。 ばっちりです   -- ど素人byクジャタ鯖 2006-07-20 (木) 20:39:15
  • どうもInterWikiNameが失敗してる(Top以外に飛ばない)ような気がするんですが、気のせいかな? -- ど素人byクジャタ鯖 2006-07-30 (日) 13:01:47
  • どうもInterWikiNameが失敗してる(Top以外に飛ばない)ような気がするんですが、気のせいかな? -- ど素人byクジャタ鯖 2006-07-30 (日) 13:02:13
  • 2個書いちゃった....プラグインはずして他の設定ファイルもどしても同じ症状が起きるので、上のは忘れてください(つд・) -- ど素人byクジャタ鯖 2006-07-30 (日) 21:54:24
    • 了解です :) -- teanan 2006-07-31 (月) 01:57:09
  • クロスサイトスクリプティングの問題は大丈夫ですか? -- 2006-11-13 (月) 14:59:18
    • チェックはしていますので大丈夫なはずです。なにか問題がありましたらお知らせください (^^; -- teanan 2006-11-13 (月) 18:52:40
      • そうでしたか、返答ありがとうございました。 -- 2006-11-13 (月) 20:09:32
  • 場違いでしたらすみません。本家自作プラグインにあるexlink.inc.phpと同時に使用したいのですが、こちらを導入するとexlinkが作動しなくなってしまいます。何か対策はあるでしょうか? -- 2006-12-11 (月) 14:39:16
  • 正規表現をちょっと変更するといけそうな気がします。調査してみます〜 -- teanan 2006-12-11 (月) 21:45:22
  • ありがとうございます。どうぞ宜しくお願いいたします。 -- 2006-12-11 (月) 22:45:36
  • どうやら、jumptoで内部リンクに書き換えているため、exlinkが動作しなくなるようです。exlinkも基本的に同じようなことをやっていますので、jumptoの方にアイコンを付加する機能をつけました。file1.3をお試しください。PLUGIN_JUMPTO_EXLINK の設定をお忘れなく。 -- teanan 2006-12-12 (火) 02:46:35
  • ありがとうございます。すばやい対応感謝いたします。無事に設置が出来ました。 -- 2006-12-12 (火) 10:45:19
  • テキスト整形のルールなどのページでリンクの画像が表示されてしまうときはどのようにしたらいいでしょうか?これは仕様ですか? -- 2006-12-12 (火) 11:53:29
  • 連続ですみません#contentsをつけるとどうやら外部リンク画像が出てしまうようです -- 2006-12-12 (火) 11:55:57
    • なるほど、調査します*1。 -- teanan 2006-12-12 (火) 13:07:23
    • すみません、全てのリンクについていました (^^; file1.4 -- teanan 2006-12-12 (火) 19:24:03
  • これ導入させていただいております。『自分のサイトにも』リンクアイコンがつきジャンプページが挿入されます。これは仕様でしょうか? -- 2007-01-31 (水) 10:40:37
  • 状況として aaa.aaa.netと言うドメインで利用してる時、aaa.aa.net/dir にもついてしまうという状況です -- 2007-01-31 (水) 10:44:42
  • ↑の部分のミスです。 aaa.aaa.netと言うドメインで利用してる時、aaa.aaa.net/dir でした。 -- 2007-01-31 (水) 10:45:41
  • 現状の仕様はそのようになっております。 $script の値と比較していますので、PukiWikiのコンテンツから外れるだけでリンクアイコンが付きます。63行目を、下記のようにに置き換えるとご所望の動作となるかもしれませんので試してみてください。 -- teanan 2007-01-31 (水) 19:11:02
    - $script = get_script_uri();
    + $script = 'aaa.aaa.net/';
  • 有難うございます -- 2007-01-31 (水) 21:11:20
  • 時間があったのでやってみたのですがどうしてもWiki外にはリンクつきますね。仕様のようですのでこのまま使い続けます -- 2007-02-04 (日) 16:00:07
  • Pukiwiki1.4.7にて改造させて使わせてもらっています。URLに&があると、上手く飛ぶことができないのですが、修正することは可能でしょうか? -- TOBY 2008-11-14 (金) 12:38:29
  • 例えば、以下のようなURLです。&が&に置換されてしまいます。http://shop.ebay.com/?_from=R40&_trksid=m38&_nkw=nintendo+ds -- TOBY 2008-11-14 (金) 13:07:56
  • 実態参照が置換されてしまいました。「&が&amp;に置換されてしまいます」 -- TOBY 2008-11-14 (金) 13:09:27
    • お返事が遅くなりましてもうしわけありません。 76行目のrawurlencodeを外してみてください。 -- teanan 2008-11-15 (土) 17:02:20
    • すいません。私の勘違いのようでした。rawurlencodeを特に変更なしでもいけました。どうやら改造時にLocationヘッダーに渡そうとしたURLがrawurlencodeだとダメだったようです。(しかしLocationヘッダーだとそもそもrefererが残ることに気づきました orz) -- TOBY 2008-12-19 (金) 13:01:48
  • ありがたく使用させていただいています。クッションページを target="_blank" にて新しいウィンドウで表示する事は可能でしょうか?宜しければどのように変更すれば可能か教えていただけると嬉しいです・・・。 -- てんてん 2009-01-10 (土) 00:17:44
    • すいません、、、lib/make_link.phpにて「外部リンクの場合はrel="nofollow"のタグをつける」ようになっていたのですね・・・。この部分をtarget="_blank"に変える事で実現できました。プラグインに直接関係のない質問で申し訳ありませんでした。 -- てんてん 2009-01-11 (日) 09:14:35
    • あら、一応、対応してみました (^^; PLUGIN_JUMPTO_NEW_WINDOWをTRUEに設定すると、別画面で開くようになります。*2filejumpto.inc.php.1.5.txt -- teanan 2009-01-11 (日) 10:01:14
    • うわ〜。お手を煩わせてしまって申し訳ないです;上記の改造?で新しいウインドウで開く事は実現できましたので1.5を試してはいませんがすぐに対応していただけてとっても嬉しいです!ありがとうございました! -- てんてん 2009-01-11 (日) 23:05:38
  • 便利に使わせていただいています。大変有用なプラグインをありがとうございます。内部の別サイトへのリンクを対象外にする改造を入れてみました。
    77行目
        if (is_url($matches[2]) && plugin_jumpto_is_externallink($matches[2])) {

    function plugin_jumpto_is_externallink($uri)
    {
        // 内部サイトとみなすホスト
        $internal_fqdn_patterns = array(
            '.google.com',
            'localhost'
        );
        preg_match('/^(https?|ftp|news):\/\/([a-zA-Z0-9_\-\.]+)(:[0-9]+)?(\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]*)?$/', $uri, $match);
        if (count($match) > 0) {
            $hostname = $match[2];
            foreach ($internal_hostname_patterns as $pattern) {
                $rpattern = ( (substr($pattern, 0, 1) == '.') ? ".+" : "") . preg_quote($pattern);
                if (preg_match('/' . $rpattern . '$/i', $hostname) ) {
                    return FALSE;
                }
            }
            return TRUE;
        }
        return FALSE;
    }

    -- mori 2009-02-15 (日) 15:17:47
  • $internal_fqdn_patterns → $internal_hostname_patterns の間違いでした -- mori 2009-02-15 (日) 15:22:19
  • もし次のバージョンアップがありましたらこの機能取り込んでいただけると嬉しいです m(_ _)m -- mori 2009-02-15 (日) 15:24:52
  • ありがとうございます。参考にさせていただきます(*゚ー゚) -- teanan 2009-02-15 (日) 18:00:57
  • 便利に利用させていただいております。
    PLUGIN_JUMPTO_NEW_WINDOWをTRUEに設定すると、#contentsのリンクにも_blankが入ってしまうようなので、90行目を
    if(PLUGIN_JUMPTO_NEW_WINDOW && is_url($matches[2])) {
    としてその場しのぎしてみました。 -- KK 2009-03-12 (木) 17:35:00
    • ご指摘ありがとうございます。未確認でした、申し訳ありません・・・ -- teanan 2009-03-12 (木) 18:03:38
      • いえいえ、お役に立てましたら幸いです。 -- KK 2009-03-13 (金) 15:53:27
  • #contentsのリンクで_targetが出ないようにした他、手を加えている内に内部処理がほぼ別物になってしまった改造品を公開させていただきました。ひとまずご報告まで。http://www19.atpages.jp/inkyogoya/#jumpto -- 隠居小屋 2011-11-27 (日) 01:03:30
  • 便利なプラグインをありがとうございます。残念ながらグーグルクローム20ではリファラを送ってしまうようですね。IE9だと大丈夫でしたので、今後はIE9を使うことにします。 -- hoge 2012-07-05 (木) 00:24:24
©teanan/interfair laboratory 1992-2007 all rights reserved.



最終更新のRSS

*1 色々と想定外 (^^;
*2 有効にするとtarget="_blank"を指定しますので、validatorはエラーをはきます (^^;

添付ファイル: filejumpto.inc.php.1.4.txt 1160件 [詳細] filejumpto.inc.php.1.3.txt 748件 [詳細] filejumpto.inc.php.1.5.txt 1487件 [詳細] filejumpto.inc.php.1.2.txt 805件 [詳細] filejumpto.inc.php.1.1.txt 748件 [詳細] filejumpto.inc.php.1.0.txt 378件 [詳細]