public static function initialize() { KUNENA_PROFILER ? KunenaProfiler::instance()->start('function '.__CLASS__.'::'.__FUNCTION__.'()') : null; self::$config = KunenaFactory::getConfig (); if (JFactory::getApplication()->isAdmin()) { self::$adminApp = true; KUNENA_PROFILER ? KunenaProfiler::instance()->stop('function '.__CLASS__.'::'.__FUNCTION__.'()') : null; return; } self::$menus = JFactory::getApplication()->getMenu (); self::$menu = self::$menus->getMenu (); self::$default = self::$menus->getDefault(); $active = self::$menus->getActive (); if ($active && $active->type == 'component' && $active->component == 'com_kunena' && isset($active->query['view'])) { self::$active = $active; } else { self::$active = null; } self::$home = self::getHome(self::$active); KUNENA_PROFILER ? KunenaProfiler::instance()->stop('function '.__CLASS__.'::'.__FUNCTION__.'()') : null; }
public static function initialize() { KUNENA_PROFILER ? KunenaProfiler::instance()->start('function '.__CLASS__.'::'.__FUNCTION__.'()') : null; self::$config = KunenaFactory::getConfig (); if (JFactory::getApplication()->isAdmin()) { self::$adminApp = true; KUNENA_PROFILER ? KunenaProfiler::instance()->stop('function '.__CLASS__.'::'.__FUNCTION__.'()') : null; return; } self::$menus = JFactory::getApplication()->getMenu (); self::$menu = self::$menus->getMenu (); self::$default = self::$menus->getDefault(); $active = self::$menus->getActive(); // Get the full request URI. $uri = clone JUri::getInstance(); // Get current route. self::$current = new JUri('index.php'); if ($active) { foreach ($active->query as $key => $value) { self::$current->setVar($key, $value); } self::$current->setVar('Itemid', (int) $active->id); if ($active->type == 'component' && $active->component == 'com_kunena' && isset($active->query['view'])) { self::$active = $active; } } // If values are both in GET and POST, they are only stored in POST foreach (JRequest::get('post') as $key => $value) { if (in_array($key, array('view', 'layout', 'task')) && !preg_match('/[^a-zA-Z0-9_.]/i', $value)) { self::$current->setVar($key, $value); } } // Make sure that request URI is not broken foreach (JRequest::get('get') as $key => $value) { if (preg_match('/[^a-zA-Z]/', $key)) { continue; } if (in_array($key, array('q', 'query', 'searchuser'))) { // Allow all values } // TODO: we need to find a way to here deal with arrays: &foo[]=bar elseif (gettype($value)=='string') { if(preg_match('/[^a-zA-Z0-9_ ]/i', $value)) { // Illegal value continue; } } self::$current->setVar($key, $value); } if (self::$current->getVar('start')) { self::$current->setVar('limitstart', self::$current->getVar('start')); self::$current->delVar('start'); } self::$home = self::getHome(self::$active); KUNENA_PROFILER ? KunenaProfiler::instance()->stop('function '.__CLASS__.'::'.__FUNCTION__.'()') : null; }
protected static function buildMenuTree() { $menus = JSite::getMenu(); $active = $menus->getActive(); self::$active = is_object($active) ? $active->id : 0; if (self::$menu === null) { self::$menu = $menus->getMenu(); $my = JFactory::getUser(); $language = JFactory::getDocument()->getLanguage(); foreach (self::$menu as $item) { if (!is_object($item)) { continue; } // Support both J1.6 and J1.5 $authorise = isset($item->parent_id) ? $menus->authorise($item->id) : !empty($item->published) && (!isset($item->access) || $item->access <= $my->aid); $parent = isset($item->parent_id) ? $item->parent_id == 1 ? 0 : $item->parent_id : $item->parent; if ($authorise && (!isset($item->language) || $item->language == '*' || strtolower($item->language) == strtolower($language))) { self::$childlist[$item->menutype][$parent][$item->id] = $item->id; } } } }