. For more information, visit http://sourceforge.net/projects/ipreg, or contact me at wietsew@users.sourceforge.net *****************************************************************************/ // includes include("includes.php"); // check authorisation $auth = auth("location", $config_auth_locationview, 0); // start output include("header.php"); // set template $tp = new Template("tpl/location.tpl"); // set language variables $tp->setvars($lang); // create array with parent index and location names $parents = array(); $location_names = array(); // get location information and insert to the arrays $result = mysql_query("SELECT location_id, location_name, parent FROM location") or die(mysql_error()); while ($row = mysql_fetch_object($result)) { $location_names[$row->location_id] = $row->location_name; $parents[$row->parent][] = $row->location_id; } // look for parents and create a new array for every child function location($parents, $parent = 0) { $children = array(); foreach ($parents[$parent] as $child) { if (isset($parents[$child])) { // element has children $children[$child] = location($parents, $child); } else { // no children, set NULL $children[$child] = NULL; } } return $children; } // recursive children check to template function checkchildren ($array, $level) { global $tp; global $location_names; foreach ($array as $location_id=>$val) { if($val != "") { $tp->set("location_id", $location_id); $tp->set("location_name", $location_names[$location_id]); $tp->set("nbsp", str_repeat("-  ",$level)); $tp->parse("locationrow"); checkchildren($val, $level+1); } else { $tp->set("location_id", $location_id); $tp->set("location_name", $location_names[$location_id]); $tp->set("nbsp", str_repeat("-  ",$level)); $tp->parse("locationrow"); } } $tp->parse("location"); $tp->clear("location"); } // assemble the tree $tree = location($parents); // check for values and build template checkchildren($tree, 0); // output $tp->parse(); $tp->spit(); include("footer.php"); ?>