Вход Регистрация
Файл: forsoc.ru/manul/classes/View.inc.php
Строк: 66
<?php

class View
{
    private 
$_path;
    private 
$_template;
    private 
$_var = array();

    public function 
__construct($path = '')
    {
        global 
$projectRootDir;
        
$this->_path = $projectRootDir . '/static/templates/' . $path;
    }

    public function 
setTemplateDirAbsolutePath($path)
    {
        
$this->_path = $path;
    }

    public function 
set($name, $value)
    {
        
$this->_var[$name] = $value;
    }

    public function 
__get($name)
    {
        if (isset(
$this->_var[$name])) return $this->_var[$name];
        return 
'';
    }

    public function 
display($template, $strip = true)
    {
        
$this->_template = $this->_path . $template;
        if (!
file_exists($this->_template)) die(sprintf(PS_ERR_TEMPLATE_DOESNT_EXISTS, $this->_template));

        
ob_start();
        
header('Content-Type: text/html; charset=utf-8');

        include(
$this->_template);

        
// general templates
        
define('PS_FOOTER', $this->meta_replacer(implode('', file($this->_path . 'footer.tpl'))));

        echo (
$strip) ? $this->_strip($this->meta_replacer(ob_get_clean())) : $this->meta_replacer(ob_get_clean());
    }

    private function 
meta_replacer($content)
    {
        if (
preg_match_all("/{(PS_.+?)}/smiu", $content, $entries, PREG_SET_ORDER)) {
            for (
$i = 0; $i < sizeof($entries); $i++) {
                
$constantName = $entries[$i][1];
                if (
defined($constantName)) {
                    
$content = str_replace('{' . $constantName . '}', constant($constantName), $content);
                } else {
                    
$content = str_replace('{' . $constantName . '}', '', $content);
                }
            }
        }

        return 
$content;
    }

    private function 
_strip($data)
    {
        
$lit = array("\t", "\n", "\n\r", "\r\n", '  ');
        
$sp = array('', '', '', '', '');
        return 
str_replace($lit, $sp, $data);
    }

}
Онлайн: 2
Реклама