my $standard_dbh;
END {
- if ($standard_dbh) {
- $standard_dbh->disconnect();
- undef $standard_dbh;
- }
+ disconnect_standard_dbh();
+}
+
+sub disconnect_standard_dbh {
+ return unless $standard_dbh;
+ $standard_dbh->disconnect();
+ undef $standard_dbh;
}
sub _store_value {
tie %{ $self }, 'SL::Watchdog';
}
- read(STDIN, $_, $ENV{CONTENT_LENGTH});
+ bless $self, $type;
- if ($ENV{QUERY_STRING}) {
- $_ = $ENV{QUERY_STRING};
- }
+ $self->_input_to_hash($ENV{QUERY_STRING}) if $ENV{QUERY_STRING};
+ $self->_input_to_hash($ARGV[0]) if @ARGV && $ARGV[0];
- if ($ARGV[0]) {
- $_ = $ARGV[0];
+ if ($ENV{CONTENT_LENGTH}) {
+ my $content;
+ read STDIN, $content, $ENV{CONTENT_LENGTH};
+ $self->_request_to_hash($content);
}
- bless $self, $type;
-
- $self->_request_to_hash($_);
-
my $db_charset = $main::dbcharset;
$db_charset ||= Common::DEFAULT_CHARSET;
$self->show_generic_error($msg);
} else {
-
- die "Error: $msg\n";
+ print STDERR "Error: $msg\n";
+ ::end_of_request();
}
$main::lxdebug->leave_sub();
my $session_cookie;
if (defined $main::auth) {
+ my $uri = $self->_get_request_uri;
+ my @segments = $uri->path_segments;
+ pop @segments;
+ $uri->path_segments(@segments);
+
my $session_cookie_value = $main::auth->get_session_id();
$session_cookie_value ||= 'NO_SESSION';
$session_cookie = $cgi->cookie('-name' => $main::auth->get_session_cookie_name(),
'-value' => $session_cookie_value,
- '-path' => $self->_get_request_uri->path,
+ '-path' => $uri->path,
'-secure' => $ENV{HTTPS});
}
return $cgi->redirect($new_uri);
}
+sub set_standard_title {
+ $::lxdebug->enter_sub;
+ my $self = shift;
+
+ $self->{titlebar} = "Lx-Office " . $::locale->text('Version') . " $self->{version}";
+ $self->{titlebar} .= "- $::myconfig{name}" if $::myconfig{name};
+ $self->{titlebar} .= "- $::myconfig{dbname}" if $::myconfig{name};
+
+ $::lxdebug->leave_sub;
+}
+
sub _prepare_html_template {
$main::lxdebug->enter_sub();
}
$language = "de" unless ($language);
- if (-f "templates/webpages/${file}_${language}.html") {
- if ((-f ".developer") &&
- (-f "templates/webpages/${file}_master.html") &&
- ((stat("templates/webpages/${file}_master.html"))[9] >
- (stat("templates/webpages/${file}_${language}.html"))[9])) {
- my $info = "Developer information: templates/webpages/${file}_master.html is newer than the localized version.\n" .
+ if (-f "templates/webpages/${file}.html") {
+ if ((-f ".developer") && ((stat("templates/webpages/${file}.html"))[9] > (stat("locale/${language}/all"))[9])) {
+ my $info = "Developer information: templates/webpages/${file}.html is newer than the translation file locale/${language}/all.\n" .
"Please re-run 'locales.pl' in 'locale/${language}'.";
print(qq|<pre>$info</pre>|);
- die($info);
+ ::end_of_request();
}
- $file = "templates/webpages/${file}_${language}.html";
- } elsif (-f "templates/webpages/${file}.html") {
$file = "templates/webpages/${file}.html";
+
} else {
my $info = "Web page template '${file}' not found.\n" .
"Please re-run 'locales.pl' in 'locale/${language}'.";
print(qq|<pre>$info</pre>|);
- die($info);
+ ::end_of_request();
}
if ($self->{"DEBUG"}) {
my $input = join('', <$in>);
$in->close();
- if ($main::locale) {
- $input = $main::locale->{iconv}->convert($input);
- }
-
my $output;
if (!$template->process(\$input, $additional_params, \$output)) {
print STDERR $template->error();
$self->header();
print $self->parse_html_template("generic/error", $add_params);
+ print STDERR "Error: $error\n";
+
$main::lxdebug->leave_sub();
- die("Error: $error\n");
+ ::end_of_request();
}
sub show_generic_information {
$main::lxdebug->leave_sub();
- die("Information: $text\n");
+ ::end_of_request();
}
# write Trigger JavaScript-Code ($qty = quantity of Triggers)
my ($self, $msg) = @_;
- if ($self->{callback}) {
-
- my ($script, $argv) = split(/\?/, $self->{callback}, 2);
- $script =~ s|.*/||;
- $script =~ s|[^a-zA-Z0-9_\.]||g;
- exec("perl", "$script", $argv);
-
- } else {
+ if (!$self->{callback}) {
$self->info($msg);
- exit;
+ ::end_of_request();
}
+# my ($script, $argv) = split(/\?/, $self->{callback}, 2);
+# $script =~ s|.*/||;
+# $script =~ s|[^a-zA-Z0-9_\.]||g;
+# exec("perl", "$script", $argv);
+
+ print $::form->redirect_header($self->{callback});
+
$main::lxdebug->leave_sub();
}
$self->{OUT} = ">$self->{tmpfile}";
}
+ my $result;
+
if ($self->{OUT}) {
- open(OUT, "$self->{OUT}") or $self->error("$self->{OUT} : $!");
+ open OUT, "$self->{OUT}" or $self->error("$self->{OUT} : $!");
+ $result = $template->parse(*OUT);
+ close OUT;
+
} else {
- open(OUT, ">-") or $self->error("STDOUT : $!");
$self->header;
+ $result = $template->parse(*STDOUT);
}
- if (!$template->parse(*OUT)) {
+ if (!$result) {
$self->cleanup();
$self->error("$self->{IN} : " . $template->get_error());
}
- close(OUT);
-
if ($template->uses_temp_file() || $self->{media} eq 'email') {
if ($self->{media} eq 'email') {
#print(STDERR "OUT $self->{OUT}\n");
for my $i (1 .. $self->{copies}) {
if ($self->{OUT}) {
- open(OUT, $self->{OUT})
- or $self->error($self->cleanup . "$self->{OUT} : $!");
+ open OUT, $self->{OUT} or $self->error($self->cleanup . "$self->{OUT} : $!");
+ print OUT while <IN>;
+ close OUT;
+ seek IN, 0, 0;
+
} else {
$self->{attachment_filename} = ($self->{attachment_filename})
? $self->{attachment_filename}
|;
- open(OUT, ">-") or $self->error($self->cleanup . "$!: STDOUT");
-
+ $::locale->with_raw_io(\*STDOUT, sub { print while <IN> });
}
-
- while (<IN>) {
- print OUT $_;
-
- }
-
- close(OUT);
-
- seek IN, 0, 0;
}
close(IN);