&buildQuery
&GetDistinctValues
&enabled_staff_search_views
- &PurgeSearchHistory
);
# make all your functions, whether exported or not;
* $query can be a simple keyword or a complete CCL query
* @servers is optional. Defaults to biblioserver as found in koha-conf.xml
- * $offset - If present, represents the number of records at the beggining to omit. Defaults to 0
+ * $offset - If present, represents the number of records at the beginning to omit. Defaults to 0
* $max_results - if present, determines the maximum number of records to fetch. undef is All. defaults to undef.
{
$facet_label_value =
$itemtypes->{$one_facet}
- ->{'description'};
+ ->{translated_description};
}
}
# remove stopwords from operand : parse all stopwords & remove them (case insensitive)
# we use IsAlpha unicode definition, to deal correctly with diacritics.
-# otherwise, a French word like "leçon" woudl be split into "le" "çon", "le"
+# otherwise, a French word like "leçon" would be split into "le" "çon", "le"
# is a stopword, we'd get "çon" and wouldn't find anything...
#
foreach ( keys %{ C4::Context->stopwords } ) {
'Date-of-publication',
'Dewey-classification',
'Dissertation-information',
+ 'diss',
'EAN',
'extent',
'fic',
'popularity',
'pubdate',
'Publisher',
+ 'Provider',
+ 'pv',
'Record-control-number',
'rcn',
'Record-type',
if ( $k !~ /mc-i(tem)?type/ ) {
# in case the mc-ccode value has complicating chars like ()'s inside it we wrap in quotes
$this_limit =~ tr/"//d;
- $this_limit = $k.":\"".$v."\"";
+ $this_limit = $k.":'".$v."'";
}
$group_OR_limits{$k} .= " or " if $group_OR_limits{$k};
# get notforloan authorised value list (see $shelflocations FIXME)
my $notforloan_authorised_value = GetAuthValCode('items.notforloan','');
- #Build itemtype hash
- #find itemtype & itemtype image
- my %itemtypes;
- $bsth =
- $dbh->prepare(
- "SELECT itemtype,description,imageurl,summary,notforloan FROM itemtypes"
- );
- $bsth->execute();
- while ( my $bdata = $bsth->fetchrow_hashref ) {
- foreach (qw(description imageurl summary notforloan)) {
- $itemtypes{ $bdata->{'itemtype'} }->{$_} = $bdata->{$_};
- }
- }
+ #Get itemtype hash
+ my %itemtypes = %{ GetItemTypes() };
#search item field code
my ($itemtag, undef) = &GetMarcFromKohaField( "items.itemnumber", "" );
## find column names of items related to MARC
- my $sth2 = $dbh->prepare("SHOW COLUMNS FROM items");
- $sth2->execute;
my %subfieldstosearch;
- while ( ( my $column ) = $sth2->fetchrow ) {
+ my @columns = Koha::Database->new()->schema()->resultset('Item')->result_source->columns;
+ for my $column ( @columns ) {
my ( $tagfield, $tagsubfield ) =
&GetMarcFromKohaField( "items." . $column, "" );
if ( defined $tagsubfield ) {
# edition information, if any
$oldbiblio->{edition} = $oldbiblio->{editionstatement};
- $oldbiblio->{description} = $itemtypes{ $oldbiblio->{itemtype} }->{description};
+ $oldbiblio->{description} = $itemtypes{ $oldbiblio->{itemtype} }->{translated_description};
# Build summary if there is one (the summary is defined in the itemtypes table)
# FIXME: is this used anywhere, I think it can be commented out? -- JF
if ( $itemtypes{ $oldbiblio->{itemtype} }->{summary} ) {
foreach my $code ( keys %subfieldstosearch ) {
$item->{$code} = $field->subfield( $subfieldstosearch{$code} );
}
- $item->{description} = $itemtypes{ $item->{itype} }{description};
+ $item->{description} = $itemtypes{ $item->{itype} }{translated_description};
# OPAC hidden items
if ($is_opac) {
my $prefix = $item->{$hbranch} . '--' . $item->{location} . $item->{itype} . $item->{itemcallnumber};
# For each grouping of items (onloan, available, unavailable), we build a key to store relevant info about that item
my $userenv = C4::Context->userenv;
- if ( $item->{onloan} && !(C4::Members::GetHideLostItemsPreference($userenv->{'number'}) && $item->{itemlost}) ) {
+ if ( $item->{onloan}
+ && !( C4::Members::GetHideLostItemsPreference( $userenv->{'number'} ) && $item->{itemlost} ) )
+ {
$onloan_count++;
- my $key = $prefix . $item->{onloan} . $item->{barcode};
- $onloan_items->{$key}->{due_date} = format_date($item->{onloan});
- $onloan_items->{$key}->{count}++ if $item->{$hbranch};
- $onloan_items->{$key}->{branchname} = $item->{branchname};
- $onloan_items->{$key}->{location} = $shelflocations->{ $item->{location} };
- $onloan_items->{$key}->{itemcallnumber} = $item->{itemcallnumber};
- $onloan_items->{$key}->{description} = $item->{description};
- $onloan_items->{$key}->{imageurl} = getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
+ my $key = $prefix . $item->{onloan} . $item->{barcode};
+ $onloan_items->{$key}->{due_date} = format_date( $item->{onloan} );
+ $onloan_items->{$key}->{count}++ if $item->{$hbranch};
+ $onloan_items->{$key}->{branchname} = $item->{branchname};
+ $onloan_items->{$key}->{location} = $shelflocations->{ $item->{location} };
+ $onloan_items->{$key}->{itemcallnumber} = $item->{itemcallnumber};
+ $onloan_items->{$key}->{description} = $item->{description};
+ $onloan_items->{$key}->{imageurl} =
+ getitemtypeimagelocation( $search_context, $itemtypes{ $item->{itype} }->{imageurl} );
+
# if something's checked out and lost, mark it as 'long overdue'
if ( $item->{itemlost} ) {
- $onloan_items->{$prefix}->{longoverdue}++;
+ $onloan_items->{$key}->{longoverdue}++;
$longoverdue_count++;
- } else { # can place holds as long as item isn't lost
+ }
+ else { # can place holds as long as item isn't lost
$can_place_holds = 1;
}
}
# items not on loan, but still unavailable ( lost, withdrawn, damaged )
else {
+ $item->{notforloan}=1 if !$item->{notforloan} && $itemtypes{ C4::Context->preference("item-level_itypes")? $item->{itype}: $oldbiblio->{itemtype} }->{notforloan};
+
# item is on order
if ( $item->{notforloan} < 0 ) {
$ordered_count++;
);
}
-sub PurgeSearchHistory{
- my ($pSearchhistory)=@_;
- my $dbh = C4::Context->dbh;
- my $sth = $dbh->prepare("DELETE FROM search_history WHERE time < DATE_SUB( NOW(), INTERVAL ? DAY )");
- $sth->execute($pSearchhistory) or die $dbh->errstr;
-}
-
=head2 z3950_search_args
$arrayref = z3950_search_args($matchpoints)