$wrapperInstance->doUpdateByResult($this->getResultInstance());
} // END - if
}
+
+ /**
+ * Outputs a deprecation warning to the developer.
+ *
+ * @param $message The message we shall output to the developer
+ * @return void
+ * @todo Write a logging mechanism for productive mode
+ */
+ public function deprecationWarning ($message) {
+ // Is developer mode active?
+ if (defined('DEVELOPER')) {
+ // Debug instance is there?
+ if (!is_null($this->getDebugInstance())) {
+ // Output stub message
+ $this->debugOutput($message);
+ } else {
+ // Trigger an error
+ trigger_error($message."<br />\n");
+ }
+ } else {
+ // @TODO Finish this part!
+ $this->partialStub('Developer mode inactive. Message:' . $message);
+ }
+ }
}
// [EOF]
*
* @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 NullPointerException Thrown if an instance is null
+ * @throws ConfigEntryNotFoundException A deprecated exception at this point
*/
- public final static function createWebLinkHelper (CompileableTemplate $templateInstance, $linkName, $linkBase) {
+ public final static function createWebLinkHelper (CompileableTemplate $templateInstance, $linkName, $linkBase = null) {
// Get new instance
$helperInstance = new WebLinkHelper();
// Set link name
$helperInstance->setLinkName($linkName);
+ // Get the application instance
+ $applicationInstance = Registry::getRegistry()->getInstance('application');
+
+ // Sanity-check on it
+ if (is_null($applicationInstance)) {
+ // Throw an exception here
+ throw new NullPointerException($helperInstance, self::EXCEPTION_IS_NULL_POINTER);
+ } // END - if
+
+ // 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;
+
+ // Is the deprecated parameter set?
+ if (!is_null($linkBase)) {
+ // Then output a deprecation message
+ $helperInstance->deprecationWarning(__METHOD__ . ': 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()->readConfig($configEntry);
+ $linkBase = $newLinkBase;
+ } catch (ConfigEntryNotFoundException $e) {
+ // Is the deprecated linkBase not set?
+ if (is_null($linkBase)) {
+ // Then throw again the exception
+ throw new ConfigEntryNotFoundException(array(__CLASS__, ($configEntry)), self::EXCEPTION_CONFIG_ENTRY_WAS_NOT_FOUND);
+ } // END - if
+ }
+
// Set link base
$helperInstance->setLinkBase($linkBase);
} // END - if
// Construct the FQFN for the template by honoring the current language
- $fqfn = sprintf("%s%s/%s/%s%s",
+ $fqfn = sprintf("%s%s/%s%s/%s/%s%s",
+ $this->getConfigInstance()->readConfig('application_path'),
+ Registry::getRegistry()->getInstance('application')->getAppShortName(),
$this->getBasePath(),
$this->getLanguageInstance()->getLanguageCode(),
$this->getTemplateType(),
@eval($eval);
// Goes something wrong?
- if (!isset($result)) {
+ if ((!isset($result)) || (empty($result))) {
// Output eval command
$this->debugOutput(sprintf("Failed eval() code: <pre>%s</pre>", $this->markupCode($eval, true)), true);