Revision 7d82f0e8
Von Moritz Bunkus vor fast 18 Jahren hinzugefügt
SL/Form.pm | ||
---|---|---|
490 | 490 |
$additional_params->{"conf_latex_templates"} = $main::latex; |
491 | 491 |
$additional_params->{"conf_opendocument_templates"} = $main::opendocument_templates; |
492 | 492 |
|
493 |
my $menu; |
|
494 |
if (-f $self->{"login"} . "_menu.ini") { |
|
495 |
$menu = Menu->new($self->{"login"} . "_menu.ini"); |
|
496 |
} else { |
|
497 |
$menu = Menu->new("menu.ini"); |
|
498 |
} |
|
499 |
$menu->generate_acl("", $additional_params); |
|
500 |
|
|
501 | 493 |
my @additional_param_names = keys(%{$additional_params}); |
502 | 494 |
foreach my $key ($template->param()) { |
503 |
if (grep(/^${key}$/, @additional_param_names)) { |
|
504 |
$template->param($key => $additional_params->{$key}); |
|
505 |
} else { |
|
506 |
$template->param($key => $self->{$key}); |
|
507 |
} |
|
495 |
my $param = $self->{$key}; |
|
496 |
$param = $additional_params->{$key} if (grep(/^${key}$/, @additional_param_names)); |
|
497 |
$param = [] if (($template->query("name" => $key) eq "LOOP") && (ref($param) ne "ARRAY")); |
|
498 |
$template->param($key => $param); |
|
508 | 499 |
} |
500 |
|
|
509 | 501 |
my $output = $template->output(); |
510 | 502 |
|
511 | 503 |
$main::lxdebug->leave_sub(); |
... | ... | |
514 | 506 |
} |
515 | 507 |
|
516 | 508 |
sub show_generic_error { |
517 |
my ($self, $error, $title) = @_; |
|
509 |
my ($self, $error, $title, $action) = @_;
|
|
518 | 510 |
|
519 | 511 |
my $add_params = {}; |
520 | 512 |
$add_params->{"title"} = $title if ($title); |
521 | 513 |
$self->{"label_error"} = $error; |
522 | 514 |
|
515 |
my @vars; |
|
516 |
if ($action) { |
|
517 |
map({ delete($self->{$_}); } qw(action)); |
|
518 |
map({ push(@vars, { "name" => $_, "value" => $self->{$_} }) |
|
519 |
if (!ref($self->{$_})); } |
|
520 |
keys(%{$self})); |
|
521 |
$add_params->{"SHOW_BUTTON"} = 1; |
|
522 |
$add_params->{"BUTTON_LABEL"} = $action; |
|
523 |
} |
|
524 |
$add_params->{"VARIABLES"} = \@vars; |
|
525 |
|
|
523 | 526 |
$self->header(); |
524 | 527 |
print($self->parse_html_template("generic/error", $add_params)); |
525 | 528 |
|
Auch abrufbar als: Unified diff
Form::parse_html_template: Wenn in der Vorlage Variablen benutzt werden, die es in $form nicht gibt, so werden leere Werte und vor allem leere Arrays fuer Schleifenvariablen erzeugt. Form::show_generic_error: Wenn ein weiterer Parameter "action" angegeben wird, so wird auf der Fehlerseite ein Button mit dieser beschriftung ausgegeben. Alle $form-Variablen werden ebenfalls ausgegeben (z.B. fuer eine "Zurueck"-Funktion).