Revision 83381f25
Von Moritz Bunkus vor fast 11 Jahren hinzugefügt
SL/IC.pm | ||
---|---|---|
146 | 146 |
} |
147 | 147 |
|
148 | 148 |
# get translations |
149 |
$form->{language_values} = ""; |
|
150 | 149 |
$query = qq|SELECT language_id, translation, longdescription |
151 | 150 |
FROM translation |
152 | 151 |
WHERE parts_id = ?|; |
153 |
my $trq = prepare_execute_query($form, $dbh, $query, conv_i($form->{id})); |
|
154 |
while (my $tr = $trq->fetchrow_hashref("NAME_lc")) { |
|
155 |
$form->{language_values} .= "---+++---" . join('--++--', @{$tr}{qw(language_id translation longdescription)}); |
|
156 |
} |
|
157 |
$trq->finish; |
|
152 |
$form->{translations} = selectall_hashref_query($form, $dbh, $query, conv_i($form->{id})); |
|
158 | 153 |
|
159 | 154 |
# is it an orphan |
160 | 155 |
my @referencing_tables = qw(invoice orderitems inventory); |
... | ... | |
401 | 396 |
# delete translation records |
402 | 397 |
do_query($form, $dbh, qq|DELETE FROM translation WHERE parts_id = ?|, conv_i($form->{id})); |
403 | 398 |
|
404 |
if ($form->{language_values} ne "") { |
|
405 |
foreach my $item (split(/---\+\+\+---/, $form->{language_values})) { |
|
406 |
my ($language_id, $translation, $longdescription) = split(/--\+\+--/, $item); |
|
407 |
if ($translation ne "") { |
|
408 |
$query = qq|INSERT into translation (parts_id, language_id, translation, longdescription) |
|
409 |
VALUES ( ?, ?, ?, ? )|; |
|
410 |
@values = (conv_i($form->{id}), conv_i($language_id), $translation, $longdescription); |
|
411 |
do_query($form, $dbh, $query, @values); |
|
412 |
} |
|
399 |
my @translations = grep { $_->{language_id} && $_->{translation} } @{ $form->{translations} || [] }; |
|
400 |
if (@translations) { |
|
401 |
$query = qq|INSERT into translation (parts_id, language_id, translation, longdescription) |
|
402 |
VALUES ( ?, ?, ?, ? )|; |
|
403 |
$sth = $dbh->prepare($query); |
|
404 |
|
|
405 |
foreach my $translation (@translations) { |
|
406 |
do_statement($form, $sth, $query, conv_i($form->{id}), conv_i($translation->{language_id}), $translation->{translation}, $translation->{longdescription}); |
|
413 | 407 |
} |
408 |
|
|
409 |
$sth->finish(); |
|
414 | 410 |
} |
415 | 411 |
|
416 | 412 |
# delete price records |
Auch abrufbar als: Unified diff
Artikelstammdaten: Spracheinstellungen rein in eigenem Tab bearbeiten
Der alte Mechanismus öffnete ein normales Popup-Fenster, in dem eine
URL geladen wurde, die dann die Maske angezeigt hat. Das
Zurückschreiben geschah schon via JavaScript.
Mit der Methode gibt's zwei Probleme:
1. Es ist langsam, weil ein überflüssiger Roundtrip zum Server gemacht
wird. Die Informationen sind bereits alle beim initialen Anzeigen
der Maske vorhanden.
2. Es handelt sich um einen GET-Request, an den sämtliche
Übersetzungen als GET-Parameter angehängt werden. Damit kann man
problemlos in die Größenbeschränkung bei GET-Requests laufen.