Changeset 7c60cc for OWR/View.php


Ignore:
Timestamp:
11/16/13 22:39:25 (6 years ago)
Author:
pierre-alain <pierre-alain@…>
Branches:
master
Children:
f2d576
Parents:
fe9fcc
git-author:
pierre-alain <pierre-alain@…> (11/16/13 22:38:46)
git-committer:
pierre-alain <pierre-alain@…> (11/16/13 22:39:25)
Message:

adding theme support !

File:
1 edited

Legend:

Unmodified
Added
Removed
  • OWR/View.php

    r19b5ce r7c60cc  
    3535 */ 
    3636namespace OWR; 
    37 use OWR\View\Utilities; 
     37use OWR\View\Utilities, 
     38    OWR\View\Block; 
    3839/** 
    3940 * This object is used to render page 
     
    7071    protected $_statusCode = 200; 
    7172 
     73    protected $_blocks = array(); 
     74 
    7275    /** 
    7376     * Constructor 
     
    9497     * @return string the template rendered 
    9598     */ 
    96     public function get($tpl, array $datas = array(), $cacheTime = 0, array $noCacheDatas = array()) 
     99    public function get($tpl, array $datas = array(), $cacheTime = null, array $noCacheDatas = array()) 
    97100    { 
    98101        $t = microtime(true); 
    99         $cacheTime = (int) $cacheTime; 
     102        $cacheTime = (int) (isset($cacheTime) ? $cacheTime : Config::iGet()->get('cacheTime')); 
    100103 
    101104        if($cacheTime > 0) 
    102105        { 
    103             $cachedTpl = User::iGet()->getLang().DIRECTORY_SEPARATOR.md5($tpl.serialize($datas)); 
     106            $cachedTpl = User::iGet()->getLang() . DIRECTORY_SEPARATOR . md5($tpl . serialize($datas)); 
    104107            $contents = Cache::get($cachedTpl, $cacheTime); 
    105108        } 
     
    139142    protected function _execute($tpl, array $datas) 
    140143    { 
    141         extract($datas, EXTR_SKIP); 
     144        extract((array) $datas, EXTR_SKIP); 
    142145        ob_start(); 
    143         include HOME_PATH.'tpl'.DIRECTORY_SEPARATOR.$tpl.'.html'; 
    144         return ob_get_clean();    
     146        include Themes::iGet()->getPath($tpl) . $tpl . '.html'; 
     147        return ob_get_clean(); 
    145148    } 
    146149 
     
    260263            } 
    261264 
    262             if(!CLI) header('HTTP/1.1 '.$this->_statusCode.' '.$statusCode); 
     265            if(!CLI) header('HTTP/1.1 ' . $this->_statusCode . ' ' . $statusCode); 
    263266        } 
    264267 
     
    267270            foreach($this->_headers as $name=>$value) 
    268271            { 
    269                 header($name.': '.$value); 
     272                header($name . ': ' . $value); 
    270273            } 
    271274        } 
     
    327330        } 
    328331    } 
     332 
     333    public function addBlock($name, $layout, $content, $type = 'html') 
     334    { 
     335        $this->_blocks[$layout][$name] = new Block($content, $type); 
     336    } 
     337 
     338    public function getBlocks($layout) 
     339    { 
     340        return isset($this->_blocks[$layout]) ? join('', $this->_blocks[$layout]) : null; 
     341    } 
     342 
     343    public function getBlock($name, $layout) 
     344    { 
     345        return isset($this->_blocks[$layout][$name]) ? $this->_blocks[$layout][$name] : null; 
     346    } 
     347 
     348    public function renderBlocks($layout) 
     349    { 
     350        $blocks = $this->getBlocks($layout); 
     351        if(!empty($blocks)) 
     352            echo $blocks; 
     353    } 
     354 
     355    public function renderBlock($name, $layout) 
     356    { 
     357        $block = $this->getBlock($name, $layout); 
     358        if(!empty($block)) 
     359            echo $block; 
     360    } 
     361 
     362    public function _($name) 
     363    { 
     364        return $this->_utilities->_($name); 
     365    } 
    329366} 
Note: See TracChangeset for help on using the changeset viewer.