X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=SL%2FLayout%2FV3.pm;h=f37eea49c79e616700d8541fe645deb70d8af14e;hb=e8d91442a904758a2c15d5d22a05790fac120d23;hp=4769c4062a9cffcf2091038e709a2ef515f3c624;hpb=075bd42af8885aee3c18fe055a2c82b8b43f4cea;p=kivitendo-erp.git
diff --git a/SL/Layout/V3.pm b/SL/Layout/V3.pm
index 4769c4062..f37eea49c 100644
--- a/SL/Layout/V3.pm
+++ b/SL/Layout/V3.pm
@@ -2,16 +2,151 @@ package SL::Layout::V3;
use strict;
use parent qw(SL::Layout::Base);
-use SL::Layout::Css;
use URI;
+sub clock_line {
+ my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
+ $Jahr, $Wochentag, $Jahrestag, $Sommerzeit)
+ = localtime(time);
+ $Monat += 1;
+ $Jahrestag += 1;
+ $Monat = $Monat < 10 ? $Monat = "0" . $Monat : $Monat;
+ $Monatstag = $Monatstag < 10 ? $Monatstag = "0" . $Monatstag : $Monatstag;
+ $Jahr += 1900;
+ my @Wochentage = ("Sonntag", "Montag", "Dienstag", "Mittwoch",
+ "Donnerstag", "Freitag", "Samstag");
+ my @Monatsnamen = ("", "Januar", "Februar", "März",
+ "April", "Mai", "Juni", "Juli",
+ "August", "September", "Oktober", "November",
+ "Dezember");
+ return
+ $Wochentage[$Wochentag] . ", der "
+ . $Monatstag . "."
+ . $Monat . "."
+ . $Jahr . " - ";
+}
+
+sub print_menu {
+ my ($self, $parent, $depth) = @_;
+
+ my $html;
+
+ die if ($depth * 1 > 5);
+
+ my @menuorder;
+ my $menu = $self->menu;
+
+ @menuorder = $menu->access_control(\%::myconfig, $parent);
+
+ $parent .= "--" if ($parent);
+
+ foreach my $item (@menuorder) {
+ substr($item, 0, length($parent)) = "";
+ next if (($item eq "") || ($item =~ /--/));
+
+ my $menu_item = $menu->{"${parent}${item}"};
+ my $menu_title = $::locale->text($item);
+ my $menu_text = $menu_title;
+
+ if ($menu_item->{"submenu"} || !defined($menu_item->{"module"}) && !defined($menu_item->{href})) {
+
+ my $h = $self->print_menu("${parent}${item}", $depth * 1 + 1)."\n";
+ if (!$parent) {
+ $html .= qq|
\n|;
+ } else {
+ $html .= qq|${menu_text}
\n|;
+ }
+ } else {
+ if ($self->{sub_class} && $depth > 1) {
+ $html .= qq||;
+ } else {
+ $html .= qq||;
+ }
+ $html .= $self->menuitem_v3("${parent}$item", { "title" => $menu_title });
+ $html .= qq|${menu_text}\n|;
+ }
+ }
+
+ return $html;
+}
+
+sub menuitem_v3 {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $item, $other) = @_;
+ my $menuitem = $self->menu->{$item};
+
+ my $action = "section_menu";
+ my $module;
+
+ if ($menuitem->{module}) {
+ $module = $menuitem->{module};
+ }
+ if ($menuitem->{action}) {
+ $action = $menuitem->{action};
+ }
+
+ my $level = $::form->escape($item);
+
+ my @vars;
+ my $target = $menuitem->{target} ? qq| target="| . $::form->escape($menuitem->{target}) . '"' : '';
+ my $str = qq|';
+ }
+
+ $str .= qq|$module?action=| . $::form->escape($action) . qq|&level=| . $::form->escape($level);
+
+ map { delete $menuitem->{$_} } qw(module action target href);
+
+ # add other params
+ foreach my $key (keys %{ $menuitem }) {
+ $str .= "&" . $::form->escape($key, 1) . "=";
+ my ($value, $conf) = split(/=/, $menuitem->{$key}, 2);
+ $value = $::myconfig{$value} . "/$conf" if ($conf);
+ $str .= $::form->escape($value, 1);
+ }
+
+ $str .= '"';
+
+ if ($other) {
+ foreach my $key (keys(%{$other})) {
+ $str .= qq| ${key}="| . $::form->quote($other->{$key}) . qq|"|;
+ }
+ }
+
+ $str .= ">";
+
+ $main::lxdebug->leave_sub();
+
+ return $str;
+}
+
sub init_sub_layouts {
[ SL::Layout::None->new ]
}
+sub use_stylesheet {
+ my $self = shift;
+ qw(
+ icons16.css frame_header/header.css
+ ),
+ $self->SUPER::use_stylesheet(@_);
+}
+
+sub use_javascript {
+ my $self = shift;
+ qw(
+ js/quicksearch_input.js
+ ),
+ $self->SUPER::use_javascript(@_);
+}
+
sub pre_content {
- &render;
+ $_[0]->render;
}
sub start_content {
@@ -29,7 +164,7 @@ sub render {
$callback = URI->new($callback)->rel($callback) if $callback;
$callback = "login.pl?action=company_logo" if $callback =~ /^(\.\/)?$/;
- $self->SUPER::render('menu/menuv3', { no_menu => 1, no_output => 1 },
+ $self->presenter->render('menu/menuv3',
force_ul_width => 1,
date => $self->clock_line,
menu => $self->print_menu,