Welcome !! Now 2010.09.04 02:18 (JST)

ManagerManager - 0.3.3

ManagerManagerは、ロールごと、あるいはテンプレートごと、またはその両方に対して、ドキュメント作成・編集画面のカスタマイズを行います。入力項目を隠したり並べ替えたり、入力項目の名前や、タブの名前を変更できます。タブも既存のものを隠したり新しく追加したりできます。

尚、現在ダウンロードできる最新バージョンは0.3.2.1でこちらからダウンロードできます。0.3.3は、次期バージョンの1.0.1に同梱される模様です。この解説は、0.3.3を基準に書いています。

参照ページ:同梱ドキュメント

  • サーバ:DreamHost  
    • PHP 5.2.6
    • MYSQL 5.0.32
  • 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のタグウィジェット

書式

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');

△ページトップ