legacy open qoob framework

php mvc framework for generating dynamic websites.

app/controllers/url.php


<?php
/**
 * url controller
 * class to mine the url into qoob controllers and actions.
 *
 * @author xero harrison <x@xero.nu>
 * @copyright (cc) creative commons - attribution-shareAlike 3.0 unported
 * @version 1.011
 * @package app
 * @subpackage controllers
 */
class url extends controller {
	/**
	 * constructor function
	 * mine the url into qoob controllers and actions. then load 
	 * the controller class and call the method action.
	 */
	public function __construct() {
		parent::__construct(null, false);

		// -- find controller
		if (library::catalog()->url[0] != "") {
			// --- nonslashed empty query string
			if (library::catalog()->url[0] == "?") {
				header("location: ".BASE_URL."?/");
			}
			// --- check against database
			$routes = $this->model("routes");
			$result = $routes->checkRoute(library::catalog()->url[0]);
			
			if (count($result) > 0) {
				$controller = $result[0]["controller"];
				$controllerURL = $result[0]["name"];
				$parent = $result[0]["route_id"];
			} else {
				throw new Exception("invalid controller url", statusCodes::HTTP_NOT_FOUND);
			}
		} else {
			$controller = DEFAULT_CONTROLLER;
			$controllerURL = DEFAULT_CONTROLLER;
		}
		define("QOOB_CONTROLLER", $controller);
		define("QOOB_CONTROLLER_URL", $controllerURL);

		// --- find action
		if (count(library::catalog()->url) > 1) {
			if($controller == "qrcode") {
					$action = DEFAULT_ACTION;
			} else {
				$routes = $this->model("routes");
				$result = $routes->checkRoute(library::catalog()->url[1], $parent);
				if (count($result) > 0) {
					$action = $result[0]["controller"];
				} else {
					throw new Exception("invalid method url", statusCodes::HTTP_NOT_FOUND);
				}			
			}
		} else {
			$action = DEFAULT_ACTION;
		}
		
		define("QOOB_ACTION", $action);
		
		$page = registry::register(qoob_types::controller, $controller);

		if (count(library::catalog()->url) > 2) {
			$params = array_slice(library::catalog()->url, 2);
			$page->$action($params);
		} else {
			$page->$action();
		}
	}	
}

?>

Download

raw zip tar