mirror of
https://github.com/joomla/joomla-cms.git
synced 2024-07-03 18:43:40 +00:00
186d63070a
git-svn-id: http://joomlacode.org/svn/joomla/development/trunk@11140 6f6e1ebd-4c2b-0410-823f-f34bde69bce9
82 lines
2.3 KiB
PHP
82 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* @version $Id: menu.php 8682 2007-08-31 18:36:45Z jinx $
|
|
* @package Joomla.Framework
|
|
* @subpackage Application
|
|
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
|
|
* @license GNU/GPL, see LICENSE.php
|
|
* Joomla! is free software. This version may have been modified pursuant
|
|
* to the GNU General Public License, and as distributed it includes or
|
|
* is derivative of works licensed under the GNU General Public License or
|
|
* other free or open source software licenses.
|
|
* See COPYRIGHT.php for copyright notices and details.
|
|
*/
|
|
|
|
// Check to ensure this file is within the rest of the framework
|
|
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()
|
|
{
|
|
// 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);
|
|
}
|
|
|
|
$this->_items = $menus;
|
|
}
|
|
}
|