// SPRAWDZENIE WERSJI PHP
if (version_compare(phpversion(), '5.1.0', '<') == true)
{
die('Tylko w PHP5');
}
if (!ini_get('magic_quotes_gpc'))
{
function addsl($value)
{
$value = is_array($value) ? array_map('addsl', $value) : addslashes($value);
return $value;
}
foreach ($_REQUEST as $key => $val)
{
$_REQUEST[$key] = addsl($val);
}
foreach ($_GET as $key => $val)
{
$_GET[$key] = addsl($val);
}
foreach ($_POST as $key => $val)
{
$_POST[$key] = addsl($val);
}
foreach ($_COOKIE as $key => $val)
{
$_COOKIE[$key] = addsl($val);
}
}
// CONFIG
require_once (dirname(__FILE__) . '/config_system.inc.php');
require_once (dirname(__FILE__) . '/config_projekt.inc.php');
require_once (rootDir . '_libs/common.inc.php');
// LOCALE
setlocale(LC_ALL, locale);
// BLEDY
require_once (rootDir . '_libs/Wyjatki/BladKrytyczny.class.php');
function handleError($n, $m, $f, $l)
{
throw new BladKrytyczny("Wystąpił błąd!", "e_warning=" . E_WARNING . " num=" . $n . " msg=" . $m . " line=" . $l . " file=$f\n");
}
set_error_handler('handleError', error_reporting);
// ENGINE
require_once (rootDir . '_libs/Session.class.php');
require_once (rootDir . '_libs/Wyjatki/Blad404.class.php');
require_once (rootDir . '_libs/Wyjatki/Blad403.class.php');
function __autoload($Name)
{
global $_AUTOLOAD;
if (is_file(rootDir . $_AUTOLOAD[$Name]))
{
require_once (rootDir . $_AUTOLOAD[$Name]);
return true;
}
elseif (substr($Name, 0, 4) == 'Blok' && is_file(rootDir . '_libs/Bloki/' . $Name . '.class.php'))
{
require_once (rootDir . '_libs/Bloki/' . $Name . '.class.php');
return true;
}
else
{
throw new BladKrytyczny('Błąd podczas ładowania modułów!', "Nie znaleziono klasy: $Name.");
}
}
class Engine
{
private static $instance;
private function __clone()
{
}
static function getInstance()
{
return ($i = &self::$instance) ? $i : $i = new self();
}
// Tytuł strony
private static $Tytul;
public static function ustawTytul($Tytul)
{
self::$Tytul = $Tytul;
return true;
}
public static function pobierzTytul()
{
return self::$Tytul;
}
private static $SiteID;
private static function ustawSiteID($SiteID)
{
self::$SiteID = $SiteID;
return true;
}
static function pobierzSiteID()
{
return self::$SiteID;
}
static function pobierzSites()
{
global $_SITES;
return $_SITES;
}
private static $Jezyk;
private static function ustawJezyk($Jezyk)
{
self::$Jezyk = $Jezyk;
return true;
}
static function pobierzJezyk()
{
return self::$Jezyk;
}
static function pobierzSkrotJezyka()
{
global $_JEZYKI;
return $_JEZYKI[self::$Jezyk]['Skrot'];
}
static function pobierzDostepneJezyki()
{
global $_JEZYKI,$_SITES;
$DostepneJezyki = array();
foreach($_JEZYKI as $k => $v)
{
if(in_array($k, $_SITES[Engine::pobierzSiteID()]['Jezyki']))
{
$DostepneJezyki[$k]=$v;
}
}
return $DostepneJezyki;
}
private static $AktywneID;
public static function ustawAktywneID($AktywneID)
{
self::$AktywneID = $AktywneID;
return true;
}
public static function pobierzAktywneID()
{
return self::$AktywneID ? self::$AktywneID : 0;
}
private static $Temat;
private static function ustawTemat($Temat)
{
self::$Temat = $Temat;
return true;
}
static function pobierzTemat()
{
return self::$Temat;
}
public function pobierzListeSzablonow()
{
global $db;
$result[0] = $db->query("SELECT * FROM `szablony`
ORDER BY `NazwaSzablonu` ASC");
$aReturn = array();
while ($row[0] = $db->fetch_assoc($result[0]))
{
$aReturn[] = array(
'IDSzablonu' => $row[0]['IDSzablonu'],
'NazwaSzablonu' => $row[0]['NazwaSzablonu'],
'Schemat' => $row[0]['Schemat'],
'Domyslny' => $row[0]['Domyslny']
);
}
return $aReturn;
}
private static $IDSzablonu;
private static $SZABLON = array();
private static $REGIONY = array();
public static function ustawSzablon($IDSzablonu)
{
self::$IDSzablonu = $IDSzablonu;
return true;
}
static function pobierzSzablon()
{
return self::$IDSzablonu;
}
static function wczytajSzablon($IDSzablonu)
{
global $db, $_SZABLONY_PANELU_ADMINISTRACYJNEGO;
if ($IDSzablonu > 0)
{
$result[0] = $db->query("SELECT *
FROM `szablony` WHERE
`IDSzablonu`='" . addslashes($IDSzablonu) . "'
");
$row[0] = $db->fetch_assoc($result[0]);
}
else
{
// szablony ponizej 0 to szablony administracyjne, na razie nie ma ich w bazie
// nie wiem czy w ogole beda, sie zobaczy
$row[0] = $_SZABLONY_PANELU_ADMINISTRACYJNEGO[$IDSzablonu];
}
if ($row[0])
{
$aSzablon['NazwaSzablonu'] = $row[0]['NazwaSzablonu'];
$aSzablon['Schemat'] = $row[0]['Schemat'];
// wczytujemy wszystkie bloki ktore sa przypisane do tego szablonu
if ($IDSzablonu > 0)
{
$aSzablon['Bloki'] = Engine::wczytajBlokiDoSzablonu($IDSzablonu);
}
self::$SZABLON = $aSzablon;
return true;
}
else
{
return false;
}
}
static function wczytajBlokiDoSzablonu($IDSzablonu, $Opcje = array())
{
global $db;
$where = '';
if (!$Opcje['Wszystkie'])
{
$where = ' AND `bdr`.`Status`=1';
}
$result[0] = $db->query("SELECT *
FROM `szablony_blokidoregionow` bdr,`szablony_bloki` b WHERE
`b`.`IDBloku`=`bdr`.`IDBloku`
AND
`bdr`.`IDSzablonu`='" . addslashes($IDSzablonu) . "'
" . $where . "
ORDER BY `bdr`.`Prio` ASC
");
if ($db->num_rows($result[0]) > 0)
{
while ($row[0] = $db->fetch_assoc($result[0]))
{
$aBlok['IDBloku'] = $row[0]['IDBloku'];
$aBlok['NazwaBloku'] = $row[0]['NazwaBloku'];
$aBlok['TypBloku'] = $row[0]['TypBloku'];
$aBlok['Kontener'] = $row[0]['Kontener'];
$aBlok['Status'] = $row[0]['Status'];
if ($row[0]['TypBloku'] == 1)
{
// bloku modulu, musimy zapisac info w ktorym regionie bedzie
//self::ustawRegionGlowny($row[0]['Region']);
}
$aBloki[$row[0]['Region']][] = $aBlok;
}
return $aBloki;
}
else
{
return false;
}
}
// tutaj bedziemy wrzucac odpalone moduly
// bo moze sie przydadza w innym miejscu
// np w kilku blokach na raz
// w przypadku kiedy inicjowanie modulu bedzie wymagalo wczytania
// wiekszej ilosci danych trzeba bedzie zrobic tak zeby raz uruchomiony modul juz tutaj siedzial
// i z niego korzystac
private static $MODULY = array();
// Tryb wyjscia
// akcje ajaksowe albo wysylajace pliki
// powinny zmienic ta wartosc
// 1 - normalnie, smarty robi display na okncu
// 2 - nienormalnie :P czyli displaja nie robi,
// moze sobie akcja zrobic sama, albo wyslac w ogole cos innego
// metoda Komunikat przywraca ta wartosc na 1
private static $TrybWyjscia = wyjTPL;
public static function ustawTrybWyjscia($TrybWyjscia)
{
self::$TrybWyjscia = $TrybWyjscia;
return true;
}
private static $RegionGlowny;
public static function ustawRegionGlowny($RegionGlowny)
{
self::$RegionGlowny = $RegionGlowny;
return true;
}
public static function pobierzRegionGlowny()
{
return self::$RegionGlowny;
}
private function uruchomPanelAdministracyjny()
{
global $db, $tpl, $user, $_MODULY, $_JEZYKI_SKROTY, $_SITES;
if ($user->jestZalogowany() && $user->jestAdministratorem())
{
if ($_GET['PowrotDoWersjiDev'] == 1)
{
Header('Location: http://' . $_SERVER['HTTP_HOST'] . '');
exit();
}
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0') !== FALSE && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 7.0') === FALSE && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.0') === FALSE)
{
throw new Blad403("Masz zbyt starą przeglądarke by móc się zalogować.
Aby sie zalogować skorzystaj z przeglądarki
Firefox, Opera lub Interenet Explorer w wersji 7 lub wyższej.
Przepraszamy ", '');
}
// wczytywanie standardowego szablonu dla admina
// -2 to popup, np jakis modul moze go sobie zmienic jezeli potrzebuje popupa
self::wczytajSzablon(- 1);
// w admninie 1 region zawsze jest glownym, tym w ktorym odpalamy modul
self::ustawRegionGlowny(1);
$tpl->assign('aSites', Engine::pobierzSites());
if ($_REQUEST['SiteID'])
{
// ustawiamy jezyk
Session::set('SiteID', $_REQUEST['SiteID']);
}
if ($_SITES[Session::get('SiteID')])
{
Engine::ustawSiteID(Session::get('SiteID'));
}
else
{
Engine::ustawSiteID(1);
}
// ===================================
$aDostepneJezyki=Engine::pobierzDostepneJezyki();
$tpl->assign('aDostepneJezyki', $aDostepneJezyki);
if ($_REQUEST['Jezyk'])
{
// ustawiamy jezyk
Session::set('Jezyk', $_REQUEST['Jezyk']);
}
if ($aDostepneJezyki[$_JEZYKI_SKROTY[Session::get('Jezyk')]])
{
Engine::ustawJezyk($_JEZYKI_SKROTY[Session::get('Jezyk')]);
}
else
{
Engine::ustawJezyk($_SITES[Engine::pobierzSiteID()]['DomyslnyJezyk']);
}
if ($_GET['ID'] && !$_GET['module'])
{
// ustawiamy z geta, ale jakis moduł może to jeszcze zmienić
Engine::ustawAktywneID($_GET['ID'] ? $_GET['ID'] : 0);
$aRouter = array();
if (Engine::pobierzAktywneID())
{
$aRouter = Struktura::pobierzSzczegoly(Engine::pobierzAktywneID());
// ustawiamy tytul wg aktywnego id, modul moze to jeszcze zmienic
Engine::ustawTytul(Struktura::pobierzTytul(Engine::pobierzAktywneID()));
}
}
else
{
// tutaj odpalamy inne moduly takie ktore w stukturze nie wystepuja
// nazwijmy je aplikacjami
// np. system banerowy, konfigurator itp
$_GET['module'] = intval($_GET['module']);
if ($_GET['module'] && $_MODULY[$_GET['module']]['Klasa'])
{
$aRouter['Modul'] = $_GET['module'];
}
else
{
// domyslnie modul administracja
$aRouter['Modul'] = 100;
}
$aRouter['Typ'] = 1;
}
// region 1 to w adminie glowny obszar dzialania
self::$REGIONY[1] = new Region(1);
if ($aRouter['Typ'] != 1)
{
// jezeli to nie jest moduł to pokazujemy komunikat o braku konfiguracji
Engine::Komunikat('Ten moduł nie posiada możliwości konfiguracji.', array(
'Typ' => komINFORMACJA
));
}
if ($aRouter['Typ'] == 1)
{
$tmpKlasa = 'admin' . $_MODULY[$aRouter['Modul']]['Klasa'];
self::$MODULY[Engine::pobierzAktywneID()] = new $tmpKlasa(Engine::pobierzAktywneID(), $_GET['action']);
}
if (self::$TrybWyjscia == wyjTPL)
{
if (self::$MODULY[Engine::pobierzAktywneID()])
{
self::$REGIONY[1]->dodajBlok(array(
'TEMPLAT' => self::$MODULY[Engine::pobierzAktywneID()]->TEMPLAT,
'DANE' => self::$MODULY[Engine::pobierzAktywneID()]->DANE
));
}
$tpl->assign('REGION_1', self::$REGIONY[1]->pobierzBloki());
// pobieranie powinno byc na koncu w razie gdyby cos zmienilo AktywneID
// albo jakas inna wartosc
$aStruktura = Struktura::pobierzStruktureDoMenu(0, array(
'PominPodstronyModulow' => 1
));
$tpl->assign('aStrukturaSerwisu', $aStruktura);
$tpl->assign('AktywnyJezyk', Engine::pobierzJezyk());
$tpl->assign('AktywneSiteID', Engine::pobierzSiteID());
$tpl->assign('Tytul', Engine::pobierzTytul());
if (Engine::pobierzAktywneID())
{
$aRodzice = Struktura::pobierzRodzicow(Engine::pobierzAktywneID());
$tpl->assign('AktywneID_aRodzice', $aRodzice);
$tpl->assign('AktywneID', Engine::pobierzAktywneID());
$tpl->assign('WlaczEdycjeStrony', 1);
$tpl->assign('Sciezka', Struktura::pobierzSciezke(Engine::pobierzAktywneID()));
$tpl->assign('konf_Zajawka', Struktura::pobierzZajawke(Engine::pobierzAktywneID()));
$tpl->assign('konf_Tagi', Tagi::pobierzTagiArr('ID_' . Engine::pobierzAktywneID()));
$tpl->assign('WlaczZajawke', 1);
}
else
{
$tpl->assign('Sciezka', self::$MODULY[Engine::pobierzAktywneID()]->Sciezka);
}
$tpl->assign('cmsSzablon', Engine::pobierzSzablon());
$tpl->display(self::$SZABLON['Schemat'] . '.admin.tpl');
}
}
else
{
if (!$_COOKIE['COOKIETest'] && !$_GET['COOKIETest'])
{
setcookie('COOKIETest', 1, time() + 60 * 60 * 24 * 30);
Header('Location: http://' . $_SERVER['HTTP_HOST'] . '' . $_SERVER['REQUEST_URI'] . '?COOKIETest=1&' . ($_GET['PowrotDoWersjiDev'] ? 'PowrotDoWersjiDev=1' : ''));
exit;
}
$tpl->assign('PowrotDoWersjiDev', $_GET['PowrotDoWersjiDev']);
// pokazujemy logowanie
$tpl->display('login.admin.tpl');
}
return true;
}
public function init()
{
global $db, $tpl, $user, $queue, $_MODULY, $_JEZYKI;
$db = new Db(dbHost, dbUser, dbPassword, dbName, dbPersistent);
$db->query("SET NAMES '" . dbCharset . "'");
// wczytywanie konfiguracji globalnej
new Konfiguracja();
$tpl = new Smarty();
$tpl->template_dir = '_templates/';
$tpl->compile_dir = '_tmp/templates_c/';
$tpl->caching = false;
$tpl->cache_dir = '_tmp/cache/';
$tpl->debugging = false;
$tpl->compile_check = true;
// jezeli wywoluje flash to ustawiami idsesji z GET
// bo normalnie flash tych wartosic nie przekazuje
// wymagane do poprawnego dzialania uploadu przez flasha
if ($_SERVER['HTTP_USER_AGENT'] == 'Shockwave Flash')
{
if ($_GET['IDSesji'])
{
$_COOKIE['IDSesji'] = $_GET['IDSesji'];
}
}
// Sesje
Session::useCookies(true);
Session::start('IDSesji');
// Uzytkownik
$user = new User();
}
private function __construct()
{
global $db, $tpl, $user, $queue, $_MODULY, $_JEZYKI, $_SITES;
$Benchmark = new Benchmark();
$Benchmark->startTimer();
self::init();
$tpl->assign_by_ref('user', $user);
//if ($_SERVER['HTTP_HOST'] != siteHOST)
//{
// Header('Location: ' . siteURL);
// exit();
//}
// wrzucamy do smarty info o projekcie
$tpl->assign('config_siteName', siteName);
//$tpl->assign('config_siteURL', siteURL);
$SiteID = Router::odczytajSiteID($_SERVER['HTTP_HOST']);
if ($SiteID)
{
self::ustawSiteID($SiteID);
if ($_SITES[self::pobierzSiteID()]['GlownaDomena'] != $_SERVER['HTTP_HOST'])
{
Header('Location: http://' . $_SITES[self::pobierzSiteID()]['GlownaDomena'] . '' . $_SERVER['REQUEST_URI']);
exit();
}
else
{
$tpl->assign('config_siteURL', 'http://' . $_SITES[self::pobierzSiteID()]['GlownaDomena'] . '/');
}
}
else
{
// jezeli domena nie jest rozpoznana to redirect na glownyadres pierwszego sajtu
Header('Location: http://' . $_SITES[1]['GlownaDomena'] . '');
exit();
}
if (!$user->jestZalogowany())
{
if (DEV === true)
{
$tpl->assign('authOstatnieLogowanie', 1);
}
else
{
$authOstatnieLogowanie = Log::SprawdzOstatnieLogowanie($_SERVER['REMOTE_ADDR']);
$tpl->assign('authOstatnieLogowanie', Log::SprawdzOstatnieLogowanie($_SERVER['REMOTE_ADDR']));
}
}
if (isset($_REQUEST['Wyloguj']) && !$_POST['Zaloguj'])
{
$user->wyloguj();
$tpl->assign('aErrors', array(
'Wylogowanie' => 'Nastąpiło poprawne wylogowanie z systemu'
));
}
if ($_POST['Zaloguj'])
{
$_POST['Captcha'] = htmlspecialchars(stripslashes($_POST['Captcha']));
if (ADMIN === true && DEV === false && $authOstatnieLogowanie == 2 && !Captcha::sprawdzCaptcha($_POST['Captcha']))
{
$tpl->assign('aErrors', array(
'Logowanie' => 'Nieprawidłowy token'
));
}
else
{
if (!$user->zaloguj($_POST['Login'], $_POST['Haslo']))
{
$tpl->assign('aErrors', array(
'Logowanie' => 'Login lub hasło jest niepoprawne'
));
if (DEV === false)
{
$tpl->assign('authOstatnieLogowanie', 2);
}
}
}
}
if (ADMIN === true)
{
$queue = new Queue();
if (isset($_REQUEST['Wyloguj']))
{
Queue::Clear();
}
self::uruchomPanelAdministracyjny();
}
else
{
if (DEV === true)
{
if (!$user->jestZalogowany())
{
throw new Blad403('Aby uzyskać dostęp do wersji rozwojowej musisz się zalogować!
Logowanie', '');
}
}
// to co sie dzieje jak klient wchodzi na stronę
$_GET['module'] = intval($_GET['module']);
if ($_GET['module'] && $_MODULY[$_GET['module']])
{
$aRouter['Modul'] = $_GET['module'];
$aRouter['ID'] = - 1;
if ($_GET['Jezyk'])
{
$aRouter['Jezyk'] = $_GET['Jezyk'];
}
else
{
$aRouter['Jezyk'] = $_SITES[Engine::pobierzSiteID()]['DomyslnyJezyk'];
//$aRouter['Jezyk'] = Konfiguracja::pobierzKonfiguracjeDoJezyka(0, 'domyslny_jezyk');
}
$aRouter['AkcjaModulu'] = $_GET['action'];
}
else
{
$aRouter = Router::odczytajZadanie($_GET['Target']);
}
if (!$aRouter['Jezyk'])
{
throw new Blad404('', 'Nie ustawiono domyślnego języka!');
}
// ustawiamy w enginie wybrany jezyk
Engine::ustawJezyk($aRouter['Jezyk']);
Konfiguracja::wczytajKonfiguracje(Engine::pobierzJezyk());
if (!$aRouter['ID'])
{
// szukamy domyslnego wpisu dla danego jezyka
$aRouter = array_merge(Struktura::pobierzDomyslny(Engine::pobierzJezyk()), $aRouter);
}
// TODO: POPRAWIĆ TE LINKI, ALIASY DO MODULY I LINKI DO STRONY GLOWNEJ
// TE RZECZY NIE MOGA MIEC DZIECI W STRUKTURZE BO TO BYLOBY BEZ SENSU
if ($aRouter['Typ'] == 5)
{
// katalog
// pobieramy pierwsza podstrone
do
{
$tmpID = Struktura::pobierzPierwszeDziecko($aRouter['ID']);
if (!$tmpID)
{
throw new Blad404('', 'Nie znaleziono nic do wyświetlenia!');
}
$aRouter = Struktura::pobierzSzczegoly($tmpID);
}
while ($aRouter['Typ'] == 5);
unset($tmpID);
//print_r($aRouter);
}
if ($aRouter['Typ'] == 3)
{
// link do podstrony
// przekierowujemy
header('Location: ' . (strpos($aRouter['Link'], 'http://') !== FALSE ? $aRouter['Link'] : (($aRouter['Link'][0] == '/' ? '' : '/') . $aRouter['Link'])));
exit();
}
Engine::ustawAktywneID($aRouter['ID']);
// pobiera temat do danego jezyka
Engine::ustawTemat(Konfiguracja::pobierzKonfiguracjeDoJezyka(Engine::pobierzJezyk(), 'temat'));
if (file_exists(rootDir . '_locale/' . Engine::pobierzSkrotJezyka() . '/main.php'))
{
include_once (rootDir . '_locale/' . Engine::pobierzSkrotJezyka() . '/main.php');
}
if (file_exists(rootDir . '_tematy/' . Engine::pobierzTemat() . '/locale/' . Engine::pobierzSkrotJezyka() . '/main.php'))
{
include_once (rootDir . '_tematy/' . Engine::pobierzTemat() . '/locale/' . Engine::pobierzSkrotJezyka() . '/main.php');
}
$tpl->assign_by_ref('_LANG', $_LANG);
$tpl->assign_by_ref('Jezyk', Engine::pobierzSkrotJezyka());
// ustawiamy tytul wg aktywnego id, modul moze to jeszcze zmienic
Engine::ustawTytul(Struktura::pobierzTytul(Engine::pobierzAktywneID()));
if (Engine::pobierzAktywneID() && $aRouter['Modul'])
{
// ustawiamy szablon, najpierw, bo modul moze go jeszcze zmienic
Engine::ustawSzablon($aRouter['IDSzablonu']);
// najpierw odpalamy wlsciwy modul a wrzucamy do szablonu
// i odpalamy reszte blokow
// dlatego, że odpalony modul moze jeszcze cos zmienic
// np. zmienic szablon na inny (np popupa), wyslac pdfa itp
// odpala wlasciwy modul
$tmpKlasa = 'user' . $_MODULY[$aRouter['Modul']]['Klasa'];
self::$MODULY[Engine::pobierzAktywneID()] = new $tmpKlasa(Engine::pobierzAktywneID(), $aRouter['AkcjaModulu']);
$aBlokModulu = array(
'TEMPLAT' => self::$MODULY[Engine::pobierzAktywneID()]->TEMPLAT,
'DANE' => self::$MODULY[Engine::pobierzAktywneID()]->DANE
);
if (self::$TrybWyjscia == wyjTPL)
{
// wczytujemy szablon
if (!Engine::wczytajSzablon(Engine::pobierzSzablon()))
{
throw new Blad404('', 'Nie znaleziono szablonu!');
}
// dalej juz jedziemy po blokach
if (self::$SZABLON['Bloki'])
{
foreach (self::$SZABLON['Bloki'] as $Region => $Bloki)
{
if (!self::$REGIONY[$Region])
{
// Tworzymy region jezeli go jeszcze nie ma
// pozniej najlepiej byloby gdyby system byl swiadomy ilosci
// i numerom blokow w schemacie
self::$REGIONY[$Region] = new Region($Region);
}
foreach ($Bloki as $Blok)
{
if ($Blok['TypBloku'] == 1)
{
// blok modulu, moze wystapic tylko raz
// wlasciwy modul jest odpalony pierwszy
// tutaj go tylko pryzpisujemy
$aBlokModulu['KONTENER'] = $Blok['Kontener'];
$aBlokModulu['DANE']['IDBloku'] = $Blok['IDBloku'];
self::$REGIONY[$Region]->dodajBlok($aBlokModulu);
}
else
{
$tmpKlasa = 'Blok_' . $Blok['TypBloku'];
self::$REGIONY[$Region]->dodajBlok(new $tmpKlasa($Blok));
}
}
}
}
// Wrzucamy regiony do smarty
foreach (self::$REGIONY as $Region => $Obiekt)
{
// echo self::$REGIONY[$Region]->pobierzBloki();
$tpl->assign('REGION_' . $Region, self::$REGIONY[$Region]->pobierzBloki());
}
// wrzucamy tytul i meta
$tpl->assign('Tytul', Engine::pobierzTytul());
$CacheID = 'Meta_' . Engine::pobierzAktywneID();
if (!Cache::IsCached($CacheID))
{
if ($aRouter['IDMeta'])
{
// jak sa ustawione
$aMeta = Struktura::pobierzMeta($aRouter['IDMeta']);
}
if (!$aMeta['MetaTitle'])
{
$aMeta['MetaTitle'] = Konfiguracja::pobierzKonfiguracjeDoJezyka(Engine::pobierzJezyk(), 'MetaTitle');
}
if (!$aMeta['MetaKeywords'])
{
$aMeta['MetaKeywords'] = Konfiguracja::pobierzKonfiguracjeDoJezyka(Engine::pobierzJezyk(), 'MetaKeywords');
}
if (!$aMeta['MetaDescription'])
{
$aMeta['MetaDescription'] = Konfiguracja::pobierzKonfiguracjeDoJezyka(Engine::pobierzJezyk(), 'MetaDescription');
}
Cache::Set($CacheID, $aMeta);
}
else
{
$aMeta = Cache::Get($CacheID);
}
$tpl->assign('Meta', $aMeta);
unset($aMeta);
$tpl->assign_by_ref('user', $user);
if (Engine::pobierzAktywneID())
{
$tpl->assign('Sciezka', Struktura::pobierzSciezke(Engine::pobierzAktywneID()));
$tpl->assign('cmsTemat', Engine::pobierzTemat());
$aRodzice = Struktura::pobierzRodzicow(Engine::pobierzAktywneID());
$tpl->assign('AktywneID_aRodzice', $aRodzice);
$tpl->assign('AktywneID', Engine::pobierzAktywneID());
$tpl->assign('Sciezka', Struktura::pobierzSciezke(Engine::pobierzAktywneID()));
$tpl->assign('cmsSzablon', Engine::pobierzSzablon());
}
$tpl->assign('cmsTemat', Engine::pobierzTemat());
$tpl->display('../_tematy/' . Engine::pobierzTemat() . '/templates/' . self::$SZABLON['Schemat'] . '.sch.tpl', Engine::pobierzJezyk() . '_StronaGlowna');
}
}
else
{
throw new Blad404('', 'Brak struktury!');
}
}
Session::updateIdle();
if (self::$TrybWyjscia == wyjTPL && DEBUG === true && $user->jestZalogowany())
{
// jezeli tryb wyjscia jest inni niz 1 to i tego nie pokazujemy bo mogloby cos spierdolic
// potem to trzeba ukryc i pokazywac tylko w trybie debug w
echo '';
}
}
function Komunikat($Komunikat, $Opcje = array())
{
/*
* $opcje
* 'Typ' => 'Ostrzezenie', // Informacja, Blad
* 'Buttony' => array(
* 'Tak' => '?ID='.$this->ID.'&action=Usun&IDArtykulu='.$IDArtykulu.'&step=2',
* 'Nie' => 'history.back();'
* ),
*/
// Komunikat zmienia tryb wyjscia na 1 bo stalo sie cos co trzeba zakomunikowac
// i musi to wyjsc przez smarty
self::ustawTrybWyjscia(wyjTPL);
$DANE = array();
$DANE['Komunikat'] = $Komunikat;
foreach ($Opcje as $N => $V)
{
$DANE['Opcje'][$N] = $V;
}
if (ADMIN === true)
{
self::$REGIONY[1]->dodajBlok(array(
'TEMPLAT' => 'Komunikaty/Komunikat.admin.tpl',
'DANE' => $DANE
));
}
else
{
// jakiś templat z danego tematu
// wrzucamy do regionow glownego, czyli tego w ktorym jest blok modulu
self::$REGIONY[self::pobierzRegionGlowny()]->dodajBlok(array(
'TEMPLAT' => '../tematy/' . Engine::pobierzTemat() . '/templates/Komunikaty/Komunikat.user.tpl',
'DANE' => $DANE
));
}
}
}
?>