".$ankotazka."

\n"; $txt_anketa.="\n"; for ($pom=0;$pom<$pocetodp;$pom++): $akt_pole_data=mysql_fetch_assoc($dotazodp); $velikost=ceil($jednoproc*$akt_pole_data["pocitadlo"]); $txt_anketa.="".$akt_pole_data["odpoved"]."
\n"; $txt_anketa.="\"".$akt_pole_data["pocitadlo"]."\" (".$akt_pole_data["pocitadlo"]." ".RS_SP_POCET_HLA.")
\n"; endfor; $txt_anketa.="
\n"; $txt_anketa.="

".RS_SP_CELKEM_HLA.": ".$celkemhlasu."

\n"; // zobrazeni menu switch ($GLOBALS["vzhledwebu"]->AktBlokTyp()): case 1: Blok1($GLOBALS["vzhledwebu"]->AktBlokNazev(),$txt_anketa); break; case 2: Blok2($GLOBALS["vzhledwebu"]->AktBlokNazev(),$txt_anketa); break; case 3: Blok3($GLOBALS["vzhledwebu"]->AktBlokNazev(),$txt_anketa); break; default: Blok1($GLOBALS["vzhledwebu"]->AktBlokNazev(),$txt_anketa); break; endswitch; endif; } // systemovy blok: novinky function HotNews() { // zjisteni pozadovane poctu hot news urcenych k zobrazeni; 0 = zadne $pocetzprav=NactiConfigProm('pocet_novinek',0); // podminka zobrazeni; kladne mnozstvi hot news if ($pocetzprav>0): $dotaznews=mysql_query("select titulek,informace,datum,typ_nov from ".$GLOBALS["rspredpona"]."news order by datum desc limit 0,".$pocetzprav,$GLOBALS["dbspojeni"]); $pocetnews=mysql_num_rows($dotaznews); $txt_novinky=""; // inic. for($pom=0;$pom<$pocetnews;$pom++): $txt_novinky.="

".MyDatetimeToDate(mysql_Result($dotaznews,$pom,"datum")).": "; // typ_nov: 0 = bezna, 1 = zvyraznena if (mysql_Result($dotaznews,$pom,"typ_nov")==0): $txt_novinky.="".mysql_Result($dotaznews,$pom,"titulek")."
"; else: $txt_novinky.="".mysql_Result($dotaznews,$pom,"titulek")."
"; endif; $txt_novinky.="".mysql_Result($dotaznews,$pom,"informace")."

\n"; endfor; // zobrazeni menu switch ($GLOBALS["vzhledwebu"]->AktBlokTyp()): case 1: Blok1($GLOBALS["vzhledwebu"]->AktBlokNazev(),$txt_novinky); break; case 2: Blok2($GLOBALS["vzhledwebu"]->AktBlokNazev(),$txt_novinky); break; case 3: Blok3($GLOBALS["vzhledwebu"]->AktBlokNazev(),$txt_novinky); break; default: Blok1($GLOBALS["vzhledwebu"]->AktBlokNazev(),$txt_novinky); break; endswitch; endif; } // systemovy blok: seznam rubrik (navigacniho menu) function GenHlavMenu() // vstup do fce: $stromhlmenu { // dekompilace stromu vnoreni if (isset($GLOBALS["stromhlmenu"])): $przobrazid=explode(":",$GLOBALS["stromhlmenu"]); $pocetprvku=count($przobrazid); else: $pocetprvku=0; endif; $podminka=""; for($pom=0;$pom<$pocetprvku;$pom++): if($pom>0): $podminka.=","; endif; $podminka.=$przobrazid[$pom]; endfor; if ($podminka!=""): $podminka=" where id_predka in (".$podminka.") or level=0"; else: $podminka=" where level=0"; endif; // kompletni sestaveni podminky $dotazmenu=mysql_query("select idt,nazev,level,rodic,id_predka from ".$GLOBALS["rspredpona"]."topic".$podminka." order by level,nazev",$GLOBALS["dbspojeni"]); $pocetmenu=mysql_num_rows($dotazmenu); $poc_sezzakl=0; $poc_sezprvni=0; $poc_sezdruha=0; $poc_seztreti=0; // nacteni dat do seznamu for ($pom=0;$pom<$pocetmenu;$pom++): switch (mysql_Result($dotazmenu,$pom,"level")): case 0: // 0 - id, 1 - prep. rodic, 2 - nazev polozky $sezzakl[$poc_sezzakl][0]=mysql_Result($dotazmenu,$pom,"idt"); $sezzakl[$poc_sezzakl][1]=mysql_Result($dotazmenu,$pom,"rodic"); $sezzakl[$poc_sezzakl][2]=mysql_Result($dotazmenu,$pom,"nazev"); $poc_sezzakl++; break; case 1: // 0 - id, 1 - prep. rodic, 2 - nazev pol., 4 - id predka $sezprvni[$poc_sezprvni][0]=mysql_Result($dotazmenu,$pom,"idt"); $sezprvni[$poc_sezprvni][1]=mysql_Result($dotazmenu,$pom,"rodic"); $sezprvni[$poc_sezprvni][2]=mysql_Result($dotazmenu,$pom,"nazev"); $sezprvni[$poc_sezprvni][4]=mysql_Result($dotazmenu,$pom,"id_predka"); $poc_sezprvni++; break; case 2: // 0 - id, 1 - prep. rodic, 2 - nazev pol., 4 - id predka $sezdruha[$poc_sezdruha][0]=mysql_Result($dotazmenu,$pom,"idt"); $sezdruha[$poc_sezdruha][1]=mysql_Result($dotazmenu,$pom,"rodic"); $sezdruha[$poc_sezdruha][2]=mysql_Result($dotazmenu,$pom,"nazev"); $sezdruha[$poc_sezdruha][4]=mysql_Result($dotazmenu,$pom,"id_predka"); $poc_sezdruha++; break; case 3: // 0 - id, 1 - prep. rodic, 2 - nazev pol., 4 - id predka $seztreti[$poc_seztreti][0]=mysql_Result($dotazmenu,$pom,"idt"); $seztreti[$poc_seztreti][1]=mysql_Result($dotazmenu,$pom,"rodic"); $seztreti[$poc_seztreti][2]=mysql_Result($dotazmenu,$pom,"nazev"); $seztreti[$poc_seztreti][4]=mysql_Result($dotazmenu,$pom,"id_predka"); $poc_seztreti++; break; endswitch; endfor; $plus="\"plus\" "; $minus="\"mínus\" "; $prmenu=""; // sestaveni stromu $prmenu="\n"; for ($pom=0;$pom<$poc_sezzakl;$pom++): // zakl. urov. if ($sezzakl[$pom][1]==0): $prmenu.="
".$minus."".$sezzakl[$pom][2].""; $prmenu.=pocetcl($sezzakl[$pom][0]); else: $prmenu.="
".$plus."".$sezzakl[$pom][2].""; $prmenu.=pocetcl($sezzakl[$pom][0]); // prvni urov. for ($pom1=0;$pom1<$poc_sezprvni;$pom1++): if ($sezprvni[$pom1][4]==$sezzakl[$pom][0]): if ($sezprvni[$pom1][1]==0): $prmenu.="
".$minus."".$sezprvni[$pom1][2].""; $prmenu.=pocetcl($sezprvni[$pom1][0]); else: $prmenu.="
".$plus."".$sezprvni[$pom1][2].""; $prmenu.=pocetcl($sezprvni[$pom1][0]); // druha urov. for ($pom2=0;$pom2<$poc_sezdruha;$pom2++): if ($sezdruha[$pom2][4]==$sezprvni[$pom1][0]): if ($sezdruha[$pom2][1]==0): $prmenu.="
".$minus."".$sezdruha[$pom2][2].""; $prmenu.=pocetcl($sezdruha[$pom2][0]); else: $prmenu.="
".$plus."".$sezdruha[$pom2][2].""; $prmenu.=pocetcl($sezdruha[$pom2][0]); // treti urov. for ($pom3=0;$pom3<$poc_seztreti;$pom3++): if ($seztreti[$pom3][4]==$sezdruha[$pom2][0]): if ($seztreti[$pom3][1]==0): $prmenu.="
".$minus."".$seztreti[$pom3][2].""; $prmenu.=pocetcl($seztreti[$pom3][0]); else: $prmenu.="
".$plus."".$seztreti[$pom3][2].""; $prmenu.=pocetcl($seztreti[$pom3][0]); endif; endif; endfor; // konec. treti endif; endif; endfor; // konec. druhe endif; endif; endfor; // konec. prvni endif; endfor; $prmenu.="
\n"; // zobrazeni menu switch ($GLOBALS["vzhledwebu"]->AktBlokTyp()): case 1: Blok1($GLOBALS["vzhledwebu"]->AktBlokNazev(),$prmenu); break; case 2: Blok2($GLOBALS["vzhledwebu"]->AktBlokNazev(),$prmenu); break; case 3: Blok3($GLOBALS["vzhledwebu"]->AktBlokNazev(),$prmenu); break; default: Blok1($GLOBALS["vzhledwebu"]->AktBlokNazev(),$prmenu); break; endswitch; } // systemovy blok: kalendar function Kalendar() // vstup do fce: $kalendarmes, $kalendarrok { // inic. if(isset($GLOBALS["kalendarmes"])): $mesic=$GLOBALS["kalendarmes"]; else: $mesic=date("m"); endif; if(isset($GLOBALS["kalendarrok"])): $rok=$GLOBALS["kalendarrok"]; else: $rok=date("Y"); endif; $dnesnidatum=date("Y-m-d"); $dotazcla=mysql_query("select date_format(datum,'%Y-%m-%d') as vyslden from ".$GLOBALS["rspredpona"]."clanky where datum>='".date("Y-m-d",mktime(0,0,1,$mesic,1,$rok))."' and datum<'".date("Y-m-d",mktime(0,0,1,($mesic+1),1,$rok))."' and datum<='".$dnesnidatum."' and visible='1' group by vyslden",$GLOBALS["dbspojeni"]); $pocetcla=mysql_num_rows($dotazcla); for($pom=1;$pom<32;$pom++): if (checkdate($mesic,$pom,$rok)): $datum[$pom]=0; // byl v tento den vydani nejaky clanek - 0 = NE, 1 = ANO $porovnani=date("Y-m-d",mktime(0,0,1,$mesic,$pom,$rok)); // datum porovnavane s datem z DB for($p1=0;$p1<$pocetcla;$p1++): // test na pritomnost clanku if (mysql_Result($dotazcla,$p1,"vyslden")==$porovnani): $datum[$pom]=1; // byl v tento den vydani nejaky clanek - 0 = NE, 1 = ANO endif; endfor; if ($porovnani==$dnesnidatum): $datum[$pom]=2; endif; // test na dnesni datum endif; endfor; $pocetdnuvmes=count($datum); $cislodne=date("w",mktime(0,0,1,$mesic,1,$rok)); // 0 - nedele, ..., 6 - sobota $pristimes=date("m",mktime(0,0,1,($mesic+1),1,$rok)); $pristirok=date("Y",mktime(0,0,1,($mesic+1),1,$rok)); $pristiod=$pristirok."-".$pristimes."-1 00:00:01"; $pristido=date("Y-m-d H:i:s",mktime(23,59,59,$mesic+2,1,$rok)-86400); $predeslymes=date("m",mktime(0,0,1,($mesic-1),1,$rok)); $predeslyrok=date("Y",mktime(0,0,1,($mesic-1),1,$rok)); $predeslyod=$predeslyrok."-".$predeslymes."-1 00:00:01"; $predeslydo=date("Y-m-d H:i:s",(mktime(23,59,59,$mesic,1,$rok)-86400)); $prmenu="\n"; switch($cislodne): // priprava zobrazeni prvniho dne v mesici case 0: $prmenu.="\n"; break; case 1: break; case 2: $prmenu.=""; break; case 3: $prmenu.=""; break; case 4: $prmenu.=""; break; case 5: $prmenu.=""; break; case 6: $prmenu.=""; break; endswitch; for($pom=1;$pom<=$pocetdnuvmes;$pom++): // ostatni dny if ($cislodne==1): $prmenu.=""; endif; // vzhled if ($datum[$pom]==0): $prmenu.="\n"; else: if ($datum[$pom]==1): // datum se nejakymi clanky $prmenu.="\n"; else: // dnesni datum $prmenu.="\n"; endif; endif; if ($cislodne==0): $prmenu.="\n"; endif; if ($cislodne==6): $cislodne=0; else: $cislodne=($cislodne+1); endif; // navyseni pocitadla endfor; switch($cislodne): // dokonceni tabulky case 0: $prmenu.="\n"; break; case 1: break; case 2: $prmenu.="\n"; break; case 3: $prmenu.="\n"; break; case 4: $prmenu.="\n"; break; case 5: $prmenu.="\n"; break; case 6: $prmenu.="\n"; break; endswitch; $prmenu.="
<<  ".TextMesic($mesic)."  >>
".RS_SP_KAL_PO."".RS_SP_KAL_UT."".RS_SP_KAL_ST."".RS_SP_KAL_CT."".RS_SP_KAL_PA."".RS_SP_KAL_SO."".RS_SP_KAL_NE."
      
 
  
   
    
     
".$pom."".$pom."".$pom."
 
      
     
    
   
  
\n"; // zobrazeni menu switch ($GLOBALS["vzhledwebu"]->AktBlokTyp()): case 1: Blok1($GLOBALS["vzhledwebu"]->AktBlokNazev(),$prmenu); break; case 2: Blok2($GLOBALS["vzhledwebu"]->AktBlokNazev(),$prmenu); break; case 3: Blok3($GLOBALS["vzhledwebu"]->AktBlokNazev(),$prmenu); break; default: Blok1($GLOBALS["vzhledwebu"]->AktBlokNazev(),$prmenu); break; endswitch; } // ------------------------------------------------- pomocne funkce ------------------------------------------------- function Banners($poloha = 0) { // od verze phpRS 1.4.0 je reklamni system zcela automaticky a nastavuje se z administracniho modulu // pozice: 1 - horni, 2 - dolni switch($poloha): // horni pozice case 1: $dotazkod=mysql_query("select kod from ".$GLOBALS["rspredpona"]."klik_rekl where pozice='1'",$GLOBALS["dbspojeni"]); $prkod=mysql_Result($dotazkod,0,"kod"); break; // dolni pozice case 2: $dotazkod=mysql_query("select kod from ".$GLOBALS["rspredpona"]."klik_rekl where pozice='2'",$GLOBALS["dbspojeni"]); $prkod=mysql_Result($dotazkod,0,"kod"); break; // nulovy vstup default: $prkod=""; break; endswitch; echo "\n\n"; // rozhodnuti o zpusobu zobrazeni rekl. kodu $prklic=substr($prkod,0,8); // test na kampan if ($prklic==""): // zjistena kampan $prdelka=strlen($prkod)-17; $prkampan=substr($prkod,8,$prdelka); // ziskani id kampane $dotazkam=mysql_query("select count(idb) as pocet from ".$GLOBALS["rspredpona"]."klik_ban where id_kampan='".$prkampan."'",$GLOBALS["dbspojeni"]); $prpocban=mysql_Result($dotazkam,0,"pocet"); // pocet banneru v kampani if ($prpocban!=0): // kampan obsahuje bannery $prktery=(rand(1,$prpocban)-1); // nutne odecist 1, protoze se poradi pocita od nuly $dotazban=mysql_query("select idb,text,banner,width,height,druh from ".$GLOBALS["rspredpona"]."klik_ban where id_kampan='".$prkampan."' order by idb limit ".$prktery.",1",$GLOBALS["dbspojeni"]); list($prbidb,$prbtext,$prbbanner,$prbwidth,$prbheight,$prbdruh)=mysql_fetch_row($dotazban); // vypis reklamy echo "
"; switch($prbdruh): case 0: // forma: banner echo "\"".$prbtext."\""; if ($prbtext!=""): echo "
".$prbtext; endif; // kdyz existuje doplnkovy text echo "
"; break; case 1: // forma: text echo "".$prbbanner.""; break; case 2: // forma: reklamni kod echo $prbbanner; break; endswitch; echo "
"; endif; // konec $prpocban else: // neni kampan, cisty reklamni kod echo "
".$prkod."
"; endif; echo "\n\n"; } function Banners_str($poloha = 0) { // od verze phpRS 1.4.0 je reklamni system zcela automaticky a nastavuje se z administracniho modulu // pozice: 1 - horni, 2 - dolni switch($poloha): // horni pozice case 1: $dotazkod=mysql_query("select kod from ".$GLOBALS["rspredpona"]."klik_rekl where pozice='1'",$GLOBALS["dbspojeni"]); $prkod=mysql_Result($dotazkod,0,"kod"); break; // dolni pozice case 2: $dotazkod=mysql_query("select kod from ".$GLOBALS["rspredpona"]."klik_rekl where pozice='2'",$GLOBALS["dbspojeni"]); $prkod=mysql_Result($dotazkod,0,"kod"); break; // nulovy vstup default: $prkod=""; break; endswitch; $vysledek=""; $vysledek.="\n\n"; // rozhodnuti o zpusobu zobrazeni rekl. kodu $prklic=substr($prkod,0,8); // test na kampan if ($prklic==""): // zjistena kampan $prdelka=strlen($prkod)-17; $prkampan=substr($prkod,8,$prdelka); // ziskani id kampane $dotazkam=mysql_query("select count(idb) as pocet from ".$GLOBALS["rspredpona"]."klik_ban where id_kampan='".$prkampan."'",$GLOBALS["dbspojeni"]); $prpocban=mysql_Result($dotazkam,0,"pocet"); // pocet banneru v kampani if ($prpocban!=0): // kampan obsahuje bannery $prktery=(rand(1,$prpocban)-1); // nutne odecist 1, protoze se poradi pocita od nuly $dotazban=mysql_query("select idb,text,banner,width,height,druh from ".$GLOBALS["rspredpona"]."klik_ban where id_kampan='".$prkampan."' order by idb limit ".$prktery.",1",$GLOBALS["dbspojeni"]); list($prbidb,$prbtext,$prbbanner,$prbwidth,$prbheight,$prbdruh)=mysql_fetch_row($dotazban); // vypis reklamy $vysledek.="
"; switch($prbdruh): case 0: // forma: banner $vysledek.="\"".$prbtext."\""; if ($prbtext!=""): $vysledek.="
".$prbtext; endif; // kdyz existuje doplnkovy text $vysledek.="
"; break; case 1: // forma: text $vysledek.="".$prbbanner.""; break; case 2: // forma: reklamni kod $vysledek.=$prbbanner; break; endswitch; $vysledek.="
"; endif; // konec $prpocban else: // neni kampan, cisty reklamni kod $vysledek.="
".$prkod."
"; endif; $vysledek.="\n\n"; return $vysledek; } function SouvisejiciCl($id_clanek = 0) { $id_clanek=addslashes($id_clanek); // vstupni korekce $dotazskup=mysql_query("select skupina_cl from ".$GLOBALS["rspredpona"]."clanky where link='".$id_clanek."'",$GLOBALS["dbspojeni"]); if (mysql_num_rows($dotazskup)>0): // clanek existuje $id_skupiny=mysql_Result($dotazskup,0,"skupina_cl"); // cislo skupiny if ($id_skupiny>0): // 0 = bez zarazeni $dotazcl=mysql_query("select link,titulek,datum from ".$GLOBALS["rspredpona"]."clanky where skupina_cl='".$id_skupiny."' and link!='".$id_clanek."' and visible='1' and datum<='".Date("Y-m-d H:i:s")."' order by datum desc",$GLOBALS["dbspojeni"]); $pocetcl=mysql_num_rows($dotazcl); if ($pocetcl>0): echo "
\n"; echo "".RS_SP_SOUVIS_CLA.":
\n"; for ($pom=0;$pom<$pocetcl;$pom++): echo "".mysql_Result($dotazcl,$pom,"titulek")." (".MyDatetimeToDate(mysql_Result($dotazcl,$pom,"datum")).")
\n"; endfor; echo "

\n"; endif; endif; endif; } function HodnoceniCl($id_clanek = 0) { $id_clanek=addslashes($id_clanek); // vstupni korekce $dotazhod=mysql_query("select hodnoceni,mn_hodnoceni from ".$GLOBALS["rspredpona"]."clanky where link='".$id_clanek."'",$GLOBALS["dbspojeni"]); if (mysql_num_rows($dotazhod)>0): // clanek existuje $hodnoceni=mysql_Result($dotazhod,0,"hodnoceni"); // hodnoceni $mnozstvi=mysql_Result($dotazhod,0,"mn_hodnoceni"); // mnozstvi hodnot echo "
\n"; echo "\n"; echo "
\n"; echo "\n"; if ($mnozstvi>0): echo "[".RS_SP_AKT_ZNAMKA.": ".number_format(($hodnoceni/$mnozstvi),2,',','')."] "; else: echo "[".RS_SP_AKT_ZNAMKA.": 0] "; endif; echo "1 "; echo "2 "; echo "3 "; echo "4 "; echo "5 "; echo "\n"; echo "

\n"; endif; } function TextMesic($cismes = 0) { switch($cismes): case 1: $txt=RS_SP_KAL_M01; break; case 2: $txt=RS_SP_KAL_M02; break; case 3: $txt=RS_SP_KAL_M03; break; case 4: $txt=RS_SP_KAL_M04; break; case 5: $txt=RS_SP_KAL_M05; break; case 6: $txt=RS_SP_KAL_M06; break; case 7: $txt=RS_SP_KAL_M07; break; case 8: $txt=RS_SP_KAL_M08; break; case 9: $txt=RS_SP_KAL_M09; break; case 10: $txt=RS_SP_KAL_M10; break; case 11: $txt=RS_SP_KAL_M11; break; case 12: $txt=RS_SP_KAL_M12; break; default: $txt=''; endswitch; return $txt; } // generator pevne mezery function Me($vel = 1) { $mez=""; for ($pom=0;$pom<$vel;$pom++): $mez.=" "; endfor; return $mez; } // preved MySQL datetime typ do formy bezneho teckou oddeleneho datumu function MyDatetimeToDate($mysql_datum) { $rozlozenedatum=explode(" ",trim($mysql_datum)); // [0] - datum, [1] - cas $vysledek=explode("-",$rozlozenedatum[0]); return $vysledek[2].".".$vysledek[1].".".$vysledek[0]; // dd.mm.rrrr } // prevede MySQL datetime typ na unixovy cas (cislo) function MyDatetimeToInt($mysql_datum) { list($datum,$cas)=explode(" ",$mysql_datum); list($rok,$mes,$dat)=explode("-",$datum); list($hod,$min,$sek)=explode(":",$cas); return date("U",mktime($hod,$min,$sek,$mes,$dat,$rok)); // int } // preved MySQL datetime do standarni zobrazovaci formy function MyDatetimeToStd($mysql_datum) { list($datum,$cas)=Explode (" ",$mysql_datum); list($rok,$mes,$den)=Explode ("-",$datum); return $den.".".$mes.".".$rok." ".$cas; // dd.mm.rrrr hh:mm:ss } // test na opakujici se IP adresu function TestNaOpakujiciIP($akt_typ_kontr_str = '', $akt_delka_omezeni = 0, $akt_max_pocet_opak = 0) { $vysledek=1; // default true; 1 = opakuje se, 0 = neopakuje se $akt_ip_adresa=$_SERVER["REMOTE_ADDR"]; // ip adresa ctenare $akt_cas=Date("Y-m-d H:i:s"); // inic. tabulky - ocisteni od starych dat @mysql_query("delete from ".$GLOBALS["rspredpona"]."kontrola_ip where cas<'".$akt_cas."'",$GLOBALS["dbspojeni"]); // testovani dotaz $dotazip=mysql_query("select idk,pocet from ".$GLOBALS["rspredpona"]."kontrola_ip where cas>='".$akt_cas."' and ip_adresa='".$akt_ip_adresa."' and typ='".$akt_typ_kontr_str."'",$GLOBALS["dbspojeni"]); if ($dotazip!=0): if (mysql_num_rows($dotazip)==0): // neexistuje zaznam - nutno vytvorit $akt_ttl_cas=Date("Y-m-d H:i:s",time()+$akt_delka_omezeni); // stanoveni casove platnosti omezeni @mysql_query("insert into ".$GLOBALS["rspredpona"]."kontrola_ip values (null,'".$akt_ip_adresa."','".$akt_ttl_cas."',1,'".$akt_typ_kontr_str."')",$GLOBALS["dbspojeni"]); $vysledek=0; // false; 0 = neopakuje se else: // nacteni ziskanych dat $akt_pole_data=mysql_fetch_assoc($dotazip); // test na pocet opakovani if ($akt_pole_data['pocet']<$akt_max_pocet_opak): $vysledek=0; // false; 0 = neopakuje se @mysql_query("update ".$GLOBALS["rspredpona"]."kontrola_ip set pocet=pocet+1 where idk=".$akt_pole_data['idk']." and typ='".$akt_typ_kontr_str."'",$GLOBALS["dbspojeni"]); endif; endif; endif; return $vysledek; } // nacteni hodnoty konfiguracni promenne function NactiConfigProm($promenna = '', $chyba = 0) { $dotazconfig=mysql_query("select hodnota from ".$GLOBALS["rspredpona"]."config where promenna='".mysql_escape_string($promenna)."'",$GLOBALS["dbspojeni"]); if ($dotazconfig!=0): return mysql_result($dotazconfig,0,"hodnota"); else: return $chyba; endif; } // -------------------NOVE VECI PRE ZOBRAZRNIE POCTU CLANKOV -----------------// function pocetcl($rstema) { // ************* Tvorba dotazu ************* // mozne vstupni promenne: $rstext, $rstema, $rsautor, $rsod + $rsdo, $rskde (titulek,uvod,text,t_slova), $rskolik + $rskolikata, $rsvztah $rstext="all-phpRS-all"; if ($rstext!=""): // dekompilace vyhledavaneho retezce - vysledkem je pole hledanych slov a retezcu $slova[] $slova="all-phpRS-all"; // start sestavovani prikazu $obsahpodminky="where"; $obsahpodminky.=" idc!=0"; if (isset($rstema)&&($rstema!="nic")): // inic. $pomseznamu $pomseznam[0][0]=addslashes($rstema); $pomseznam[0][1]=1; // umele zapnute rodicovstvi z inic. dotazu $poc_pomseznam=1; // celkovy pocet polozek v $pomseznam $akt_poz_pomseznam=0; // akt. pozice v $pomseznam $str_temata=""; $spojka_temata=""; // sestaveni stromu temat while($poc_pomseznam>$akt_poz_pomseznam): // zapis temata do vysledku $str_temata.=$spojka_temata.$pomseznam[$akt_poz_pomseznam][0]; $spojka_temata=","; // test na rodicovstvi if ($pomseznam[$akt_poz_pomseznam][1]==1): $dotazkapit=mysql_query("select idt,rodic from ".$GLOBALS["rspredpona"]."topic where id_predka='".$pomseznam[$akt_poz_pomseznam][0]."'",$GLOBALS["dbspojeni"]); $pocetkapit=mysql_num_rows($dotazkapit); // zapis do $pomseznam for ($pom=0;$pom<$pocetkapit;$pom++): $pomseznam[$poc_pomseznam][0]=mysql_Result($dotazkapit,$pom,"idt"); $pomseznam[$poc_pomseznam][1]=mysql_Result($dotazkapit,$pom,"rodic"); $poc_pomseznam++; endfor; endif; // posunuti na dalsi pozici v seznamu $akt_poz_pomseznam++; endwhile; // finalni podminka $obsahpodminky.=" AND tema IN (".$str_temata.")"; endif; // finalni vyhodnoceni podminky if ($obsahpodminky!="where"): $obsahpodminky.=" AND"; endif; // ziskani auktualniho podminkoveho data $dnesaktdatum=Date("Y-m-d H:i:s"); // vypocet limitu $dotazpocet=mysql_query("SELECT count(idc) as pocet FROM ".$GLOBALS["rspredpona"]."clanky ".$obsahpodminky." visible=1 AND datum<='".$dnesaktdatum."'",$GLOBALS["dbspojeni"]); if (mysql_num_rows($dotazpocet)==1): $celkemnalezeno=mysql_Result($dotazpocet,0,"pocet"); else: $celkemnalezeno=0; endif; endif; $vysledek=" (".$celkemnalezeno.")\n"; return $vysledek; } ?> aktcas=Date("Y-m-d H:i:s"); // aktualni cas $this->aktdat=Date("Y-m-d"); $this->akthod=Date("H"); $this->ctenarip=$_SERVER["REMOTE_ADDR"]; // ip ctenare $this->ZjistiOS(); // inic. OS $this->plses=$delka; // zakladni rozpoznavaci test if (isset($_COOKIE['phprswebstat'])): // vymazani vsech neaktualnich session @mysql_query("delete from ".$GLOBALS["rspredpona"]."stat_session where platnost_do<'".$this->aktcas."'",$GLOBALS["dbspojeni"]); // kdyz existuje session -> cookeis se session retezcem $ziskanases=base64_decode($_COOKIE['phprswebstat']); $dotazses=mysql_query("select count(ids) as pocet from ".$GLOBALS["rspredpona"]."stat_session where session='".$ziskanases."' and platnost_do>'".$this->aktcas."'",$GLOBALS["dbspojeni"]); if (mysql_Result($dotazses,0,"pocet")>0): $this->ctenartyp=2; // existuje zaznam o testovanem ctenari else: $this->ctenartyp=1; // novy ctenar $this->GenSes(); endif; else: // vymazani vsech neaktualnich IP @mysql_query("delete from ".$GLOBALS["rspredpona"]."stat_ip where platnost_do<'".$this->aktcas."'",$GLOBALS["dbspojeni"]); // neexistuje session; testuje se IP adresa $dotazip=mysql_query("select count(idi) as pocet from ".$GLOBALS["rspredpona"]."stat_ip where ip='".$this->ctenarip."' and platnost_do>'".$this->aktcas."'",$GLOBALS["dbspojeni"]); if (mysql_Result($dotazip,0,"pocet")>0): $this->ctenartyp=2; // existuje zaznam o testovanem ctenari else: $this->ctenartyp=1; // novy ctenar $this->GenSes(); endif; endif; } function CtenarIP() { return $this->ctenarip; // IP ctenare } function ZjistiOS() { $ctenar=$_SERVER['HTTP_USER_AGENT']; // 1 = win, 2 = linux, 3 = unix, 4 = mac, 5 = jiny if (strstr($ctenar,"Win")) { $this->ctenaros=1; $this->ctenarostxt="Windows"; } else if (strstr($ctenar,"Linux")) { $this->ctenaros=2; $this->ctenarostxt="Linux"; } else if (strstr($ctenar,"Unix")) { $this->ctenaros=3; $this->ctenarostxt="Unix"; } else if (strstr($ctenar,"Mac")) { $this->ctenaros=4; $this->ctenarostxt="Mac"; } else { $this->ctenaros=5; $this->ctenarostxt="Jiny OS"; } } function CtenarOS() { return $this->ctenaros; // OS ctenare - cislo } function CtenarOST() { return $this->ctenarostxt; // OS ctenare - text } function GenSes() { $this->ctenarses=md5($this->aktcas.$this->ctenarip.$this->ctenarostxt.rand(10,60)); } function GenNovy() { // sestaveni SQL prikazu $sqlprikaz="insert into ".$GLOBALS["rspredpona"]."stat_data values (null,'".$this->aktdat."','".$this->akthod."',"; // 1. cast switch ($this->ctenartyp): // 2. cast case 1: $sqlprikaz .="'1','0',"; break; case 2: $sqlprikaz .="'0','1',"; break; default: $sqlprikaz .="'1','0',"; break; endswitch; if ($this->ctenartyp==1): // OS se pocita pouze u visit switch ($this->ctenaros): // 3. cast case 1: $sqlprikaz .="'1','0','0','0','0')"; break; case 2: $sqlprikaz .="'0','1','0','0','0')"; break; case 3: $sqlprikaz .="'0','0','1','0','0')"; break; case 4: $sqlprikaz .="'0','0','0','1','0')"; break; case 5: $sqlprikaz .="'0','0','0','0','1')"; break; default: $sqlprikaz .="'1','0','0','0','0')"; break; endswitch; else: $sqlprikaz .="'0','0','0','0','0')"; endif; return $sqlprikaz; // vysledek } function GenStary() { // sestaveni SQL prikazu $sqlprikaz="update ".$GLOBALS["rspredpona"]."stat_data set "; // 1. cast switch ($this->ctenartyp): // 2. cast case 1: $sqlprikaz .="visit=(visit+1)"; break; case 2: $sqlprikaz .="pages=(pages+1)"; break; default: $sqlprikaz .="visit=(visit+1)"; break; endswitch; if ($this->ctenartyp==1): // OS se pocita pouze u visit switch ($this->ctenaros): // 3. cast case 1: $sqlprikaz .=", os_win=(os_win+1)"; break; case 2: $sqlprikaz .=", os_linux=(os_linux+1)"; break; case 3: $sqlprikaz .=", os_unix=(os_unix+1)"; break; case 4: $sqlprikaz .=", os_mac=(os_mac+1)"; break; case 5: $sqlprikaz .=", os_dalsi=(os_dalsi+1)"; break; default: $sqlprikaz .=", os_dalsi=(os_dalsi+1)"; break; endswitch; endif; $sqlprikaz .=" where datum='".$this->aktdat."' and hodina='".$this->akthod."'"; // 4. cast return $sqlprikaz; // vysledek } function ZjistiPath() { $skript=$_SERVER["PHP_SELF"]; $casti=explode("/",$skript); // vzdy min. rozlozen na dve casti $pocetcasti=count($casti); if ($pocetcasti>2): $pocetcasti--; // musime odecist posledni, ktera obsahuje samotny skript $cesta="/"; for ($pom=1;$pom<$pocetcasti;$pom++): // zaciname od 1, protoze 0 cast obsahuje prazdne pole, ktere vznikne separaci koren. adr. $cesta.=$casti[$pom]."/"; endfor; else: // skript je v korenovem adresari nebo ma prazdnou cestu $cesta="/"; endif; return $cesta; } function SendCook() { // test na nastaveni citlivosti cookies if ($GLOBALS["cookiessdomenou"]==1): // cookies - jmeno_cookies , obsah , platnost , path , domena setcookie("phprswebstat",base64_encode($this->ctenarses),time()+$this->plses,$this->ZjistiPath(),$_SERVER["HTTP_HOST"]); else: // cookies - jmeno_cookies , obsah , platnost setcookie("phprswebstat",base64_encode($this->ctenarses),time()+$this->plses); endif; } function GenIdent() { $platnost=Date("Y-m-d H:i:s",time()+$this->plses); // vypocitani omezeni platnosti session @mysql_query("insert into ".$GLOBALS["rspredpona"]."stat_session values (null,'".$this->ctenarses."','".$platnost."')",$GLOBALS["dbspojeni"]); $this->SendCook(); @mysql_query("insert into ".$GLOBALS["rspredpona"]."stat_ip values (null,'".$this->ctenarip."','".$platnost."')",$GLOBALS["dbspojeni"]); } function UlozStat() { // vyhodnoceni statistiky $dotazex=mysql_query("select count(idd) as pocet from ".$GLOBALS["rspredpona"]."stat_data where datum='".$this->aktdat."' and hodina='".$this->akthod."'",$GLOBALS["dbspojeni"]); if (mysql_Result($dotazex,0,"pocet")==0): $statprikaz=$this->GenNovy(); // zaznam jeste neexistuje else: $statprikaz=$this->GenStary(); // zaznam existuje endif; @mysql_query($statprikaz,$GLOBALS["dbspojeni"]); // vykonani SQL prikazu // priprava budouci statistiky; kdyz byl identifikovan novy ctenar, tak se ulozi jeho identita do docasne tabulky if ($this->ctenartyp==1): $this->GenIdent(); endif; } } /* cookies: readerphprs verze 3.0.0 - rs3 - id ctenare - session nalezici ctenari */ class CMyReader { var $ctenaridsess; // id session ctenare var $ctenarsess; // session ctenare var $ctenarstav; // stav ctenare; identita overena: ano/ne var $ctenardata; // data o ctenarovi var $verzecookies; // verze phprs reader cookies /* CMyReader() ..... - konstruktor OverCtenare() ... - overeni platnosti session ctenare Ukaz($co = "") .. - fce pro vypis konkretnich dat o ctenarovi */ function CMyReader() { $this->ctenarstav=0; // inic. stavu ctenare; default false $this->ctenardata=array(); // inic. datoveho pole // test na existenci session if (isset($_COOKIE['readerphprs'])): $vstupcookies=base64_decode($_COOKIE['readerphprs']); // dekodovani cookies $vstupcookies=explode("*::*",$vstupcookies); // dekompilace cookies $this->verzecookies=addslashes($vstupcookies[0]); // aktualni: rs3 $this->ctenaridsess=addslashes($vstupcookies[1]); $this->ctenarsess=addslashes($vstupcookies[2]); // overeni platnosti prihlaseni $this->OverCtenare(); endif; } function OverCtenare() { // test na verzi 3.0.0 if ($this->verzecookies=="rs3"): $aktcas=date("Y-m-d H:i:s"); // odmazani proslych session mysql_query("delete from ".$GLOBALS["rspredpona"]."cte_session where platnost<'".$aktcas."'",$GLOBALS["dbspojeni"]); // overeni ctenare $dotazctenar=mysql_query("select c.idc,c.prezdivka,c.jmeno,c.email,c.data,c.visible,c.jazyk from ".$GLOBALS["rspredpona"]."ctenari as c,".$GLOBALS["rspredpona"]."cte_session as s where s.ids='".$this->ctenaridsess."' and s.session='".$this->ctenarsess."' and s.platnost>'".$aktcas."' and s.id_cte=c.idc",$GLOBALS["dbspojeni"]); if (mysql_num_rows($dotazctenar)>0): $this->ctenardata=mysql_fetch_assoc($dotazctenar); $this->ctenarstav=1; endif; else: // odstraneni stare verze cookies setcookie("readerphprs","",time()-3600); endif; } function Ukaz($co = "") { if ($this->ctenarstav==1): // prihlaseni ctenare je platne switch($co): case "id": return $this->ctenardata["idc"]; break; case "username": return $this->ctenardata["prezdivka"]; break; case "jmeno": return $this->ctenardata["jmeno"]; break; case "email": return $this->ctenardata["email"]; break; case "databox": return $this->ctenardata["data"]; break; case "zobrazitdata": return $this->ctenardata["visible"]; break; case "jazyk": return $this->ctenardata["jazyk"]; break; default: return ""; endswitch; else: // chyba; ctenar nema platne overeni return ""; endif; } } //----[ aktivace statistiky ]---- $prwebovast = new CWebStat(); $prwebovast->UlozStat(); //------------------------------- //----[ overeni prihlaseni ]----- $prmyctenar = new CMyReader(); //------------------------------- ?> ctenarstav==1): if ($GLOBALS["prmyctenar"]->Ukaz("jazyk")!=""): $vybranyjazyk=$GLOBALS["prmyctenar"]->Ukaz("jazyk"); else: $vybranyjazyk="cz"; endif; else: $vybranyjazyk="cz"; endif; $jazykadresa="lang/sl_".$vybranyjazyk.".php"; include($jazykadresa); ?> NactiTxtSablonu($text); $vzhledwebu->UlozPro("titulek","Welcome to the my home page"); $vzhledwebu->Inic(); *** Generujici/kompilacni faze: *** $vzhledwebu->Generuj(); ... obsah hlavniho info. bloku - tento krok lze preskocit pouzitim fce UlozHlavniBlok(...) v inic. casti pro preddefinovani obsahu hl. info. bloku ... $vzhledwebu->Generuj(); */ //include_once("config.php"); //$GLOBALS["dbspojeni"]=dbcon(); if (!defined('IN_CODE')): die('Nepovoleny pristup! / Hacking attempt!'); endif; class CLayout { var $obsah_sab; // obsah sablony var $nalez_prom; // nalezene promenne v sablone var $poc_nalez_prom; // pocet nalezenych promennych var $pole_prom; // pole znamych ulozenych promennych var $poc_pole_prom; // pocet znamych ulozenych promennych var $sloupec; // informace o sloupcich var $poc_sloupcu; // pocet sloupcu var $hlavnistranka; // prepinac hlavni stranka var $hlavniblok; // obsah hlavniho bloku var $bloknazev,$bloktyp; // spec. promenne, ktere nesou akt. hodnoty prave nacteneho bloku; vyuziti u plug-inu var $stopfce_stav,$stopfce_sl,$stopfce_blok,$stopfce_iddotaz,$stopfce_pocetdotaz; // // spec. promenne, ktere umoznuji zastavit generovani vzhledove tabulky var $cela_sab; // informace o zprac. cele sablony /* CLayout() NactiTxtSablonu($obs_sab = "") NactiFileSablonu($jmeno_souboru = "") NajdiPro() UlozPro($jmeno = "", $obsah = "") UlozHlavniBlok($vstup = "") NactiSloupce() VratIdSloupce($sloupec_cislo = 0) AktBlokNazev() AktBlokTyp() GenerujSloupecStopFce($idsloupce = 0) Preklad() Inic() Generuj() */ function CLayout($hlstr = 0) // kontruktor { $this->obsah_sab=""; $this->nalez_prom = array(); // 0 - string, 1 - typ stringu (0 - obycejny, 1 - promenna) $this->poc_nalez_prom=0; $this->pole_prom = array(); // 0 - jmeno, 1 - obsah $this->poc_pole_prom=0; $this->poc_sloupcu=0; $this->sloupec = array(); // 0 - id sloupce, 1 - zobrazit obsah (0 - ne / 1 - ano) $this->hlavnistranka=$hlstr; $this->hlavniblok=""; $this->cela_sab=0; } function NactiTxtSablonu($obs_sab = "") // nacteni sablony z retezce { // ulozeni sablony $this->obsah_sab=$obs_sab; } function NactiFileSablonu($jmeno_souboru = "") // nacteni sablony ze souboru { // test na existenci souboru if (file_exists($jmeno_souboru)==1): // nacteni sablony do pole $obssoubor=file($jmeno_souboru); $pocetobs=count($obssoubor); for($pom=0;$pom<$pocetobs;$pom++): $this->obsah_sab.=$obssoubor[$pom]; endfor; endif; } function NajdiPro() // dekompilace sablony; zjisteni promennych { $pom_pole=explode("<*",$this->obsah_sab); $poc_pom_pole=count($pom_pole); for ($pom=0;$pom<$poc_pom_pole;$pom++): $end_poz=strpos($pom_pole[$pom],"*>"); // test na existenci ukoncovaciho znaku if ($end_poz==0||$end_poz>20): $this->nalez_prom[$this->poc_nalez_prom][0]=$pom_pole[$pom]; $this->nalez_prom[$this->poc_nalez_prom][1]=0; $this->poc_nalez_prom++; else: $delka=strlen($pom_pole[$pom]); // delka stringu // promenna $this->nalez_prom[$this->poc_nalez_prom][0]=strtolower(substr($pom_pole[$pom],0,$end_poz)); $this->nalez_prom[$this->poc_nalez_prom][1]=1; $this->poc_nalez_prom++; // zbytek stringu $this->nalez_prom[$this->poc_nalez_prom][0]=substr($pom_pole[$pom],$end_poz+2,$delka-$end_poz-2); $this->nalez_prom[$this->poc_nalez_prom][1]=0; $this->poc_nalez_prom++; endif; endfor; } function UlozPro($jmeno = "", $obsah = "") // ulozeni znamych promennych do pameti { if ($jmeno!=""): $nova_pro=1; // prepinac nova prom. $jmeno=strtolower(trim($jmeno)); // test na zpusob ulozeni promenne for ($pom=0;$pom<$this->poc_pole_prom;$pom++): if($this->pole_prom[$pom][0]==$jmeno): // test na shodu $this->pole_prom[$pom][0]=$jmeno; $this->pole_prom[$pom][1]=$obsah; $nova_pro=0; break; endif; endfor; if ($nova_pro==1): // ulozeni uplne nove promenne $this->pole_prom[$this->poc_pole_prom][0]=$jmeno; $this->pole_prom[$this->poc_pole_prom][1]=$obsah; $this->poc_pole_prom++; endif; endif; } function UlozHlavniBlok($vstup = "") // ulozeni obsahu hlavniho bloku do pameti { $this->hlavniblok=$vstup; } function NactiSloupce() // nacteni sloupcu do pameti { $dotazslo=mysql_query("select ids,zobrazit from ".$GLOBALS["rspredpona"]."sloupce order by ids",$GLOBALS["dbspojeni"]); $this->poc_sloupcu=mysql_num_rows($dotazslo); for ($pom=0;$pom<$this->poc_sloupcu;$pom++): $this->sloupce[$pom][0]=mysql_Result($dotazslo,$pom,"ids"); $this->sloupce[$pom][1]=mysql_Result($dotazslo,$pom,"zobrazit"); endfor; } function VratIdSloupce($sloupec_cislo = 0) // prepocita logicke poradove oznaceni sloupce na platne ID { $vysl=0; if ($sloupec_cislo>0&&$this->poc_sloupcu>=$sloupec_cislo): $zaznam_cislo=$sloupec_cislo-1; if ($this->sloupce[$zaznam_cislo][1]==1): $vysl=$this->sloupce[$zaznam_cislo][0]; endif; endif; return $vysl; } function AktBlokNazev() // vraci aktulaniho nazvu prave nacteneho bloku { return $this->bloknazev; } function AktBlokTyp() // vraci aktulaniho typu prave nacteneho bloku { return $this->bloktyp; } function GenerujSloupecStopFce($idsloupce = 0) // generator jednotlivych sloupcu { if ($this->stopfce_stav==0): // tato podminka zajisti pouze jedno nacteni; pokud je aktivni fce stop, tak se jiz znovu nenacita // sestaveni podm. zobrazeni (zobrazit_kde: 0 = vsude, 1 = jen hl. str., 2 = vsude mimo hl. str.) if ($this->hlavnistranka): // hl. str. = true $podminka="id_sloupec='".$idsloupce."' and zobrazit=1 and zobrazit_kde!=2"; // zobrazit: vsude + jen na hl. str. else: // hl. str. = false $podminka="id_sloupec='".$idsloupce."' and zobrazit=1 and zobrazit_kde!=1"; // zobrazit: vsude + vsude mimo hl. str. endif; $this->stopfce_blok=0; // vynulovani hlidace pozice // nacteni bloku odpovidajicich podmince $this->stopfce_iddotaz=mysql_query("select nazev,obsah,typ,data_sys,sys_funkce from ".$GLOBALS["rspredpona"]."bloky where ".$podminka." order by hodnost desc,idb",$GLOBALS["dbspojeni"]); $this->stopfce_pocetdotaz=mysql_num_rows($this->stopfce_iddotaz); else: $this->stopfce_stav=0; // vrati stav na false, aby dalsi prubeh touto funkci mohl byt kompletni endif; if($this->stopfce_pocetdotaz>0): for ($pom=$this->stopfce_blok;$pom<$this->stopfce_pocetdotaz;$pom++): list($blonazev,$bloobsah,$blotyp,$blodatasys,$blosysfunkce)=mysql_fetch_row($this->stopfce_iddotaz); if ($blodatasys==0): // datove bloky switch($blotyp): case 1: Blok1($blonazev,$bloobsah); break; case 2: Blok2($blonazev,$bloobsah); break; case 3: Blok3($blonazev,$bloobsah); break; case 4: Blok4($blonazev,$bloobsah); break; case 5: Blok5($blonazev,$bloobsah); break; endswitch; else: // ulozeni nazvu a typu bloku do pameti $this->bloknazev=$blonazev; $this->bloktyp=$blotyp; // systemove bloky switch($blosysfunkce): // ank, nov, rub, kal, hlb case 'ank': Anketa(); break; case 'nov': HotNews(); break; case 'rub': GenHlavMenu(); break; case 'kal': Kalendar(); break; case 'hlb': if ($this->hlavniblok==""): $this->stopfce_stav=1; // aktivace stop fce $this->stopfce_blok=($pom+1); // ulozeni navratove pozice v MySQL dotazu else: echo $this->hlavniblok; endif; break; default: $dotazplug=mysql_query("select inclsb_blok,funkce_blok from ".$GLOBALS["rspredpona"]."plugin where zkratka_blok='".$blosysfunkce."' and sys_blok='1'",$GLOBALS["dbspojeni"]); $pocetplug=mysql_num_rows($dotazplug); if ($pocetplug>0): // nasel odpovidajici plug-in include_once(mysql_Result($dotazplug,0,"inclsb_blok")); call_user_func(mysql_Result($dotazplug,0,"funkce_blok")); endif; break; endswitch; endif; if ($this->stopfce_stav==1): break; endif; // kdyz je aktivovana stop fce, tak ukonci beh for cyklu endfor; // konec $pocteslo $this->bloknazev=""; $this->bloktyp=""; endif; // konec $pocetslo } function Preklad() // preklad sablony do finalni podoby { for ($pom=$this->stopfce_preklad;$pom<$this->poc_nalez_prom;$pom++): if ($this->nalez_prom[$pom][1]==0): // obycejny string echo $this->nalez_prom[$pom][0]; else: // promenna if (substr_count($this->nalez_prom[$pom][0],"syssl")==1): // test na systemovou promennou - sloupec $sys_sloupec=explode(":",$this->nalez_prom[$pom][0]); // 0 - identifikace (syssl), 1 - cislo sloupce $this->GenerujSloupecStopFce($this->VratIdSloupce($sys_sloupec[1])); // poradove cislo sloupce musi byt skrze fci VratIdSloupce() prelozeno na platne ID // test na stop stav if ($this->stopfce_stav==1): $this->stopfce_preklad=$pom; break; endif; else: // hledani odpovidajici promenne for ($p1=0;$p1<$this->poc_pole_prom;$p1++): if ($this->nalez_prom[$pom][0]==$this->pole_prom[$p1][0]): echo $this->pole_prom[$p1][1]; break; endif; endfor; // konec - hledani odpovidajici promenne endif; endif; endfor; // test na probehnuti cele sablony if ($pom>=$this->poc_nalez_prom): $this->cela_sab=1; endif; } function Inic() { // prednacteni a zprac. potrebnych dat $this->NajdiPro(); $this->NactiSloupce(); // inic. inter. promennych $this->bloknazev=""; $this->bloktyp=""; // inic. stop fce $this->stopfce_stav=0; // stav stop fce $this->stopfce_sl=0; // akt. sloupec $this->stopfce_blok=0; // akt. blok cekajici na zpracovani $this->stopfce_iddotaz=0; // id MySQL dotazu $this->stopfce_pocetdotaz=0; // pocet radku ziskanych behem MySQL dotazu $this->stopfce_preklad=0; // akt. pozice v prekladu sablony } function Generuj() { // test na uplnost dokonceni prekladu sablony; zabranuje vice-nasobnemu volani if ($this->cela_sab==0): $this->Preklad(); endif; } } ?>".$phprsversion."
".$GLOBALS["layoutversion"]."\n"; echo "

\n"; } function ShowTopics() { $dotaztopic=mysql_query("select idt,nazev,obrazek from ".$GLOBALS["rspredpona"]."topic order by nazev",$GLOBALS["dbspojeni"]); $pocettopic=mysql_num_rows($dotaztopic); if ($pocettopic==0): echo "

".RS_EN_TOPIC_ERR1."

\n"; else: $pocet_sl=3; $akt_sl=1; // start table echo "\n"; for ($pom=0;$pom<$pocettopic;$pom++): if ($akt_sl==1): echo "\n"; endif; echo "\n"; if ($akt_sl==$pocet_sl): echo "\n"; $akt_sl=1; else: $akt_sl++; endif; endfor; // dokonceni tabulky if ($akt_sl!=1&&$akt_sl<=$pocet_sl): for ($pom=$akt_sl;$pom<=$pocet_sl;$pom++): echo "\n"; endfor; echo "\n"; endif; // konec table echo "
"; echo "\"".mysql_Result($dotaztopic,$pom,"nazev")."\"

"; echo "".mysql_Result($dotaztopic,$pom,"nazev")."\n"; echo "
\n"; endif; echo "

\n"; } function AktSekce($aktid,$aktnazev,$testovaneid) { // funkce testujici shodu aktualne vybrane sekce se zaslanou sekci pres promenne $akt... if ($aktid==$testovaneid): return $aktnazev; else: return "".$aktnazev.""; endif; } function ShowLinks() { // test na existenci sekce if (!isset($GLOBALS["sekce"])): $GLOBALS["sekce"]=0; endif; // 0 = neexistujici sekce $GLOBALS["sekce"]=addslashes($GLOBALS["sekce"]); // korekce vstupu $zobrazvypis=0; // inic. zobr. - ne $mnozstvilinku=50; // nastaveni mnozstvi zobrazenych linku echo "

".RS_EN_LINKS_NADPIS."

\n"; // nadpis // urceni omezeni if ($GLOBALS["sekce"]==0): // neexistuje upresneni sekce - nacteni hl. sekce $dotazhl=mysql_query("select ids from ".$GLOBALS["rspredpona"]."links_sekce where hlavnisekce='1'",$GLOBALS["dbspojeni"]); if (mysql_num_rows($dotazhl)>0): $GLOBALS["sekce"]=mysql_Result($dotazhl,0,"ids"); // id hlavni sekce $promezeni="where idsekce='".$GLOBALS["sekce"]."' "; $zobrazvypis=1; // vypis - ano endif; else: // existuje prom. sekce $promezeni="where idsekce='".$GLOBALS["sekce"]."' "; $zobrazvypis=1; // vypis - ano endif; // zobrazeni prehledu sekci $prepinac=0; $dotazsek=mysql_query("select ids,nazev from ".$GLOBALS["rspredpona"]."links_sekce order by nazev",$GLOBALS["dbspojeni"]); $pocetsek=mysql_num_rows($dotazsek); if ($pocetsek>1): echo "\n"; for ($pom=0;$pom<$pocetsek;$pom++): if ($prepinac==0): echo "\n"; echo ""; // mezera mezi sloupci $prepinac=1; else: echo "\n"; $prepinac=0; endif; endfor; if (($pocetsek>0)&&($prepinac==1)): echo "\n"; endif; echo "
".AktSekce(mysql_Result($dotazsek,$pom,"ids"),mysql_Result($dotazsek,$pom,"nazev"),$GLOBALS["sekce"])."    ".AktSekce(mysql_Result($dotazsek,$pom,"ids"),mysql_Result($dotazsek,$pom,"nazev"),$GLOBALS["sekce"])."
 
\n"; echo "

\n"; endif; // vypis linku if ($zobrazvypis==1): $dotazlink=mysql_query("select titulek,adresa,komentar,zdroj_jm,zdroj_url,zobraz_zdroj from ".$GLOBALS["rspredpona"]."links ".$promezeni."order by titulek limit 0,".$mnozstvilinku,$GLOBALS["dbspojeni"]); $pocetlink=mysql_num_rows($dotazlink); if ($pocetlink==0): echo "

".RS_EN_LINKS_ERR1."

\n"; else: for ($pom=0;$pom<$pocetlink;$pom++): $pole_data=mysql_fetch_assoc($dotazlink); echo "

".$pole_data["titulek"]."\n"; if ($pole_data["komentar"]!=""): // kdyz existuje komentar echo " - ".$pole_data["komentar"]; endif; if ($pole_data["zobraz_zdroj"]==1): // kdyz se ma zobr. zdroj echo "  ".RS_EN_LINKS_ZDROJ.": ".$pole_data["zdroj_jm"].""; endif; echo "

\n"; endfor; endif; endif; echo "

\n"; } function ShowStatistics() { $mnozstvipolozek=15; // nastaveni mnozstvi zobrazenych clanku $akt_cas=Date("Y-m-d H:i:s"); // nacteni seznamu uzivatelu(autoru) do pole "autori" $dotazaut=mysql_query("select idu,jmeno,email from ".$GLOBALS["rspredpona"]."user order by idu",$GLOBALS["dbspojeni"]); $pocetaut=mysql_num_rows($dotazaut); for ($pom=0;$pom<$pocetaut;$pom++): $pole_user=mysql_fetch_assoc($dotazaut); $autori[$pole_user["idu"]][0]=$pole_user["jmeno"]; //$autori[$pole_user["idu"]][1]="mailto:".$pole_user["email"]; endfor; echo "

".RS_EN_STAT_NADPIS."

\n"; // nadpis // vypis n-nejctenejsich clanku $dotaznej=mysql_query("select link,titulek,datum,autor,visit from ".$GLOBALS["rspredpona"]."clanky where visible='1' and datum<='".$akt_cas."' order by visit desc limit 0,".$mnozstvipolozek,$GLOBALS["dbspojeni"]); $pocetnej=mysql_num_rows($dotaznej); // overeni pritomnosti clanku if ($pocetnej==0): echo "

".RS_EN_STAT_ERR1."

\n"; else: for ($pom=0;$pom<$pocetnej;$pom++): $pole_data=mysql_fetch_assoc($dotaznej); echo "

".$pole_data["titulek"]." (".$pole_data["visit"]."x, ".MyDatetimeToDate($pole_data["datum"]); // kompilace autora if (isset($autori[$pole_data["autor"]][0])): echo ", ".$autori[$pole_data["autor"]][0]; endif; echo ")

\n"; endfor; endif; echo "

\n"; } ?>