MTの管理画面の制御はMTAppjQueryプラグインで十分。
っと思っていましたが、これ、よくよく考えたら、CSSとJSで表示を制御しているので、わかる人には余裕でぶち抜けるし、最近はあまりいなくなったと思うんですが、まだたまーにいるJSをブラウザの設定で全部切ってる人。
そう、JS切られた状態のブラウザで閲覧されると、本来隠しておきたいリンクとかが丸見えになっているのですよ。
なので、まあ見た目が崩れちゃうとかは仕方がないとして、本当にこれだけは触ってほしくないっていうリンクだけは、MTのシステムtmplを修正して隠してしまうのがベストだと思う。config.yaml で頑張ろうと思ったけど、あれ結構難しいんだよね。ピンポイントでこのリンクを修正したいというときによくわからない。
僕のやり方は、コレ。元々MTのtmpl内で用意されているmt:if を流用して分岐表示させる方法。
だぶん他にもあると思うけど、確認できたのに以下のものがあった。
<mt:if name="can_publish_post"> ~公開権限をもつアカウントのみが実行~ </mt:if>
<mt:if name="is_administrator"> ~スーパーユーザー(システム管理者)のみが実行~ </mt:if>
例えば、記事投稿はできるけど、記事の「公開」権限は持っていないユーザーに対して、記事の削除もさせたくない場合とかあると思います。MTの標準のままでは「プレビュー」の下に「削除」リンクが出てます。これを消したい場合。
/tmpl/cms/edit_entry.tmpl の555行目あたりの削除リンクを<mt:if name="can_publish_post">で囲んでしまう。
<mt:if name="can_publish_post"> <div class="delete-action"> <a href="javascript:void(0)" mt:command="do-remove-items" mt:object-singular="<mt:var name="object_label" lower_case="1" escape="html">" mt:object-plural="<mt:var name="object_label_plural" lower_case="1" escape="html">" mt:object-type="<mt:var name="object_type" escape="html">" mt:blog-id="<mt:var name="blog_id">" type="submit" title="<mt:var name="delete_button_title">" class="delete" accesskey="x"> <__trans phrase="Delete"> </a> </div> </mt:if>
上記のように修正したファイルを/alt-tmpl/cms/edit_entry.tmpl にアップロードすると反映される。