X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fdecorator%2Ftemplate%2Fclass_XmlRewriterTemplateDecorator.php;h=e96a111dfc39f670a996c2ffd812ad9df2089c38;hb=79157fb3c0bd61f8c38ff0f1d2403812592042ff;hp=90126f8fd02a264ad204806ff4de84cf6e1301eb;hpb=43deb129f6e8a12c37f0df17ad0870d3491bdd34;p=core.git diff --git a/inc/classes/main/decorator/template/class_XmlRewriterTemplateDecorator.php b/inc/classes/main/decorator/template/class_XmlRewriterTemplateDecorator.php index 90126f8f..e96a111d 100644 --- a/inc/classes/main/decorator/template/class_XmlRewriterTemplateDecorator.php +++ b/inc/classes/main/decorator/template/class_XmlRewriterTemplateDecorator.php @@ -3,11 +3,11 @@ * A decorator for XML template engines which rewrites the XML for compacting * it. * - * @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 @@ -39,7 +39,7 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT * @param $innerTemplateInstance A CompileableTemplate instance * @return $templateInstance An instance of TemplateEngine */ - public final static function createXmlRewriterTemplateDecorator (CompileableTemplate $innerTemplateInstance) { + public static final function createXmlRewriterTemplateDecorator (CompileableTemplate $innerTemplateInstance) { // Get a new instance $templateInstance = new XmlRewriterTemplateDecorator(); @@ -54,10 +54,10 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT * Settter for variable group * * @param $groupName Name of variable group - * @param $add Wether add this group + * @param $add Whether add this group * @return void */ - public function setVariableGroup ($groupName, $add = true) { + public function setVariableGroup ($groupName, $add = TRUE) { // Call the inner class' method $this->getTemplateInstance()->setVariableGroup($groupName, $add); } @@ -74,17 +74,6 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT $this->getTemplateInstance()->addGroupVariable($var, $value); } - /** - * Setter for base path - * - * @param $templateBasePath The relative base path for all templates - * @return void - */ - public final function setTemplateBasePath ($templateBasePath) { - // Call the inner class' method - $this->getTemplateInstance()->setTemplateBasePath($templateBasePath); - } - /** * Getter for base path * @@ -105,28 +94,6 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT return $this->getTemplateInstance()->getGenericBasePath(); } - /** - * Setter for template extension - * - * @param $templateExtension The file extension for all uncompiled templates - * @return void - */ - public final function setRawTemplateExtension ($templateExtension) { - // Call the inner class' method - $this->getTemplateInstance()->setRawTemplateExtension($templateExtension); - } - - /** - * Setter for code template extension - * - * @param $codeExtension The file extension for all uncompiled templates - * @return void - */ - public final function setCodeTemplateExtension ($codeExtension) { - // Call the inner class' method - $this->getTemplateInstance()->setCodeTemplateExtension($codeExtension); - } - /** * Getter for template extension * @@ -138,24 +105,24 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT } /** - * Getter for code-template extension + * Getter for given variable group * - * @return $codeExtension The file extension for all code templates + * @param $variableGroup Variable group to check + * @return $varStack Found variable group */ - public final function getCodeTemplateExtension () { + public function getVarStack ($variableGroup) { // Call the inner class' method - return $this->getTemplateInstance()->getCodeTemplateExtension(); + return $this->getTemplateInstance()->getVarStack($variableGroup); } /** - * Setter for path of compiled templates + * Getter for code-template extension * - * @param $compileOutputPath The local base path for all compiled templates - * @return void + * @return $codeExtension The file extension for all code templates */ - public final function setCompileOutputPath ($compileOutputPath) { + public final function getCodeTemplateExtension () { // Call the inner class' method - $this->getTemplateInstance()->setCompileOutputPath($compileOutputPath); + return $this->getTemplateInstance()->getCodeTemplateExtension(); } /** @@ -176,7 +143,7 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT * @return void * @throws EmptyVariableException If the variable name is left empty */ - public final function assignVariable ($var, $value) { + public function assignVariable ($var, $value) { // Call the inner class' method $this->getTemplateInstance()->assignVariable($var, $value); } @@ -184,45 +151,36 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT /** * Removes a given variable * - * @param $var The variable we are looking for + * @param $variableName The variable we are looking for + * @param $variableGroup Name of variable group (default: 'general') * @return void */ - public final function removeVariable ($var) { + public function removeVariable ($variableName, $variableGroup = 'general') { // Call the inner class' method - $this->getTemplateInstance()->removeVariable($var); + $this->getTemplateInstance()->removeVariable($variableName, $variableGroup); } /** - * Getter for compiled templates - * - * @return $compiledData Compiled template data - */ - public final function getCompiledData () { - // Call the inner class' method - return $this->getTemplateInstance()->getCompiledData(); - } - - /** - * Load a specified web template into the engine + * Load a specified HTML template into the engine * * @param $template The web template we shall load which is located in * 'html' by default * @return void */ - public function loadWebTemplate ($template) { + public function loadHtmlTemplate ($template) { // Call the inner class' method - $this->getTemplateInstance()->loadWebTemplate($template); + $this->getTemplateInstance()->loadHtmlTemplate($template); } /** * Assign a given congfiguration variable with a value * - * @param $var The configuration variable we want to assign + * @param $variableName The configuration variable we want to assign * @return void */ - public function assignConfigVariable ($var) { + public function assignConfigVariable ($variableName) { // Call the inner class' method - $this->getTemplateInstance()->assignConfigVariable($var); + $this->getTemplateInstance()->assignConfigVariable($variableName); } /** @@ -237,6 +195,19 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT $this->getTemplateInstance()->loadCodeTemplate($template); } + /** + * Load a specified email template into the engine for later compilation + * with other code/web/email templates. + * + * @param $template The email template we shall load which is + * located in "html" by default + * @return void + */ + public function loadEmailTemplate ($template) { + // Call the inner class' method + $this->getTemplateInstance()->loadEmailTemplate($template); + } + /** * Compiles configuration place-holders in all variables. This 'walks' * through the variable stack 'general'. It interprets all values from that @@ -244,7 +215,7 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT * * @return void */ - public final function compileConfigInVariables () { + public function compileConfigInVariables () { // Call the inner class' method $this->getTemplateInstance()->compileConfigInVariables(); } @@ -254,7 +225,7 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT * * @return void */ - public final function compileVariables () { + public function compileVariables () { // Call the inner class' method $this->getTemplateInstance()->compileVariables(); } @@ -295,12 +266,12 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT /** * Assigns all the application data with template variables * - * @param $appInstance A manageable application instance + * @param $applicationInstance A manageable application instance * @return void */ - public function assignApplicationData (ManageableApplication $appInstance) { + public function assignApplicationData (ManageableApplication $applicationInstance) { // Call the inner class' method - $this->getTemplateInstance()->assignApplicationData($appInstance); + $this->getTemplateInstance()->assignApplicationData($applicationInstance); } /** @@ -308,22 +279,32 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT * * @param $rawCode Raw code to compile * @param $setMatchAsCode Sets $match if readVariable() returns empty result - * @return $rawCode Compile code with inserted variable value + * @return $rawCode Compile code with inserted variable value */ - public function compileRawCode ($rawCode, $setMatchAsCode=false) { + public function compileRawCode ($rawCode, $setMatchAsCode = FALSE) { return $this->getTemplateInstance()->compileRawCode($rawCode, $setMatchAsCode); } /** * Getter for variable group array * - * @return $vargroups All variable groups + * @return $variableGroups All variable groups */ public final function getVariableGroups () { // Call the inner class' method return $this->getTemplateInstance()->getVariableGroups(); } + /** + * Getter for raw template data + * + * @return $rawTemplateData The raw data from the template + */ + public function getRawTemplateData () { + // Call the inner class' method + return $this->getTemplateInstance()->getRawTemplateData(); + } + /** * Renames a variable in code and in stack * @@ -343,7 +324,7 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT * @return void * @throws XmlParserException If an XML error was found */ - public function renderXmlContent ($content = null) { + public function renderXmlContent ($content = NULL) { // Call the inner class' method $this->getTemplateInstance()->renderXmlContent($content); } @@ -354,17 +335,17 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT * @param $languageSupport New language support setting * @return void */ - public final function enableLanguageSupport ($languageSupport = true) { + public function enableLanguageSupport ($languageSupport = TRUE) { // Call the inner class' method $this->getTemplateInstance()->enableLanguageSupport($languageSupport); } /** - * Checks wether language support is enabled + * Checks whether language support is enabled * - * @return $languageSupport Wether language support is enabled or disabled + * @return $languageSupport Whether language support is enabled or disabled */ - public final function isLanguageSupportEnabled () { + public function isLanguageSupportEnabled () { // Call the inner class' method return $this->getTemplateInstance()->isLanguageSupportEnabled(); } @@ -375,20 +356,89 @@ class XmlRewriterTemplateDecorator extends BaseDecorator implements CompileableT * @param $xmlCompacting New XML compacting setting * @return void */ - public final function enableXmlCompacting ($xmlCompacting = true) { + public function enableXmlCompacting ($xmlCompacting = TRUE) { // Call the inner class' method $this->getTemplateInstance()->enableXmlCompacting($xmlCompacting); } /** - * Checks wether XML compacting is enabled + * Checks whether XML compacting is enabled * - * @return $xmlCompacting Wether XML compacting is enabled or disabled + * @return $xmlCompacting Whether XML compacting is enabled or disabled */ - public final function isXmlCompactingEnabled () { + public function isXmlCompactingEnabled () { // Call the inner class' method return $this->getTemplateInstance()->isXmlCompactingEnabled(); } + + /** + * Handles the start element of an XML resource + * + * @param $resource XML parser resource (currently ignored) + * @param $element The element we shall handle + * @param $attributes All attributes + * @return void + * @throws InvalidXmlNodeException If an unknown/invalid XML node name was found + */ + public function startElement ($resource, $element, array $attributes) { + // Call the inner class' method + $this->getTemplateInstance()->startElement($resource, $element, $attributes); + } + + /** + * Ends the main or sub node by sending out the gathered data + * + * @param $resource An XML resource pointer (currently ignored) + * @param $nodeName Name of the node we want to finish + * @return void + * @throws XmlNodeMismatchException If current main node mismatches the closing one + */ + public function finishElement ($resource, $nodeName) { + // Call the inner class' method + $this->getTemplateInstance()->finishElement($resource, $nodeName); + } + + /** + * Currently not used + * + * @param $resource XML parser resource (currently ignored) + * @param $characters Characters to handle + * @return void + * @todo Find something useful with this! + */ + public function characterHandler ($resource, $characters) { + // Call the inner class' method but trim the characters before + $this->getTemplateInstance()->characterHandler($resource, trim($characters)); + } + + /** + * Removes all comments, tabs and new-line charcters to compact the content + * + * @param $uncompactedContent The uncompacted content + * @return $compactedContent The compacted content + */ + public function compactContent ($uncompactedContent) { + // Compact it ... + $compactedContent = $this->getTemplateInstance()->compactContent($uncompactedContent); + + // ... and return it + return $compactedContent; + } + + /** + * Assigns a lot variables into the stack of currently loaded template. + * This method should only be used in very rare circumstances, e.g. when + * you have to copy a whole set of variables into the template engine. + * Before you use this method, please make sure you have considered all + * other possiblities. + * + * @param $variables An array with variables to be assigned + * @return void + */ + public function assignMultipleVariables (array $variables) { + // Call the inner class' method but trim the characters before + $this->getTemplateInstance()->assignMultipleVariables($variables); + } } // [EOF]