function show_sub_data($obj_data, $end_items, $ranks, $name, $level) { //print tree of all observed taxons ($end_items) in order of ranks according $ranks, beginning from taxon with name $name of level $level $ranks_count = array(); $rank_sub = $ranks[$level]['taxon']; if (!isset($ranks_count["{$rank_sub}"])) { $ranks_count["{$rank_sub}"] = 1; } else { } foreach ($end_items["{$rank_sub}"] as $ssubtax => $ssubcontent) { if ($ssubcontent['parent'] == $name) { //print taxon data $padding = 10 * ($level + 1); print '<p style="padding-left: ' . $padding . 'px">'; print $ranks_count["{$rank_sub}"] . '. '; print_taxon($ssubcontent, $rank_sub); $taxon_name = $ssubcontent['name']; if (isset($obj_data["{$taxon_name}"])) { data_print($obj_data["{$taxon_name}"], $padding); } else { } $ranks_count["{$rank_sub}"]++; print '</p>'; $sublevel = $level; $subname = $ssubcontent['name']; while (isset($ranks[$sublevel + 1])) { $sublevel++; show_sub_data($obj_data, $end_items, $ranks, $subname, $sublevel); } } else { } } }
$rank_lev--; } } else { } } foreach ($end_items as $end_item => $item_cont) { ksort($item_cont); $end_items["{$end_item}"] = $item_cont; } $root_rank = $ranks[0]['taxon']; $root_tax = array_shift($end_items["{$root_rank}"]); print '<p>'; print_taxon($root_tax, $root_rank); print '</p>'; $name = $root_tax['name']; show_sub_data($obj_data, $end_items, $ranks, $name, 1); } else { } // //full empty tree // if (isset($view) && isset($mode)) { //+++TAXONOMY+++ $alltaxnum = 0; $file = $xmldir . $view; $xml = simplexml_load_file($file); // $tree_desc = $xml->description; print '<p>Вы выбрали таксономическое дерево:<br>'; print $tree_desc . '</p>'; print '<p>Иерархический список таксонов дерева:</p>';