inc/classes/exceptions/container/class_ContainerItemIsNoArrayException.php -text
inc/classes/exceptions/container/class_ContainerItemIsNullException.php -text
inc/classes/exceptions/container/class_ContainerMaybeDamagedException.php -text
+inc/classes/exceptions/controller/.htaccess -text
+inc/classes/exceptions/controller/class_DefaultControllerException.php -text
inc/classes/exceptions/database/.htaccess -text
inc/classes/exceptions/database/local_file/.htaccess -text
inc/classes/exceptions/database/local_file/class_SavePathIsEmptyException.php -text
inc/classes/main/controller/.htaccess -text
inc/classes/main/controller/class_BaseController.php -text
inc/classes/main/controller/default/.htaccess -text
-inc/classes/main/controller/default/class_DefaultController.php -text
+inc/classes/main/controller/default/class_LocalDefaultController.php -text
+inc/classes/main/controller/default/class_LocalDefaultNewsController.php -text
inc/classes/main/controller/registration/.htaccess -text
inc/classes/main/controller/registration/class_DefaultRegistrationController.php -text
inc/classes/main/database/.htaccess -text
-<div id="home_content">
- <div id="content_header">
- Willkommen zum Schiffsimulator "Ship-Simu"!
- </div>
+<div id="content_header">
+ Willkommen zum Schiffsimulator "Ship-Simu"!
+</div>
- <div id="news_frame">
- {?ship_simu_news?}
- </div>
+<div id="news_frame">
+ {?ship_simu_news?}
</div>
--- /dev/null
+Deny from all
--- /dev/null
+<?php
+/**
+ * This exception is thrown when the default controller is missing
+ *
+ * @author Roland Haeder <webmaster@mxchange.org>
+ * @version 0.0.0
+ * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license GNU GPL 3.0 or any newer version
+ * @link http://www.ship-simu.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+class DefaultControllerException extends FrameworkException {
+ /**
+ * The super constructor for all exceptions
+ *
+ * @param $resolverInstance An instance of a resolver class
+ * @param $code An optional code for better debugging
+ * @return void
+ */
+ public function __construct(ControllerResolver $resolverInstance, $code) {
+ // Prepare the message
+ $message = sprintf("[%s:%d] Cannot resolv default controller. Maybe missing?",
+ $resolverInstance->__toString(),
+ $this->getLine()
+ );
+
+ // Call parent contructor with message
+ parent::__construct($message, $code);
+ }
+}
+
+// [EOF]
+?>
const EXCEPTION_INVALID_COMMAND = 0x031;
const EXCEPTION_INVALID_CONTROLLER = 0x032;
const EXCEPTION_HEADERS_ALREADY_SENT = 0x033;
+ const EXCEPTION_DEFAUL_CONTROLLER_GONE = 0x034;
/**
* In the super constructor these system classes shall be ignored or else
// Clean up a little
$this->removeSystemArray();
-
- // Set assigned controller
- $this->setControllerName("default");
}
/**
// Return the prepared instance
return $commandInstance;
}
-
+
/**
* Executes the given command with given request and response objects
*
+++ /dev/null
-<?php
-/**
- * The default controller for all other requests
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class DefaultController extends BaseController implements Controller {
- /**
- * Instance of a CommandResolver class
- */
- private $resolverInstance = null;
-
- /**
- * Private constructor
- *
- * @return void
- */
- protected function __construct () {
- // Call parent constructor
- parent::__construct(__CLASS__);
-
- // Set part description
- $this->setObjectDescription("Standart-Controller für alle übrigen Anfragen");
-
- // Create unique ID number
- $this->createUniqueID();
-
- // Clean up a little
- $this->removeSystemArray();
- }
-
- /**
- * Creates an instance of this class
- *
- * @param $resolverInstance An instance of a command resolver class
- * @return $controllerInstance A prepared instance of this class
- */
- public final static function createDefaultController (CommandResolver $resolverInstance) {
- // Create the instance
- $controllerInstance = new DefaultController();
-
- // Set the command resolver
- $controllerInstance->setResolverInstance($resolverInstance);
-
- // Return the prepared instance
- return $controllerInstance;
- }
-
- /**
- * Setter for a command resolver instance
- *
- * @param $resolverInstance An instance of a command resolver class
- * @return void
- */
- public final function setResolverInstance (CommandResolver $resolverInstance) {
- $this->resolverInstance = $resolverInstance;
- }
-
- /**
- * Handles the given request and response
- *
- * @param $requestInstance An instance of a request class
- * @param $responseInstance An instance of a response class
- * @return void
- */
- public function handleRequest (Requestable $requestInstance, Responseable $responseInstance) {
- // Get the command instance
- $commandInstance = $this->resolverInstance->resolvCommandByRequest($requestInstance);
-
- // Execute the command
- $commandInstance->execute($requestInstance, $responseInstance);
-
- // Flush the response out
- $responseInstance->flushResponse();
- }
-}
-
-// [EOF]
-?>
--- /dev/null
+<?php
+/**
+ * The default controller for all other requests
+ *
+ * @author Roland Haeder <webmaster@ship-simu.org>
+ * @version 0.0.0
+ * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license GNU GPL 3.0 or any newer version
+ * @link http://www.ship-simu.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+class LocalLocalDefaultController extends BaseController implements Controller {
+ /**
+ * Instance of a CommandResolver class
+ */
+ private $resolverInstance = null;
+
+ /**
+ * Private constructor
+ *
+ * @return void
+ */
+ protected function __construct () {
+ // Call parent constructor
+ parent::__construct(__CLASS__);
+
+ // Set part description
+ $this->setObjectDescription("Standart-Controller für alle übrigen Anfragen");
+
+ // Create unique ID number
+ $this->createUniqueID();
+
+ // Clean up a little
+ $this->removeSystemArray();
+ }
+
+ /**
+ * Creates an instance of this class
+ *
+ * @param $resolverInstance An instance of a command resolver class
+ * @return $controllerInstance A prepared instance of this class
+ */
+ public final static function createLocalDefaultController (CommandResolver $resolverInstance) {
+ // Create the instance
+ $controllerInstance = new LocalDefaultController();
+
+ // Set the command resolver
+ $controllerInstance->setResolverInstance($resolverInstance);
+
+ // Return the prepared instance
+ return $controllerInstance;
+ }
+
+ /**
+ * Setter for a command resolver instance
+ *
+ * @param $resolverInstance An instance of a command resolver class
+ * @return void
+ */
+ public final function setResolverInstance (CommandResolver $resolverInstance) {
+ $this->resolverInstance = $resolverInstance;
+ }
+
+ /**
+ * Handles the given request and response
+ *
+ * @param $requestInstance An instance of a request class
+ * @param $responseInstance An instance of a response class
+ * @return void
+ */
+ public function handleRequest (Requestable $requestInstance, Responseable $responseInstance) {
+ // Get the command instance
+ $commandInstance = $this->resolverInstance->resolvCommandByRequest($requestInstance);
+
+ // Execute the command
+ $commandInstance->execute($requestInstance, $responseInstance);
+
+ // Flush the response out
+ $responseInstance->flushResponse();
+ }
+}
+
+// [EOF]
+?>
--- /dev/null
+<?php
+/**
+ * The default controller with news for e.g. home or news page
+ *
+ * @author Roland Haeder <webmaster@ship-simu.org>
+ * @version 0.0.0
+ * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license GNU GPL 3.0 or any newer version
+ * @link http://www.ship-simu.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+class LocalDefaultNewsController extends BaseController implements Controller {
+ /**
+ * Instance of a CommandResolver class
+ */
+ private $resolverInstance = null;
+
+ /**
+ * Private constructor
+ *
+ * @return void
+ */
+ protected function __construct () {
+ // Call parent constructor
+ parent::__construct(__CLASS__);
+
+ // Set part description
+ $this->setObjectDescription("Standart-Controller mit News-Auflistung");
+
+ // Create unique ID number
+ $this->createUniqueID();
+
+ // Clean up a little
+ $this->removeSystemArray();
+ }
+
+ /**
+ * Creates an instance of this class
+ *
+ * @param $resolverInstance An instance of a command resolver class
+ * @return $controllerInstance A prepared instance of this class
+ */
+ public final static function createLocalDefaultNewsController (CommandResolver $resolverInstance) {
+ // Create the instance
+ $controllerInstance = new LocalDefaultNewsController();
+
+ // Set the command resolver
+ $controllerInstance->setResolverInstance($resolverInstance);
+
+ // Return the prepared instance
+ return $controllerInstance;
+ }
+
+ /**
+ * Setter for a command resolver instance
+ *
+ * @param $resolverInstance An instance of a command resolver class
+ * @return void
+ */
+ public final function setResolverInstance (CommandResolver $resolverInstance) {
+ $this->resolverInstance = $resolverInstance;
+ }
+
+ /**
+ * Handles the given request and response
+ *
+ * @param $requestInstance An instance of a request class
+ * @param $responseInstance An instance of a response class
+ * @return void
+ */
+ public function handleRequest (Requestable $requestInstance, Responseable $responseInstance) {
+ // Get the command instance
+ $commandInstance = $this->resolverInstance->resolvCommandByRequest($requestInstance);
+
+ // Get the news page variable from the request instance
+ $newsPage = $requestInstance->getRequestElement("news_page");
+
+ // Load the news here
+ $this->loadNews($newsPage);
+
+ // Execute the command
+ $commandInstance->execute($requestInstance, $responseInstance);
+
+ // Flush the response out
+ $responseInstance->flushResponse();
+ }
+
+ /**
+ * Loads news from the connected database for later usage
+ *
+ * @param $newsPage Page of listed news we want to read
+ * @return void
+ */
+ private function loadNews ($newsPage) {
+ }
+}
+
+// [EOF]
+?>
*
* @return void
*/
- protected function __construct () {
+ protected function __construct ($class) {
// Call parent constructor
- parent::__construct(__CLASS__);
+ parent::__construct($class);
// Clean up a little
$this->removeSystemArray();
$controllerInstance = null;
// Default controller
- $class = "DefaultController";
+ $class = "LocalDefaultController";
// Generate the class name
if ($commandName != $defaultCommand) {
$class = sprintf("Local%sController",
ucfirst(strtolower($commandName))
);
+ } elseif ($this->getConfigInstance()->readConfig("home_with_news") == "Y") {
+ // Yes, display news in home then set default controller with news
+ $class = "LocalDefaultNewsController";
}
// Is this class loaded?