| 1 | #!perl |
1 | #!perl |
| 2 | ################################################################################ |
2 | ################################################################################ |
| 3 | # WeBWorK Online Homework Delivery System |
3 | # WeBWorK Online Homework Delivery System |
| 4 | # Copyright © 2000-2003 The WeBWorK Project, http://openwebwork.sf.net/ |
4 | # Copyright © 2000-2003 The WeBWorK Project, http://openwebwork.sf.net/ |
| 5 | # $CVSHeader: webwork-modperl/conf/global.conf.dist,v 1.127 2005/08/21 00:03:38 dpvc Exp $ |
5 | # $CVSHeader: webwork2/conf/global.conf.dist,v 1.140 2005/09/22 17:48:38 sh002i Exp $ |
| 6 | # |
6 | # |
| 7 | # This program is free software; you can redistribute it and/or modify it under |
7 | # This program is free software; you can redistribute it and/or modify it under |
| 8 | # the terms of either: (a) the GNU General Public License as published by the |
8 | # the terms of either: (a) the GNU General Public License as published by the |
| 9 | # Free Software Foundation; either version 2, or (at your option) any later |
9 | # Free Software Foundation; either version 2, or (at your option) any later |
| 10 | # version, or (b) the "Artistic License" which comes with this package. |
10 | # version, or (b) the "Artistic License" which comes with this package. |
| … | |
… | |
| 46 | |
46 | |
| 47 | ################################################################################ |
47 | ################################################################################ |
| 48 | # Paths to external programs |
48 | # Paths to external programs |
| 49 | ################################################################################ |
49 | ################################################################################ |
| 50 | |
50 | |
|
|
51 | # system utilties |
| 51 | $externalPrograms{mkdir} = "/bin/mkdir"; |
52 | $externalPrograms{mkdir} = "/bin/mkdir"; |
| 52 | $externalPrograms{mv} = "/bin/mv"; |
53 | $externalPrograms{mv} = "/bin/mv"; |
| 53 | $externalPrograms{mysql} = "/usr/bin/mysql"; |
54 | $externalPrograms{mysql} = "/usr/bin/mysql"; |
|
|
55 | $externalPrograms{tar} = "/usr/bin/tar"; |
| 54 | |
56 | |
|
|
57 | # equation rendering/hardcopy utiltiies |
| 55 | $externalPrograms{latex} = "/usr/bin/latex"; |
58 | $externalPrograms{latex} = "/usr/bin/latex"; |
| 56 | $externalPrograms{pdflatex} = "/usr/bin/pdflatex --shell-escape"; # allows pdflatex to handle .eps files |
59 | $externalPrograms{pdflatex} = "/usr/bin/pdflatex --shell-escape"; # --shell-escape allows pdflatex to handle .eps files |
| 57 | $externalPrograms{dvipng} = "/usr/bin/dvipng"; |
60 | $externalPrograms{dvipng} = "/usr/bin/dvipng"; |
| 58 | $externalPrograms{tth} = "/usr/bin/tth"; |
61 | $externalPrograms{tth} = "/usr/bin/tth"; |
| 59 | |
62 | |
| 60 | $externalPrograms{tar} = "/usr/bin/tar"; |
|
|
| 61 | |
|
|
| 62 | # Basic image manipulation utilities |
63 | # NetPBM - basic image manipulation utilities |
| 63 | # Most sites only need to configure the first line |
64 | # most sites only need to configure $netpbm_prefix. |
| 64 | $externalPrograms{netpbm} = "/usr/bin/"; # Really a prefix, rather than a program |
65 | my $netpbm_prefix = "/usr/bin"; |
| 65 | $externalPrograms{giftopnm} = $externalPrograms{netpbm}.'giftopnm'; |
66 | $externalPrograms{giftopnm} = "$netpbm_prefix/giftopnm"; |
| 66 | $externalPrograms{ppmtopgm} = $externalPrograms{netpbm}.'ppmtopgm'; |
67 | $externalPrograms{ppmtopgm} = "$netpbm_prefix/ppmtopgm"; |
| 67 | $externalPrograms{pnmtops} = $externalPrograms{netpbm}.'pnmtops'; |
68 | $externalPrograms{pnmtops} = "$netpbm_prefix/pnmtops"; |
| 68 | $externalPrograms{pnmtopng} = $externalPrograms{netpbm}.'pnmtopng'; |
69 | $externalPrograms{pnmtopng} = "$netpbm_prefix/pnmtopng"; |
| 69 | $externalPrograms{pngtopnm} = $externalPrograms{netpbm}.'pngtopnm'; |
70 | $externalPrograms{pngtopnm} = "$netpbm_prefix/pngtopnm"; |
| 70 | |
71 | |
| 71 | # The following lines are the external scripts gif2eps, etc. |
72 | # image conversions utiltiies |
| 72 | # The source file is input with cat, and the output is redirected to |
73 | # the source file is given on stdin, and the output expected on stdout. |
| 73 | # the desired file. |
74 | # |
| 74 | |
75 | # Note on conversions pipelines: |
|
|
76 | # we used to use `pnmdepth 1' instead of ppmtopgm as it creates a |
|
|
77 | # monochrome image (1 bit) rather than a greyscale image (8 bits). |
|
|
78 | # However, this was causing improper display of some sort in PDFs. |
| 75 | $externalPrograms{gif2eps} = "$externalPrograms{giftopnm} | $externalPrograms{ppmtopgm}| $externalPrograms{pnmtops} -noturn 2>/dev/null"; |
79 | $externalPrograms{gif2eps} = "$externalPrograms{giftopnm} | $externalPrograms{ppmtopgm} | $externalPrograms{pnmtops} -noturn 2>/dev/null"; |
| 76 | $externalPrograms{png2eps} = "$externalPrograms{pngtopnm} | $externalPrograms{ppmtopgm} | $externalPrograms{pnmtops} -noturn 2>/dev/null"; |
80 | $externalPrograms{png2eps} = "$externalPrograms{pngtopnm} | $externalPrograms{ppmtopgm} | $externalPrograms{pnmtops} -noturn 2>/dev/null"; |
| 77 | $externalPrograms{gif2png} = "$externalPrograms{giftopnm} | $externalPrograms{pnmtopng}"; |
81 | $externalPrograms{gif2png} = "$externalPrograms{giftopnm} | $externalPrograms{pnmtopng}"; |
| 78 | |
|
|
| 79 | # Note on these conversions: |
|
|
| 80 | # we used to use `pnmdepth 1' instead of ppmtopgm as it creates a |
|
|
| 81 | # monochrome image (1 bit) rather than a greyscale image (8 bits). |
|
|
| 82 | # However, this was causing improper display of some sort in PDFs. |
|
|
| 83 | |
|
|
| 84 | |
82 | |
| 85 | ################################################################################ |
83 | ################################################################################ |
| 86 | # Mail settings |
84 | # Mail settings |
| 87 | ################################################################################ |
85 | ################################################################################ |
| 88 | |
86 | |
| … | |
… | |
| 93 | # When connecting to the above server, WeBWorK will send this address in the |
91 | # When connecting to the above server, WeBWorK will send this address in the |
| 94 | # MAIL FROM command. This has nothing to do with the "From" address on the mail |
92 | # MAIL FROM command. This has nothing to do with the "From" address on the mail |
| 95 | # message. It can really be anything, but some mail servers require it contain |
93 | # message. It can really be anything, but some mail servers require it contain |
| 96 | # a valid mail domain, or at least be well-formed. |
94 | # a valid mail domain, or at least be well-formed. |
| 97 | $mail{smtpSender} = 'webwork@yourserver.yourschool.edu'; |
95 | $mail{smtpSender} = 'webwork@yourserver.yourschool.edu'; |
| 98 | |
96 | |
| 99 | # AllowedRecipients defines addresses that the PG system is allowed to send mail |
97 | # AllowedRecipients defines addresses that the PG system is allowed to send mail |
| 100 | # to. this prevents subtle PG exploits. This should be set in course.conf to the |
98 | # to. this prevents subtle PG exploits. This should be set in course.conf to the |
| 101 | # addresses of professors of each course. Sending mail from the PG system (i.e. |
99 | # addresses of professors of each course. Sending mail from the PG system (i.e. |
| 102 | # questionaires, essay questions) will fail if this is not set somewhere (either |
100 | # questionaires, essay questions) will fail if this is not set somewhere (either |
| 103 | # here or in course.conf). |
101 | # here or in course.conf). |
| 104 | $mail{allowedRecipients} = [ |
102 | $mail{allowedRecipients} = [ |
| 105 | #'prof1@yourserver.yourdomain.edu', |
103 | #'prof1@yourserver.yourdomain.edu', |
| 106 | #'prof2@yourserver.yourdomain.edu', |
104 | #'prof2@yourserver.yourdomain.edu', |
| 107 | ]; |
105 | ]; |
| 108 | |
106 | |
| 109 | # If defined, feedbackRecipients overrides the list of recipients for feedback |
107 | # By default, feeback is sent to all users who have permission to |
| 110 | # email. It's appropriate to set this in the course.conf for specific courses, |
108 | # receive_feedback. If this list is non-empty, feedback is also sent to the |
| 111 | # but probably not in global.conf. if not defined, mail is sent to all |
109 | # addresses specified here. |
| 112 | # professors and TAs for a given course |
110 | # |
|
|
111 | # * If you want to disable feedback altogether, leave this empty and set |
|
|
112 | # submit_feeback => $nobody in %permissionLevels below. This will cause the |
|
|
113 | # feedback button to go away as well. |
|
|
114 | # |
|
|
115 | # * If you want to send email ONLY to addresses in this list, set |
|
|
116 | # receive_feedback => $nobody in %permissionLevels below. |
|
|
117 | # |
|
|
118 | # It's often useful to set this in the course.conf to change the behavior of |
|
|
119 | # feedback for a specific course. |
|
|
120 | # |
| 113 | #$mail{feedbackRecipients} = [ |
121 | $mail{feedbackRecipients} = [ |
| 114 | # 'prof1@yourserver.yourdomain.edu', |
122 | #'prof1@yourserver.yourdomain.edu', |
| 115 | # 'prof2@yourserver.yourdomain.edu', |
123 | #'prof2@yourserver.yourdomain.edu', |
| 116 | #]; |
124 | ]; |
| 117 | |
125 | |
|
|
126 | # Feedback subject line -- the following escape sequences are recognized: |
|
|
127 | # |
|
|
128 | # %c = course ID |
|
|
129 | # %u = user ID |
|
|
130 | # %s = set ID |
|
|
131 | # %p = problem ID |
|
|
132 | # %x = section |
|
|
133 | # %r = recitation |
|
|
134 | # %% = literal percent sign |
|
|
135 | # |
|
|
136 | $mail{feedbackSubjectFormat} = "[WWfeedback] course:%c %% user:%u set:%s prob:%p sec:%x rec:%r"; |
|
|
137 | |
| 118 | # feedbackVerbosity: |
138 | # feedbackVerbosity: |
| 119 | # 0: send only the feedback comment and context link |
139 | # 0: send only the feedback comment and context link |
| 120 | # 1: as in 0, plus user, set, problem, and PG data |
140 | # 1: as in 0, plus user, set, problem, and PG data |
| 121 | # 2: as in 1, plus the problem environment (debugging data) |
141 | # 2: as in 1, plus the problem environment (debugging data) |
| 122 | $mail{feedbackVerbosity} = 1; |
142 | $mail{feedbackVerbosity} = 1; |
| 123 | |
143 | |
| 124 | # Defines the size of the Mail Merge editor window |
144 | # Defines the size of the Mail Merge editor window |
| 125 | # FIXME: should this be here? it's UI, not mail |
145 | # FIXME: should this be here? it's UI, not mail |
| 126 | # FIXME: replace this with the auto-size method that TWiki uses |
146 | # FIXME: replace this with the auto-size method that TWiki uses |
| 127 | $mail{editor_window_rows} = 15; |
147 | $mail{editor_window_rows} = 15; |
| 128 | $mail{editor_window_columns} = 100; |
148 | $mail{editor_window_columns} = 100; |
| … | |
… | |
| 330 | # osuLibrary => "Ohio State", |
350 | # osuLibrary => "Ohio State", |
| 331 | # capaLibrary => "CAPA", |
351 | # capaLibrary => "CAPA", |
| 332 | }; |
352 | }; |
| 333 | |
353 | |
| 334 | ################################################################################ |
354 | ################################################################################ |
| 335 | # Database options (WWDBv3) |
355 | # Database options |
| 336 | ################################################################################ |
|
|
| 337 | |
|
|
| 338 | # The four arguments passed to the DBI::connect() method. See the DBI manual for |
|
|
| 339 | # more information. |
|
|
| 340 | $wwdbv3_settings{dsn} = "dbi:mysql:wwdbv3"; |
|
|
| 341 | $wwdbv3_settings{user} = "wwdbv3"; |
|
|
| 342 | $wwdbv3_settings{pass} = "xyzzy"; |
|
|
| 343 | $wwdbv3_settings{attr} = {}; |
|
|
| 344 | |
|
|
| 345 | # WWDBv3 needs a lock file to prevent concurrent database upgrades. The file |
|
|
| 346 | # will be locked with flock(). |
|
|
| 347 | $wwdbv3_settings{upgrade_lock} = "$webworkDirs{tmp}/wwdbv3_upgrade.lock"; |
|
|
| 348 | |
|
|
| 349 | ################################################################################ |
|
|
| 350 | # Database options (WWDBv2) |
|
|
| 351 | ################################################################################ |
356 | ################################################################################ |
| 352 | |
357 | |
| 353 | # Several database are defined in the file conf/database.conf and stored in the |
358 | # Several database are defined in the file conf/database.conf and stored in the |
| 354 | # hash %dbLayouts. |
359 | # hash %dbLayouts. |
| 355 | include "conf/database.conf"; |
360 | include "conf/database.conf"; |
| … | |
… | |
| 408 | # The answer log stores a history of all users' submitted answers. |
413 | # The answer log stores a history of all users' submitted answers. |
| 409 | $courseFiles{logs}{answer_log} = "$courseDirs{logs}/answer_log"; |
414 | $courseFiles{logs}{answer_log} = "$courseDirs{logs}/answer_log"; |
| 410 | |
415 | |
| 411 | # Log logins. |
416 | # Log logins. |
| 412 | $courseFiles{logs}{login_log} = "$courseDirs{logs}/login.log"; |
417 | $courseFiles{logs}{login_log} = "$courseDirs{logs}/login.log"; |
|
|
418 | |
|
|
419 | # Log for almost every click. By default it is the empty string, which |
|
|
420 | # turns this log off. If you want it turned on, we suggest |
|
|
421 | # "$courseDirs{logs}/activity.log" |
|
|
422 | # When turned on, this log can get quite large. |
|
|
423 | $courseFiles{logs}{activity_log} = ''; |
| 413 | |
424 | |
| 414 | ################################################################################ |
425 | ################################################################################ |
| 415 | # Site defaults (FIXME: what other things could be "site defaults"?) |
426 | # Site defaults (FIXME: what other things could be "site defaults"?) |
| 416 | ################################################################################ |
427 | ################################################################################ |
| 417 | |
428 | |
| … | |
… | |
| 468 | # This lets you specify a minimum permission level needed to perform certain |
479 | # This lets you specify a minimum permission level needed to perform certain |
| 469 | # actions. For each pair in the hash below, in order to perform the action |
480 | # actions. For each pair in the hash below, in order to perform the action |
| 470 | # described by the key, the user must have a permission level greater than or |
481 | # described by the key, the user must have a permission level greater than or |
| 471 | # equal to the value. |
482 | # equal to the value. |
| 472 | |
483 | |
| 473 | my $guest = -1; |
484 | my $guest = -5; |
| 474 | my $student = 0; |
485 | my $student = 0; |
| 475 | my $proctor = 2; |
486 | my $proctor = 2; |
| 476 | my $ta = 5; |
487 | my $ta = 5; |
| 477 | my $professor = 10; |
488 | my $professor = 10; |
| 478 | my $nobody = undef; |
489 | my $nobody = undef; |
| … | |
… | |
| 512 | ##### Behavior of the interactive problem processor ##### |
523 | ##### Behavior of the interactive problem processor ##### |
| 513 | |
524 | |
| 514 | show_correct_answers_before_answer_date => $ta, |
525 | show_correct_answers_before_answer_date => $ta, |
| 515 | show_solutions_before_answer_date => $ta, |
526 | show_solutions_before_answer_date => $ta, |
| 516 | avoid_recording_answers => $ta, |
527 | avoid_recording_answers => $ta, |
|
|
528 | # Below this level, old answers are never initially shown |
|
|
529 | can_show_old_answers_by_default => $student, |
|
|
530 | # at this level, we look at showOldAnswers for default value |
|
|
531 | # even after the due date |
|
|
532 | can_always_use_show_old_answers_default => $professor, |
| 517 | check_answers_before_open_date => $ta, |
533 | check_answers_before_open_date => $ta, |
| 518 | check_answers_after_open_date_with_attempts => $ta, |
534 | check_answers_after_open_date_with_attempts => $ta, |
| 519 | check_answers_after_open_date_without_attempts => $guest, |
535 | check_answers_after_open_date_without_attempts => $guest, |
| 520 | check_answers_after_due_date => $guest, |
536 | check_answers_after_due_date => $guest, |
| 521 | check_answers_after_answer_date => $guest, |
537 | check_answers_after_answer_date => $guest, |
| … | |
… | |
| 531 | |
547 | |
| 532 | ##### Behavior of the Hardcopy Processor ##### |
548 | ##### Behavior of the Hardcopy Processor ##### |
| 533 | |
549 | |
| 534 | download_hardcopy_multiuser => $ta, |
550 | download_hardcopy_multiuser => $ta, |
| 535 | download_hardcopy_multiset => $ta, |
551 | download_hardcopy_multiset => $ta, |
|
|
552 | download_hardcopy_format_pdf => $guest, |
| 536 | download_hardcopy_format_tex => $ta, |
553 | download_hardcopy_format_tex => $ta, |
| 537 | ); |
554 | ); |
| 538 | |
555 | |
| 539 | ################################################################################ |
556 | ################################################################################ |
| 540 | # Session options |
557 | # Session options |
| … | |
… | |
| 675 | $pg{specialPGEnvironmentVars}{CAPA_GraphicsDirectory} = "$courseDirs{html}/CAPA_Graphics/", |
692 | $pg{specialPGEnvironmentVars}{CAPA_GraphicsDirectory} = "$courseDirs{html}/CAPA_Graphics/", |
| 676 | $pg{specialPGEnvironmentVars}{CAPA_Graphics_URL} = "$courseURLs{html}/CAPA_Graphics/", |
693 | $pg{specialPGEnvironmentVars}{CAPA_Graphics_URL} = "$courseURLs{html}/CAPA_Graphics/", |
| 677 | |
694 | |
| 678 | # Size in pixels of dynamically-generated images, i.e. graphs. |
695 | # Size in pixels of dynamically-generated images, i.e. graphs. |
| 679 | $pg{specialPGEnvironmentVars}{onTheFlyImageSize} = 400, |
696 | $pg{specialPGEnvironmentVars}{onTheFlyImageSize} = 400, |
|
|
697 | |
|
|
698 | # To activate Parser-based versions of num_cmp and fun_cmp, change this |
|
|
699 | # value to 0. |
|
|
700 | $pg{specialPGEnvironmentVars}{useOldAnswerMacros} = 1; |
|
|
701 | |
|
|
702 | # Strings to insert at the start and end of the body of a problem |
|
|
703 | # (at beginproblem() and ENDDOCUMENT) in various modes. More display modes |
|
|
704 | # can be added if different behaviours are desired (e.g., HTML_dpng, |
|
|
705 | # HTML_asciimath, etc.). These parts are not used in the Library browser. |
|
|
706 | |
|
|
707 | $pg{specialPGEnvironmentVars}{problemPreamble} = { TeX => '', HTML=> '' }; |
|
|
708 | $pg{specialPGEnvironmentVars}{problemPostamble} = { TeX => '', HTML=>'' }; |
|
|
709 | |
|
|
710 | # To have the problem body indented and boxed, uncomment: |
|
|
711 | |
|
|
712 | # $pg{specialPGEnvironmentVars}{problemPreamble}{HTML} = '<BLOCKQUOTE> |
|
|
713 | # <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=15 BGCOLOR=#E8E8E8><TR><TD>'; |
|
|
714 | # $pg{specialPGEnvironmentVars}{problemPostamble}{HTML} = '</TD></TR></TABLE> |
|
|
715 | # </BLOCKQUOTE>'; |
| 680 | |
716 | |
| 681 | ##### PG modules to load |
717 | ##### PG modules to load |
| 682 | |
718 | |
| 683 | # The first item of each list is the module to load. The remaining items are |
719 | # The first item of each list is the module to load. The remaining items are |
| 684 | # additional packages to import. |
720 | # additional packages to import. |
| … | |
… | |
| 708 | [qw(Regression)], |
744 | [qw(Regression)], |
| 709 | [qw(Select)], |
745 | [qw(Select)], |
| 710 | [qw(Units)], |
746 | [qw(Units)], |
| 711 | [qw(VectorField)], |
747 | [qw(VectorField)], |
| 712 | [qw(Parser Value)], |
748 | [qw(Parser Value)], |
|
|
749 | [qw(Parser::Legacy)], |
| 713 | [qw(Apache::Log)], |
750 | [qw(Apache::Log)], |
| 714 | ]; |
751 | ]; |
| 715 | |
752 | |
| 716 | ##### Answer evaluatior defaults |
753 | ##### Answer evaluatior defaults |
| 717 | |
754 | |