Exemplo n.º 1
0
	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;
	}
Exemplo n.º 2
0
	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;
	}
Exemplo n.º 3
0
 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;
             }
         }
     }
 }