Not sure about this - I suppose the best way to do it would be to count all the subcats to begin with. You could try this but someone else may have a better suggestion. You will need to change the 30 in red to the number that you want in the first column.
sub {
my $tags = shift;
my $cat_db = $DB->table('Category');
$cat_db->select_options ('ORDER BY full_name');
my $sth = $cat_db->select ( { FatherID => 0}, ['Full_Name','ID'] );
my $output="<table><tr><td><table>";
my $i=0;
while (my ($root_cat,$ID) = $sth->fetchrow_array) {
$output.="<tr><td colspan=2>$root_cat</td></tr>";
my $sth2 = $cat_db->select ( { FatherID => $ID}, ['Full_Name','Name','ID'] );
while (my ($cat,$short,$id) = $sth2->fetchrow_array) {
$i++;
my $link_count = $DB->table('CatLinks')->count ( {CategoryID => $id});
my $url = $cat_db->as_url($cat);
$output .= qq~<tr><td>$link_count</td><td><a href="$CFG->{build_root_url}/$url" class="toc"><b>$short</b></a></td></tr>~;
if ($i eq '
30'){ $output.="</table></td><td><table>";}
}
}
$output.="</table></td></tr></table>";
return $output;
}
The UK High Street