Bug 14659: Allow patrons to enter card number and patron category on OPAC registratio...
[koha.git] / Koha / Template / Plugin / Categories.pm
1 package Koha::Template::Plugin::Categories;
2
3 # Copyright 2013-2014 BibLibre
4 #
5 # Koha is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # Koha is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with Koha; if not, see <http://www.gnu.org/licenses>.
17
18 use Modern::Perl;
19
20 use Template::Plugin;
21 use base qw( Template::Plugin );
22
23 use C4::Category;
24 use Koha::Database;
25
26 sub GetName {
27     my ( $self, $categorycode ) = @_;
28
29     my $schema = Koha::Database->new->schema;
30     return $schema->resultset( 'Category' )->search( {
31         categorycode => $categorycode,
32     } )->get_column( 'description' )->next // '';
33 }
34
35 sub all {
36     my ( $self, $params ) = @_;
37     my $selected = $params->{selected};
38
39     my @categories = C4::Category->all;
40     if ( $selected ) {
41         for my $category ( @categories ) {
42             if ( $category->{categorycode} eq $selected ) {
43                 $category->{selected} = 1;
44             }
45         }
46     }
47     return @categories;
48 }
49
50 1;
51
52 =head1 NAME
53
54 Koha::Template::Plugin::Categories - TT Plugin for categories
55
56 =head1 SYNOPSIS
57
58 [% USE Categories %]
59
60 [% Categories.all() %]
61
62 =head1 ROUTINES
63
64 =head2 all
65
66 In a template, you can get the all categories with
67 the following TT code: [% Categories.all() %]
68
69 =head2 GetName
70
71 In a template, you can get the name of a patron category using
72 [% Categories.GetName( categorycode ) %].
73
74 =head1 AUTHOR
75
76 Jonathan Druart <jonathan.druart@biblibre.com>
77
78 =cut