mt.cfg では、mt.cgi へのパスとして AdminCGIPath ディレクティブを指定することができる。しかし、このパスをテンプレートから参照することができない。プラグインを書いて、<$MTAdminCGIPath$> として参照できるようにする。
MovableType では、AdminCGIPath ディレクティブを設定することができる。デフォルトでは設定されておらず、CGIPath の値と同じになっている。AdminCGIPath は、SSL を有効にしたい場合や mt.cgi を他の CGI とは違うディレクトリに置きたい場合に設定する (Movable Type ユーザー・マニュアル: 設定ガイド)。セキュリティを考えれば、mt.cgi だけを別ディレクトリに置いてもそれほど強度は増さないので、実質的には編集を SSL で行いたい場合ということになる。編集内容はいずれ公開するものなので、暗号化にはあまり意味がない。SSL で保護したいのはパスワードだけということになる。CGI のパスワードを暗号化することにどれだけの意味があるかは分からない。しかし、個別記事に置く編集用リンクが SSL 対応であれば、ページをブラウズしてくれる人に対して「管理用」ということをより強く示せるのではないかという期待が持てる。
やりたいことをまとめると次のようになる。
個別記事編集のためのアプローチには以下のものがある。
PC日記: Editリンクの作成(2) には、PHPを使わずにEditリンクを何とかしたい
として、AdminLinks プラグインに JavaScript を合わせて使う方法が試みられている。
色々考えてみると、私のやりたいことは AdminCGIPath の値を参照したいだけであり、もし <$MTAdminCGIPath$> テンプレートタグがあればそれを使いたいだけであることが分かった。しかし、<$MTAdminCGIPath$> というタグは用意されていないので、プラグインとして書いてしまうことにした。内容は次の通り。MovableType 2.x 用である。書き方は MTPath/lib/MT/Template/Context.pm が参考になった。
これを admincgipath.pl というファイル名で MTpath/plugins ディレクトリに保存する。
個別テンプレートでは、nlog(n): 編集リンクを作るには で設定した <$MTCGIPath$> を <$MTAdminCGIPath$> に変更する。
引数の区切りが「&」ではなく「&」となっているのは間違いではない。HTML では、リンクであっても「&」と書いたほうがよいとされている。
このプラグインの利点は、mt.cfg で AdminCGIPath の設定をコメントアウトしたとしても個別テンプレートの変更は不要だということである。しかし、それだけである。
Posted by n at 2004-09-05 23:59 | Edit | Comments (0) | Trackback(0)
Master Archive Index
Total Entry Count: 1957