ManagerManagerは、ロールごと、あるいはテンプレートごと、またはその両方に対して、ドキュメント作成・編集画面のカスタマイズを行います。入力項目を隠したり並べ替えたり、入力項目の名前や、タブの名前を変更できます。タブも既存のものを隠したり新しく追加したりできます。
尚、現在ダウンロードできる最新バージョンは0.3.2.1でこちらからダウンロードできます。0.3.3は、次期バージョンの1.0.1に同梱される模様です。この解説は、0.3.3を基準に書いています。
参照ページ:同梱ドキュメント
- サーバ:DreamHost
- MODx: 1.0.1(SVN)
- ManagerManager - 0.3.3
はじめに
-
動作ルールをチャンクに書く場合は、エレメント管理>チャンク>「チャンクの作成」で、チャンク名を「mm_rules」とします。別の名前にしたい場合は、プラグインコードの20行目付近、
//$config_chunk
= 'mm_rules';の部分を有効にして、名前を変更します。
-
動作ルールを実ファイルとして置く場合は、/plugins/managermanager/mm_rules.inc.php
がルールファイルになります。
-
実ファイルのルールより、チャンクに書かれたルールが優先されるでしょう。
-
ManagerManagerは、ShowImageTVsなどのMootoolを使うプラグインと相性が良くありません。ShowImageTVsはを無効にして下さい。そして、代わりにmm_widget_showimagetvs
widget を利用します。ルールに以下の1行をくわえて下さい。
mm_widget_showimagetvs();
-
テンプレートID、ロールID、タブID等は、ManagerManagerの管理画面「Templates & TVs & Roles
」タブで確認できます。
運用例
すべてのロール、すべてのテンプレートでフィールド名を変える
mm_renameField('pagetitle', 'Document
title');
すべてのロールで適用されます(すべてのユーザーに適用されます)
特定のロールにのみ適用させる
第三のパラメータにロールIDを書き込みます。カンマ(,)で区切って複数指定可能です。
mm_renameField('pagetitle', 'Document
title', '1,3');
ロールID1と3のユーザにのみ適用される
~以外に適用したい
ID番号の前に「!」をつけると「~以外」という意味になります。
mm_renameField('pagetitle', 'Document
title', '!1');
ロールID1以外のユーザに適用される
※「!」は、すべてを打ち消します。以下の様にした場合、2または3以外のロールIDのユーザに適用されるでしょう
mm_renameField('pagetitle', 'Document
title', '!2,3');
ロールパラメータをブランクにした場合
ルールはすべてのロールに適用されます。
テンプレートIDを組み合わせて適用する
第4のパラメータにテンプレートIDを書き込みます
mm_renameField('pagetitle', 'Document
title', '', '3');
テンプレートID3のドキュメントに適用されます。
mm_renameField('pagetitle', 'Document
title', '!1', '3');
ロールID1以外のユーザが、テンプレートID3のドキュメントを編集するとき適用されます。
PHP変数を使って書く
以下の様に書くこともできます。
$news_role = '3';
mm_renameField('longtitle','Headline', $news_role);
mm_rules.inc.php を参照して下さい。
フィールド名
フィールド名
| MMでのフィールド名 |
管理画面でのフィールド名 |
| pagetitle |
リソース名 |
| longtitle |
タイトル |
| description |
説明(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 |
(メタタグ) |
| content |
内容 |
| which_editor |
|
タブ名
| MMでのタブ名 |
管理画面でのタブ名 |
| general |
メイン |
| settings |
ページ設定 |
| meta |
(METAキーワード) |
セクション名
| MMでのセクション名 |
| docsettings |
| content |
| tvs |
| access |
機能一覧:フィールド
mm_renameField
フィールド名の変更を行います。
※「content」と、テンプレート変数は、変更できません。
書式:
mm_renameField($field, $newlabel, $roles,
$templates, $newhelp)
バラメータ
- $field ... 必須。フィールド名で示した名前を書きます。複数の指定はできません。
- $newlabel ... 必須。新しいフィールド名を書きます。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
- $newhelp ... ヘルプチップの内容を変更できます。>できず?デフォルト「変更しない」
例
mm_renameField('longtitle','Headline', 3,
'', 'This will be displayed at the top of each page');
mm_hideFields
既存のフィールドを隠します。テンプレート変数を隠したい場合は、テンプレート変数のIDにプリフィックス「tv」を付加します。
書式
mm_hideFields($fields,
$roles, $templates)
バラメータ
- $fields ... 必須。フィールド名で示した名前を書きます。カンマ(,)で区切って複数指定可能です。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
$news_role = '3';
mm_hideFields('pagetitle,tv4', $news_role);
※tv4は、テンプレート変数ID4という意味です
mm_changeFieldHelp
ツールチップを変更します。変更できず??
書式
mm_changeFieldHelp($field, $helptext,
$roles, $templates)
バラメータ
- $fields ... 必須。フィールド名で示した名前を書きます。複数の指定はできません。
- $helptext ... 必須。表示したいヘルプチップを書きます。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
$news_role = '3';
mm_changeFieldHelp('pagegitle', 'リソースのタイトルを入力します', $news_role);
mm_hideTemplates
「使用テンプレート」ドロップダウンリストから指定したテンプレートを隠します。そのドキュメントで使用中のテンプレートは隠されません。
書式
mm_hideTemplates($tplIds, $roles,
$templates)
バラメータ
- $fields ... 必須。フィールド名で示した名前を書きます。カンマ(,)で区切って複数指定可能です。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
$news_role = '3';
mm_hideTemplates('0,5', $news_role);
mm_inherit
リソースの新規作成時、親リソースの値が存在すれば、それを子に継承します。
※この機能は、現在 input fields(text)でのみ動作します。
書式
mm_inherit($fields,
$roles, $templates)
バラメータ
- $fields ... 必須。フィールド名で示した名前を書きます。カンマ(,)で区切って複数指定可能です。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
$news_role = '3';
mm_inherit('pagetitle', $news_role);
mm_default
リソースの新規作成時に、デフォルトを与えます。
書式
mm_default($field, $value, $roles,
$templates, $eval)
変更できるフィールド
(現在、pub_date、unpub_dateのみ指定できます?)。
- pub_date
- 公開日を指定できます。何も値を与えなければ、その時の日時がセットされます。
- unpub_date
- 公開取消日を指定できます。何も値を与えなければ、その時の日時がセットされます。
- published
- 公開/非公開を指定できます。もし、「公開日(pub_date)」/「公開取消日(unpub_date)」と、この値が矛盾している場合、リソースが保存されるとき、この値は、MODxによって書き替えられるでしょう。
- hide_menu
- メニューに表示のチェックを外すかどうかを指定できます。
- show_in_menu
- メニューに表示にチェックをつけるかどうかを指定できます。
- searchable
- 検索対象に含めるにチェックをつけるかどうかを指定できます。
- cacheable
- キャッシュを生成にチェックをつけるかどうかを指定できます。
- clear_cache
- 更新時にキャッシュをクリアにチェックをつけるかどうかを指定できます。
- is_folder
- コンテナとして扱うにチェックをつけるかどうかを指定できます。
- is_richtext
-
リッチテキストで編集にチェックをつけるかどうかを指定できます。もし、ここのチェックをなしにすれば、自動的に、使用エディタは、隠されます。
- log
- アクセスログに記録にチェックをつけるかどうかを指定できます。
バラメータ
- $fields ... 必須。フィールド名で示した名前を書きます。現在、pub_date、unpub_dateのみ指定できます。
- $value ...
ティールドのデフォルトを指定します。何も指定しなければ、現在の日時がセットされます。静的な値は、文字列として供給されます。あるいは、$evalパラメータがtrueの場合、phpコードを書くことができます。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
- $eval ...
コードをphpとして認識させるかどうかを指定します。「true」にするとphpコードとして認識されます。デフォルト「false」。
例
mm_default('pub_date');
現在の日時を公開日にセットします。
mm_default('unpub_date', 'return
date("Y-m-d H:i:s", now()+(60*60*24*28);', '', '4', true);
テンプレートIDが4のドキュメントの非公開日が、4週間後にセットされます。>※エラーが出て、現在の日時がセットされる。
mm_synch_fields
指定したフィールド同士の値を同期させます。たとえば、「タイトル」が隠されているとき、「リソース名」と「タイトル」を同じ値にしたい場合などに便利です。
書式
mm_synch_fields($fields, $roles,
$templates)
パラメータ
- $fields ... 必須。フィールド名で示した名前を書きます。最低限2つのフィールド名を定義する必要があります。カンマで区切って指定します。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
mm_synch_fields('pagetitle,menutitle,longtitle');
機能一覧:タブ
mm_renameTab
リソース作成・編集画面のタブの名前を変更します。
書式
mm_renameTab($tab,
$newlabel, $roles, $templates)
バラメータ
- $tab ... 必須。タブ名で示した名前を書きます。複数指定はできません。
- $newlabel ... 必須。新しいタブ名を書きます。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
mm_renameTab('general',
'一般', '1')
※ファイルでルールを作っている場合、日本語を書く場合は、必ず、utf-8N形式で保存されていることを確認して下さい。
mm_hideTabs
タブを隠します。
書式
mm_hideTabs($tabs, $roles, $templates)
パラメータ
- $tab ... 必須。タブ名で示した名前を書きます。カンマ(,)で区切って複数指定可能です。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
mm_hideTabs('settings', '3','4');
mm_createTab
新しいタブを作ります。
書式
mm_createTab($name, $id, $roles,
$templates, $intro, $width)
パラメータ
- $name ... 必須。新しいタブの名前を書きます。
- $id ... 必須。新しいタブのユニークIDです。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
- $intro ...
新しいタブの最初に表示する文言を指定します。HTMLが利用できます。
- $width ...
新しいタブの、タブ内での幅を指定します。単位まで指定して下さい(100%、450pxなど)。もし、単位の指定がない場合は、「px」として理解されるでしょう。
例
mm_createTab('Categories', 'mycats', '',
'', '<p>ここにフィールドを追加していくことができます。</p>', '100%');
mm_moveFieldsToTab
タブから、タブへ、フィールドを移動します。テンプレート変数も移動できます。テンプレート変数のIDを指定する場合は、プリフィックスにtvをつけて下さい(tv3など)。以下のフィールドは移動できません。
- keywords(キーワード)
- metatags(METAタグ)
- which_editor(使用エディタ)
- content(内容)
- show_in_menu(メニューに表示)
- menuindex(メニューオーダー)
書式
mm_moveFieldsToTab($fields, $newtab_id,
$roles, $templates)
パラメータ
- $tab ... 必須。タブ名で示した名前を書きます。カンマ(,)で区切って複数指定可能です。
- $newtab_id ... 必須。移動先のタブID(フィールド名参照)を書きます。新し作ったタブも指定できます(タブIDで指定)。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
mm_createTab('Categories', 'mycats',
'', '',
'<p>ここにフィールドを追加していくことができます。</p>',
'100%');
mm_moveFieldsToTab('pagetitle,tv3',
'mycats');
機能一覧:ウィジェット
mm_widget_tags
タグ用に作成したテンプレー変数を変更します。以下の様な入力が可能になります。

書式
mm_widget_tags($fields, $delimiter,
$source, $display_count, $roles,
$templates)
パラメータ
- $fields ... 必須。テンプレート変数のIDを書きます。カンマ(,)で区切って複数指定可能です。
- $delimiter ...
それぞれのタグの区切り文字を入力します。デフォルト「カンマ(,)」。
- $source ...
入力候補として表示するタグのソースを指定します。デフォルト「$fieldsで指定したテンプレート変数」。つまり、別のテンプレート変数を作っておいて、候補用として指定することができます。
- $display_count ...
それぞれのタグがどれくらい使われているか数を表示するかどうかを指定します。デフォルト「false(指定しない)」。「true」を指定すると、数を表示します。>表示するのは良いんだけど、クリックすると数まで入力してしまってつかえねー。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
mm_widget_tags('tv3','
','tv4','true');
mm_widget_colors('colour',
'#666666');
mm_widget_showimagetvs
ShowImageTVs
pluginのエミュレートを行います。テンプレート変数で指定したイメージのプレビューを表示します。
書式
mm_widget_showimagetvs($fields, $w, $h, $thumbnailerUrl,
$roles, $templates)
パラメータ
- $fields ... テンプレート変数のIDを書きます。カンマ(,)で区切って複数指定可能です。デフォルト「すべてのimageテンプレート変数」
- $w ... 優先されるプレビューサイズの最大幅。デフォルト「300px」
- $h ... 優先されるプレビューサイズの最大高。デフォルト「100px」
- thumbnailerUrl ... PHPThumb を持っていれば(例えば、Maxigallery や
phpthumb plugins/snippetsなどをインストール済みの場合)、そちらを使って下さい。特に大きな画像の場合、使い勝手がよいです。インストール済みの「phpThumb.php」のパスを指定します。
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
mm_widget_showimagetvs('', '', '',
'/assets/snippets/phpthumb/phpThumb.php');
mm_widget_colors
文字色のためのカラーピッカーを挿入します。すみません。ちょっと意味がよくわかりません。。
書式
mm_widget_colors($fields, $default,
$roles, $templates)
パラメータ
- $fields ... 必須。テンプレート変数のIDを書きます。カンマ(,)で区切って複数指定可能です。
- $default ...
デフォルトの色をヘキサで指定します(#ffeeffなど)。テンプレート変数の規定値がない場合に利用できます。デフォルト「白(white)」
- $roles ...
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
mm_widget_colors('tv3');
mm_widget_accessdenied
アクセス不許可を継承させないためのパラメータです。たとえば、親ドキュメントは、編集させたくないけれど、その下に子供は作らせたいと言ったような場合に有用です。>動作せず?
書式
mm_widget_accessdenied($ids, $message,
$roles)
パラメータ
- $ids ... 必須。アクセス拒否させたいドキュメントIDを指定します。カンマで区切って複数指定可能です。
- $message ...
HTMLフォーマットによるメッセージを書きます。デフォルト「Access
denied - Access to current document
closed for security reasons.」
$roles ....
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
例
mm_widget_accessdenied('2',
'アクセス権限がありません。他のドキュメントを選択して下さい' '2');
機能一覧:セクション
セクションとは、リソースの作成・編集画面の「アクセス許可」や「テンプレート変数」といったものです。
mm_renameSection
セクション名を変更します。
書式
mm_renameSection($section, $newlabel,
$roles, $templates)
パラメータ
- $section ... 必須。セクション名で示したセクション名を書きます。複数の指定はできません。
- $newlabel ... 必須。新しいセクション名を書きます。
-
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
mm_renameSection('tvs', 'Other info');
mm_hideSections
セクションを隠します。
書式
mm_hideSections($sections, $roles,
$templates)
パラメータ
- $section ... 必須。セクション名で示したセクション名を書きます。カンマ(,)で区切って複数指定可能です。
-
適用したいロールIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのロールに適用されます。デフォルト「すべてのロール」
- $templates ...
適用したいテンプレートIDを書きます。カンマ(,)で区切って複数指定可能です。ブランクの場合は、すべてのテンプレートに適用されます。デフォルト「すべてのテンプレート」
例
mm_hideSections('access,tvs', '1', '4');