#!/usr/local/bin/perl #theme_prebody - called just before the main body of every page, so it can print any HTML it likes. #theme_postbody - called just after the main body of every page. #theme_header - called instead of the normal header function, with the same parameters. You could use this to re-write the header function in your own style with help and index links wherever you want them. #theme_footer - called instead of the footer function with the same parameters. #theme_error - called instead of the error function, with the same parameters. %letter_sizes = ( '100.gif', [ 10, 16 ], '101.gif', [ 11, 16 ], '102.gif', [ 6, 16 ], '103.gif', [ 10, 16 ], '104.gif', [ 9, 16 ], '105.gif', [ 4, 16 ], '106.gif', [ 5, 16 ], '107.gif', [ 9, 16 ], '108.gif', [ 4, 16 ], '109.gif', [ 14, 16 ], '110.gif', [ 9, 16 ], '111.gif', [ 11, 16 ], '112.gif', [ 10, 16 ], '113.gif', [ 10, 16 ], '114.gif', [ 6, 16 ], '115.gif', [ 8, 16 ], '116.gif', [ 6, 16 ], '117.gif', [ 9, 16 ], '118.gif', [ 10, 16 ], '119.gif', [ 13, 16 ], '120.gif', [ 10, 16 ], '121.gif', [ 10, 16 ], '122.gif', [ 8, 16 ], '123.gif', [ 7, 16 ], '124.gif', [ 4, 16 ], '125.gif', [ 7, 16 ], '126.gif', [ 9, 16 ], '177.iso-8859-2.gif', [ 10, 16 ], '179.iso-8859-2.gif', [ 7, 16 ], '182.iso-8859-2.gif', [ 9, 16 ], '188.iso-8859-2.gif', [ 9, 16 ], '191.iso-8859-2.gif', [ 9, 16 ], '192.gif', [ 12, 16 ], '193.gif', [ 12, 16 ], '194.gif', [ 11, 16 ], '195.gif', [ 12, 16 ], '196.gif', [ 12, 16 ], '197.gif', [ 12, 16 ], '198.gif', [ 13, 16 ], '199.gif', [ 12, 16 ], '200.gif', [ 7, 16 ], '201.gif', [ 8, 16 ], '202.gif', [ 8, 16 ], '203.gif', [ 7, 16 ], '204.gif', [ 6, 16 ], '205.gif', [ 5, 16 ], '206.gif', [ 7, 16 ], '207.gif', [ 7, 16 ], '208.gif', [ 11, 16 ], '208.iso-8859-9.gif', [ 13, 16 ], '209.gif', [ 10, 16 ], '210.gif', [ 13, 16 ], '211.gif', [ 13, 16 ], '211.iso-8859-2.gif', [ 13, 16 ], '212.gif', [ 12, 16 ], '213.gif', [ 13, 16 ], '214.gif', [ 13, 16 ], '214.iso-8859-9.gif', [ 13, 16 ], '215.gif', [ 9, 16 ], '216.gif', [ 13, 16 ], '217.gif', [ 9, 16 ], '218.gif', [ 9, 16 ], '219.gif', [ 9, 16 ], '220.gif', [ 9, 16 ], '220.iso-8859-9.gif', [ 9, 16 ], '221.gif', [ 11, 16 ], '221.iso-8859-9.gif', [ 5, 16 ], '222.gif', [ 9, 16 ], '222.iso-8859-9.gif', [ 11, 16 ], '223.gif', [ 9, 16 ], '224.gif', [ 10, 16 ], '225.gif', [ 10, 16 ], '226.gif', [ 11, 16 ], '227.gif', [ 10, 16 ], '228.gif', [ 10, 16 ], '229.gif', [ 11, 16 ], '230.gif', [ 16, 16 ], '230.iso-8859-2.gif', [ 9, 16 ], '231.gif', [ 10, 16 ], '231.iso-8859-9.gif', [ 10, 16 ], '231.iso.8859-9.gif', [ 10, 16 ], '232.gif', [ 11, 16 ], '233.gif', [ 11, 16 ], '234.gif', [ 11, 16 ], '234.iso-8859-2.gif', [ 9, 16 ], '235.gif', [ 11, 16 ], '236.gif', [ 6, 16 ], '237.gif', [ 6, 16 ], '238.gif', [ 6, 16 ], '239.gif', [ 7, 16 ], '240.gif', [ 10, 16 ], '240.iso-8859-9.gif', [ 10, 16 ], '241.gif', [ 9, 16 ], '241.iso-8859-2.gif', [ 9, 16 ], '242.gif', [ 11, 16 ], '243.gif', [ 11, 16 ], '243.iso-8859-2.gif', [ 11, 16 ], '244.gif', [ 11, 16 ], '245.gif', [ 11, 16 ], '246.gif', [ 11, 16 ], '246.iso-8859-9.gif', [ 11, 16 ], '247.gif', [ 9, 16 ], '248.gif', [ 10, 16 ], '249.gif', [ 9, 16 ], '250.gif', [ 9, 16 ], '251.gif', [ 9, 16 ], '252.gif', [ 9, 16 ], '252.iso-8859-9.gif', [ 9, 16 ], '253.gif', [ 10, 16 ], '253.iso-8859-9.gif', [ 5, 16 ], '254.gif', [ 10, 16 ], '255.gif', [ 9, 16 ], '32.gif', [ 6, 16 ], '33.gif', [ 4, 16 ], '34.gif', [ 7, 16 ], '35.gif', [ 9, 16 ], '36.gif', [ 8, 16 ], '37.gif', [ 13, 16 ], '38.gif', [ 11, 16 ], '39.gif', [ 3, 16 ], '40.gif', [ 6, 16 ], '41.gif', [ 6, 16 ], '42.gif', [ 7, 16 ], '43.gif', [ 9, 16 ], '44.gif', [ 4, 16 ], '45.gif', [ 6, 16 ], '46.gif', [ 4, 16 ], '47.gif', [ 7, 16 ], '48.gif', [ 9, 16 ], '49.gif', [ 6, 16 ], '50.gif', [ 9, 16 ], '51.gif', [ 9, 16 ], '52.gif', [ 10, 16 ], '53.gif', [ 9, 16 ], '54.gif', [ 10, 16 ], '55.gif', [ 8, 16 ], '56.gif', [ 9, 16 ], '57.gif', [ 10, 16 ], '58.gif', [ 5, 16 ], '59.gif', [ 4, 16 ], '60.gif', [ 9, 16 ], '61.gif', [ 10, 16 ], '62.gif', [ 10, 16 ], '63.gif', [ 9, 16 ], '64.gif', [ 12, 16 ], '65.gif', [ 12, 16 ], '66.gif', [ 9, 16 ], '67.gif', [ 12, 16 ], '68.gif', [ 10, 16 ], '69.gif', [ 7, 16 ], '70.gif', [ 7, 16 ], '71.gif', [ 13, 16 ], '72.gif', [ 9, 16 ], '73.gif', [ 5, 16 ], '74.gif', [ 8, 16 ], '75.gif', [ 9, 16 ], '76.gif', [ 8, 16 ], '77.gif', [ 12, 16 ], '78.gif', [ 10, 16 ], '79.gif', [ 12, 16 ], '80.gif', [ 9, 16 ], '81.gif', [ 13, 16 ], '82.gif', [ 9, 16 ], '83.gif', [ 9, 16 ], '84.gif', [ 8, 16 ], '85.gif', [ 9, 16 ], '86.gif', [ 11, 16 ], '87.gif', [ 14, 16 ], '88.gif', [ 11, 16 ], '89.gif', [ 11, 16 ], '90.gif', [ 9, 16 ], '91.gif', [ 5, 16 ], '93.gif', [ 6, 16 ], '94.gif', [ 9, 16 ], '95.gif', [ 9, 16 ], '96.gif', [ 6, 16 ], '97.gif', [ 11, 16 ], '98.gif', [ 10, 16 ], '99.gif', [ 10, 16 ] ); sub theme_header { local @available = ("webmin", "system", "servers", "cluster", "hardware", "", "net", "kororaweb"); my $module_name = &get_module_name(); my %module_info = &get_module_info($module_name); local $ll; local %access = &get_module_acl(); local %gaccess = &get_module_acl(undef, ""); print "\n"; print "\n"; local $os_type = $gconfig{'real_os_type'} ? $gconfig{'real_os_type'} : $gconfig{'os_type'}; local $os_version = $gconfig{'real_os_version'} ? $gconfig{'real_os_version'} : $gconfig{'os_version'}; print "\n"; if ($charset) { print "\n"; } print "\n"; if (@_ > 0) { local $title = &get_html_title($_[0]); print "$title\n"; print $_[7] if ($_[7]); if ($gconfig{'sysinfo'} == 0 && $remote_user) { print &get_html_status_line(0); } } @msc_modules = &get_visible_module_infos() if (!scalar(@msc_modules)); print "\n"; local $dir = $current_lang_info->{'dir'} ? "dir=\"$current_lang_info->{'dir'}\"" : ""; if ($theme_no_table) { print ''; } else { print ''; } if ($remote_user && @_ > 1) { # Show basic header with webmin.com link and logout button local $logout = $main::session_id ? "/session_login.cgi?logout=1" : "/switch_user.cgi"; local $loicon = $main::session_id ? "logout.jpg" : "switch.jpg"; local $lowidth = $main::session_id ? 84 : 27; local $lotext = $main::session_id ? $text{'main_logout'} : $text{'main_switch'}; print qq~~; if (!$ENV{'ANONYMOUS_USER'}) { if ($gconfig{'nofeedbackcc'} != 2 && $gaccess{'feedback'} && (!$module_name || $module_info{'longdesc'} || $module_info{'feedback'})) { print qq~~; } if (!$ENV{'SSL_USER'} && !$ENV{'LOCAL_USER'} && !$ENV{'HTTP_WEBMIN_SERVERS'}) { if ($gconfig{'nofeedbackcc'} != 2 && $gaccess{'feedback'}) { print qq~~; } print qq~~; } } print qq~
Webmin home page$text{'main_feedback'}$lotext
~; } local $one = @msc_modules == 1 && $gconfig{'gotoone'}; local $notabs = $gconfig{"notabs_${base_remote_user}"} == 2 || $gconfig{"notabs_${base_remote_user}"} == 0 && $gconfig{'notabs'}; if (@_ > 1 && !$one && $remote_user && !$notabs) { # Display module categories print qq~
~; # Get categories %cats = &list_categories(\@msc_modules); @cats = sort { $b cmp $a } keys %cats; $cats = @cats; $per = $cats ? 100.0 / $cats : 100; if ($main::theme_index_page) { if (!defined($in{'cat'})) { # Use default category if (defined($gconfig{'deftab'}) && &indexof($gconfig{'deftab'}, @cats) >= 0) { $in{'cat'} = $gconfig{'deftab'}; } else { $in{'cat'} = $cats[0]; } } elsif (!$cats{$in{'cat'}}) { $in{'cat'} = ""; } } #####Navigation Bar START##### print qq~~; foreach $c (@cats) { local $t = $cats{$c}; $inlist = "false"; foreach $testet (@available) { if ($testet eq $c) { $inlist = "true"; } } local $catdesc = $text{'longcategory_'.$c}; if ($in{'cat'} eq $c && $theme_index_page) { if ($inlist eq "true") { if ($c eq "") { print qq~~; } elsif ($c eq "webmin") { if (@_ > 1) { print qq~~; } else { print qq~~; } } else { print qq~~; } } else { print qq~~; } } else { if ($inlist eq "true") { if ($c eq "") { print qq~~; } else { print qq~~; } } else { print qq~~; } } } print qq~

~; &chop_font; print qq~

~; &chop_font; print qq~

~; &chop_font; print qq~

~; &chop_font; print qq~

~; &chop_font; print qq~
$t
~; &chop_font; print qq~
$t
~; &chop_font; print qq~
$t
~; &chop_font; print qq~
   
~; print qq~
~; } if (@_ > 1 && (!$_[5] || $ENV{'HTTP_WEBMIN_SERVERS'})) { # Show tabs under module categories print qq~~; if ($gconfig{'sysinfo'} == 2 && $remote_user) { &tab_start(); print &get_html_status_line(1); &tab_end(); } if ($ENV{'HTTP_WEBMIN_SERVERS'}) { &tab_start(); print "", "$text{'header_servers'}
\n"; &tab_end(); } if ($notabs && !$_[5]) { &tab_start; print "$text{'header_webmin'}
\n"; &tab_end; } if (!$_[4]) { local $idx = $module_info{'index_link'}; local $mi = $module_index_link || $module_name ? "/$module_name/$idx" : "/"; local $mt = $module_index_name || $text{'header_module'}; &tab_start; print "", "$mt"; &tab_end; } if (ref($_[2]) eq "ARRAY" && !$ENV{'ANONYMOUS_USER'}) { &tab_start; print &hlink($text{'header_help'}, $_[2]->[0], $_[2]->[1]); &tab_end; } elsif (defined($_[2]) && !$ENV{'ANONYMOUS_USER'}) { &tab_start; print &hlink($text{'header_help'}, $_[2]); &tab_end; } if ($_[3]) { if (!$access{'noconfig'}) { &tab_start; print "", $text{'header_config'},""; &tab_end; } } local $t; foreach $t (split(/
/, $_[6])) { if ($t =~ /\S/) { &tab_start; print $t; &tab_end; } } print qq~
~; if (!$_[5]) { # Show page title in tab local $title = $_[0]; print "

\n"; print "\n"; print "\n"; print "\n"; if ($_[9]) { print "
", ""," $title ", "","
\n"; print "\n"; print "\n"; print "\n"; } print "
", ""," $_[9] ", "\"\"","
"; &theme_prebody; } } elsif (@_ > 1) { print qq~

~; } @header_arguments = @_; } sub theme_prebody { if ($theme_no_table) { print "