[system] / trunk / webwork2 / lib / WeBWorK / PG.pm Repository:
ViewVC logotype

Diff of /trunk/webwork2/lib/WeBWorK/PG.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 607 Revision 623
42 "user=".$user->id.",problem=".$courseEnv->{courseName}."/".$set->id."/".$problem->id.",mode=".$translationOptions->{displayMode}, 42 "user=".$user->id.",problem=".$courseEnv->{courseName}."/".$set->id."/".$problem->id.",mode=".$translationOptions->{displayMode},
43 "begin"); 43 "begin");
44 44
45 # install a local warn handler to collect warnings 45 # install a local warn handler to collect warnings
46 my $warnings = ""; 46 my $warnings = "";
47 if ($courseEnv->{pg}->{options}->{catchWarnings}) {
47 local $SIG{__WARN__} = sub { $warnings .= shift }; 48 local $SIG{__WARN__} = sub { $warnings .= shift };
49 }
48 50
49 # create a Translator 51 # create a Translator
50 #warn "PG: creating a Translator\n"; 52 #warn "PG: creating a Translator\n";
51 my $translator = WeBWorK::PG::Translator->new; 53 my $translator = WeBWorK::PG::Translator->new;
52 54
86 88
87 # initialize the Translator 89 # initialize the Translator
88 #warn "PG: initializing the Translator\n"; 90 #warn "PG: initializing the Translator\n";
89 $translator->initialize(); 91 $translator->initialize();
90 92
91 # load PG.pl and dangerousMacros.pl using unrestricted_load 93 # load IO.pl, PG.pl, and dangerousMacros.pl using unrestricted_load
92 # i'd like to change this at some point to have the same sort of interface to global.conf 94 # i'd like to change this at some point to have the same sort of interface to global.conf
93 # that the module loading does -- have a list of macros to load unrestrictedly. 95 # that the module loading does -- have a list of macros to load unrestrictedly.
94 #warn "PG: loading PG.pl and dangerousMacros.pl using unrestricted_load\n"; 96 #warn "PG: loading IO.pl, PG.pl, and dangerousMacros.pl using unrestricted_load\n";
97 foreach (qw(IO.pl PG.pl dangerousMacros.pl)) {
98 my $macroPath = $courseEnv->{webworkDirs}->{macros} . "/$_";
99 my $err = $translator->unrestricted_load($macroPath);
100 warn "Error while loading $macroPath: $err" if $err;
101 }
95 my $pg_pl = $courseEnv->{webworkDirs}->{macros} . "/PG.pl"; 102 #my $pg_pl = $courseEnv->{webworkDirs}->{macros} . "/PG.pl";
96 my $dangerousMacros_pl = $courseEnv->{webworkDirs}->{macros} . "/dangerousMacros.pl"; 103 #my $dangerousMacros_pl = $courseEnv->{webworkDirs}->{macros} . "/dangerousMacros.pl";
97 my $io_pl = $courseEnv->{webworkDirs}->{macros} . "/IO.pl"; 104 #my $io_pl = $courseEnv->{webworkDirs}->{macros} . "/IO.pl";
98 my $err = $translator->unrestricted_load($pg_pl); 105 #my $err = $translator->unrestricted_load($pg_pl);
99 warn "Error while loading $pg_pl: $err" if $err; 106 #warn "Error while loading $pg_pl: $err" if $err;
100 $err = $translator->unrestricted_load($dangerousMacros_pl); 107 #$err = $translator->unrestricted_load($dangerousMacros_pl);
101 warn "Error while loading $dangerousMacros_pl: $err" if $err; 108 #warn "Error while loading $dangerousMacros_pl: $err" if $err;
102 $err = $translator->unrestricted_load($io_pl); 109 #$err = $translator->unrestricted_load($io_pl);
103 warn "Error while loading $io_pl: $err" if $err; 110 #warn "Error while loading $io_pl: $err" if $err;
104 111
105 # set the opcode mask (using default values) 112 # set the opcode mask (using default values)
106 #warn "PG: setting the opcode mask (using default values)\n"; 113 #warn "PG: setting the opcode mask (using default values)\n";
107 $translator->set_mask(); 114 $translator->set_mask();
108 115
230 # PG environment variables 237 # PG environment variables
231 # from docs/pglanguage/pgreference/environmentvariables as of 06/25/2002 238 # from docs/pglanguage/pgreference/environmentvariables as of 06/25/2002
232 # any changes are noted by "ADDED:" or "REMOVED:" 239 # any changes are noted by "ADDED:" or "REMOVED:"
233 240
234 # Vital state information 241 # Vital state information
235 # ADDED: displayHintsQ, displaySolutionsQ, refreshMath2img 242 # ADDED: displayHintsQ, displaySolutionsQ, refreshMath2img,
243 # texDisposition
236 244
237 $envir{psvn} = $psvn; 245 $envir{psvn} = $psvn;
238 $envir{psvnNumber} = $envir{psvn}; 246 $envir{psvnNumber} = $envir{psvn};
239 $envir{probNum} = $problem->id; 247 $envir{probNum} = $problem->id;
240 $envir{questionNumber} = $envir{probNum}; 248 $envir{questionNumber} = $envir{probNum};
245 $envir{languageMode} = $envir{displayMode}; 253 $envir{languageMode} = $envir{displayMode};
246 $envir{outputMode} = $envir{displayMode}; 254 $envir{outputMode} = $envir{displayMode};
247 $envir{displayHintsQ} = $options->{hints}; 255 $envir{displayHintsQ} = $options->{hints};
248 $envir{displaySolutionsQ} = $options->{solutions}; 256 $envir{displaySolutionsQ} = $options->{solutions};
249 $envir{refreshMath2img} = $options->{refreshMath2img}; 257 $envir{refreshMath2img} = $options->{refreshMath2img};
258 $envir{texDisposition} = "pdf"; # in webwork-modperl, we use pdflatex
250 259
251 # Problem Information 260 # Problem Information
252 # ADDED: courseName 261 # ADDED: courseName
253 262
254 $envir{openDate} = $set->open_date; 263 $envir{openDate} = $set->open_date;
286 $envir{externalTTHPath} = $courseEnv->{externalPrograms}->{tth}; 295 $envir{externalTTHPath} = $courseEnv->{externalPrograms}->{tth};
287 $envir{externalLaTeXPath} = $courseEnv->{externalPrograms}->{latex}; 296 $envir{externalLaTeXPath} = $courseEnv->{externalPrograms}->{latex};
288 $envir{externalDvipngPath} = $courseEnv->{externalPrograms}->{dvipng}; 297 $envir{externalDvipngPath} = $courseEnv->{externalPrograms}->{dvipng};
289 $envir{externalGif2EpsPath} = $courseEnv->{externalPrograms}->{gif2eps}; 298 $envir{externalGif2EpsPath} = $courseEnv->{externalPrograms}->{gif2eps};
290 $envir{externalPng2EpsPath} = $courseEnv->{externalPrograms}->{png2eps}; 299 $envir{externalPng2EpsPath} = $courseEnv->{externalPrograms}->{png2eps};
300 $envir{externalGif2PngPath} = $courseEnv->{externalPrograms}->{gif2png};
291 301
292 # Directories and URLs 302 # Directories and URLs
293 # REMOVED: courseName 303 # REMOVED: courseName
294 # ADDED: dvipngTempDir 304 # ADDED: dvipngTempDir
295
296 305
297 $envir{cgiDirectory} = undef; 306 $envir{cgiDirectory} = undef;
298 $envir{cgiURL} = undef; 307 $envir{cgiURL} = undef;
299 $envir{classDirectory} = undef; 308 $envir{classDirectory} = undef;
300 $envir{courseScriptsDirectory} = $courseEnv->{webworkDirs}->{macros}."/"; 309 $envir{courseScriptsDirectory} = $courseEnv->{webworkDirs}->{macros}."/";
308 $envir{webworkDocsURL} = $courseEnv->{webworkURLs}->{docs}."/"; 317 $envir{webworkDocsURL} = $courseEnv->{webworkURLs}->{docs}."/";
309 $envir{dvipngTempDir} = $options->{displayMode} eq 'images' 318 $envir{dvipngTempDir} = $options->{displayMode} eq 'images'
310 ? tempdir("webwork-dvipng-XXXXXXXX", DIR => $envir{tempDirectory}) 319 ? tempdir("webwork-dvipng-XXXXXXXX", DIR => $envir{tempDirectory})
311 : undef; 320 : undef;
312 321
322 # Information for sending mail
323
324 $envir{mailSmtpServer} = $courseEnv->{mail}->{smtpServer};
325 $envir{mailSmtpSender} = $courseEnv->{mail}->{smtpSender};
326
313 # Default values for evaluating answers 327 # Default values for evaluating answers
314 328
315 my $ansEvalDefaults = $courseEnv->{pg}->{ansEvalDefaults}; 329 my $ansEvalDefaults = $courseEnv->{pg}->{ansEvalDefaults};
316 $envir{$_} = $ansEvalDefaults->{$_} foreach (keys %$ansEvalDefaults); 330 $envir{$_} = $ansEvalDefaults->{$_} foreach (keys %$ansEvalDefaults);
317 331
344 $errorno = 0; ## don't report blank answer as error 358 $errorno = 0; ## don't report blank answer as error
345 return ($answer,$errorno); 359 return ($answer,$errorno);
346 } 360 }
347 # replace ^ with ** (for exponentiation) 361 # replace ^ with ** (for exponentiation)
348 # $answer =~ s/\^/**/g; 362 # $answer =~ s/\^/**/g;
349 # Return if forbidden characters are found 363 # Return if forbidden characters are found
350 unless ($answer =~ /^[a-zA-Z0-9_\-\+ \t\/@%\*\.\n^\(\)]+$/ ) { 364 unless ($answer =~ /^[a-zA-Z0-9_\-\+ \t\/@%\*\.\n^\(\)]+$/ ) {
351 $answer =~ tr/a-zA-Z0-9_\-\+ \t\/@%\*\.\n^\(\)/#/c; 365 $answer =~ tr/a-zA-Z0-9_\-\+ \t\/@%\*\.\n^\(\)/#/c;
352 $errorno = "<BR>There are forbidden characters in your answer: $submittedAnswer<BR>"; 366 $errorno = "<BR>There are forbidden characters in your answer: $submittedAnswer<BR>";
353 return ($answer,$errorno); 367 return ($answer,$errorno);
354 } 368 }

Legend:
Removed from v.607  
changed lines
  Added in v.623

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9