ナビゲーションメニューでログインが必要な項目を非表示にする

2007-10-21 23:22

投稿者: サイト管理者

ログインが必要な作業についてのナビゲーションメニューは通常表示されたままでクリックするとログインが必要とのメッセージを促すようになっていますが、これをそもそも非表示にするという設定がありません。
これを非表示にするにはちょっとした改造が必要です。

lib-common.phpの中のfunction COM_renderMenu( &$header, $plugin_menu )という関数を見てみましょう。この最後のあたりで

        if( !empty( $url ) && !empty( $label ))
        {

            if( $last_entry )
            {
                $header->parse( 'menu_elements', 'menuitem_last', true );
            }
            else
            {
                $header->parse( 'menu_elements', 'menuitem', true );
            }
            $menuCounter++;

            if( $allowed )
            {
                if( $last_entry )
                {
                    $header->parse( 'allowed_menu_elements', 'menuitem_last',
                                    true );
                }
                else
                {
                    $header->parse( 'allowed_menu_elements', 'menuitem', true );
                }
                $allowedCounter++;
            }
        }

このような判定を行っています。赤字の$allowedが未ログインでも使えるかどうかという値を判定してセットしているのですが、この赤字の2行を緑字の後に移動させるとメニュー生成そのものが成されなくなり表示しないようにすることが可能です。
ただ、これはGeeklog標準で供給されるメニューにおいてのみ有効でプラグインやCUSTOM_menuEntriesには適用されません。そちらについては別の記事として紹介したいと思います。

コメント (0件)


Geeklog実験室
http://geeklogtest.maryn.jp/article.php/20071021232233435