menuitem nach menu.pl verlagert. links in template generiert
authorSven Schöling <s.schoeling@linet-services.de>
Wed, 29 Aug 2012 17:59:57 +0000 (19:59 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Wed, 17 Oct 2012 13:50:55 +0000 (15:50 +0200)
bin/mozilla/menu.pl
templates/webpages/menu/menu.html

index 1b818d1..1181cbd 100644 (file)
@@ -113,29 +113,29 @@ sub section_menu {
 
     $label         = $::locale->text($label);
 
-    $menuitem->{target} ||= "main_window";
+    menuitem($menuitem);
 
-    my $anchor     = $menu->menuitem(\%::myconfig, $::form, $item, $level);
+    my $anchor = $menuitem->{href};
 
     if (!$level) { # toplevel
       my $ml_    = $::form->escape($ml);
       my $image  = make_image(icon => $item . '.png', size => 24, label => $label);
-      my $anchor = "<a href='menu.pl?action=acc_menu&level=$ml_' class='nohover' title='$label'>";
+      my $anchor = "menu.pl?action=acc_menu&level=$ml_";
 
-      push @items, make_item(a => $anchor, img => $image, label => $label, height => 24, class => 'menu');
+      push @items, make_item(href => $anchor, img => $image, label => $label, height => 24, class => 'menu');
       push @items, section_menu($menu, $item);
 
     } elsif ($menuitem->{submenu}) {
       my $image = make_image(submenu => 1);
       if ($mainlevel && $item =~ /^\Q$mainlevel\E/) {
-        push @items, make_item(spacer => $spacer, bold => 1, img => $image, label => $label, class => 'submenu') if $show;
+        push @items, make_item(target => $menuitem->{target}, spacer => $spacer, bold => 1, img => $image, label => $label, class => 'submenu') if $show;
         push @items, section_menu($menu, $item);
       } else {
-        push @items, make_item(spacer => $spacer, a => $anchor, img => $image, label => $label . '&nbsp;...', class => 'submenu') if $show;
+        push @items, make_item(spacer => $spacer, href => $anchor, img => $image, label => $label . '&nbsp;...', class => 'submenu') if $show;
       }
     } elsif ($menuitem->{module}) {
       my $image = make_image(label => $label, icon => $label_icon);
-      push @items, make_item(img => $image, a => $anchor, spacer => $spacer, label => $label, class => 'item') if $show;
+      push @items, make_item(target => $menuitem->{target}, img => $image, href => $anchor, spacer => $spacer, label => $label, class => 'item') if $show;
       push @items, section_menu($menu, $item) if $show && $::form->{$item} && $::form->{level} eq $item;
     }
   }
@@ -143,6 +143,28 @@ sub section_menu {
   return @items;
 }
 
+sub menuitem {
+  my ($item, $name) = @_;
+
+  $item->{module} ||= $::form->{script};
+  $item->{action} ||= "section_menu";
+  $item->{target} ||= "main_window";
+  $item->{href}   ||= "$item->{module}?action=$item->{action}";
+
+  # add other params
+  foreach my $key (keys %$item) {
+    next if $key =~ /target|module|action|href/;
+    $item->{href} .= "&" . $::form->escape($key, 1) . "=";
+    my ($value, $conf) = split(/=/, $item->{$key}, 2);
+    $value = $::myconfig{$value} . "/$conf" if ($conf);
+    $item->{href} .= $::form->escape($value, 1);
+  }
+
+#  my $str = "<a href='$href' $target_token>";
+#
+#  return $str;
+}
+
 sub make_item {
   my %params = @_;
   $params{a}      ||= '';
index 29ba13e..5e1c1c7 100644 (file)
@@ -1,7 +1,6 @@
-
+[%- USE L %]
 <style type='text/css'>
-  .bold { font-weight: bold; }
-  #html-menu { float:left }
+  #html-menu { float:left; white-space: nowrap; }
   #html-menu tr { vertical-align: top; }
   #html-menu img { vertical-align: middle; }
   #html-menu div.menuitem { padding: 2px 4px 1px 4px; }
 [%- FOREACH item IN sections %]
    <div class='menu-multiline'>
  [%- FOREACH chunk IN item.chunks %]
-     <div class='menuitem [% item.class %] hover'>[% item.spacer %][% item.a %][% item.img %][% chunk %][% '</a>' IF item.a %]</div>
+     <div class='menuitem [% item.class %] hover'>[% item.spacer %]
+     [%- IF item.href %]
+       [% L.link(item.href, item.img _ chunk, target=item.target) %]
+     [%- ELSE %]
+       [% item.img _ chunk %]
+     [%- END %]
+     </div>
  [%- END %]
    </div>
 [%- END %]