X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fcommands%2Fweb%2Fclass_WebConfirmCommand.php;h=f64624d846ad11d194fbf36fd247ef28150c3ff9;hp=fed2ab9a556bcb13d10763a4dbbe136bd261e685;hb=d26e71af1e28dc1429823bdec244df6303f9b2fb;hpb=81d28b14f65e35ece6524eee9ae0b74d6c6117d8 diff --git a/inc/classes/main/commands/web/class_WebConfirmCommand.php b/inc/classes/main/commands/web/class_WebConfirmCommand.php index fed2ab9a..f64624d8 100644 --- a/inc/classes/main/commands/web/class_WebConfirmCommand.php +++ b/inc/classes/main/commands/web/class_WebConfirmCommand.php @@ -2,11 +2,11 @@ /** * A command for the confirmation link handling * - * @author Roland Haeder + * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Core Developer Team * @license GNU GPL 3.0 or any newer version - * @link http://www.ship-simu.org + * @link http://www.shipsimu.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 @@ -38,7 +38,7 @@ class WebConfirmCommand extends BaseCommand implements Commandable { * @param $resolverInstance An instance of a command resolver class * @return $commandInstance An instance a prepared command class */ - public final static function createWebConfirmCommand (CommandResolver $resolverInstance) { + public static final function createWebConfirmCommand (CommandResolver $resolverInstance) { // Get new instance $commandInstance = new WebConfirmCommand(); @@ -58,19 +58,19 @@ class WebConfirmCommand extends BaseCommand implements Commandable { */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get the application instance - $appInstance = $this->getResolverInstance()->getApplicationInstance(); + $applicationInstance = $this->getResolverInstance()->getApplicationInstance(); // Prepare a template instance - $templateInstance = $this->prepareTemplateInstance($appInstance); + $templateInstance = $this->prepareTemplateInstance($applicationInstance); // Assign application data with template engine - $templateInstance->assignApplicationData($appInstance); + $templateInstance->assignApplicationData($applicationInstance); // Assign base URL $templateInstance->assignConfigVariable('base_url'); // Load the master template - $masterTemplate = $appInstance->buildMasterTemplateName(); + $masterTemplate = $applicationInstance->buildMasterTemplateName(); // Load header template $templateInstance->loadCodeTemplate('header'); @@ -99,11 +99,26 @@ class WebConfirmCommand extends BaseCommand implements Commandable { $templateInstance->assignVariable('title', $this->getLanguageInstance()->getMessage('page_confirm_link_title')); // Get user instance - $userInstance = Registry::getRegistry()->getInstance('user'); + try { + $userInstance = Registry::getRegistry()->getInstance('user'); + } catch (NullPointerException $e) { + // Not found user, e.g. when the user is somehow invalid + $responseInstance->redirectToConfiguredUrl('web_cmd_user_is_null'); + } // Set username $templateInstance->assignVariable('username', $userInstance->getField(UserDatabaseWrapper::DB_COLUMN_USERNAME)); + // Construct the menu in every command. We could do this in BaseCommand class. But this means + // *every* command has a navigation system and that is want we don't want. + $menuInstance = ObjectFactory::createObjectByConfiguredName('confirm_menu_class', array($applicationInstance)); + + // Render the menu + $menuInstance->renderMenu(); + + // Transfer it to the template engine instance + $menuInstance->transferContentToTemplateEngine($templateInstance); + // ... 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.