*/
class WebControllerResolver extends BaseResolver implements ControllerResolver {
/**
- * Last successfull resolved controller
+ * Last successfull resolved controller (name)
*/
private $lastControllerName = "";
/**
- * Private constructor
+ * Last successfull resolved controller (instance)
+ */
+ private $lastControllerInstance = null;
+
+ /**
+ * Protected constructor
*
* @return void
*/
parent::__construct(__CLASS__);
// Set part description
- $this->setObjectDescription("");
+ $this->setObjectDescription("Resolver for local web controllers");
// Create unique ID number
$this->createUniqueID();
- // Clean up a little
- $this->removeNumberFormaters();
- $this->removeSystemArray();
-
// Set prefix to "Web"
$this->setCommandPrefix("Web");
}
* @throws InvalidControllerInstanceException Thrown if $commandInstance
* is invalid
*/
- public function resolveDefaultController () {
+ public function resolveCommandController () {
// Init variables
$commandName = "";
$controllerInstance = null;
throw new InvalidControllerInstanceException(array($this, $commandName), self::EXCEPTION_INVALID_CONTROLLER);
}
- // Set last command
- $this->lastCommandInstance = $controllerInstance;
+ // Set last controller
+ $this->lastControllerInstance = $controllerInstance;
} catch (MissingArrayElementsException $e) {
// Just catch it here...
}
* controller class is missing (bad!)
*/
private function loadController ($commandName) {
+ // Debug message
+ //print("<strong>----- ".__METHOD__." -----</strong><pre>");
+ //debug_print_backtrace();
+ //print("</pre>");
+ //
+
// Cache default command
- $defaultCommand = $this->getConfigInstance()->readConfig("default_command");
+ $defaultCommand = $this->getConfigInstance()->readConfig('default_command');
// Init controller instance
$controllerInstance = null;
if ($commandName != $defaultCommand) {
// Create controller class name
$class = sprintf("Web%sController",
- ucfirst(strtolower($commandName))
+ $this->convertToClassName($commandName)
);
- } elseif ($this->getConfigInstance()->readConfig("home_with_news") == "Y") {
+ } elseif ($this->getConfigInstance()->readConfig('home_with_news') == "Y") {
// Yes, display news in home then set default controller with news
$class = "WebDefaultNewsController";
+ } else {
+ // No nes at "home" page
+ $class = "WebDefaultController";
}
// Is this class loaded?