1: <?php
  2: #####################################################################
  3: #                                                                   #
  4: #       TopicTree - strom rubrik - obsluzne funkcie                 #
  5: #       (c) 2006 Patrik JAN (pa3k) www.kvalitne.sk                  #
  6: #       slobodny software - vydane pod GNU/GPL licenciou            #
  7: #                                                                   #
  8: #####################################################################
  9: 
 10: 
 11: // nastavenie zobrazenia maximalnej urovne zanorenia rubrik
 12: define("MAX_LEVEL",9);
 13: 
 14: 
 15: function getTree($parent=0,$maxlevel=99,$tree="") {
 16:         $result = mysql_query(" SELECT  idt,
 17:                                         nazev,
 18:                                         popis,
 19:                                         level
 20:                                 FROM    ".$GLOBALS["rspredpona"]."topic
 21:                                 WHERE   id_predka= ".$parent." and
 22:                                         level<".$maxlevel."
 23:                                 ORDER BY nazev
 24:                                 ",$GLOBALS["dbspojeni"]);
 25: 
 26:         if (mysql_num_rows($result)>0) {
 27:                 if ($parent==0) {
 28:                         $tree.= "<ul class=\"topictree\">\n";
 29:                 } else {
 30:                         $tree.= "<ul>\n";
 31:                 }
 32:                 while ($row = mysql_fetch_assoc($result)) {
 33:                         $tree .= getTree(
 34:                                         $row['idt'],
 35:                                         $maxlevel,
 36:                                         "<li><a href=\"search.php?rsvelikost=sab&amp;rstext=all-phpRS-all&amp;rstema=".
 37:                                                 $row['idt']."\" title=\"".
 38:                                                 strip_tags($row['popis'])."\"><!-- SPAN".
 39:                                                 $row['idt']." --><span>".
 40:                                                 $row['nazev']."</span></a>\n"
 41:                                         );
 42:                 }
 43:         $tree.= "</ul>\n";
 44:         }
 45:         return $tree;
 46: }
 47: 
 48: function GenerateTree() {
 49:         $cache = mysql_query("  SELECT  `cache`
 50:                                 FROM    ".$GLOBALS['rspredpona']."cache
 51:                                 ",$GLOBALS["dbspojeni"]);
 52: 
 53:         if (false === $cache || mysql_num_rows($cache)!==1) {
 54:                 $newcache = getTree(0,MAX_LEVEL);
 55: 
 56:                 $create = mysql_query(" CREATE TABLE IF NOT EXISTS ".$GLOBALS['rspredpona']."cache(
 57:                                                 `cache` TEXT NOT NULL,) TYPE = MYISAM
 58:                                         ",$GLOBALS['dbspojeni']);
 59: 
 60:                 $erase = mysql_query("  TRUNCATE TABLE `".$GLOBALS['rspredpona']."cache`
 61:                                         ",$GLOBALS['dbspojeni']);
 62: 
 63:                 $write = mysql_query("  INSERT INTO `".$GLOBALS['rspredpona']."cache` ( `cache` )
 64:                                         VALUES ('".addslashes($newcache)."');
 65:                                         ",$GLOBALS['dbspojeni']);
 66: 
 67:                 return("<!-- NEW -->\n".$newcache);
 68:         } else {
 69:                 $row = mysql_fetch_assoc($cache);
 70:                 return("<!-- CACHED -->\n".$row['cache']);
 71:         }
 72: }
 73: 
 74: 
 75: $obsahbloku =   "\n\n<!-- TopicTree|START -->\n";
 76: $obsahbloku .=          GenerateTree();
 77: $obsahbloku .=          "<!-- TopicTree|END   -->\n\n";
 78: 
 79: if (isset($_GET['rstema'])) {
 80:         // oznacenie aktivnej vetvy stromu
 81:         $old = '<li><a href="search.php?rsvelikost=sab&amp;rstext=all-phpRS-all&amp;rstema='.$_GET['rstema'].'"';
 82:         $new = '<li class="activated"><a href="search.php?rsvelikost=sab&amp;rstext=all-phpRS-all&amp;rstema='.$_GET['rstema'].'"';
 83:         $obsahbloku = str_replace($old, $new, $obsahbloku);
 84:         // oznacenie aktivnej polozky
 85:         $old = '<!-- SPAN'.$_GET['rstema'].' --><span>';
 86:         $new = '<!-- ACTIVE SPAN --><span class="activetxt">';
 87:         $obsahbloku = str_replace($old, $new, $obsahbloku);
 88: }
 89: 
 90: switch ($GLOBALS["vzhledwebu"]->AktBlokTyp()):
 91:         case 1: Blok1($GLOBALS["vzhledwebu"]->AktBlokNazev(),$obsahbloku); break;
 92:         case 2: Blok2($GLOBALS["vzhledwebu"]->AktBlokNazev(),$obsahbloku); break;
 93:         case 3: Blok3($GLOBALS["vzhledwebu"]->AktBlokNazev(),$obsahbloku); break;
 94:         case 4: Blok4($GLOBALS["vzhledwebu"]->AktBlokNazev(),$obsahbloku); break;
 95:         case 5: Blok5($GLOBALS["vzhledwebu"]->AktBlokNazev(),$obsahbloku); break;
 96:         default: Blok1($GLOBALS["vzhledwebu"]->AktBlokNazev(),$obsahbloku); break;
 97: endswitch;
 98: 
 99: ?>