|
ASPRunner uses built-in template language. ASPRunner templates
cleanly separates your presentation layer (HTML, CSS, etc.) from your
application code.
New template language was introduced in ASPRunner 6.0. The main idea
is to simply visual templates moving all logic and javascript to ASP
files. This makes Visual Editor stable and eliminates the need to
reset pages,
ASPRunner 5.2 and older use Smarty as a template language. If you
open a project created by previous version, all unmodified visual
templats will be converted to new format automatically. Modified
files won't be changed and still be using Smarty-based template
language. To convert modified visual template to the new format use
"Reset" and re-apply changes manually.
Template language reference
- all templates tags are enclosed within delimiters { and }.
All content outside delimiters is displayed as statis HTML.
- template variables start with dollar ($) sign. They may
contain numbers, letters and underscores.
Example: {$variable_name}
{BEGIN block_name} {END block_name} is used
to define block section (loops, condition statements).
Functions
-
assign name, val is used to
assign value val to the
variable name.
-
assign_section name,begin,end
is used to define block section.
-
display(templatefile)
renders and displays the template file.
How templates work
Template files (*.htm) can be found in templates
directory under output directory.
Here is the basic example of how templates work:
list.asp |
<!--#include file="libs/xtempl.asp"-->
' create object set xt = new XTempl
' assign some content. This would typically come from ' a database or other source, but we'll use static ' values for the purpose of this example. xt.assign "name", "george smith" xt.assign "address", "45th & Harris"
' display it xt.display('list.htm')
|
The template file then contains the output interspersed with tags
that ASPRunner replaces with assigned content.
list.htm |
|
output |
<html> <head> <title>User Info</title> </head> <body>
User Information:<p>
Name: {$name}<br> Address: {$address}<br>
</body> </html>
|
|
<html> <head> <title>User Info</title> </head> <body>
User Information:<p>
Name: george smith<br> Address: 45th & Harris<br>
</body> </html>
|
{BEGIN} ... {END} blocks
Template file contains a set of
code sections wrapped by {BEGIN ...} and {END ...}.
view.htm |
|
{BEGIN Model_fieldblock}
<tr><td class=shade
width=150>Model</td><td width=250>
{$Model_value}
</td></tr>
{END Model_fieldblock} |
In view.asp file use the following:
xt.assign("Model_fieldblock",true);
- code snippet between {BEGIN ...} and {END ...} appears in the output.
xt.assign("Model_fieldblock",false);
- code snippet goes away.
How to deal with Javascript
Earlier we mentioned that javascript and some HTML tags like
<form> and <input type=hidden ...> need to be moved to
ASP code in order to keep templates clean.
On the server side javascript code needs to be assigned to body
or end variables in block array.
list.asp |
|
' create body object
set body = CreateObject("Scripting.Dictionary")
' code assigned to
"begin" variable replaces {BEGIN body} tag
body("begin")="<form
name='frmSearch' method='GET' action='carsadmin_cars_list.asp'>"
& _
"<input type='Hidden' name='a' value='search'>"
& _
"<input type='Hidden' name='value'
value='1'>" & _
"</form>"
' code assigned to "end"
variable replaces {END body} tag
body("end")="<script>if(document.getElementById('SearchFor'))"
& _
"document.getElementById('ctlSearchFor').focus();</script>"
xt.assign
"body",body |
Template file and generated output
list.htm |
|
output |
|
{BEGIN body} ... {END body}
|
|
<form name="frmSearch"
method="GET" action="carsadmin_cars_list.asp">
<input type="Hidden"
name="a" value="search">
<input type="Hidden"
name="value" value="1">
</form>
...
<script>if(document.getElementById('SearchFor'))
document.getElementById('ctlSearchFor').focus();</script> |
|