diff options
author | Mark Pemberton <mpemberton5@gmail.com> | 2011-06-04 00:38:07 -0400 |
---|---|---|
committer | Mark Pemberton <mpemberton5@gmail.com> | 2011-06-04 00:38:07 -0400 |
commit | b628e63e015bc3b2eadc712feaa6c4d05cf75bbd (patch) | |
tree | ebdcec5c8133a3b6f86d06dc3f6fb3de46609f04 /src/SemanticScuttle/Service/Template.php | |
parent | 84e603aa91a303a1419962ff3ff6086710a7b1a9 (diff) | |
parent | 4c8a53c5bc632302aaf8978e711eb53a03166db5 (diff) | |
download | semanticscuttle-b628e63e015bc3b2eadc712feaa6c4d05cf75bbd.tar.gz semanticscuttle-b628e63e015bc3b2eadc712feaa6c4d05cf75bbd.tar.bz2 |
Merge branch 'master' into privatekey2
Conflicts:
data/templates/default/bookmarks.tpl.php
Diffstat (limited to 'src/SemanticScuttle/Service/Template.php')
-rw-r--r-- | src/SemanticScuttle/Service/Template.php | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/src/SemanticScuttle/Service/Template.php b/src/SemanticScuttle/Service/Template.php index efa8d28..b5d4cfa 100644 --- a/src/SemanticScuttle/Service/Template.php +++ b/src/SemanticScuttle/Service/Template.php @@ -14,6 +14,7 @@ */ require_once 'SemanticScuttle/Model/Template.php'; +require_once 'SemanticScuttle/Model/Theme.php'; /** * SemanticScuttle template service. @@ -38,6 +39,14 @@ class SemanticScuttle_Service_Template extends SemanticScuttle_Service */ protected $basedir; + /** + * The template theme to use. + * Set in constructor based on $GLOBALS['theme'] + * + * @var SemanticScuttle_Model_Theme + */ + protected $theme; + /** @@ -64,6 +73,8 @@ class SemanticScuttle_Service_Template extends SemanticScuttle_Service protected function __construct() { $this->basedir = $GLOBALS['TEMPLATES_DIR']; + $this->theme = new SemanticScuttle_Model_Theme($GLOBALS['theme']); + //FIXME: verify the theme exists } @@ -74,19 +85,33 @@ class SemanticScuttle_Service_Template extends SemanticScuttle_Service * @param string $template Template filename relative * to template dir * @param array $vars Array of template variables. + * The current theme object will be added + * automatically with name "theme". * * @return SemanticScuttle_Model_Template Template object */ - function loadTemplate($template, $vars = null) + public function loadTemplate($template, $vars = null) { if (substr($template, -4) != '.php') { $template .= '.php'; } + + $oldIncPath = get_include_path(); + set_include_path( + $this->basedir . $this->theme->getName() + . PATH_SEPARATOR . $this->basedir . 'default' + //needed since services are instantiated in templates + . PATH_SEPARATOR . $oldIncPath + ); + + $vars['theme'] = $this->theme; $tpl = new SemanticScuttle_Model_Template( - $this->basedir .'/'. $template, $vars, $this + $template, $vars, $this ); $tpl->parse(); + set_include_path($oldIncPath); + return $tpl; } } |