<?php require_once "class/controller.class.php"; require_once "controller/sysconf.control.php"; /* * Root-level controller for Scrott app. This object will delegate the page request to the * appropriate controller or handle it with an error message page. */ class Root extends Controller { /* * Controller implementation */ function handle($argv) { /* TODO -- Catch app exceptions here and display a special view to communicate them to user */ /* TODO -- Authentication (login / logout / register) MVC */ $argv = $this->normalizeArgv($argv); /* First, make sure the system configuration file has been included */ if (!$this->scrottConfExists()) { $ctrl = new Sysconf(); $ctrl->handle($argv); } /* TODO */ else echo "Configuration is present!"; } /* * Get a useful path string by normalizeing the $argv array received from the main function. * This will remove directory names that appear in the $this->ar() string and the initial * and trailing (if present) empty strings */ function normalizeArgv($argv) { $argv = array_values(array_filter($argv)); $ar = array_values(array_filter(explode("/", $this->ar()))); $i = 0; $trunc = true; if (count($ar) == 0) return $argv; foreach ($ar as $elem) { if ($elem != $argv[$i]) { $trunc = false; break; } $i++; } if (!$trunc) return $argv; return array_values(array_slice($argv, count($ar))); } } ?>