. HTML-Tabellen korrigieren (wml::std::box) mit fix-Target
[infodrom.org/www.infodrom.org] / src / index-tools.pl
1 <:
2
3 $fsize = " size=-1";
4
5 # Hauptmenü generieren
6
7 sub main_menu {
8     my @dirs = @_;
9     my $width = 100/($#dirs+1);
10
11     print "<center><table border=0 cellpadding=2 cellspacing=10 width=90%><tr>";
12     foreach $rubrik (@dirs) {
13         if ("<get-var WML_SRC_DIRNAME>" =~ /src\/$rubrik/) {
14             $color="<menu-bgcolorsel>";
15             if ("<get-var WML_SRC_BASENAME>" eq "index") {
16                 printf "<th align=center width=%d%% bgcolor=#%s>", $width, $color;
17                 print "<font size-=5 color=\"#<menu-bgcolor>\"> · </font>"
18                     if ($rubrik ne $dirs[0]);
19                 printf "<font$fsize face=\"Helvetica,Arial\" color=\"#<menu-fgcolor>\">%s</font></th>\n", $rubrik;
20             } else {
21                 printf "<th align=center width=%d%% bgcolor=#%s>", $width, $color;
22                 print "<font size-=5 color=\"#<menu-bgcolor>\"> · </font>"
23                     if ($rubrik ne $dirs[0]);
24                 printf "<font$fsize face=\"Helvetica,Arial\" color=\"#<menu-fgcolor>\"><a href=%s%s/>%s</a></font></th>\n",
25                         $root_prefix, $rubrik, $rubrik;
26             }
27         } else {
28             $color="<menu-bgcolor>";
29             printf "<th align=center width=%d%% bgcolor=#%s>", $width, $color;
30             print "<font size-=5 color=\"#<menu-bgcolor>\"> · </font>"
31                 if ($rubrik ne $dirs[0]);
32             printf "<font$fsize face=\"Helvetica,Arial\" color=\"#<menu-fgcolor>\"><a href=%s%s/>%s</a></font></th>\n",
33                 $root_prefix, $rubrik, $rubrik;
34         }
35     }
36     print "</tr></table></center>\n";
37 }
38
39 # @_ ist ein Array, dessen *letztes* Element die Anzahl
40 # der Elemente enthaelt
41 #
42 sub web_calc_table_width
43 {
44     my $count = pop(@_);
45     my @widths = @_;
46     my $i;
47     my $mod;
48     my $tabwidth = 0;
49
50     foreach $i (@widths) {
51         $tabwidth = $i if ((($count) % $i) == 0);
52     }
53     if (!$tabwidth) {
54         foreach $i (@widths) {
55             $tabwidth = $i if ((($count) % $i) > $mod);
56             $mod = ($count) % $i;
57         }
58     }
59     return $tabwidth;
60 }
61
62 sub specials_menu
63 {
64     my $tabwidth = 0;
65     my $i;
66     my $elems = shift;
67     my %elems = %$elems;
68     my @keys;
69     my $width;
70     my $foo;
71
72     if (%elems) {
73         @keys = keys %elems;
74         $tabwidth = &web_calc_table_width(6,5,4,3,$#keys+1);
75         $width = 100/$tabwidth;
76  
77         print "<center><table border=0 cellpadding=2 cellspacing=10 width=90%><tr>";
78         $i=0;
79         while ($i <= $#keys) {
80             print "<tr>" if (! ($i % $tabwidth));
81
82             $foo = sprintf ("<font$fsize face=\"Helvetica,Arial\" color=\"#<menu-fgcolor>\"><a href=\"%s\">%s</a></font>"
83                             , $keys[$i], $elems{$keys[$i]});
84             printf "<td align=center width=%d%% bgcolor=#<menu-bgcolor>>%s\n",
85                 $width, $foo;
86
87             $i++;
88             if (! ($i % $tabwidth)) {
89                 print "</td></tr><p>\n";
90             } else {
91                 print "<font size-=5 color=\"#<menu-bgcolor>\"> · </font></td>";
92             }
93         }
94         if ($i % $tabwidth) {
95             do {
96                 print "<td bgcolor=#<menu-bgcolor>>&nbsp;</td>";
97                 $i++;
98                 print "</tr><p>" if (! ($i % $tabwidth));
99             } until (!($i % $tabwidth));
100         }
101         print "</table></center>\n";
102     }
103 }
104
105 :>