Exemplo n.º 1
0
 /**
  * Loads the entire menu table into memory (taken from Joomla 1.7.3).
  *
  * @return array
  */
 protected static function load()
 {
     // Initialise variables.
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $query->select('m.id, m.menutype, m.title, m.alias, m.path AS route, m.link, m.type, m.level, m.language');
     $query->select('m.browserNav, m.access, m.params, m.home, m.img, m.template_style_id, m.component_id, m.parent_id');
     $query->select('e.element as component, m.published');
     $query->from('#__menu AS m');
     $query->leftJoin('#__extensions AS e ON m.component_id = e.extension_id');
     $query->where('m.parent_id > 0');
     $query->where('m.client_id = 0');
     $query->order('m.lft');
     // Set the query
     $db->setQuery($query);
     if (!(self::$items = $db->loadObjectList('id'))) {
         JError::raiseWarning(500, JText::sprintf('JERROR_LOADING_MENUS', $db->getErrorMsg()));
         return false;
     }
     foreach (self::$items as &$item) {
         // Get parent information.
         $parent_tree = array();
         if (isset(self::$items[$item->parent_id])) {
             $parent_tree = self::$items[$item->parent_id]->tree;
         }
         // Create tree
         $parent_tree[] = $item->id;
         $item->tree = $parent_tree;
         // Create the query array.
         $url = str_replace('index.php?', '', $item->link);
         $url = str_replace('&', '&', $url);
         parse_str($url, $item->query);
     }
 }
Exemplo n.º 2
0
 /**
  * Loads the entire menu table into memory (taken from Joomla 1.7.3).
  *
  * @return array
  */
 protected static function load()
 {
     // Initialise variables.
     $db = JFactory::getDbo();
     if (version_compare(JVERSION, '1.6', '>')) {
         // Joomla 1.6+
         $query = $db->getQuery(true);
         $query->select('m.id, m.menutype, m.title, m.alias, m.path AS route, m.link, m.type, m.level, m.language');
         $query->select('m.browserNav, m.access, m.params, m.home, m.img, m.template_style_id, m.component_id, m.parent_id');
         $query->select('e.element as component, m.published');
         $query->from('#__menu AS m');
         $query->leftJoin('#__extensions AS e ON m.component_id = e.extension_id');
         $query->where('m.parent_id > 0');
         $query->where('m.client_id = 0');
         $query->order('m.lft');
     } else {
         // Joomla 1.5
         $query = "SELECT m.id, m.menutype, m.name AS title, m.alias, '' AS route, m.link, m.type, m.sublevel AS level, '*' AS language,\n\t\t\t\tm.browserNav, m.access, m.params, m.home, '' AS img, '' AS template_style_id, m.componentid AS component_id, m.parent AS parent_id,\n\t\t\t\tc.option AS component, m.published\n\t\t\t\tFROM #__menu AS m\n\t\t\t\tLEFT JOIN #__components AS c ON m.componentid = c.id\n\t\t\t\tORDER BY m.sublevel, m.parent, m.ordering";
     }
     // Set the query
     $db->setQuery($query);
     if (!(self::$items = $db->loadObjectList('id'))) {
         JError::raiseWarning(500, JText::sprintf('JERROR_LOADING_MENUS', $db->getErrorMsg()));
         return false;
     }
     foreach (self::$items as &$item) {
         // Get parent information.
         $parent_tree = array();
         if (version_compare(JVERSION, '1.6', '>')) {
             // Joomla 1.6+
             if (isset(self::$items[$item->parent_id])) {
                 $parent_tree = self::$items[$item->parent_id]->tree;
             }
         } else {
             // Joomla 1.5
             $parent_route = '';
             if (($parent = $item->parent_id) && isset(self::$items[$parent]) && is_object(self::$items[$parent]) && isset(self::$items[$parent]->route) && isset(self::$items[$parent]->tree)) {
                 $parent_route = self::$items[$parent]->route . '/';
                 $parent_tree = self::$items[$parent]->tree;
             }
             // Create route
             $item->route = $parent_route . $item->alias;
         }
         // Create tree
         $parent_tree[] = $item->id;
         $item->tree = $parent_tree;
         // Create the query array.
         $url = str_replace('index.php?', '', $item->link);
         $url = str_replace('&', '&', $url);
         parse_str($url, $item->query);
     }
 }