X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Ffactories%2Fweb%2Fclass_WebNewsFactory.php;h=1dace4e9592cabd166f2636b95e1e96a40325cc6;hp=946f96b406f50866916d41553bd67b2c3b13175e;hb=7940f3ad709afe4ba58012aa835c82cecc9328cc;hpb=4f71b483c3761671ddcc100f2ca0a8ab97a5bc9f diff --git a/inc/classes/main/factories/web/class_WebNewsFactory.php b/inc/classes/main/factories/web/class_WebNewsFactory.php index 946f96b406..1dace4e959 100644 --- a/inc/classes/main/factories/web/class_WebNewsFactory.php +++ b/inc/classes/main/factories/web/class_WebNewsFactory.php @@ -4,7 +4,7 @@ * * @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, this is free software * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @@ -35,12 +35,6 @@ class WebNewsFactory extends BaseFactory { protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); - - // Set part description - $this->setObjectDescription("Factory for webpages with news"); - - // Create unique ID number - $this->createUniqueID(); } /** @@ -51,67 +45,37 @@ class WebNewsFactory extends BaseFactory { * @return $factoryInstance An instance of a WebNewsFactory class */ public final static function createFactoryByRequest (Requestable $requestInstance) { - // Generate the new instance - $factoryInstance = new WebNewsFactory(); + // Set default news reader class + $configEntry = "news_reader_class"; - // Get the element name from configuration - $element = FrameworkConfiguration::getInstance()->readConfig('app_selector_get'); + // Get "page" + $page = $requestInstance->getRequestElement('page'); - // Analyze the request, first get the Uni* application name (short one from URL) - $appName = $requestInstance->getRequestElement($element); + // Is "page" used? + if (!empty($page)) { + // Then add it + $configEntry = sprintf("news_reader_%s_class", $page); - // Initialize some variables - $className = ""; - $className2 = $appName; + // Get "action" + $action = $requestInstance->getRequestElement('action'); - // Then construct the class name - foreach (array("_", "-") as $exp) { - $array = explode($exp, $className2); - foreach ($array as $el) { - $className .= ucfirst(strtolower($el)); - } + // 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 - // Copy it back and clear the class name - $className2 = $className; - $className = ""; - } - - // After all is done, copy it back and add this class' name - $className = $className2 . $factoryInstance->__toString(); + // Get the news reader class name from config + $className = $requestInstance->getConfigInstance()->readConfig($configEntry); // Once we have that name, try to load initialize it - $realFactoryInstance = ObjectFactory::createObjectByName($className); - - // And assign it with the factory - $factoryInstance->setRealFactoryInstance($realFactoryInstance); + $newsInstance = ObjectFactory::createObjectByName($className, array($requestInstance)); - // Remember the request we have used for later usage - $factoryInstance->setRequestInstance($requestInstance); + // Initialize the reader + $newsInstance->initializeReader(); // Return the prepared factory instance - return $factoryInstance; - } - - /** - * Setter for the request instance - * - * @param $requestInstance An instance of a request object - * @return void - */ - public final function setRequestInstance (Requestable $requestInstance) { - $this->requestInstance = $requestInstance; - } - - /** - * Creates a new object instance and returns it - * - * @return $newsInstance An instance of a news object - */ - public function createNewsObject () { - // Ask the real factory class for doing this - $newsInstance = $this->getRealFactoryInstance()->createNewObject($this->requestInstance); - - // And return it return $newsInstance; } }