モジュールの表示(メニュー,ダッシュボード)に関する不具合  【解決済み】

質問全般・改善要望
返信する
tadaochi
メンバー
メンバー
記事: 4
登録日時: 2013年7月08日(月) 16:09

モジュールの表示(メニュー,ダッシュボード)に関する不具合

投稿記事 by tadaochi »

MODx Evolution 1.0.10J-r2 で、投稿サイトを構築していますが、「モジュール」の表示で不具合らしきものを見つけました。

●MODxの利用状況
・グループ管理を有効にしました。
・投稿に対して承認をおこなう為の「自作モジュール」と、そのモジュールを使う「ユーザー」を追加しました。
・自作モジュールには、アイコンを設定しました。
・ダッシュボードをカスタマイズして( [+Modules+]を記載して )、モジュールを表示するようにしました。
(MODx Evolution 1.0.10J-r2には、ダッシュボードをカスタマイズするプラグインが入っていませんでしたが、
前から使ってたMODxには入ってたので、それをコピーして使いました。)

●メニューに関する不具合
・承認用のユーザーで管理画面にログインしたとき、利用権限のないモジュールまで、メニューに表示されてしまいました。

●ダッシュボードに関する不具合
・メニューの不具合と同じく、利用権限のないモジュールまで、ダッシュボードに表示されてしまいました。
・承認用のユーザーで管理画面にログインしたとき、モジュールに設定したアイコンが表示されず、アイコン未設定のときのアイコンが表示されました。

●下記の修正をしたところ、上記不具合が直りました。

manager/actions/welcome.static.php 136行目
修正前
$field = 'DISTINCT sm.id, sm.name, mg.member';
修正後
$field = 'DISTINCT sm.id, sm.name, sm.icon';

manager/actions/welcome.static.php 140行目
修正前
$where = "(mg.member IS NULL OR mg.member={$uid}) AND sm.disabled != 1";[/code]
修正後
$where = "mg.member={$uid} AND sm.disabled != 1";

manager/frames/menu.php 290行目
修正前
$where = "(mg.member IS NULL OR mg.member='{$uid}') AND sm.disabled != 1";
修正後
$where = "mg.member='{$uid}' AND sm.disabled != 1";


テーブルの仕様をきちんと把握できていないので、上記の修正に、少し不安を持っているのですが、間違いないでしょうか?
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: モジュールの表示(メニュー,ダッシュボード)に関する不具合  【解決済み】

投稿記事 by yama »

グループ管理機能が無効の場合(いったん有効な状態で運用していたのを無効にした場合)に意図どおり全表示されない気がします。提案いただいたコードを参考に、次回リリースで修正します。
tadaochi
メンバー
メンバー
記事: 4
登録日時: 2013年7月08日(月) 16:09

Re: モジュールの表示(メニュー,ダッシュボード)に関する不具合

投稿記事 by tadaochi »

yama様

ご対応、ありがとうございます。
where句に「mg.member IS NULL」が入ってたのが謎でしたが、なるほど、グループ管理機能OFFの時の為っぽいですね。
ひとまず、私のいま作ってるサイトでは、グループ管理機能をOFFにすることはなさそうですので、最初に書いたSQL改造版でいこうと思います。

> 次回リリースで修正します。
ありがとうございます。宜しくお願いいたします。
返信する