use Memoize;
use DateTime::Format::MySQL;
use autouse 'Data::Dumper' => qw(Dumper);
+use DBI qw(:sql_types);
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $DEBUG);
&subfield_is_koha_internal_p
&GetPrinters &GetPrinter
&GetItemTypes &getitemtypeinfo
- &GetCcodes
&GetSupportName &GetSupportList
&get_itemtypeinfos_of
&getframeworks &getframeworkinfo
return get_infos_of( $query, 'itemtype', undef, \@itemtypes );
}
-# this is temporary until we separate collection codes and item types
-sub GetCcodes {
- my $count = 0;
- my @results;
- my $dbh = C4::Context->dbh;
- my $sth =
- $dbh->prepare(
- "SELECT * FROM authorised_values ORDER BY authorised_value");
- $sth->execute;
- while ( my $data = $sth->fetchrow_hashref ) {
- if ( $data->{category} eq "CCODE" ) {
- $count++;
- $results[$count] = $data;
-
- #warn "data: $data";
- }
- }
- $sth->finish;
- return ( $count, @results );
-}
-
=head2 getauthtypes
$authtypes = &getauthtypes();
tags => [ qw/ 225a / ],
sep => ', ',
},
+ {
+ idx => 'location',
+ label => 'Location',
+ tags => [ qw/ 995c / ],
+ }
];
my $library_facet;
label => 'Libraries',
tags => [ qw/ 995b / ],
};
- } else {
- $library_facet = {
- idx => 'location',
- label => 'Location',
- tags => [ qw/ 995c / ],
- };
}
push( @$facets, $library_facet );
}
tags => [ qw/ 952y 942c / ],
sep => ', ',
},
+ {
+ idx => 'location',
+ label => 'Location',
+ tags => [ qw / 952c / ],
+ },
];
my $library_facet;
label => 'Libraries',
tags => [ qw / 952b / ],
};
- } else {
- $library_facet = {
- idx => 'location',
- label => 'Location',
- tags => [ qw / 952c / ],
- };
}
push( @$facets, $library_facet );
}
if(@where_strings > 0) {
$query .= " WHERE " . join(" AND ", @where_strings);
}
- $query .= " GROUP BY lib ORDER BY category, lib, lib_opac";
+ $query .= " GROUP BY lib";
+ $query .= ' ORDER BY category, ' . (
+ $opac ? 'COALESCE(lib_opac, lib)'
+ : 'lib, lib_opac'
+ );
my $sth = $dbh->prepare($query);
$sth = C4::Context->dbh->prepare('SELECT count(*) FROM quotes;');
$sth->execute;
my $range = ($sth->fetchrow_array)[0];
- if ($range > 1) {
- # chose a random id within that range if there is more than one quote
- my $id = int(rand($range));
- # grab it
- $query = 'SELECT * FROM quotes WHERE id = ?;';
- $sth = C4::Context->dbh->prepare($query);
- $sth->execute($id);
- }
- else {
- $query = 'SELECT * FROM quotes;';
- $sth = C4::Context->dbh->prepare($query);
- $sth->execute();
- }
+ # chose a random id within that range if there is more than one quote
+ my $offset = int(rand($range));
+ # grab it
+ $query = 'SELECT * FROM quotes ORDER BY id LIMIT 1 OFFSET ?';
+ $sth = C4::Context->dbh->prepare($query);
+ # see http://www.perlmonks.org/?node_id=837422 for why
+ # we're being verbose and using bind_param
+ $sth->bind_param(1, $offset, SQL_INTEGER);
+ $sth->execute();
$quote = $sth->fetchrow_hashref();
# update the timestamp for that quote
$query = 'UPDATE quotes SET timestamp = ? WHERE id = ?';