mute_runtime_errors = False; # First, lets define some custom tags. # 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. } ); # will repeat its content n times ( 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 ste\RuntimeError("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" => " 1316551000, "excerpt" => "...", "full" => ".........."), array("author" => "baz", "title" => "whatever...", "timestamp" => 1316550000, "excerpt" => "...", "full" => "..........") ); $ste->vars["foo"] = "baz"; $ste->vars["bar"] = "lol"; $ste->vars["baz"] = array("lol" => "cool"); # Execute the template and output the result echo $ste->exectemplate("articles.html"); ?>