diff options
Diffstat (limited to 'example/index.php')
-rw-r--r-- | example/index.php | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/example/index.php b/example/index.php new file mode 100644 index 0000000..3d2b1ca --- /dev/null +++ b/example/index.php @@ -0,0 +1,58 @@ +<?php + +# Example program to demonstrate the STE... + +require_once(dirname(__FILE__) . "/../stupid_template_engine.php"); + +# Initialize an STECore instance +$ste = new \ste\STECore( + new \ste\FilesystemStorageAccess( # The STECore needs a StorageAccess implementation, we are using the FilesystemStorageAccess, which comes with STE. + dirname(__FILE__) . "/templates/src", # FilesystemStorageAccess needs a directory, where the Templates are... + dirname(__FILE__) . "/templates/transc" # ...and a directory for the transcompiled templates (write permissions needed). + ) +); + +# First, lets define some custom tags. + +# <ste:uppercase> will exchange all letters with their uppercase complement +$ste->register_tag("uppercase", + function($ste, $params, $sub) + { + $text = $sub($ste); # Get the tags content + return strtoupper($text); # Return the new text. + } +); + +# <ste:repeat> will repeat its content n times (<ste:for> could be used too, but i needed more examples :-P ) +$ste->register_tag("repeat", + function($ste, $params, $sub) + { + $output = ""; + if(!is_numeric($params["n"])) + throw new Exception("Sorry, but parameter n must be a number..."); + + for($i = 0; $i < $params["n"]; ++$i) + $output .= $sub($ste); + + return $output; + } +); + +# assign some data +$ste->vars["users"] = array( + array("name" => "Foo", "username" => "foo", "online" => true), + array("name" => "Bar", "username" => "bar", "online" => false), + array("name" => "Baz", "username" => "baz", "online" => true) +); +$ste->vars["title"] = "cool"; +$ste->vars["articles"] = array( + array("author" => "foo", "title" => "cool article", "timestamp" => 1316553353, "excerpt" => "bla", "full" => "blablabla"), + array("author" => "bar", "title" => "awesome", "timestamp" => 1316552000, "excerpt" => "...", "full" => ".........."), + array("author" => "baz", "title" => "<ingenious", "timestamp" => 1316551000, "excerpt" => "...", "full" => ".........."), + array("author" => "baz", "title" => "whatever...", "timestamp" => 1316550000, "excerpt" => "...", "full" => "..........") +); + +# Execute the template and output the result +echo $ste->exectemplate("articles.html"); + +?> |