===== 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 .= "";
$txt .= " Proszę wybrać kategorię: |
";
$txt .= "";
$txt .= " |
";
// call this recursive function for grab the tree
$txt .= $this->getLevel("CategoryWiki");
$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 .= "".$addin;
$txt .= $myA."";
$txt .= $myA." ";
if ($myid == $cat) {
$txt .= " ".$myA.$nazwa."";
} else {
$txt .= " ".$myA.$nazwa."";
}
$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 .= '
';
} else $txt .= 'Sorry, no items found for ' . $page .'.';
return $txt;
}
------------------------
%%