linea21-externals
[ class tree: linea21-externals ] [ index: linea21-externals ] [ all elements ]

Source for file Installer_Template.php

Documentation is available at Installer_Template.php

  1. <?php
  2. /**
  3.  * @package linea21.externals
  4.  * @subpackage Class Installer
  5.  * @author Vadim V. Gabriel <vadimg88@gmail.com>
  6.  * @link http://www.vadimg.co.il/
  7.  * @version 1.0.0a
  8.  * @license GNU Lesser General Public License
  9.  */
  10.  
  11. /** load installer class **/
  12. require_once(INSTALLER_PATH '/Installer.php');
  13.  
  14.  
  15. /**
  16.  * Installer Template class
  17.  *
  18.  */
  19. {
  20.  
  21.   /**
  22.    * Html property
  23.    *
  24.    * @var string 
  25.    */
  26.   protected $html;
  27.  
  28.   /**
  29.    * Varibles Array
  30.    *
  31.    * @var array 
  32.    */
  33.   public $vars = array();
  34.  
  35.   /**
  36.    * Constructor
  37.    *
  38.    */
  39.   public function __construct($lang)
  40.   {
  41.     $this->lang $lang;
  42.   }
  43.  
  44.   /**
  45.    * Render a template
  46.    *
  47.    * @param string $template_name 
  48.    */
  49.   public function render($template_name)
  50.   {
  51.     $path TMPL_PATH DIRECTORY_SEPARATOR $template_name '.phtml';
  52.     if(!file_exists($path))
  53.     {
  54.       $this->error(sprintf($this->lang['L-11']$template_nameTMPL_PATH));
  55.     }
  56.  
  57.     # Require the template
  58.     $contents file_get_contents($path);
  59.  
  60.     # Pass it on
  61.     $this->html .= $contents;
  62.  
  63.     return $contents;
  64.  
  65.   }
  66.  
  67.   /**
  68.    * Print the error screen with the error page
  69.    *
  70.    * @param string $error_string 
  71.    */
  72.   public function error($error_string)
  73.   {
  74.     $template_name 'error';
  75.     $path TMPL_PATH DIRECTORY_SEPARATOR $template_name '.phtml';
  76.     if(!file_exists($path))
  77.     {
  78.       die(sprintf($this->lang['L-11']$template_nameTMPL_PATH));
  79.     }
  80.  
  81.     # Require the template
  82.     $contents file_get_contents($path);
  83.     $contents str_replace("{#ERROR#}"$error_string$contents);
  84.  
  85.     # Pass it on
  86.     $this->html .= $contents;
  87.  
  88.     $this->display();
  89.     exit;
  90.   }
  91.  
  92.   /**
  93.    * Print out the entire page
  94.    *
  95.    */
  96.   public function display()
  97.   {
  98.     $template_name 'layout';
  99.     $path TMPL_PATH DIRECTORY_SEPARATOR $template_name '.phtml';
  100.     if(!file_exists($path))
  101.     {
  102.       $this->error(sprintf($this->lang['L-11']$template_nameTMPL_PATH));
  103.     }
  104.  
  105.     # Require the template
  106.     $contents file_get_contents($path);
  107.  
  108.     # Replace the data
  109.     $contents $this->replaceVars($contents);
  110.  
  111.     # Print it
  112.     print $contents;
  113.     exit;
  114.  
  115.   }
  116.  
  117.   /**
  118.    * Replace vars with there values
  119.    *
  120.    */
  121.   protected function replaceVars($contents)
  122.   {
  123.     if(!is_array($this->vars&& !count($this->vars))
  124.     {
  125.       return;
  126.     }
  127.  
  128.     $this->vars['url'BASE_URL;
  129.  
  130.     # Vars
  131.     foreach ($this->vars as $key => $value)
  132.     {
  133.       $contents preg_replace("/{#{$key}#}/i"$value$contents);
  134.       $this->html = preg_replace("/{#{$key}#}/i"$value$this->html);
  135.     }
  136.  
  137.     # Langs
  138.     if(is_array($this->lang&& count($this->lang))
  139.     {
  140.       # Langs
  141.       foreach($this->lang as $key => $value)
  142.       {
  143.         $contents preg_replace("/{#{$key}#}/i"$value$contents);
  144.         $this->html = preg_replace("/{#{$key}#}/i"$value$this->html);
  145.       }
  146.     }
  147.  
  148.     # Links
  149.     $links array(=> 'index'=> 'db'=> 'cfg'=> 'finish');
  150.     foreach ($links as $key => $value)
  151.     {
  152.       if($_POST['step'== $value)
  153.       {
  154.         $contents preg_replace("/{#LINK{$key}#}/i"" class='current'"$contents);
  155.       }
  156.       else
  157.       {
  158.         $contents preg_replace("/{#LINK{$key}#}/i"''$contents);
  159.       }
  160.     }
  161.  
  162.     # Html
  163.     $contents str_replace("{#DATA#}"$this->html$contents);
  164.  
  165.     $rtl_css '';
  166.     # We will load a CSS just for RTL languages
  167.     if($this->lang['direction'== 'rtl')
  168.     {
  169.       $rtl_css '<link rel="stylesheet" type="text/css" href="installer/data/templates/rtl.css" />';
  170.       $contents str_replace("<!--RTL-->"$rtl_css$contents);
  171.     }
  172.  
  173.     # Empty
  174.     $this->vars = array();
  175.  
  176.     return $contents;
  177.   }
  178. }

Documentation generated on Thu, 03 May 2012 15:05:15 +0200 by phpDocumentor 1.4.1