當前位置: 首頁>>代碼示例>>PHP>>正文


PHP CMenu::getMenuItems方法代碼示例

本文整理匯總了PHP中CMenu::getMenuItems方法的典型用法代碼示例。如果您正苦於以下問題:PHP CMenu::getMenuItems方法的具體用法?PHP CMenu::getMenuItems怎麽用?PHP CMenu::getMenuItems使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在CMenu的用法示例。


在下文中一共展示了CMenu::getMenuItems方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: getTasksMenu

 /**
  * Меню задач для текущего пользователя.
  * Возвращаются только доступные ему задачи
  *
  * @static
  * @return CMenu
  */
 private static function getTasksMenu()
 {
     if (!self::getCacheMenu()->hasElement("admin_menu")) {
         $user = CSession::getCurrentUser();
         /**
          * Чтобы не выбиваться из общей концепции придется адаптировать существующую таблицу
          * задач портала под вывод в виде меню. Также было бы неплохо сделать редактор этой
          * гадости в виде такого же простого вида, как и с моими меню
          *
          * 1. Создадим фиктивную activeRecord из моего меню для ссылки в другое меню
          * 2. Берем из таблицы группы меню (из task_menu_names)
          * 3. Выберем пункты меню из нужной таблицы и добавим их как обычные пункты.
          * 4. Добавим недостающие
          * 5. Исключим недоступные текущему пользователю
          *
          * Обновление от 06.02.2014 - все пункты меню хранятся в базе
          */
         // дополнительный пункт "Прочее"
         $arr = array();
         $arr['id'] = 100000;
         $arr['title'] = "Меню админки";
         $arr['alias'] = "admin_menu";
         $arr['description'] = "Фиктивное меню для отображения задач портала";
         $arr['published'] = 1;
         $menu = new CMenu(new CActiveRecord($arr));
         foreach (CActiveRecordProvider::getWithCondition("task_menu_names", "1=1 order by name desc")->getItems() as $i) {
             $arr = $i->getItems();
             // адаптер для моей системы меню
             $arr['id'] = $arr['id'] + 100000;
             $arr['title'] = $arr['name'];
             $arr['anchor'] = "#";
             $arr['menu_id'] = $menu->getId();
             $arr['parent_id'] = 0;
             $i->setItems($arr);
             $menuItem = new CMenuItem($i);
             $menu->addMenuItem($menuItem);
         }
         // дополнительный пункт "Прочее"
         $arr = array();
         $arr['id'] = 100000;
         $arr['title'] = CUtils::getTextStringInCorrectEncoding("Прочее");
         $arr['anchor'] = "#";
         $arr['menu_id'] = $menu->getId();
         $arr['parent_id'] = 0;
         $menuItem = new CMenuItem(new CActiveRecord($arr));
         $menu->addMenuItem($menuItem);
         foreach (CActiveRecordProvider::getWithCondition("tasks", "hidden=0 order by name asc")->getItems() as $i) {
             $arr = $i->getItems();
             // адаптер для совместимости с моей системой
             $arr['title'] = $arr['name'];
             $arr['anchor'] = $arr['url'];
             $arr['parent_id'] = $arr['menu_name_id'] + 100000;
             $arr['menu_id'] = $menu->getId();
             unset($arr['name']);
             unset($arr['url']);
             unset($arr['menu_name_id']);
             unset($arr['hidden']);
             unset($arr['kadri_in_task']);
             unset($arr['students_in_task']);
             unset($arr['comment']);
             $i->setItems($arr);
             $menuItem = new CMenuItem($i);
             $menu->addMenuItem($menuItem);
         }
         // дополнительный пункт меню "Выход"
         $arr = array();
         $arr['id'] = 200000;
         $arr['title'] = CUtils::getTextStringInCorrectEncoding("Выход");
         $arr['anchor'] = "p_administration.php?exit=1";
         $arr['menu_id'] = $menu->getId();
         $arr['parent_id'] = 0;
         $menuItem = new CMenuItem(new CActiveRecord($arr));
         $menu->addMenuItem($menuItem);
         // теперь исключаем все задачи недоступные текущему пользователю
         foreach ($menu->getMenuItems()->getItems() as $menuItem) {
             if ($menuItem->getId() < 100000) {
                 if (!$user->getRoles()->hasElement($menuItem->getId())) {
                     $menu->getMenuItems()->removeItem($menuItem->getId());
                 }
             }
         }
         self::getCacheMenu()->add("admin_menu", $menu);
     }
     return self::getCacheMenu()->getItem("admin_menu");
 }
開發者ID:Rustam44,項目名稱:ASUPortalPHP,代碼行數:92,代碼來源:CMenuManager.class.php


注:本文中的CMenu::getMenuItems方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。