Extra new-line removed...
[core.git] / inc / classes / interfaces / template / class_CompileableTemplate.php
index 483d6e8ef03045d1f0e95b3dacc63bb904b55c21..4844c7c9c9e2c6b5bd2c7798d2f0eecc932696f9 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @author             Roland Haeder <webmaster@ship-simu.org>
  * @version            0.0.0
- * @copyright  Copyright (c) 2007 - 2009 Roland Haeder, this is free software
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
  * @license            GNU GPL 3.0 or any newer version
  * @link               http://www.ship-simu.org
  *
@@ -51,39 +51,136 @@ interface CompileableTemplate extends FrameworkInterface {
        function loadCodeTemplate ($template);
 
        /**
-        * Load a specified email template into the engine
+        * Compile all variables by inserting their respective values
         *
-        * @param       $template       The email template we shall load which is
-        *                                              located in "emails" by default
         * @return      void
         */
-       function loadEmailTemplate ($template);
+       function compileVariables ();
+
 
        /**
-        * Compile all variables by inserting their respective values
+        * Compile all required code/web/email-templates into the current one
         *
         * @return      void
         */
-       function compileVariables ();
+       function compileTemplate ();
 
+       /**
+        * Adds a variable to current group
+        *
+        * @param       $var    Variable to set
+        * @param       $value  Value to store in variable
+        * @return      void
+        */
+       function addGroupVariable ($var, $value);
 
        /**
-        * Compile all required code/web/email-templates into the current one
+        * Removes a given variable
         *
+        * @param       $var    The variable we are looking for
         * @return      void
         */
-       function compileTemplate ();
+       function removeVariable ($var);
+
+       /**
+        * Assign a given congfiguration variable with a value
+        *
+        * @param       $var    The configuration variable we want to assign
+        * @return      void
+        */
+       function assignConfigVariable ($var);
+
+       /**
+        * Compiles configuration place-holders in all variables. This 'walks'
+        * through the variable stack 'general'. It interprets all values from that
+        * variables as configuration entries after compiling them.
+        *
+        * @return      void
+        */
+       function compileConfigInVariables ();
+
+       /**
+        * Assigns the last loaded raw template content with a given variable
+        *
+        * @param       $templateName   Name of the template we want to assign
+        * @param       $variableName   Name of the variable we want to assign
+        * @return      void
+        */
+       function assignTemplateWithVariable ($templateName, $variableName);
+
+       /**
+        * Transfers the content of this template engine to a given response instance
+        *
+        * @param       $responseInstance       An instance of a response class
+        * @return      void
+        */
+       function transferToResponse (Responseable $responseInstance);
 
        /**
-        * Output the compiled template to the outside world. In case of web
-        * templates this would be vaild (X)HTML code. And in case of email
-        * templates this would store a prepared email body inside the template
-        * engine.
+        * Assigns all the application data with template variables
         *
+        * @param       $appInstance    A manageable application instance
         * @return      void
         */
-       function output ();
-} // END - class
+       function assignApplicationData (ManageableApplication $appInstance);
+
+       /**
+        * "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
+        */
+       function compileRawCode ($rawCode, $setMatchAsCode=false);
+
+       /**
+        * Renames a variable in code and in stack
+        *
+        * @param       $oldName        Old name of variable
+        * @param       $newName        New name of variable
+        * @return      void
+        */
+       function renameVariable ($oldName, $newName);
+
+       /**
+        * Renders the given XML content
+        *
+        * @param       $content        Valid XML content or if not set the current loaded raw content
+        * @return      void
+        * @throws      XmlParserException      If an XML error was found
+        */
+       function renderXmlContent ($content = null);
+
+       /**
+        * Enables or disables language support
+        *
+        * @param       $languageSupport        New language support setting
+        * @return      void
+        */
+       function enableLanguageSupport ($languageSupport = true);
+
+       /**
+        * Checks wether language support is enabled
+        *
+        * @return      $languageSupport        Wether language support is enabled or disabled
+        */
+       function isLanguageSupportEnabled ();
+
+       /**
+        * Enables or disables XML compacting
+        *
+        * @param       $xmlCompacting  New XML compacting setting
+        * @return      void
+        */
+       function enableXmlCompacting ($xmlCompacting = true);
+
+       /**
+        * Checks wether XML compacting is enabled
+        *
+        * @return      $xmlCompacting  Wether XML compacting is enabled or disabled
+        */
+       function isXmlCompactingEnabled ();
+}
 
 // [EOF]
 ?>