印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
MovableType MT4i の個別記事に元記事へのリンクを追加する

携帯電話向け MT4i の個別記事から,PC 向けの元記事へのリンクを追加する。テンプレートに1行追加するだけでできる。

■ ■ ■

MT4i は Movable Type 用の携帯電話向け変換プログラムである (MT4i - t2o2-Wiki)。このサイトには2009年1月に導入したので,かれこれ3年近くになる (nlog(n): MT 2.661 で MT4i 3.1)。携帯電話で読みやすいように,レイアウトを変更したり,画像を縮小したりしてくれるプログラムである。当然,携帯版の記事の URL は PC 版の元記事とは違うものになる。

導入しているバージョンは MT4i 3.1a である。

先日,本サイトの MT4i 表示 (nlog(n) mobile ver.) を眺めていて気づいたことがある。「もし,携帯電話メインでこのサイトを見ていて,その記事について自分のブログに書きたいと思った読者がいたとしたら,そのリンク先は携帯バージョンの記事になるのではないか」ということである。

「携帯版の記事 ⇛ PC 版の記事」というリンクがあれば便利なのではないか。以下はその追加方法である。

MT4i には,もともと ENTRY_ORIGINAL_URL というテンプレート変数が用意されているので,これを使えばよい。個別記事用のテンプレート mt4i/tmpl/mt4i/individual.tmpl を編集して,次の強調部分を追加する。

    <TMPL_VAR NAME="ICON_NO_0"><a href="<TMPL_VAR NAME="TOP_URL">"<TMPL_VAR NAME="ACCESS_KEY_0">>TOPへ戻る</a><br>
    <TMPL_VAR NAME="ICON_NO_4"><a href="<TMPL_VAR NAME="ENTRY_ORIGINAL_URL">"<TMPL_VAR NAME="ACCESS_KEY_4">>PC表示</a>

「ICON_NO_4」「ACCESS_KEY_4」は,オリジナルの MT4i では使われていないパラメータなのだが,これをここで使うのが適切なのかは自信なし。「ICON_NO_1」〜「ICON_NO_4」,「ACCESS_KEY_1」〜「ACCESS_KEY_4」は空きになっている。

この強調部分は,次のように携帯版に変換される (HTML ソース)。

<a href="http://nlogn.ath.cx/archives/001428.html">PC表示</a>

ENTRY_URL_ENCODE_ORIGINAL_URL というテンプレート変数も定義されているが,こちらの変換は次のようになっているため,

<a href="http%3a%2f%2fnlogn%2eath%2ecx%2farchives%2f001428%2ehtml">PC表示</a>

この用途には適さない。href="..." のリンク先は,URL エンコーディングされた (URLエンコード - Wikipedia) ひとつながりの文字列となる。「:」や「//」も単なる文字列としてブラウザに解釈される。すると,リンク先は,現時点で参照している URL からの相対アドレスになるため,上記の例であれば,「http://nlogn.ath.cx/m/http%3a%2f%2fnlogn%2eath%2ecx%2farchives%2f001428%2ehtml」となるため,ブラウザがアクセスする URL としては最終的に「http://nlogn.ath.cx/m/http://nlogn.ath.cx/archives/001428.html」と解釈されるからである。

Posted by n at 2011-11-09 23:35 | Edit | Comments (0) | Trackback(0)
Trackbacks

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


(必須, 表示されます)


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


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


Confirmation Code (必須)


Remember info (R)?