印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
DownloadMovableTypePlugin リダイレクタ追加プラグイン 0.10

外部へのリンクをリダイレクタ経由にするプラグイン。MT 4/MTOS 4.1 対応。

■ ■ ■

外部へのリンクをリダイレクタ経由にするプラグイン「AddRedirector Plugin 0.10 for MT 4/MTOS 4.1」をリリースする。ダイナミックパブリッシングには対応していない。プラグインの登録にレジストリを使っているので,MT 3 以下では動作しない。ダウンロードはこちらから (nlog(n) - リダイレクタ追加プラグイン)。

先月からの企画 (nlog(n): おかげさまで4周年 - Movable Type Hackathon に参加) がようやく完了した。以下少し説明。

サイトBに中継させる
サイトBに中継させる


Web サイト A の Movable Type ブログにインストールする。A の記事内にある外部リンク (例えば C へのリンク) を,リダイレクタ B 経由に変更するプラグインである。このプラグインは,B が自分の管理下にあるかどうかについては関知しない。このプラグインが提供するのは,外部へのリンクをリダイレクタ経由にするというだけである。

中継することでリファラ送出を抑止する
中継することでリファラ送出を抑止する


このプラグインは,上の図のように,自分で管理しているリダイレクタとセットで利用することで意味が出てくる (nlog(n): リファラの送出を防止するリダイレクト CGI)。自分の管理下にあるリダイレクタを経由することで A のリファラを外部に流さないようにするのが目的だからである (nlog(n): イントラサイトの URL を内緒にしたい)。

プラグインの設定画面
プラグインの設定画面


ブログのプラグインとして動作する。設定画面において,「リダイレクタのURL」と「除外する文字列」を設定する。「除外する文字列」は空欄でよい。この場合,自ブログ内へのリンクが除外対象となる。

テンプレートにおいては,リダイレクトさせたい部分を <MTAddRedirector> と </MTAddRedirector> で囲む。<MTAddRedirector> は MT4 風に <mt:AddRedirector> のように書いてもよい。例えば,次のように使う。

<mt:AddRedirector>
  <$mt:EntryBody$>
  <mt:EntryIfExtended>
    <$mt:EntryMore$>
  </mt:EntryIfExtended>
</mt:AddRedirector>

グローバルモディファイア urlredirect は <MTAddRedirector> タグと同様の機能の機能を提供する。次のように,MTEntryBody タグなどの属性として与える。

<$mt:EntryBody urlredirect="1"$>

<MTAddRedirector> 内に urlredirect が設定されていても,リダイレクタが2重にならないようになっている。実はこれでハマッた。これについてはそのうち書きたいと思っている。当初,グローバルモディファイアの名前を「redirect」にしようと思っていたが,OptionalRedirect プラグインと名前が衝突するために「urlredirect」に変更した。

MT4 から,テンプレートタグの書式が拡張された。大文字小文字の区別はなくなり,「MT」の後ろにコロンをつけて,XML の名前空間の書式のように「mt:entries」と書くことが許されるようになった (What's New for Templating in MT4 | Movable Type Docs)

グローバルフィルタが提供する属性は,MT4 から「グローバル・モディファイア」に呼び名が変わったようだ (グローバル・モディファイアリファレンス)。MT3 では「グローバル・タグ・アトリビュート」と呼ばれていた (グローバル・タグ・アトリビュート)。モディファイアという呼び方は,Smarty の用語から来ているようだ (Movable Type 3.3 マニュアル - ダイナミック・パブリッシング)。

Posted by n at 2008-02-20 23:36 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?