Witam!
Skrypt na drzewo kategori wyglada tak:
<?php
function sortuj($a,$b) {
$max = 1;
foreach ($a as $w) if (strlen($w) > $max) $max = strlen($w); foreach ($b as $w) if (strlen($w) > $max) $max = strlen($w);
for ($x=0
,$c=count($a);$x<$c;$x++) while (strlen($a[$x]) < $max) $a[$x] = '0'.$a[$x];
for ($x=0
,$c=count($b);$x<$c;$x++) while (strlen($b[$x]) < $max) $b[$x] = '0'.$b[$x];
}
$tree[] = $pos.'|'.$nazwa;
if ($c > 0) {
$kat = IsSet($_GET['kat']) ?
(int
)$_GET['kat'] : 1; if (($kat<1) || ($kat>$c)) $kat=1;
foreach ($tree as $wart) {
if ($w[$cnt] == $kat) {$linia = $wart; break;}
}
for ($x=0;$x<$c;$x++) {
if (($cd>2
) && (!in_array($dane[$cd - 3
],$linia))) continue
; if ($x < $c - 1) {
$next = explode("|",$tree[$x + 1
]); if ($next[count($next) - 3
] == $dane[$cd - 2
]) { { $linia_add = '<img src="images/kat_a.png" border="0" alt="menu" align="left" /> '.$dane[$cd - 1
]; }else {$linia_add = '<img src="images/kat_a.png" border="0" alt="menu" align="left" /> '.$dane[count($dane) - 1
];} } else {
$linia_add = '<img src="images/kat_b.png" border="0" alt="menu" align="left" /> '.$dane[$cd - 1];
}
} else $linia_add = '<img src="images/kat_b.png" border="0" alt="menu" align="left" /> '.$dane[$cd - 1];
if ($kat == $dane[$cd - 2]) $linia_add = '<font color="#000000">'.$linia_add.'</font></td></tr>'; else
{ $linia_add = '<a href="index.php?kat='.$dane[$cd - 2].'">'.$linia_add.'</a></td></tr>';}
$cd -= 2;
while ($cd > 0) { $linia_add = '<img src="images/0.gif" alt="menu" border="0" width="10" align="left" />'.$linia_add; $cd--;}
$linie[] = $linia_add;
}
foreach ($linie as $wart) echo"$wartn"; } else echo "<p>brak kategori</p>"; ?>
Przykład MySQL
INSERT INTO `menu` VALUES ('KAT 1', '1');
INSERT INTO `menu` VALUES ('PODKAT 1', '1|2');
INSERT INTO `menu` VALUES ('PODKAT 2', '1|3');
INSERT INTO `menu` VALUES ('KAT 2', '2');
INSERT INTO `menu` VALUES ('PODKAT 1', '2|4');
INSERT INTO `menu` VALUES ('PODKAT 2', '2|5');
W tej chwili tylko kategoria pierwsza jest rozwinieta na starcie, czy da sie przerobic ten skrypt zeby glowne kategorie byly zawsze rozwiniete?
Z góry dziękuje za pomoc