Home arrow PHP arrow Page 2 - Template-Based Web Development With patTemplate (part 2)

Scoping It Down - PHP

Got the basics down? Well, here's the advanced course - thisarticle demonstrates some of patTemplate's more sophisticated features,including the ability to dynamically show or hide templates, inheritvariables, use loops and conditional branches, and create dynamic,template-based forms and error handlers.

TABLE OF CONTENTS:
  1. Template-Based Web Development With patTemplate (part 2)
  2. Scoping It Down
  3. Speaking In Tongues
  4. Looping The Loop
  5. Legal Eagles
  6. Hide And Seek
  7. Setting Things Right
  8. Fortune Favours The Brave
  9. Running On Empty
  10. Simple Simon
  11. Brain Dump
  12. A Well-Formed Example
  13. Crash Bang Boom
  14. Endgame
By: Team Melonfire, (c) Melonfire
Rating: starstarstarstarstar / 10
June 19, 2002

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement
You've already seen how to use the AddVar() method to replace template variables with actual values. However, template variables are "local" to a template, and so, the value assigned to a template variable cannot be accessed from other templates (actually, that's a little white lie which I'm going to recant on the next page, but bear with me for a moment).

In the event that you need a variable which is "global", and whose value can be accessed from more than one template, patTemplate offers the addGlobalVar() method call, which makes the value of a template variable available to all other templates.

Take a look at the following templates, all of which use the template variable {IMAGES}:


<!-- app1.tmpl --> <patTemplate:tmpl name="main"> <html> <head> <basefont face="Arial"> </head> <body> <table border="1" cellspacing="0" cellpadding="0"> <patTemplate:link src="top" /> <patTemplate:link src="middle" /> <patTemplate:link src="bottom" /> </table> </body> </html> </patTemplate:tmpl> <patTemplate:tmpl name="top"> <tr> <td colspan="3"><img src="{IMAGES}/top.gif"></td> </tr> </patTemplate:tmpl> <patTemplate:tmpl name="middle"> <tr> <td valign="top"><img src="{IMAGES}/left.gif"></td> <td> <form action="login"> <table border="0" cellspacing="4" cellpadding="0"> <tr> <td><font size="-1">Username:</font></td> <td><input type="text" size="6"></td> </tr> <tr> <td><font size="-1">Password:</font></td> <td><input type="password" size="6"></td> </tr> </table> </form> </td> <td valign="top"><img src="{IMAGES}/right.gif"></td> </tr> </patTemplate:tmpl> <patTemplate:tmpl name="bottom"> <tr> <td colspan="3"><img src="{IMAGES}/bottom.gif"></td> </tr> </patTemplate:tmpl>
Now, rather than making three calls to AddVar() - one for each of the templates referencing the variable {IMAGES} - I can save myself time with a single call to AddGlobalVar(), which makes the value of {IMAGES} available in the global namespace. Here's the script:

<?php // include the class include("include/patTemplate.php"); // initialize an object of the class $template = new patTemplate(); // set template location $template->setBasedir("templates"); // add templates to the template engine $template->readTemplatesFromFile("app1.tmpl"); // add global variable $template->AddGlobalVar("IMAGES", "/app1/images"); // parse and display the template $template->displayParsedTemplate("main"); ?>


 
 
>>> More PHP Articles          >>> More By Team Melonfire, (c) Melonfire
 

blog comments powered by Disqus
   

PHP ARTICLES

- PHP Closures as View Helpers: Lazy-Loading F...
- Using PHP Closures as View Helpers
- PHP File and Operating System Program Execut...
- PHP: Effects of Wrapping Code in Class Const...
- PHP: Building Concrete Validators
- Sanitizing Input with PHP
- Executing Shell Commands with PHP
- Handling File Data with PHP
- File Security and Resources with PHP
- ArrayObject PHP Class Examples
- ArrayObject PHP Class: An Introduction
- Getting File System Data with PHP
- PHP Tools for Working with the File and Oper...
- Working with the File and Operating System w...
- PHP Proxy Patterns: Completing a Blog


© 2003-2012 by Developer Shed. All rights reserved. DS Cluster 10 - Follow our Sitemap

Dev Shed Tutorial Topics: