この「広告の玉手箱」自体も、半ばはMODX(モドエックス)の実験サイトのような意味で作成し始めたのですが、新たに
デモサイトを公開しました。
デモサイトは、2010年7月に「
中小企業や商店のWebサイトにModxが良いと思う理由(動画あり)。」にて、動画用のサンプルとして作成したものを更に少し改良したもの。
MODXの魅力はデザインの自由性、拡張性の高さといった面から語られがちですが、ユーザー権限の設定と管理画面の作り込みで、それほど苦労せずに、更新する側にとっても高いユーザビリティを実現できます。その例としたいと考えました。
「デモサイトのようなもの」と言うのは、目論見では、カスタマイズされた管理画面を誰でも触われるようにしようと考えているため。それには定期的なリセットが必要です。cronとrsyncで実現しようとしたのですが、使用サーバではsshを許可しておらず、少々延期中です。今後、PHPでやろうと思っています。
現在、デモサイトで使用しているMODXのバージョンはEvolution
1.0.4Jです。Revolutionの方が細かいユーザー管理が可能であり、管理画面カスタマイズのデモには適していると思います。しかし、中小規模のWebサイトでは、Evolutionで十分ということも少なくありませんので、その例とご了承ください。
Evolutionでの管理画面のカスタマイズの大部分はmanagermanagerプラグインで行えますが、管理ユーザーに編集権限を与えると、ツリーや上部フレームに、場合によっては触らせたくない項目が残ってしまいます。例えば、ウェブリンクを作成させたくなかったり、コンテンツを完全に削除させたくなかったり、といった場合です。
管理画面のフレーム部分は、manager/frames/内のmenu.phpが上部フレーム、tree.phpが左フレームに相当します。
そこに部位ごとに権限を確認する構文<?php if ($modx->hasPermission('xxxxxxxx')) { ?>がありますので、隠したい部位のxxxxxxxxが"edit_document"であったら、より上位の管理者だけが持つ権限"bk_manager"に書き換えることで、更新ユーザーは操作できず、より上位の 管理者は操作できるといった状態にできます(予め編集権限のみのユーザーを作成しておきます)。
右図の例では、ツリーメニューの灰色文字の部分はユーザーには操作できません。ツリーからの新規作成は出来ず、ゴミ箱も消えてしまっているので完全な削除もできません。新規作成は右フレーム内のボタンからのみ行えます。
各カテゴリの新規作成画面は、
Inherit Selected Template(親ごとに子のテンプレートを指定できる。親と異なるテンプレートも可)プラグインを用いてテンプレートを指定しているため、managermanager
でフォーマット化された画面となります。
プレビュー状態のまま編集できるQuick Managerプラグインは便利ですが、意図しないページを編集されても困ります。これについての対策は、下記を参考にしました。
「テンプレートごとに「リソースの作成」ボタンを不可視にする方法」
ちなみに、managermanagerの詳しい使い方と、ダッシュボードのカスタマイズについては、MODX日本公式サイトに詳しく掲載されています。
デモサイトでは、/assets/templates/manager/welcome.htmlを書き換えてしまっています。
ボタンのリンク先ですが、任意の操作後にメインのフレームのみを表示させてみるとURLが分かります。各カテゴリ(親)の下への新規作成は"index.php?a=4&pid=親"のようになります。
manager以下のファイルを書き換えれば、当然アップデート以降に再び手を加えなければなりません。更新するユーザ側がルールを持っていれば、あまりカスタマイズする必要が無い場合もあるかと思います。デモサイトでは、できるだけユーザーの権限を制限する方向を試してみました。ただし、ユーザにとってTinyMCEが使いにくい、意図しないレイアウトになってしまう、というケースはよくあるでしょう。そういう場合に、予めテンプレート変数で画像の位置を決めてしまい、入力はプレーンテキストでといった、ちょっとした制限の導入でも使い易さが向上すると思います。