HTML.url() nimmt Perls interne Stringrepräsentation und ersetzt darin
die Umlaute. In UTF-8-Installationen muss das Ersetzen aber auf einer
UTF-8-Repräsentation erfolgen (so wie es Form::escape() auch macht).
Zweiter Teil des Fixes für Bug 1606.
use DBI;
use CGI;
+use Encode;
use English qw(-no_match_vars);
use Fcntl;
use File::Copy;
delete $members{"root login"};
- map { $_->{templates} =~ s|.*/||; } values %members;
+ for (values %members) {
+ $_->{templates} =~ s|.*/||;
+ $_->{login_url} = $::locale->is_utf8 ? Encode::encode('utf-8-strict', $_->{login}) : $_->{login_url};
+ }
$form->{title} = "Lx-Office ERP " . $locale->text('Administration');
$form->{LOCKED} = -e _nologin_file_name();
[% FOREACH row = MEMBERS %]
<tr class="listrow[% loop.count % 2 %]">
- <td> <a href="admin.pl?action=edit&login=[% HTML.url(row.login) %]">[% HTML.escape(row.login) %]</a></td>
+ <td> <a href="admin.pl?action=edit&login=[% HTML.url(row.login_url) %]">[% HTML.escape(row.login) %]</a></td>
<td> [% HTML.escape(row.name) %]</td>
<td> [% HTML.escape(row.company) %]</td>
<td> [% HTML.escape(row.templates) %]</td>