64 lines
1.1 KiB
PHP
64 lines
1.1 KiB
PHP
|
<?php
|
||
|
|
||
|
class View{
|
||
|
protected $_content = "";
|
||
|
protected $_layout = 'default';
|
||
|
|
||
|
protected $_viewEnabled = true;
|
||
|
protected $_layoutEnabled = true;
|
||
|
|
||
|
protected $_data = array();
|
||
|
|
||
|
public function disableLayout(){
|
||
|
$this->_layoutEnabled = false;
|
||
|
}
|
||
|
|
||
|
public function enableLayout(){
|
||
|
$this->_layoutEnabled = false;
|
||
|
}
|
||
|
|
||
|
public function setLayout($layout){
|
||
|
$this->_layout = $layout;
|
||
|
}
|
||
|
|
||
|
public function disableView(){
|
||
|
$this->_viewEnabled = false;
|
||
|
}
|
||
|
|
||
|
public function __set($key, $value){
|
||
|
$this->_data[$key] = $value;
|
||
|
}
|
||
|
|
||
|
public function __get($key){
|
||
|
if(array_key_exists($key, $this->_data)){
|
||
|
return $this->_data[$key];
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
public function content(){
|
||
|
return $this->_content;
|
||
|
}
|
||
|
|
||
|
public function render($template){
|
||
|
if($template && $this->_viewEnabled){
|
||
|
$this->_fetchContent($template);
|
||
|
}
|
||
|
|
||
|
if($this->_layoutEnabled){
|
||
|
include('../app/views/layouts/' . $this->_layout . '.phtml');
|
||
|
} else {
|
||
|
echo $this->_content;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected function _fetchContent($template){
|
||
|
ob_start();
|
||
|
|
||
|
include('../app/views/templates/' . $template);
|
||
|
|
||
|
$this->_content = ob_get_clean();
|
||
|
}
|
||
|
}
|