phpを使わずに、Editリンクをなんとかしたい!
と言うことでJavascriptでなんとかしてみました。
Cookieを判断して、document.writeでなんとかなるかな~、と思ったんですが、うまく行かなかったのでリンク自体は常にあるものの、Cookieがないとリンクを辿れないようにしてみました。
と言うことでJavascriptでなんとかしてみました。
Cookieを判断して、document.writeでなんとかなるかな~、と思ったんですが、うまく行かなかったのでリンク自体は常にあるものの、Cookieがないとリンクを辿れないようにしてみました。
まずは、インデックステンプレートに以下の内容でscripts.jsと言うファイルを追加します。(もっとも、完全な静的ファイルでも良いので、MT使わないで直接置いても良いかも)
後は、人からわからないところに以下のようなhtmlをおきます。
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リンクが辿れるようになります。
カテゴリ
MovableTypeトラックバック(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$> として参照できるようにする。...... 続きを読む
コメントする