]> git.mxchange.org Git - shipsimu.git/commitdiff
More bugfixes:
authorRoland Häder <roland@mxchange.org>
Tue, 24 Jun 2008 15:52:18 +0000 (15:52 +0000)
committerRoland Häder <roland@mxchange.org>
Tue, 24 Jun 2008 15:52:18 +0000 (15:52 +0000)
- Template engine does now compile code again
- Missing controller for registration form added
- Stubs in all responses added to return proper default command
- Misc fixes in controller classes

.gitattributes
inc/classes/exceptions/controller/class_DefaultControllerException.php
inc/classes/exceptions/controller/class_InvalidControllerException.php
inc/classes/exceptions/main/class_ConfigEntryNotFoundException.php
inc/classes/exceptions/main/class_InvalidCommandException.php
inc/classes/main/controller/web/class_WebRegisterController.php [new file with mode: 0644]
inc/classes/main/resolver/controller/class_BaseControllerResolver.php
inc/classes/main/resolver/controller/image/class_ImageControllerResolver.php
inc/classes/main/response/class_HttpResponse.php
inc/classes/main/response/class_ImageResponse.php
inc/classes/main/template/class_BaseTemplateEngine.php

index bec7301363ab38f0002a54e21f72b4a8962bdb11..268477a12e30ec0c782ec4d17dac6430fd673419 100644 (file)
@@ -402,6 +402,7 @@ inc/classes/main/controller/web/class_WebDefaultController.php -text
 inc/classes/main/controller/web/class_WebDefaultNewsController.php -text
 inc/classes/main/controller/web/class_WebLoginController.php -text
 inc/classes/main/controller/web/class_WebLoginFailedController.php -text
+inc/classes/main/controller/web/class_WebRegisterController.php -text
 inc/classes/main/criteria/.htaccess -text
 inc/classes/main/criteria/class_DataSetCriteria.php -text
 inc/classes/main/criteria/class_SearchCriteria.php -text
index e6be3a107022f814efe2c7951cc6813c9be05b83..02c2010105cb647c2077240eab7ac41de5c41d97 100644 (file)
@@ -37,7 +37,7 @@ class DefaultControllerException extends FrameworkException {
                );
 
                // Set extra data
-               $this->setExtraData($resolverInstance->getClassName());
+               $this->setExtraData($resolverInstance->getClassName().":".$this->getLine());
 
                // Call parent contructor with message
                parent::__construct($message, $code);
index 2546e729c347e31e9e4e11ecbbbca8cc8b768117..ee7adaa3c88483726756cc72fc6cf189a6981636 100644 (file)
@@ -39,7 +39,7 @@ class InvalidControllerException extends FrameworkException {
                );
 
                // Set extra data
-               $this->setExtraData($msgArray[0]->getClassName());
+               $this->setExtraData($msgArray[0]->getClassName().":".$this->getLine());
 
                // Call parent contructor with message
                parent::__construct($message, $code);
index d7d2c958644b36e9c6adae3fcee2241fde803a76..96dbc42c8ccd2ae9ffe5dd7be27d1f5ecacfa49c 100644 (file)
@@ -38,7 +38,7 @@ class ConfigEntryNotFoundException extends FrameworkException {
                );
 
                // Set extra data
-               $this->setExtraData($classArray[1]);
+               $this->setExtraData($classArray[1].":".$this->getLine());
 
                // Call parent constructor
                parent::__construct($message, $code);
index dd36dba0c9071773717b9ef6bd48044ae90ef464..ca71e2e29d723d7bb0f60b75bf65530f171b3b49 100644 (file)
@@ -39,7 +39,7 @@ class InvalidCommandException extends FrameworkException {
                );
 
                // Set extra data
-               $this->setExtraData($msgArray[0]->getClassName());
+               $this->setExtraData($msgArray[0]->getClassName().":".$this->getLine());
 
                // Call parent constructor
                parent::__construct($message, $code);
diff --git a/inc/classes/main/controller/web/class_WebRegisterController.php b/inc/classes/main/controller/web/class_WebRegisterController.php
new file mode 100644 (file)
index 0000000..f4d749c
--- /dev/null
@@ -0,0 +1,92 @@
+<?php
+/**
+ * Controller for register form
+ *
+ * @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 WebRegisterController extends BaseController implements Controller {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+
+               // Set part description
+               $this->setObjectDescription("Controller for register form");
+
+               // Create unique ID number
+               $this->generateUniqueId();
+       }
+
+       /**
+        * Creates an instance of this class
+        *
+        * @param       $resolverInstance               An instance of a command resolver class
+        * @return      $controllerInstance             A prepared instance of this class
+        * @todo        Add some filters to this controller
+        */
+       public final static function createWebRegisterController (CommandResolver $resolverInstance) {
+               // Create the instance
+               $controllerInstance = new WebRegisterController();
+
+               // Set the command resolver
+               $controllerInstance->setResolverInstance($resolverInstance);
+
+
+               // Return the prepared instance
+               return $controllerInstance;
+       }
+
+       /**
+        * 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 from the resolver by sending a request instance to the resolver
+               $commandInstance = $this->getResolverInstance()->resolveCommandByRequest($requestInstance);
+
+               // Add more filters by the command
+               $commandInstance->addExtraFilters($this, $requestInstance);
+
+               // Run the pre filters
+               $this->executePreFilters($requestInstance, $responseInstance);
+
+               // This request was valid! :-D
+               $requestInstance->requestIsValid();
+
+               // Execute the command
+               $commandInstance->execute($requestInstance, $responseInstance);
+
+               // Run the pre filters
+               $this->executePostFilters($requestInstance, $responseInstance);
+
+               // Flush the response out
+               $responseInstance->flushBuffer();
+       }
+}
+
+// [EOF]
+?>
index 20817453fe9aa3c461e8ac8a165fdf4321df9d6f..75a1b8ebe8d815c20ac556bbd00324d25bb2292a 100644 (file)
@@ -102,14 +102,14 @@ class BaseControllerResolver extends BaseResolver {
                        if (class_exists($this->getClassName())) {
                                // This class does exist. :-)
                                $isValid = true;
-                       } elseif (($this->getClassName() != "WebDefaultController") && ($this->getClassName() != "WebDefaultNewsController")) {
+                       } elseif (($this->getClassName() != $this->controllerPrefix."DefaultController") && ($this->getClassName() != $this->controllerPrefix."DefaultNewsController")) {
                                // Do we have news?
                                if ($this->getConfigInstance()->readConfig('page_with_news') == $this->getApplicationInstance()->getRequestInstance()->getRequestElement('page')) {
                                        // Yes, display news in home then set default controller with news
-                                       $this->setClassName("WebDefaultNewsController");
+                                       $this->setClassName($this->controllerPrefix."DefaultNewsController");
                                } else {
                                        // No news at "home" page or non-news page
-                                       $this->setClassName("WebDefaultController");
+                                       $this->setClassName($this->controllerPrefix."DefaultController");
                                }
                        } else {
                                // All is tried, give it up here
index 9b982f89db5e095790c504f70e8f0228155bfdf9..b0b75c8be04f726bab7f1a2e4fb5804cf40f8bef 100644 (file)
@@ -122,7 +122,7 @@ class ImageControllerResolver extends BaseControllerResolver implements Controll
         *
         * @param       $controllerName                 A controller name we shall look for
         * @return      $controllerInstance             A loaded controller instance
-        * @throws      InvalidControllerException      Thrown if even the requested
+        * @throws      DefaultControllerException      Thrown if even the default
         *                                                                              controller class is missing (bad!)
         */
        private function loadController ($controllerName) {
@@ -153,7 +153,7 @@ class ImageControllerResolver extends BaseControllerResolver implements Controll
 
                // Is this class loaded?
                if (!class_exists($this->getClassName())) {
-                       // Class not found, so try the default one or throw exception
+                       // Class not found, so or throw an exception
                        throw new InvalidControllerException(array($this, $controllerName), self::EXCEPTION_INVALID_CONTROLLER);
                } // END - if
 
index 46979c7fa17227f1435ca1314ba3c572214b569f..d3189691d361ca3ef2c12820e95d319fc96cddf6 100644 (file)
@@ -359,6 +359,16 @@ class HttpResponse extends BaseFrameworkSystem implements Responseable {
                        $this->addCookie($cookieName, $_COOKIE[$cookieName], false);
                } // END - if
        }
+
+       /**
+        * Getter for default command
+        *
+        * @return      $defaultCommand         Default command for this response
+        */
+       public function getDefaultCommand () {
+               $defaultCommand = $this->getConfigInstance()->readConfig('default_web_command');
+               return $defaultCommand;
+       }
 }
 
 // [EOF]
index 3d16954207dde2a8425aedb034bc3570df9b8f27..065cabaf480dafcdf8e189c4cc40f6898c748199 100644 (file)
@@ -384,6 +384,16 @@ class ImageResponse extends BaseFrameworkSystem implements Responseable {
        public final function setImageInstance (BaseImage $imageInstance) {
                $this->imageInstance = $imageInstance;
        }
+
+       /**
+        * Getter for default command
+        *
+        * @return      $defaultCommand         Default command for this response
+        */
+       public function getDefaultCommand () {
+               $defaultCommand = $this->getConfigInstance()->readConfig('default_image_command');
+               return $defaultCommand;
+       }
 }
 
 // [EOF]
index aa5b2aba19c47a6b0ff84db8a22ce500c495bfe3..bdeec74ac59fe13e35161021e184a4f61460f32f 100644 (file)
@@ -993,9 +993,6 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
                                $eval = sprintf("%s<%%php %s %%>%s", $evalLeft, $evalMiddle, $evalRight);
                        } // END - while
 
-                       // Get length for check if PHP code was found
-                       $evalLength = strlen($eval);
-
                        // Prepare PHP code for eval() command
                        $eval = str_replace(
                                "<%php", "\";",
@@ -1004,12 +1001,8 @@ class BaseTemplateEngine extends BaseFrameworkSystem {
                                )
                        );
 
-                       // Was PHP code found in template?
-                       if (strlen($eval) != $evalLength) {
-                               // Run the constructed command. This will "compile" all variables in
-                               @eval($eval);
-                               //* DEBUG: */ print("<pre>".htmlentities($eval)."</pre>");
-                       } // END - if
+                       // Run the constructed command. This will "compile" all variables in
+                       @eval($eval);
 
                        // Goes something wrong?
                        if (!isset($result)) {