|
|
|
@ -332,11 +332,17 @@ class rcube_template extends rcube_html_page
|
|
|
|
|
private function parse($name = 'main', $exit = true)
|
|
|
|
|
{
|
|
|
|
|
$skin_path = $this->config['skin_path'];
|
|
|
|
|
$plugin = false;
|
|
|
|
|
|
|
|
|
|
$temp = explode(".", $name, 2);
|
|
|
|
|
if (count($temp) > 1) {
|
|
|
|
|
$path = $this->config['plugins_dir'] . '/' . $temp[0] . '/skins/' . $this->config['skin'] . '/templates/' . $temp[1] . '.html';
|
|
|
|
|
} else
|
|
|
|
|
$plugin = $temp[0];
|
|
|
|
|
$name = $temp[1];
|
|
|
|
|
$skin_path = $this->config['plugins_dir'] . '/' . $temp[0] . '/skins/' . $this->config['skin'];
|
|
|
|
|
if (!is_dir($skin_path)) // fallback to default skin
|
|
|
|
|
$skin_path = $this->config['plugins_dir'] . '/' . $temp[0] . '/skins/default';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$path = "$skin_path/templates/$name.html";
|
|
|
|
|
|
|
|
|
|
// read template file
|
|
|
|
@ -351,6 +357,11 @@ class rcube_template extends rcube_html_page
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// replace all path references to plugins/... with the current plugins dir
|
|
|
|
|
if ($plugin) {
|
|
|
|
|
$templ = preg_replace('/\bplugins\//', $this->config['plugins_dir'].'/', $templ);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// parse for specialtags
|
|
|
|
|
$output = $this->parse_conditions($templ);
|
|
|
|
|
$output = $this->parse_xml($output);
|
|
|
|
|