324 lines
8.3 KiB
PHP
324 lines
8.3 KiB
PHP
<?php
|
|
|
|
include_once('class/Exception.class.php');
|
|
include_once('class/Config.class.php');
|
|
|
|
/**
|
|
*
|
|
* Klasa jadra aplikacji
|
|
*
|
|
*/
|
|
class Core {
|
|
|
|
/**
|
|
* Dopuszczalne typy stron..
|
|
*
|
|
* @var array
|
|
*/
|
|
private static $site = array('Strona', 'Admin', 'Dev');
|
|
public static $template = 'index.tpl';
|
|
public static $appSafeMode = false;
|
|
|
|
/**
|
|
* Konstruktor klasy
|
|
*
|
|
* @param PageType $site Typ strony
|
|
*/
|
|
public function __construct() {
|
|
|
|
}
|
|
|
|
/**
|
|
* Inicjator aplikacji
|
|
*
|
|
* @param integer $site
|
|
*/
|
|
public static function Init($site) {
|
|
include('class/DB.class.php');
|
|
include('class/Registry.class.php');
|
|
self::RequireOnce('class/DbSqlLite.class.php');
|
|
//print_r($site);
|
|
self::LoadConfig($site);
|
|
include('ErrorHandler.php');
|
|
try {
|
|
$db = new DBProd();
|
|
$dbTemp = new DBTemp();
|
|
} catch (MysqlException $e) {
|
|
//Utils::ArrayDisplay($e, __FILE__.' - '.__LINE__);
|
|
MFLog::Fatal("Line: " . $e->getLine() . " Message: " . $e->getMessage() . " Referer: " . getenv('HTTP_REFERER'));
|
|
}
|
|
//Utils::ArrayDisplay($db, __FILE__.' - '.__LINE__);
|
|
Registry::Set('db', $db);
|
|
Registry::Set('dbTemp', $dbTemp);
|
|
Config::Set('site', $site);
|
|
Registry::Set('smartyTemplate', self::$template);
|
|
$title = array();
|
|
Registry::Set('title', $title);
|
|
self::PageConfig();
|
|
}
|
|
|
|
public static function SetAppSafeMode() {
|
|
MFLog::Error('Switching into the SafeMod.');
|
|
self::$appSafeMode = true;
|
|
}
|
|
|
|
public static function GetAppSafeMode() {
|
|
return self::$appSafeMode;
|
|
}
|
|
|
|
/**
|
|
* Parametry konfiguracyjne strony zmieniane przez autora lub administratora
|
|
*
|
|
*/
|
|
public static function PageConfig() {
|
|
|
|
try {
|
|
// zaczytuje do rejestru dane z tabeli Setup
|
|
$config = SetupDAL::GetAllVariables();
|
|
$rConfig = array();
|
|
|
|
foreach ($config as $key => $value) {
|
|
//Utils::ArrayDisplay($config);
|
|
$rConfig[$value['variable']] = $value['value'];
|
|
}
|
|
|
|
Config::SetDbConfig($rConfig);
|
|
} catch (MysqlException $e) {
|
|
self::SetAppSafeMode();
|
|
}
|
|
/*
|
|
$captchaStatus = true;
|
|
$moderateStatus = false;
|
|
Registry::Set('captchaStatus', $captchaStatus);
|
|
Registry::Set('moderateStatus', $moderateStatus);
|
|
*/
|
|
|
|
// ustawienia local dla czasu
|
|
setlocale(LC_TIME, 'pl_PL', 'pl', 'Polish_Poland.28592');
|
|
}
|
|
|
|
/**
|
|
* Ladowanie plikow konfiguracyjnych
|
|
*
|
|
* @param PageType $site Typ strony
|
|
*/
|
|
public static function LoadConfig($site) {
|
|
include_once('config/' . $site . '/path.config.php');
|
|
include_once('config/' . $site . '/param.config.php');
|
|
include_once('config/' . $site . '/db.config.php');
|
|
if ($site == 'Admin') {
|
|
include_once('config/' . $site . '/panel.config.php');
|
|
}
|
|
//-cONDIF INI DO WYYWALENIA!!
|
|
//Config::LoadIniConfig(Config::Get('PATH_CORE') . '/config/' . $site . '/db.config.ini', true);
|
|
}
|
|
|
|
/**
|
|
* Ladowanie i konfiguracja Smarty
|
|
*
|
|
*/
|
|
public static function LoadSmarty() {
|
|
require_once('lib/Smarty3/Smarty.class.php');
|
|
require_once('lib/SmartyValidate/libs/SmartyValidate.class.php');
|
|
$smarty = new Smarty();
|
|
$smarty->setErrorReporting(E_ALL ^E_DEPRECATED);
|
|
$smarty = new TemplateMaster();
|
|
|
|
//
|
|
$smarty->template_dir = Config::Get('PATH_SMARTY_TEMPLATE');
|
|
$smarty->compile_dir = Config::Get('PATH_SMARTY_COMPILE');
|
|
$smarty->cache_dir = Config::Get('PATH_SMARTY_CACHE');
|
|
$smarty->addPluginsDir(Config::Get('PATH_SMARTY_PLUGINS'));
|
|
$smarty->config_dir = Config::Get('PATH_CONFIG');
|
|
$smarty->cache_lifetime = 60;
|
|
//Utils::ArrayDisplay($smarty);
|
|
if(Config::Get('SMARTY_INTERNAL_CACHING') == true) {
|
|
$smarty->caching = Config::Get('SMARTY_CACHING_METHOD');
|
|
} else {
|
|
$smarty->caching = 0;
|
|
}
|
|
//$smarty->error_reporting = 0;
|
|
$smarty->assign('urlStatic', Config::Get('URL_STATIC_CONTENT'));
|
|
//$smarty->assign('commentIndent', COMMENT_INDENT);
|
|
|
|
$smarty->assign('dynamicContent', null);
|
|
$smarty->assign("pageStyle", 'style.css');
|
|
|
|
$smarty->assign('urlMain', Config::Get('URL_MAIN'));
|
|
$smarty->assign('pageDescription', null);
|
|
MFLog::Warn(serialize($smarty));
|
|
// //Utils::ArrayDisplay($smarty);
|
|
//$smarty->cache
|
|
//$smarty->testInstall();
|
|
Registry::Set('smarty', $smarty);
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Wyswietla szablon Smarty
|
|
*
|
|
* @return Wgenerowana strona
|
|
*/
|
|
public static function SmartyDisplay() {
|
|
$smarty = Registry::Get('smarty');
|
|
return $smarty->display(self::$template);
|
|
}
|
|
|
|
/**
|
|
* Laduje pliki z klasami
|
|
*
|
|
* @param $name Nazwa pozadanej klasy
|
|
*/
|
|
public static function LoadClass($name) {
|
|
//echo $name." <br>";
|
|
|
|
|
|
if (file_exists(Config::Get('PATH_CORE') . '/class/' . $name . '.class.php')) {
|
|
self::RequireOnce(Config::Get('PATH_CORE') . '/class/' . $name . '.class.php');
|
|
} else if (file_exists(Config::Get('PATH_MAIN_APP') .'module/' . $name . '.mod.php')) {
|
|
self::RequireOnce(Config::Get('PATH_MAIN_APP').'module/' . $name . '.mod.php');
|
|
} else if (file_exists(Config::Get('PATH_CORE') . '/model/' . $name . '.class.php')) {
|
|
self::RequireOnce(Config::Get('PATH_CORE') . '/model/' . $name . '.class.php');
|
|
} else if (file_exists(Config::Get('PATH_CORE') . '/lib/' . $name . '.class.php')) {
|
|
self::RequireOnce(Config::Get('PATH_CORE') . '/lib/' . $name . '.class.php');
|
|
} else if (file_exists(PATH_CORE . '/model/' . strtolower(str_replace('DAL', '', $name)) . '/' . $name . '.class.php')) {
|
|
include(PATH_CORE . '/model/' . strtolower(str_replace('DAL', '', $name)) . '/' . $name . '.class.php');
|
|
} else {
|
|
|
|
|
|
//echo '/lib/' . $name . '.class.php'."<br>";
|
|
preg_match_all('/[A-Z]/', $name, $matches);
|
|
|
|
if (isset($matches[0][1])) {
|
|
|
|
|
|
$firstChar = substr($name, 0, 1);
|
|
$fullpathArray = explode($matches[0][1], substr($name, 1), 2);
|
|
$fullpathFile = PATH_CORE . '/model/' . strtolower($firstChar) . $fullpathArray[0] . '/' . $matches[0][1] . $fullpathArray[1] . '.class.php';
|
|
if (file_exists($fullpathFile)) {
|
|
include($fullpathFile);
|
|
}
|
|
}
|
|
|
|
$path = str_replace('_', '/', $name);
|
|
|
|
// $filePath = array_shift($filePath);
|
|
//
|
|
// if(is_array($filePath)) {
|
|
// $path = implode('/', $filePath);
|
|
// } else {
|
|
// $path = $filePath;
|
|
// }
|
|
// $name = str_replace($path.'_', '', $name);
|
|
|
|
if (file_exists(Config::Get('PATH_CORE') . '/' . $path . '.class.php')) {
|
|
self::RequireOnce(Config::Get('PATH_CORE') . '/' . $path . '.class.php');
|
|
} else if (file_exists(Config::Get('PATH_CORE') . '/class/' . $path . '.class.php')) {
|
|
self::RequireOnce(Config::Get('PATH_CORE') . '/class/' . $path . '.class.php');
|
|
} else if (file_exists(Config::Get('PATH_CORE') . '/model/' . $path . '.class.php')) {
|
|
self::RequireOnce(Config::Get('PATH_CORE') . '/model/' . $path . '.class.php');
|
|
} else if (file_exists(Config::Get('PATH_CORE') . '/lib/' . $path . '.class.php')) {
|
|
self::RequireOnce(Config::Get('PATH_CORE') . '/lib/' . $path . '.class.php');
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Zamyka aplikacje
|
|
*
|
|
*/
|
|
public static function Garbage() {
|
|
$db = Registry::Get('db');
|
|
$db->__destruct();
|
|
}
|
|
|
|
public static function RequireOnce($file) {
|
|
//print_r($file);
|
|
require_once($file);
|
|
}
|
|
|
|
public static function LoadPlugin($plugin) {
|
|
self::RequireOnce('plugins/' . $plugin . '.php');
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Klasa wyboru typu aplikacji
|
|
*
|
|
*/
|
|
class PageType {
|
|
|
|
/**
|
|
* Część użytkowa
|
|
*
|
|
*/
|
|
const STRONA = 'Strona';
|
|
|
|
/**
|
|
* Część użytkowa
|
|
*
|
|
*/
|
|
const Package = 'Package';
|
|
|
|
/**
|
|
* Część użytkowa
|
|
*
|
|
*/
|
|
//const Lubricant = 'Lubricant';
|
|
|
|
/**
|
|
* Część administracyjna
|
|
*/
|
|
//const Company = 'Company';
|
|
|
|
/**
|
|
* Część administracyjna
|
|
*/
|
|
const ADMIN = 'Admin';
|
|
|
|
/**
|
|
* Część serwerowa
|
|
*/
|
|
const SERVER = 'Server';
|
|
|
|
}
|
|
|
|
/**
|
|
* Bloka dynamiczny jako funkcja do smarty
|
|
*
|
|
* @param unknown_type $param
|
|
* @param unknown_type $content
|
|
* @param unknown_type $smarty
|
|
* @return unknown
|
|
*/
|
|
function SmartyBlockDynamic($param, $content, &$smarty) {
|
|
return $content;
|
|
}
|
|
|
|
/**
|
|
* Zwraca biezacy url
|
|
*
|
|
* @return unknown
|
|
*/
|
|
function SelfUrl() {
|
|
$s = (empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on")) ? "s" : "";
|
|
$protocol = StrLeft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/") . $s;
|
|
$port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":" . $_SERVER["SERVER_PORT"]);
|
|
return $protocol . "://" . $_SERVER['SERVER_NAME'] . $port . $_SERVER['REQUEST_URI'];
|
|
}
|
|
|
|
/**
|
|
* Funkcja pomocnicza do SelfUrl()
|
|
*
|
|
* @param unknown_type $s1
|
|
* @param unknown_type $s2
|
|
* @return unknown
|
|
*/
|
|
function StrLeft($s1, $s2) {
|
|
return substr($s1, 0, strpos($s1, $s2));
|
|
}
|
|
|
|
?>
|