ACC SHELL
<?php
function strip_page($page){
$page = ereg_replace('{HOST_NAME}','',$page);
$page = ereg_replace("{a}(.+){/a}",'',$page);
$page = ereg_replace("{img}(.+){/img}",'',$page);
$page = ereg_replace("{foto}(.+){/foto}",'',$page);
$page = ereg_replace('{/textarea}','</textarea>',$page);
$page = ereg_replace('& ','& ',$page);
$page = ereg_replace("{FOLDER-([0-9]+)}",'',$page);
$page = strip_tags($page);
return $page;
}
function page_replace($page){
$page = str_replace('{HOST_NAME}',HOST_NAME,$page);
$page = str_replace('{img}','<img src="'.HOST_NAME.'g_small/',$page);
$page = str_replace('{/img}','" alt="img" border="0" />',$page);
$page = str_replace('{foto}','<img src="'.HOST_NAME.'g_foto/',$page);
$page = str_replace('{/foto}','" alt="img" border="0" />',$page);
$page = str_replace('{a}','<a class="gal" href="'.HOST_NAME.'g_foto/',$page);
$page = str_replace('{:a}','">',$page);
$page = str_replace('{/a}','</a>',$page);
$page = str_replace('{/textarea}','</textarea>',$page);
$page = ereg_replace('& ','& ',$page);
preg_match_all("(FOLDER-([0-9]+))",$page,$folder);
for($i=0;$i<count($folder[1]);$i++){
$n = $folder[1][$i];
$query = "SELECT path FROM ".DBPREFIX."gallery WHERE parent = '$n' AND typ = '2' ORDER BY ord ASC";
$sent = mysql_query($query);
while($data = mysql_fetch_object($sent)){
$img_path[] = $data->path;
}
for($j=0;$j<count($img_path);$j++){
$image_path .= '<a class="inside_img gal" href="'.HOST_NAME.'g_foto/'.$img_path[$j].'">'.
'<img src="'.HOST_NAME.'g_small/'.$img_path[$j].'" alt="mauritius" border="0" />'.
'</a>';
if((($j+1)%4) == 0){
$image_path .= '<div class="clear"></div>';
}
}
$page = str_replace('{FOLDER-'.$folder[1][$i].'}',$image_path,$page);
unset($image_path,$img_path);
}
return $page;
}
class sablona{
//vraci nazev sablony s danym id
public static function getNameTemplate($id){
$query = "SELECT name FROM ".DBPREFIX."template WHERE id = $id";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return array($data->name);
}
var $stranka;
function sablona($page,$home){
$this->stranka = $home;
if(!empty($page) && $page != 'index' && $page != 'default'){
$page .= ".php";
if(file_exists($page)){
$this->stranka = $page;
}
}
include($this->stranka);
}
}
class page{
var $page, $footer;
function select_template($seo_url,$page){
if(empty($page)){
$query = "SELECT t.name, p.img
FROM ".DBPREFIX."page p, ".DBPREFIX."template t
WHERE p.home = 1 && p.template = t.id";
}
else{
switch($page){
case 'page':
case 'aktualita':
$query = "SELECT t.name, p.img
FROM ".DBPREFIX."page p, ".DBPREFIX."template t
WHERE p.seo_url = '$seo_url' && p.template = t.id";
break;
case 'reference':
case 'katalog':
$query = "SELECT t.name, p.img
FROM ".DBPREFIX."setting s, ".DBPREFIX."template t
WHERE s.name = 'ref_template' && s.parameter = t.id";
break;
case 'gallery':
case 'gallery2':
$query = "SELECT t.name
FROM ".DBPREFIX."setting s, ".DBPREFIX."template t
WHERE s.name = 'gallery_template' && s.parameter = t.id";
break;
default:
$query = "SELECT t.name, p.img
FROM ".DBPREFIX."page p, ".DBPREFIX."template t
WHERE p.home = 1 && p.template = t.id";
break;
}
}
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
if(!empty($data->name)){
return array($data->name,$data->img);
}
else{
$query = "SELECT t.name, p.img
FROM ".DBPREFIX."page p, ".DBPREFIX."template t
WHERE p.home = 1 && p.template = t.id";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return array($data->name,$data->img);
}
}
//vraci jmeno kategorie stranky s danym seoUrl
public static function nameCategory($seoUrl){
$query = " SELECT pc.name FROM ".DBPREFIX."page p, ".DBPREFIX."page_category pc
WHERE p.seo_url = '".$seoUrl."' AND p.category = pc.id";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return $data->name;
}
//vraci nazev kategorie o danem id
public static function getNameCategory($id){
$query = "SELECT name FROM ".DBPREFIX."page_category WHERE id = $id";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return $data->name;
}
function show($name){
////nalezne zobrazovanou stranku
$query = "SELECT page, footer FROM ".DBPREFIX."page WHERE seo_url = '$name'";
$sent = mysql_query($query);
if(!($data = mysql_fetch_object($sent))){
$query = "SELECT page, footer FROM ".DBPREFIX."page WHERE seo_url = 'text-error'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
}
$page = page_replace($data->page);
$this->page = stripslashes($page);
if($this->footer != 1){
$this->footer = stripslashes($data->footer);
}
}
var $home_page;
function home(){
$query = "SELECT page, footer FROM ".DBPREFIX."page WHERE home = 1 ORDER BY name";
$sent = mysql_query($query);
while($data = mysql_fetch_object($sent)){
$page = page_replace($data->page);
$this->home_page[] = stripslashes($page);
if($this->footer != 1){
$this->footer = stripslashes($data->footer);
}
}
}
function getparent($idm, $id){
$query = "SELECT name FROM ".DBPREFIX."page WHERE seo_url='".(($id)?$id:$idm)."';"; //nalezne nazev zobrazovane stranky
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
$tmp=(($data->name)?$data->name:$idm);
$tmp2=($tmp?$tmp:$id);
if ($_GET['page']=="gallery") {
$gal= new gallery;
$galname=$gal->name($gal->select_gallery_id($id));
if (!$galname) $galname="Fotogalerie";
}
return (($_GET['page']=="gallery")?$galname:($tmp2?$tmp2:"Aktuální články a názory"));
}
}
class menu{
function makeSeoUrl($url) {
static $tbl = array("\xc3\xa1"=>"a","\xc3\xa4"=>"a","\xc4\x8d"=>"c","\xc4\x8f"=>"d","\xc3\xa9"=>"e","\xc4\x9b"=>"e","\xc3\xad"=>"i","\xc4\xbe"=>"l","\xc4\xba"=>"l","\xc5\x88"=>"n","\xc3\xb3"=>"o","\xc3\xb6"=>"o","\xc5\x91"=>"o","\xc3\xb4"=>"o","\xc5\x99"=>"r","\xc5\x95"=>"r","\xc5\xa1"=>"s","\xc5\xa5"=>"t","\xc3\xba"=>"u","\xc5\xaf"=>"u","\xc3\xbc"=>"u","\xc5\xb1"=>"u","\xc3\xbd"=>"y","\xc5\xbe"=>"z","\xc3\x81"=>"A","\xc3\x84"=>"A","\xc4\x8c"=>"C","\xc4\x8e"=>"D","\xc3\x89"=>"E","\xc4\x9a"=>"E","\xc3\x8d"=>"I","\xc4\xbd"=>"L","\xc4\xb9"=>"L","\xc5\x87"=>"N","\xc3\x93"=>"O","\xc3\x96"=>"O","\xc5\x90"=>"O","\xc3\x94"=>"O","\xc5\x98"=>"R","\xc5\x94"=>"R","\xc5\xa0"=>"S","\xc5\xa4"=>"T","\xc3\x9a"=>"U","\xc5\xae"=>"U","\xc3\x9c"=>"U","\xc5\xb0"=>"U","\xc3\x9d"=>"Y","\xc5\xbd"=>"Z"," "=>"-");
$seo_url = strtr($url, $tbl);
$seo_url = str_replace('\"','qt',$seo_url);
$seo_url = str_replace('\'','qt',$seo_url);
$seo_url = strtolower($seo_url);
$seo_url = preg_replace('~[^-a-z0-9_]+~', '', $seo_url);
return $seo_url;
}
function select($open,$page,$inc,$nameCategory){
if($nameCategory==="Pro spolupracovníky"){
$menuName="menu_spoluprac";
}
else{
$menuName="menu";
}
//nalezeni polozek menu
$query = " SELECT m.id AS menu_id, m.name, m.parent, u.url, m.page, m.url AS url_id
FROM ".DBPREFIX.$menuName." m, ".DBPREFIX."menu_url u
WHERE m.url = u.id AND m.view = 1 AND m.parent = 0
ORDER BY m.pos ASC";
$sent = mysql_query($query);
$menu = '<ul class="menu">'."\n";
/* $query2 = "SELECT m.parent FROM ".DBPREFIX."menu m, ".DBPREFIX."page p WHERE p.seo_url='".$page."' AND p.id = m.page";//zjisti rodice menu aktivni stranky
$sent2 = mysql_query($query2);
$data2 = mysql_fetch_object($sent2);*/
//pouzivame k ocislovani polozek v menu na webu unitedsolution.cz
$pocet = 1;
while($data = mysql_fetch_object($sent)){
$url_m_name = $this->makeSeoUrl(stripslashes($data->name));
if(!empty($data->page)){ //jestliĹľe dane dana slozka menu nekam ukazeje(nejde o uvodni strnaku)
//nalezne stranky kam slozka menu ukazuje
$sql = "SELECT seo_url, name FROM ".DBPREFIX."page WHERE id = '$data->page'";
$s = mysql_query($sql);
$n = mysql_fetch_object($s);
}
// na webu unitedsolution.cz muze byt max 6 polozek v menu
if($pocet == 6) {
$menu.="\t\t".'<li class="menu-'.$pocet.' last">';
}else{
$menu.="\t\t".'<li class="menu-'.$pocet.'">';
}
$pocet++;
if($data->url_id != 2){//nejde o uvodni stranku
if ((isset($page)) && ($url_m_name==$page)){//jde-li o aktivni polozku menu, pak ji zvirazni a prida znacku pro submenu
$menu .='<a class="active" href="'.HOST_NAME;
$menu .=(!empty($data->url) ? $data->url : '').
(!empty($n->seo_url) ? $n->seo_url : '').
'/">'.stripslashes($data->name);
$menu .='</a>';
// $menu .='{SUB_MENU}';
}
else{//nejedna se o aktivni polozku
$menu .='<a href="'.HOST_NAME;
$menu .=(!empty($data->url) ? $data->url : '').
(!empty($n->seo_url) ? $n->seo_url : '').
'/">'.stripslashes($data->name);
$menu .='</a>';
/*if ((isset($page)) && ($data2->parent == $data->menu_id)){//jestlize aktivni stranka je v submenu prave pridavaneho menu
$menu .='{SUB_MENU}';
}*/
}
}//jde o uvodni stranku
else{
if (!isset($page)){
$menu.="\t\t".'<a class="active" href="'.HOST_NAME.'">'.stripslashes($data->name).'</a>';
}
else{
$menu.="\t\t".'<a href="'.HOST_NAME.'">'.stripslashes($data->name).'</a>';
}
}
//unset($n->seo_url);
unset($data->url);
if(!isset($n)) $n = null;
//// vyda pocet polozek v podmenu dane složky menu, jestliže zobrazovaná stránka = dane polozce menu
//if(isset($n) && ($page == $n->seo_url || strtolower($open) == $n->seo_url) /*$page == $url_m_name || $open == $url_m_name*/){
// $query2 = "SELECT COUNT(*) AS pocet FROM ".DBPREFIX."menu WHERE parent = '$data->menu_id'";
// $sent2 = mysql_query($query2);
// $info = mysql_fetch_object($sent2);
//}
$menu .= '</li>'."\n";
//unset($n->seo_url);
}
if($nameCategory==="Pro spolupracovníky"){//jsme-li na strance pro spolupracovniky, tak se prida automaticky 2 menu s pevne danym odkazem ven
$menu .="\t\t".'<li class="menu-'.$pocet.' '.($pocet==6?'last':'').'"><a href="http://ftp.unitedsolution.cz/uso/Login.aspx">SMLOUVY</a></li>'."\n";
$pocet++;
$menu .="\t\t".'<li class="menu-'.$pocet.' '.($pocet==6?'last':'').'"><a href="http://ftp.unitedsolution.cz/webfiles/manager/">MANAŽEŘI</a></li>'."\n";
}
$menu .= "\t".'</ul>'."\n";
return $menu;
}
//casem asi predelat :X
function select_sub($open,$page,$inc){
if($page == '404') return '';
if($inc == 'sitemap') return '';
////nalezne menu k aktualne zobrazovane strance
$query = " SELECT m.id, m.parent
FROM ".DBPREFIX."page p, ".DBPREFIX."menu m
WHERE p.seo_url = '$page' AND p.id = m.page";
$sent = mysql_query($query);
$parent = mysql_fetch_object($sent);
////jestliže nemá rodice, tak..
$parentId = $parent->parent == 0 ? $parent->id : $parent->parent;
////nalezne podmenu k zobrazovane strance
$query = " SELECT m.page
FROM ".DBPREFIX."menu m
WHERE m.parent = '" . $parentId . "'";
$sent = mysql_query($query);
$menu = '<ul class="submenu">';
while($data = mysql_fetch_object($sent)){
////nalezne stranku na kterou ukazuje aktualni slozka podmenu
$query = " SELECT p.name, p.seo_url
FROM ".DBPREFIX."page p
WHERE p.id = '" . $data->page . "'";
$sent2 = mysql_query($query);
$n2 = mysql_fetch_object($sent2);
if ($n2->seo_url==$page){//je-li vybrane podmenu aktivni strnaka tak ji zvirazni
$menu .='<li><a class="active" href="'.HOST_NAME;
}
else{
$menu .='<li><a href="'.HOST_NAME;
}
$menu .= (!empty($n2->seo_url) ? $n2->seo_url : '').
'/">'.stripslashes($n2->name).'</a>'.
'</li>';
}
$menu.='</ul>';
return $menu;
}
function select2($open,$page,$inc){
$query = " SELECT m.id, m.name, u.url, m.page, m.url AS url_id
FROM ".DBPREFIX."menu m, ".DBPREFIX."menu_url u
WHERE m.url = u.id AND m.view = 1 AND m.parent = 0
ORDER BY m.pos ASC";
$sent = mysql_query($query);
$menu = '<ul class="foo_menu">'."\n";
//$menu.='<li><b>menu: </b></li>';
while($data = mysql_fetch_object($sent)){
$url_m_name = $this->makeSeoUrl(stripslashes($data->name));
if(!empty($data->page)){
$sql = "SELECT seo_url FROM ".DBPREFIX."page WHERE id = '$data->page'";
$s = mysql_query($sql);
$n = mysql_fetch_object($s);
}
if($data->url_id != 2){
$menu .= "\t\t".'<li><a href="'.HOST_NAME. // $url_m_name.'/'.
(!empty($data->url) ? $data->url : '').
(!empty($n->seo_url) ? $n->seo_url : '').
'/">'.stripslashes($data->name).'</a> ';
}
else{
$menu .= "\t\t".'<li><a href="'.HOST_NAME.'">'.stripslashes($data->name).'</a> ';
}
$menu_line = 1;
unset($n->seo_url);
unset($data->url);
$menu .= '</li>'."\n";
}
$menu .= "\t".'</ul>'."\n";
return $menu;
}
function sitemap(){
$query = " SELECT m.id, m.name, u.url, m.page, m.url AS url_id
FROM ".DBPREFIX."menu m, ".DBPREFIX."menu_url u
WHERE m.url = u.id AND m.view = 1 AND m.parent = 0
ORDER BY m.pos ASC";
$sitemap = '<h1>'.$texts['sitemap'][$langno].'</h1>';
$sent = mysql_query($query);
while($data = mysql_fetch_object($sent)){
$sitemap .= '<div class="sitemap_tab"></div>';
$url_m_name = $this->makeSeoUrl(stripslashes($data->name));
if(!empty($data->page)){
$sql = "SELECT seo_url, title FROM ".DBPREFIX."page WHERE id = '$data->page'";
$s = mysql_query($sql);
$n = mysql_fetch_object($s);
}
if($data->url_id != 2){
$sitemap .= '<a class="sitemap" href="'.HOST_NAME. // $url_m_name.'/'.
(!empty($data->url) ? $data->url : '').
(!empty($n->seo_url) ? $n->seo_url : '').
'/">'.stripslashes($data->name).
'</a>'.'<span class="sitemap"> - '.$n->title.'</span>';
$sql2 = "SELECT m.name, p.seo_url FROM ".DBPREFIX."menu AS m, ".DBPREFIX."page AS p
WHERE m.parent = '$data->id' AND m.page != '0' AND p.id = m.page";
$s2 = mysql_query($sql2);
while($n2 = mysql_fetch_object($s2)){
$sitemap .= '<a class="sitemap_sub" href="'.HOST_NAME.
(!empty($data->url) ? $data->url : '').
(!empty($n->seo_url) ? $n->seo_url : '').
'/'.$n2->seo_url.'/">'.$n2->name.'</a>';
}
}
else{
$sql = "SELECT title FROM ".DBPREFIX."page WHERE home = '1'";
$s = mysql_query($sql);
$n = mysql_fetch_object($s);
$sitemap .= '<a class="sitemap" href="'.HOST_NAME.'">'.stripslashes($data->name).
'</a>'.'<span class="sitemap"> - '.$n->title.'</span>';
}
unset($n->seo_url);
unset($data->url);
$sitemap .= '<br />';
}
return $sitemap;
}
}
class footer{
var $page;
function select_footer(){
$query = "SELECT page FROM ".DBPREFIX."footer ORDER BY pos ASC";
$sent = mysql_query($query);
while($data = mysql_fetch_object($sent)){
$page = page_replace($data->page);
$this->page[] = stripslashes($page);
}
}
}
class heading{
public static function select_heading($id){
$query = "SELECT page FROM ".DBPREFIX."heading where id= '$id'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
$page = page_replace($data->page);
return stripslashes($data->page);
}
}
class gallery{
var $id, $typ, $par, $name, $memo, $path, $seourl_gallery, $vip, $rok, $mesic,$den,$visible;
/*nacte mesic a rok ze svolene galerie*/
function selectCas ($parent) {
$query = "SELECT mesic,rok FROM ".DBPREFIX."gallery WHERE id = '$parent'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return $data->rok.$data->mesic;
}
//zkontroluje spravnost formatu zadaneho data a jeho existenci
//pokud jedna z kontrol neprojde, tak false
//jinak vraci true
public function isDate($datum){
if(!ereg("^[0-9]{1,2}.[0-9]{1,2}.[0-9]{4}$",$datum)){//neni-li spravny format data
return FALSE;
}
$date_array = explode(".",$datum);//rozlozi datum do pole([0]=>den,[1]=>mesic,[2]=>rok)
if (!checkdate($date_array[1], $date_array[0], $date_array[2])){//jestlize se jedna o neeexistujici datum
return FALSE;
}
return TRUE;
}
function select($parent){
$query = "SELECT * FROM ".DBPREFIX."gallery WHERE parent = '$parent' ORDER BY typ ASC, ord ASC, name ASC";
//$query = "SELECT * FROM ".DBPREFIX."gallery WHERE parent = '$parent' OR (parent='0' AND typ='1') AND rok!=0 ORDER BY rok DESC, mesic DESC, den DESC";
$sent = mysql_query($query);
while($data = mysql_fetch_object($sent)){
if(($data->typ==2 || $data->visible)){//jde -li o viditelnou slozku nebo obrazek
$this->id[] = $data->id;
$this->typ[] = $data->typ;
$this->par[] = $data->parent;
$this->name[] = stripslashes($data->name);
$this->memo[] = stripslashes($data->memo);
$this->path[] = $data->path;
$this->seourl_gallery[] = $data->seo_url;
$this->rok[] = $data->rok;
$this->mesic[] = $data->mesic;
$this->den[] = $data->den;
$this->visible[] = $data->visible;
}
}
}
function back_button($id){
$query = "SELECT parent FROM ".DBPREFIX."gallery WHERE id = '$id'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
$parent = $data->parent;
$query = "SELECT seo_url FROM ".DBPREFIX."gallery WHERE id = '$parent'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return $data->seo_url;
}
public function getDate($id){
$query = "SELECT rok, mesic, den FROM ".DBPREFIX."gallery WHERE id = '$id'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return $data->den.'.'.$data->mesic.'.'.$data->rok;
}
function name($id){
$query = "SELECT name FROM ".DBPREFIX."gallery WHERE id = '$id'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return stripslashes($data->name);
}
function find_hotel($id){
// k.memo, k.club, k.sluzby, k.a_foto, k.a_price, k.menu,
$query = " SELECT k.name, k.stars, k.s_memo, k.seo_url, k.logo
FROM ".DBPREFIX."katalog k, ".DBPREFIX."gallery_hotel g
WHERE g.id_g = '$id' AND g.id_h = k.id";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
$this->hotel_name = stripslashes($data->name);
$this->hotel_stars = stripslashes($data->stars);
$this->hotel_s_memo = stripslashes($data->s_memo);
$this->hotel_seo_url = $data->seo_url;
$this->hotel_logo = $data->logo;
}
function find_hotel_gallery($id){
$query = "SELECT id_g FROM ".DBPREFIX."gallery_hotel WHERE id_h = '$id'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return $data->id_g;
}
var $foto, $createable, $my_seo_url, $my_gallery_name;
/*nacte fotky z VIP, nahodne 7 z posledneho albumu*/
function selectVIPImages ($pocet = 4) {
$query = "SELECT path, parent, memo
FROM ".DBPREFIX."gallery
WHERE typ= '2' AND parent =
(SELECT id FROM ".DBPREFIX."gallery WHERE typ = '1'
ORDER BY rok DESC, mesic DESC, den DESC, RAND() LIMIT 1)
ORDER BY RAND() LIMIT ".$pocet;
$result = mysql_query($query);
while($row = mysql_fetch_object($result)){
$this->foto[] = $row->path;
$this->memo[] = $row->memo;
$subQuery = "SELECT seo_url, name FROM ".DBPREFIX."gallery WHERE id = '".$row->parent."'";
$subResult = mysql_query($subQuery);
$subRow = mysql_fetch_object($subResult);
$this->my_seo_url[] = $subRow->seo_url;
$this->my_gallery_name[] = $subRow->name;
}
}
public function getImageFolder($id){
$query = "SELECT path, typ FROM ".DBPREFIX."gallery WHERE parent = '$id'";
$sent = mysql_query($query);
while($data = mysql_fetch_object($sent)){
if($data->typ == 2){
return $data->path;
}
}
return NO_IMAGE;
}
function select_foto($id_g,$zobraz){
$id[] = $id_g;
while(true){
unset($query);
$query = "SELECT COUNT(*) AS pocet FROM ".DBPREFIX."gallery WHERE typ = '2' AND (";
for($i=0;$i<count($id);$i++){
$query .= "parent = '$id[$i]' ";
if($i+1 != count($id)){
$query .= "OR ";
}
else{
$query .= ") ";
}
}
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
$pocet = $data->pocet;
if($pocet >= $zobraz){
$createable = true;
break;
}
else{
unset($query);
$query = "SELECT COUNT(*) AS pocet FROM ".DBPREFIX."gallery WHERE typ = '1' AND (";
for($i=0;$i<count($id);$i++){
$query .= "parent = '$id[$i]' ";
if($i+1 != count($id)){
$query .= "OR ";
}
else{
$query .= ") ";
}
}
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
$pocet = $data->pocet;
if($pocet == 0){
break;
}
else{
unset($query);
$query = "SELECT id FROM ".DBPREFIX."gallery WHERE typ = '1' AND (";
for($i=0;$i<count($id);$i++){
$query .= "parent = '$id[$i]' ";
if($i+1 != count($id)){
$query .= "OR ";
}
else{
$query .= ") ";
}
}
$sent = mysql_query($query);
while($data = mysql_fetch_object($sent)){
$id[] = $data->id;
}
}
}
}
if($createable == true){
$this->createable = $createable;
$query = "SELECT path,parent, memo FROM ".DBPREFIX."gallery WHERE typ = '2' AND (";
for($i=0;$i<count($id);$i++){
$query .= "parent = '$id[$i]' ";
if($i+1 != count($id)){
$query .= "OR ";
}
else{
$query .= ") ";
}
}
$query .= "ORDER BY ord ASC";
$sent = mysql_query($query);
while($data = mysql_fetch_object($sent)){
$foto_path[] = $data->path;
$query = "SELECT seo_url FROM ".DBPREFIX."gallery WHERE id = '".$data->parent."'";
$result = mysql_query($query);
$row = mysql_fetch_object($result);
$my_seo_url[] = $row->seo_url;
$my_memo[] = $row->memo;
}
while(count($e) < $zobraz){
$test = false;
if(!empty($this->img_rand) && $this->img_rand <= count($foto_path)){
$inv = rand(0,$this->img_rand - 1);
}
else{
$inv = rand(0,count($foto_path)-1);
}
for($i=0;$i<count($e);$i++){
if($inv == $e[$i]) $test = true;
}
if($test != true) $e[] = $inv;
}
for($i=0;$i<count($e);$i++){
$this->foto[] = $foto_path[$e[$i]];
$this->my_seo_url[] = $my_seo_url[$e[$i]];
$this->memo[] = $my_memo[$e[$i]];
}
}
}
function index_img(){
$query = "SELECT * FROM ".DBPREFIX."gallery_index";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return $data->id_gallery;
}
function footer(){
$query = "SELECT def FROM ".DBPREFIX."gallery_setting WHERE name = 'footer'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return $data->def;
}
function select_gallery_id($name){
$query = "SELECT id FROM ".DBPREFIX."gallery WHERE seo_url = '$name'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return $data->id;
}
function select_setting_pagenum(){
$query = "SELECT def FROM ".DBPREFIX."gallery_setting WHERE name = 'pagenum'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return $data->def;
}
function first_foto(){
$this->select($_GET['id']);
for($i=0;$i<count($this->id);$i++){
if($this->typ[$i] != 1){ // !echo folder
return $this->path[$i];
}
}
return 0;
}
function get_thumb($id){
$query = "SELECT path FROM ".DBPREFIX."gallery WHERE typ = '2' AND parent=$id ORDER BY RAND() LIMIT 4";
$sent = mysql_query($query);
while ($data = mysql_fetch_object($sent)){
$path[]=$data->path;
}
return $path;
}
function select_vip(){
$query = "SELECT * FROM ".DBPREFIX."gallery_vip";
$sent = mysql_query($query);
while($data = mysql_fetch_object($sent)){
$this->vip[$data->id]=1;
}
return 0;
}
}
class seo{
var $title, $keywords, $description, $lang;
//nastavi seo podle parametru
function setSeo($title,$keywords,$description,$lang) {
$this->title = $title;
$this->keywords = $keywords;
$this->description = $description;
$this->lang = $lang;
}
function select_seo_page($seo_url){
$query = "SELECT title, keywords, description, lang FROM ".DBPREFIX."page WHERE seo_url = '$seo_url'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
$this->title = $data->title;
$this->keywords = $data->keywords;
$this->description = $data->description;
$this->lang = $data->lang;
}
function select_seo_home(){
$query = "SELECT title, keywords, description, lang FROM ".DBPREFIX."page WHERE home = '1'";
$sent = mysql_query($query);
while($data = mysql_fetch_object($sent)){
$title[] = $data->title;
$keywords[] = $data->keywords;
$description[] = $data->description;
$lang[] = $data->lang;
}
unset($this->title,$this->description,$this->keywords,$this->lang);
for($i=0;$i<count($title);$i++){
$this->title .= $title[$i];
if(!empty($title[$i+1])) $this->title .= ' | ';
$this->keywords .= $keywords[$i];
if(!empty($keywords[$i+1])) $this->keywords .= ', ';
$this->description .= $description[$i];
if(!empty($description[$i+1])) $this->description .= ', ';
$this->lang .= $lang[$i];
if(!empty($lang[$i+1])) $this->lang .= ', ';
}
}
function default_text($title_i,$keywords_i,$description_i,$lang_i){
if(empty($title_i) || empty($keywords_i) || empty($description_i) || empty($lang_i)){
$query = "SELECT title, keywords, description, lang FROM ".DBPREFIX."page WHERE home = '1'";
$sent = mysql_query($query);
while($data = mysql_fetch_object($sent)){
$title[] = $data->title;
$keywords[] = $data->keywords;
$description[] = $data->description;
$lang[] = $data->lang;
}
if(empty($title_i)){
for($i=0;$i<count($title);$i++){
$this->title .= $title[$i];
if(!empty($title[$i+1])) $this->title .= ' | ';
}
}
if(empty($keywords_i)){
for($i=0;$i<count($keywords);$i++){
$this->keywords .= $keywords[$i];
if(!empty($keywords[$i+1])) $this->keywords .= ', ';
}
}
if(empty($description_i)){
for($i=0;$i<count($description);$i++){
$this->description .= $description[$i];
if(!empty($description[$i+1])) $this->description .= ', ';
}
}
if(empty($lang_i)){
for($i=0;$i<count($lang);$i++){
$this->lang .= $lang[$i];
if(!empty($lang[$i+1])) $this->lang .= ', ';
}
}
}
}
}
class navigation {//pomocna trida pro spravne zobarzovani daneho poctu polozek jedne tabulky
//vytvoreni pole $navi nesouci si parametry, na ktere stance se v tabulce nachazim a zda se maji zobrazovat odkazy na predchozi(nasledujici) stranku
function getNavi($table, $page=1, $count=5) {
$navi = array("max" => 0,
"count" => 0,
"left" => true,
"right" => true,
"page" => 0,
"maxPage" => 0
);
$page = intVal($page);
$count = intVal($count);
//pokud jdeme na nultou stranku, nebo zobrazujeme nula zaznamu, zkoncime s false
if($page == 0 or $count == 0) return false;
//pokusi se neco vyhledat ve zvolene databazi, pokud false, tak vraci false
$query = "SELECT * FROM `$table` LIMIT 0,1";
$result = mysql_query($query);
if(!$result) return false;
//zjistime pocet zaznamu v tabulce
$query = "SELECT * FROM `$table`";
$result = mysql_query($query);
//pocet zaznamu v tabulce, tzn. maximalni robrazitelny pocet
$navi['max'] = mysql_num_rows($result);
//prave zobrazenych zaznamu
$actual = $page * $count;
//muzeme zobrazit levou nevigaci?
if($page == 1) {
$navi["left"] = false;
}
//muzeme zobrazit pravou navigaci?
if($actual >= $navi['max']) {
$navi["right"] = false;
}
//ulozi do pole pocet zaznamu na stranku
$navi['count'] = $count;
//ulozi aktualni stranku
$navi['page'] = $page;
//ulozi maximalni pocet stranek
$navi['maxPage'] = ceil($navi['max'] / $count);
//pokud se snazime zobrazit stranku vetsi nez je maximum, tak zkoncime s false
if($navi['maxPage'] < $page) return false;
return $navi;
}
//vraci kod v html pro navigacni tlacitka
function showNavigation ($link, $page, $left, $right, $maxPage) {
$navi = "<p style='margin-top: 10px; padding-top: 5px; font-size: 10pt; border-top: 1px solid #000000;'>Jste na straně č.<strong>$page</strong> z celkového počtu <strong>$maxPage</strong>" . "<br />"
. (($left) ? "<a href='" . $link . ($page-1) . "/" . "' > << předchozí</a>" : "")
. (($left && $right) ? " | " : " ")
. (($right) ? "<a href='" . $link . ($page+1) . "/" . "' >další >> </a>" : "")
. "</p>";
return $navi;
}
}
//trida zpracovavajici manipulaci s novinkami
class novinky{
//vypis kalendare novinek
function select(){
$novinky = "";
//nalezne informace o vsech novinkach
$query = " SELECT id, title, memo, url, seo_url, DATE_FORMAT(date,'%d.%m.%Y') AS date1 FROM ".DBPREFIX."novinky
ORDER BY date DESC";
$sent = mysql_query($query);
unset($novinky);
$novinky="<h2>Krátké zprávy</h2>";
//pro vsechny novinky
while($data = mysql_fetch_array($sent)){
//ziskani jejich dat
$id = $data['id'];
$title = stripslashes($data['title']);
$memo = stripslashes($data['memo']);
//$novinky .= '<div class="new">'."\n";
$novinky .= '<h3>'.$title.'</h3>'."\n";
$novinky .= '<p class="justify">'."\n";
$novinky .= $memo;
$novinky .= '</p>'."\n";
}
//$novinky .= '</div>'."\n";
return $novinky;
}
//nevim jestli se pouziva tak ji nemazu
function select_all($i){
$pocet_na_stranku = 5;
$query = " SELECT id, title, memo, url, seo_url, DATE_FORMAT(date,'%d.%m.%Y') AS date1 FROM ".DBPREFIX."novinky
ORDER BY date DESC LIMIT ".($i*$pocet_na_stranku).",".$pocet_na_stranku;
$sent = mysql_query($query);
unset($novinky);
$poc=mysql_num_rows($sent);
while($data = mysql_fetch_array($sent)){
$id = $data['id'];
$title = stripslashes($data['title']);
//$memo = strip_page(stripslashes($data['memo']));
$memo = stripslashes($data['memo']);
$memo_all = page_replace(stripslashes($data['memo']));
$dat = $data['date1'];
$url = $data['url'];
$seo_url = $data['seo_url'];
$novinky .= '<div>'."\n";
$novinky .= '<h3><a name="'.$id.'"></a>'.$dat.' - '.$title.'</h3>'."\n";
$novinky .= '<div class="justify">'."\n";
$novinky .= $memo;
$novinky .= '</div>'."\n";
$novinky .= '</div>'."\n";
}
$query = "SELECT COUNT(*) as pocet FROM ".DBPREFIX."novinky WHERE 1";
$sent = mysql_query($query);
$vysledek = mysql_fetch_array($sent);
$novinky .= '<center>';
if($i>0)
$novinky .= '<a href="'.HOST_NAME.'novinky/'.($i-1).'/"><< předchozí stránka</a> ';
if($vysledek['pocet'] > ($i+1)*$pocet_na_stranku)
$novinky .= '<a href="'.HOST_NAME.'novinky/'.($i+1).'/">následující stránka >></a>';
$novinky .= '</center>';
return $novinky;
}
//vraci v poli $data infomrace o novinkach na strance v poradi page o poctu zaznamu count
function selectAll($page,$count){
$tmpPage = ($page-1) * $count;
$query = " SELECT id, title, memo,seo_url, DATE_FORMAT(date,'%d.%m.%Y') AS date
FROM ".DBPREFIX."novinky
ORDER BY id DESC
LIMIT $tmpPage,$count";
$result = mysql_query($query);
$data = array();
while($row = mysql_fetch_array($result)){
$data[] = $row;
}
return $data;
}
var $newsName, $newsText;
//vraci jednu novinku v html-pouziti pro zobrazeni jedne novinky na strance
function select_one($seo){
$query = " SELECT id, title, memo, url,seo_url, DATE_FORMAT(date,'%d.%m.%Y') AS date1 FROM ".DBPREFIX."novinky
WHERE seo_url = '$seo' OR id= '$seo'";
$sent = mysql_query($query);
unset($novinky);
$data = mysql_fetch_array($sent);
if(stripslashes($data['title']) == '') {
$novinky .= '<div>'."\n";
$novinky .= '<h2>Tato novinka nebyla nalezena.</h2>'."\n";
$novinky .= '</div>'."\n";
} else {
$title = stripslashes($data['title']);
//$memo = strip_page(stripslashes($data['memo']));
$memo = stripslashes($data['memo']);
$dat = $data['date1'];
$url = $data['url'];
$seo_url = $data['seo_url'];
$novinky .= '<div>'."\n";
$novinky .= '<h3><a href="#"></a>'.$title.' / '.$dat.'</h3>'."\n";
$novinky .= '<div class="justify">'."\n";
$novinky .= $memo;
$novinky .= '</div>'."\n";
$novinky .= '</div>'."\n";
$this->newsName = $title;
$this->newsText = $memo;
}
return $novinky;
}
//vraci jednu novinku v html-pouziti pro zobrazenivice nevinek na jedne strance
function showOne($data) {
if(!is_array($data)) return false;
//puvodne se vypisovala novinka v archivu cela, ted budeme zobrazovat miniatury jako na homepage
/*$one = "<div class='viewNews'>"
. "<h2>" . stripslashes($data['title']) . '/' . $data['date'] . "</h2>" . "\n"
. "<p>" . stripslashes($data['memo']) . "</p>"
. "</div>";*/
$id = $data['id'];
$title = stripslashes($data['title']);
$memo = stripslashes(strip_tags($data['memo']));
$memo_all = page_replace(stripslashes($data['memo']));
$dat = $data['date'];
$url = $data['url'];
$seo_url = $data['seo_url'];
$length = strlen($memo);
$max = 200;
$one = "<div class='viewNews'>";
if(isset($url) && strlen($url) > 1) {
$one .= '<h3><a href="'.$url.'">'.$title.' / '.$dat.'</a></h3>'."\n";
} else {
$one .= '<h3><a href="'.HOST_NAME.'novinky/'.$seo_url.'/">'.$title.' / '.$dat.'</a></h3>'."\n";
}
if($length > $max){
$one .= '<p class="justify">'."\n";
//$one .= substr($memo,0,$max).'...';
$one .= $this->wordCut($memo,$max).'...';
$one .= ' <a href="'.HOST_NAME.'novinky/'.$seo_url.'/">celá novinka</a></p>'."\n";
}
else{
$one .= '<p class="justify">'."\n";
$one .= $memo;
$one .= '</p>'."\n";
}
$one .= "</div>" . "\n";
return $one;
}
//rozdeleni stringu, vraci prvnich n znaku zakoncenych #[\s\n\r]+#' nepresahujici width znaku
function wordCut($str, $width = 300) { //utf-8
$str = preg_split('#[\s\n\r]+#', $str);
$len = 0;
$return = "";
foreach ($str as $val) {
$val .= ' ';
$tmp = mb_strlen($val, 'utf-8');
$len += $tmp;
if ($len >= $width) {
return $return;
} else
$return .= $val;
}
return $return;
}
}
class aktuality{
var $msg;
function add($title,$memo,$datum,$lang){
$title = addslashes($title);
$memo = addslashes($memo);
$dat_test = false;
if(!empty($title) && !empty($memo)){
if(!empty($datum)){
if(ereg("^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$",$datum)){
$date = $datum;
$dat_test = true;
}
else{
$dat_test = false;
}
}
else{
$dat_test = true;
$date = date("Y-m-d");
}
if($dat_test == true){
$query = "INSERT INTO ".DBPREFIX."aktuality (title,memo,date,lang) VALUES('$title','$memo','$date','$lang')";
if(mysql_query($query)){
$this->msg = ACTUALITY_ADDED;
}
else{
$this->msg = SQL_ERR0R;
}
}
else{
$this->msg = WRONG_DATE_FORMAT;
}
}
else{
$this->msg = FORM_EMPTY;
}
}
var $id, $title, $memo, $dat;
function select_all(){
$query = " SELECT id, title, DATE_FORMAT(date,'%d.%m.%y') AS date, lang
FROM ".DBPREFIX."aktuality
ORDER BY date DESC, id DESC";
$sent = mysql_query($query);
while($data = mysql_fetch_array($sent)){
$this->id[] = $data['id'];
$this->title[] = stripslashes($data['title']);
$this->dat[] = $data['date'];
$this->lang[] = $data['lang'];
}
}
var $str_leght;
function edit($id,$title,$memo,$datum,$lang){
$title = addslashes($title);
$memo = addslashes($memo);
if(ereg("^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$",$datum)){
$dat_test = true;
}
else{
$dat_test = false;
}
if($dat_test == true){
$query = "UPDATE ".DBPREFIX."aktuality SET title = '$title', memo = '$memo', date = '$datum', lang = '$lang' WHERE id = '$id'";
if(mysql_query($query)){
$this->msg = EDIT_COMPLETED;
}
else{
$this->msg = mysql_error();
}
}
else{
$this->msg = WRONG_DATE_FORMAT;
}
}
function select_one($id){
$query = "SELECT id, title, memo, date FROM ".DBPREFIX."aktuality WHERE id = $id";
$sent = mysql_query($query);
$data = mysql_fetch_array($sent);
$this->id = $data['id'];
$this->title = stripslashes($data['title']);
$this->memo = stripslashes($data['memo']);
$this->dat = $data['date'];
$this->lang = $data['lang'];
}
function delete($id){
$query = "DELETE FROM ".DBPREFIX."aktuality WHERE id = $id";
if(mysql_query($query)){
$this->msg = ACTUALITY_DELETED;
}
else{
$this->msg = SQL_ERROR.mysql_error();
}
}
function select(){
$query = "SELECT id, title, memo, DATE_FORMAT(date,'%d.%m.%Y') AS date FROM ".DBPREFIX."aktuality
ORDER BY date DESC, id DESC";
$sent = mysql_query($query);
unset($aktuality);
$aktuality.='<div id="actual_list">';
while($data = mysql_fetch_array($sent)){
$id = $data['id'];
$title = stripslashes($data['title']);
$memo = strip_page(stripslashes($data['memo']));
$memo_all = page_replace(stripslashes($data['memo']));
$dat = $data['date'];
$length = strlen($memo);
$max = 600;
$aktuality .= '<div class="act_box" id="actual_part_'.$id.'">'."\n";
$aktuality .= '<h1>'.$title.'</h1>'."\n";
if($length > $max){
$aktuality .= '<div class="actual_text">'."\n";
//$aktuality .= substr($memo,0,$max).' <br /><a class="odkaz" href="'.HOST_NAME.'News/'.$id.'/">zobrazit celý článek></a>';
$aktuality .= $this->wordCut($memo,$max).' <br /><a class="odkaz" href="'.HOST_NAME.'News/'.$id.'/">zobrazit celý článek></a>';
$aktuality .= '</div>'."\n";
}
else{
$aktuality .= '<div class="actual_text">'."\n";
$aktuality .= $memo_all;
$aktuality .= '</div>'."\n";
}
$aktuality .= '</div>'."\n";
}
$aktuality .= '</div>'."\n";
return $aktuality;
}
function select_small()
{
$query = "SELECT `id`, `title`, `memo`, DATE_FORMAT(date,'%d.%m.%Y') AS `date` FROM `".DBPREFIX."aktuality`
ORDER BY `date` DESC, `id` DESC LIMIT 0, 2";
$sent = mysql_query($query);
unset($aktuality);
$i=1;
while($data = mysql_fetch_array($sent)){
$id = $data['id'];
$title = stripslashes($data['title']);
$memo = strip_page(stripslashes($data['memo']));
$memo_all = page_replace(stripslashes($data['memo']));
$dat = $data['date'];
$length = strlen($memo);
$max = 100;
$aktuality .= '<div id="info'.($i++).'">';
$aktuality .= '<div class="title">'.$title.'</div>'."\n";
if($length > $max){
$aktuality .= '<div class="actual_text">'."\n";
//$aktuality .= substr($memo,0,$max).'</div>'."\n";
$aktuality .= $this->wordCut($memo,$max).'</div>'."\n";
$aktuality .= '<div class="date">'.$dat;
//$aktuality .= '<a href="javascript:act_open(\''.$id.'\');">vĂce ></a><br /><br />';
$aktuality .= '<a href="'.HOST_NAME.'News/"><img src="'.HOST_NAME.'images/sipka.png" alt=">" /></a>';
$aktuality .='</div>'."\n";
}
else{
$aktuality .= '<div class="actual_text">'."\n";
$aktuality .= $memo_all;
$aktuality .= '</div>'."\n";
$aktuality .= '<div class="date">'.$dat.'</div>'."\n";
}
$aktuality .= '</div>'."\n";
//$aktuality .= '<a href="index.php?akualita='.$id.'">vĂce ></a><br /><br />'."\n";
}
return $aktuality;
}
function select_n_items($pocet,$lng)
{
unset($aktuality);
if(!empty($lng)){
$lang_akt = $lng;
}else{
$lang_akt = $_GET["lang"];
}
if(empty($lang_akt))$lang_akt="cs";
if($lang_akt=="cs") $akt_lang="Aktuality";
if($lang_akt=="en") $akt_lang="News";
if($lang_akt=="de") $akt_lang="Neuheiten";
if($lang_akt=="ru") $akt_lang="левеŃти";
$aktuality .= '<div class="title">'.$akt_lang.'</div>';
$query = "SELECT id FROM ".DBPREFIX."lang WHERE `lang` LIKE '".$lang_akt."'";
$sent = mysql_query($query);
$id_lang = mysql_fetch_array($sent);
$query = "SELECT `id`, `title`, `memo`, DATE_FORMAT(date,'%d.%m.%Y') AS `datum` FROM `".DBPREFIX."aktuality`
WHERE `lang`='".$id_lang['id']."' ORDER BY `date` DESC";
$sent = mysql_query($query);
$i=1;
while($data = mysql_fetch_array($sent) and $i<=$pocet){
$id = $data['id'];
$title = stripslashes($data['title']);
$memo = strip_page(stripslashes($data['memo']));
$dat = $data['datum'];
$length = strlen($memo);
$max = 100;
$aktuality .= '<div id="aktualita">';
$aktuality .= '<div class="title">'.$title.'</div>'."\n";
$aktuality .= '<div class="aktualita_text">'."\n";
if($length>$max){
//$aktuality .= substr($memo,0,$max).'...</div>'."\n";
$aktuality .= $this->wordCut($memo,$max).'...</div>'."\n";
}else{
$aktuality .= $memo.'</div>'."\n";
}
$aktuality .= '<a class="odkaz" href="'.HOST_NAME.'l-'.$lang_akt.'/News/'.$id.'/"></a>';
$aktuality .= '<div class="date">'.$dat.'</div>';
$aktuality .='</div>'."\n";
$i++;
}
return $aktuality;
}
function show_one(){
$news_id = $_GET["news_id"];
unset($aktualita);
if(!empty($news_id)){
$this->select_one($news_id);
$title = stripslashes($this->title);
$memo_all = page_replace(stripslashes($this->memo));
$dat = $this->date;
$aktualita = '<div id="actual_list">';
$aktualita .= '<div class="act_box">'."\n";
$aktualita .= '<h1>'.$title.'</h1>'."\n";
$aktualita .= '<div class="actual_text">'."\n";
$aktualita .= $memo_all;
$aktualita .= '</div>'."\n";
$aktualita .= '</div>'."\n";
$aktualita .= '</div>'."\n";
}
return $aktualita;
}
}
class podpis{
function get(){
$query = "SELECT * FROM ".DBPREFIX."podpis";
$sent = mysql_query($query);
$data = mysql_fetch_array($sent);
return $data['podpis'];
}
}
/**
*
* sitemap statickych stranek, prohledava i jejich obsah a vnich hleda odkazy smerujici do struktury webu (uz je ale neotevira)
*
*/
class sitemap {
/**
*
* rekurzivne projde polozky menu a posklada do stromove struktury
*
*/
function getMenuItem($parent) {
$menu = array();
$query = "SELECT m.id, m.name, m.url as menu_url, m.page, m.parent, p.seo_url, mu.url as page_url
FROM ".DBPREFIX."menu m
LEFT JOIN ".DBPREFIX."page p ON m.page = p.id
LEFT JOIN ".DBPREFIX."menu_url mu ON m.url = mu.id
WHERE m.view = '1' AND m.parent = '$parent'
ORDER BY m.pos";
$result = mysql_query($query);
while($row = mysql_fetch_object($result)) {
$menu[$row->id]['name'] = $row->name;
$menu[$row->id]['url'] = $row->seo_url == null ? $row->page_url : $row->seo_url;
$menu[$row->id]['page'] = $row->menu_url;
if($menu[$row->id]['url'] == 'index') {
$menu[$row->id]['url'] = HOST_NAME;
}
//vybereme odkazy z teto stranky
if($menu[$row->id]['page'] == 1) {
$pageLinks = $this->getLinks($menu[$row->id]['url']);
if(count($pageLinks) != 0) $menu[$row->id]['next'] = $pageLinks;
}
$next = $this->getMenuItem($row->id);
if(count($next) != 0) $menu[$row->id]['next'] = $next;
}
return $menu;
}
/**
*
* tato fce veme adresu stranky, vyhleda jeji obsah a pokusi se separovat odkazy vedouci do vnitrni struktury webu
*
*/
function getLinks($page) {
//tyto typy odkazu v mape nechceme
$protected = array("files", "images", "img");
$query = "SELECT p.page
FROM ".DBPREFIX."page p
WHERE seo_url = '$page'";
$result = mysql_query($query);
$row = mysql_fetch_object($result);
//nastaveni pro probehnuti cyklu zjistovani linku ve statickych strankach
//$regExp = "(\{HOST_NAME\}[^<]*\<\/a\>)(.*)$";
$regExp = "(\.\.\/[^<]*\<\/a\>)(.*)$";
$text = stripslashes($row->page);
$linksArr = array();
$links = array();
while(eregi($regExp,$text,$links)) {
$link = $links[1];
$link = str_replace('</a>','',$link);
//$link = substr($link, 11);
if(!in_array(substr($link, 0, strpos($link,"/")), $protected)) {
$index = count($linksArr);
$linksArr[$index]['name'] = substr($link, strpos($link,">") + 1);
$linksArr[$index]['url'] = substr($link, 0, strpos($link,"\""));
}
$text = $links[2];
}
return $linksArr;
}
/**
*
* rekurzivne prochazi predane pole a vraci na vystup zformatovane odkazy
*
*/
function getItem($items) {
if(!is_array($items)) return '';
$tmp = '<ul>' . "\n";
foreach($items as $key => $item) {
$link = trim($item['url']);
if(substr($link,-1) != '/') $link .= '/';
$tmp .= ' <li>'
. '<a href="' . $link . '">' . StrToLower($item['name']) . '</a>';
if(isset($item['next'])) {
$tmp .= $this->getItem($item['next']);
}
$tmp .= ' </li>' . "\n";
}
$tmp .= '</ul>' . "\n";
return $tmp;
}
/**
*
* konecne spracovani, spis volani potrebnych metod :)
*
*/
function getSiteMap() {
$map = $this->getMenuItem(0);
/*echo '<pre>';
print_r($map);
echo '</pre>';*/
$siteMap = '<h2>Mapa stránek</h2>';
$siteMap .= '<div id="sitemap">';
$siteMap .= $this->getItem($map,0);
$siteMap .= '</div>';
return $siteMap;
}
}
//trida forum se stara o manipulaci s daty v tabulce forum_tema a forum_odpovedi
class forum{
//vypise vsechna temata v databazi a pocet odpovedi do tabulky
function ukaz_vsechna_tema(){
$forum = '<table><tr><th width="70">Vytvořeno</th><th>Téma (počet příspěvků)</th><th>Autor</th><th width = "120">Aktualizováno</th></tr>';
$query = "SELECT ft.id, ft.tema, u.username, DATE_FORMAT(ft.datum,'%d.%m.%Y') AS datum
FROM ".DBPREFIX."forum_tema ft, ".DBPREFIX."users u WHERE ft.autor_id = u.id ORDER BY ft.datum DESC";
$sent = mysql_query($query);
while($data = mysql_fetch_array($sent)){
$query2 = "SELECT count(id) AS pocet FROM ".DBPREFIX."forum_odpovedi where tema_id=".$data['id'];
$sent2 = mysql_query($query2);
$data2 = mysql_fetch_array($sent2);
if($data2['pocet']==0){
$dat_posl_pris='-';
}
else{
$dat_posl_pris = $this->posl_aktual_tema($data['id']);
}
$forum .='<tr><td>'.$data['datum'].'</td><td>'.'<a href="'.HOST_NAME.'/diskusni-forum/?id_tema='.$data['id'].'">'.$data['tema'].' ('.$data2['pocet'].')</a> </td><td><a href="'.HOST_NAME.'profil/?user_name='.$data['username'].'">'.$data['username'].'</a></td><td>'.$dat_posl_pris.'</td></tr>';
}
$forum.='</table>';
return $forum;
}
//vraci formular pro pridani noveho tematu v HTML
function ukaz_form_tema($tema){
return '<h3>Založit nové téma</h3><form method="post" class="form-comment">
<textarea name="tema">'.$tema.'</textarea>
<input type="submit" value="Založit téma" />
</form>';
}
public function posl_aktual_tema($id_tema){
$query = "SELECT DATE_FORMAT(max(datum),'%d.%m.%Y - %k:%i') AS datum FROM ".DBPREFIX."forum_odpovedi where tema_id=".$id_tema;
$sent = mysql_query($query);
$data= mysql_fetch_array($sent);
return $data['datum'];
}
//prida zadane tema od daneho autora do tabulky forum_tema
function pridej_tema($tema, $autor_id){
$query = "INSERT INTO ".DBPREFIX."forum_tema (tema, autor_id, datum) VALUES ('".$tema."','".$autor_id."','".date("Y-n-d H:i:s")."')";
$res = mysql_query($query);
if (!$res) return "Při vkládání témata došlo k chybě";
return "Téma bylo vloženo.";
}
////vypise vsechny odpovedi a jejich pocet na tema $id_tema v databazi do tabulky
function ukaz_vsechny_odpovedi($id_tema){
$query = "SELECT ft.tema, u.username, DATE_FORMAT(ft.datum,'%d.%m.%Y') AS datum
FROM ".DBPREFIX."forum_tema ft, ".DBPREFIX."users u where ft.id = ".$id_tema." AND ft.autor_id = u.id";
$sent = mysql_query($query);
$data = mysql_fetch_array($sent);
$posled_aktual=$this->posl_aktual_tema($id_tema);//zjistim datum posledniho prispevku pro dane tema
$aktualizace = explode("/",$posled_aktual);
$forum = '<h3 class="forum">'.$data['tema'].'</h3>';
$forum .= '<p><small>Vytvořeno: '.$data['datum'].' Naposledy aktualizováno: '.$aktualizace[0].' - '.$aktualizace[1].' Založil: '.$data['username'].'</small></p>';
$query2 = "SELECT fo.odpoved, u.username, DATE_FORMAT(fo.datum,'%d.%m.%Y') AS datum, DATE_FORMAT(fo.datum,'%k:%i') AS cas
FROM ".DBPREFIX."forum_odpovedi fo, ".DBPREFIX."users u where fo.tema_id = ".$id_tema." AND fo.autor_id = u.id ORDER BY fo.datum DESC";
$sent2 = mysql_query($query2);
while($data2 = mysql_fetch_array($sent2)){
$forum .= '<div class="comment">';
$forum .= '<p>'.$data2['odpoved'].'</p>';
$forum .= '<p class="author">napsal <strong><a href="'.HOST_NAME.'/profil/?user_name='.$data2['username'].'&id_tema='.$id_tema.'">'.$data2['username'].'</a></strong> dne <strong>'.$data2['datum'].' v '.$data2['cas'].'</strong></p>';
$forum .= '</div>';
}
$forum.='<p><a href="'.HOST_NAME.'diskusni-forum/"> Zpět na přehled témat.</a></p>';
return $forum;
}
//vraci formular pro pridani nove odpovedi na tema $id_tema v HTML
function ukaz_form_odpovedi($id_tema, $odpoved){
return '<h3>Přidej vlastní názor</h3><form action="'.HOST_NAME.'diskusni-forum/?id_tema='.$id_tema.'" class="form-comment" method="post">
<div>
<textarea name="odpoved">'.$odpoved.'</textarea>
<input type="submit" value="Přidat příspěvek" />
<div class="clear"></div>
</div>
</form>';
}
//prida zadanou odpoved na dane tema od daneho autora do tabulky forum_odpovedi
function pridej_odpoved($odpoved, $tema, $autor_id){
$query = "INSERT INTO ".DBPREFIX."forum_odpovedi (tema_id, odpoved, autor_id, datum) VALUES ('".$tema."','".$odpoved."','".$autor_id."','".date("Y-n-d H:i:s")."')";
$res = mysql_query($query);
if (!$res) return "Při vkládání odpovědi došlo k chybě";
return "Odpověď byla vložena.";
}
//vraci tabulku s informacemi o uzivateli $username
public static function ukaz_profil_uzivatele($username){
$query = "SELECT username, name, surname, e_mail, DATE_FORMAT(birthday,'%d.%m.%Y') AS birthday, vztah_HAE,
street, city, psc, phone, mobil
FROM ".DBPREFIX."users where username = '".$username."'";
$sent = mysql_query($query);
$data = mysql_fetch_array($sent);
switch($data['vztah_HAE']){
case 'pacient':
$vztah = 'pacient';
break;
case 'zastupce':
$vztah = 'zákonný zástupce pacienta';
break;
default:
$vztah = 'ostatní';
break;
}
if ($data['mobil']!=0)
$mobil=$data['mobil'];
else
$mobil="-";
if ($data['phone']!=0)
$phone=$data['phone'];
else
$phone="-";
return '<h3>Profil uživatele <strong>'.$data['username'].'</strong></h3>
<table class="noborder">
<tr>
<td width="150"><strong>Jméno: </strong></td>
<td>'.$data['name'].'</td>
</tr>
<tr>
<td><strong>Příjmení: </strong></td>
<td>'.$data['surname'].'</td>
</tr>
<tr>
<td><strong>Datum narození: </strong></td>
<td>'.$data['birthday'].'</td>
</tr>
<tr>
<td><strong>Vztah k HAE/AAE: </strong></td>
<td>'.$vztah.'</td>
</tr>
</table>
<h3>Kontakt</h3>
<table class="noborder">
<tr>
<td width="150"><strong>Ulice: </strong></td>
<td>'.$data['street'].'</td>
</tr>
<tr>
<td><strong>Město: </strong></td>
<td>'.$data['city'].'</td>
</tr>
<tr>
<td><strong>PSČ: </strong></td>
<td>'.$data['psc'].'</td>
</tr>
<tr>
<td><strong>E-mail: </strong></td>
<td>'.$data['e_mail'].'</td>
</tr>
<tr>
<td><strong>Telefon: </strong></td>
<td>'.$phone.'</td>
</tr>
<tr>
<td><strong>Mobil: </strong></td>
<td>'.$mobil.'</td>
</tr>
</table>';
}
}
//obsahuje funkce potrebne pro registracni formular
class registr_form{
//fraci true, pokud je $str retezec jenž obsahuje pouze cislovky
public static function is_string_int($str){
for ($i=0;$i<strlen($str);$i++){
if (($str[$i]<"0") || ($str[$i]>"9")){
return false;
}
}
return true;
}
//vraci true pokud je retezec ve formatu telefoniho cisla
public static function is_telephone_number($str){
if (strlen($str)!=9) return false;
return self::is_string_int($str);
}
//vraci true pokud je retezec ve formatu PSC
public static function is_psc_number($str){
if (strlen($str)!=5) return false;
return self::is_string_int($str);
}
//kontroluje zda je promenna $email ve tvaru e-mailove adrasy
public static function check_email($email) {
$atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; // znaky tvořící uživatelské jméno
$domain = '[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])'; // jedna komponenta domény
return eregi("^$atom+(\\.$atom+)*@($domain?\\.)+$domain\$", $email);
}
}
//trida obsahujici metody zabezpeceni predavanych promennychh
class Zabezpeceni{
//upravi prijate promenne v poli $promenne podle $signatury, nenalezali se v poli $promenne vyzadovana promenna
//dojde k presmerovani na adresu $url_presmerovani
public static function upravit_promenne(&$promenne, $signatury, $url_presmerovani=null){
$docastne_pole = array();
//projde vsechny signatury
foreach ($signatury as $nazev => $signatura){
//jestlize je signatura vyzadovana a neni naplnena, pak dojde k presmerovani stranky
if (!isset($promenne[$nazev]) && isset($signatura['vyzadovano']) && $signatura['vyzadovano']){
if ($url_presmerovani){
header("Location: $url_presmerovani");
}
else{
echo 'Parameter $nazev není přítomný a není zadaná žádné přesměrování URL.';
}
exit();
}
//promenne v poli $promenne se zkopiruji do docasneho pole, jen kdyz jsou obsazeny v signature
if (isset($promenne[$nazev])){
$docastne_pole[$nazev] = $promenne[$nazev];
if (isset( $signatura['typ'])){//pokud je vyzadovany typ promenne, tak dojde k pretypovani
settype($docastne_pole[$nazev], $signatura['typ']);
}
if (isset($signatura['funkce'])){//je-li vyzadovana aplikace funkce na promenou, pak je aplikovana
$docastne_pole[$nazev] = $signatura['funkce']($docastne_pole[$nazev]);
}
}
}
$promenne = $docastne_pole;//pole promenne je naplneno osetrenymi promennymi
}
}
ACC SHELL 2018