===== Baum mit Kategorien in WikkaWiki ===== == Funktionsweise und Skripte == Siehe ##libs/wikka.class.php## gegen Ende: %%(php;1) ------------------------- // tree from polskieustawy function getTree () { $imgpath = "images/"; $txt = ""; $txt .= ""; $txt .= ""; // call this recursive function for grab the tree $txt .= $this->getLevel("CategoryWiki"); $txt .= "
"; $txt .= ""; $txt .= " Proszę wybrać kategorię:
"; $txt .= "
"; return $txt; } function getLevel($catname = "CategoryCategory") { function isParent () { // check, if one is parent of other return true; } $imgpath = "images/"; //if ($cattag = $_GET['wakka']) {} $txt = ""; //$str =""; $page = $catname; //"CategoryWiki"; if ($page=="/") $page="CategoryCategory"; if ($this->CheckMySQLVersion(4,0,1)) $results = $this->FullCategoryTextSearch($page); else $results = $this->FullTextSearch($page); if ($results) { //$txt .= ""; $count = 0; $pagecount = 0; $list = array(); $active = array(); // lista elementów aktywnych na wszystkich poziomach $last = array(); // lista elementów ostatnich na poziomach = czujnik do wyglądu $level = 1; // dummy => później pobierać jako numer poszczególnych przerabianych poziomów $active[$level] = 3; // dummy => później pobierać jako numer otwartego na poziomie $level foreach ($results as $i => $cpage) { if($cpage['tag'] != $page) { array_push($list,$cpage['tag']); } } sort($list); while (list($key, $val) = each($list)) { $count++; // kontrola nad "addin", czyli obrazkiem przeznaczonym do wyświetlenia przed samym elementem // drzewka - związane z przesunięciem poziomów drzewka //if (!(isset($last[$x]))) { if ($count == count($list)) { $addin = ""; } else { $addin = ""; } $wybrany = 5; // aktywny element, ten który aktualnie wybrano; $cat = $wybrany; // w drzewie pu.com oparto o id elementu; -> wartość rezerwowa $myid = $key + 1; // element aktualnie opracowywany w pętli // w pu.com w oparciu o $rec["id"]; $title = $val; $nazwa = $val; $myhref = ""; //for ($y = 1; $y <= $level; $y = $y+1) { // if ($y == $level) { // $myhref .= "&a".$y."=".$rec["id"]; // } else { // $myhref .= "&a".$y."=".$active[$y]; // } //} $myhref .= "&cat=".$myid; if (isParent()) { // jeśli element ma dzieci if ($count == count($list)) { // jeśli jest to ostatni w liście na danym poziomie if ($active[$level] == $key+1) { $pic1 = "menu_corner_minus"; $pic2 = "ksiazka_otw"; } else { $pic1 = "menu_corner_plus"; $pic2 = "ksiazka_zamk"; } $last[$level] = 1; } else { if ($active[$level] == $key+1) { $pic1 = "menu_tee_minus"; $pic2 = "ksiazka_otw"; } else { $pic1 = "menu_tee_plus"; $pic2 = "ksiazka_zamk"; } $last[$level] = 0; } } else { // tutaj elementy nie posiadają już dzieci!!! if ($active[$level] == $key) { // ostatni pusty $pic1 = "menu_corner"; $pic2 = "stronica"; } else { // nieostatni pusty $pic1 = "menu_tee"; $pic2 = "stronica"; } } $myA = ""; $txt .= ""; // jesli konieczne, wlacz kolejny poziom //if ($active[$level] == $myid) getLevel($active[$level], $level+1, $conn, &$txt, $active, $cat, $last); //$rec = mysql_fetch_array($rs); $pagecount++; } //$txt .= '
".$addin; $txt .= $myA.""; $txt .= $myA." "; if ($myid == $cat) { $txt .= " ".$myA.$nazwa.""; } else { $txt .= " ".$myA.$nazwa.""; } $txt .= "
'; } else $txt .= 'Sorry, no items found for ' . $page .'.'; return $txt; } ------------------------ %%