//get the list of specimens according search pref. $num_result = count($coll_search_result); //show the results if something is found (list is not empty) if ($num_result > 0) { $end_data = construct_taxonomy($coll_search_result, $all_tax); $end_taxons = $end_data['taxons']; $end_ranks = $end_data['ranks']; $sel_taxons = $end_data['sel_taxons']; //!!!check this array!!! print '<p><b>Вот что мы нашли:</b><br>'; foreach ($end_ranks as $rank) { $r_n = $rank['taxon']; $r_ps = $rank['pseudonym']; $r_count = count($end_taxons["{$r_n}"]); print $r_ps . ': ' . $r_count . '<br>'; } print '</p>'; $rrank = $end_ranks[0]['taxon']; $rtaxon = reset($end_taxons["{$rrank}"]); print_taxon($rtaxon, $end_ranks[0]['taxon']); $rname = $rtaxon['name']; $locations = sort_locations($coll_result['locations'], $coll_search_result); show_sub_taxa_data($end_taxons, $end_ranks, $rname, 1, $sel_taxons, $site, $base, $locations, $coll_search_result); } else { print 'Извините, ничего не нашлось :( <a href="' . $site . '&base=' . $base . '&search=yes">Поискать что-нибудь другое</a><br>'; } } else { print 'Ой! Вы не сказали, что Вы ищете - все поля формы остались пустыми :( <a href="' . $site . '&base=' . $base . '&search=yes">Уточнить условия поиска (обратно)</a><br>'; } } else { }
function show_sub_taxa_data($taxons, $ranks, $name, $level, $spec, $site, $base, $locations, $specimens) { //this function in common as show_sub_taxa (u.s.), but prints also data of specimens from 2 last arguments (calls short_taxon_data function) $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>'; short_taxon_data($taxon_name, $locations, $padding, $site, $base); } else { } $ranks_count["{$rank_sub}"]++; print '</p>'; $sublevel = $level; $subname = $ssubcontent['name']; while (isset($ranks[$sublevel + 1])) { $sublevel++; show_sub_taxa_data($taxons, $ranks, $subname, $sublevel, $spec, $site, $base, $locations, $specimens); } } else { } } }