]> git.mxchange.org Git - shipsimu.git/commitdiff
Default news controller added, some fixes
authorRoland Häder <roland@mxchange.org>
Mon, 5 May 2008 21:29:32 +0000 (21:29 +0000)
committerRoland Häder <roland@mxchange.org>
Mon, 5 May 2008 21:29:32 +0000 (21:29 +0000)
.gitattributes
application/ship-simu/templates/de/html/home.tpl
inc/classes/exceptions/controller/.htaccess [new file with mode: 0644]
inc/classes/exceptions/controller/class_DefaultControllerException.php [new file with mode: 0644]
inc/classes/main/class_BaseFrameworkSystem.php
inc/classes/main/commands/local/class_LocalHomeCommand.php
inc/classes/main/controller/default/class_DefaultController.php [deleted file]
inc/classes/main/controller/default/class_LocalDefaultController.php [new file with mode: 0644]
inc/classes/main/controller/default/class_LocalDefaultNewsController.php [new file with mode: 0644]
inc/classes/main/resolver/class_BaseResolver.php
inc/classes/main/resolver/local/class_LocalControllerResolver.php

index 3d2a70034c5de2e85c2f8d81d55584c9f9f82086..adac8d9d25ef2fe2b18d3dc8e7947fb58aee8ace 100644 (file)
@@ -144,6 +144,8 @@ inc/classes/exceptions/container/.htaccess -text
 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
@@ -254,7 +256,8 @@ inc/classes/main/console/class_ConsoleTools.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
index 2523adf1bc34f77e732818f5d6c771da291ae575..862508206de77b4c3a1083c9e751bb10dfb8ce90 100644 (file)
@@ -1,9 +1,7 @@
-<div id="home_content">
-       <div id="content_header">
-               Willkommen zum Schiffsimulator &quot;Ship-Simu&quot;!
-       </div>
+<div id="content_header">
+       Willkommen zum Schiffsimulator &quot;Ship-Simu&quot;!
+</div>
 
-       <div id="news_frame">
-               {?ship_simu_news?}
-       </div>
+<div id="news_frame">
+       {?ship_simu_news?}
 </div>
diff --git a/inc/classes/exceptions/controller/.htaccess b/inc/classes/exceptions/controller/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/inc/classes/exceptions/controller/class_DefaultControllerException.php b/inc/classes/exceptions/controller/class_DefaultControllerException.php
new file mode 100644 (file)
index 0000000..aead2d4
--- /dev/null
@@ -0,0 +1,45 @@
+<?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]
+?>
index 9db30498b2b1fb6dd8ded9e163ca2b124fb06069..4abdf2995886afc834c0f3ffefa31412df5de770 100644 (file)
@@ -148,6 +148,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
        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
index 4f96e30cfd0751635b2fc686defadf14a2b6cc92..58e1a76d9b0e19480893072f141f498bb9bb8c67 100644 (file)
@@ -39,9 +39,6 @@ class LocalHomeCommand extends BaseCommand implements Commandable {
 
                // Clean up a little
                $this->removeSystemArray();
-
-               // Set assigned controller
-               $this->setControllerName("default");
        }
 
        /**
@@ -60,7 +57,7 @@ class LocalHomeCommand extends BaseCommand implements Commandable {
                // Return the prepared instance
                return $commandInstance;
        }
-       
+
        /**
         * Executes the given command with given request and response objects
         *
diff --git a/inc/classes/main/controller/default/class_DefaultController.php b/inc/classes/main/controller/default/class_DefaultController.php
deleted file mode 100644 (file)
index e700a6e..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-<?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&uuml;r alle &uuml;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]
-?>
diff --git a/inc/classes/main/controller/default/class_LocalDefaultController.php b/inc/classes/main/controller/default/class_LocalDefaultController.php
new file mode 100644 (file)
index 0000000..a79243a
--- /dev/null
@@ -0,0 +1,96 @@
+<?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&uuml;r alle &uuml;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]
+?>
diff --git a/inc/classes/main/controller/default/class_LocalDefaultNewsController.php b/inc/classes/main/controller/default/class_LocalDefaultNewsController.php
new file mode 100644 (file)
index 0000000..90d3ec7
--- /dev/null
@@ -0,0 +1,111 @@
+<?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]
+?>
index 74cfa4738ecf186fcbb3021d89d3b9b42dd1089b..d442ef38e465b9cb9d926912e67879aad2e2b8b4 100644 (file)
@@ -37,9 +37,9 @@ class BaseResolver extends BaseFrameworkSystem {
         *
         * @return      void
         */
-       protected function __construct () {
+       protected function __construct ($class) {
                // Call parent constructor
-               parent::__construct(__CLASS__);
+               parent::__construct($class);
 
                // Clean up a little
                $this->removeSystemArray();
index 8ff0788c1163d4bdb42a684ef0d80f5ccb31dc22..9c942098f969b1a78fa749f03371d3d19574fed3 100644 (file)
@@ -140,7 +140,7 @@ class LocalControllerResolver extends BaseResolver implements ControllerResolver
                $controllerInstance = null;
 
                // Default controller
-               $class = "DefaultController";
+               $class = "LocalDefaultController";
 
                // Generate the class name
                if ($commandName != $defaultCommand) {
@@ -148,6 +148,9 @@ class LocalControllerResolver extends BaseResolver implements ControllerResolver
                        $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?