Revision ad2e3220
Von Sven Schöling vor mehr als 14 Jahren hinzugefügt
SL/CVar.pm | ||
---|---|---|
669 | 669 |
return !$invalid; |
670 | 670 |
} |
671 | 671 |
|
672 |
sub custom_variables_validity_by_trans_id { |
|
673 |
$main::lxdebug->enter_sub(2); |
|
674 |
|
|
675 |
my $self = shift; |
|
676 |
my %params = @_; |
|
677 |
|
|
678 |
return sub { 0 } unless $params{trans_id}; |
|
679 |
|
|
680 |
my $myconfig = \%main::myconfig; |
|
681 |
my $form = $main::form; |
|
682 |
|
|
683 |
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig); |
|
684 |
|
|
685 |
my $query = qq|SELECT config_id, COUNT(*) FROM custom_variables_validity WHERE trans_id = ? GROUP BY config_id|; |
|
686 |
|
|
687 |
my %invalids = selectall_as_map($form, $dbh, $query, 'config_id', 'count', $params{trans_id}); |
|
688 |
|
|
689 |
$main::lxdebug->leave_sub(2); |
|
690 |
|
|
691 |
return sub { !$invalids{+shift} }; |
|
692 |
} |
|
693 |
|
|
672 | 694 |
1; |
673 | 695 |
|
674 | 696 |
__END__ |
Auch abrufbar als: Unified diff
CVar validity ausgelagert in eine Massenfunktion.
Reduziert die Anzahl der Datenbankzugriffe bei großen Belegen massiv.