View | Details | Raw Unified | Return to bug 20538
Collapse All | Expand All

(-)a/Koha/Template/Plugin/Asset.pm (-1 / +65 lines)
Lines 17-22 package Koha::Template::Plugin::Asset; Link Here
17
# You should have received a copy of the GNU General Public License
17
# You should have received a copy of the GNU General Public License
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
19
20
=head1 NAME
21
22
Koha::Template::Plugin::Asset
23
24
=head1 DESCRIPTION
25
26
The Asset plugin is a helper that generates HTML tags for JS and CSS files
27
28
=head1 SYNOPSYS
29
30
    [% USE Asset %]
31
32
    [% Asset.css("css/datatables.css") %]
33
    [% Asset.js("js/datatables.js") %]
34
35
    [%# With attributes %]
36
    [% Asset.css("css/print.css", { media = "print" }) %]
37
38
    [%# If you only want the url and not the HTML tag %]
39
    [% url = Asset.url("css/datatables.css") %]
40
41
=cut
42
20
use Modern::Perl;
43
use Modern::Perl;
21
44
22
use Template::Plugin;
45
use Template::Plugin;
Lines 26-31 use File::Basename; Link Here
26
use File::Spec;
49
use File::Spec;
27
use C4::Context;
50
use C4::Context;
28
51
52
=head1 FUNCTIONS
53
54
=head2 new
55
56
Constructor. Do not use this directly.
57
58
=cut
59
29
sub new {
60
sub new {
30
    my ($class, $context) = @_;
61
    my ($class, $context) = @_;
31
62
Lines 36-41 sub new { Link Here
36
    return bless $self, $class;
67
    return bless $self, $class;
37
}
68
}
38
69
70
=head2 js
71
72
Returns a <script> tag for the given JS file
73
74
    [% Asset.js('js/datatables.js') %]
75
76
=cut
77
39
sub js {
78
sub js {
40
    my ( $self, $filename, $attributes ) = @_;
79
    my ( $self, $filename, $attributes ) = @_;
41
80
Lines 50-55 sub js { Link Here
50
    return $self->tag('script', $attributes) . '</script>';
89
    return $self->tag('script', $attributes) . '</script>';
51
}
90
}
52
91
92
=head2 css
93
94
Returns a <link> tag for the given CSS file
95
96
    [% Asset.css('css/datatables.css') %]
97
    [% Asset.css('css/print.css', { media = "print" }) %]
98
99
=cut
100
53
sub css {
101
sub css {
54
    my ( $self, $filename, $attributes ) = @_;
102
    my ( $self, $filename, $attributes ) = @_;
55
103
Lines 66-71 sub css { Link Here
66
    return $self->tag('link', $attributes);
114
    return $self->tag('link', $attributes);
67
}
115
}
68
116
117
=head2 url
118
119
Returns the URL for the given file
120
121
    [% Asset.url('css/datatables.css') %]
122
123
=cut
124
69
sub url {
125
sub url {
70
    my ( $self, $filename ) = @_;
126
    my ( $self, $filename ) = @_;
71
127
Lines 93-98 sub url { Link Here
93
    }
149
    }
94
}
150
}
95
151
152
=head2 tag
153
154
Returns an HTML tag with given name and attributes.
155
This shouldn't be used directly.
156
157
    [% Asset.tag("script", { src = "/koha-tmpl/intranet-tmpl/prog/css/datatables.css" }) %]
158
159
=cut
160
96
sub tag {
161
sub tag {
97
    my ($self, $name, $attributes) = @_;
162
    my ($self, $name, $attributes) = @_;
98
163
99
- 

Return to bug 20538