aboutsummaryrefslogtreecommitdiffstats
path: root/include/friendica_smarty.php
diff options
context:
space:
mode:
authorfabrixxm <fabrix.xm@gmail.com>2013-05-08 03:51:38 -0400
committerfabrixxm <fabrix.xm@gmail.com>2013-05-08 03:51:38 -0400
commit31a21ac24cd5cbe19e40ab3838fcc179d812da13 (patch)
treed556822e261cb2b8ff10452a7c5b07b0c2c793c7 /include/friendica_smarty.php
parent51c27579ba79d32c26052c0d1f1218a16315234b (diff)
downloadvolse-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.php39
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