[cvs] [Wiki] changed: HordeTemplate

Jan Schneider jan at horde.org
Thu Jun 2 02:08:37 PDT 2005


jan  Thu, 02 Jun 2005 02:08:37 -0700

Modified page: http://wiki.horde.org/HordeTemplate
New Revision:  1.2

@@ -1,104 +1,108 @@
+These are just some basic examples on using Horde Templates... hopefully so others won't have to go picking the code apart to figure it out, some are obvious, some less so.
 
-these are just some basic examples on using Horde Templates... hopefully so
-others won't have to go picking the code apart to figure it out, some are
-obvious, some less so.
-
-The absolute minimum to get in the required functions for Horde_Template to
-work:
+The absolute minimum to get in the required functions for Horde_Template to work:
 
+<code type="php">
    require "Horde/String.php";
    require "Horde/Util.php";
    require "Horde/Template.php";
+</code>
 
-(You're probably better off installing Horde's base.php or core.php, although
- it will load the whole Horde core, rather than just the templating engine,
- hence the above gives less of an overhead)
+(You're probably better off installing Horde's base.php or core.php, although it will load the whole Horde core, rather than just the templating engine, hence the above gives less of an overhead)
 
 Having set up the tamplate object:
+<code type="php">
   $template = &new Horde_Template();
+</code>
 
-If you want to fetch templates from a different base directory, then specify
-an argument to the "new" call with that base directory.
+If you want to fetch templates from a different base directory, then specify an argument to the "new" call with that base directory.
 
 You can proceed with feeding variables into the object.
 
-Once you're done feeding in variables, you need to get your PHP code to output
-the resulting HTML, which you can do with:
+Once you're done feeding in variables, you need to get your PHP code to output the resulting HTML, which you can do with:
 
+<code type="php">
 echo $template->fetch($template_file);
+</code>
 
 If you don't do that, you'll not see any output, except maybe errors ;-)
 
-NB. If you make the PHP script do any output of its own, outside of the
-Horde_Template system, it will appear in the output positioned relative to
-the position of the above fetch() call in the code.
+NB. If you make the PHP script do any output of its own, outside of the Horde_Template system, it will appear in the output positioned relative to the position of the above fetch() call in the code.
+
+
++++ SIMPLE VARIABLES
 
-SIMPLE VARIABLES
-----
 PHP:
+<code type="php">
 //In the php you have a variable like:
     $foo = 'bar';
 //Set it into your template using:
     $template->set('foo', $foo);
+</code>
 
 TEMPLATE:
+<code>
 <html><body>
   we have a foo value of <tag:foo />
 </body></html>
-** Note: the <tag:... /> has to be exactly like above, with one space between
-the foo and />. Any other variation and the value will not be parsed. Unparsed
-tags are left in the output in their original form, which shouldn't cause any
-visual distortion of the end result, as it's parsed by browsers as a HTML tag,
-but ignored because the browser doesn't know what it means.
+</code>
+** Note:** the <tag:... /> has to be exactly like above, with one space between the foo and />. Any other variation and the value will not be parsed. Unparsed tags  are left in the output in their original form, which shouldn't cause any visual distortion of the end result, as it's parsed by browsers as a HTML tag, but ignored because the browser doesn't know what it means.
 
 
-ARRAYS
-----
++++ ARRAYS
+
 PHP:
+<code type="php">
 //our php now builds an array to pass to the templates
     $foo = array('apples', 'pears', 'peaches');
 //and it is set into the template object
     $template->set('foo', $foo);
+</code>
 
 TEMPLATE:
+<code>
 <html><body>
   we have many foo values:
   <loop:foo>
     <li><tag:foo />
   </loop:foo>
 </body></html>
+</code>
 
-** Note: use an loop construct to go through the foo tag and pull out all the
-values of foo. Again the syntax has to be precise or the tags will not get parsed.
+** Note:** use an loop construct to go through the foo tag and pull out all the values of foo. Again the syntax has to be precise or the tags will not get parsed.
+
+
++++ ARRAY WITH KEYS
 
-ARRAY WITH KEYS
-----
 PHP:
+<code type="php">
 //We now have an array with keys to pass
 $foo = array('city'     => 'paris',
              'country'  => 'france',
              'language' => 'french'
              );
 //Again it is set the same way into the template object
     $template->set('foo', $foo);
+</code>
 
 TEMPLATE:
+<code>
 <html><body>
   we have many foo values:
   <loop:foo>
-    <li><tag:foo.city />, located in <tag:foo.country /> where <tag:foo.language
-/> is spoken
+    <li><tag:foo.city />, located in <tag:foo.country /> where <tag:foo.language /> is spoken
   </loop:foo>
 </body></html>
+</code>
 
-** Note: you need to have a loop array to parse through variables with keys.
-using the tags <tag:foo.somekey /> on their own without the loop tag will not work.
+** Note:** you need to have a loop array to parse through variables with keys. using the tags <tag:foo.somekey /> on their own without the loop tag will not work.
 
 
-IF CONDITIONS
-----
++++ IF CONDITIONS
+
 PHP:
+<code type="php">
 //Set up the php variable, this checks if a user has been authorised
 //the checkUserAuth() function returning a true or false
     $is_auth = checkUserAuth();
 //Set the 'if' variable into the template object, note the third parameter
@@ -107,31 +111,34 @@
 //will be checked. It has nothing to do with the actual value of the variable.
     $template->set('is_auth', $is_auth, true);
 //And we set up another variable for inclusion inside the if statement
     $template->set('visitors', countvisits());
+</code>
 
 TEMPLATE:
+<code>
 <html><body>
   welcome to our site...<br />
   <if:is_auth>
     today's site statistics are: <tag:visitors /> visitors!
   </if:is_auth>
 </body></html>
+</code>
 
+** Note:** as always the syntax has to be precise, and the part within the <if:..></if:..> block will be shown only if $is_auth in the php sets the tag value of is_auth to true.
 
-** Note: as always the syntax has to be precise, and the part within the
-<if:..></if:..> block will be shown only if $is_auth in the php sets the tag
-value of is_auth to true.
 
++++ IF-ELSE CONDITIONS
 
-IF-ELSE CONDITIONS
-----
 PHP:
+<code type="php">
     // the first true is the values set to the variable
     // the second true indicates it is going to be used in an if statement.
     $template->set('somename', true, true);
+</code>
 
 TEMPLATE:
+<code>
 <html><body>
   welcome to our site...<br />
   <if:somename>
     somename is true
@@ -141,24 +148,25 @@
   </else:somename>
 
   </if:somename>
 </body></html>
+</code>
 
+** Note:** the <else> statement must be enclosed in the <if> block.
 
-** Note: the <else> statement must be enclosed in the <if> block.
 
-
-
-IF CONDITIONS AND ARRAYS
-----
++++ IF CONDITIONS AND ARRAYS
 
 PHP:
+<code type="php">
     // the first true is the values set to the variable
     // the second true indicates it is going to be used in an if statement.
     $users = array('john', 'peter', 'mary');
     $template->set('users', $users, true);
+</code>
 
 TEMPLATE:
+<code>
 <html><body>
   welcome to our site...<br />
   <if:users>
     Current users:<br/>
@@ -172,27 +180,29 @@
   </else:users>
 
   </if:users>
 </body></html>
+</code>
 
+** Note:** the <else> statement must be enclosed in the <if> block.
 
-** Note: the <else> statement must be enclosed in the <if> block.
 
-
-NESTED LOOPS AND NESTED TAGS
-----
++++ NESTED LOOPS AND NESTED TAGS
 
 PHP:
+<code type="php">
 $categories = array('fruit', 'veggie', 'thing');
 $subcats = array('fruit' => array('apple', 'pear'),
                  'veggie' => array('tomato', 'potato', 'carrot', 'onion'),
                  'thing' => array('spoon', 'paperbag', 'tool'));
 $template->set('categories', $categories);
 foreach ($categories as $c) {
     $template->set('subcat_' . $c, $subcats[$c]);
 }
+</code>
 
 TEMPLATE:
+<code>
 <table>
 <loop:categories>
 <tr>
   <td>
@@ -206,26 +216,29 @@
   </td>
 </tr>
 </loop:categories>
 </table>
+</code>
 
 OUTPUT:
-I have a fruit. What could it be?    * apple
-                                     * pear
+I have a fruit. What could it be?
+* apple
+* pear
+
+I have a veggie. What could it be?
+* tomato
+* potato
+* carrot
+* onion
 
-I have a veggie. What could it be?   * tomato
-                                     * potato
-                                     * carrot
-                                     * onion
+I have a thing. What could it be?
+* spoon
+* paperbag
+* tool
 
-I have a thing. What could it be?    * spoon
-                                     * paperbag
-                                     * tool
 
-BACKWARD COMPATIBILITY
----
++++ BACKWARD COMPATIBILITY
 
-It is possible to make Horde_Template backward compatible to some extent with
-other engines, eg. class.FastTemplate.php by modifying the functions getTag
+It is possible to make Horde_Template backward compatible to some extent with other engines, eg. class.!FastTemplate.php by modifying the functions getTag
 and getTags with different tag patterns.
 
 This is left as an exercise for the reader.


More information about the cvs mailing list