ACC SHELL
<?php
error_reporting(0);
//error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
define("DOCUMENT_ROOT", $_SERVER['DOCUMENT_ROOT'] . "/");
//begin pripojeni k databazi
include('admin/connect.php');
connect();
//end pripojeni k databazi
include('class.php');
include('./class/user.php');
include ('admin/comment.php');
//begin zabezpeceni
//promenne posilane metodou get
$sigsG = array(
'page' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'id' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'st'=>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
);
//promenne posilane metodou post
$sigsP = array(
'username' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'pass' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'loginName' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'e_mail' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'name' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'hash' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'over_cap' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'send_form' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'dotaz' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'prihlaseni' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'produktSelect' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'oblastZajmu' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'view_button' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
//begin promenne pro preview
'hNSeo' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'hNTemplate' =>array('vyzadovano' => false, 'typ' => 'int'),
'hNTitle' =>array('vyzadovano' => false, 'typ' => 'string', 'funkce' => 'strip_tags'),
'hNPage' =>array('vyzadovano' => false, 'typ' => 'string'),
'hNFooter' =>array('vyzadovano' => false, 'typ' => 'bool'),
'hNCategory' =>array('vyzadovano' => false, 'typ' => 'int'),
//end promenne pro preview
);
//u promennych v sigsG(sigsP) je provedena kontrola
Zabezpeceni::upravit_promenne($_GET, $sigsG);
Zabezpeceni::upravit_promenne($_POST, $sigsP);
//end zabezpeceni
//prihlaseni
session_start();
unset($user); //ochrana pred cizim vytvorenim uzivatele
//pokud uzivatel je prihlasen(predane username v SESSION), tak vytvori instanci uzivatele
if (isset ($_SESSION['partner']['username']) && ($_SESSION['partner']['username']) && user::check($_SESSION['partner']['username'],$_SESSION['partner']['pass'])){
$user = new user($_SESSION['partner']['username'],$_SESSION['partner']['pass']);
}
$msg_prihl="";
//pokud byl poslan pozadavek na prihlaseni(odhlaseni), tak se uzivatel po overeni prihlasi
if (isset($_POST['prihlaseni'])){
if ($_POST['prihlaseni']==='Vstoupit'){
if (isset ($_POST['username']) && ($_POST['username'])){
$user = new user();
$msg_prihl = $user->login($_POST['username'], $_POST['pass'], $_POST['loginName']);
if ($msg_prihl !== LOGIN_SUCCESSFUL){
$user->logout();
unset($user);
}
else{
include('./class/historyLogin.php');
historyLogin::addLogin($_SESSION['partner']['loginName']);//prida uzivatele do historie prihlasenych v databazi
header("Location: ".HOST_NAME."aktualne");
}
}
}
elseif($_POST['prihlaseni']==='Odhlásit'){
$msg_prihl = $user->logout();
unset($user);
header("Location: ".HOST_NAME."profil-spolecnosti");
}
}
//konec prihlaseni
// begin page
$page = new page;
if($_POST['view_button']=='Zobraz' && isset ($_SESSION['username']) && ($_SESSION['username']) && user::checkAdmin($_SESSION['username'],$_SESSION['pass'])){//jde-li o nahled stranky a je-li soucasne prihlasen admin
$preview=true;//indikuje, ze jde o nahled
$pageId = isset($_POST['hNSeo']) ? $_POST['hNSeo'] : null;//dava seo_url zobrazovane stranky
$pageType = 'page';
$nameCategory = page::getNameCategory($_POST['hNCategory']);//vraci nazev kategorie o danem id
}
else{//jde o zobrazeni stranky z databaze
//zjisteni predavanych parametru v GETu
$preview=false;
$pageId = isset($_GET['id']) ? $_GET['id'] : null;
$pageType = isset($_GET['page']) ? $_GET['page'] : null;
$nameCategory=page::nameCategory($pageId);//vraci nazev kategorie aktualni stranky
if($pageType == 'gallery'){//jde-li o fotogalerii, tak je urcena jen pro spolupracovniky
$nameCategory="Pro spolupracovníky";
}
if (($nameCategory!="Pro spolupracovníky") && isset($user)){
$user->logout();
unset($user);
}
if (($nameCategory=="Pro spolupracovníky") && !isset($user)&& !$preview){
$pageId=null;
$pageType=null;
$nameCategory=page::nameCategory($pageId);//vraci nazev kategorie aktualni stranky
}
}
//zjisteni template a img
$tmp = $preview ? sablona::getNameTemplate($_POST['hNTemplate']) : $page->select_template($pageId, $pageType);
$template = $tmp[0];
//$tamplate_img = $tmp[1];
//naplneni promene index spravnym templatem
$index = file_get_contents('templates/'.$template.'.html');
$index = str_replace('{STRING}',$_SERVER['QUERY_STRING'],$index);
// end page
//begin zobrazeni prihlasovaciho formulare
include ('helper/login_form.php');
if (isset($user)){//je-li uzivatel prihlasen
$index = str_replace('{FORM_PRIHL}',login_form::show_logout_form(),$index);
$index = str_replace('{STAV_PRIHL}',$_SESSION['partner']['loginName'],$index);
}
else{//neni-li uzivatel prihlasen
$index = str_replace('{FORM_PRIHL}',login_form::show_login_form(),$index);
$index = str_replace('{STAV_PRIHL}',"",$index);
}
$index = str_replace('{MSG}',"<p class='red'>".$msg_prihl."</p>",$index);
//end zobrazeni prihlasovaciho formulare
// begin seo
$seo = new seo;
//vyplneni vlastnosti instatnce seo podle zobrazovane stranky
switch($pageType){
case 'page':
$seo->select_seo_page($pageId);
break;
default:
$seo->select_seo_home();
break;
}
//pokud nejaka vlastnost instance seo neni naplnena, tak se naplni defaultne
$seo->default_text($seo->title,$seo->keywords,$seo->description,$seo->lang);
// end seo
// begin menu
$menu = new menu;
$index = str_replace('{MENU}',$menu->select($itemId,$pageId,$pageType, $nameCategory),$index);//nalezne aktualni menu a vlozi ho do promenne index
// end menu
// begin page
$sablona = new sablona($pageType,'uvod.php'); //vlozi soubor uvod.php nebo page.php
if (!$preview){//nejde-li o nahled, pak cte obsah page z databaze
$page_obsah = page_show($pageId);
$index = str_replace('{PAGE}',$page_obsah,$index);
$footer = footer_show();
$index = str_replace('{FOOTER}',$footer,$index);
}
else{//jde o nahled, cte obsah page z promenne predane postem
$index = str_replace('{PAGE}',$_POST['hNPage'],$index);
if($_POST['hNFooter']){
$footer = footer_show();
$index = str_replace('{FOOTER}',$footer,$index);
}
}
// end page
// begin kalendar novinek
$novinky = new novinky;
//prida 3 posledni novinky na uvodni stranku
$index = str_replace('{NEWS}',$novinky->select(),$index);
//end kalendar novinek
//begin kontakty
if ($pageId == 'kontakty'){
include('helper/map.php');
$index = str_replace('{MAP}',getMap(),$index);//nahradi v $index znacku {MAP} html kodem pro mapu na googlu
}
//end kontakty
//begin aktualne
if ($pageId == 'aktualne'){
include('./class/aktualne.php');//pridava php soubor s tridou aktualne
$aktualne = new aktualne();//vytvari novou instanci tridy aktualne
$index = str_replace('{AKTUALNE_HLAVICKA}',$aktualne->showHeading(),$index);//nahradi retezec {AKTUALNE_HLAVICKA} retezcem s html kodem pro vypis halvicky
$index = str_replace('{AKTUALNE}',$aktualne->showAll(),$index);//nahradi retezec {AKTUALNE} retezcem s html kodem pro vypis vsech viditelnych aktualit
}
//end aktualne
//begin mam zajem
if ($pageId == 'mam-zajem'){
include('helper/contac_form.php');
if ($_POST['send_form'] == "true"){ //je-li poslan dotaz
$msg = checkKontakt($_POST['e_mail'], $_POST['over_cap'],$_POST['hash'], $_POST['dotaz']);//kontrola spravne zadanych dat v kontaktnim formulari
if ( $msg=="OK" ){ //probehla-li kontrola uspesne
//odeslani e-mailu
include "mailer/send_email.php";
$index = str_replace('{MSG_CONT}',"<p class='red'>".$msg."</p>",$index);//hlaseni o uspesnosti odeslani mailu
if($msg==E_MAIL_SENDED){//byl-li dotaz uspesne podeslan, tak se zrusi dane promenne, aby se nepredvyplnil kontaktni formuar, temito hodnotami
unset ($_POST['name']);
unset ($_POST['e_mail']);
unset ($_POST['dotaz']);
unset ($_POST['oblastZajmu']);
unset ($_POST['produktSelect']);
}
}
else{//kontrola byla neuspesna
$index = str_replace('{MSG_CONT}',"<p class='red'>".$msg."</p>",$index);//nahrazeni znacky {MSG_CONT} v templatu hlasenim o chybnem vyplneni formulare
}
}
$index = str_replace('{CONT_FORM}',ukaz_kontakt($_POST['name'], $_POST['e_mail'], $_POST['dotaz']),$index);//zameni v templatu za {CONT_FORM} registracni formular v HTML
$index = str_replace('{MSG_CONT}',"",$index);
}
// end mam zajem
//begin tiskopisy
if($pageId=='tiskopisy'){
include('./class/tiskopisy.php');//pridava php soubor s tridou tiskopisy
$tiskopisy = new tiskopisy();//vytvari novou instanci tridy tiskopisy
$index = str_replace('{FORMS}',$tiskopisy->showAllForms(),$index);//nahradi retezec {FORMS} retezcem s html kodem pro vypis tiskopisu
}
//end tiskopisy
//begin skoleni
if($pageId=='skoleni'){
include('./class/training.php');//pridava php soubor s tridou training
$training = new training();//vytvari novou instanci tridy training
$index = str_replace('{TRAINING}',$training->showAllTraining(),$index);//nahradi retezec {TRAINING} retezcem s html kodem pro vypis skoleni
}
//end skoleni
//begin produkty
if($pageId=='produkty'){
include('./class/product.php');//pridava php soubor s tridou product
$product = new product();//vytvari novou instanci tridy product
$index = str_replace('{PRODUCT}',$product->showAllProducts(),$index);//nahradi retezec {PRODUCT} retezcem s html kodem pro vypis produktu
}
//end produkty
$index = str_replace('{HOST_NAME}',HOST_NAME,$index);
////////////////////////////////////////////////////////
if(!$preview){//nejde o nahled, cte infomrace o nadpisu z databaze
$index = str_replace('{TITLE}',$seo->title.$bonus,$index);
}
else{//jde o nahled, cte i nformace o nadpisu z promenne preane postem
$index = str_replace('{TITLE}',$_POST['hNTitle'],$index);
}
$index = str_replace('{TITLE}',$seo->title.$bonus,$index);
$index = str_replace('{KEYWORDS}',$seo->keywords,$index);
$index = str_replace('{DESCRIPTION}',$seo->description,$index);
$index = str_replace('{LANG}',$seo->lang,$index);
$index = page_replace($index);
if($pageId == '404') {
header("HTTP/1.1 404 Not Found");
}
echo $index;
////////////////////////////////////////////////////////
ACC SHELL 2018