Verzeichnis für Druckvorlagensätze von mastertemplates in print umbenannt.
[kivitendo-erp.git] / bin / mozilla / menuXML.pl
index 84fabbb..1eed4ed 100644 (file)
 #  2007-10-14 - XMLified  - Holger Will  <holger@treebuilder.de>
 #######################################################################
 
-$menufile = "menu.ini";
+use utf8;
+
 use SL::Menu;
 
 use CGI::Carp qw(fatalsToBrowser);
 use Encode;
+use URI;
+
+use strict;
+
 1;
 
 # end of main
 
 sub display {
-  print "Content-type: text/xml; charset=iso-8859-1\n\n";
-  print qq|<?xml version="1.0" encoding="iso-8859-1"?>\n|;
-  print qq|<?xml-stylesheet href="xslt/xulmenu.xsl" type="text/xsl"?>\n|;
-  print qq|<!DOCTYPE doc [
-<!ENTITY szlig "ß">
-]>|;
-  print qq|<doc>|;
-  print qq|<login>|;
-  print $form->{login};
-  print qq|</login>|;
-  print qq|<password>|;
-  print $form->{password};
-  print qq|</password>|;
-  print qq|<name>|;
-  print %myconfig->{name};
-  print qq|</name>|;
-  print qq|<db>|;
-  print %myconfig->{dbname};
-  print qq|</db>|;
-  print qq|<favorites>|;
-  my $fav=%myconfig->{favorites};
-  my @favorites = split(/;/, $fav);
+  my $form     = $main::form;
+  my %myconfig = %main::myconfig;
+
+  my $charset = $::lx_office_conf{system}->{dbcharset} || 'ISO-8859-1';
+  my $callback            = $form->unescape($form->{callback});
+  $callback               = URI->new($callback)->rel($callback) if $callback;
+  $callback               = "login.pl?action=company_logo"      if $callback =~ /^(\.\/)?$/;
+
+  my $text    = $form->create_http_response('content_type' => 'text/xml',
+                                            'charset'      => $charset)
+    . qq|<?xml version="1.0" encoding="${charset}"?>
+<?xml-stylesheet href="xslt/xulmenu.xsl" type="text/xsl"?>
+<!DOCTYPE doc [
+<!ENTITY szlig "| . $::locale->{iconv_utf8}->convert('ß') . qq|">
+<!ENTITY auml "|  . $::locale->{iconv_utf8}->convert('ä') . qq|">
+<!ENTITY ouml "|  . $::locale->{iconv_utf8}->convert('ö') . qq|">
+<!ENTITY uuml "|  . $::locale->{iconv_utf8}->convert('ü') . qq|">
+]>
+
+<doc>
+<name>$myconfig{name}</name>
+<version>$form->{version}</version>
+<callback>$callback</callback>
+<db>$myconfig{dbname}</db>
+
+<favorites>|;
+
+  my $fav       = $myconfig{favorites};
+  my @favorites = split m/;/, $fav;
   foreach (@favorites) {
-    print qq|<link name="$_"/>|;
+    $text .= qq|<link name="$_"/>|;
   }
-  print qq|</favorites>|;
-  print qq|<menu>|;
-my $isoencodedmenu=&acc_menu($menu);
- print encode("iso-8859-1",$isoencodedmenu );
-
-  print qq|</menu>|;
-  print qq|</doc>|;
-  
+
+  $text .= qq|</favorites>\n|
+    . qq|<menu>\n|
+    . acc_menu()
+    . qq|</menu>\n|
+    . qq|</doc>\n|;
+
+  print $text;
 }
 
 
 sub acc_menu {
-  $locale = Locale->new($language, "menu");
+  my $form     = $main::form;
 
-  $mainlevel = $form->{level};
+  my $mainlevel = $form->{level};
   $mainlevel =~ s/$mainlevel--//g;
-  my $menu = new Menu "$menufile";
+  my $menu = Menu->new("menu.ini");
 
   $| = 1;
 
@@ -98,6 +110,9 @@ sub print_menu {
   my ($menu, $parent, $depth) = @_;
   my $html;
 
+  my $form     = $main::form;
+  my %myconfig = %main::myconfig;
+
   die if ($depth * 1 > 5);
 
   my @menuorder;
@@ -112,7 +127,7 @@ sub print_menu {
     next if (($item eq "") || ($item =~ /--/));
 
     my $menu_item = $menu->{"${parent}${item}"};
-    my $menu_title = $locale->text($item);
+    my $menu_title = $::locale->text($item);
     my $menu_text = $menu_title;
 
     my $target = "main_window";