mirror of
https://github.com/joomla/joomla-cms.git
synced 2024-07-03 18:43:40 +00:00
de4a567e3a
Updated the license declarations. Updated some copyright declarations that still referred to 2008. git-svn-id: http://joomlacode.org/svn/joomla/development/trunk@11952 6f6e1ebd-4c2b-0410-823f-f34bde69bce9
87 lines
2.1 KiB
PHP
87 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* @version $Id$
|
|
* @package Joomla.Framework
|
|
* @subpackage Application
|
|
* @copyright Copyright (C) 2005 - 2009 Open Source Matters, Inc. All rights reserved.
|
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
*/
|
|
|
|
// No direct access
|
|
defined('JPATH_BASE') or die;
|
|
|
|
/**
|
|
* JMenu class
|
|
*
|
|
* @package Joomla.Framework
|
|
* @subpackage Application
|
|
* @since 1.5
|
|
*/
|
|
class JMenuSite extends JMenu
|
|
{
|
|
/**
|
|
* Loads the entire menu table into memory
|
|
*
|
|
* @access public
|
|
* @return array
|
|
*/
|
|
function load()
|
|
{
|
|
$cache = &JFactory::getCache('_system', 'output');
|
|
|
|
if (!$data = $cache->get('menu_items'))
|
|
{
|
|
// Initialize some variables
|
|
$db = & JFactory::getDbo();
|
|
|
|
$sql = 'SELECT m.*, c.`option` as component' .
|
|
' FROM #__menu AS m' .
|
|
' LEFT JOIN #__components AS c ON m.componentid = c.id'.
|
|
' WHERE m.published = 1'.
|
|
' ORDER BY m.sublevel, m.parent, m.ordering';
|
|
$db->setQuery($sql);
|
|
|
|
if (!($menus = $db->loadObjectList('id'))) {
|
|
JError::raiseWarning('SOME_ERROR_CODE', "Error loading Menus: ".$db->getErrorMsg());
|
|
return false;
|
|
}
|
|
|
|
foreach($menus as $key => $menu)
|
|
{
|
|
//Get parent information
|
|
$parent_route = '';
|
|
$parent_tree = array();
|
|
if (($parent = $menus[$key]->parent) && (isset($menus[$parent])) &&
|
|
(is_object($menus[$parent])) && (isset($menus[$parent]->route)) && isset($menus[$parent]->tree)) {
|
|
$parent_route = $menus[$parent]->route.'/';
|
|
$parent_tree = $menus[$parent]->tree;
|
|
}
|
|
|
|
//Create tree
|
|
array_push($parent_tree, $menus[$key]->id);
|
|
$menus[$key]->tree = $parent_tree;
|
|
|
|
//Create route
|
|
$route = $parent_route.$menus[$key]->alias;
|
|
$menus[$key]->route = $route;
|
|
|
|
//Create the query array
|
|
$url = str_replace('index.php?', '', $menus[$key]->link);
|
|
if (strpos($url, '&') !== false)
|
|
{
|
|
$url = str_replace('&','&',$url);
|
|
}
|
|
|
|
parse_str($url, $menus[$key]->query);
|
|
}
|
|
|
|
$cache->store(serialize($menus), 'menu_items');
|
|
|
|
$this->_items = $menus;
|
|
}
|
|
else {
|
|
$this->_items = unserialize($data);
|
|
}
|
|
}
|
|
}
|