<?php
error_reporting
(E_ALL);
ini_set('display_errors'TRUE); // evtl. hilfreich

require_once "./conf.php";
require_once 
"./kategorie_recursiv.php";



$baum = & new kategorie_recursiv(MYSQL_TABLE_PREFIX.'kategoriebaum');
@
$baum->createtable(); // nur einmal

if(isset($_GET['action']) && 'clearall'===$_GET['action']) $baum->cleartable();



if(isset(
$_GET['neuerknoten']))
{
  
$parent ;
  
$name trim($_GET['neuerknoten']);
  if(!empty(
$name)) $baum->addNode($_GET['neuerknoten'],$_GET['katid']);
}

if(isset(
$_GET['action']) && 'del' === $_GET['action'])
{
  
$baum->delNode($_GET['katid']);
  unset(
$_GET['katid']);
}

if(isset(
$_GET['ziel']) && isset($_GET['katid']))
{
  
$baum->JumpToNode($_GET['katid'],$_GET['ziel']);
}
if(isset(
$_GET['action']) && 'hoch' === $_GET['action'])
{
  
$baum->moveUp($_GET['katid']);
}

if(isset(
$_GET['action']) && 'runter' === $_GET['action'])
{
  
$baum->moveDown($_GET['katid']);
}

function 
baum(&$baum,$id 0)
{
  
$result '';
  
$ast $baum->getChildNodesById($id);
  if(!empty(
$ast))
  {
    
$result .= '<ul>';
    foreach(
$ast as $node)
    {
      
$text htmlentities($node['name']);
      
$url $_SERVER['SCRIPT_NAME']."?katid=".$node['id'];
      
$link '<a href="'.$url.'">'.$text.'</a>';
      
$result .= '<li>';
      if(isset(
$_GET['katid']) && $_GET['katid'] == $node['id'])
      {
        
$result .= $node['name'].'<br>';
      }else
      {
        
$result .= $link.'<br>';
      }
      
$result .= baum($baum,$node['id']);
      
$result .='</li>';
    }
    
$result .= '</ul>';
  }
    return 
$result;


}

echo 
baum($baum);

echo 
'<br>';

$parent 0;

if(isset(
$_GET['katid']))
{
  
$parent $_GET['katid'];
}
  
?>

<table border="1">
<tr>
<td>
<h3>Teleportiern</h3>
Knoten verlegen<br>
<form action="<?echo $_SERVER['SCRIPT_NAME']?>" name="teleport" method="get">
<input type="hidden" name="katid" value="<?echo $parent?>">
<?php
  $ziele 
$baum->getZielNodes($parent);
  
$options='<option value="0" >*Zur Wurzel*</option>';
  foreach(
$ziele as $einer)
  {
    
$options.='<option value="'.$einer['id'].'" >'.$einer['name'].'</option>';
  }
  echo 
'Jump to: <select name="ziel" >'.$options.'</select>';
?>
<br>
<input type="submit" name="submit" value="Go">
</form>
</td>

<td>
<h3>Neue Kategoie anlegen</h3>
<form action="<?php echo $_SERVER['SCRIPT_NAME']?>" name="neuer_knoten" method="get">
Name: <input type="text" name="neuerknoten"><br>
Parent: <input type="text" name="katid" value="<?echo $parent?>"><br>
<input type="submit" name="submit" value="Neu anlegen">
</form>
</td>
<td>


<td>
<?php
if(isset($_GET['katid']))
{

  
$url $_SERVER['SCRIPT_NAME']."?action=hoch&katid=".$_GET['katid'];
  
$hochlink '<a href="'.$url.'">Hoch</a> <br> ';
  echo 
$hochlink;

  
$url $_SERVER['SCRIPT_NAME']."?action=runter&katid=".$_GET['katid'];
  
$hochlink '<a href="'.$url.'">Runter</a> <br> ';
  echo 
$hochlink;

  
$url $_SERVER['SCRIPT_NAME']."?action=del&katid=".$_GET['katid'];
  
$dellink '<a href="'.$url.'">Entfernen</a> <br> ';
  echo 
$dellink;
}
?>
<!--
   <a href="<?echo $_SERVER['SCRIPT_NAME']?>?action=clearall">Alle Einträge löschen</a>
-->
  <br>
</td>
</tr>
</table>
<pre>
 
<?php
var_export
($baum->getAllNodes());
?>
</pre>