protected static function parseQuery($query) { if (!ConfigValue::get('AdminInstalled', false) && !in_array($query, array('admin/pre_install', 'admin/check_install', 'admin/install'))) { $query = 'admin/pre_install'; } if (!empty($query)) { $terms = explode('/', $query); } else { $terms = array(); } //We want to now what a parameter was, even if it's empty, so don't filter //$terms = array_filter($terms); self::$area = count($terms) ? array_shift($terms) : ConfigValue::get('DefaultController', 'home'); if (count($terms)) { self::$action = array_shift($terms); } else { if (Component::isActive(class_name(self::$area))) { self::$action = ConfigValue::get('Default' . class_name(self::$area) . 'Action', ConfigValue::get('DefaultAction', 'index')); } else { self::$action = ConfigValue::get('DefaultAction', 'index'); } } self::$parameters = !empty($terms) ? $terms : array(); if (Component::isActive(class_name(self::$area)) && method_exists(class_name(self::$area), 'checkParameters')) { self::$parameters = call_user_func(array(class_name(self::$area), 'checkParameters'), self::$parameters); } return self::$parameters; }