first try to implement theming support, which currently does not work at all

This commit is contained in:
Christian Weiske 2011-05-23 06:53:31 +02:00
parent 97bba97049
commit a11432db93
53 changed files with 33 additions and 2 deletions

View file

@ -63,6 +63,15 @@ $sidebarTopMessage = '';
*/ */
$sidebarBottomMessage = ''; $sidebarBottomMessage = '';
/**
* The HTML theme to use. With themes, you can give your semanticscuttle
* installation a new look.
*
* Themes are the folders in data/templates/
*
* @var string
*/
$theme = 'default';
/*************************************************** /***************************************************

View file

@ -76,6 +76,9 @@ class SemanticScuttle_Model_Template
* Sets variables and includes the template file, * Sets variables and includes the template file,
* causing it to be rendered. * causing it to be rendered.
* *
* Does not take care of themes and so.
* The include path must be set so the correct theme is used.
*
* @return void * @return void
*/ */
public function parse() public function parse()

View file

@ -38,6 +38,14 @@ class SemanticScuttle_Service_Template extends SemanticScuttle_Service
*/ */
protected $basedir; protected $basedir;
/**
* The template theme to use.
* Set in constructor from $GLOBALS['theme']
*
* @var string
*/
protected $theme;
/** /**
@ -64,6 +72,8 @@ class SemanticScuttle_Service_Template extends SemanticScuttle_Service
protected function __construct() protected function __construct()
{ {
$this->basedir = $GLOBALS['TEMPLATES_DIR']; $this->basedir = $GLOBALS['TEMPLATES_DIR'];
$this->theme = $GLOBALS['theme'];
//FIXME: verify the theme exists
} }
@ -77,16 +87,25 @@ class SemanticScuttle_Service_Template extends SemanticScuttle_Service
* *
* @return SemanticScuttle_Model_Template Template object * @return SemanticScuttle_Model_Template Template object
*/ */
function loadTemplate($template, $vars = null) public function loadTemplate($template, $vars = null)
{ {
if (substr($template, -4) != '.php') { if (substr($template, -4) != '.php') {
$template .= '.php'; $template .= '.php';
} }
$oldIncPath = get_include_path();
set_include_path(
$this->basedir . $this->theme
. PATH_SEPARATOR . $this->basedir . 'default'
);
$tpl = new SemanticScuttle_Model_Template( $tpl = new SemanticScuttle_Model_Template(
$this->basedir .'/'. $template, $vars, $this $template, $vars, $this
); );
$tpl->parse(); $tpl->parse();
set_include_path($oldIncPath);
return $tpl; return $tpl;
} }
} }