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

(-)a/C4/XSLT.pm (-23 / +22 lines)
Lines 118-125 sub getAuthorisedValues4MARCSubfields { Link Here
118
    return $authval_per_framework{ $frameworkcode };
118
    return $authval_per_framework{ $frameworkcode };
119
}
119
}
120
120
121
my $stylesheet;
121
my %stylesheet;
122
123
sub XSLTParse4Display {
122
sub XSLTParse4Display {
124
    my ( $biblionumber, $orig_record, $xsl_suffix, $interface, $fixamps ) = @_;
123
    my ( $biblionumber, $orig_record, $xsl_suffix, $interface, $fixamps ) = @_;
125
    $interface = 'opac' unless $interface;
124
    $interface = 'opac' unless $interface;
Lines 153-181 sub XSLTParse4Display { Link Here
153
    # don't die when you find &, >, etc
152
    # don't die when you find &, >, etc
154
    $parser->recover_silently(0);
153
    $parser->recover_silently(0);
155
    my $source = $parser->parse_string($xmlrecord);
154
    my $source = $parser->parse_string($xmlrecord);
156
    unless ( $stylesheet ) {
155
    my $xslfile;
156
    if ($interface eq 'intranet') {
157
        $xslfile = C4::Context->config('intrahtdocs') .
158
                  '/' . C4::Context->preference("template") .
159
                  '/' . C4::Templates::_current_language() .
160
                  '/xslt/' .
161
                  C4::Context->preference('marcflavour') .
162
                  "slim2intranet$xsl_suffix.xsl";
163
    } else {
164
        $xslfile = C4::Context->config('opachtdocs') .
165
                  '/' . C4::Context->preference("opacthemes") .
166
                  '/' . C4::Templates::_current_language() .
167
                  '/xslt/' .
168
                  C4::Context->preference('marcflavour') .
169
                  "slim2OPAC$xsl_suffix.xsl";
170
    }
171
    unless ( $stylesheet{$xslfile} ) { #No cached stylesheet
157
        my $xslt = XML::LibXSLT->new();
172
        my $xslt = XML::LibXSLT->new();
158
        my $xslfile;
159
        if ($interface eq 'intranet') {
160
            $xslfile = C4::Context->config('intrahtdocs') . 
161
                      '/' . C4::Context->preference("template") . 
162
                      '/' . C4::Templates::_current_language() .
163
                      '/xslt/' .
164
                      C4::Context->preference('marcflavour') .
165
                      "slim2intranet$xsl_suffix.xsl";
166
        } else {
167
            $xslfile = C4::Context->config('opachtdocs') . 
168
                      '/' . C4::Context->preference("opacthemes") . 
169
                      '/' . C4::Templates::_current_language() .
170
                      '/xslt/' .
171
                      C4::Context->preference('marcflavour') .
172
                      "slim2OPAC$xsl_suffix.xsl";
173
        }
174
        my $style_doc = $parser->parse_file($xslfile);
173
        my $style_doc = $parser->parse_file($xslfile);
175
        $stylesheet = $xslt->parse_stylesheet($style_doc);
174
        $stylesheet{$xslfile} = $xslt->parse_stylesheet($style_doc);
176
    }
175
    }
177
    my $results = $stylesheet->transform($source);
176
    my $parsed_stylesheet = $stylesheet{$xslfile};
178
    my $newxmlrecord = $stylesheet->output_string($results);
177
    my $results = $parsed_stylesheet->transform($source);
178
    my $newxmlrecord = $parsed_stylesheet->output_string($results);
179
    return $newxmlrecord;
179
    return $newxmlrecord;
180
}
180
}
181
181
182
- 

Return to bug 7721