PageRenderTime 72ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/obsah.php/homepage.php

https://github.com/GE3/GE3
PHP | 258 lines | 163 code | 45 blank | 50 comment | 1 complexity | 7b826ec4b8323aa6ca143d7d01a63e4b MD5 | raw file
  1. <?php
  2. If( $_GET["a"]=='homepage' OR !$_GET["a"] ){
  3. /**
  4. * Homepage
  5. */
  6. Function vlozGalerii($obsah){
  7. $CONF = &$GLOBALS["config"];
  8. While( eregi('<img[^>]* alt="galery [0-9]+"[^>]*/>', $obsah) ){
  9. $tmplGalerie = new GlassTemplate("templates/$CONF[vzhled]/galerie.html");
  10. /* -- Získání ID galerie -- */
  11. $idGalerie = preg_replace('|^.*<img[^>]* alt="galery ([0-9]+)"[^>]*/>.*$|Usi', "\\1", $obsah);
  12. $idGalerie = preg_replace("|\s|Usi", "", $idGalerie); //(nevim proč, ale php si tam přidávalo odřádkování)
  13. /* -- Vygenerování galerie -- */
  14. //název
  15. $radek = mysql_fetch_assoc( Mysql_query("SELECT * FROM $CONF[sqlPrefix]gal_kat WHERE id=$idGalerie AND skryta='ne'") );
  16. $tmplGalerie->prirad("id", $radek["id"]);
  17. $tmplGalerie->prirad("nazev", $radek["nazev"]);
  18. //fotky
  19. $dotaz = Mysql_query("SELECT x.id as idKategorie, x.slozka, x.nazev, y.* FROM
  20. $CONF[sqlPrefix]gal_kat x JOIN $CONF[sqlPrefix]galerie y ON x.id=y.kategorie
  21. WHERE x.id=$idGalerie AND x.skryta='ne' ORDER BY y.vaha ASC") or die(mysql_error());
  22. While($radek=mysql_fetch_assoc($dotaz)){
  23. $tmplGalerie->newBlok("obrazek");
  24. $tmplGalerie->prirad("obrazek.url", "$CONF[absDir]userfiles/galerie/$radek[slozka]/$radek[foto]");
  25. $tmplGalerie->prirad("obrazek.urlNahled", "$CONF[absDir]userfiles/galerie/$radek[slozka]/nahledy/$radek[foto]");
  26. $tmplGalerie->prirad("obrazek.kategorie", $radek["nazev"]);
  27. $tmplGalerie->prirad("obrazek.popis", $radek["popis"]);
  28. }
  29. /* -- Vložení do obsahu -- */
  30. $obsahPred = $obsah;
  31. $obsah = preg_replace('|<img[^>]* alt="galery '.$idGalerie.'"[^>]*/>|Usi', $tmplGalerie->getHtml(), $obsah);
  32. }
  33. Return $obsah;
  34. }
  35. $tmplHomepage = new GlassTemplate("templates/$CONF[vzhled]/homepage.html");
  36. ////////////
  37. // Novinky
  38. ////////////
  39. // Zjištění obsahu novinky
  40. $tmplClanek = new GlassTemplate("templates/$CONF[vzhled]/clanek.html");
  41. $dotaz2 = Mysql_query("SELECT * FROM $CONF[sqlPrefix]clanky WHERE typ='novinka' ORDER BY id DESC LIMIT 2");
  42. $i = 0;
  43. While($radek2 = mysql_fetch_array($dotaz2)){
  44. $i++;
  45. // Zobrazení
  46. $tmplClanek->newBlok("novinka");
  47. $tmplClanek->prirad("novinka.i", $i);
  48. $tmplClanek->prirad("novinka.nazev", $radek2["nazev"]);
  49. If( $CONF["mod_rewrite"])$tmplClanek->prirad("novinka.url", "clanky/".$radek2["id"]."-".urlText($radek2["nazev"]).".html");
  50. If(!$CONF["mod_rewrite"])$tmplClanek->prirad("novinka.url", "?a=clanky&clanek=".$radek2["id"]."-".urlText($radek2["nazev"]));
  51. $tmplClanek->prirad("novinka.datum", @date("j.n.Y G:i",$radek2["datum"]));
  52. $tmplClanek->prirad("novinka.uvod", $radek2["uvod"]);
  53. }
  54. $tmplHomepage->prirad("novinky", $tmplClanek->getHtml());
  55. /////////////////////////////
  56. // Zobrazení přehledu zboží
  57. /////////////////////////////
  58. $tmplProdukty = new GlassTemplate("templates/$CONF[vzhled]/produkty.html");
  59. $dotaz2 = "SELECT *, MIN(cenaSDph), MIN(cenaBezDph) FROM $CONF[sqlPrefix]zbozi WHERE akce=1 GROUP BY produkt ORDER BY id DESC LIMIT 0,".$radek["pocet_zbozi"]."";
  60. $dotaz2 = Mysql_query($dotaz2);
  61. /* -- Zobrazení zboží -- */
  62. $i = 0;
  63. while($radek2=mysql_fetch_array($dotaz2)){
  64. $i++;
  65. $tmplProdukty->newBlok("produkt");
  66. $tmplProdukty->prirad("produkt.i", $i);
  67. // Název produktu
  68. $tmplProdukty->prirad("produkt.nazev", $radek2["produkt"]);
  69. // Číslo
  70. $tmplProdukty->prirad("produkt.cislo", $radek2["cislo"]);
  71. // Krátký popis
  72. $tmplProdukty->prirad("produkt.popisUvod", substr(strip_tags($radek2["popis"]),0,180));
  73. // Ceny
  74. //dopočítání nezadaných cen
  75. $cenaSDph = $radek2["MIN(cenaSDph)"]?$radek2["MIN(cenaSDph)"]:($radek2["MIN(cenaBezDph)"]*(1+$radek2["dph"]/100));
  76. $cenaBezDph = $radek2["MIN(cenaBezDph)"]?$radek2["MIN(cenaBezDph)"]:($radek2["MIN(cenaSDph)"]/(1+$radek2["dph"]/100));
  77. $dph = $radek2["dph"]?$radek2["dph"]:($radek2["cenaSDph"]/$radek2["cenaBezDph"]*100-100);
  78. //zobrazení
  79. $tmplProdukty->prirad("produkt.cenaSDph", $cenaSDph);
  80. $tmplProdukty->prirad("produkt.cenaBezDph", $cenaBezDph);
  81. $tmplProdukty->prirad("produkt.dph", $dph);
  82. // Dostupnost
  83. $tmplProdukty->prirad("produkt.dostupnost", $radek2["dostupnost"]);
  84. // Akční nabídka
  85. If($radek2["akce"]) $tmplProdukty->prirad("produkt.akce", "ano");
  86. // Url
  87. If( $CONF["mod_rewrite"] ){
  88. //(informace pro nové url se berou ze stávající url. Pokud zde nejsou, zkusí se získat z db.)
  89. $kategorie = $_GET["kategorie"]? $_GET["kategorie"]: ($radek2["kategorie"]? $radek2["id"].'-'.urlText($radek2["kategorie"]): '');
  90. $kategorie = $kategorie? ''.$kategorie.'/': '';
  91. $podkat1 = $_GET["podkat1"]? $_GET["podkat1"]: ($radek2["podkat1"]? $radek2["id"].'-'.urlText($radek2["podkat1"]): '');
  92. $podkat1 = $podkat1? ''.$podkat1.'/': '';
  93. $podkat2 = $_GET["podkat2"]? $_GET["podkat2"]: ($radek2["podkat2"]? $radek2["id"].'-'.urlText($radek2["podkat2"]): '');
  94. $podkat2 = $podkat2? ''.$podkat2.'/': '';
  95. $podkat3 = $_GET["podkat3"]? $_GET["podkat3"]: ($radek2["podkat3"]? $radek2["id"].'-'.urlText($radek2["podkat3"]): '');
  96. $podkat3 = $podkat3? ''.$podkat3.'/': '';
  97. $produkt = ''.$radek2["id"].'-'.urlText($radek2["produkt"]).".html";
  98. $tmplProdukty->prirad("produkt.url", $CONF["absDir"]."produkty/".$kategorie.$podkat1.$podkat2.$podkat3.$produkt);
  99. }
  100. Else{
  101. //(informace pro nové url se berou ze stávající url. Pokud zde nejsou, zkusí se získat z db.)
  102. $kategorie = $_GET["kategorie"]? $_GET["kategorie"]: ($radek2["kategorie"]? $radek2["id"].'-'.urlText($radek2["kategorie"]): '');
  103. $kategorie = $kategorie? '&kategorie='.$kategorie.'': '';
  104. $podkat1 = $_GET["podkat1"]? $_GET["podkat1"]: ($radek2["podkat1"]? $radek2["id"].'-'.urlText($radek2["podkat1"]): '');
  105. $podkat1 = $podkat1? '&podkat1='.$podkat1.'': '';
  106. $podkat2 = $_GET["podkat2"]? $_GET["podkat2"]: ($radek2["podkat2"]? $radek2["id"].'-'.urlText($radek2["podkat2"]): '');
  107. $podkat2 = $podkat2? '&podkat2='.$podkat2.'': '';
  108. $podkat3 = $_GET["podkat3"]? $_GET["podkat3"]: ($radek2["podkat3"]? $radek2["id"].'-'.urlText($radek2["podkat3"]): '');
  109. $podkat3 = $podkat3? '&podkat3='.$podkat3.'': '';
  110. $produkt = '&produkt='.$radek2["id"].'-'.urlText($radek["produkt"]);
  111. $tmplProdukty->prirad("produkt.url", "?a=produkty".$kategorie.$podkat1.$podkat2.$podkat3.$produkt);
  112. }
  113. // Url Do košíku
  114. $tmplProdukty->prirad("produkt.urlDoKosiku", "?a=kosik&b=pridat&produkt=".$radek2["id"]."-".urlText($radek2["produkt"]));
  115. // Obrázek
  116. $obrazek = ereg_replace("^;", "", $radek2["obrazky"]);
  117. $obrazek = preg_replace("|^([^;]*).*$|", "$1", $obrazek);
  118. If( $obrazek) $tmplProdukty->prirad("produkt.obrazek", "zbozi/obrazky/$obrazek");
  119. If(!$obrazek) $tmplProdukty->prirad("produkt.obrazek", file_exists("templates/$CONF[vzhled]/noPicture.jpg")?"templates/$CONF[vzhled]/noPicture.jpg":"templates/default/noPicture.jpg");
  120. }
  121. $tmplHomepage->prirad("produkty", $tmplProdukty->getHtml());
  122. ///////////
  123. // Zápatí
  124. ///////////
  125. $tmplClanek = new GlassTemplate("templates/$CONF[vzhled]/clanek.html");
  126. $dotaz2=Mysql_query("SELECT *
  127. FROM $CONF[sqlPrefix]clanky
  128. WHERE id=".$radek["zapati"]);
  129. $radek2=Mysql_fetch_array($dotaz2);
  130. $tmplClanek->newBlok("clanek");
  131. $tmplClanek->prirad("clanek.nazev", ""); //$radek2["nazev"]
  132. $tmplClanek->prirad("clanek.datum", @date("j.n.Y G:i",$radek2["datum"]));
  133. $tmplClanek->prirad("clanek.uvod", $radek2["uvod"]);
  134. $tmplClanek->prirad("clanek.obsah", $radek2["obsah"]);
  135. $tmplHomepage->prirad("zapati", $tmplClanek->getHtml());
  136. ///////////
  137. // Anketa
  138. ///////////
  139. $tmplAnk = new GlassTemplate("templates/$CONF[vzhled]/ankety.html");
  140. $dotaz = Db_query("SELECT id,otazka FROM $CONF[sqlPrefix]ankety WHERE aktivni=1 ORDER BY id DESC");
  141. While($radek=mysql_fetch_assoc($dotaz)){
  142. $tmplAnk->newBlok("anketa");
  143. /* -- Přidání hlasu -- */
  144. Include_once 'ostatni.php/statistiky.funkce.php'; //umožňuje zjistit, jestli je návštěvník vyhledávací robot
  145. If( $_GET["anketa"]==$radek["id"] AND $_GET["odpoved"] ){
  146. // Promazání starých IP
  147. Db_query("DELETE FROM $CONF[sqlPrefix]anketyIp WHERE time<".(time()-60)."");
  148. // Hlasování
  149. $ip = $_SERVER["REMOTE_ADDR"]."/".$_SERVER["HTTP_X_FORWARDED_FOR"];
  150. If( !zjistiZ("$CONF[sqlPrefix]anketyIp", "id", "anketaId=$radek[id] AND ip='$ip'") AND !jeRobot() ){
  151. Db_query("INSERT INTO $CONF[sqlPrefix]anketyIp(anketaId,time,ip) VALUES ($radek[id], ".time().", '$ip')");
  152. Db_query("UPDATE $CONF[sqlPrefix]anketyOdpovedi SET pocet=(
  153. (SELECT pocet FROM (SELECT pocet FROM $CONF[sqlPrefix]anketyOdpovedi WHERE id=$_GET[odpoved]) as pomTable LIMIT 1)+1)
  154. WHERE id=$_GET[odpoved]");
  155. If(mysql_affected_rows()==1) $tmplAnk->prirad("anketa.hlaska", "Váš hlas byl započítán.");
  156. Else{$tmplAnk->prirad("anketa.hlaska", "Neznámá chyba."); bugReport("Chyba v hlasování v anketě, ovlivněných řádků: ".mysql_affected_rows());}
  157. }
  158. Else $tmplAnk->prirad("anketa.hlaska", "Nelze hlasovat vícekrát.");
  159. }
  160. /* -- Zobrazení -- */
  161. $tmplAnk->prirad("anketa.id", $radek["id"]);
  162. $tmplAnk->prirad("anketa.otazka", $radek["otazka"]);
  163. /* -- Odpovědi -- */
  164. $dotaz2 = Db_query("SELECT * FROM $CONF[sqlPrefix]anketyOdpovedi WHERE anketaId=$radek[id] ORDER BY id ASC");
  165. $celkemHlasu = zjistiZ("$CONF[sqlPrefix]anketyOdpovedi","SUM(pocet)", "anketaId=$radek[id] GROUP BY anketaId");
  166. While($radek2=mysql_fetch_assoc($dotaz2)){
  167. $tmplAnk->newBlok("anketa.odpoved");
  168. $tmplAnk->prirad("anketa.odpoved.id", $radek2["id"]);
  169. $tmplAnk->prirad("anketa.odpoved.text", $radek2["odpoved"]);
  170. $tmplAnk->prirad("anketa.odpoved.url", $_SERVER["REQUEST_URL"]."?anketa=$radek[id]&odpoved=$radek2[id]");
  171. $tmplAnk->prirad("anketa.odpoved.pocetHlasu", $radek2["pocet"]);
  172. $tmplAnk->prirad("anketa.odpoved.procentHlasu", $celkemHlasu? round($radek2["pocet"]/$celkemHlasu*100,2): '0');
  173. $tmplAnk->prirad("anketa.odpoved.celkemHlasu", $celkemHlasu);
  174. }
  175. $tmplAnk->prirad("anketa.pocetOdpovedi", mysql_num_rows($dotaz2));
  176. $tmplAnk->prirad("anketa.celkemHlasu", $celkemHlasu);
  177. }
  178. $tmplHomepage->prirad("ankety", $tmplAnk->getHtml());
  179. //////////////////
  180. // Úvodní článek
  181. //////////////////
  182. $tmplClanek = new GlassTemplate("templates/$CONF[vzhled]/clanek.html");
  183. $dotaz=Mysql_query("SELECT x.*, y.*
  184. FROM $CONF[sqlPrefix]homepage x, $CONF[sqlPrefix]clanky y
  185. WHERE x.id=1 AND x.clanek=y.id");
  186. $radek=Mysql_fetch_array($dotaz);
  187. $tmplClanek->newBlok("clanek");
  188. $tmplClanek->prirad("clanek.nazev", $radek["nazev"]);
  189. $tmplClanek->prirad("clanek.datum", @date("j.n.Y G:i",$radek["datum"]));
  190. $tmplClanek->prirad("clanek.uvod", $radek["uvod"]);
  191. $tmplClanek->prirad("clanek.obsah", $radek["obsah"]);
  192. $tmplHomepage->prirad("clanek", vlozGalerii($tmplClanek->getHtml()));
  193. $tmpl->prirad("obsah", $tmplHomepage->getHtml());
  194. ///////////////
  195. // partneri
  196. //////////////
  197. $partneri_dotaz=Mysql_query("SELECT * FROM $CONF[sqlPrefix]clanky
  198. WHERE id='8'");
  199. $p_radek=Mysql_fetch_array($partneri_dotaz);
  200. if($p_radek){
  201. $tmpl->newBlok("partneri_menu");
  202. $tmpl->prirad("partneri_menu.partneri", $p_radek["obsah"]);
  203. $tmpl->newBlok("paticka2");
  204. }
  205. else{
  206. $tmpl->newBlok("paticka1");
  207. }
  208. /////////////
  209. // Navigace
  210. /////////////
  211. $tmpl->prirad("navigace", $radek["nazev"]);
  212. }
  213. ?>