function show_sub_taxa($taxons, $ranks, $name, $level, $spec, $site, $base) { //print tree of all taxons ($taxons) 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 ($taxons["{$rank_sub}"] as $ssubtax => $ssubcontent) { if ($ssubcontent['parent'] == $name) { //print taxon data $padding = 10 * ($level + 1); print '<p style="padding-left: ' . $padding . 'px; margin-top: -1px; margin-bottom: -1px;">'; print $ranks_count["{$rank_sub}"] . '. '; print_taxon($ssubcontent, $rank_sub); $taxon_name = $ssubcontent['name']; $taxon_name = trim($taxon_name); if (array_search($taxon_name, $spec) !== false) { print ' <a href="' . $site . '&base=' . $base . '&txn=' . $taxon_name . '" target="_blank">коллекция</a>'; } else { } $ranks_count["{$rank_sub}"]++; print '</p>'; $sublevel = $level; $subname = $ssubcontent['name']; while (isset($ranks[$sublevel + 1])) { $sublevel++; show_sub_taxa($taxons, $ranks, $subname, $sublevel, $spec, $site, $base); } } else { } } }
function show_sub_taxa($taxons, $ranks, $name, $level) { //print tree of all taxons ($taxons) 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 ($taxons["{$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']; $ranks_count["{$rank_sub}"]++; print '</p>'; $sublevel = $level; $subname = $ssubcontent['name']; while (isset($ranks[$sublevel + 1])) { $sublevel++; show_sub_taxa($taxons, $ranks, $subname, $sublevel); } } else { } } }
$taxons["{$t}"][$tax_name][$schname] = array(); foreach ($children->children() as $s_children) { $it_name = $s_children->getName(); $taxons["{$t}"][$tax_name][$schname][$it_name] = trim($s_children); } } } } } ksort($taxons["{$t}"]); } $root_rank = $ranks[0]['taxon']; $root_tax = array_shift($taxons["{$root_rank}"]); print '<p>'; print_taxon($root_tax, $root_rank); print '</p>'; $name = $root_tax['name']; show_sub_taxa($taxons, $ranks, $name, 1); } else { } include 'template/right'; } else { include 'template/top'; print 'К сожалению, <b>' . $c_user['name'] . '</b>, Вы - <b>' . $c_user['role_ps'] . '</b>, а не администратор системы. Попробуйте выйти и войти еще раз или свяжитесь с администратором системы для изменения Вашего статуса.'; include 'template/form_logoff'; } } else { include 'template/top'; print 'Здравствуйте! Мы Вас не знаем. Если Вы наш пользователь - представьтесь, пожалуйста'; include 'template/form_login'; }
foreach ($series->specimen as $specimen) { $taxon = $specimen->taxon; $taxon = trim($taxon); if (!isset($spec["{$taxon}"])) { $spec[] = $taxon; } else { } } } ksort($spec); //------------------------------------------------------- //------------------------------------------------------- $file = $xmldir . $tree . '.xml'; $xml = simplexml_load_file('kgbase/base/bases/' . $base . '/' . $index['taxonomy']); $all_taxonomy = convert_taxonomy($xml); $ranks = $all_taxonomy['ranks']; $taxons = $all_taxonomy['taxons']; //---print taxons //count taxons print 'Всего таксонов (по рангам):<br>'; foreach ($ranks as $lev => $rank) { $tax_count = count($taxons[$rank['taxon']]); $ranks[$lev]['count'] = 1; print '- ' . $rank['pseudonym'] . ': ' . $tax_count . '.<br>'; } //root $rtaxon = array_shift($taxons[$ranks[0]['taxon']]); print_taxon($rtaxon, $ranks[0]['taxon']); $rname = $rtaxon['name']; show_sub_taxa($taxons, $ranks, $rname, 1, $spec, $site, $base);