protected function loadTemplate()
 {
     $builder = new HTML_Custom_Builder($this->_sub_view_manager);
     $this->resolveTemplateSource();
     if ($this->template === null) {
         throw new Data_Insufficient_Exception('template');
     }
     $this->_root = Template_Loader::load($this->template, $builder);
     $this->_index = new HTML_Indexer($this->_root, 'eid', false);
 }
 protected function _initialize()
 {
     if ($this->template === null) {
         throw new Data_Insufficient_Exception('template');
     }
     $this->_sub_view_manager = new View_Manager();
     if ($this->_view_manager->head !== null) {
         $this->_sub_view_manager->assignHead($this->_view_manager->head);
     }
     if ($this->_view_manager->body !== null) {
         $this->_sub_view_manager->assignBody($this->_view_manager->body);
     }
     $builder = new HTML_Custom_Builder($this->_sub_view_manager);
     $this->_root = Template_Loader::load($this->template, $builder);
     $this->_sub_view_manager->initialize();
 }
 public static function render($template, $vm_or_builder = null, $renderer = null)
 {
     if ($vm_or_builder === null) {
         if (self::$vm === null) {
             self::$vm = new View_Manager();
         }
         if (self::$builder === null) {
             self::$builder = new HTML_Custom_Builder(self::$vm);
         }
         $view_manager = self::$vm;
         $builder = self::$builder;
     } elseif ($vm_or_builder instanceof HTML_Custom_Builder) {
         $view_manager = $vm_or_builder->vm;
         $builder = $vm_or_builder;
     } elseif ($vm_or_builder instanceof View_Manager) {
         $view_manager = $vm_or_builder;
         $builder = new HTML_Custom_Builder($view_manager);
     } else {
         throw new Invalid_Argument_Type_Exception('vm_or_builder', $vm_or_builder);
     }
     if ($renderer === null) {
         $renderer = self::getRenderer();
     }
     try {
         $head = Template_Loader::load($template . '.head', $builder);
     } catch (File_Not_Found_Exception $e) {
         if ($hyppos = strpos($template, '-')) {
             try {
                 $head = Template_Loader::load(substr($template, 0, $hyppos + 1) . 'default.head', $builder);
             } catch (File_Not_Found_Exception $e) {
                 try {
                     $head = Template_Loader::load('default.head', $builder);
                 } catch (File_Not_Found_Exception $e) {
                     throw new Template_Not_Found_Exception("Header doesn't exist for template file: {$template}");
                 }
             }
         } else {
             try {
                 $head = Template_Loader::load('default.head', $builder);
             } catch (File_Not_Found_Exception $e) {
                 throw new Template_Not_Found_Exception("Header doesn't exist for template file: {$template}");
             }
         }
     }
     try {
         $body = Template_Loader::load($template, $builder);
     } catch (File_Not_Found_Exception $e) {
         throw new Template_Not_Found_Exception("Template file doesn't exist: {$template}");
     }
     $view_manager->assignHead($head);
     $view_manager->assignBody($body);
     $view_manager->initialize();
     $view_manager->handleInput();
     $view_manager->resolve();
     $view_manager->handleRedirections();
     $renderer->render('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">');
     $renderer->renderNL('<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">');
     $renderer->renderNL();
     $view_manager->head->render($renderer);
     $pconf = new Project_Config();
     try {
         $prefix = $pconf->html_prefix;
     } catch (No_Such_Variable_Exception $e) {
         $prefix = "\t";
     }
     $renderer->prefix = $prefix;
     $view_manager->body->render($renderer);
     $renderer->renderNL('</html>');
 }
 protected function createMailBodyHTML()
 {
     $mail_template = $this->_mvo->getMailTemplateSource();
     $vm = new View_Manager();
     $builder = new HTML_Custom_Builder($vm);
     $mail_root = Template_Loader::load($mail_template, $builder);
     $mail_index = new HTML_Indexer($mail_root, 'eid', false);
     $this->_mvo->updateMailBodyTemplate($mail_root, $mail_index, $this->_fields);
     $renderer = new Text_Renderer();
     $mail_root->render($renderer);
     return $renderer->text;
 }