diff options
author | fabrixxm <fabrix.xm@gmail.com> | 2013-05-08 03:51:38 -0400 |
---|---|---|
committer | fabrixxm <fabrix.xm@gmail.com> | 2013-05-08 03:51:38 -0400 |
commit | 31a21ac24cd5cbe19e40ab3838fcc179d812da13 (patch) | |
tree | d556822e261cb2b8ff10452a7c5b07b0c2c793c7 /include/friendica_smarty.php | |
parent | 51c27579ba79d32c26052c0d1f1218a16315234b (diff) | |
download | volse-hubzilla-31a21ac24cd5cbe19e40ab3838fcc179d812da13.tar.gz volse-hubzilla-31a21ac24cd5cbe19e40ab3838fcc179d812da13.tar.bz2 volse-hubzilla-31a21ac24cd5cbe19e40ab3838fcc179d812da13.zip |
use smarty3 as default template engine. add pluggable template system
Diffstat (limited to 'include/friendica_smarty.php')
-rwxr-xr-x[-rw-r--r--] | include/friendica_smarty.php | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/include/friendica_smarty.php b/include/friendica_smarty.php index b9ed2e982..5f247a528 100644..100755 --- a/include/friendica_smarty.php +++ b/include/friendica_smarty.php @@ -1,7 +1,8 @@ <?php /** @file */ - +require_once 'include/ITemplateEngine.php'; require_once("library/Smarty/libs/Smarty.class.php"); + class FriendicaSmarty extends Smarty { public $filename; @@ -41,3 +42,39 @@ class FriendicaSmarty extends Smarty { +class FriendicaSmartyEngine implements ITemplateEngine { + static $name ="smarty3"; + + public function __construct(){ + if(!is_writable('view/tpl/smarty3/')){ + echo "<b>ERROR:</b> folder <tt>view/tpl/smarty3/</tt> must be writable by webserver."; killme(); + } + } + + // ITemplateEngine interface + public function replace_macros($s, $r) { + $template = ''; + if(gettype($s) === 'string') { + $template = $s; + $s = new FriendicaSmarty(); + } + foreach($r as $key=>$value) { + if($key[0] === '$') { + $key = substr($key, 1); + } + $s->assign($key, $value); + } + return $s->parsed($template); + } + + public function get_markup_template($file, $root=''){ + $template_file = theme_include('smarty3/'.$file, $root); + if($template_file) { + $template = new FriendicaSmarty(); + $template->filename = $template_file; + + return $template; + } + return ""; + } +}
\ No newline at end of file |