MODx管理画面のドキュメント作成/編集画面をカスタマイズするプラグインです。
ロール(権限)やテンプレート毎にカスタマイズすることも可能です。
適用例)
- 「公開する」等、よく使う入力フィールドを、最初に開く「プロフィール」タグで入力できるようにし、逆にあまり使わないような入力フィールドを「ページ設定」タブに移動する。
- 入力フィールドのラベル(入力項目の名前)を、テンプレート毎にわかりやすいラベルに変更する。
- ユーザーのリテラシーや適用業務にあわせて、ヘルプをわかりやすいものに変更する。
- テンプレートによって、使用しないフィールドを非表示にする。
- 特定のユーザー用に、ロール(権限)単位に入力画面をカスタマイズする。
たとえば、権限Aのユーザは入力できるが、権限Bのユーザは入力できないように、入力フィールドを非表示にする。権限によってプロフィールタブに出る入力フィールドを変えたり、ラベルを切り替える。
MODx標準のドキュメント作成/編集画面 |
カスタマイズ後のドキュメント作成/編集画面例 |
 |

※テンプレート変数は、ManagerManagerではなく、MODx標準の機能です。 |
(注意) この資料は、モジュール同梱のドキュメントやソース、公開されている情報を参考に、独自に作成したものです。
このページの目次
■1.インストール
■2.使い方
■3.
入力フィールドのカスタマイズ
■4.タブに関するカスタマイズ
- タブのラベルを変更する:mm_renameTab
- 特定のタブを非表示にする:mm_hideTabs
- 新しくタブを追加する:mm_createTab
- 入力フィールドを別のタブに移動する:mm_moveFieldsToTab
■5.ウィジェットのカスタマイズ
- ウィジェットを変更する:mm_widget_tags
- mm_widget_showimagetvs
- mm_widget_colors
- mm_widget_accessdenied
■6.セクションのカスタマイズ
- セクションのラベルを変更する:mm_renameSection
- 特定のセクションを非表示にする:mm_hideSections
■7.
上級編
■1.インストール
一般的なMODxプラグイン同様に、以下のようにインストールします。
- ダウンロード&展開
MODx公式サイトのこのページからManagerManagerをダウンロードして、展開(解凍)します。
現在(2009年6月23日時点)の最新バージョンは「0.3.2.1」です。
- アップロード
「v0.3.2/assets/plugins/」の「managermanager」を「assets/plugins/」にFTPでアップロードします。
- プラグインの作成
管理画面(リソース > リソース管理 > プラグイン)からプラグインを作成し、
「v0.3.2/plugin.txt」の内容をエディタ等で開いて、プラグインコード欄に貼り付けます。
プラグイン名欄には「ManagerManager」、
説明には適宜「<strong>0.3.2.1</strong> Manage the ModX Manager」等を入力します。
- システムイベントの設定
「システムイベント」タブを開き、
「Documents」にある「OnDocFormRender」「OnDocFormPrerender」と、
「Plugins」にある「OnPluginFormRender」にチェックを入れ、
「保存」します。
カスタマイズ内容を指定する方法は、以下の2通りあります。
- チャンクで
プラグインコード(「v0.3.2/plugin.txt」から貼り付けたもの)の18行目、
「$config_chunk = '';」のところで「$config_chunk = 'mm_rules';」
のようにチャンク名を指定し、
そのチャンク名でチャンクを作成します。
(チャンクが空でなければ、下記のアップロードファイルより優先されます)
- FTPで設定ファイルをアップロードして
「assets/plugins/managermanager/mm_rules.inc.php」を編集してアップロードします。
自サイトで「jquery.js」を用意する方法
ManagerManagerは「jquery.js」(jQuery1.2系)を使用します。
デフォルトで「http://ajax.googleapis.com/ajax/libs/jquery/1.2/jquery.min.js」を使用しますが、
最新のものを入手したり、カスタマイズする等して、自サイトにアップロードし、これを使うようにすることもできます。
注意)
jQuery1.3系を使用する際は注意が必要です。
→
jQuery1.3系を利用してパフォーマンスUP
設定例)
「
http://jquery.com/src/jquery-latest.pack.js」より最新のJavascriptのソースを入手し、
ファイル名を「jquery.js」として「/assets/js/」にアップロードします。
プラグインコード(「v0.3.2/plugin.txt」から貼り付けたもの)の22行目、
「$js_url = '';」のところで「$js_url = 'http://www.yoursite.com/assets/js/jquery.js';」
のように
URLを指定することで、これが使用されるようになります。
■2.使い方
前述の通り、チャンクかPHPファイルを使って、下記のようにカスタマイズ内容を設定します。
記法はPHPの文法に従って、各カスタマイズ内容(入力フィールドのラベルを変更、入力フィールドを非表示、…)毎に用意されている、関数を必要なだけ記述します。
その際、テンプレートのIDかロール(権限)のID、もしくは、その両方を指定してカスタマイズする条件を指定します。(条件を省略した場合、全てのドキュメント作成/編集画面がカスタマイズされます)
なお、基本的にパラメータは文字で指定します。(省略する場合は空文字「''」で指定します。)
ちなみに、下記例の「$tpl = '4';」のようにPHPの変数を使うと便利です。
カスタマイズ内容の例
カスタマイズする対象については、必要に応じて下記のフィールド名、タブ名、セクション名を、各関数のパラメータに指定します。
入力フィールド名一覧
フィールド名 |
デフォルトラベル |
pagetitle |
タイトル |
longtitle |
長いタイトル |
description |
説明 |
alias |
ドキュメントエイリアス |
link_attributes |
リンク属性 |
introtext |
要約(序説) |
template |
使用テンプレート |
menutitle |
メニュータイトル |
menuindex |
メニューインデックス |
show_in_menu |
メニューに表示 |
parent |
親ドキュメント |
is_folder |
フォルダ属性 |
is_richtext |
リッチテキストで編集 |
log |
アクセスログを記録 |
published |
公開する |
pub_date |
公開開始日時 |
unpub_date |
公開取消日時 |
searchable |
検索対象に含める |
cacheable |
キャッシュを生成 |
clear_cache |
更新時にキャッシュをクリア |
content_type |
コンテントタイプ |
content_dispo |
内容の配置 |
keywords |
キーワード |
metatags |
METAタグ |
content |
内容 |
which_editor |
使用エディター |
|
タブ名一覧
タブ名 |
デフォルトラベル |
general |
プロフィール |
settings |
ページ設定 |
meta |
META キーワード |
preview |
プレビュー |
|
セクション名一覧
セクション名 |
デフォルトラベル |
docsettings |
ドキュメント設定 |
content |
内容 |
tvs |
テンプレート変数 |
access |
アクセス許可 |
|
使用する際の注意
ManagerManagerはjQueryを使ってHTMLをダイナミックに操作する特性上、同じ項目を対象にした複数回の処理は原則できないものと考えてください。
(例えば、FフィールドをT1タブに移動してからT2タブに移動するケース、など)
■3.入力フィールドのカスタマイズ
入力フィールドのラベル(見出し)を変更する:mm_renameField
mm_renameField($field, $newlabel, $roles, $templates, $newhelp)
入力フィールドのラベル(見出し)を変更します。
パラメータ |
説明 |
$field |
カスタマイズする入力フィールド名。一度に複数は指定できない。[必須] |
$newlabel |
新しいラベル。[必須] |
$roles |
ロール(権限)IDの指定(カンマ区切りで複数指定可能)。[任意] |
$templates |
テンプレートIDの指定(カンマ区切りで複数指定可能)。[任意] |
$newhelp |
ヘルプテキスト(mm_changeFieldHelpと同様)。[任意] |
入力フィールドを非表示にする:mm_hideFields
mm_hideFields($fields, $roles, $templates)
入力フィールドを非表示にします。
パラメータ |
説明 |
$fields |
非表示にする入力フィールド名(カンマ区切りで複数指定可能)。[必須]
テンプレート変数名の前に「tv」を付けることで、テンプレート変数も日表示することが可能。 |
$roles |
ロール(権限)IDの指定(カンマ区切りで複数指定可能)。[任意] |
$templates |
テンプレートIDの指定(カンマ区切りで複数指定可能)。[任意] |
以下、工事中です。すみません。
■7.上級編
jQuery1.3系を利用してパフォーマンスUP
ManagerManager(0.3.2)は、jQuery(1.2.6)で動作します。2009年6月時点のjQueryの最新バージョンは 1.3.2ですが、1.2系と比べパフォーマンスが大幅に改善されてます。特に、相性の悪かったIEでの処理時間が大幅に短縮できます。但し、1.3系ではセレクタの命名規則が変更されたため、使用にはManagerManagerのソースを数本修正する必要があります(@を削るだけ)。
jQuery1.3のリポート(性能データ)
http://journal.mycom.co.jp/articles/2009/01/28/jquery/index.html
ManagerManagerの修正方法(英語)
http://modxcms.com/forums/index.php/topic,32084.msg215609.html#msg215609