ryujsa

プラグインで追加したメニューがステイしない

0

以下のページを参考にプラグインからメニューを追加したのですが、メニュー定義でargsプロパティを指定するとメニューがステイ表示しなくなってしまいます。

http://www.movabletype.org/documentation/developer/apps/building-menus.html

argsプロパティ自体はちゃんと機能していて、URLに指定したパラメータが付くようになります。また、argsプロパティを削除するとステイ表示されるようになります。

argsプロパティを使いつつステイ表示させるにはどうしたらよいのでしょうか。

返信(4)

| 返信する
  • 自己解決しました。
    結局のところMTのバグでした。
    MT::App::CMS#build_menus()にステイ表示の判定処理があり、argsがある場合の処理は以下のようになっています。

                if ( $sub->{args} ) {
                    foreach my $arg (qw(_type filter_key)) {
                        next if !$sub->{args}->{$arg};
                        if (   $sub->{mode} eq $mode
                            && $sub->{args}->{$arg} eq $app->param($arg) )
                        {
                            $param->{screen_group} = $id;
                            if ( $app->param('id') ) {
                                $sub->{current} = 1
                                  if ( $app->param('_type') eq 'blog' )
                                  || ( $app->param('_type') eq 'website' );
                            }
                            else {
                                $sub->{current} = 1;
                            }
                        }
                    }
                }
    

    この時チェックされるのは_typeとfilter_keyだけなので、それ以外のパラメータを使用した場合は絶対にステイ表示になりません。

    こういうのってどこに報告したらいいんでしょう。

  • >こういうのってどこに報告したらいいんでしょう。
    このページ右下にあるFogbugzへ

  • おお。英語なんですね……

  • >おお。英語なんですね……
    USの方など皆さんで運用してるらしいので・・・
    でも、日本語で書いても大丈夫ですよ。
    私もバグや要望を日本語で登録してます。

返信する


OpenID対応しています OpenIDについて