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

(-)a/C4/Biblio.pm (-6 / +24 lines)
Lines 35-40 use C4::Dates qw/format_date/; Link Here
35
use C4::Log;    # logaction
35
use C4::Log;    # logaction
36
use C4::ClassSource;
36
use C4::ClassSource;
37
use C4::Charset;
37
use C4::Charset;
38
use C4::UploadedFiles;
38
require C4::Heading;
39
require C4::Heading;
39
require C4::Serials;
40
require C4::Serials;
40
require C4::Items;
41
require C4::Items;
Lines 1627-1633 sub GetMarcAuthors { Link Here
1627
1628
1628
=head2 GetMarcUrls
1629
=head2 GetMarcUrls
1629
1630
1630
  $marcurls = GetMarcUrls($record,$marcflavour);
1631
  $marcurls = GetMarcUrls($record,$marcflavour,$frameworkcode);
1631
1632
1632
Returns arrayref of URLs from MARC data, suitable to pass to tmpl loop.
1633
Returns arrayref of URLs from MARC data, suitable to pass to tmpl loop.
1633
Assumes web resources (not uncommon in MARC21 to omit resource type ind) 
1634
Assumes web resources (not uncommon in MARC21 to omit resource type ind) 
Lines 1635-1649 Assumes web resources (not uncommon in MARC21 to omit resource type ind) Link Here
1635
=cut
1636
=cut
1636
1637
1637
sub GetMarcUrls {
1638
sub GetMarcUrls {
1638
    my ( $record, $marcflavour ) = @_;
1639
    my ( $record, $marcflavour, $frameworkcode ) = @_;
1640
1641
    my $tagslib = &GetMarcStructure(1, $frameworkcode);
1642
    my $urltag = '856';
1643
    my $urlsubtag = 'u';
1639
1644
1640
    my @marcurls;
1645
    my @marcurls;
1641
    for my $field ( $record->field('856') ) {
1646
    for my $field ( $record->field($urltag) ) {
1642
        my @notes;
1647
        my @notes;
1643
        for my $note ( $field->subfield('z') ) {
1648
        for my $note ( $field->subfield('z') ) {
1644
            push @notes, { note => $note };
1649
            push @notes, { note => $note };
1645
        }
1650
        }
1646
        my @urls = $field->subfield('u');
1651
        my @urls = $field->subfield($urlsubtag);
1647
        foreach my $url (@urls) {
1652
        foreach my $url (@urls) {
1648
            my $marcurl;
1653
            my $marcurl;
1649
            if ( $marcflavour eq 'MARC21' ) {
1654
            if ( $marcflavour eq 'MARC21' ) {
Lines 1671-1678 sub GetMarcUrls { Link Here
1671
                $marcurl->{'part'} = $s3 if ($link);
1676
                $marcurl->{'part'} = $s3 if ($link);
1672
                $marcurl->{'toc'} = 1 if ( defined($s3) && $s3 =~ /^[Tt]able/ );
1677
                $marcurl->{'toc'} = 1 if ( defined($s3) && $s3 =~ /^[Tt]able/ );
1673
            } else {
1678
            } else {
1674
                $marcurl->{'linktext'} = $field->subfield('2') || C4::Context->preference('URLLinkText') || $url;
1679
                if ($tagslib->{ $urltag }->{ $urlsubtag }->{value_builder} eq "upload.pl"
1675
                $marcurl->{'MARCURL'} = $url;
1680
                and $url !~ /^https?:\/\//) {
1681
                    my $file = C4::UploadedFiles::GetUploadedFile($url);
1682
                    my $opacbaseurl = C4::Context->preference('OPACBaseURL');
1683
                    next unless ($file and $opacbaseurl);
1684
                    $marcurl->{'linktext'} = $field->subfield('2')
1685
                                          || C4::Context->preference('URLLinkText')
1686
                                          || $file->{filename};
1687
                    $marcurl->{'MARCURL'} = "$opacbaseurl/cgi-bin/koha/opac-retrieve-file.pl?id=" . $file->{id};
1688
                } else {
1689
                    $marcurl->{'linktext'} = $field->subfield('2')
1690
                                          || C4::Context->preference('URLLinkText')
1691
                                          || $url;
1692
                    $marcurl->{'MARCURL'} = $url;
1693
                }
1676
            }
1694
            }
1677
            push @marcurls, $marcurl;
1695
            push @marcurls, $marcurl;
1678
        }
1696
        }
(-)a/C4/UploadedFiles.pm (+106 lines)
Line 0 Link Here
1
package C4::UploadedFiles;
2
3
use C4::Context;
4
use Digest::MD5;
5
6
sub GetUploadedFile {
7
    my ($id) = @_;
8
9
    return unless $id;
10
11
    my $dbh = C4::Context->dbh;
12
    my $query = qq{
13
        SELECT id, filename
14
        FROM uploaded_files
15
        WHERE id = ?
16
    };
17
    my $sth = $dbh->prepare($query);
18
    $sth->execute($id);
19
    my $file = $sth->fetchrow_hashref;
20
21
    return $file;
22
}
23
24
sub UploadFile {
25
    my ($filename, $handle) = @_;
26
27
    my $buffer;
28
    my $data = '';
29
    while($handle->read($buffer, 1024)) {
30
        $data .= $buffer;
31
    }
32
33
    my $ctx = new Digest::MD5;
34
    $ctx->add($data);
35
    my $id = $ctx->hexdigest;
36
37
    # Test if this id already exist
38
    my $file = GetUploadedFile($id);
39
    if($file) {
40
        return $file->{id};
41
    }
42
43
    my $upload_path = C4::Context->preference("uploadPath");
44
    # remove trailing '/' if any
45
    $upload_path =~ s#/$##;
46
    my $file_path = "$upload_path/$id";
47
    if( -f $file_path ) {
48
        warn "Id $id not in database, but present in filesystem, do nothing";
49
        return;
50
    }
51
52
    my $out_fh;
53
    unless(open $out_fh, '>', $file_path) {
54
        warn "Failed to open file '$file_path': $!";
55
        return;
56
    }
57
58
    print $out_fh $data;
59
    close $out_fh;
60
61
    my $dbh = C4::Context->dbh;
62
    my $query = qq{
63
        INSERT INTO uploaded_files (id, filename)
64
        VALUES (?,?);
65
    };
66
    my $sth = $dbh->prepare($query);
67
    if($sth->execute($id, $filename)) {
68
        return $id;
69
    }
70
71
    return undef;
72
}
73
74
sub DelUploadedFile {
75
    my ($id) = @_;
76
77
    my $file = GetUploadedFile($id);
78
    if($file) {
79
        my $upload_path = C4::Context->preference("uploadPath");
80
        $upload_path =~ s#/$##;
81
        my $file_path = "$upload_path/$file->{id}";
82
        my $file_deleted = 0;
83
        unless( -f $file_path ) {
84
            warn "Id $file->{id} is in database but not in filesystem, removing id from database";
85
            $file_deleted = 1;
86
        } else {
87
            if(unlink $file_path) {
88
                $file_deleted = 1;
89
            }
90
        }
91
92
        unless($file_deleted) {
93
            warn "File $file_path cannot be deleted: $!";
94
        }
95
96
        my $dbh = C4::Context->dbh;
97
        my $query = qq{
98
            DELETE FROM uploaded_files
99
            WHERE id = ?
100
        };
101
        my $sth = $dbh->prepare($query);
102
        return $sth->execute($id);
103
    }
104
}
105
106
1;
(-)a/basket/basket.pl (-1 / +1 lines)
Lines 65-71 foreach my $biblionumber ( @bibs ) { Link Here
65
    my $marcauthorsarray = GetMarcAuthors( $record, $marcflavour );
65
    my $marcauthorsarray = GetMarcAuthors( $record, $marcflavour );
66
    my $marcsubjctsarray = GetMarcSubjects( $record, $marcflavour );
66
    my $marcsubjctsarray = GetMarcSubjects( $record, $marcflavour );
67
    my $marcseriesarray  = GetMarcSeries  ($record,$marcflavour);
67
    my $marcseriesarray  = GetMarcSeries  ($record,$marcflavour);
68
    my $marcurlsarray    = GetMarcUrls    ($record,$marcflavour);
68
    my $marcurlsarray    = GetMarcUrls    ($record,$marcflavour, GetFrameworkCode($biblionumber));
69
    my @items            = GetItemsInfo( $biblionumber );
69
    my @items            = GetItemsInfo( $biblionumber );
70
70
71
    my $hasauthors = 0;
71
    my $hasauthors = 0;
(-)a/catalogue/MARCdetail.pl (+11 lines)
Lines 82-87 my ( $template, $loggedinuser, $cookie ) = get_template_and_user( Link Here
82
    }
82
    }
83
);
83
);
84
84
85
my $uploadWebPath;
86
if (C4::Context->preference('uploadWebPath')) {
87
    $uploadWebPath = C4::Context->preference('uploadWebPath');
88
}
89
85
my $record = GetMarcBiblio($biblionumber);
90
my $record = GetMarcBiblio($biblionumber);
86
$template->param( ocoins => GetCOinSBiblio($record) );
91
$template->param( ocoins => GetCOinSBiblio($record) );
87
92
Lines 216-221 for ( my $tabloop = 0 ; $tabloop <= 10 ; $tabloop++ ) { Link Here
216
                      GetAuthorisedValueDesc( $fields[$x_i]->tag(),
221
                      GetAuthorisedValueDesc( $fields[$x_i]->tag(),
217
                        $subf[$i][0], $subf[$i][1], '', $tagslib) || $subf[$i][1];
222
                        $subf[$i][0], $subf[$i][1], '', $tagslib) || $subf[$i][1];
218
223
224
                    if ($tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] }->{value_builder} eq "upload.pl" and $uploadWebPath) {
225
                        my $file_uri = qq($uploadWebPath/$subf[$i][1]);
226
                        $subfield_data{marc_value} = qq/<a href="$file_uri">$subfield_data{marc_value}<\/a>/;
227
                        $subfield_data{is_file} = 1;
228
                    }
229
219
                }
230
                }
220
                $subfield_data{marc_subfield} = $subf[$i][0];
231
                $subfield_data{marc_subfield} = $subf[$i][0];
221
                $subfield_data{marc_tag}      = $fields[$x_i]->tag();
232
                $subfield_data{marc_tag}      = $fields[$x_i]->tag();
(-)a/catalogue/detail.pl (-1 / +1 lines)
Lines 108-114 my $marcisbnsarray = GetMarcISBN( $record, $marcflavour ); Link Here
108
my $marcauthorsarray = GetMarcAuthors( $record, $marcflavour );
108
my $marcauthorsarray = GetMarcAuthors( $record, $marcflavour );
109
my $marcsubjctsarray = GetMarcSubjects( $record, $marcflavour );
109
my $marcsubjctsarray = GetMarcSubjects( $record, $marcflavour );
110
my $marcseriesarray  = GetMarcSeries($record,$marcflavour);
110
my $marcseriesarray  = GetMarcSeries($record,$marcflavour);
111
my $marcurlsarray    = GetMarcUrls    ($record,$marcflavour);
111
my $marcurlsarray    = GetMarcUrls    ($record, $marcflavour, $fw);
112
my $marchostsarray  = GetMarcHosts($record,$marcflavour);
112
my $marchostsarray  = GetMarcHosts($record,$marcflavour);
113
my $subtitle         = GetRecordValue('subtitle', $record, $fw);
113
my $subtitle         = GetRecordValue('subtitle', $record, $fw);
114
114
(-)a/cataloguing/value_builder/upload.pl (+148 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# Copyright 2011 BibLibre
4
#
5
# This file is part of Koha.
6
#
7
# Koha is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU General Public License as published by the Free Software
9
# Foundation; either version 2 of the License, or (at your option) any later
10
# version.
11
#
12
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License along
17
# with Koha; if not, write to the Free Software Foundation, Inc.,
18
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20
use strict;
21
use warnings;
22
23
use CGI qw/-utf8/;
24
25
use C4::Auth;
26
use C4::Context;
27
use C4::Output;
28
use C4::UploadedFiles;
29
30
my $upload_path = C4::Context->preference('uploadPath');
31
32
sub plugin_parameters {
33
    my ( $dbh, $record, $tagslib, $i, $tabloop ) = @_;
34
    return "";
35
}
36
37
sub plugin_javascript {
38
    my ( $dbh, $record, $tagslib, $field_number, $tabloop ) = @_;
39
    my $function_name = $field_number;
40
    my $res           = "
41
    <script type=\"text/javascript\">
42
        function Focus$function_name(subfield_managed) {
43
            return 1;
44
        }
45
46
        function Blur$function_name(subfield_managed) {
47
            return 1;
48
        }
49
50
        function Clic$function_name(index) {
51
            id = document.getElementById(index).value;
52
            window.open(\"../cataloguing/plugin_launcher.pl?plugin_name=upload.pl&index=\"+index+\"&id=\"+id, 'upload', 'width=600,height=400,toolbar=false,scrollbars=no');
53
54
        }
55
    </script>
56
";
57
58
    return ( $function_name, $res );
59
}
60
61
sub plugin {
62
    my ($input) = @_;
63
    my $index = $input->param('index');
64
    my $id = $input->param('id');
65
    my $delete = $input->param('delete');
66
    my $uploaded_file = $input->param('uploaded_file');
67
68
    my $template_name = ($id || $delete)
69
                    ? "upload_delete_file.tt"
70
                    : "upload.tt";
71
72
    my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
73
        {   template_name   => "cataloguing/value_builder/$template_name",
74
            query           => $input,
75
            type            => "intranet",
76
            authnotrequired => 0,
77
            flagsrequired   => { editcatalogue => '*' },
78
            debug           => 1,
79
        }
80
    );
81
82
83
    my $filefield = CGI::filefield(
84
        -name => 'uploaded_file',
85
        -default => 'starting value',
86
        -size => 50,
87
        -maxlength => 80
88
    );
89
90
    $template->param(
91
        index => $index,
92
        id => $id,
93
        filefield => $filefield
94
    );
95
96
    # If there's already a file uploaded for this field,
97
    # We handle is deletion
98
    if ($delete) {
99
        if(C4::UploadedFiles::DelUploadedFile($id)) {;
100
            $template->param(success => 1);
101
        } else {
102
            $template->param(error => 1);
103
        }
104
    }
105
106
    # Dealing with the uploaded file
107
    if ($uploaded_file) {
108
        my $fh = $input->upload('uploaded_file');
109
        my $error;
110
        my $success;
111
112
        my $id = C4::UploadedFiles::UploadFile($uploaded_file, $fh->handle);
113
        if($id) {
114
            $template->param(
115
                success => 1,
116
                uploaded_file => $uploaded_file,
117
                id => $id
118
            );
119
        } else {
120
            $template->param(error => 1);
121
        }
122
    }
123
124
    output_html_with_http_headers $input, $cookie, $template->output;
125
}
126
127
128
1;
129
130
131
__END__
132
133
=head1 upload.pl
134
135
This plugin allow to upload files on the server and reference it in a marc
136
field.
137
138
Two system preferences are used:
139
140
=over 4
141
142
=item uploadPath: the real absolute path where files will be stored
143
144
=item uploadWebPath: the path from the server root directory. If you want to
145
access files through http://koha.tld/files, uploadWebPath must be "/files".
146
147
=back
148
(-)a/installer/data/mysql/kohastructure.sql (+10 lines)
Lines 2668-2673 CREATE TABLE `fieldmapping` ( -- koha to keyword mapping Link Here
2668
  PRIMARY KEY  (`id`)
2668
  PRIMARY KEY  (`id`)
2669
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2669
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2670
2670
2671
--
2672
-- Table structure for table `uploaded_files`
2673
--
2674
2675
DROP TABLE IF EXISTS `uploaded_files`
2676
CREATE TABLE `uploaded_files` (
2677
    `id` CHAR(32) NOT NULL PRIMARY KEY,
2678
    `filename` TEXT NOT NULL
2679
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2680
2671
2681
2672
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
2682
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
2673
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
2683
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
(-)a/installer/data/mysql/sysprefs.sql (+1 lines)
Lines 330-332 INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES Link Here
330
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('EasyAnalyticalRecords','0','If on, display in the catalogue screens tools to easily setup analytical record relationships','','YesNo');
330
INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('EasyAnalyticalRecords','0','If on, display in the catalogue screens tools to easily setup analytical record relationships','','YesNo');
331
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacShowRecentComments',0,'If ON a link to recent comments will appear in the OPAC masthead',NULL,'YesNo');
331
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacShowRecentComments',0,'If ON a link to recent comments will appear in the OPAC masthead',NULL,'YesNo');
332
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('CircAutoPrintQuickSlip', '1', 'Choose what should happen when an empty barcode field is submitted in circulation: Display a print quick slip window or Clear the screen.',NULL,'YesNo');
332
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('CircAutoPrintQuickSlip', '1', 'Choose what should happen when an empty barcode field is submitted in circulation: Display a print quick slip window or Clear the screen.',NULL,'YesNo');
333
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('uploadPath','','Sets the upload path for the upload.pl plugin','','');
(-)a/installer/data/mysql/updatedatabase.pl (+19 lines)
Lines 4605-4610 if (C4::Context->preference("Version") < TransformToNum($DBversion)) { Link Here
4605
    SetVersion ($DBversion);
4605
    SetVersion ($DBversion);
4606
}
4606
}
4607
4607
4608
$DBversion = "XXX";
4609
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
4610
    $dbh->do("
4611
        INSERT IGNORE INTO `systempreferences` (variable,value,explanation,options,type)
4612
        VALUES('uploadPath','','Sets the upload path for the upload.pl plugin','','');
4613
    ");
4614
4615
    $dbh->do("
4616
        CREATE TABLE `uploaded_files` (
4617
            `id` CHAR(32) NOT NULL PRIMARY KEY,
4618
            `filename` TEXT NOT NULL
4619
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4620
    ");
4621
4622
    print "Upgrade to $DBversion done (Adding uploadPath syspref and uploaded_files table)\n";
4623
    SetVersion($DBversion);
4624
}
4625
4626
=item DropAllForeignKeys($table)
4608
4627
4609
=head1 FUNCTIONS
4628
=head1 FUNCTIONS
4610
4629
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/MARCdetail.tt (-10 / +70 lines)
Lines 113-119 function Changefwk(FwkList) { Link Here
113
                    <span class="subfield-label">&nbsp;
113
                    <span class="subfield-label">&nbsp;
114
                    [% UNLESS ( subfiel.hide_marc ) %][% subfiel.marc_subfield %][% END %]
114
                    [% UNLESS ( subfiel.hide_marc ) %][% subfiel.marc_subfield %][% END %]
115
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
115
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
116
                    [% IF ( subfiel.is_url ) %]<a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>[% ELSE %][% subfiel.marc_value |html %][% END %]
116
                    [% IF ( subfiel.is_url ) %]
117
                        <a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>
118
                    [% ELSIF ( subfiel.is_file ) %]
119
                        [% subfiel.marc_value %]
120
                    [% ELSE %]
121
                        [% subfiel.marc_value |html %]
122
                    [% END %]
117
                    [% IF ( subfiel.link ) %]
123
                    [% IF ( subfiel.link ) %]
118
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
124
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
119
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
125
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
Lines 143-149 function Changefwk(FwkList) { Link Here
143
                    <span class="subfield-label">&nbsp;
149
                    <span class="subfield-label">&nbsp;
144
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
150
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
145
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
151
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
146
                    [% IF ( subfiel.is_url ) %]<a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>[% ELSE %][% subfiel.marc_value |html %][% END %]
152
                    [% IF ( subfiel.is_url ) %]
153
                        <a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>
154
                    [% ELSIF ( subfiel.is_file ) %]
155
                        [% subfiel.marc_value %]
156
                    [% ELSE %]
157
                        [% subfiel.marc_value |html %]
158
                    [% END %]
147
                    [% IF ( subfiel.link ) %]
159
                    [% IF ( subfiel.link ) %]
148
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
160
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
149
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
161
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
Lines 173-179 function Changefwk(FwkList) { Link Here
173
                    <span class="subfield-label">&nbsp;
185
                    <span class="subfield-label">&nbsp;
174
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
186
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
175
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
187
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
176
                    [% IF ( subfiel.is_url ) %]<a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>[% ELSE %][% subfiel.marc_value |html %][% END %]
188
                    [% IF ( subfiel.is_url ) %]
189
                        <a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>
190
                    [% ELSIF ( subfiel.is_file ) %]
191
                        [% subfiel.marc_value %]
192
                    [% ELSE %]
193
                        [% subfiel.marc_value |html %]
194
                    [% END %]
177
                    [% IF ( subfiel.link ) %]
195
                    [% IF ( subfiel.link ) %]
178
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
196
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
179
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
197
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
Lines 203-209 function Changefwk(FwkList) { Link Here
203
                    <span class="subfield-label">&nbsp;
221
                    <span class="subfield-label">&nbsp;
204
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
222
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
205
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
223
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
206
                    [% IF ( subfiel.is_url ) %]<a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>[% ELSE %][% subfiel.marc_value |html %][% END %]
224
                    [% IF ( subfiel.is_url ) %]
225
                        <a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>
226
                    [% ELSIF ( subfiel.is_file ) %]
227
                        [% subfiel.marc_value %]
228
                    [% ELSE %]
229
                        [% subfiel.marc_value |html %]
230
                    [% END %]
207
                    [% IF ( subfiel.link ) %]
231
                    [% IF ( subfiel.link ) %]
208
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
232
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
209
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
233
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
Lines 233-239 function Changefwk(FwkList) { Link Here
233
                    <span class="subfield-label">&nbsp;
257
                    <span class="subfield-label">&nbsp;
234
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
258
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
235
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
259
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
236
                    [% IF ( subfiel.is_url ) %]<a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>[% ELSE %][% subfiel.marc_value |html %][% END %]
260
                    [% IF ( subfiel.is_url ) %]
261
                        <a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>
262
                    [% ELSIF (subfiel.is_file ) %]
263
                        [% subfiel.marc_value %]
264
                    [% ELSE %]
265
                        [% subfiel.marc_value |html %]
266
                    [% END %]
237
                    [% IF ( subfiel.link ) %]
267
                    [% IF ( subfiel.link ) %]
238
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
268
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
239
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
269
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
Lines 263-269 function Changefwk(FwkList) { Link Here
263
                    <span class="subfield-label">&nbsp;
293
                    <span class="subfield-label">&nbsp;
264
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
294
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
265
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
295
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
266
                    [% IF ( subfiel.is_url ) %]<a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>[% ELSE %][% subfiel.marc_value |html %][% END %]
296
                    [% IF ( subfiel.is_url ) %]
297
                        <a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>
298
                    [% ELSIF (subfiel.is_file ) %]
299
                        [% subfiel.marc_value %]
300
                    [% ELSE %]
301
                        [% subfiel.marc_value |html %]
302
                    [% END %]
267
                    [% IF ( subfiel.link ) %]
303
                    [% IF ( subfiel.link ) %]
268
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
304
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
269
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
305
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
Lines 293-299 function Changefwk(FwkList) { Link Here
293
                    <span class="subfield-label">&nbsp;
329
                    <span class="subfield-label">&nbsp;
294
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
330
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
295
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
331
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
296
                    [% IF ( subfiel.is_url ) %]<a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>[% ELSE %][% subfiel.marc_value |html %][% END %]
332
                    [% IF ( subfiel.is_url ) %]
333
                        <a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>
334
                    [% ELSIF (subfiel.is_file ) %]
335
                        [% subfiel.marc_value %]
336
                    [% ELSE %]
337
                        [% subfiel.marc_value |html %]
338
                    [% END %]
297
                    [% IF ( subfiel.link ) %]
339
                    [% IF ( subfiel.link ) %]
298
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
340
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
299
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
341
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
Lines 323-329 function Changefwk(FwkList) { Link Here
323
                    <span class="subfield-label">&nbsp;
365
                    <span class="subfield-label">&nbsp;
324
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
366
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
325
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
367
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
326
                    [% IF ( subfiel.is_url ) %]<a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>[% ELSE %][% subfiel.marc_value |html %][% END %]
368
                    [% IF ( subfiel.is_url ) %]
369
                        <a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>
370
                    [% ELSIF (subfiel.is_file ) %]
371
                        [% subfiel.marc_value %]
372
                    [% ELSE %]
373
                        [% subfiel.marc_value |html %]
374
                    [% END %]
327
                    [% IF ( subfiel.link ) %]
375
                    [% IF ( subfiel.link ) %]
328
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
376
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
329
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
377
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
Lines 353-359 function Changefwk(FwkList) { Link Here
353
                    <span class="subfield-label">&nbsp;
401
                    <span class="subfield-label">&nbsp;
354
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
402
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
355
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
403
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
356
                    [% IF ( subfiel.is_url ) %]<a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>[% ELSE %][% subfiel.marc_value |html %][% END %]
404
                    [% IF ( subfiel.is_url ) %]
405
                        <a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>
406
                    [% ELSIF (subfiel.is_file ) %]
407
                        [% subfiel.marc_value %]
408
                    [% ELSE %]
409
                        [% subfiel.marc_value |html %]
410
                    [% END %]
357
                    [% IF ( subfiel.link ) %]
411
                    [% IF ( subfiel.link ) %]
358
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
412
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
359
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
413
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
Lines 383-389 function Changefwk(FwkList) { Link Here
383
                    <span class="subfield-label">&nbsp;
437
                    <span class="subfield-label">&nbsp;
384
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
438
                    [% UNLESS ( subfiel.hide_marc ) %]<b>[% subfiel.marc_subfield %]</b>[% END %]
385
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
439
                    <span title="[% subfiel.long_desc %]">[% subfiel.short_desc %]</span></span>
386
                    [% IF ( subfiel.is_url ) %]<a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>[% ELSE %][% subfiel.marc_value |html %][% END %]
440
                    [% IF ( subfiel.is_url ) %]
441
                        <a href="[% subfiel.marc_value %]">[% subfiel.marc_value |html %]</a>
442
                    [% ELSIF (subfiel.is_file ) %]
443
                        [% subfiel.marc_value %]
444
                    [% ELSE %]
445
                        [% subfiel.marc_value |html %]
446
                    [% END %]
387
                    [% IF ( subfiel.link ) %]
447
                    [% IF ( subfiel.link ) %]
388
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
448
                        <a href="/cgi-bin/koha/catalogue/search.pl?op=do_search&amp;idx=[% subfiel.link %],phr&amp;type=intranet&amp;q=[% subfiel.marc_value |url %]">
389
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
449
                            <img border="0" src="[% interface %]/[% theme %]/img/filefind.png" height="15" title="Search on [% subfiel.marc_value |html %]" alt="Search on [% subfiel.marc_value |html %]" />
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/upload.tt (+47 lines)
Line 0 Link Here
1
<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN"
2
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml">
4
<head>
5
    <title>Upload plugin</title>
6
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
    <script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
8
    <link rel="stylesheet" type="text/css" href="[% themelang %]/css/staff-global.css" />
9
10
</head>
11
<body>
12
[% IF ( success ) %]
13
14
    <script type="text/javascript">
15
        function report() {
16
            var doc   = opener.document;
17
            var field = doc.getElementById("[% index %]");
18
            field.value =  "[% id %]";
19
        }
20
        $(document).ready(function() {
21
            report();
22
        });
23
    </script>
24
25
26
    The file [% uploaded_file %] has been successfully uploaded.
27
    <p><input type="button" value="close" onclick="window.close();" /></p>
28
29
[% ELSE %]
30
31
    [% IF ( error ) %]
32
        <p>Error: Failed to upload file. See logs for details.</p>
33
        <input type="button" value="close" onclick="window.close();" />
34
    [% ELSE %]
35
        <h2>Please select the file to upload : </h2>
36
        <form method="post" enctype="multipart/form-data" action="/cgi-bin/koha/cataloguing/plugin_launcher.pl">
37
            [% filefield %]
38
            <input type="hidden" name="plugin_name" value="upload.pl" />
39
            <input type="hidden" name="index" value="[% index %]" />
40
            <input type="submit">
41
        </form>
42
    [% END %]
43
44
[% END %]
45
46
</body>
47
</html>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/upload_delete_file.tt (+49 lines)
Line 0 Link Here
1
<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN"
2
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml">
4
<head>
5
    <title>Upload plugin</title>
6
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
    <script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
8
    <link rel="stylesheet" type="text/css" href="[% themelang %]/css/staff-global.css" />
9
10
</head>
11
<body>
12
[% IF ( success ) %]
13
14
    <script type="text/javascript">
15
        function report() {
16
            var doc   = opener.document;
17
            var field = doc.getElementById("[% index %]");
18
            field.value =  "";
19
        }
20
        $(document).ready(function() {
21
            report();
22
        });
23
    </script>
24
25
    The file has been successfully deleted.
26
    <p><input type="button" value="close" onclick="window.close();" /></p>
27
28
[% ELSE %]
29
30
    [% IF ( error ) %]
31
        Error: Unable to delete the file.
32
        <p><input type="button" value="close" onclick="window.close();" /></p>
33
    [% ELSE %]
34
        <h2>File deletion</h2>
35
        <p>A file has already been uploaded for this field. Do you want to delete it?</p>
36
        <form method="post" action="/cgi-bin/koha/cataloguing/plugin_launcher.pl">
37
        <input type="hidden" name="plugin_name" value="upload.pl" />
38
        <input type="hidden" name="delete" value="delete" />
39
        <input type="hidden" name="id" value="[% id %]" />
40
        <input type="hidden" name="index" value="[% index %]" />
41
        <input type="button" value="Cancel" onclick="javascript:window.close();" />
42
        <input type="submit" value="Delete" />
43
        </form>
44
    [% END %]
45
46
[% END %]
47
48
</body>
49
</html>
(-)a/kohaversion.pl (-1 / +1 lines)
Lines 16-22 the kohaversion is divided in 4 parts : Link Here
16
use strict;
16
use strict;
17
17
18
sub kohaversion {
18
sub kohaversion {
19
    our $VERSION = '3.07.00.007';
19
    our $VERSION = 'XXX';
20
    # version needs to be set this way
20
    # version needs to be set this way
21
    # so that it can be picked up by Makefile.PL
21
    # so that it can be picked up by Makefile.PL
22
    # during install
22
    # during install
(-)a/misc/strip_value_from_tag.pl (+60 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# This script takes every biblio record in the database,
4
# looks for a value beginning with $find in $fieldtag$$subfieldtag
5
# and strips $find from this value.
6
# This was originally made for the file upload plugin, but might
7
# be used for other purposes.
8
9
use strict;
10
11
use Getopt::Long;
12
use C4::Context;
13
use C4::Biblio;
14
15
my $debug = 0;
16
17
# Which field are we processing?
18
my $fieldtag = "857";
19
my $subfieldtag = "u";
20
21
# Whichi beginning pattern are we looking to delete?
22
my $find = "http://myurl.tld/";
23
my $length = length($find);
24
my $pattern = qr|^$find|;
25
26
print "Field $fieldtag\$$subfieldtag\n";
27
28
# Getting db connection
29
my $dbh = C4::Context->dbh;
30
31
# Getting max bibnumber
32
my $query = "SELECT MAX(biblionumber) from biblio";
33
my $sth = $dbh->prepare($query);
34
$sth->execute();
35
my $bibliocount = $sth->fetchrow;
36
37
warn "unable to get biblio count" and exit -1 unless $bibliocount;
38
39
print "Biblio count : $bibliocount\n";
40
41
# Foreach each biblio
42
foreach (1..$bibliocount) {
43
    my $found = 0;
44
    my $record = GetMarcBiblio($_);
45
    $debug and warn "unable to get marc for record $_" unless $record;
46
    next unless $record;
47
    foreach my $field ($record->field($fieldtag)) {
48
	my $newfield = $field->clone();
49
	my $subfield = $newfield->subfield($subfieldtag);
50
	if ($subfield and $subfield =~ $pattern) {
51
	    my $newsubfield = substr $subfield, $length;
52
	    $newsubfield =~ s/\s+$//;
53
	    $newfield->update($subfieldtag, $newsubfield);
54
	    $field->replace_with($newfield);
55
	    $found = 1;
56
	}
57
    }
58
    print "processing $_\n" if ($found == 1);
59
    ModBiblioMarc($record, $_, GetFrameworkCode($_)) if ($found == 1);
60
}
(-)a/opac/opac-MARCdetail.pl (+10 lines)
Lines 90-95 if (C4::Context->preference("RequestOnOpac")) { Link Here
90
	$RequestOnOpac = 1;
90
	$RequestOnOpac = 1;
91
}
91
}
92
92
93
my $uploadWebPath;
94
if (C4::Context->preference('uploadWebPath')) {
95
    $uploadWebPath = C4::Context->preference('uploadWebPath');
96
}
97
93
# fill arrays
98
# fill arrays
94
my @loop_data = ();
99
my @loop_data = ();
95
my $tag;
100
my $tag;
Lines 161-166 for ( my $tabloop = 0 ; $tabloop <= 10 ; $tabloop++ ) { Link Here
161
                    }
166
                    }
162
                    $subfield_data{marc_value} = GetAuthorisedValueDesc( $fields[$x_i]->tag(),
167
                    $subfield_data{marc_value} = GetAuthorisedValueDesc( $fields[$x_i]->tag(),
163
                        $subf[$i][0], $subf[$i][1], '', $tagslib, '', 'opac' );
168
                        $subf[$i][0], $subf[$i][1], '', $tagslib, '', 'opac' );
169
                    if ($tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] }->{value_builder} eq "upload.pl" and $uploadWebPath) {
170
                        my $file_uri = qq($uploadWebPath/$subf[$i][1]);
171
                        $subfield_data{marc_value} = qq/<a href="$file_uri">$subfield_data{marc_value}<\/a>/;
172
                    }
173
164
                }
174
                }
165
                $subfield_data{marc_subfield} = $subf[$i][0];
175
                $subfield_data{marc_subfield} = $subf[$i][0];
166
                $subfield_data{marc_tag}      = $fields[$x_i]->tag();
176
                $subfield_data{marc_tag}      = $fields[$x_i]->tag();
(-)a/opac/opac-basket.pl (-1 / +1 lines)
Lines 67-73 foreach my $biblionumber ( @bibs ) { Link Here
67
    my $marcauthorsarray = GetMarcAuthors( $record, $marcflavour );
67
    my $marcauthorsarray = GetMarcAuthors( $record, $marcflavour );
68
    my $marcsubjctsarray = GetMarcSubjects( $record, $marcflavour );
68
    my $marcsubjctsarray = GetMarcSubjects( $record, $marcflavour );
69
    my $marcseriesarray  = GetMarcSeries  ($record,$marcflavour);
69
    my $marcseriesarray  = GetMarcSeries  ($record,$marcflavour);
70
    my $marcurlsarray    = GetMarcUrls    ($record,$marcflavour);
70
    my $marcurlsarray    = GetMarcUrls    ($record, $marcflavour, GetFrameworkCode($biblionumber));
71
    my @items            = &GetItemsLocationInfo( $biblionumber );
71
    my @items            = &GetItemsLocationInfo( $biblionumber );
72
    my $subtitle         = GetRecordValue('subtitle', $record, GetFrameworkCode($biblionumber));
72
    my $subtitle         = GetRecordValue('subtitle', $record, GetFrameworkCode($biblionumber));
73
73
(-)a/opac/opac-detail.pl (-1 / +1 lines)
Lines 529-535 my $marcisbnsarray = GetMarcISBN ($record,$marcflavour); Link Here
529
my $marcauthorsarray = GetMarcAuthors ($record,$marcflavour);
529
my $marcauthorsarray = GetMarcAuthors ($record,$marcflavour);
530
my $marcsubjctsarray = GetMarcSubjects($record,$marcflavour);
530
my $marcsubjctsarray = GetMarcSubjects($record,$marcflavour);
531
my $marcseriesarray  = GetMarcSeries  ($record,$marcflavour);
531
my $marcseriesarray  = GetMarcSeries  ($record,$marcflavour);
532
my $marcurlsarray    = GetMarcUrls    ($record,$marcflavour);
532
my $marcurlsarray    = GetMarcUrls    ($record, $marcflavour, $dat->{'frameworkcode'});
533
my $marchostsarray  = GetMarcHosts($record,$marcflavour);
533
my $marchostsarray  = GetMarcHosts($record,$marcflavour);
534
my $subtitle         = GetRecordValue('subtitle', $record, GetFrameworkCode($biblionumber));
534
my $subtitle         = GetRecordValue('subtitle', $record, GetFrameworkCode($biblionumber));
535
535
(-)a/opac/opac-retrieve-file.pl (-1 / +33 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
3
use Modern::Perl;
4
5
use CGI;
6
7
use C4::Context;
8
use C4::UploadedFiles;
9
10
my $input = new CGI;
11
12
my $id = $input->param('id');
13
my $file = C4::UploadedFiles::GetUploadedFile($id);
14
exit 1 if not $file;
15
16
my $upload_path = C4::Context->preference("uploadPath");
17
$upload_path =~ s#/$##;
18
my $file_path = "$upload_path/$file->{id}";
19
20
if( -f $file_path ) {
21
    open FH, '<', $file_path or die "Can't open file: $!";
22
    print $input->header(
23
        -type => "application/octet-stream",
24
        -attachment => $file->{filename}
25
    );
26
    while(<FH>) {
27
        print $_;
28
    }
29
} else {
30
    exit 1;
31
}
32
33
exit 0;

Return to bug 6874