X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FKoha.pm;h=42c8af1d281d39a03e330b862acc6bacaae024e4;hb=3f69f6e1c8738564c30d613d245ea8af5f6b91fd;hp=7f66c236018047953e3cd90201f4c4354774aad9;hpb=8f436a50759ae4ca64f85ac5035a933a6d094e3f;p=koha.git diff --git a/C4/Koha.pm b/C4/Koha.pm index 7f66c23601..42c8af1d28 100644 --- a/C4/Koha.pm +++ b/C4/Koha.pm @@ -40,20 +40,15 @@ BEGIN { require Exporter; @ISA = qw(Exporter); @EXPORT = qw( - &GetPrinters &GetPrinter - &GetItemTypes &getitemtypeinfo - &GetItemTypesCategorized &GetItemTypesByCategory - &getframeworkinfo - &getallthemes - &getFacets - &getnbpages - &get_infos_of - &get_notforloan_label_of + &GetPrinters &GetPrinter + &GetItemTypesCategorized + &getallthemes + &getFacets + &getnbpages &getitemtypeimagedir &getitemtypeimagesrc &getitemtypeimagelocation &GetAuthorisedValues - &GetAuthorisedValueCategories &GetNormalizedUPC &GetNormalizedISBN &GetNormalizedEAN @@ -89,90 +84,6 @@ Koha.pm provides many functions for Koha scripts. =cut -=head2 GetItemTypes - - $itemtypes = &GetItemTypes( style => $style ); - -Returns information about existing itemtypes. - -Params: - style: either 'array' or 'hash', defaults to 'hash'. - 'array' returns an arrayref, - 'hash' return a hashref with the itemtype value as the key - -build a HTML select with the following code : - -=head3 in PERL SCRIPT - - my $itemtypes = GetItemTypes; - my @itemtypesloop; - foreach my $thisitemtype (sort keys %$itemtypes) { - my $selected = 1 if $thisitemtype eq $itemtype; - my %row =(value => $thisitemtype, - selected => $selected, - description => $itemtypes->{$thisitemtype}->{'description'}, - ); - push @itemtypesloop, \%row; - } - $template->param(itemtypeloop => \@itemtypesloop); - -=head3 in TEMPLATE - -
- - "> - -
- -=cut - -sub GetItemTypes { - my ( %params ) = @_; - my $style = defined( $params{'style'} ) ? $params{'style'} : 'hash'; - - require C4::Languages; - my $language = C4::Languages::getlanguage(); - # returns a reference to a hash of references to itemtypes... - my $dbh = C4::Context->dbh; - my $query = q| - SELECT - itemtypes.itemtype, - itemtypes.description, - itemtypes.rentalcharge, - itemtypes.notforloan, - itemtypes.imageurl, - itemtypes.summary, - itemtypes.checkinmsg, - itemtypes.checkinmsgtype, - itemtypes.sip_media_type, - itemtypes.hideinopac, - itemtypes.searchcategory, - COALESCE( localization.translation, itemtypes.description ) AS translated_description - FROM itemtypes - LEFT JOIN localization ON itemtypes.itemtype = localization.code - AND localization.entity = 'itemtypes' - AND localization.lang = ? - ORDER BY itemtype - |; - my $sth = $dbh->prepare($query); - $sth->execute( $language ); - - if ( $style eq 'hash' ) { - my %itemtypes; - while ( my $IT = $sth->fetchrow_hashref ) { - $itemtypes{ $IT->{'itemtype'} } = $IT; - } - return ( \%itemtypes ); - } else { - return [ sort { lc $a->{translated_description} cmp lc $b->{translated_description} } @{ $sth->fetchall_arrayref( {} ) } ]; - } -} - =head2 GetItemTypesCategorized $categories = GetItemTypesCategorized(); @@ -209,81 +120,6 @@ sub GetItemTypesCategorized { return ($dbh->selectall_hashref($query,'itemtype')); } -=head2 GetItemTypesByCategory - - @results = GetItemTypesByCategory( $searchcategory ); - -Returns the itemtype code of all itemtypes included in a searchcategory. - -=cut - -sub GetItemTypesByCategory { - my ($category) = @_; - my $count = 0; - my @results; - my $dbh = C4::Context->dbh; - my $query = qq|SELECT itemtype FROM itemtypes WHERE searchcategory=?|; - my $tmp=$dbh->selectcol_arrayref($query,undef,$category); - return @$tmp; -} - -=head2 getframeworkinfo - - $frameworkinfo = &getframeworkinfo($frameworkcode); - -Returns information about an frameworkcode. - -=cut - -sub getframeworkinfo { - my ($frameworkcode) = @_; - my $dbh = C4::Context->dbh; - my $sth = - $dbh->prepare("select * from biblio_framework where frameworkcode=?"); - $sth->execute($frameworkcode); - my $res = $sth->fetchrow_hashref; - return $res; -} - -=head2 getitemtypeinfo - - $itemtype = &getitemtypeinfo($itemtype, [$interface]); - -Returns information about an itemtype. The optional $interface argument -sets which interface ('opac' or 'intranet') to return the imageurl for. -Defaults to intranet. - -=cut - -sub getitemtypeinfo { - my ($itemtype, $interface) = @_; - my $dbh = C4::Context->dbh; - require C4::Languages; - my $language = C4::Languages::getlanguage(); - my $it = $dbh->selectrow_hashref(q| - SELECT - itemtypes.itemtype, - itemtypes.description, - itemtypes.rentalcharge, - itemtypes.notforloan, - itemtypes.imageurl, - itemtypes.summary, - itemtypes.checkinmsg, - itemtypes.checkinmsgtype, - itemtypes.sip_media_type, - COALESCE( localization.translation, itemtypes.description ) AS translated_description - FROM itemtypes - LEFT JOIN localization ON itemtypes.itemtype = localization.code - AND localization.entity = 'itemtypes' - AND localization.lang = ? - WHERE itemtypes.itemtype = ? - |, undef, $language, $itemtype ); - - $it->{imageurl} = getitemtypeimagelocation( ( ( defined $interface && $interface eq 'opac' ) ? 'opac' : 'intranet' ), $it->{imageurl} ); - - return $it; -} - =head2 getitemtypeimagedir my $directory = getitemtypeimagedir( 'opac' ); @@ -676,106 +512,6 @@ sub getFacets { return $facets; } -=head2 get_infos_of - -Return a href where a key is associated to a href. You give a query, -the name of the key among the fields returned by the query. If you -also give as third argument the name of the value, the function -returns a href of scalar. The optional 4th argument is an arrayref of -items passed to the C call. It is designed to bind -parameters to any placeholders in your SQL. - - my $query = ' -SELECT itemnumber, - notforloan, - barcode - FROM items -'; - - # generic href of any information on the item, href of href. - my $iteminfos_of = get_infos_of($query, 'itemnumber'); - print $iteminfos_of->{$itemnumber}{barcode}; - - # specific information, href of scalar - my $barcode_of_item = get_infos_of($query, 'itemnumber', 'barcode'); - print $barcode_of_item->{$itemnumber}; - -=cut - -sub get_infos_of { - my ( $query, $key_name, $value_name, $bind_params ) = @_; - - my $dbh = C4::Context->dbh; - - my $sth = $dbh->prepare($query); - $sth->execute( @$bind_params ); - - my %infos_of; - while ( my $row = $sth->fetchrow_hashref ) { - if ( defined $value_name ) { - $infos_of{ $row->{$key_name} } = $row->{$value_name}; - } - else { - $infos_of{ $row->{$key_name} } = $row; - } - } - $sth->finish; - - return \%infos_of; -} - -=head2 get_notforloan_label_of - - my $notforloan_label_of = get_notforloan_label_of(); - -Each authorised value of notforloan (information available in items and -itemtypes) is link to a single label. - -Returns a href where keys are authorised values and values are corresponding -labels. - - foreach my $authorised_value (keys %{$notforloan_label_of}) { - printf( - "authorised_value: %s => %s\n", - $authorised_value, - $notforloan_label_of->{$authorised_value} - ); - } - -=cut - -# FIXME - why not use GetAuthorisedValues ?? -# -sub get_notforloan_label_of { - my $dbh = C4::Context->dbh; - - my $query = ' -SELECT authorised_value - FROM marc_subfield_structure - WHERE kohafield = \'items.notforloan\' - LIMIT 0, 1 -'; - my $sth = $dbh->prepare($query); - $sth->execute(); - my ($statuscode) = $sth->fetchrow_array(); - - $query = ' -SELECT lib, - authorised_value - FROM authorised_values - WHERE category = ? -'; - $sth = $dbh->prepare($query); - $sth->execute($statuscode); - my %notforloan_label_of; - while ( my $row = $sth->fetchrow_hashref ) { - $notforloan_label_of{ $row->{authorised_value} } = $row->{lib}; - } - $sth->finish; - - return \%notforloan_label_of; -} - =head2 GetAuthorisedValues $authvalues = GetAuthorisedValues([$category]); @@ -843,26 +579,6 @@ sub GetAuthorisedValues { return \@results; } -=head2 GetAuthorisedValueCategories - - $auth_categories = GetAuthorisedValueCategories(); - -Return an arrayref of all of the available authorised -value categories. - -=cut - -sub GetAuthorisedValueCategories { - my $dbh = C4::Context->dbh; - my $sth = $dbh->prepare("SELECT DISTINCT category FROM authorised_values ORDER BY category"); - $sth->execute; - my @results; - while (defined (my $category = $sth->fetchrow_array) ) { - push @results, $category; - } - return \@results; -} - =head2 xml_escape my $escaped_string = C4::Koha::xml_escape($string); @@ -1007,44 +723,6 @@ sub GetNormalizedOCLCNumber { return } -sub GetAuthvalueDropbox { - my ( $authcat, $default ) = @_; - my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : ""; - my $dbh = C4::Context->dbh; - - my $query = qq{ - SELECT * - FROM authorised_values - }; - $query .= qq{ - LEFT JOIN authorised_values_branches ON ( id = av_id ) - } if $branch_limit; - $query .= qq{ - WHERE category = ? - }; - $query .= " AND ( branchcode = ? OR branchcode IS NULL )" if $branch_limit; - $query .= " GROUP BY lib ORDER BY category, lib, lib_opac"; - my $sth = $dbh->prepare($query); - $sth->execute( $authcat, $branch_limit ? $branch_limit : () ); - - - my $option_list = []; - my @authorised_values = ( q{} ); - while (my $av = $sth->fetchrow_hashref) { - push @{$option_list}, { - value => $av->{authorised_value}, - label => $av->{lib}, - default => ($default eq $av->{authorised_value}), - }; - } - - if ( @{$option_list} ) { - return $option_list; - } - return; -} - - =head2 GetDailyQuote($opts) Takes a hashref of options @@ -1324,32 +1002,6 @@ sub GetVariationsOfISSNs { return wantarray ? @issns : join( " | ", @issns ); } - -=head2 IsKohaFieldLinked - - my $is_linked = IsKohaFieldLinked({ - kohafield => $kohafield, - frameworkcode => $frameworkcode, - }); - - Return 1 if the field is linked - -=cut - -sub IsKohaFieldLinked { - my ( $params ) = @_; - my $kohafield = $params->{kohafield}; - my $frameworkcode = $params->{frameworkcode} || ''; - my $dbh = C4::Context->dbh; - my $is_linked = $dbh->selectcol_arrayref( q| - SELECT COUNT(*) - FROM marc_subfield_structure - WHERE frameworkcode = ? - AND kohafield = ? - |,{}, $frameworkcode, $kohafield ); - return $is_linked->[0]; -} - 1; __END__