SetBasePath($base_path)) { if (isset($filename)) { $this->Filename = $filename; $this->LoadTemplate(); } } } function SetBasePath($base_path=null) { if (isset($base_path)) { $base_path = eregi_replace("/$", '', $base_path); //Cutting possible last slash $this->BasePath = $base_path; return true; } return false; } function GetFullPath() { return $this->BasePath.'/'.$this->Filename.'.tpl'; } function LoadTemplate($silent=0) { $filename = $this->GetFullPath(); if(file_exists($filename)) { $handle = fopen ($filename, "r"); $contents = fread ($handle, filesize ($filename)); $this->SetBody($contents); fclose ($handle); return true; } else { if (!$silent) echo "File or block not found: $filename ($filename)
"; return false; } } function SetBody($body) { $this->Body = $body; } function GetBody() { return $this->Body; } } class TemplatesCache extends kBase { var $Templates = Array(); var $BasePath; function TemplatesCache() { parent::kBase(); $this->BasePath = DOC_ROOT.BASE_PATH.THEMES_PATH; } function LoadTemplate($filename, $title=NULL) { $template =& new Template($this->BasePath, $filename); if (!isset($title)) $title = $filename; $this->SetTemplate($title, $template); } function SetTemplate($title, &$template) { $this->Templates[$title] = $template; } function &GetTemplate($title) { if (!isset($this->Templates[$title])) { $this->LoadTemplate($title); } return $this->Templates[$title]; } function GetTemplateBody($title) { $template =& $this->GetTemplate($title); return $template->GetBody(); } function SetTemplateBody($title, $body) { $template =& new Template(); $template->SetBody($body); $this->SetTemplate($title, $template); } function ParseTemplate($template_name) { $Parser =& new TemplateParser($this->Application); return $Parser->Parse( $this->GetTemplateBody($template_name) ); } function TemplateExists($filename) { $template =& new Template($this->BasePath); $template->Filename = $filename; return $template->LoadTemplate(1) !== false; } } ?>