phpを使わずに、Editリンクをなんとかしたい!
と言うことでJavascriptでなんとかしてみました。
Cookieを判断して、document.writeでなんとかなるかな~、と思ったんですが、うまく行かなかったのでリンク自体は常にあるものの、Cookieがないとリンクを辿れないようにしてみました。
まずは、インデックステンプレートに以下の内容でscripts.jsと言うファイルを追加します。(もっとも、完全な静的ファイルでも良いので、MT使わないで直接置いても良いかも)
function getCookie(key,  tmp1, tmp2, xx1, xx2, xx3) {
    tmp1 = " " + document.cookie + ";";
    xx1 = xx2 = 0;
    len = tmp1.length;
    while (xx1 < len) {
        xx2 = tmp1.indexOf(";", xx1);
        tmp2 = tmp1.substring(xx1 + 1, xx2);
        xx3 = tmp2.indexOf("=");
        if (tmp2.substring(0, xx3) == key) {
            return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
        }
        xx1 = xx2 + 1;
    }
    return("");
}
function setCookie(key, val, tmp) {
    tmp = key + "=" + escape(val) + "; ";
    tmp += "expires=Fri, 31-Dec-2030 23:59:59; ";
    document.cookie = tmp;
}
function clearCookie(key) {
    document.cookie = key + "=" + "xx; expires=1-Jan-1997 00:00:00;";
}
function login() {
  setCookie("mtlogin", "true");
}
function logout() {
  clearCookie("mtlogin");
}
function isLogin() {
  return (getCookie("mtlogin") == "true");
}
function openAdmin(url) {
  if (isLogin()) {
    window.open(url, "mtadmin");
  } else {
    alert("You need login!");
  }
}
そして、リンクを使いたいテンプレートのhead部分に以下を追加します。
<script language="javascript" type="text/javascript" src="<$MTBlogURL$>scripts.js"></script>
そして、Editリンクを付けたいところは、以下のようにします。
<a href="javascript:void(0)" onclick='openAdmin("<MTAdminLink type="editentry">")'>Edit</a>
これで、mtadminというCookieがあるときだけリンクが辿れるようになります。
後は、人からわからないところに以下のようなhtmlをおきます。
<html>
<head>
<script type="text/javascript" src="scripts.js"></script>
</head>
<body>
<form name="a">
<input type="button" onclick="login()" value="1">
<input type="button" onclick="logout()" value="2">
<input type="button" onclick="alert(isLogin())" value="3">
</form>
</body>
</html>
そして、編集をしたいブラウザで上のhtmlにアクセスし、[1]を押すとEditリンクが辿れるようになります。

カテゴリ

トラックバック(1)

このブログ記事を参照しているブログ一覧: Editリンクの作成(2)

このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/204

» AdminCGIPath プラグイン(nlog(n))~のトラックバック

mt.cfg では、mt.cgi へのパスとして AdminCGIPath ディレクティブを指定することができる。しかし、このパスをテンプレートから参照することができない。小さいプラグインを書いて、<$MTAdminCGIPath$> として参照できるようにする。...... 続きを読む

コメントする

このブログ記事について

このページは、falseが2004年3月11日 09:38に書いたブログ記事です。

ひとつ前のブログ記事は「Editリンクの作成」です。

次のブログ記事は「節電したいなあ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

Powered by Movable Type 6.1.1