534 lines
21 KiB
PHP
534 lines
21 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Description of MainController
|
|
*
|
|
* @author MAKL
|
|
*/
|
|
abstract class MainController extends Controller {
|
|
|
|
protected $user;
|
|
|
|
public function AdminLoginRedirectAction($param) {
|
|
$this->AddRedirect(Router::GenerateUrl(array('login' => 'index')), 0);
|
|
}
|
|
|
|
/**
|
|
* Dodatkowy starter kontrolera
|
|
*
|
|
*/
|
|
protected function Run($param = array()) {
|
|
if(!is_array($param)) {
|
|
$param = array();
|
|
}
|
|
//$this->SetAjaxRender();
|
|
$urlMain = URL_MAIN;
|
|
$this->smarty->assign('urlMain', $urlMain);
|
|
$this->smarty->assign('pathStatic', PATH_STATIC_CONTENT);
|
|
// $logger = LoggerManager::getLogger(__CLASS__ . ' - ' . __METHOD__);
|
|
// $logger->debug(' ' . serialize($param));
|
|
//Utils::ArrayDisplay($param);
|
|
|
|
$location = Config::Get('site');
|
|
|
|
|
|
switch ($location) {
|
|
|
|
|
|
case 'Strona':
|
|
session_start();
|
|
if (!isset($param['lang']) || $param['lang'] == '') {
|
|
$param['lang'] = 'pl';
|
|
Router::$curLang = $param['lang'];
|
|
}
|
|
|
|
$searchLabel = 'search'.$param['lang'];
|
|
$this->smarty->assign('searchLabel', $searchLabel);
|
|
|
|
$analyticsCode = Registry::Get('analytics_code');
|
|
$this->smarty->assign('analyticsCode', $analyticsCode);
|
|
|
|
//=====Coockie========================================================
|
|
if (isset($_COOKIE['polityka_akceptacja'])) {
|
|
$polityka_akceptacja = $_COOKIE['polityka_akceptacja'];
|
|
}
|
|
if (isset($polityka_akceptacja)) {
|
|
$this->smarty->assign('polityka_akceptacja', true);
|
|
}
|
|
//--------------------------------------------------------------------
|
|
|
|
if (!isset($param['idStructure'])) {
|
|
$getContent = true;
|
|
}
|
|
|
|
Dictionary::Init($param['lang']);
|
|
$this->GetRedirectInfo();
|
|
$this->AddTitle(Dictionary::Translate(HEAD_TITLE));
|
|
|
|
if (isset($param['idStructure']) && !Utils::CheckPublication($param['idStructure'], 'mf_structure', 'id_mf_structure')) {
|
|
//$logger->debug('nie ma takiej strony, przekierowanie');
|
|
$this->addRedirectInfo('wybrana strona nie istnieje', null, Router::GenerateUrl('mainUrl', array()), 0);
|
|
}
|
|
|
|
$this->smarty->assign('lang', $param['lang']);
|
|
$this->smarty->assign('title', Dictionary::Translate(HEAD_TITLE));
|
|
|
|
|
|
//====Script=Loader=========================================================
|
|
$this->addScript('jQuery/jquery.js', 'file', 'top', 1);
|
|
$this->addScript('jQuery/jquery-migrate.min.js', 'file', 'top', 2);
|
|
// $this->AddScript('jQuery/jquery-ui.min.js', 'file', 'top', 7);
|
|
// $this->AddScript('jQuery/jquery.ui.datepicker-pl.js', 'file', 'top', 7);
|
|
$this->AddScript('jQuery/jquery.swipebox.js', 'file', 'top', 2);
|
|
$this->AddScript('gray.js', 'file', 'top', 3);
|
|
$this->AddScript('jQuery/bjqs-1.3.js', 'file', 'top', 4);
|
|
$this->AddScript('init.js', 'file', 'top', 5);
|
|
//$this->AddScript('doubletaptogo.js', 'file', 'top', 6);
|
|
$this->AddScript('jQuery/jquery.sticky.js', 'file', 'top', 7);
|
|
|
|
$this->addScript('jQuery/jquery.validate.js', 'file', 'top', 8);
|
|
$this->addScript('jQuery/jquery.flexslider.js', 'file', 'top', 9);
|
|
$this->addScript('jQuery/jquery.scrollex.min.js', 'file', 'top', 10);
|
|
$this->AddScript('jQuery/jquery.scrollme.js', 'file', 'top', 11);
|
|
$this->AddScript('jQuery/jquery.transit.min.js', 'file', 'top', 12);
|
|
$this->AddScript('jQuery/jquery.visible.js', 'file', 'top', 13);
|
|
$this->AddScript('bootstrap/bootstrap.js', 'file', 'top', 14);
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------
|
|
//===Run=Structure=element==================================================
|
|
if (isset($param['idStructure'])) {
|
|
$objElement = StructureDAL::GetById($param['idStructure'], true);
|
|
|
|
if (!is_object($objElement)) {
|
|
MFLog::Debug('brak obiektu, przekierowanie');
|
|
$this->addRedirectInfo('wybrana strona nie istnieje', null, Router::GenerateUrl('Index', array()), 0);
|
|
}
|
|
|
|
$router = MfRouterDAL::GetById($objElement->GetIdRouter());
|
|
$this->smarty->assign('idModule', $router->GetIdMfModule());
|
|
$param['idModule'] = $router->GetIdMfModule();
|
|
|
|
//Utils::ArrayDisplay($param);
|
|
//Utils::ArrayDisplay($objElement);
|
|
//==TODO==Zmianić=na=automat========================
|
|
if (isset($param['idModule']) && $param['idModule'] == 16) {
|
|
$this->smarty->assign('showGallery', true);
|
|
}
|
|
//--end-TODO----------------------------------------
|
|
|
|
$this->smarty->assign('title', $objElement->GetName());
|
|
$this->smarty->assign('objElement', $objElement);
|
|
$this->smarty->assign('contentObj', $objElement->GetContent());
|
|
$this->AddTitle($objElement->GetName());
|
|
$this->smarty->assign('labelDetal', $objElement->GetUrlLabel().'Detail');
|
|
$this->smarty->assign('labelPagi', $objElement->GetUrlLabel().'Page');
|
|
$this->smarty->assign('labelUrl', $objElement->GetUrlLabel());
|
|
$this->smarty->assign('urlPostOnPage', Router::GenerateUrl($objElement->GetUrlLabel()));
|
|
$this->smarty->assign('urlPagi', $objElement->GetUrl());
|
|
$param['idContent'] = $objElement->GetIdContent();
|
|
if (isset($param['urlDetailLabel'])) {
|
|
$this->smarty->assign('labelDetal', $param['urlDetailLabel']);
|
|
}
|
|
//==meta-do-elementu======================
|
|
$objMetaTag = MfMetaTagDAL::GetResult(array('id_source' => $param['idStructure'], 'source_type' => "'mf_structure'"), array());
|
|
if (isset($objMetaTag[0])) {
|
|
$objMetaTag = $objMetaTag[0];
|
|
$descriptionObj = $objMetaTag->GetDescriptionObj();
|
|
$this->smarty->assign('metaDescription', $descriptionObj->GetDescription());
|
|
$this->smarty->assign('metaKeywords', $descriptionObj->GetKeywords());
|
|
$this->smarty->assign('statistic', $descriptionObj->GetStatistic());
|
|
} else {
|
|
$this->smarty->assign('metaDescription', HEAD_DESCRIPTION);
|
|
$this->smarty->assign('metaKeywords', HEAD_KEYWORDS);
|
|
$this->smarty->assign('statistic', '');
|
|
}
|
|
|
|
//====Moduły=actionSet==================================================================================================
|
|
/**
|
|
* Pobieranie bazy i generowanie okienek modułowych
|
|
* TODO: Poprawić Kategorie
|
|
*
|
|
*/
|
|
$config = unserialize($router->GetConfig());
|
|
//Utils::ArrayDisplay($config);
|
|
$moduleAdd = true;
|
|
//Sprawdzanie czy jest url w parami jesli tak to nie jest to główny router i nie wyswietla modułów
|
|
//Potrzebne gdy wyswietlamy listę i mamy paginację lub element/detal
|
|
// if (isset($param[$router->GetUrl()])) {
|
|
// $moduleAdd = false;
|
|
// }
|
|
$actionSet = array();
|
|
$moduleSharedVariableArray = array();
|
|
$arrayModuleIdName = array();
|
|
$arrayModuleCategoryByModuleId = array();
|
|
|
|
if (isset($config['actionSet']) && $moduleAdd) {
|
|
//Utils::ArrayDisplay($router->GetName());
|
|
//Utils::ArrayDisplay($router);
|
|
if (is_array($config['actionSet'])) {
|
|
foreach ($config['actionSet'] as $addModulekey => $addModuleValue) {
|
|
if ($addModuleValue['modulePublication']>0) {
|
|
//Utils::ArrayDisplay($addModulekey);
|
|
$objModuleAdd = MfModuleDAL::GetById($addModuleValue['moduleId']);
|
|
$arrayModuleCategory = Utils::GetArrayList($objModuleAdd->GetTableModuleName() . '_category_description', 'id_' . $objModuleAdd->GetTableModuleName() . '_category', 'name', $param['lang'], '');
|
|
|
|
// $addModuleValue['moduleMetodAdmin'] = $addModuleValue['moduleMetodAdmin'] == 'Edit' ? 'Add' : $addModuleValue['moduleMetod'];
|
|
$paramModule['runSharedVariable'] = 'addModule_'.$addModulekey;
|
|
|
|
$paramModule['moduleName'] = $addModuleValue['moduleName'];
|
|
if (isset($arrayModuleCategory[$addModuleValue['moduleCategoryId']])) {
|
|
$paramModule['moduleName'] .= " - ".$arrayModuleCategory[$addModuleValue['moduleCategoryId']];
|
|
$arrayModuleCategoryByModuleId['addModule_'.$addModulekey] = $arrayModuleCategory[$addModuleValue['moduleCategoryId']];
|
|
}
|
|
$moduleSharedVariableArray[$addModulekey] = 'addModule_'.$addModulekey;
|
|
$arrayModuleIdName[] = 'addModule_'.$addModulekey;
|
|
$actionSet = array(
|
|
'moduleId' => $addModuleValue['moduleId'],
|
|
'moduleName' => $addModuleValue['moduleName'],
|
|
'moduleController' =>$addModuleValue['moduleController'],
|
|
'moduleMetod' =>$addModuleValue['moduleMetod'],
|
|
'moduleMetodAdmin' => $addModuleValue['moduleMetodAdmin'],
|
|
'moduleCategoryId' => $addModuleValue['moduleCategoryId'],
|
|
'moduleElementId' => $addModuleValue['moduleElementId']
|
|
);
|
|
$paramMerge = array_merge($paramModule, $param);
|
|
$paramMerge = array_merge($paramMerge, $actionSet);
|
|
//Utils::ArrayDisplay($paramMerge);
|
|
$this->RunModuleController($addModuleValue['moduleController'], $addModuleValue['moduleMetod'].'Module', $paramMerge, true);
|
|
|
|
}
|
|
}
|
|
$this->smarty->assign('moduleSharedVariableArray', $moduleSharedVariableArray);
|
|
$this->smarty->assign('actionSetModule', $actionSet);
|
|
$this->smarty->assign('arrayModuleIdName', $arrayModuleIdName);
|
|
$this->smarty->assign('arrayModuleCategoryByModuleId', $arrayModuleCategoryByModuleId);
|
|
//Utils::ArrayDisplay($actionSet);
|
|
}
|
|
}
|
|
//-----Moduły-actionSet-KONIEC--------------------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------
|
|
} else {
|
|
$this->smarty->assign('metaDescription', HEAD_DESCRIPTION);
|
|
$this->smarty->assign('metaKeywords', HEAD_KEYWORDS);
|
|
$this->smarty->assign('statistic', STATISTIC);
|
|
}
|
|
|
|
|
|
$this->smarty->assign('defaultKeywords', Dictionary::Translate('defaultKeywords'));
|
|
$this->smarty->assign('defaultDescription', Dictionary::Translate('defaultDescription'));
|
|
|
|
//Utils::ArrayDisplay($param);
|
|
|
|
//$this->RunShared('SoteMenuLeft', $param);
|
|
$this->RunShared('MenuBox', $param);
|
|
$this->RunShared('BanerBox', $param);
|
|
$this->RunShared('MenuLangBox', $param);
|
|
$this->RunShared('GetUrlLang', $param);
|
|
// $this->RunShared('Boxs', $param);
|
|
// $this->RunShared('LogoBoxMedia', $param);
|
|
// $this->RunShared('LogoBox', $param);
|
|
$this->smarty->assign('lang', $param['lang']);
|
|
|
|
break;
|
|
|
|
|
|
case 'Admin':
|
|
|
|
/*
|
|
* TODO: dorobić panel do kofiguracji może być w pliku configu
|
|
* TODO: dodrobić usuwanie modułu już dodoanego.
|
|
*
|
|
*/
|
|
|
|
|
|
|
|
|
|
$moduleBoxConfg = array('element_list' => array('delete', 'publication', 'sort'), 'files' => array('delete', 'publication', 'sort'), 'form' => array('publication', 'sort'));
|
|
$this->smarty->assign('moduleBoxConfg', $moduleBoxConfg);
|
|
|
|
$this->GetRedirectInfo();
|
|
Dictionary::Init('pl', 1);
|
|
$this->AddScript('../../Admin/plugins/ckeditor/ckeditor.js');
|
|
|
|
$this->smarty->assign('projectName', Dictionary::Translate(PROJECT_NAME, 1));
|
|
|
|
if (SessionProxy::GetValue('lang')) {
|
|
$param['lang'] = SessionProxy::GetValue('lang');
|
|
Router::$curLang = $param['lang'];
|
|
}
|
|
|
|
if (isset($param['lang'])) {
|
|
if ($param['lang'] == '') {
|
|
$param['lang'] = 'pl';
|
|
Router::$curLang = $param['lang'];
|
|
SessionProxy::SetValue('lang', $param['lang']);
|
|
} else {
|
|
Router::$curLang = $param['lang'];
|
|
SessionProxy::SetValue('lang', $param['lang']);
|
|
}
|
|
} else {
|
|
if (!SessionProxy::GetValue('lang')) {
|
|
$param['lang'] = 'pl';
|
|
Router::$curLang = $param['lang'];
|
|
SessionProxy::SetValue('lang', $param['lang']);
|
|
} else {
|
|
$param['lang'] = SessionProxy::GetValue('lang');
|
|
Router::$curLang = $param['lang'];
|
|
}
|
|
}
|
|
|
|
if (isset($param['location'])) {
|
|
if ($param['location'] == '') {
|
|
|
|
$param['location'] = '1';
|
|
|
|
SessionProxy::SetValue('location', $param['location']);
|
|
} else {
|
|
|
|
SessionProxy::SetValue('location', $param['location']);
|
|
}
|
|
} else {
|
|
if (!SessionProxy::GetValue('location')) {
|
|
$param['location'] = '1';
|
|
SessionProxy::SetValue('location', $param['location']);
|
|
} else {
|
|
$param['location'] = SessionProxy::GetValue('location');
|
|
}
|
|
}
|
|
|
|
if (SessionProxy::GetValue('location')) {
|
|
$param['location'] = SessionProxy::GetValue('location');
|
|
}
|
|
|
|
|
|
$this->RunShared('DefaultPanel', $param);
|
|
//Utils::ArrayDisplay($param);
|
|
if ((isset($param['Structure']) || isset($param['structure'])) && isset($param['id']) && $param['id'] != -1) {
|
|
|
|
$id = $param['id'];
|
|
$objElement = StructureDAL::GetById($id);
|
|
if (is_object($objElement)) {
|
|
|
|
$router = MfRouterDAL::GetById($objElement->GetIdRouter());
|
|
|
|
if ($objElement->GetIdRouter() > 0) {
|
|
|
|
if (($router->GetLang() != $param['lang'])) {
|
|
|
|
$idRouter = MfRouterDAL::AddRouterByStructure($router, $objElement, $param['lang']);
|
|
|
|
$router = MfRouterDAL::GetById($idRouter);
|
|
}
|
|
}
|
|
|
|
|
|
if ($objElement->GetIdRouter() == 0) {
|
|
$objModule = MfModuleDAL::GetById(22);
|
|
} else {
|
|
$unserializedParam = unserialize($router->GetParam());
|
|
SessionProxy::SetValue('idCategory', $unserializedParam['idCategory']);
|
|
SessionProxy::SetValue('router', $router);
|
|
SessionProxy::SetValue('idStructure', $id);
|
|
$objModule = MfModuleDAL::GetById($router->GetIdMfModule());
|
|
}
|
|
|
|
SessionProxy::SetValue('objModule', $objModule);
|
|
} else {
|
|
Utils::Redirect(Router::GenerateUrl('Index', array()));
|
|
}
|
|
}
|
|
|
|
|
|
$this->AddScript('jQuery/jquery.js', 'file', 'top', 1);
|
|
$this->AddScript('jQueryUi/jquery-ui.js', 'file', 'top', 2);
|
|
$this->AddScript('jQuery/jquery-ui-timepicker-addon.js', 'file', 'top', 3);
|
|
$this->AddScript('jQuery/jquery.uploadify.v2.1.4.min.js', 'file', 'top', 4);
|
|
$this->AddScript('dropDown.js', 'file', 'top', 5);
|
|
$this->AddScript('initAdmin.js', 'file', 'top', 6);
|
|
$this->smarty->assign('lang', SessionProxy::GetValue('lang'));
|
|
$this->smarty->assign('admin', Registry::Get('admin'));
|
|
$this->smarty->assign('galleryUrlLabel', 'customerEdit' . SessionProxy::GetValue('lang'));
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected function Seo($class = __CLASS__, $method = __METHOD__) {
|
|
|
|
|
|
$seoObj = WpSeoDAL::GetByType(WpSeo::GetMapByController($class . $method));
|
|
if (isset($seoObj) && is_object($seoObj)) {
|
|
if ($seoObj->getTitle() != '') {
|
|
|
|
$this->AddTitle($seoObj->getTitle());
|
|
}
|
|
if ($seoObj->getDescription() != '') {
|
|
$this->AddDescription($seoObj->getDescription());
|
|
}
|
|
if ($seoObj->getKeywords() != '') {
|
|
$this->AddKeywords($seoObj->getKeywords());
|
|
}
|
|
}
|
|
}
|
|
|
|
public function Error404Action($param) {
|
|
$this->SetAjaxRender();
|
|
//Utils::ArrayDisplay($param);
|
|
//$this->SetNoRender();
|
|
//header("Status: 404 Not Found");
|
|
//Utils::ArrayDisplay($param);
|
|
//$this->content=file_get_contents('error.html');
|
|
//include("error.html");
|
|
header($_SERVER["SERVER_PROTOCOL"] . " 404 Not Found");
|
|
//$this->AddRedirect('error.html', 0);
|
|
//$this->AddRedirectInfo('wybrana strona nie istnieje', null, Router::GenerateUrl('urlMain', array('lang' => $param['lang'])), 0, 404);
|
|
}
|
|
|
|
/**
|
|
* informacjay o przekierowaniu
|
|
*
|
|
* @param string $url
|
|
* @param string $info
|
|
*/
|
|
protected function AddRedirectInfo($info, $type = null, $url = null, $jsRedirect = false) {
|
|
//Utils::ArrayDisplay($info);
|
|
SessionProxy::SetValue("frameInfo", $info);
|
|
|
|
if ($type != null) {
|
|
SessionProxy::SetValue("frameType", $type);
|
|
}
|
|
|
|
if ($url != null && $jsRedirect == false)
|
|
$this->AddRedirect($url, 0);
|
|
else if ($url != null)
|
|
$this->content = "document.location.href='$url';";
|
|
}
|
|
|
|
protected function AddInfo($info, $type) {
|
|
$this->RunShared('infoFrame', array('type' => $type, 'info' => $info), true, true);
|
|
}
|
|
|
|
/**
|
|
* Pobranie informacji o przekierowaniu
|
|
*
|
|
*/
|
|
private function GetRedirectInfo() {
|
|
|
|
if (SessionProxy::GetValue("frameInfo") != "") {
|
|
$this->AddInfo(SessionProxy::GetValue("frameInfo"), SessionProxy::GetValue('frameType'));
|
|
|
|
SessionProxy::ClearValue('frameType');
|
|
SessionProxy::ClearValue('frameInfo');
|
|
SessionProxy::ClearValue('sendFormInfo');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Kontrola sesji usera
|
|
*
|
|
*/
|
|
public function CheckLogin() {
|
|
// session_start();
|
|
//Utils::ArrayDisplay('sds');
|
|
$this->user = AuthDAL::GetUser();
|
|
Registry::Set('user', $this->user);
|
|
$this->smarty->assign('userObj', $this->user);
|
|
$this->UserSession();
|
|
}
|
|
|
|
/**
|
|
* Weryfikacja czy user jest zalogowany
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public function IsUser() {
|
|
if (is_object($this->user)) {
|
|
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
protected function UserSession() {
|
|
if ($this->user) {
|
|
$id = $this->user->GetId();
|
|
if (!empty($id) && (int) $id > 0) {
|
|
ActiveChecker::Touch($id);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected function RemoveUserSession() {
|
|
if ($this->user) {
|
|
$id = $this->user->GetId();
|
|
if (!empty($id) && (int) $id > 0) {
|
|
ActiveChecker::Remove($id);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected function FormatAjaxOutput($errors, $param) {
|
|
$out = array();
|
|
$validateField = null;
|
|
if (Request::Check('validate'))
|
|
$validateField = Request::GetPost('validate');
|
|
if (isset($param['redirect']) && !isset($param['field'])) {
|
|
$out['redirect'] = $param['redirect'];
|
|
}
|
|
if (empty($errors)) {
|
|
$out['success'] = true;
|
|
} else {
|
|
$out['fields'] = array();
|
|
foreach ($errors as $row) {
|
|
if (isset($param['field'])) {
|
|
if ($param['field'] == $row['field'] || $row['field'] == urldecode($param['field'])) {
|
|
$out['fields'][$param['field']] = $row;
|
|
} elseif ($validateField == $row['field']) {
|
|
$out['fields'][$validateField] = $row;
|
|
}
|
|
} else {
|
|
$out['fields'][$row['field']] = $row;
|
|
}
|
|
}
|
|
if (!empty($out['fields'])) {
|
|
$out['success'] = false;
|
|
} else {
|
|
$out['success'] = true;
|
|
}
|
|
}
|
|
if (isset($param['msg'])) {
|
|
$out['msg'] = $param['msg'];
|
|
}
|
|
if (isset($param['hide'])) {
|
|
$out['hide'] = $param['hide'];
|
|
}
|
|
return json_encode($out);
|
|
}
|
|
|
|
public final function GeneratePopover($title, $image, $message, $buttons, $inputText = false) {
|
|
$this->SetAjaxRender(true);
|
|
$this->smarty->assign('popoverButtons', $buttons);
|
|
$this->smarty->assign('popoverTitle', $title);
|
|
$this->smarty->assign('popoverImage', $image);
|
|
$this->smarty->assign('popoverMessage', $message);
|
|
$this->smarty->assign('popoverInputText', $inputText);
|
|
|
|
return $this->smarty->fetch('partial/Popover/PopoverSmall.tpl');
|
|
}
|
|
|
|
public function GetDictionary($keyword, $replacement = array()) {
|
|
$dictionaryArray = Registry::Get("dictionary");
|
|
return vsprintf($dictionaryArray[$keyword], $replacement);
|
|
}
|
|
|
|
private function LoadDictionary($lang = "pl") {
|
|
Registry::Set("dictionary", MfDictionaryDAL::GetAllVariables($lang, 36000));
|
|
}
|
|
|
|
}
|
|
|
|
?>
|