input = loadClass('Input'); // Start routing $this->checkRoutingUrl(); } // This function will check how the url should be loaded protected function checkRoutingUrl() { // Determine our http hostname, and site directory $this->hostName = rtrim($_SERVER['HTTP_HOST'], '/'); $this->websiteDir = dirname( $_SERVER['PHP_SELF'] ); // Detect our protocol if(isset($_SERVER['HTTPS'])) { if(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') { $this->protocol = 'https'; } else { $this->protocol = 'http'; } } else { $this->protocol = 'http'; } // Build our Full Base URL $websiteURL = str_replace('//', '/', $this->hostName .'/'. $this->websiteDir); $this->websiteURL = $this->protocol .'://' . rtrim($websiteURL, '/'); // Process the site URI if (!configuration('urlParameters', 'SuperSmash')) { // Get our current url, which is passed on by the 'url' param $this->uri = (isset($_GET['url']) ? $this->input->get('url', true) : ''); } else { // Define our needed vars $controllerParameter = configuration('controllerParameter', 'SuperSmash'); $actionParameter = configuration('actionParameter', 'SuperSmash'); // Make sure we have a controller at least $controller = $this->input->get($controllerParameter, true); if (!$controller) { $this->uri = ''; } else { // Get our action $action = $this->input->get($actionParameter, true); if(!$action) $action = configuration('defaultAction', 'SuperSmash'); // Default Action // initialise the uri $this->uri = $controller .'/'. $action; // Clean the query string $queryString = $this->input->clean($_SERVER['QUERY_STRING']); $queryString = explode('&', $queryString); foreach($queryString as $string) { // Convert this segment to an array $string = explode('=', $string); // Dont add the controller / action twice ;) if($string[0] == $controllerParameter || $string[0] == $actionParameter) { continue; } // Append the uri vraiable $this->uri .= '/'. $string[1]; } } } // If the URI is empty, then load defaults if (empty($this->uri)) { // Set our Controller / Action to the defaults $controller = configuration('defaultController', 'SuperSmash'); // Default Controller $action = configuration('defaultAction', 'SuperSmash'); // Default Action $queryString = array(); // Default query string } // There is a URI, Lets load our controller and action else { // Remove any left slashes or double slashes $this->uri = ltrim( str_replace('//', '/', $this->uri), '/'); // We will start by bulding our controller, action, and querystring $urlArray = array(); $urlArray = explode("/", $this->uri); $controller = $urlArray[0]; // If there is an action, then lets set that in a variable array_shift($urlArray); if(isset($urlArray[0]) && !empty($urlArray[0])) { $action = $urlArray[0]; array_shift($urlArray); } // If there is no action, load the default action. else { $action = configuration('defaultAction', 'SuperSmash'); // Default Action } // $queryString is what remains $queryString = $urlArray; } // Make sure the first character of the controller is not an _ ! if( strncmp($controller, '_', 1) == 0 || strncmp($action, '_', 1) == 0 ) { show_404(); } // Set static Variables $this->controller = $controller; $this->action = $action; $this->queryString = $queryString; } // This function returns all the url information public function getUrlInformation() { $array = array( 'protocol' => $this->protocol, 'hostName' => $this->hostName, 'websiteURL' => $this->websiteURL, 'websiteDir' => $this->websiteDir, 'uri' => $this->uri, 'controller' => $this->controller, 'action' => $this->action, 'querystring' => $this->queryString ); return $array; } // This function returns the specified URI segment public function getUriSegment($index) { // Return the URI if(isset($this->uri[$index])) { return $this->uri[$index]; } return false; } } ?>