MT4の管理画面にクライアント用のヘルプコンテンツを追加しやすくするプラグイン - Add Help

Movable Type の管理画面のブログメニューに、クライアント用(更新担当者用)のヘルプを追加するプラグインを作りました。

現時点では MT4 のみに対応しています。

Add Help プラグインとは?

CMS に Movable Type を利用して構築したサイトをクライアントさんに納品する際に、更新担当者向けのマニュアルを作ることは多々あるかと思います。

もちろんそれはそれでありがたいのですが、日々更新作業を行っていると、基本的な操作はわりとすぐに覚えてしまうので、更新マニュアルを見ることはほとんどなくなると思います。

一方で、使用頻度の低い機能やブログ投稿の各フィールドをちょっと変わった使い方・制限のある入力の仕方をするような場合は、マニュアルを見る必要がでてきます。

しかし、その一つのためにマニュアルサイトを開いたりするのって意外と面倒なものです。

そこで、ブログメニューにヘルプという項目があったら便利かなーと思い、このプラグインを作ってみました。

ただ、現時点では、1つのブログに対して1つのヘルプになるので、1つのコンテンツ=1つのブログといった形のマルチブログで構築しているサイトでなければあまり活躍しないかもしれません(今回の案件がそのタイプだったので)。

そのうち、複数のヘルプコンテンツを掲載できるようにしたいと思います。

プラグインの詳細・ダウンロードは以下のページをご覧ください。

まあ、マニュアルのいらない管理画面にすることが僕の理想であるのは言うまでもありません。

メニューのラベルをプラグインの設定で変更するのが難しかった

プラグインでメニューを追加するのは意外と簡単で、config.yaml にチョロチョロっと書けば追加できます。

まあ、実際にそのメニューを動かすには、method を追加したりテンプレートを作ったりしないといけないのですが、単純なものであれば、そこは『Movable Typeプラグイン開発入門』を持っていれば問題ないと思います。独自のオブジェクトを作って独自の管理画面でどうこうするとなるとステージが一つ二つ上がってしまいますが(現在苦戦中)。

さて、先ほどメニューを追加するプラグインは意外と簡単といいましたが、今回はなかなか簡単には行きませんでした。ラベル名が固定されたメニューを追加するのであれば簡単なのですが、今回のプラグインでは、ヘルプメニューのラベルをブログごとにプラグインの設定画面で設定できるようにしたかったのです。

自分で考えた解決策としては、メニューラベルを決め打ちしてレジストリに登録しておき、そのラベルを template_output あたりのコールバックでプラグインで設定した値と置換するというものでした。しかし、この解決策はあまりスマートではありませんので、なんとかできないものかなーとTwitterでつぶやいていたところ、ToI企画のたくさんが色々と教えてくれました。

その中で勉強になったことは以下の通りです。

init_registryではプラグインの設定情報は読み込めない

最初は init_registry でプラグインの値を取得できないかと四苦八苦していましたが、どうやらこれはできないようだと教えていただきました。これができれば話はシンプルなのですが。

init_request では現在のブログIDを取得できない

init_registry でダメならもう少し後のタイミングで取得すればいいのではということで、init_request でプラグインの情報を取得する方法を教えていただきました。

プラグインの registry から menus を取得して、そこにプラグインの設定情報の値をラベルとしたメニューを追加するという方法でした。

これで解決したかに思えたのですが、init_request はログインの前に呼ばれてしまうので、ログイン直後の画面では、ブログIDが取得できないためにヘルプメニューが表示されないという落とし穴がありました。

pre_run で設定する

そして、最後はもう少し後に呼ばれる pre_run で設定する方法を教えていただきました。

結局この方法をそのまま使わせていただくことで公開することになりました。

今回のこのやり取りで、色々と知らないことを勉強できました。

たくさん、本当にありがとうございました!

  • このエントリーをはてなブックマークに追加
Just a second...