コード例 #1
0
ファイル: NMenu.php プロジェクト: subashemphasize/test_site
    public function renderMenu(Zend_Navigation_Container $container, $options = array())
    {
        $html = '';
        $pages = $container->getPages();
        foreach ($pages as $page) {
            /* @var $page Zend_Navigation_Page */
            if ($this->acl && $page->getResource()) {
                if (!$this->acl->hasPermission($page->getResource(), $page->getPrivilege())) {
                    continue;
                }
            }
            if ($page->isActive()) {
                $this->activePageId = $this->getId($page);
            }
            if (!$page->isVisible(true)) {
                continue;
            }
            if (!$page->getHref()) {
                continue;
            }
            $subMenu = $this->renderSubMenu($page);
            $class = $subMenu ? 'folder' : '';
            if (!($page->hasChildren() && !$subMenu)) {
                $html .= sprintf('<li><div class="menu-glyph"%s><div class="menu-glyph-delimeter"><a id="%s" href="%s" class="%s">%s</a></div></div>%s</li>', $this->getInlineStyle($page->getId()), 'menu-' . $this->getId($page), $page->hasChildren() ? 'javascript:;' : $page->getHref(), $class . " " . $page->getClass(), $this->view->escape($page->getLabel()), $subMenu);
            }
        }
        $script = '';
        if ($this->activePageId) {
            $script = <<<CUT
<script type="text/javascript">
\$(function(){
    \$('.admin-menu').adminMenu('{$this->activePageId}');
});
</script>
CUT;
        }
        return sprintf('<ul class="admin-menu">%s</ul>%s%s', $html, "\n", $script);
    }
コード例 #2
0
ファイル: Navigation.php プロジェクト: kwiliarty/Omeka
 /**
  * Returns the page order of the last child page in the container.  
  * If no page exists in the container, it returns 0.
  * 
  * @param  Zend_Navigation_Container $container  The container to search for the last page order
  * @return int    the last page order in the container
  */
 protected function _getLastPageOrderInContainer($container)
 {
     $lastPageOrder = 0;
     foreach ($container->getPages() as $page) {
         $pageOrder = $page->getOrder();
         if ($pageOrder > $lastPageOrder) {
             $lastPageOrder = $pageOrder;
         }
     }
     return $lastPageOrder;
 }
 protected function checkAclForNavigation(Zend_Navigation_Container $navigation)
 {
     $accessConfig = Zend_Registry::get('config')->access;
     $pages = $navigation->getPages();
     foreach ($pages as $page) {
         $controller = $page->get('controller');
         $action = $page->get('action');
         $allowed = Infra_AclHelper::isAllowed($controller, $action);
         if (!$allowed) {
             $navigation->removePage($page);
         } else {
             $this->checkAclForNavigation($page);
         }
         if ($action == 'dynamic_action') {
             $localPages = $page->getPages();
             $firstPage = reset($localPages);
             if ($firstPage) {
                 $firstPageAction = $firstPage->get('action');
                 $page->set('action', $firstPageAction);
             }
         }
     }
 }
コード例 #4
0
ファイル: Bootstrap.php プロジェクト: richhl/kalturaCE
 protected function checkAclForNavigation(Zend_Navigation_Container $navigation)
 {
     $accessConfig = Zend_Registry::get('config')->access;
     $pages = $navigation->getPages();
     foreach ($pages as $page) {
         $controller = $page->get('controller');
         $action = $page->get('action');
         $allowed = Kaltura_AclHelper::isAllowed($controller, $action);
         if (!$allowed) {
             $navigation->removePage($page);
         } else {
             $this->checkAclForNavigation($page);
         }
     }
 }
コード例 #5
0
ファイル: DojoMenu.php プロジェクト: brunopbaffonso/ongonline
 protected function _renderMenu(Zend_Navigation_Container $container, $linkability_function = false)
 {
     $menubar_div_id = "My_Great_MenuBar_" . uniqid();
     $menubar_script = '';
     $menubar_script .= 'var pMenuBar;';
     $menubar_script .= "\npMenuBar = new dijit.MenuBar({});";
     //$iterator = new ArrayIterator($container->getPages());
     $id_counter = 0;
     //        if (count($container->getPages()) == 1) {
     //            $all_pages = $container->getPages();
     //            $all_pages = array_pop($all_pages)->getPages();
     //        } else {
     $all_pages = $container->getPages();
     //        }
     foreach ($all_pages as $page) {
         $id_counter++;
         $menu_item = $this->getDojoProgrammaticMenuparts($page, "\n", $id_counter);
         if ($menu_item) {
             $menubar_script .= "\n" . $menu_item["code"];
             $menubar_script .= "\n\npMenuBar.addChild(new dijit.PopupMenuBarItem({";
             $menubar_script .= "\n    label: \"" . $this->_getHtmlLabel($page) . "\",";
             $menubar_script .= "\n    popup: " . $menu_item["id"];
             $menubar_script .= "\n}));";
         } else {
             $id_counter--;
         }
     }
     $menubar_script .= "\npMenuBar.placeAt(\"{$menubar_div_id}\");";
     $menubar_script .= "\npMenuBar.startup();";
     $this->view->dojo()->addOnLoad("function() {\n" . $menubar_script . "\n}");
     $this->view->dojo()->requireModule('dijit.MenuBar');
     $this->view->dojo()->requireModule("dijit.MenuBarItem");
     $this->view->dojo()->requireModule("dijit.PopupMenuBarItem");
     $this->view->dojo()->requireModule("dijit.Menu");
     $this->view->dojo()->requireModule("dijit.MenuItem");
     $this->view->dojo()->requireModule("dijit.PopupMenuItem");
     $html = "<div id=\"{$menubar_div_id}\"></div>";
     return $html;
 }