This is an old revision of the document!
ArKadia template system is a template engine for PHP, facilitating the separation of presentation (HTML/CSS) from application logic. This implies that PHP code is application logic, and is separated from the presentation.
The ArKadia template system design was largely driven by these goals:
Template is simply a text file. It can generate any text-based format (HTML, XML, CSV, etc.). A template contains variables, which get replaced with values when the template is evaluated, and tags, which control the logic of the template. Below is a minimal template that illustrates a few basics. Each element will be explained later in this document.:
<#doctype> <html> <head> <#meta_title> <#meta_description> </head> <body> <#frame name="topframe"> </body> </html>
Why use a text-based template instead of an XML-based one (like Zope's TAL)? We wanted ArKadia's template language to be usable for more than just XML/HTML templates. We use it for emails, JavaScript and CSV. You can use the template language for any text-based format.
Variables look like this: <#variable>. When the template engine encounters a variable, it evaluates that variable and replaces it with the result. Variable names consist of any combination of alphanumeric characters and the underscore (“_”). The dot (”.”) also appears in variable sections, although that has a special meaning, as indicated below. Importantly, you cannot have spaces or punctuation characters in variable names.
Use a dot (.) to access attributes of a variable. <#section.title> will be replaced with the title attribute of the section object. If you use a variable that doesn't exist, the template system will insert '' (the empty string) by default.
You can modify variables for display by using filters. Filters look like this: <#name lowercase=“1”> This displays the value of the <#name> variable after being filtered through the lower filter, which converts text to lowercase. To give you a taste of what's available, here are some of the more commonly used template filters:
If a variable is false or empty, use given default. Otherwise, use the value of the variable For example:
<#value default="nothing">