]> git.mxchange.org Git - shipsimu.git/blobdiff - inc/classes/main/commands/web/class_WebLoginAreaCommand.php
A lot rewrites and fixes for weak redirect methods
[shipsimu.git] / inc / classes / main / commands / web / class_WebLoginAreaCommand.php
index 0848cf5828b53653fbcd114118900552273716d3..749de17491a02c983d10bdf7ae17423844da1b83 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @author             Roland Haeder <webmaster@ship-simu.org>
  * @version            0.0.0
- * @copyright  Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @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
  *
@@ -35,15 +35,6 @@ class WebLoginAreaCommand extends BaseCommand implements Commandable {
        protected function __construct () {
                // Call parent constructor
                parent::__construct(__CLASS__);
-
-               // Set special description
-               $this->setObjectDescription("Command for the &quot;login area&quot; page");
-
-               // Create unique ID number
-               $this->generateUniqueId();
-
-               // Clean up a little
-               $this->removeSystemArray();
        }
 
        /**
@@ -96,7 +87,7 @@ class WebLoginAreaCommand extends BaseCommand implements Commandable {
                $appInstance = $this->getResolverInstance()->getApplicationInstance();
 
                // Prepare a template instance
-               $templateInstance = $this->prepareTemplateEngine($appInstance);
+               $templateInstance = $this->prepareTemplateInstance($appInstance);
 
                // Assign base URL
                $templateInstance->assignConfigVariable('base_url');
@@ -108,50 +99,50 @@ class WebLoginAreaCommand extends BaseCommand implements Commandable {
                $masterTemplate = $appInstance->getMasterTemplate();
 
                // Load header template
-               $templateInstance->loadCodeTemplate("header");
+               $templateInstance->loadCodeTemplate('header');
 
                // Compile and assign it with a variable
                $templateInstance->compileTemplate();
-               $templateInstance->assignTemplateWithVariable("header", "header");
+               $templateInstance->assignTemplateWithVariable('header', 'header');
 
                // Load footer template
-               $templateInstance->loadCodeTemplate("footer");
+               $templateInstance->loadCodeTemplate('footer');
 
                // Compile and assign it with a variable
                $templateInstance->compileTemplate();
-               $templateInstance->assignTemplateWithVariable("footer", "footer");
+               $templateInstance->assignTemplateWithVariable('footer', 'footer');
 
                // Load the matching template
-               $templateInstance->loadCodeTemplate($this->actionName);
+               $templateInstance->loadCodeTemplate('action_' . $this->actionName);
 
                // Assign the template with the master template as a content ... ;)
                $templateInstance->compileTemplate();
-               $templateInstance->assignTemplateWithVariable($this->actionName, "login_content");
+               $templateInstance->assignTemplateWithVariable('action_' . $this->actionName, 'login_content');
 
                // Load main template
-               $templateInstance->loadCodeTemplate("login_main");
+               $templateInstance->loadCodeTemplate('login_main');
 
                // Assign the main template with the master template as a content ... ;)
                $templateInstance->compileTemplate();
-               $templateInstance->assignTemplateWithVariable("login_main", "content");
+               $templateInstance->assignTemplateWithVariable('login_main', 'content');
 
                // Load the master template
                $templateInstance->loadCodeTemplate($masterTemplate);
 
                // Set title
-               $templateInstance->assignVariable('title', $this->getLanguageInstance()->getMessage($this->actionName."_title"));
+               $templateInstance->assignVariable('title', $this->getLanguageInstance()->getMessage($this->actionName . '_title'));
 
                // ... and all variables. This should be merged together in a pattern
                // to make things easier. A cache mechanism should be added between
                // these two calls to cache compiled templates.
                $templateInstance->compileVariables();
 
-               // Get the content back from the template engine and put it in the response class
+               // Get the content back from the template engine and put it in response class
                $templateInstance->transferToResponse($responseInstance);
        }
 
        /**
-        * Adds extra filters to the given controller instance
+        * Adds extra filters to the given controller instance. An corresponding action class must now exist!
         *
         * @param       $controllerInstance             A controller instance
         * @param       $requestInstance                An instance of a class with an Requestable interface
@@ -161,8 +152,17 @@ class WebLoginAreaCommand extends BaseCommand implements Commandable {
                // Default is no action
                $actionInstance = null;
 
+               // Get registry
+               $registryInstance = Registry::getRegistry();
+
+               // Get our application instance from the registry
+               $appInstance = $registryInstance->getInstance('application');
+
                // Default action is the one from configuration
-               $this->actionName = sprintf("login_%s", $this->getConfigInstance()->readConfig('login_default_action'));
+               $this->actionName = sprintf("%s_login_%s",
+                       str_replace("-", "_", $appInstance->getAppShortName()),
+                       $this->getConfigInstance()->readConfig('login_default_action')
+               );
 
                // Get "action" from request
                $actReq = $requestInstance->getRequestElement('action');
@@ -170,28 +170,26 @@ class WebLoginAreaCommand extends BaseCommand implements Commandable {
                // Do we have a "action" parameter set?
                if ((is_string($actReq)) && (!empty($actReq))) {
                        // Then use it with prefix
-                       $this->actionName = sprintf("login_%s", $actReq);
+                       $this->actionName = sprintf("%s_login_%s",
+                               str_replace("-", "_", $appInstance->getAppShortName()),
+                               $actReq
+                       );
                } // END - if
 
                // Get application instance
                $applicationInstance = $this->getResolverInstance()->getApplicationInstance();
 
-               // Try to get an action resolver for the given action
-               try {
-                       // Get a resolver
-                       $actionResolver = WebActionResolver::createWebActionResolver($this->actionName, $applicationInstance);
+               // Get a resolver
+               $actionResolver = WebActionResolver::createWebActionResolver($this->actionName, $applicationInstance);
 
-                       // Resolve the action
-                       $actionInstance = $actionResolver->resolveAction();
+               // Resolve the action
+               $actionInstance = $actionResolver->resolveAction();
 
-                       // Add more action-specific filters
-                       $actionInstance->addExtraFilters($controllerInstance, $requestInstance);
+               // Add more action-specific filters
+               $actionInstance->addExtraFilters($controllerInstance, $requestInstance);
 
-                       // Remember this action in registry
-                       Registry::getRegistry()->addInstance('action', $actionInstance);
-               } catch (InvalidActionException $e) {
-                       // Silently ignored because no special action was found
-               }
+               // Remember this action in registry
+               Registry::getRegistry()->addInstance('action', $actionInstance);
        }
 }