X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fresponse%2Fclass_BaseResponse.php;h=0becb5820df511bc9dff1c1a74a974b4d4b32f8d;hp=c7990d7f08315223f3671724473508e2040cff6b;hb=602a3281da3bcf4ab4da2d8571b921e61e167b5b;hpb=b9c18d6c24e3be4393bf41005aa4e428a0ea3218 diff --git a/inc/classes/main/response/class_BaseResponse.php b/inc/classes/main/response/class_BaseResponse.php index c7990d7f..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 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 @@ -28,7 +28,7 @@ class BaseResponse extends BaseFrameworkSystem { /** * Response status */ - private $responseStatus = "200 OK"; + private $responseStatus = '200 OK'; /** * Array with all headers @@ -48,12 +48,12 @@ class BaseResponse extends BaseFrameworkSystem { /** * Instance of the template engine */ - private $templateInstance = null; + private $templateInstance = NULL; /** - * Fatal resolved messages from filters and so on + * Response type */ - private $fatalMessages = array(); + private $responseType = 'invalid'; /** * Protected constructor @@ -64,10 +64,6 @@ class BaseResponse extends BaseFrameworkSystem { protected function __construct ($className) { // Call parent constructor parent::__construct($className); - - // Clean up a little - $this->removeNumberFormaters(); - $this->removeSystemArray(); } /** @@ -120,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 @@ -129,7 +145,7 @@ class BaseResponse extends BaseFrameworkSystem { */ public final function addFatalMessage ($messageId) { // Adds the resolved message id to the fatal message list - $this->fatalMessages[] = $this->getApplicationInstance()->getLanguageInstance()->getMessage($messageId); + $this->addFatalMessagePlain($this->getApplicationInstance()->getLanguageInstance()->getMessage($messageId)); } /** @@ -140,25 +156,25 @@ class BaseResponse extends BaseFrameworkSystem { */ public final function addFatalMessagePlain ($message) { // Adds the resolved message id to the fatal message list - $this->fatalMessages[] = $message; + $this->pushValueToGenericArrayKey('fatal_messages', 'generic', 'message', $message); } /** * Flushs the cached HTTP response to the outer world * - * @param $force Wether we shall force the output or abort if headers are + * @param $force Whether we shall force the output or abort if headers are * already sent with an exception * @return void * @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()) { // Send headers out - header("HTTP/1.1 {$this->responseStatus}"); + header('HTTP/1.1 ' . $this->responseStatus); // Used later $now = gmdate('D, d M Y H:i:s') . ' GMT'; @@ -174,15 +190,15 @@ class BaseResponse extends BaseFrameworkSystem { // Send all headers foreach ($this->responseHeaders as $name => $value) { - header("{$name}: {$value}"); - //* DEBUG: */ echo "{$name}: {$value}
\n"; + header($name . ': ' . $value); + //* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('name=' . $name . ',value=' . $value); } // END - foreach // Send cookies out? if (count($this->cookies) > 0) { // Send all cookies $cookieString = implode(' ', $this->cookies); - header("Set-Cookie: {$cookieString}"); + header('Set-Cookie: ' . $cookieString); // Remove them all $this->cookies = array(); @@ -190,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); @@ -205,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]