@@ -24,13 +24,16 @@ FormatRenderedProblem.pm
24
24
25
25
package RenderApp::Controller::FormatRenderedProblem ;
26
26
27
+ use warnings;
28
+ use strict;
29
+
27
30
use lib " $WeBWorK::Constants::WEBWORK_DIRECTORY /lib" ;
28
31
use lib " $WeBWorK::Constants::PG_DIRECTORY /lib" ;
29
32
use MIME::Base64 qw( encode_base64 decode_base64) ;
30
33
use WeBWorK::Utils::AttemptsTable; # import from ww2
31
34
use WeBWorK::PG::ImageGenerator; # import from ww2
32
35
use WeBWorK::Utils::LanguageAndDirection;
33
- use WeBWorK::Utils qw( wwRound) ; # required for score summary
36
+ use WeBWorK::Utils qw( wwRound getAssetURL ) ; # required for score summary
34
37
use WeBWorK::Localize ; # for maketext
35
38
our $UNIT_TESTS_ON = 0;
36
39
@@ -46,7 +49,7 @@ sub format_hash_ref {
46
49
sub new {
47
50
my $invocant = shift ;
48
51
my $class = ref $invocant || $invocant ;
49
- $self = { # Is this function redundant given the declarations within sub formatRenderedProblem?
52
+ my $self = { # Is this function redundant given the declarations within sub formatRenderedProblem?
50
53
return_object => {},
51
54
encoded_source => {},
52
55
sourceFilePath => ' ' ,
@@ -199,7 +202,7 @@ sub formatRenderedProblem {
199
202
answersSubmitted => $self -> {inputs_ref }{answersSubmitted }//0,
200
203
answerOrder => $answerOrder //[],
201
204
displayMode => $self -> {inputs_ref }{displayMode },
202
- imgGen => $imgGen ,
205
+ imgGen => undef , # $imgGen,
203
206
ce => ' ' , # used only to build the imgGen
204
207
showAnswerNumbers => 0,
205
208
showAttemptAnswers => 0,
@@ -242,39 +245,33 @@ sub formatRenderedProblem {
242
245
243
246
# Add JS files requested by problems via ADD_JS_FILE() in the PG file.
244
247
my $extra_js_files = ' ' ;
245
- if (ref ($rh_result -> {flags }{extra_js_files }) eq " ARRAY" ) {
248
+ if (ref ($rh_result -> {flags }{extra_js_files }) eq ' ARRAY' ) {
246
249
$rh_result -> {js } = [];
247
250
my %jsFiles ;
248
251
for (@{ $rh_result -> {flags }{extra_js_files } }) {
249
252
next if $jsFiles { $_ -> {file } };
250
253
$jsFiles { $_ -> {file } } = 1;
251
- my $ attributes = ref ($_ -> {attributes }) eq " HASH" ? $_ -> {attributes } : {} ;
254
+ my % attributes = ref ($_ -> {attributes }) eq ' HASH' ? %{ $_ -> {attributes } } : () ;
252
255
if ($_ -> {external }) {
253
256
push @{ $rh_result -> {js } }, $_ -> {file };
254
- $extra_js_files .= CGI::script({ src => $_ -> {file }, %$attributes }, ' ' );
255
- } elsif (
256
- !$_ -> {external }
257
- && (-f " $WeBWorK::Constants::WEBWORK_DIRECTORY /htdocs/$_ ->{file}"
258
- || -f " $WeBWorK::Constants::PG_DIRECTORY /htdocs/$_ ->{file}" )
259
- )
260
- {
261
- push @{ $rh_result -> {js } }, " $webwork_htdocs_url /$_ ->{file}" ;
262
- $extra_js_files .= CGI::script({ src => " $webwork_htdocs_url /$_ ->{file}" , %$attributes }, ' ' );
257
+ $extra_js_files .= CGI::script({ src => $_ -> {file }, %attributes }, ' ' );
263
258
} else {
264
- $extra_js_files .= " <!-- $_ ->{file} is not available in htdocs/ on this server -->" ;
259
+ my $url = getAssetURL($self -> {inputs_ref }{language } // ' en' , $_ -> {file });
260
+ push @{ $rh_result -> {js } }, " $SITE_URL /$url " ;
261
+ $extra_js_files .= CGI::script({ src => $url , %attributes }, ' ' );
265
262
}
266
263
}
267
264
}
268
265
269
266
# Add CSS files requested by problems via ADD_CSS_FILE() in the PG file
270
- # or via a setting of $ce-> {pg}{specialPGEnvironmentVars}{extra_css_files}
267
+ # or via a setting of $self->{ce} {pg}{specialPGEnvironmentVars}{extra_css_files}
271
268
# (the value should be an anonomous array).
272
269
my $extra_css_files = ' ' ;
273
270
my @cssFiles ;
274
- if (ref ($ce -> {pg }{specialPGEnvironmentVars }{extra_css_files }) eq " ARRAY" ) {
275
- push (@cssFiles , { file => $_ , external => 0 }) for @{ $ce -> {pg }{specialPGEnvironmentVars }{extra_css_files } };
271
+ if (ref ($self -> {ce }{ pg }{specialPGEnvironmentVars }{extra_css_files }) eq ' ARRAY' ) {
272
+ push (@cssFiles , { file => $_ , external => 0 }) for @{ $self -> { ce } {pg }{specialPGEnvironmentVars }{extra_css_files } };
276
273
}
277
- if (ref ($rh_result -> {flags }{extra_css_files }) eq " ARRAY" ) {
274
+ if (ref ($rh_result -> {flags }{extra_css_files }) eq ' ARRAY' ) {
278
275
push @cssFiles , @{ $rh_result -> {flags }{extra_css_files } };
279
276
}
280
277
my %cssFilesAdded ; # Used to avoid duplicates
@@ -284,17 +281,11 @@ sub formatRenderedProblem {
284
281
$cssFilesAdded { $_ -> {file } } = 1;
285
282
if ($_ -> {external }) {
286
283
push @{ $rh_result -> {css } }, $_ -> {file };
287
- $extra_css_files .= CGI::Link({ rel => ' stylesheet' , href => " $_ ->{file}" });
288
- } elsif (
289
- !$_ -> {external }
290
- && (-f " $WeBWorK::Constants::WEBWORK_DIRECTORY /htdocs/$_ ->{file}"
291
- || -f " $WeBWorK::Constants::PG_DIRECTORY /htdocs/$_ ->{file}" )
292
- )
293
- {
294
- push @{ $rh_result -> {css } }, " $webwork_htdocs_url /$_ ->{file}" ;
295
- $extra_css_files .= CGI::Link({ rel => ' stylesheet' , href => " $webwork_htdocs_url /$_ ->{file}" });
284
+ $extra_css_files .= CGI::Link({ rel => ' stylesheet' , href => $_ -> {file } });
296
285
} else {
297
- $extra_css_files .= qq{ <!-- $_ ->{file} is not available in htdocs/ on this server -->} ;
286
+ my $url = getAssetURL($self -> {inputs_ref }{language } // ' en' , $_ -> {file });
287
+ push @{ $rh_result -> {css } }, " $SITE_URL /$url " ;
288
+ $extra_css_files .= CGI::Link({ href => $url , rel => ' stylesheet' });
298
289
}
299
290
}
300
291
0 commit comments