From d4b4116824d9f88a9b057a59796faab123e13631 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sun, 16 Nov 2008 22:41:02 +0000 Subject: [PATCH] page/action depending news reader support added, missing command for goverment rejections (goverment_failed) added --- .gitattributes | 2 + application/ship-simu/config.php | 24 ++++++ .../main/commands/web/goverment/.htaccess | 1 + ...class_WebGovermentFailedStartupCommand.php | 78 +++++++++++++++++++ .../factories/web/class_WebNewsFactory.php | 23 +++++- 5 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 application/ship-simu/main/commands/web/goverment/.htaccess create mode 100644 application/ship-simu/main/commands/web/goverment/class_WebGovermentFailedStartupCommand.php diff --git a/.gitattributes b/.gitattributes index 6ae7adf..ca83c33 100644 --- a/.gitattributes +++ b/.gitattributes @@ -185,6 +185,8 @@ application/ship-simu/main/commands/web/class_WebShipsimuGuestLoginCommand.php - application/ship-simu/main/commands/web/class_WebShipsimuProfileCommand.php -text application/ship-simu/main/commands/web/class_WebShipsimuRegisterCommand.php -text application/ship-simu/main/commands/web/class_WebShipsimuUserLoginCommand.php -text +application/ship-simu/main/commands/web/goverment/.htaccess -text +application/ship-simu/main/commands/web/goverment/class_WebGovermentFailedStartupCommand.php -text application/ship-simu/main/companies/.htaccess -text application/ship-simu/main/companies/class_ShippingCompany.php -text application/ship-simu/main/constructions/.htaccess -text diff --git a/application/ship-simu/config.php b/application/ship-simu/config.php index 72c01ec..a84900c 100644 --- a/application/ship-simu/config.php +++ b/application/ship-simu/config.php @@ -133,6 +133,30 @@ $cfg->setConfigEntry('login_default_action', "welcome"); // CFG: NEWS-READER-CLASS $cfg->setConfigEntry('news_reader_class', "DefaultNewsReader"); +// CFG: NEWS-READER-LOGIN-AREA-CLASS +$cfg->setConfigEntry('news_reader_login_area_class', "DefaultNewsReader"); + +// CFG: NEWS-READER-LOGIN-AREA-LOGOUT-CLASS +$cfg->setConfigEntry('news_reader_login_area_logout_class', "DefaultNewsReader"); + +// CFG: NEWS-READER-LOGIN-AREA-COMPANY-CLASS +$cfg->setConfigEntry('news_reader_login_area_company_class', "DefaultNewsReader"); + +// CFG: NEWS-READER-LOGIN-AREA-REFILL-CLASS +$cfg->setConfigEntry('news_reader_login_area_refill_class', "DefaultNewsReader"); + +// CFG: NEWS-READER-LOGIN-AREA-PROFILE-CLASS +$cfg->setConfigEntry('news_reader_login_area_profile_class', "DefaultNewsReader"); + +// CFG: NEWS-READER-LOGIN-AREA-GOVERMENT-TRAINING-CLASS +$cfg->setConfigEntry('news_reader_login_area_goverment_training_class', "DefaultNewsReader"); + +// CFG: NEWS-READER-LOGIN-AREA-GOVERMENT-STARTUP-HELP-CLASS +$cfg->setConfigEntry('news_reader_login_area_goverment_startup_help_class', "DefaultNewsReader"); + +// CFG: NEWS-READER-GOVERMENT-FAILED-CLASS +$cfg->setConfigEntry('news_reader_goverment_failed_class', "DefaultNewsReader"); + // CFG: NEWS-DOWNLOAD-FILTER $cfg->setConfigEntry('news_download_filter', "NewsDownloadFilter"); diff --git a/application/ship-simu/main/commands/web/goverment/.htaccess b/application/ship-simu/main/commands/web/goverment/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/ship-simu/main/commands/web/goverment/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/ship-simu/main/commands/web/goverment/class_WebGovermentFailedStartupCommand.php b/application/ship-simu/main/commands/web/goverment/class_WebGovermentFailedStartupCommand.php new file mode 100644 index 0000000..3f4ec94 --- /dev/null +++ b/application/ship-simu/main/commands/web/goverment/class_WebGovermentFailedStartupCommand.php @@ -0,0 +1,78 @@ + + * @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 . + */ +class WebGovermentFailedStartupCommand extends BaseCommand implements Commandable { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this class + * + * @param $resolverInstance An instance of a command resolver class + * @return $commandInstance An instance a prepared command class + */ + public final static function createWebGovermentFailedStartupCommand (CommandResolver $resolverInstance) { + // Get new instance + $commandInstance = new WebGovermentFailedStartupCommand(); + + // Set the application instance + $commandInstance->setResolverInstance($resolverInstance); + + // Return the prepared instance + return $commandInstance; + } + + /** + * Executes the given command with given request and response objects + * + * @param $requestInstance An instance of a class with an Requestable interface + * @param $responseInstance An instance of a class with an Responseable interface + * @return void + * @todo 0% done + */ + public function execute (Requestable $requestInstance, Responseable $responseInstance) { + $this->partialStub("Unfinished method."); + } + + /** + * Adds extra filters to the given controller instance + * + * @param $controllerInstance A controller instance + * @param $requestInstance An instance of a class with an Requestable interface + * @return void + */ + public function addExtraFilters (Controller $controllerInstance, Requestable $requestInstance) { + // Empty for now + } +} + +// [EOF] +?> diff --git a/inc/classes/main/factories/web/class_WebNewsFactory.php b/inc/classes/main/factories/web/class_WebNewsFactory.php index d7307ec..1dace4e 100644 --- a/inc/classes/main/factories/web/class_WebNewsFactory.php +++ b/inc/classes/main/factories/web/class_WebNewsFactory.php @@ -45,8 +45,29 @@ class WebNewsFactory extends BaseFactory { * @return $factoryInstance An instance of a WebNewsFactory class */ public final static function createFactoryByRequest (Requestable $requestInstance) { + // Set default news reader class + $configEntry = "news_reader_class"; + + // Get "page" + $page = $requestInstance->getRequestElement('page'); + + // Is "page" used? + if (!empty($page)) { + // Then add it + $configEntry = sprintf("news_reader_%s_class", $page); + + // Get "action" + $action = $requestInstance->getRequestElement('action'); + + // Is it also there? + if (!empty($action)) { + // Then use both for config entry + $configEntry = sprintf("news_reader_%s_%s_class", $page, $action); + } // END - if + } // END - if + // Get the news reader class name from config - $className = $requestInstance->getConfigInstance()->readConfig('news_reader_class'); + $className = $requestInstance->getConfigInstance()->readConfig($configEntry); // Once we have that name, try to load initialize it $newsInstance = ObjectFactory::createObjectByName($className, array($requestInstance)); -- 2.39.2