Gdzies na forum znalazlem skrypcik z taka bazka do drzewek --



  1. Struktura tabeli dla `tree_object`
  2. --
  3.  
  4. CREATE TABLE `tree_object` (
  5. `str` varchar(50) NOT NULL DEFAULT '',
  6. `pos` varchar(255) NOT NULL DEFAULT ''
  7. ) TYPE=MyISAM;
  8.  
  9. --
  10. -- Zrzut danych tabeli `tree_object`
  11. --
  12.  
  13. INSERT
  14. INTO `tree_object` VALUES ('katalog1', '1');
  15. INSERT
  16. INTO `tree_object` VALUES ('podkatalog1', '1|2');
  17. INSERT
  18. INTO `tree_object` VALUES ('22222222222222', '2');
  19. INSERT
  20. INTO `tree_object` VALUES ('333333333333333', '3');
  21. INSERT
  22. INTO `tree_object` VALUES ('44444444', '4');
  23. INSERT
  24. INTO `tree_object` VALUES ('555555555555', '4|5');
  25. INSERT
  26. INTO `tree_object` VALUES ('6666666666666', '6');
  27. INSERT
  28. INTO `tree_object` VALUES ('777777777777777777', '7');
  29. INSERT
  30. INTO `tree_object` VALUES ('88888888888888888', '8');
  31. INSERT
  32. INTO `tree_object` VALUES ('99999999999999999', '9');
  33. INSERT
  34. INTO `tree_object` VALUES ('10', '10');
  35. INSERT
  36. INTO `tree_object` VALUES ('11', '11');
  37. INSERT
  38. INTO `tree_object` VALUES ('sub 10', '10|12');
  39. INSERT
  40. INTO `tree_object` VALUES ('test 13 to 4', '4|13');
  41. INSERT
  42. INTO `tree_object` VALUES ('subtree_tree', '4|5|14');


a oto php

  1. <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
  2. <HTML>
  3. <HEAD>
  4. <META NAME=\"GENERATOR\" Content=\"Microsoft Visual Studio 6.0\">
  5. <META http-equiv=Content-Type content=\"text/html; charset=ISO-8859-2\">
  6. <TITLE></TITLE>
  7. <STYLE type=\"text/css\">
  8. body,td {
  9.  FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
  10.  FONT-SIZE: 11px;
  11.  COLOR: DimGray;
  12. }
  13. INPUT {
  14.  font-family: Verdana, Arial, Helvetica, sans-serif;
  15.  font-size: 10px;
  16.  border-style: solid; border-color: Gray; border-width: 1px;
  17.  height: 17px;
  18. }
  19. </STYLE>
  20. </HEAD>
  21. <BODY>
  22. <?
  23.  
  24.  function sortuj($a,$b) {
  25.  
  26. $a = preg_replace(&#092;"/|[^|]*$/\",\"\",$a); $a = explode(\"|\",$a);
  27. $b = preg_replace(&#092;"/|[^|]*$/\",\"\",$b); $b = explode(\"|\",$b);
  28.  
  29. $max = 1;
  30.  
  31. foreach ($a as $w) if (strlen($w) > $max) $max = strlen($w);
  32. foreach ($b as $w) if (strlen($w) > $max) $max = strlen($w);
  33.  
  34. for ($x=0,$c=count($a);$x<$c;$x++) while (strlen($a[$x]) < $max) $a[$x] = '0'.$a[$x];
  35.  
  36. for ($x=0,$c=count($b);$x<$c;$x++) while (strlen($b[$x]) < $max) $b[$x] = '0'.$b[$x];
  37.  
  38. $a = implode(&#092;"|\",$a);
  39. $b = implode(&#092;"|\",$b);
  40.  
  41. return strcmp($a,$b);
  42.  
  43.  }
  44.  
  45.  $con = mysql_connect(HOST,ROOT,PASSWORD);
  46.  
  47.  mysql_select_db(NAZWA_BAZY,$con);
  48.  
  49.  $zap = mysql_query(&#092;"SELECT * FROM tree_object\");
  50.  $c = mysql_num_rows($zap);
  51.  
  52.  while (list($str,$pos) = mysql_fetch_array($zap)) {
  53.  $tree[] = $pos.'|'.$str;
  54.  } unset($zap);
  55.  
  56.  if ($c > 0) {
  57.  
  58. $kat = IsSet($_GET['kat']) ? (int)$_GET['kat'] : 1; //zmienna kat musi byc liczba calkowita
  59. if (($kat<1) || ($kat>$c)) $kat=1;
  60.  
  61. usort($tree,&#092;"sortuj\");
  62.  
  63. foreach ($tree as $wart) {
  64. $w = explode(&#092;"|\",$wart);
  65. $cnt = count($w) - 2;
  66. if ($w[$cnt] == $kat) {$linia = $wart; break;}
  67. }
  68. if (empty($linia)) { $linia = $tree[0]; $kat = 1;}
  69.  
  70. $linia = explode(&#092;"|\",$linia); //linia zaznaczona
  71. array_pop($linia);
  72.  
  73. $linie = array();
  74.  
  75. for ($x=0;$x<$c;$x++) {
  76.  $dane = explode(&#092;"|\",$tree[$x]);
  77.  $cd = count($dane);
  78.  if (($cd>2) && (!in_array($dane[$cd - 3],$linia))) continue;
  79.  if ($x < $c - 1) { //sa nastepne elementy tablicy tree
  80. $next = explode(&#092;"|\",$tree[$x + 1]);
  81. if ($next[count($next) - 3] == $dane[$cd - 2]) { //+ lub -
  82.  if (in_array($dane[$cd - 2],$linia))
  83. $linia_add = '<img src=\"menu/subdirsopened.gif\" border=0> '.$dane[$cd - 1]; else $linia_add = '<img src=\"menu/subdirs.gif\" border=0> '.$dane[count($dane) - 1];
  84. } else {
  85.  $linia_add = '<img src=\"menu/subdirsnone.gif\" border=0> '.$dane[$cd - 1];
  86. }
  87.  } else $linia_add = '<img src=\"menu/subdirsnone.gif\" border=0> '.$dane[$cd - 1];
  88.  if ($kat == $dane[$cd - 2]) $linia_add = '<b>'.$linia_add.'</b>'; else
  89. $linia_add = '<a href=\"'.$_SERVER['PHP_SELF'].'?kat='.$dane[$cd - 2].'\">'.$linia_add.'</a>';
  90.  $cd -= 2;
  91.  while ($cd > 0) {$linia_add = '<img src=\"menu/subdirsline.gif\" border=0>&nbsp;&nbsp;'.$linia_add; $cd--;}
  92.  $linie[] = $linia_add;
  93. }
  94.  
  95. ?>
  96. <table border=1 cellpadding=5 cellspacing=0 width=\"100%\">
  97. <tr>
  98. <td style=\"width:300px\" vAlign=top><? foreach ($linie as $wart) echo&#092;"$wart<br>rn\"; ?></td> <!--tutaj czesc dla drzewka-->
  99. <td vAlign=top><?
  100.  
  101.  $sql = &#092;"SELECT tresc FROM tree_object WHERE SUBSTRING_INDEX(pos,'|',-1)='$kat'\";
  102.  $zap = mysql_query($sql);
  103.  list($tresc) = mysql_fetch_array($zap);
  104.  if (empty($tresc)) $tresc = '&nbsp;';
  105.  echo $tresc;
  106.  
  107. ?></td> <!--tutaj tekst po prawej stronie, np zalezny od galezi-->
  108. </tr>
  109. </table>
  110. <?
  111. } else echo &#092;"<p>brak zdefiniowanych gałęzi dla drzewka</p>\";
  112.  
  113.  mysql_close($con);
  114. ?>
  115. </BODY>
  116. </HTML>



Skrypcik dziala wiec niema problemu ale chcial bym jakos administrowac tym menu a wiec z mojej strony wygladalo by tak ze w jakims panelu wyswietlane bylo by to cale menu a obok nazw bylo by np w kat. glownej dodaj pod kategorie albo usun i by sie wybei ralo ktora ma usunac albo edytuj czyli poprostu nazwe by sie edytowalo. Jestem kiepski jezeli chodzi o tak zaawansowane zeczy ale byl bym wdzieczny jak ktos pomoze!!!!