Opps, forgot this.
[core.git] / inc / classes / interfaces / template / class_CompileableTemplate.php
index 3432251f33ee7cd32d4489f5db06bdc1e904685f..d12656878f85a85f83fffa9095bee60d415406a7 100644 (file)
@@ -2,11 +2,11 @@
 /**
  * An interface for template engines
  *
- * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @author             Roland Haeder <webmaster@shipsimu.org>
  * @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
@@ -25,20 +25,20 @@ interface CompileableTemplate extends FrameworkInterface {
        /**
         * Assign variables for templates
         *
-        * @param       $var    The "variable" we want to assign
-        * @param       $value  The value we want to store in the variable
+        * @param       $variableName   The "variable" we want to assign
+        * @param       $value                  The value we want to store in the variable
         * @return      void
         */
-       function assignVariable ($var, $value);
+       function assignVariable ($variableName, $value);
 
        /**
-        * 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
         */
-       function loadWebTemplate ($template);
+       function loadHtmlTemplate ($template);
 
        /**
         * Load a specified code template into the engine for later compilation
@@ -50,6 +50,16 @@ interface CompileableTemplate extends FrameworkInterface {
         */
        function 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
+        */
+       function loadEmailTemplate ($template);
+
        /**
         * Compile all variables by inserting their respective values
         *
@@ -68,27 +78,28 @@ interface CompileableTemplate extends FrameworkInterface {
        /**
         * Adds a variable to current group
         *
-        * @param       $var    Variable to set
-        * @param       $value  Value to store in variable
+        * @param       $variableName   Variable to set
+        * @param       $value                  Value to store in variable
         * @return      void
         */
-       function addGroupVariable ($var, $value);
+       function addGroupVariable ($variableName, $value);
 
        /**
         * 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
         */
-       function removeVariable ($var);
+       function removeVariable ($variableName, $variableGroup = 'general');
 
        /**
         * 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
         */
-       function assignConfigVariable ($var);
+       function assignConfigVariable ($variableName);
 
        /**
         * Compiles configuration place-holders in all variables. This 'walks'
@@ -119,19 +130,19 @@ interface CompileableTemplate extends FrameworkInterface {
        /**
         * Assigns all the application data with template variables
         *
-        * @param       $appInstance    A manageable application instance
+        * @param       $applicationInstance    A manageable application instance
         * @return      void
         */
-       function assignApplicationData (ManageableApplication $appInstance);
+       function assignApplicationData (ManageableApplication $applicationInstance);
 
        /**
         * "Compiles" a variable by replacing {?var?} with it's content
         *
         * @param       $rawCode                        Raw code to compile
-        * @param       $setMatchAsCode         Sets $match if readVariable() returns empty result
-        * @return      $rawCode        Compile code with inserted variable value
+        * @param       $setMatchAsCode         Sets $match if readVariable() returns empty result (default: FALSE)
+        * @return      $rawCode                        Compile code with inserted variable value
         */
-       function compileRawCode ($rawCode, $setMatchAsCode=false);
+       function compileRawCode ($rawCode, $setMatchAsCode = FALSE);
 
        /**
         * Renames a variable in code and in stack
@@ -149,7 +160,7 @@ interface CompileableTemplate extends FrameworkInterface {
         * @return      void
         * @throws      XmlParserException      If an XML error was found
         */
-       function renderXmlContent ($content = null);
+       function renderXmlContent ($content = NULL);
 
        /**
         * Enables or disables language support
@@ -157,12 +168,12 @@ interface CompileableTemplate extends FrameworkInterface {
         * @param       $languageSupport        New language support setting
         * @return      void
         */
-       function enableLanguageSupport ($languageSupport = true);
+       function enableLanguageSupport ($languageSupport = TRUE);
 
        /**
-        * 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
         */
        function isLanguageSupportEnabled ();
 
@@ -172,16 +183,103 @@ interface CompileableTemplate extends FrameworkInterface {
         * @param       $xmlCompacting  New XML compacting setting
         * @return      void
         */
-       function enableXmlCompacting ($xmlCompacting = true);
+       function enableXmlCompacting ($xmlCompacting = TRUE);
 
        /**
-        * 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
         */
        function isXmlCompactingEnabled ();
+
+       /**
+        * Removes all comments, tabs and new-line charcters to compact the content
+        *
+        * @param       $uncompactedContent             The uncompacted content
+        * @return      $compactedContent               The compacted content
+        */
+       function compactContent ($uncompactedContent);
+
+       /**
+        * Getter for given variable group
+        *
+        * @param       $variableGroup  Variable group to check
+        * @return      $varStack               Found variable group
+        */
+       function getVarStack ($variableGroup);
+
+       /**
+        * Settter for variable group
+        *
+        * @param       $groupName      Name of variable group
+        * @param       $add            Whether add this group
+        * @return      void
+        */
+       function setVariableGroup ($groupName, $add = TRUE);
+
+       /**
+        * Getter for template type
+        *
+        * @return      $templateType   The current template's type
+        */
+       function getTemplateType ();
+
+       /**
+        * Getter for base path
+        *
+        * @return      $templateBasePath       The relative base path for all templates
+        */
+       function getTemplateBasePath ();
+
+       /**
+        * Getter for generic base path
+        *
+        * @return      $templateBasePath       The relative base path for all templates
+        */
+       function getGenericBasePath ();
+
+       /**
+        * Getter for template extension
+        *
+        * @return      $templateExtension      The file extension for all uncompiled
+        *                                                      templates
+        */
+       function getRawTemplateExtension ();
+
+       /**
+        * Getter for code-template extension
+        *
+        * @return      $codeExtension          The file extension for all code-
+        *                                                      templates
+        */
+       function getCodeTemplateExtension ();
+
+       /**
+        * Getter for raw template data
+        *
+        * @return      $rawTemplateData        The raw data from the template
+        */
+       function getRawTemplateData ();
+
+       /**
+        * 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
+        */
+       function assignMultipleVariables (array $variables);
+
+       /**
+        * Getter for variable group array
+        *
+        * @return      $variableGroups All variable groups
+        */
+       function getVariableGroups ();
 }
 
 // [EOF]
 ?>
-