自分にしか見えない [編集] リンクを作る

前に エントリから直接編集できるリンクを作る で試した方法では、HTML ソースを見れば誰でも見られる状態になっていたため、使えないとの判断を下したのですが、今回のはまた別の方法で同様の結果が得られそうなので、設置してみることにします。
大前提として、PHP が使えるようになっていることが必須です。PHP でcookie を作り、そのcookie があれば編集用のリンクなどを表示させる、という動作をするMT 用プラグイン、"AdminLinks plugin" を使用します。
ダウンロードしてきたファイルを解凍し、"AdminLinks.pl" は"mt/plugins" フォルダ以下へ、"adminlinks_logon.php" と"adminlinks_logoff.php" はブラウザからアクセスできる、他人からは推測しにくい場所(ついでに、ファイル名も変更しておくと良いかも)へ、コピーします。
もし"mt.cgi" のファイル名を変更している場合、"AdminLinks.pl" 内 172行目辺り以降の該当箇所も変更したファイル名に書き換えておくのを忘れずに。その他は特にいじるところはありません。
次はテンプレートの編集。と、その前に。"adminlinks_logon.php" にブラウザからアクセスし、cookie を生成しておきます。たぶん真っ白けのページが表示されますが、それはそれでおっけーです。これを先にしておかないと、少し悩むことになります。真っ白けのページがいやな場合、"adminlinks_logon.php" の<head> タグ内に


<meta http-equiv="refresh" content="0; URL=「戻り先のURL」">

と書いておけば良いと思います。ついでに、"adminlinks_logoff.php" も同様に書き換えておくと良いでしょう。
で、続き。MovableType の「テンプレート・モジュール」 を使うと色々と使い回しが出来てラクチンです。今回、以下のような内容のテンプレート・モジュールを作りました。名前は適当に。


<MTAdminOnly>[ <a href="<MTAdminLink type="editentry">" target="_blank">編集</a> ]</MTAdminOnly>

このリンクを表示させたい箇所に、


<$MTInclude module="「付けた名前」"$>

で、再構築。全てが上手く設定できていたら、こんな感じになります。お疲れ様でした。
adminlinks_ss1.gif
AdminLinks プラグインは他にも以下のモードがあるので、色々と応用がききそうです。というわけで、続く。

  • blogmenu: MovableType のメインメニュー
  • newentry: 新規エントリーを作る
  • editentry: エントリーを編集する
  • editcomment: コメントを編集する
  • deletecomment: コメントを削除する
  • rebuild: 再構築する


先ほどと同じく、以下のようなテンプレート・モジュールを作り、再構築するとこんな感じになります。こういうメニューがあれば便利です。
adminlinks_ss2.gif


<MTAdminOnly>
<div class="sidetitle">管理</div>
<div class="side">
<ul>
<li><a href="<MTAdminLink type="blogmenu">" target="_blank">メインメニュー</a></li>
<li><a href="<MTAdminLink type="newentry">" target="_blank">新規エントリ</a></li>
<li><a href="/mt/" onclick="javascript:window.open('<MTAdminLink type="rebuild">', 'confirm_rebuild');">リビルド</a></li>
<li><a href="「"adminlinks_logoff.php" のURL」">ログオフ</a></li>
</ul>
</div>
</MTAdminOnly>

AdminLinks プラグインは、MovableType のログイン機能とは全く無関係にcookie を生成しています。つまり、"adminlinks_logon.php" のパスが第3者に知られると、"mt.cgi" のファイル名を変更していた場合などにそれを知られる可能性があります。ただ、エントリの書き換えなどはMovableType での認証がないと行えないので、それ以上のリスクはないと思います。
AdminLinks のログインをラクにできるように、MovableType にログオンしてすぐの画面にリンクを付けてみました。"mt/tmpl/cms/list_blog.tmpl" 内 128行目辺りに埋め込めばこんな感じに表示されると思います。
adminlinks_ss3.gif
ずっと欲しいと思っていた機能がやっと付けられたので、かなり満足。
(2004/11/03 19:14 追記)
※コメントSPAM 対策のため、コメントをつけられないようにしました。