ダッシュボードのカスタマイズ
ダッシュボードのカスタマイズ
MODxネタはいろいろあるのですが、とりあえず管理画面トップのダッシュボードについて。
管理画面にログインすると、まずダッシュボードが表示されます。アイコンがずらっと並んでまして、
・ユーザー管理
・ウェブユーザー
・モジュールの管理
・エレメント管理
・バックアップマネージャー
・ヘルプ
・受信トレイ
こんな感じなんですが・・正直、管理者向けの機能ばかりです。更新担当者向けに権限を絞ったロールでアクセスするとダッシュボードにはアイコンが何も表示されない・・なんてことも実際あります。この状況に納得がいかなければ、とりあえず自力でデザインするしかありません。
(※具体的に提案いただければ機能アレンジ検討しますが・・アイデア歓迎です)
実はこのダッシュボード領域は、Evoになってからカスタマイズ推奨領域としてコア領域から分離されました。このダッシュボード領域のコードは
/assets/templates/manager/welcome.html
このファイルにまとめてあります。これをテキストエディタで開いてみると、phpコードなどは全く書かれてません。htmlの読み書きができる人なら、なんとかできそうな感じです。
日本語版では独自に「ヘルプ」のアイコンを追加しています。他のアイコンが[+BackupIcon+]などの形でプレイスホルダーとして記述されているのに対し、ヘルプの機能だけはあえてhtmlベタ書きで記述しています。これを参考に、独自の機能をここにコピーして記述していただければと思います。
MODxの管理画面はフレーム構成になっているので分かりにくいですが、管理画面内のあらゆる機能はURLで呼び出すことができます。たとえば「ヘルプ」なら「/manager/index.php?a=9」になります。これは、リンクを右クリックで別タブなどで開けばすぐに分かります。新規投稿ボタンを追加したいなら「/manager/index.php?a=4」になりますね。
アイコンはCrystal Clearアイコンの中から適当なものを選ぶとよいと思います。
アイコンの追加だけでなく、ダッシュボードは自由にhtmlで記述できますので、好みに応じて自由にアレンジしてみるとよいと思います。
管理画面にログインすると、まずダッシュボードが表示されます。アイコンがずらっと並んでまして、
・ユーザー管理
・ウェブユーザー
・モジュールの管理
・エレメント管理
・バックアップマネージャー
・ヘルプ
・受信トレイ
こんな感じなんですが・・正直、管理者向けの機能ばかりです。更新担当者向けに権限を絞ったロールでアクセスするとダッシュボードにはアイコンが何も表示されない・・なんてことも実際あります。この状況に納得がいかなければ、とりあえず自力でデザインするしかありません。
(※具体的に提案いただければ機能アレンジ検討しますが・・アイデア歓迎です)
実はこのダッシュボード領域は、Evoになってからカスタマイズ推奨領域としてコア領域から分離されました。このダッシュボード領域のコードは
/assets/templates/manager/welcome.html
このファイルにまとめてあります。これをテキストエディタで開いてみると、phpコードなどは全く書かれてません。htmlの読み書きができる人なら、なんとかできそうな感じです。
日本語版では独自に「ヘルプ」のアイコンを追加しています。他のアイコンが[+BackupIcon+]などの形でプレイスホルダーとして記述されているのに対し、ヘルプの機能だけはあえてhtmlベタ書きで記述しています。これを参考に、独自の機能をここにコピーして記述していただければと思います。
MODxの管理画面はフレーム構成になっているので分かりにくいですが、管理画面内のあらゆる機能はURLで呼び出すことができます。たとえば「ヘルプ」なら「/manager/index.php?a=9」になります。これは、リンクを右クリックで別タブなどで開けばすぐに分かります。新規投稿ボタンを追加したいなら「/manager/index.php?a=4」になりますね。
アイコンはCrystal Clearアイコンの中から適当なものを選ぶとよいと思います。
アイコンの追加だけでなく、ダッシュボードは自由にhtmlで記述できますので、好みに応じて自由にアレンジしてみるとよいと思います。
Re: ダッシュボードのカスタマイズ
管理画面の項目を最大限削って、分かりやすい管理画面を作りたいと思っています。
管理画面のカスタマイズというより、メニューの非表示を行いたいのですが、1.0.6Jでは
/assets/templates/manager/welcome.html が無く、
http://kyms.jp/blog/modx/25.html 程のカスタマイズは私には無理です。
権限によって表示/非表示を切り替えるような使い方がしたいのです。
◆Administrator(デフォルト)
管理画面
【ダッシュボード】の「メイン」のみ表示、「MODXの最新情報」、「あなたの情報」、「オンライン」の3つのタブは非表示
上記以外はデフォルトのまま
-----
◆Webmaster(新たに作成)
ロール管理
【概要】の「パスワード変更」「パスワード更新」、【コンテンツ管理】の全部、【設定管理】の「バックアップ・リストア機能の使用」を有効にして、
上記以外はすべて無効。
管理画面
【ダッシュボード】の「メイン」のみ表示、「MODXの最新情報」、「あなたの情報」、「オンライン」の3つのタブは非表示
【メイン】タブの「検索」と「ウェブリンクを作成」の2つを非表示
【レポート】タブを非表示
-----
HTMLの編集か、phpでもコピペや簡単な修正であれば、私でもできるかもしれません。
phpが全く分からないのですが、ご教授いただけますでしょうか?
管理画面のカスタマイズというより、メニューの非表示を行いたいのですが、1.0.6Jでは
/assets/templates/manager/welcome.html が無く、
http://kyms.jp/blog/modx/25.html 程のカスタマイズは私には無理です。
権限によって表示/非表示を切り替えるような使い方がしたいのです。
◆Administrator(デフォルト)
管理画面
【ダッシュボード】の「メイン」のみ表示、「MODXの最新情報」、「あなたの情報」、「オンライン」の3つのタブは非表示
上記以外はデフォルトのまま
-----
◆Webmaster(新たに作成)
ロール管理
【概要】の「パスワード変更」「パスワード更新」、【コンテンツ管理】の全部、【設定管理】の「バックアップ・リストア機能の使用」を有効にして、
上記以外はすべて無効。
管理画面
【ダッシュボード】の「メイン」のみ表示、「MODXの最新情報」、「あなたの情報」、「オンライン」の3つのタブは非表示
【メイン】タブの「検索」と「ウェブリンクを作成」の2つを非表示
【レポート】タブを非表示
-----
HTMLの編集か、phpでもコピペや簡単な修正であれば、私でもできるかもしれません。
phpが全く分からないのですが、ご教授いただけますでしょうか?
Re: ダッシュボードのカスタマイズ
1.0.6Jは「ダッシュボード」というチャンクがあるので、これを2つコピーします。ひとつは「admin用ダッシュボード」もうひとつは「ウェブマスター用ダッシュボード」という名前にして、
上記のような簡単なプラグインを作って、システムイベントOnManagerWelcomePrerenderにチェックを入れて保存します。
(試してないので、もしうまくいかなかったら返信ください)
コード: 全て選択
switch($modx->getLoginUserID())
{
case adminのロールID(実際のIDで読み替えてください): $tpl = $modx->getChunk('admin用ダッシュボード');break;
case webmasterのロールID(実際のIDで読み替えてください): $tpl = $modx->getChunk('ウェブマスター用ダッシュボード');break;
}
$modx->event->setGlobalVariable('tpl',$tpl);
(試してないので、もしうまくいかなかったら返信ください)
Re: ダッシュボードのカスタマイズ
プラグイン「管理画面切り替え」を作りました。
AdministratorのロールID 1
WebmasterのロールID 3
---
switch($modx->getLoginUserID())
{
case 1: $tpl = $modx->getChunk('Admin用ダッシュボード');break;
case 3: $tpl = $modx->getChunk('Webmas用ダッシュボード');break;
}
$modx->event->setGlobalVariable('tpl',$tpl);
---
チャンク「ダッシュボード」を複製して、「Admin用ダッシュボード」(IDは4)と
「Webmas用ダッシュボード」(IDは5)を作りました。
「Webmas用ダッシュボード」のチャンク コード (html)の記述を所々削除してみたのですが、
ログインし直してもダッシュボードのタブに変化はありません。
この段階でも既に間違っているのでしょうか?
AdministratorのロールID 1
WebmasterのロールID 3
---
switch($modx->getLoginUserID())
{
case 1: $tpl = $modx->getChunk('Admin用ダッシュボード');break;
case 3: $tpl = $modx->getChunk('Webmas用ダッシュボード');break;
}
$modx->event->setGlobalVariable('tpl',$tpl);
---
チャンク「ダッシュボード」を複製して、「Admin用ダッシュボード」(IDは4)と
「Webmas用ダッシュボード」(IDは5)を作りました。
「Webmas用ダッシュボード」のチャンク コード (html)の記述を所々削除してみたのですが、
ログインし直してもダッシュボードのタブに変化はありません。
この段階でも既に間違っているのでしょうか?
Re: ダッシュボードのカスタマイズ
すいません間違えました
switch($_SESSION['mgrRole'])
ですね
switch($_SESSION['mgrRole'])
ですね
Re: ダッシュボードのカスタマイズ
switch($_SESSION['mgrRole']) に変更したら、ダッシュボードがスッキリしました!
---
同じく、Webmaster権限で、管理画面上部にあるメニューの非表示が行いたいのですが、
こちらは、どうすれば良いのでしょうか?
管理画面
【メイン】タブの「検索」と「ウェブリンクを作成」の2つを非表示
【レポート】タブを非表示
上記の変更方法も教えて頂けますか?
---
同じく、Webmaster権限で、管理画面上部にあるメニューの非表示が行いたいのですが、
こちらは、どうすれば良いのでしょうか?
管理画面
【メイン】タブの「検索」と「ウェブリンクを作成」の2つを非表示
【レポート】タブを非表示
上記の変更方法も教えて頂けますか?
Re: ダッシュボードのカスタマイズ
そのへんはロール設定ではカバーされてないですね
https://github.com/elastic/ManagerManag ... nu.inc.php
これを使えばトップメニューはわりと自由にカスタマイズできると思います。(これ見て使い方分かるでしょうか?)
https://github.com/elastic/ManagerManag ... nu.inc.php
これを使えばトップメニューはわりと自由にカスタマイズできると思います。(これ見て使い方分かるでしょうか?)
Re: ダッシュボードのカスタマイズ
管理画面上部メニューのうち、
【メイン】タブの「検索」と「ウェブリンクを作成」の2つを非表示
検索 'search'=>array('href'=>'index.php?a=71'),
ウェブリンク 'new weblink'=>array('href'=>'index.php?a=72'),
【レポート】タブを非表示
レポートのタブ 'reports'=>array('id'=>'#limenu1-2','href'=>'#menu1-2'),
公開状態の一覧 'shedule'=>array('href'=>'index.php?a=70'),
イベントログ 'system events'=>array('href'=>'index.php?a=114'),
管理操作ログ 'manager actions'=>array('href'=>'index.php?a=13'),
システム情報 'system info'=>array('href'=>'index.php?a=53')
が関係するところまでは分かりましたが、それをManagerManagerでどのように設定すれば、
Administrator権限とWebmaster権限でメニュー表示の切り替えができるのかが分かりません。
お忙しいと思いますが、こちらも教えてください。よろしくお願いします。
【メイン】タブの「検索」と「ウェブリンクを作成」の2つを非表示
検索 'search'=>array('href'=>'index.php?a=71'),
ウェブリンク 'new weblink'=>array('href'=>'index.php?a=72'),
【レポート】タブを非表示
レポートのタブ 'reports'=>array('id'=>'#limenu1-2','href'=>'#menu1-2'),
公開状態の一覧 'shedule'=>array('href'=>'index.php?a=70'),
イベントログ 'system events'=>array('href'=>'index.php?a=114'),
管理操作ログ 'manager actions'=>array('href'=>'index.php?a=13'),
システム情報 'system info'=>array('href'=>'index.php?a=53')
が関係するところまでは分かりましたが、それをManagerManagerでどのように設定すれば、
Administrator権限とWebmaster権限でメニュー表示の切り替えができるのかが分かりません。
お忙しいと思いますが、こちらも教えてください。よろしくお願いします。
Re: ダッシュボードのカスタマイズ
https://github.com/elastic/ManagerManag ... nu.inc.php
上記ページのコード枠の右上に「Fork and edit this file | Raw | Blame | History」というボタンが並んでます。この「Raw」を「別名で保存」でファイル名「topmenu.inc.php」としてダウンロードします。このテキストファイルを assets/plugins/managermanager/functions/ ディレクトリにコピーします。それでインストールは完了です。
使い方ですが、
https://github.com/elastic/ManagerManag ... demo-rules
ここに書いてあります。
https://github.com/elastic/ManagerManag ... Menu-names
メニュー名の一覧はここにあります。
今回はsearch・new weblink・reportsを表示しないということなので
hideMenu('search,new weblink,reports');
だと思います。
webmasterロールのロールIDが3だとして、このロールでのみルールを適用する場合は
hideMenu('search,new weblink,reports','3');
こうですね
上記ページのコード枠の右上に「Fork and edit this file | Raw | Blame | History」というボタンが並んでます。この「Raw」を「別名で保存」でファイル名「topmenu.inc.php」としてダウンロードします。このテキストファイルを assets/plugins/managermanager/functions/ ディレクトリにコピーします。それでインストールは完了です。
使い方ですが、
https://github.com/elastic/ManagerManag ... demo-rules
ここに書いてあります。
https://github.com/elastic/ManagerManag ... Menu-names
メニュー名の一覧はここにあります。
今回はsearch・new weblink・reportsを表示しないということなので
hideMenu('search,new weblink,reports');
だと思います。
webmasterロールのロールIDが3だとして、このロールでのみルールを適用する場合は
hideMenu('search,new weblink,reports','3');
こうですね
Re: ダッシュボードのカスタマイズ
ManagerManagerの「プラグイン コード (php)」に
//hideMenu($names, $roles='')
hideMenu('search,new weblink,reports','3');
を追記したところ、
/home/kir019478/public_html/testver_net/evolution/manager/includes/document.parser.class.inc.php(1105) : eval()'d code on line 2
が出てしまい、MODXの管理画面が使えなくなってしまったので、再インストールしました。
どう設定して良いのか分からないので、もうちょっと教えて頂けますか?
これができるようになると、管理画面をユーザレベルによって変えられるので、
今後の提案がしやすくなります。お忙しいとは思いますが、よろしくお願いします。
//hideMenu($names, $roles='')
hideMenu('search,new weblink,reports','3');
を追記したところ、
/home/kir019478/public_html/testver_net/evolution/manager/includes/document.parser.class.inc.php(1105) : eval()'d code on line 2
が出てしまい、MODXの管理画面が使えなくなってしまったので、再インストールしました。
どう設定して良いのか分からないので、もうちょっと教えて頂けますか?
これができるようになると、管理画面をユーザレベルによって変えられるので、
今後の提案がしやすくなります。お忙しいとは思いますが、よろしくお願いします。
Re: ダッシュボードのカスタマイズ
試しに
hideMenu('search');
とだけ書いてみるとどうでしょう?これでうまくいくなら、パラメータ指定の方法が違うのかもしれません
hideMenu('search');
とだけ書いてみるとどうでしょう?これでうまくいくなら、パラメータ指定の方法が違うのかもしれません
Re: ダッシュボードのカスタマイズ
やり方が間違っているかもしれないので、確認させてください。
1.mm_demo_rules を複製して mm_rules を作成しました。
mm_rules にはテストの為に以下のみを記述しています。
1行目 mm_renameField('pagetitle', 'ページの題名');
2.ManagerManagerの設定タブをクリックし、Configuration Chunkのところに
mm_rules と記述して保存。
3.リソースを適当に選んで投稿画面を開いてみたところ、リソース名が「ページの題名」
に正しく変わっていました。
4.確認できたので mm_rules に以下のみを記述しました。
1行目 hideMenu('search');
ですが「検索」のタブは消えません。
topmenu.inc.php も /assets/plugins/managermanager/functions に
アップロード済みなのですが、他に何か設定があるのでしょうか?
1.mm_demo_rules を複製して mm_rules を作成しました。
mm_rules にはテストの為に以下のみを記述しています。
1行目 mm_renameField('pagetitle', 'ページの題名');
2.ManagerManagerの設定タブをクリックし、Configuration Chunkのところに
mm_rules と記述して保存。
3.リソースを適当に選んで投稿画面を開いてみたところ、リソース名が「ページの題名」
に正しく変わっていました。
4.確認できたので mm_rules に以下のみを記述しました。
1行目 hideMenu('search');
ですが「検索」のタブは消えません。
topmenu.inc.php も /assets/plugins/managermanager/functions に
アップロード済みなのですが、他に何か設定があるのでしょうか?
Re: ダッシュボードのカスタマイズ
その手順で合ってますよね。何か理由があってそのままでは動かないのかも?あとで試してみます
Re: ダッシュボードのカスタマイズ
コード: 全て選択
function hideMenu($names, $roles='') {
$name = strtolower($name);
global $mm_top_menu;
if (useThisRule($roles)) {
$output .= " // ----------- hide tab -------------- \n";
$tabsArray = explode(',',$names);
foreach($tabsArray as $name) {
if((int)$name > 0) {
//hide module tab
$output .= "\$j(\"a[href='index.php?a=112&id=".$name."']\").parent().remove();\n";
}
else {
//hide tab
$output .= "\$j(\"a[href='".$mm_top_menu[$name]['href']."']\").parent().remove();\n";
}
}
echo ($output . "\n");
}
}