Gossamer Forum
Quote Reply
help
HI, I am come from Japan !
Q1. How to use a table to split the category name up into four columns ?


=========================================================
sub site_html_print_cat {
# $url : The URL to go to that category
# $category_name : The category name with _ and / removed.
# $category_descriptions{$subcat}: The category description (if any).
# $numlinks : The number of links inside that category (and subcategories).
# $mod : The newest link inside of that category.
#

my (@subcat) = @_;
my ($url, $numlinks, $mod, $subcat, $category_name, $description, $output, $i);
my ($half) = int (($#subcat+2) / 2);

# Print Header.
$output = qq|<div class="margin"><table width="80%" border="0" cellspacing="0" cellpadding="0"><tr><td class="catlist" valign="top">\n|;

foreach $subcat (sort @subcat) {
($description) = @{$category{$subcat}}[2];

# First let's get the name, number of links, and last modified date...
$url = "$build_root_url/" . &urlencode($subcat) . "/";
if ($subcat =~ m,.*/([^/]+)$,) { $category_name = &build_clean($1); } else { $category_name = &build_clean($subcat); }
$numlinks = $stats{"$subcat"}[0];
$mod = $stats{"$subcat"}[1];

# We check to see if we are half way through, if so we stop this table cell
# and begin a new one (this lets us have category names in two columns).
if ($i == $half) {
$output .= qq|</td><td class="catlist" valign="top">\n|;
}
$i++;



# Then we print out the name linked, new if it's new, and popular if its popular.
$output .= qq|<dl><dt><small><a class="link" href="$url">$category_name</a></small><font face=verdana size=2> <small>($numlinks)</small></font> |;
$output .= qq|<img src=/links/pages/new.gif>| if (&days_old($mod) < $db_new_cutoff);
$output .= qq|</dt>|;
$output .= qq|<dd><span class="descript">$description </span></dd>| if (!($description =~ /^[\s\n]*$/));
$output .= qq|</dl>|;


}




# Don't forget to end the unordered list..
$output .= "</td></tr></table></div>\n";
return $output;
}

1;

Quote Reply
Re: help In reply to
Change the following two things:

Code:
my ($half) = int (($#subcat+2) / 2);
to
Code:
my ($half) = int (($#subcat+2) / 4);
Code:
$output .= qq|</td><td class="catlist" valign="top">\n|;
to
Code:
$output .= qq|</td><td class="catlist" valign="top">\n|;
$i = 0;
--Drew