Файл: core/Core.php
Строк: 80
<?php
define('DEV', true);
define('PATH_VIEW', '/view/');
define('PATH_LANG', './lang/');
include_once(DIR.'/inc/Lang.php');
include_once(DIR.'/inc/Debug.php');
include_once(DIR.'/inc/Json.php');
include_once(DIR.'/inc/Cur.php');
include_once(DIR.'/inc/Request.php');
include_once(DIR.'/inc/Loader.php');
include_once(DIR.'/inc/nav.php');
abstract class Core
{
protected $toTemplate = array();
protected $act;
protected $out = null;
protected $al;
protected $_ref;
protected $_forFrame = null;
protected $_forFrameCount = 0;
protected $startTime;
protected $endTime;
protected $lang = array();
protected $noInit = false;
protected $_al = false;
protected $mUser; // Instance модели.
protected $user; // Текущий пользователь.
function __construct() {
$this->startTime = $this->getTime(); // Debug time
$act = (!empty($_POST['act'])) ? $_POST['act'] : $_GET['act'];
Cur::$set['static'] = Loader::$curStatic;
Cur::$set['loc'] = (!empty($_GET['__query'])) ? $_GET['__query'] : $_SERVER['REQUEST_URI'];
if(!empty($act)) Cur::$set['loc'] .= '?act='.$act;
$this->_ref = $_GET['_ref'];
// Init invoke method. Вызов нужного местода с act_
$act = !empty($act) ? 'act_'.$act:'act_index';
$rc = new ReflectionClass($this);
$this->act = ($rc->hasMethod($act)) ? $act : 'act_index';
$this->al = (!empty($_POST['al'])) ? $_POST['al'] : ((!empty($_GET['al'])) ? $_GET['al'] : 3); // al init.
$this->__request(); // Init request.
}
// Full processing HTTP request.
public function __request() {
$this->_before();
if(!$this->noInit) {
$this->init();
}
$act = $this->act; // For call act method.
$this->$act(); // Call act method.
$this->_after();
}
protected function _before() {} // Analog __construct().
protected function _after() {} // Analog __destruct().
protected function addFrame() {} // для вывода фрейма.
// Установка переменных основному шаблону.
protected function setVarsMainTempl($arr = array(), $noFrame = false) {
$this->toTemplate = array_merge($this->toTemplate, $arr);
if($this->al == -1 && $this->_forFrameCount === 0 && !$noFrame)
$this->addFrame();
}
// Include html. Подключения вида.
protected function view($fileName, $vars = array(), $frame = false) {
// Вставка переменных.
//extract($vars);
if(is_array($vars) && !empty($vars)) {
foreach ($vars as $k => $v)
$$k = $v;
}
$ogc = null;
// Если фреймовый вывод, то файл подключается без буферизации,
// если обычное подключения файла (НЕ фрейм) то весь вывод буферизируется в переменную
// и возвращается.
if(!$frame) ob_start();
include DIR.PATH_VIEW.$fileName;
if(!$frame) $ogc = ob_get_clean();
// From post frame. Рекурсивный вызов для пост. фрейма framegot
if($this->al == -1) {
if(is_array($vars['forFrame'])) {
$vars['forFrame']['ogc'] = $ogc;
$this->_forFrame = $vars['forFrame'];
$this->addFrame();
}
}
return $ogc;
}
// Текущ. время. (Для генерации страницы)
protected function getTime() {
$start_time = explode(' ',microtime());
$real_time = $start_time[1].substr($start_time[0],1);
return $real_time;
}
}