X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fhelper%2Fweb%2Flinks%2Fclass_WebLinkHelper.php;h=4ea1819b1b40d7a425690948a2566fca79a9d2ff;hp=5dd2ef7e0b436a29c099d621457b5058354655d0;hb=b05d623fe74bb3366ff0229941918ab7f1e08c0b;hpb=49f84a522f0ccac3b70728cd41011a0be0eed8cf diff --git a/inc/classes/main/helper/web/links/class_WebLinkHelper.php b/inc/classes/main/helper/web/links/class_WebLinkHelper.php index 5dd2ef7e..4ea1819b 100644 --- a/inc/classes/main/helper/web/links/class_WebLinkHelper.php +++ b/inc/classes/main/helper/web/links/class_WebLinkHelper.php @@ -4,7 +4,7 @@ * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007 - 2009 Roland Haeder, this is free software + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2011 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @@ -35,12 +35,12 @@ class WebLinkHelper extends BaseWebHelper implements HelpableTemplate { /** * First parameter seperator */ - private $firstParameter = '?'; + const FIRST_PARAMETER_SEPERATOR = '?'; /** * Seperator for more paraemters */ - private $parameterSeperator = '&'; + const EXTRA_PARAMETER_SEPERATOR = '&'; /** * Protected constructor @@ -57,10 +57,11 @@ class WebLinkHelper extends BaseWebHelper implements HelpableTemplate { * * @param $templateInstance An instance of a template engine * @param $linkName Name of the link we shall generate - * @param $linkBase Link base for all generated links + * @param $linkBase Link base for the link. This parameter is deprecated. * @return $helperInstance A prepared instance of this helper + * @throws NoConfigEntryException A deprecated exception at this point */ - public final static function createWebLinkHelper (CompileableTemplate $templateInstance, $linkName, $linkBase) { + public static final function createWebLinkHelper (CompileableTemplate $templateInstance, $linkName, $linkBase = NULL) { // Get new instance $helperInstance = new WebLinkHelper(); @@ -70,6 +71,42 @@ class WebLinkHelper extends BaseWebHelper implements HelpableTemplate { // Set link name $helperInstance->setLinkName($linkName); + // Get the application instance + $applicationInstance = Registry::getRegistry()->getInstance('application'); + + // Get the request instance + $requestInstance = $applicationInstance->getRequestInstance(); + + // Sanity-check on it + if (is_null($requestInstance)) { + // Throw an exception here + throw new NullPointerException($helperInstance, self::EXCEPTION_IS_NULL_POINTER); + } // END - if + + // Get page (this will throw an exception if not set) + $page = $helperInstance->convertDashesToUnderscores($requestInstance->getRequestElement('page')); + + // Construct config entry + $configEntry = $page . '_' . $linkName . '_action_url'; + + // Is the deprecated parameter set? + if (!is_null($linkBase)) { + // Then output a deprecation message + $helperInstance->deprecationWarning('[' . __METHOD__ . ':' . __LINE__ . ']: linkBase is deprecated. Please remove it from your templates and add a config entry ' . $configEntry . ' in your config.php file.'); + } // END - if + + // Determine link base from config now and 'page' request + try { + $newLinkBase = $helperInstance->getConfigInstance()->getConfigEntry($configEntry); + $linkBase = $newLinkBase; + } catch (NoConfigEntryException $e) { + // Is the deprecated linkBase not set? + if (is_null($linkBase)) { + // Then throw again the exception + throw new NoConfigEntryException(array(__CLASS__, ($configEntry)), FrameworkConfiguration::EXCEPTION_CONFIG_ENTRY_WAS_NOT_FOUND); + } // END - if + } + // Set link base $helperInstance->setLinkBase($linkBase); @@ -240,13 +277,13 @@ class WebLinkHelper extends BaseWebHelper implements HelpableTemplate { } // END - if // Default parameter seperator is & - $seperator = $this->parameterSeperator; + $seperator = self::EXTRA_PARAMETER_SEPERATOR; // Is there a question mark in? - $linkArray = explode($this->firstParameter, $this->getLinkBase()); + $linkArray = explode(self::FIRST_PARAMETER_SEPERATOR, $this->getLinkBase()); if (count($linkArray) == 0) { // No question mark - $seperator = $this->firstParameter; + $seperator = self::FIRST_PARAMETER_SEPERATOR; } // END - if // Prepare action