MODX管理画面でフォルダ(コンテナ)内だけを編集可能にする

MODXの管理画面で、ユーザの権限(投稿者等)によっては、
特定のフォルダ(コンテナ)以下は編集可能にしたいが、
フォルダ(コンテナ)自体は編集できないようにしたい。
という場合、
・グローバル設定/インターフェースとその他の機能で、
 「権限のないリソースの表示」を「はい」にして、
・フォルダ(コンテナ)の所属グループを設定する。
という方法がありますが、
これだと、ツリーで見せたくないリソースやフォルダ(コンテナ)等があっても、ユーザに見えてしまいますね。

そこで、
編集させたくないフォルダ(コンテナ)の所属グループは設定せず(制限なし)にしておいて、
MODXプラグインManagerManagerの「mm_widget_accessdenied」を使って、 画面上の表示で編集不可にするという方法があります。
http://modx.jp/docs/extras/plugins/mm/widgets.html

使い方は、リソースIDとメッセージとロールを指定するだけです。
他のManagerManagerの機能を使ったことがある人なら問題なく使えると思いますので、 以下、「mm_widget_accessdenied」応用編ということで…

1)テンプレート単位でアクセス不可にする。

「mm_widget_accessdenied」の指定がリソース単位(リソースIDによる指定)ですので、そのままでは、テンプレートによって編集不可にするということができません。
そこで、以下のような感じで、該当のページが指定のテンプレートを使用していたら「mm_widget_accessdenied」を呼び出すという関数を定義して使うという方法があります。
// テンプレートID指定でアクセス不可を設定する関数
if (! function_exists("mm_deny_templates")) {
	function mm_deny_templates($role_users, $tpl, $denied_message) {
		global $mm_current_page;
		$templates = makeArray($tpl);
		if (in_array($mm_current_page['template'], $templates)) {
			$docid = (int)$_GET[id];
			mm_widget_accessdenied($docid, $denied_message, $role_users);
		}
	}
}
$role = '!1';	// 管理者(ロールID:1)以外のユーザに対して
$tpl = '1,2';	// テンプレートIDが1,2の場合、ユーザは編集不可にする。
$msg = 'このフォルダ自体は編集できません。子リソースを作成・編集して下さい。';
mm_deny_templates($role, $tpl, $msg);

2)ドキュメントルート以外にMODXをインストールした場合

※この問題は、MODX 1.0.5J-r6で修正されました。
ドキュメントルート(例:http;//hogehoge.com/)にMODXをインストールした場合、 「mm_widget_accessdenied」は、警告アイコン(三角形に「!」マーク)とメッセージを表示しますが、
ドキュメントルート以外の場所(例:http;//hogehoge.com/fugafuga/)にMODXをインストールした場合、そのままでは警告アイコンが出ません。(メッセージは出ます)
それは「assets/plugins/managermanager/widgets/accessdenied/accessdenied.css」内に警告アイコンのパスが「/assets/plugins/managermanager/widgets/accessdenied/alert.png」と設定されているからです。
ですので、この部分をサイトにあわせて(例:「/fugafuga/assets/plugins/managermanager/widgets/accessdenied/alert.png」に)変更すれば、警告アイコンも出るようになります。