X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fresponse%2Fclass_BaseResponse.php;h=0becb5820df511bc9dff1c1a74a974b4d4b32f8d;hp=2533d7c95582f893b60de635b752141f1d604db8;hb=602a3281da3bcf4ab4da2d8571b921e61e167b5b;hpb=ac948286448f4e0d4ef71d2dc8daaac53e8c902b diff --git a/inc/classes/main/response/class_BaseResponse.php b/inc/classes/main/response/class_BaseResponse.php index 2533d7c9..0becb582 100644 --- a/inc/classes/main/response/class_BaseResponse.php +++ b/inc/classes/main/response/class_BaseResponse.php @@ -2,11 +2,11 @@ /** * A generic request class * - * @author Roland Haeder + * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team + * @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 @@ -51,9 +51,9 @@ class BaseResponse extends BaseFrameworkSystem { private $templateInstance = NULL; /** - * Fatal resolved messages from filters and so on + * Response type */ - private $fatalMessages = array(); + private $responseType = 'invalid'; /** * Protected constructor @@ -116,6 +116,26 @@ class BaseResponse extends BaseFrameworkSystem { $this->responseBody = $output; } + /** + * Setter for response type + * + * @param $responseType Response type + * @return void + */ + protected final function setResponseType ($responseType) { + $this->responseType = $responseType; + } + + /** + * Getter for response type + * + * @param $responseType Response type + * @return void + */ + public final function getResponseType () { + return $this->responseType; + } + /** * Adds a fatal message id to the response. The added messages can then be * processed and outputed to the world @@ -125,7 +145,7 @@ class BaseResponse extends BaseFrameworkSystem { */ public final function addFatalMessage ($messageId) { // Adds the resolved message id to the fatal message list - array_push($this->fatalMessages, $this->getApplicationInstance()->getLanguageInstance()->getMessage($messageId)); + $this->addFatalMessagePlain($this->getApplicationInstance()->getLanguageInstance()->getMessage($messageId)); } /** @@ -136,7 +156,7 @@ class BaseResponse extends BaseFrameworkSystem { */ public final function addFatalMessagePlain ($message) { // Adds the resolved message id to the fatal message list - array_push($this->fatalMessages, $message); + $this->pushValueToGenericArrayKey('fatal_messages', 'generic', 'message', $message); } /** @@ -148,8 +168,8 @@ class BaseResponse extends BaseFrameworkSystem { * @throws ResponseHeadersAlreadySentException Thrown if headers are * already sent */ - public function flushBuffer ($force = false) { - if ((headers_sent()) && ($force === false)) { + public function flushBuffer ($force = FALSE) { + if ((headers_sent()) && ($force === FALSE)) { // Headers are already sent! throw new ResponseHeadersAlreadySentException($this, self::EXCEPTION_HEADERS_ALREADY_SENT); } elseif (!headers_sent()) { @@ -186,12 +206,12 @@ class BaseResponse extends BaseFrameworkSystem { } // Are there some error messages? - if (count($this->fatalMessages) == 0) { + if ((!$this->isValidGenericArrayKey('fatal_messages', 'generic', 'message')) || ($this->countGenericArrayElements('fatal_messages', 'generic', 'message') == 0)) { // Flush the output to the world $this->getWebOutputInstance()->output($this->responseBody); } else { // Display all error messages - $this->getApplicationInstance()->handleFatalMessages($this->fatalMessages); + $this->getApplicationInstance()->handleFatalMessages($this->getGenericArrayKey('fatal_messages', 'generic', 'message')); // Send the error messages out to the world $this->getWebOutputInstance()->output($this->responseBody); @@ -201,6 +221,28 @@ class BaseResponse extends BaseFrameworkSystem { $this->setResponseBody(''); $this->resetResponseHeaders(); } + + /** + * "Getter" for default command + * + * @return $defaultCommand Default command for this response + */ + public function determineDefaultCommand () { + // Get application instance + $applicationInstance = Registry::getRegistry()->getInstance('app'); + + // Generate config key + $configKey = sprintf('default_%s_%s_command', + $applicationInstance->getAppShortName(), + $this->getResponseType() + ); + + // Get default command response + $defaultCommand = $this->getConfigInstance()->getConfigEntry($configKey); + + // Return it + return $defaultCommand; + } } // [EOF]