X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fmenunew.pl;h=777c38c8a83b5432efdc0170285ddbc47f88962d;hb=429203bfb57dd673aa807d749ab43c8e3332f8c8;hp=0ee610d112c506d25adb94874ef805aca877d78b;hpb=101a5e1f45b26386025a130be304a333ee8b64b7;p=kivitendo-erp.git diff --git a/bin/mozilla/menunew.pl b/bin/mozilla/menunew.pl index 0ee610d11..777c38c8a 100644 --- a/bin/mozilla/menunew.pl +++ b/bin/mozilla/menunew.pl @@ -30,54 +30,38 @@ # # thre frame layout with refractured menu # -# CHANGE LOG: -# DS. 2002-03-25 Created -# 2004-12-14 - New Optik - Marco Welter ####################################################################### -$menufile = "menu.ini"; +use English qw(-no_match_vars); +use List::Util qw(max); +use URI; + use SL::Menu; -use CGI::Carp qw(fatalsToBrowser); 1; # end of main sub display { + $form->header(); - $form->header; - - &clock_line; - - &acc_menu; - - print qq| - - - - -|; +# $form->{force_ul_width} = $ENV{HTTP_USER_AGENT} =~ m/MSIE\s+6\./; +# $form->{force_ul_width} = $ENV{HTTP_USER_AGENT} !~ m/Opera/; + $form->{force_ul_width} = 1; + $form->{date} = clock_line(); + $form->{menu_items} = acc_menu(); + my $callback = $form->unescape($form->{callback}); + $callback = URI->new($callback)->rel($callback) if $callback; + $callback = "login.pl?action=company_logo" if $callback =~ /^(\.\/)?$/; + $form->{callback} = $callback; + print $form->parse_html_template("menu/menunew"); } sub clock_line { - - $login = "[" - . $form->{login} - . " - {"path"} - . "&password=" - . $form->{"password"} - . "&action=logout\" target=\"_top\">" - . $locale->text('Logout') - . "] "; my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time); - my $CTIME_String = localtime(time); $Monat += 1; $Jahrestag += 1; $Monat = $Monat < 10 ? $Monat = "0" . $Monat : $Monat; @@ -89,368 +73,64 @@ sub clock_line { "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); - $datum = + return $Wochentage[$Wochentag] . ", der " . $Monatstag . "." . $Monat . "." . $Jahr . " - "; - - #$zeit="
".$Stunden.":".$Minuten.":".$Sekunden."
"; - $zeit = "
" . $Stunden . ":" . $Minuten . "
"; - print qq| - - - - - - -
  [drucken]| - . $login . $datum . qq|   -
-|; } sub acc_menu { - $mainlevel = $form->{level}; - $mainlevel =~ s/$mainlevel--//g; - my $menu = new Menu "$menufile"; - $menu = new Menu "custom_$menufile" if (-f "custom_$menufile"); - $menu = new Menu "$form->{login}_$menufile" - if (-f "$form->{login}_$menufile"); + $locale = Locale->new($myconfig{countrycode}, "menu"); - $| = 1; + my $mainlevel = $form->{level}; + $mainlevel =~ s/\Q$mainlevel\E--//g; + my $menu = Menu->new('menu.ini'); - print qq| - - - - - +sub calculate_width { + my $item = shift; + $item->{max_width} = max map { length $_->{title} } @{ $item->{subitems} }; - -
- -|; - - print qq| - -|; - + foreach my $subitem (@{ $item->{subitems} }) { + calculate_width($subitem) if ($subitem->{subitems}); + } } -sub section_menu { - my ($menu, $level) = @_; +sub create_menu { + my ($menu, $all_items, $parent, $depth) = @_; + my $html; - # build tiered menus - my @menuorder = $menu->access_control(\%myconfig, $level); - $main = 0; + die if ($depth * 1 > 5); - #$pm=0; - $shlp=0; - while (@menuorder) { - $item = shift @menuorder; - $label = $item; - $ml = $item; - $label =~ s/$level--//g; - $ml =~ s/--.*//; - $label = $locale->text($label); - $label =~ s/ / /g; - $menu->{$item}{target} = "main_window" unless $menu->{$item}{target}; + my @menuorder = $menu->access_control(\%myconfig, $parent); + $parent .= "--" if ($parent); - if ($menu->{$item}{submenu}) { - $menu->{$item}{$item} = !$form->{$item}; + foreach my $name (@menuorder) { + substr($name, 0, length($parent), ""); + next if (($name eq "") || ($name =~ /--/)); - # Untermen - if ($mlz{"s$ml"} > 1) { - $z++; - $sm = 1; - } else { - $z = $sm; - $mlz{"s$ml"}++; - } - print - qq|menu[$mlz{$ml}][$z] = new Item('$label', '#', '', defLength, 0, | - . ++$pm - . qq|);\n|; - $sm = 1; - print qq|menu[$pm] = new Array();\n|; - print - qq|menu[$pm][0] = new Menu(true, '', 85, 0, 180, defOver, defBack, 'itemBorder', 'itemText');\n|; - map { shift @menuorder } grep /^$item/, @menuorder; - §ion_menu($menu, $item); - map { shift @menuorder } grep /^$item/, @menuorder; - } else { - if ($menu->{$item}{module}) { - - #Untermenüpunkte - $target = $menu->{$item}{target}; - $uri = $menu->menuitemNew(\%myconfig, \%$form, $item, $level); + my $menu_item = $menu->{"${parent}${name}"}; + my $item = { 'title' => $locale->text($name) }; + push @{ $all_items }, $item; - #print qq|$spacer|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label\n|; - print - qq|menu[$pm][$sm] = new Item('$label', '$uri', '$target', defLength, 0, 0);\n|; - $sm++; - } else { # Hauptmenu - my $ml_ = $form->escape($ml); - $mm++; - $pm++; - %mlz = ($ml, $pm, "s$ml", 1); - $shlp = $sm; - $sm = 1; - $breit = 15 + length($label) * 6; - print - qq|menu[0][$mm] = new Item(' $label', '#', '', $breit, 10, $pm); \n|; - print qq|menu[$pm] = new Array();\n|; - print - qq|menu[$pm][0] = new Menu(true, '>', 0, 20, 180, defOver, defBack, 'itemBorder', 'itemText');\n|; + if ($menu_item->{submenu} || !defined($menu_item->{module}) || ($menu_item->{module} eq "menu.pl")) { + $item->{subitems} = []; + create_menu($menu, $item->{subitems}, "${parent}${name}", $depth * 1 + 1); - #print qq| $label    \n|; - §ion_menu($menu, $item); - - #print qq|
\n|; - } + } else { + $menu->menuitem_new("${parent}${name}", $item); } } }