Blog

ブログ

MovableType投稿画面の入力項目を全ユーザーで統一するプラグイン「EntryPrefsFixer」

「EntryPrefsFixer」は、システム内の全ユーザーの入力項目を、強制的に同じにするMovableType用のプラグインです。

ダウンロードはこちら。
Movable Typeでエントリの表示オプションを全ユーザーで同一にする。 – Junnama Online

特に設定はありません。有効にしている間、MTの動作が以下のように変わります。

  • システムまたはブログ管理者が「表示オプション」を変更したタイミングで、その内容が全ユーザーに反映される
  • 管理者権限のないユーザーの投稿画面には、表示オプションが出なくなる
  • プラグイン有効化前に各ユーザーが個別に表示オプションを変更していても、管理者が変更をした時点で強制的に上書きされる
  1. MovableType4・ 5・Power CMS for MTで動作を確認しています。
  2. 新規アカウントを追加したタイミングでも同期される機能があったようですが、動作しないようです。現状では「表示オプションを変更したとき」のみ行われます。

かなり実務向けのプラグインなので、機能をざっと書いてもピンと来ない人も多いかもしれません。
必要な場面や技術的な捕足は、追記以降をご覧くださいませ。

MovableTypeの表示オプションの仕様について

MT4以降では、投稿画面の入力項目の表示・並び順を細かく設定することができます。
カスタムフィールドを多用するCMS的な構築には必須の機能ですが、ひとつ面倒なところがあります。

新規で記事を書くときの大まかな「項目の表示」については、各ブログの「設定」→「投稿」で前もって指定できるのですが、
投稿画面右上の「表示オプション」で指定できる「項目の並び順」に関しては各ユーザー個別となります。

つまり、MovableTypeの管理者が
入力しやすいようにカスタムフィールドの項目を整頓していても

更新担当者のアカウントでログインすると、
初期状態に戻ってしまうのです。

ブログやアカウントの数がほとんどないのであれば大した問題ではないのですが、大規模案件などでブログ10個・アカウント 10個となってくると、10×10で100回分の表示オプションの設定を行わなければならないのです。

ぶっちゃけやってられま(ry

そんなときに「EntryPrefsFixer」を使うことで、下位ユーザーの環境を管理者側で簡単に整えることができます。
後々アカウントが増えたときの表示オプションの変更回数も、ブログの数だけで済みます。

技術的な捕足

このプラグインは、@Nick_smallworldさんと私(@webbingstudio)のTwitterでの会話を、@junnamaさんが見て作成してくれたものです。

@Nick_smallworldさんに許可をいただいたので、ログを技術情報として追記します。
DBを直接編集することで対応したい人や、同様のプラグインを作ってみたい人は参考にしてください。

【緩募】 MovableTypeで、Aさん(もしくはシステム管理者)がカスタムフィールドの並び替えをしたときに、他ユーザー(Bさん、Cさん)も強制的にAさんの並び順にさせる方法をご存じの方、いらっしゃいますでしょうか。 11:56 PM Apr 29th

@Nick_smallworld MTの項目並び替えの件、遅レスですが私も調べたことがあるので、情報流しておきますね。この先しばらく連投になりますが失礼。 10:22 AM Apr 30th

管理画面項目の表示/非表示、並び替えは「mt_permission」テーブルの[permission_entry_prefs]がブログID、ユーザーIDをキーに管理しているらしいです。 #movabletype 10:24 AM Apr 30th

.@Nick_smallworld すいません、これの一個前Replyにしませんでした。…なのでメインユーザーのpermission_entry_prefsを他ユーザーに複製すると並び順は同じになるのではないかと考えられます。 #movabletype 10:25 AM Apr 30th

.@Nick_smallworld このことをサーバー担当の方に伝えたところそれでうまくいったぽいのですが、残念ながら私自身はまだ検証できていません。 #movabletype 10:27 AM Apr 30th

.@Nick_smallworld にっくさんのように「強制的に」と考えている場合、編集のタイミングでプラグインを起動させる/cronか別途プログラム起動で、該当DBを修正させる/という手がある気がします。 #movabletype 10:29 AM Apr 30th

@Nick_smallworld カスタムフィールドの並び順に関して私の方でわかってるのはこのくらいですが、少しでも参考になれば。てゆか誰かプラグイン作ってくれないかなあ。 #movabletype 10:30 AM Apr 30th

@webbingstudio ありがとうございました!ばっちりできました。permissionのほうに定義されていたとは気がつかず「blog_かauthor_の方だろうなー、でも項目が無いなー」と思って探していましたw 6:01 PM Apr 30th

@Nick_smallworld あれでできましたかー。結局、項目の表示順は全ユーザーで統一することが多いですよね。今後の案件にも役立ちそうなので、私も試してみます! 8:52 PM Apr 30th

あと名前出せないのですが、私の検証を元に実際にDBを書き換えて動作確認してくれた当時の某社サーバー担当者様、ありがとうございましたー><。