Bug 7722 - Insidious problem with searching
I cannot find the root cause of this issue, but multiple libraries that I am aware of have problems searching on particular search terms ( and never the same terms at the same library ). The error they get when they trigger this problem is:
Tag "" is not a valid tag. at /home/koha/kohaclone/C4/Biblio.pm line 1849
Something somewhere is adding empty keys to C4::Context->marcfromkohafield, I think it may have something to do with the analytics feature that was added.
In the while loop for TransformKohaToMarc, there is a line
next unless my $dtm = $db_to_marc->{''}->{$name};
I don't think it's working.
If I dump $dtm, for each search, I see the dump twice.
It looks like this:
$VAR1 = [
'952',
'w'
];
$VAR1 = [];
I think the second time, when it is empty is what's breaking this.
The next never fails because even though it is empty, it is still a valid arrayref.
The solution I have some up with is to skip over the elements where the arrayref is empty.
Signed-off-by: Ian Walls <koha.sekjal@gmail.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
This commit is contained in:
parent
b04899bafd
commit
377b2fd673
|
|
@ -1996,6 +1996,7 @@ sub TransformKohaToMarc {
|
|||
my $db_to_marc = C4::Context->marcfromkohafield;
|
||||
while ( my ($name, $value) = each %$hash ) {
|
||||
next unless my $dtm = $db_to_marc->{''}->{$name};
|
||||
next unless ( scalar( @$dtm ) );
|
||||
my ($tag, $letter) = @$dtm;
|
||||
foreach my $value ( split(/\s?\|\s?/, $value, -1) ) {
|
||||
if ( my $field = $record->field($tag) ) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue