Compare commits

...

2126 Commits

Author SHA1 Message Date
moodler 2159765e74 Bumped 1.9.5 version for release 2009-05-13 06:55:11 +00:00
jerome f03f3a665a authentication MDL-18273 Custom Authentication Plugin title can be retrieved from specific language file 2009-05-13 05:35:37 +00:00
moodlerobot e15ed28787 Updated the 19 build version to 20090513 2009-05-13 00:36:53 +00:00
stronk7 b5fcbcf59c MDL-19163 restore - enable course selection for teachers having perms in more than 1 course 2009-05-12 14:53:45 +00:00
stronk7 de0caf4bda MDL-19161 - DB 2.0 reqs. Updated to fulfil 2.0 Roadmap 2009-05-12 09:27:57 +00:00
nicolasconnault 4985cbde0b MDL-8605 New script (web and CLI) for restoring user profile pictures that failed to move to the new folder during upgrade. 2009-05-12 07:46:08 +00:00
moodler 3c95dfea94 course/format/social MDL-18483 For social course format, print forum intro on course page 2009-05-12 05:09:28 +00:00
moodlerobot 2cfd5fd531 Updated the 19 build version to 20090512 2009-05-12 00:38:07 +00:00
fmarier 9c067299f6 MDL-19156: auth/fc: clarifying the licensing terms as per author's email 2009-05-11 23:38:44 +00:00
diml 989b0e64f1 MDL-16979 - protects update queries by setting a real value in $CFG->search_indexer_update_date 2009-05-11 19:58:58 +00:00
diml 67b98646eb addresses MDL-19154. May not fix every thing here... more tests in progress. 2009-05-11 19:52:13 +00:00
diml a9e79cb1d7 Fix MDL-19155 on glossary 2009-05-11 19:48:42 +00:00
stronk7 767904d06c MDL-16879 - check & fix mandatory mnet_host records and orphan users. Bump version to next int one. 2009-05-11 18:29:27 +00:00
stronk7 0a5bf56672 MDL-18547 mysql floats - only none/both params (length & decimals) syntax is
allowed. So, if decimals are missing, enforce 0 if length is defined.
2009-05-11 15:04:30 +00:00
nicolasconnault abf58c0272 MDL-7028 global $QTYPES is only available if lib/questionlib.php is included. 2009-05-11 06:31:58 +00:00
moodlerobot e51f717e51 Updated the 19 build version to 20090511 2009-05-11 00:37:11 +00:00
stronk7 f10af7b137 MDL-18746 get_user_courses_bycap() - avoid ambiguous (repeated) column names 2009-05-11 00:02:43 +00:00
stronk7 89c1fe8297 MDL-19084 - backup_course_silently() missing call to xxx__check_backup_mods()
causing quizzes to be incorrect (thanks Piers Harding) plus problems with users,
files and role assignments.
2009-05-10 23:16:06 +00:00
stronk7 61ac3a70dd MDL-15534 wiki special pages heading title. Apply ewiki_t() to get translated heading names 2009-05-10 15:27:34 +00:00
stronk7 eb1b491181 MDL-12618 restore events - delete some missed debug lines...oops 2009-05-10 14:38:34 +00:00
stronk7 9d73b7e3fc MDL-12618 restore events - apply cross-db sql_compare_text(). MSSQL & Oracle were broken here. 2009-05-10 14:35:19 +00:00
stronk7 972f7bb2f0 MDL-11144 - restore of mnet users. Another improvement... 2009-05-10 11:50:45 +00:00
skodak 4889610b11 MDL-19139 selectgroups formslib element improvements - 1/ does not validate if optgroup array empty 2/ add optional $showchoose parameter which adds "Choose..." as first item of list with empty value 2009-05-10 11:48:24 +00:00
stronk7 c07cb2e8bc MDL-17009 restore of mnet users - prevent any user using local host to end with mnet auth 2009-05-10 01:14:52 +00:00
moodlerobot c0e37117b2 Updated the 19 build version to 20090510 2009-05-10 00:37:23 +00:00
moodlerobot aa13521bf1 Automatic installer.php lang files by installer_builder (20090510) 2009-05-10 00:31:07 +00:00
fmarier 04da7fef54 MDL-19117 clarification to the license 2009-05-09 04:32:33 +00:00
stronk7 62082bebd0 MDL-16879 copy/paste double dollar fixed 2009-05-09 01:45:27 +00:00
stronk7 9499230085 MDL-16879 - fix mnet hosts. Tentative function. Not applied to upgrade yet. Please review. 2009-05-09 01:32:41 +00:00
moodlerobot 3556e43683 Updated the 19 build version to 20090509 2009-05-09 00:38:08 +00:00
skodak b8f2fd6a59 MDL-16957 explain why our htaccess is intentionally broken 2009-05-08 21:30:31 +00:00
skodak c5c5f5376c MDL-18311 fixed magic quotes trouble when moving courses 2009-05-08 21:05:18 +00:00
skodak b945888dca MDL-14831 adding warning - excluded grades are not compatible with sum agg; backported from HEAD 2009-05-08 20:08:53 +00:00
mjollnir_ e0eb5d21f5 fix for MDL-19110
Author: Adrian Schlegel <adrian@liip.ch>
2009-05-08 14:26:17 +00:00
nicolasconnault 2e14051ba0 MDL-19121 Not allowing negative values for droplow and keephigh: capping at 0 2009-05-08 13:29:32 +00:00
skodak adb6ccd946 MDL-19068 fixed item decimals before saving item 2009-05-08 13:17:45 +00:00
skodak 9346a8ff99 MDL-18476 fixed default guest role display hint 2009-05-08 12:22:59 +00:00
skodak fa952896a3 MDL-18704 fixed incorrect mnet logging 2009-05-08 12:15:34 +00:00
skodak c73705641f MDL-18869 fixed full name display 2009-05-08 12:07:00 +00:00
skodak bfe5f847b4 MDL-18492 it is not possible to do anything with moddata directory anymore - this is too dangerous for many people ;-) 2009-05-08 08:52:42 +00:00
moodler 10ac51efae theme/standard MDL-19082 Added a margin to standard theme on redirects page 2009-05-08 08:15:45 +00:00
skodak 623a81e19a MDL-18744 cas fix, credit goes to Thibault Le Meur 2009-05-08 07:53:11 +00:00
nicolasconnault feeb76097b MDL-18402 Put default value of 1 for grade item's aggregationcoef if parent category's aggregation is weighted mean. Put 0 for gradepass if field is empty, and 0 for grademin if left empty. This prevents SQL errors because all three fields (aggregationcoef, gradepass and grademin) are non-NULL. 2009-05-08 07:16:44 +00:00
nicolasconnault 79b4a87567 MDL-16416 Created a new help file including explanations of extra credit for both "Sum of Grades" and "Mean with extra credit" aggregation types. This is used on the "Edit categories and items" page. 2009-05-08 06:25:09 +00:00
moodlerobot 8166ff5358 Updated the 19 build version to 20090508 2009-05-08 00:37:15 +00:00
stronk7 56eece4e54 MDL-15690, MDL-16518 backup - include roles with overrides (not only with assignments). Credit goes to Clinton Graham. 2009-05-07 23:53:14 +00:00
gbateson 6f806335e0 when searhcing for urls of next quiz, remove requirement for navigation buttons to have class="NavButton" 2009-05-07 23:01:37 +00:00
stronk7 80fbfbb3f6 MDL-13826 link/file resource - check maximum length 2009-05-07 20:39:46 +00:00
stronk7 3be9556391 MDL-19112 choosecoursefile group element - pass specified attrs to text element 2009-05-07 20:29:16 +00:00
skodak 8f0a36a201 MDL-19111 fixed dimming of hidden until items 2009-05-07 17:38:10 +00:00
ericmerrill 1c077f6ad0 MDL-19092 Fixed the user login view, which was incomplete and broken on some browsers 2009-05-07 12:13:10 +00:00
skodak 156726fd07 MDL-2307 improved file name cleanup during unzip 2009-05-07 10:47:57 +00:00
nicolasconnault 0d21fc03a3 MDL-10201 Wrapping label text in a span instead of div, and giving it a class so that it can be found by hide/show AJAX code 2009-05-07 09:44:07 +00:00
nicolasconnault c373242b42 MDL-14412 Applied Michael's patches to fix ram/rm support in firefox 2009-05-07 08:55:50 +00:00
skodak fedfff27f5 MDL-19101 scale selection validated on category edit form 2009-05-07 08:47:26 +00:00
skodak 79143931ce MDL-19091 removed custom scales from different courses + added BC hack 2009-05-07 08:36:11 +00:00
nicolasconnault 0074ab9cef MDL-12444 Removed aggregationview preference from category edit form 2009-05-07 07:52:10 +00:00
skodak 2a200a31d0 MDL-19090 fixed user report preferences 2009-05-07 07:37:29 +00:00
skodak 48629ec809 MDL-19088 fixed category aggregation limitations 2009-05-07 07:18:36 +00:00
dongsheng 8dd6ca3a27 "MDL-18971, fixed .unread class definition" 2009-05-07 05:39:09 +00:00
dongsheng 7fbdd28395 "MDL-3729, use forces language for htmleditor" 2009-05-07 05:30:10 +00:00
fmarier 8a50f7d16b MDL-19096 include a copy of the GPL 2009-05-07 03:03:25 +00:00
moodlerobot 617d203373 Updated the 19 build version to 20090507 2009-05-07 00:36:52 +00:00
skodak a71482a737 MDL-19029 fixed validation problems 2009-05-06 18:50:20 +00:00
skodak 14e93d3cae MDL-19029 fixed validation problem in yui titles 2009-05-06 18:35:18 +00:00
skodak 69785be47a MDL-16915 fixed warnings caused by empty arrays in forum ratings 2009-05-06 18:13:29 +00:00
stronk7 7738dd48c5 MDL-14463 search/order - make it cross-db + delete unused column from query 2009-05-06 17:24:29 +00:00
skodak e8e23ffcc3 MDL-19036 fixed multiple SQL injections 2009-05-06 16:17:50 +00:00
skodak 9a71308057 MDL-18670 adding proper permissions for mkdir() 2009-05-06 16:10:14 +00:00
skodak 2e4dfb210e MDL-18757 using new addslashes_recursive() instead of old addslashes_object() which does not tollerate arrays, nulls, etc. 2009-05-06 15:53:52 +00:00
stronk7 8d73532067 MDL-18059 database rates - secured 2009-05-06 10:16:54 +00:00
stronk7 696018df63 MDL-18058 glossary rates - secured 2009-05-06 09:15:46 +00:00
skodak c7ad7da9c0 MDL-2307, MDL-18415 - improved unzipping - now properly removing forbidden chars and symlinks 2009-05-06 08:48:51 +00:00
moodlerobot 1701805b9e Updated the 19 build version to 20090506 2009-05-06 00:38:23 +00:00
moodlerobot 916dec711b Automatic installer.php lang files by installer_builder (20090506) 2009-05-06 00:32:00 +00:00
skodak 0af2efcf54 MDL-19029 added missing CDATA 2009-05-05 11:52:03 +00:00
skodak 5bac2c2848 MDL-19029 removed bogus feedback end span 2009-05-05 11:42:04 +00:00
stronk7 a4bb739b92 MDL-18799 backup of file.php links - now using unicode modifiers if allowed in the server 2009-05-05 09:25:59 +00:00
moodlerobot 9c536d5a9c Updated the 19 build version to 20090505 2009-05-05 00:38:33 +00:00
skodak 400688352e MDL-19009 cleanup - there is no CONTEXT_GROUP and pinned block context; backported from HEAD 2009-05-04 20:24:45 +00:00
skodak 45c3dd8fce MDL-18124 course creators can not delete any courses in their category any more, only those they created at most one day ago 2009-05-04 19:56:04 +00:00
skodak e67af80ed5 MDL-19052 separate group mode improvements and fixes 2009-05-04 13:14:17 +00:00
skodak cd669edcc1 MDL-19052 fixed separate group mode access on grader report 2009-05-04 13:12:09 +00:00
skodak 4f7ee1cdcc MDL-19052 separate group mode improvements and fixes 2009-05-04 12:54:37 +00:00
nicolasconnault 9f09bc9342 MDL-12444 Removed aggregationview preference from grader report 2009-05-04 12:26:19 +00:00
stronk7 95444f7b1d MDL-18227 forum ratings - clean wrong records 2009-05-04 08:11:15 +00:00
moodlerobot c22c551225 Updated the 19 build version to 20090504 2009-05-04 00:39:41 +00:00
moodlerobot ae47f3bde9 Updated the 19 build version to 20090503 2009-05-03 00:39:52 +00:00
moodlerobot 6ea3353c7c Updated the 19 build version to 20090502 2009-05-02 00:38:55 +00:00
tjhunt cb5c33b235 adminlib: MDL-19038 lazy-load the list of users in admin_setting_users_with_capability 2009-05-01 10:21:58 +00:00
dongsheng 551d425a88 "MDL-19037, use getremoteaddr to get remote ip address, backported from 2.0" 2009-05-01 08:06:08 +00:00
moodlerobot 0d5f1abbef Updated the 19 build version to 20090501 2009-05-01 00:39:29 +00:00
skodak 35d3f6b7d9 MDL-15801 fixed incorrect use of get complete user data function 2009-04-30 20:07:25 +00:00
skodak 5fcba158ce MDL-14561 fixed https issue in IE 2009-04-30 19:56:10 +00:00
skodak b1f45df9be MDL-18523 fixed notice when no cms present yet 2009-04-30 19:04:51 +00:00
skodak 03c4782e11 MDL-19029 fixed incorrect closing of divs on grader report 2009-04-30 10:35:04 +00:00
skodak e41ba841e0 MDL-19029 xhtml strict 2009-04-30 10:15:53 +00:00
skodak 3effcb29a1 MDL-19030 even uglier hack - do not try to add id to labels of static element - they do not have it 2009-04-30 10:08:37 +00:00
skodak fffe748c4c MDL-19030 very ugly hack - do not try to add id to labels of element group - they do not have it 2009-04-30 10:01:43 +00:00
skodak 2ead96df61 MDL-19030 fixed xhtml strictness when label attached to frozen element 2009-04-30 09:48:52 +00:00
skodak 5200e67665 MDL-18951 standardised group support in grader report - forgotten string 2009-04-30 09:16:13 +00:00
skodak 10cae68206 MDL-19016 xhtml strict fix; backported from HEAD 2009-04-30 09:15:13 +00:00
skodak 7234be25bb MDL-18951 standardised group support in grader report; backported from HEAD 2009-04-30 09:01:01 +00:00
nicolasconnault 580898921f MDL-19028 Hiding hidden category from student report instead of grade items. See code diff for better explanation 2009-04-30 08:39:45 +00:00
skodak 3bd8cfe4a3 MDL-18951 standardised group support in grader report (not complete yet); backported from HEAD 2009-04-30 08:08:14 +00:00
nicolasconnault 30911d519a MDL-19027 Added <th> for controls row in edit mode with screenreader and editing on 2009-04-30 07:04:53 +00:00
moodlerobot 25fcb7a520 Updated the 19 build version to 20090430 2009-04-30 00:38:00 +00:00
skodak 6da5a0db23 MDL-13722, MDL-12909 - idnumber required in xml grade export, if not present do not show user in export preview 2009-04-29 20:57:32 +00:00
skodak dd385043a6 MDL-16687 fixed incorrect sorting - thanks Philip Cali 2009-04-29 20:35:37 +00:00
skodak 1ee253d0ef MDL-17829 category edit page cleanup; backported from HEAD 2009-04-29 15:16:04 +00:00
skodak 719e210878 MDL-18991 proper locking of grade type and min/max when sum agg selected and other code cleanup; backported from HEAD 2009-04-29 15:04:44 +00:00
skodak 82a461040d MDL-19014 multiplicator and offset are used only for activity grades - must be disabled elsewhere; backported from HEAD 2009-04-29 14:44:05 +00:00
skodak db6f2bb775 MDL-19015 removed category item editing from normal item edit form; backported from HEAD 2009-04-29 14:36:02 +00:00
skodak f53d2cf806 MDL-19008 extra credis should not be dropped when drop low or keep high specified (including unit tests); backported from HAED and full regrading which is also needed for MDL-18993 2009-04-29 13:44:17 +00:00
skodak 3cee044c01 MDL-18993 implemented frull support for droplow and keephigh in sum aggregation type; backported from HEAD 2009-04-29 10:06:25 +00:00
nicolasconnault d13cf40879 MDL-18963 Applied Matt's patch. Thanks 2009-04-29 09:24:43 +00:00
skodak 309be30e7a MDL-18993 implemented frull support for droplow and keephigh in sum aggregation type; backported from HEAD 2009-04-29 08:55:45 +00:00
moodlerobot b2fe689814 Updated the 19 build version to 20090429 2009-04-29 00:39:46 +00:00
skodak 6f31d67743 MDL-19001 fixed sql typo - thanks Alan Trick 2009-04-28 18:50:12 +00:00
moodlerobot 081c26d41f Updated the 19 build version to 20090428 2009-04-28 00:42:30 +00:00
skodak 0ba3cbecca MDL-17248 fixed incorrect sum when scales involved 2009-04-27 15:20:14 +00:00
skodak bd2fb930a2 MDL-18987 fixed broken item editing when only one category present 2009-04-27 14:26:42 +00:00
skodak 50d3981988 MDL-16918 fixed deleting in csv import file - thanks Luis de Vasconcelos 2009-04-27 10:21:45 +00:00
skodak d7b3edf944 MDL-18985 improved group access control in gradebook exports; backported from HEAD 2009-04-27 08:52:39 +00:00
skodak 8ccb3b2440 MDL-18984 gradebook csv import group access control implemented; backported from HEAD 2009-04-27 08:47:54 +00:00
skodak e30fdc6c94 MDL-18325 one more pgl fix - thanks Richard Mansfield 2009-04-27 06:34:04 +00:00
moodlerobot e11bdd6ac7 Updated the 19 build version to 20090427 2009-04-27 00:36:51 +00:00
stronk7 156f59304e MDL-16824 messaging - move unread messages from deleted users to message_read.
Pending to commit changes to uploaduser.php. Credit goes to Anthony Borrow. Thanks!
2009-04-26 21:12:55 +00:00
moodlerobot 851c918d23 Updated the 19 build version to 20090426 2009-04-26 00:36:43 +00:00
stronk7 d8b837f9f2 MDL-18940 meta description in main page - render multilang summary properly 2009-04-25 21:18:24 +00:00
stronk7 2764745f48 MDL-18799 backup - fixed recently introduced regexp to be PHP 4.3.x compatible. 19_STABLE only. 2009-04-25 11:52:43 +00:00
nicolasconnault 228b3a13c6 MDL-18963 Applying Matt's patch to fix the YUI tooltips in the grader report 2009-04-25 06:52:14 +00:00
moodlerobot c4e8deecbb Updated the 19 build version to 20090425 2009-04-25 00:35:59 +00:00
skodak fa297173a7 MDL-18961, MDL-12942, MDL-18960 - added better extra credit upgrade, fixed potential problem with bogus coefs value for simple mean in current installs + finally fixed long standing "no course total" bug 2009-04-24 18:07:23 +00:00
skodak f2c7967ce5 MDL-18961 fixed warning during upgrade 2009-04-24 17:58:58 +00:00
skodak 4ea98f458e MDL-12942 new extra credit option for simple mean agg 2009-04-24 16:24:10 +00:00
nicolasconnault 0b3f171430 MDL-13579 Fixed an undefined variable ($course_value) 2009-04-24 09:04:53 +00:00
nicolasconnault 9937440935 MDL-18950 Not printing "move selected to" element if no grade category exists 2009-04-24 08:12:39 +00:00
nicolasconnault e40c5d4def MDL-18949 Move selector is now disabled unless at least one grade item is selected. 2009-04-24 07:49:30 +00:00
nicolasconnault 6627e36129 MDL-18942 Fixed user selector lang string 2009-04-24 07:26:02 +00:00
skodak 1e6e88f1fb MDL-18948 fixed handling of indexes when removing options 2009-04-24 07:14:16 +00:00
moodlerobot 9b729e076c Updated the 19 build version to 20090424 2009-04-24 00:36:37 +00:00
skodak 6e7b8954e9 MDL-18942 user selection and group support in gradebook user overview report 2009-04-23 20:28:35 +00:00
skodak 3ecb39e535 MDL-18943 xhtml strict - using class instead of repeated id attribute 2009-04-23 20:20:03 +00:00
skodak e0240136f5 MDL-18941 group support in user gradebook report 2009-04-23 19:26:36 +00:00
nicolasconnault ceb41f927c MDL-18419 Hiding export and import tabs from users who lack moodle/grade:export|import caps 2009-04-23 07:20:13 +00:00
nicolasconnault 3c01f1883c MDL-9306 Converting tabs to spaces 2009-04-23 06:50:48 +00:00
moodlerobot 48e8f83bc2 Updated the 19 build version to 20090423 2009-04-23 00:38:18 +00:00
skodak 8074fe4f8c MDL-18523 Only display the 'Synchronise legacy grades' button when necessary 2009-04-22 21:29:23 +00:00
skodak b50ff44a27 MDL-18930 fixed behaviour of dropdown menu selector in gradebook - the headings are not selectable again like the rest of moodle dropdowns 2009-04-22 20:53:21 +00:00
skodak 5b24f78751 MDL-18929 fixed double colons, in fact we stopped using colons long time ago 2009-04-22 20:04:41 +00:00
skodak 542288130f MDL-18933 Cannot assign default value to variable passed by reference 2009-04-22 20:01:07 +00:00
skodak d1c3e2b83c MDL-18932 PHP5 exceptions replaced with error() 2009-04-22 19:48:18 +00:00
uid536 45b80481ef MDL-18931 removed PHP5 syntaxt function()->function() 2009-04-22 19:45:03 +00:00
skodak 1d375abe68 MDL-18927 fixed performance regression 2009-04-22 19:39:54 +00:00
skodak 69472eef28 MDL-18928 removed unnecessary feedback from core gradebook function 2009-04-22 19:29:25 +00:00
skodak c160d5fe09 MDL-18926 readding deleted sum icon 2009-04-22 19:26:28 +00:00
nicolasconnault 432d2bade1 MDL-18083 Replaced php5 constructors with php4 style 2009-04-22 10:37:50 +00:00
nicolasconnault aa665d6353 MDL-18083 Bumping version number 2009-04-22 08:52:09 +00:00
nicolasconnault 86c651cc3d MDL-18083 Minor changes related to big gradebook patch. 2009-04-22 08:40:31 +00:00
nicolasconnault 1060c2164d MDL-18083 MDL-18228 MDL-17807 MDL-18004 Implemented fixed student column in grader report, mouseover tooltips over grade cells and new browser detection code in moodlelib. Also added new navigation code. 2009-04-22 08:40:03 +00:00
nicolasconnault 27e280b27c MDL-18083 MDL-18228 MDL-17807 Implemented fixed student column in grader report, mouseover tooltips over grade cells and new browser detection code in moodlelib. 2009-04-22 08:39:27 +00:00
nicolasconnault 28435cbcb6 MDL-18083 MDL-18004 MDL-17991
Facelife for user report. Also added new navigation code.
2009-04-22 08:37:21 +00:00
nicolasconnault ade7c41b90 MDL-18083 MDL-18004 MDL-17829
Combining grade item and category forms into one. Also added new navigation code.
2009-04-22 08:36:54 +00:00
nicolasconnault 5383ba0d43 MDL-18083 MDL-14961 MDL-15680 MDL-16913 New Edit Categories and Items interface with heaps of improvements. Replaces the original page. Also added a help string for the "synchronise legacy grades" button. 2009-04-22 08:36:22 +00:00
nicolasconnault 5f9b44089e MDL-18083 MDL-18004 MDL-12631 MDL-13417
Mainly changes related to new tab navigation in the gradebook. Outcomes report is also no longer visible if outcomes are disabled in the course/site.
2009-04-22 08:35:30 +00:00
nicolasconnault f32ee22655 MDL-18083 MDL-12380 MDL-14961 MDL-15680 MDL-16913 MDL-17991 MDL-18228 MDL-17807
New or improved lang strings for gradebook
2009-04-22 08:34:03 +00:00
nicolasconnault e7d8321f40 MDL-18083 MDL-18004 MDL-12380 Implementing new tab navigation in gradebook and grades over 100% 2009-04-22 08:31:56 +00:00
nicolasconnault c4b46d9a7e MDL-18083 MDL-17991 User report facelift, with more presentation options and better layout, similar to the new edit categories and items interface. 2009-04-22 08:31:16 +00:00
nicolasconnault 1dd40dc0d7 MDL-18083 MDL-17829
Combining grade item and category forms into one
2009-04-22 08:30:07 +00:00
nicolasconnault e4bfac7587 MDL-18083 MDL-15680 MDL-16913 New Edit Categories and Items interface with heaps of improvements. Replaces the original page. 2009-04-22 08:28:35 +00:00
nicolasconnault 9612e92185 MDL-18083 MDL-12380 MDL-18228 MDL-17807
Implementing grades over 100% in the grader report, new tab navigation, fixed student column and mouseover tooltips for grade cells.
2009-04-22 08:25:10 +00:00
nicolasconnault dc60ee9a74 MDL-18083 MDL-12380 MDL-15680 MDL-16913
Combining grade item and category forms into one, implementing grades over 100%, and patches for correct aggregation.
2009-04-22 08:23:30 +00:00
nicolasconnault 3c9c3aa722 MDL-18083 MDL-12380 Implementing grades over 100% for the gradebook 2009-04-22 08:21:49 +00:00
nicolasconnault 68f82f804c MDL-18083 MDL-18004 Implementing new tab navigation in gradebook. 2009-04-22 08:20:20 +00:00
moodlerobot 90260a3a2a Updated the 19 build version to 20090422 2009-04-22 00:46:06 +00:00
stronk7 05105cbe47 MDLSITE-545 MDL-18024 - reaplying incorrectly reverted fix 2009-04-21 14:13:15 +00:00
moodlerobot 3b5ff77414 Updated the 19 build version to 20090421 2009-04-21 00:38:05 +00:00
stronk7 e4043b37d8 MDL-18893 TeX filter - fine tune "def" commands + add some more commands to blacklist (from Kopete).
Thanks to Mauno Korpelainen and Steve Mayer
2009-04-20 21:24:00 +00:00
tjhunt c8c1f2f3ac category paths: MDL-18897 call fix_course_sortorder eveywhere we insert a category to set category.path and .depth 2009-04-20 05:59:17 +00:00
moodlerobot 43cf71ebc0 Updated the 19 build version to 20090420 2009-04-20 00:34:27 +00:00
gbateson 903c830041 MDL-18880: only insert media players for swf URLs if $CFG->filter_mediaplugin_enable_swf is set 2009-04-19 23:53:47 +00:00
moodlerobot 581e0d7ac4 Updated the 19 build version to 20090419 2009-04-19 00:34:53 +00:00
moodlerobot b994941167 Updated the 19 build version to 20090418 2009-04-18 00:35:26 +00:00
stronk7 6483c5b005 MDL-18799 backup & restore - improve file.php handling by using neutral syntax to support any slasharguments combination 2009-04-17 23:42:01 +00:00
gbateson 66a2d3b1fc MDL-17426: removing superflous link to "Selecting a report" 2009-04-17 02:24:23 +00:00
gbateson beef81db81 MDL-18883: fix setting of absolute urls for images in subfolders of course files 2009-04-17 01:50:11 +00:00
moodlerobot 64895b6a85 Updated the 19 build version to 20090417 2009-04-17 00:36:57 +00:00
skodak 36560de1bf MDL-18875 no PHP5 syntax in 1.9.x yet 2009-04-16 06:27:37 +00:00
tjhunt d1a83777f9 quiz editing: MDL-18871 logic was backwards for deciding whether to show the 'This quiz is not graded, so you cannot set overall feedback that differs by grade' warning introduced in MDL-18583. 2009-04-16 03:12:20 +00:00
moodlerobot 342f26f5a7 Updated the 19 build version to 20090416 2009-04-16 00:36:25 +00:00
moodlerobot 96d5e696d6 Automatic installer.php lang files by installer_builder (20090416) 2009-04-16 00:29:51 +00:00
dongsheng 9ff8c54b52 "MDL-18540, add 512 mo options to extramemeorylimit" 2009-04-15 03:52:18 +00:00
danmarsden 5828d143d4 MDL-18818 - don't define var if already defined - happens when these functions are called more than once at a time. merged from HEAD 2009-04-15 02:18:04 +00:00
moodlerobot b486ed5604 Updated the 19 build version to 20090415 2009-04-15 00:38:49 +00:00
moodlerobot c669f4025d Automatic installer.php lang files by installer_builder (20090415) 2009-04-15 00:31:55 +00:00
moodlerobot 2802a8eb01 Updated the 19 build version to 20090414 2009-04-14 00:45:26 +00:00
moodlerobot abe7973a9a Updated the 19 build version to 20090413 2009-04-13 00:44:04 +00:00
moodlerobot 704926310d Updated the 19 build version to 20090412 2009-04-12 01:05:30 +00:00
moodlerobot d756a3ef79 Updated the 19 build version to 20090411 2009-04-11 00:35:33 +00:00
moodlerobot fc431a5a19 Automatic installer.php lang files by installer_builder (20090411) 2009-04-11 00:28:22 +00:00
moodlerobot 89af1a706a Updated the 19 build version to 20090410 2009-04-10 00:35:03 +00:00
nicolasconnault 4d07f1c87e MDL-17273 Added a back button to the error message and fixed missing handling of "custom" scope 2009-04-09 12:26:11 +00:00
skodak dec816756a MDL-18820 add module_is_moddata_trusted() callback to file.php (improved anti XSS protection for contrib modules); HEAD already has this feature - fixed silly typo 2009-04-09 11:19:50 +00:00
skodak 676e4d4569 MDL-18820 add module_is_moddata_trusted() callback to file.php (improved anti XSS protection for contrib modules); HEAD already has this feature 2009-04-09 09:30:31 +00:00
skodak eb24292dee MDL-18338 option for hiding of groups in user profile; backported from HEAD 2009-04-09 08:30:10 +00:00
skodak 66f303360d MDL-13843 user profile in separate group mode even if group mode not forced course-wide (improved consistency in groups at course level) 2009-04-09 08:23:32 +00:00
skodak 9ed386b6cf MDL-13843 treat default course grouping as current grouping at course level (groupmode is used the same way at course level) 2009-04-09 08:16:47 +00:00
skodak a51fb7e9ba MDL-13843 user participation in separate group mode even if group mode not forced course-wide (improved consistency in groups at course level); backported from HEAD 2009-04-09 07:59:11 +00:00
moodlerobot c194163564 Updated the 19 build version to 20090409 2009-04-09 00:35:09 +00:00
moodlerobot 6524c910da Automatic installer.php lang files by installer_builder (20090409) 2009-04-09 00:28:49 +00:00
moodlerobot 4c92d180ac Updated the 19 build version to 20090408 2009-04-08 00:35:12 +00:00
moodlerobot 8a945601b3 Automatic installer.php lang files by installer_builder (20090408) 2009-04-08 00:28:39 +00:00
arborrow 5bb0cd916d MDL-16798 - add continue buttons to role assignment page to avoid "deadend" 2009-04-07 23:48:00 +00:00
skodak 31a8cf8e83 MDL-13224 fixed coding style; backported from HEAD 2009-04-07 07:46:25 +00:00
moodlerobot 7e3fdfdb0e Updated the 19 build version to 20090407 2009-04-07 00:36:32 +00:00
sam_marshall 786eed65f9 MDL-18768: Limited size of context and modinfo caches to avoid memory problems with code that loops through many courses, also changed forum role_assign to use recordset for all-courses loops 2009-04-06 09:49:40 +00:00
peterbulmer 6d305e4f73 MDL-15942 - missing patch 2009-04-06 06:37:43 +00:00
peterbulmer 55ea2fb983 MDL-18414 change sql query syntax
Author: Peter Bulmer <peter.bulmer@catalyst.net.nz>
2009-04-06 06:21:27 +00:00
peterbulmer 79b35f3866 MDL-18413 limit length of coursedata strings before trying to store them in the db
Author: Peter Bulmer <peter.bulmer@catalyst.net.nz>
2009-04-06 06:19:47 +00:00
arborrow fd13e4f162 typo - reponse instead of response 2009-04-06 03:44:13 +00:00
tjhunt f5187943c0 fomslib: MDL-18735 disabledif not working in IE if depended on element was a <select>.
This was a regression from MDL-18522. Sorry.
2009-04-06 02:56:25 +00:00
tjhunt 579c4bc033 shortanswer qtype: Add the problem case from http://moodle.org/mod/forum/discuss.php?d=120557 to the unit tests. 2009-04-06 02:03:05 +00:00
moodlerobot 7727d7a558 Updated the 19 build version to 20090406 2009-04-06 00:36:01 +00:00
skodak 03acab4231 MDL-18384 better symlink support, do not recurse symlinks when deleting - patch by Matt Oquist, thanks 2009-04-05 20:55:55 +00:00
skodak 814783b478 MDL-18771 fixed db quoting 2009-04-05 20:26:21 +00:00
skodak bb6c8de31f MDL-18772 fixed aut oupdating of grademax for SUM aggregation type; backported from HEAD 2009-04-05 20:17:38 +00:00
skodak 265859b120 MDL-18778 more robust reset form defaults; backported from HEAD 2009-04-05 19:33:02 +00:00
skodak d370403233 MDL-18785 configurable FRONTPAGECOURSELIMIT ; backported from HEAD 2009-04-05 19:21:12 +00:00
arborrow e04abdba8b typo - missinf instead of missing 2009-04-05 05:16:08 +00:00
moodlerobot fd9e47f7c9 Updated the 19 build version to 20090405 2009-04-05 00:35:11 +00:00
moodlerobot 645574ae9c Updated the 19 build version to 20090404 2009-04-04 00:32:29 +00:00
sam_marshall e04544af60 MDL-18094: course/viewhiddenactivities didn't work (in some parts of the code) at module level 2009-04-03 13:11:43 +00:00
nicolasconnault b540ebdc82 MDL-17272 1. Hiding the outcomes menu from admin tree 2009-04-03 08:04:52 +00:00
moodlerobot 28f148f63c Updated the 19 build version to 20090403 2009-04-03 00:35:30 +00:00
moodlerobot 2767262c21 Automatic installer.php lang files by installer_builder (20090403) 2009-04-03 00:29:02 +00:00
fmarier b8b118b322 html2text: MDL-17542 switch to a GPL-compatible html2text library 2009-04-02 23:00:12 +00:00
sam_marshall 04e43cfc7e MDL-18094: course/viewhiddenactivities didn't work (in some parts of the code) at module level 2009-04-02 16:32:37 +00:00
nicolasconnault 71bf0e07aa MDL-17273 Preventing import of corrupted csv files 2009-04-02 12:37:59 +00:00
nicolasconnault 67f381e4d3 MDL-17273 Preventing import of corrupted csv files 2009-04-02 12:35:06 +00:00
dongsheng e9c5d87a17 "MDL-13224, language string for mymoodle options" 2009-04-02 03:31:30 +00:00
dongsheng f868465f02 "MDL-13224, convert type of courses limit, everything coming from database is string" 2009-04-02 02:49:10 +00:00
moodlerobot b546e97106 Updated the 19 build version to 20090402 2009-04-02 00:34:21 +00:00
moodlerobot 2e2a9ec02c Automatic installer.php lang files by installer_builder (20090402) 2009-04-02 00:28:03 +00:00
skodak 88b119010d MDL-18769 PHP5ism not allowed in 1.9 2009-04-01 15:48:57 +00:00
dongsheng e7b98680d7 "MDL-13224, select how many courses can be shown in mymoodle page, backported from 2.0" 2009-04-01 07:39:42 +00:00
moodlerobot aa96913f3c Updated the 19 build version to 20090401 2009-04-01 00:34:25 +00:00
diml df859bc818 MDL-18474 - fix include link better... before tagging MERGED. 2009-03-31 23:17:09 +00:00
skodak b950f12601 MDL-18552 different TeX trouble fix; backported from HEAD 2009-03-31 10:23:53 +00:00
tjhunt 2f4ec8a0a7 MDL-15484 Avoid JavaScript errors after a popup has been blocked.
Also clean up coding style of some nearby functions.
2009-03-31 03:24:15 +00:00
moodlerobot 3682b74272 Updated the 19 build version to 20090331 2009-03-31 00:37:15 +00:00
skodak 5a966b8089 MDL-18540 undoing regression in last commit, sorrry - thanks Eloy 2009-03-30 17:34:56 +00:00
skodak 898be4fbdb MDL-18540 fixing "extra" memory strings; backported from HEAD 2009-03-30 17:10:00 +00:00
dongsheng f60ff51cac "MDL-18540, change the uses of option" 2009-03-30 10:04:57 +00:00
dongsheng 83e55afa36 "MDL-18540, change option name to extramemorylimit" 2009-03-30 09:36:52 +00:00
dongsheng 4113a8d05d "MDL-18540, use admin_setting_configselect to set option" 2009-03-30 09:17:05 +00:00
tjhunt d547bb0bd0 qtypes: MDL-18711 Allow qtype plugins to have custom CSS and JavaScript on the editing page. 2009-03-30 09:15:37 +00:00
gbateson cd0de43baf when search for media players, remove requirment for <object> tag to contain a space, and make closing </A> tag lowercase 2009-03-30 07:02:23 +00:00
dongsheng 3fca7144ca "MDL-18540, fixed default value of memorylimit" 2009-03-30 04:42:26 +00:00
moodlerobot 22de2a9020 Updated the 19 build version to 20090330 2009-03-30 00:41:39 +00:00
moodlerobot bc4fb0c278 Updated the 19 build version to 20090329 2009-03-29 00:37:17 +00:00
moodlerobot dff2a97ab1 Updated the 19 build version to 20090328 2009-03-27 23:34:47 +00:00
moodlerobot f2234e611d Automatic installer.php lang files by installer_builder (20090328) 2009-03-27 23:28:31 +00:00
fmarier 19a9e4f2fa mod/resource: MDL-18691 allow custom resource types to specify their name in their own lang directory
Before this change, the full name of the resource type had to be stored in the "resource" namespace (for example in /mod/resource/lang/en_utf8/resource.php).

Now it can be put in the "resource_foo" namespace:

e.g. in /mod/resource/type/foo/lang/en_utf8/resource_foo.php:

<?php
  $string['resourcetypefoo'] = 'Link to a Foo Bar document';
?>
2009-03-27 03:20:13 +00:00
danmarsden abe16888de SCORM MDL-18626 - fix SCORM navigation breadcrumbs merged from HEAD 2009-03-27 01:48:14 +00:00
moodlerobot 2788e588fe Updated the 19 build version to 20090327 2009-03-26 23:35:54 +00:00
stronk7 7ed8fad35b MDL-18552 TeX filter - add string 2009-03-26 21:32:34 +00:00
danmarsden 067b054260 Choice MDL-18600 fix sort to be sorted by surname,firstname - thanks to Mihai Sucan for the fix merged from HEAD 2009-03-26 21:24:07 +00:00
skodak 52c28ff98a MDL-18313 - fixed admin count on security overview report - finally! 2009-03-26 20:59:31 +00:00
danmarsden d9c0d727d7 AICC MDL-18702 Completion Logic incorrect - thanks to Martin Holden for the fix! merged from HEAD 2009-03-26 20:23:43 +00:00
skodak 31c8f5ebaa MDL-18676 auth plugins should run before enrol because it may create new users - proposed by Jason Hardin; backported from HEAD 2009-03-26 19:56:25 +00:00
stronk7 35a8b3cfac MDL-18552 TeX filter - blacklist unsecure commands + protect texdebug 2009-03-26 19:06:29 +00:00
dongsheng 88906bf330 "MDL-17966, fixed installation blocker" 2009-03-26 13:17:56 +00:00
tjhunt 823ebe16cc local lang: MDL-13001 perf improvement: only searches extra folders if $module == 'local'
Will merge to HEAD later, as part of MDL-18669
2009-03-26 09:00:15 +00:00
dongsheng 1a5a1c0e6c "ADMINLIB/MDL-17966, overwrite write_setting to update settings instead execute sql execute in get_settings, this will not hurt performance" 2009-03-26 08:50:50 +00:00
tjhunt 6042285796 questions: unit tests for default_questiontype::compare_responses. 2009-03-26 08:42:18 +00:00
dongsheng ea718748b8 "ADMINLIB/MDL-17966, update after writing settings" 2009-03-26 02:32:45 +00:00
dongsheng fec5c0cf5f "ADMINLIB/MDL-17966, update after writing settings" 2009-03-26 02:24:00 +00:00
dongsheng 28d02ef39e "MEMORY/MDL-18540,remove hard-coded php memory limit, added system setting for it, create a function reduce_memory_limit to reduce memroy limit and respect php.ini setting in the meanwhile" 2009-03-26 01:43:08 +00:00
dongsheng 307b92632b "MEMORY/MDL-18540,remove hard-coded php memory limit, added system setting for it, create a function reduce_memory_limit to reduce memroy limit and respect php.ini setting in the meanwhile" 2009-03-26 01:36:16 +00:00
moodlerobot dfabc486c9 Updated the 19 build version to 20090326 2009-03-25 23:34:38 +00:00
diml c2b308cfc0 MDL-18672 and MDL-18679 fixed. DIRECTORY_SEPARATOR / PATH_SEPARATOR mismatch 2009-03-25 21:27:37 +00:00
diml 191e741060 MDL-18672 and MDL-18679 fixed. DIRECTORY_SEPARATOR / PATH_SEPARATOR mismatch 2009-03-25 21:21:21 +00:00
poltawski fdb5bf270e Fix 'progile' typo MDL-18312 2009-03-25 09:45:43 +00:00
poltawski 826cedfd54 Fix 'drow-down' typo MDL-18320 2009-03-25 09:42:25 +00:00
poltawski e46fe67177 lib/moodlelib.php MDL-18406 - use more robust require path
thanks to Daniel Neis
2009-03-25 09:37:57 +00:00
poltawski d27ab8aa93 documentation/workshop MDL-2605 - bad helpfile link 2009-03-25 09:30:56 +00:00
poltawski df2415e85f lib/email_to_user MDL-10384 Recipeint names broken
When emailcharset is not utf8 the charset conversion was breaking
recipient/replyto names

thanks to Tatsuya Shirai
2009-03-25 09:16:33 +00:00
tjhunt 5df04607be accesslib: MDL-18604 you should never be allowed to switch to a role with moodle/site:doanything.
Further logic correction.
2009-03-25 02:37:27 +00:00
dongsheng da9429c8e6 "DATA/MDL-18136, change to moodle coding style" 2009-03-25 01:46:58 +00:00
tjhunt 9658298c2e accesslib: MDL-18604 you should never be allowed to switch to a role with moodle/site:doanything.
The SQL in get_assignable_roles_for_switchrole was wrong.
2009-03-25 01:41:05 +00:00
moodlerobot 45f782d7c7 Updated the 19 build version to 20090325 2009-03-24 23:33:46 +00:00
skodak 9709ffccc9 MDL-17966 reverting previous commit, solution proposed in tracker 2009-03-24 11:00:25 +00:00
thepurpleblob e5dbb5ea88 MDL-18542
Finally committing one line patch for bug. Sigh :-)
2009-03-24 10:38:59 +00:00
thepurpleblob 0326d0e6f7 MDL-18542:
Replacing another (intermediate) fix.
2009-03-24 10:33:54 +00:00
moodlerobot e56c4c0027 Updated the 19 build version to 20090324 2009-03-23 23:34:28 +00:00
diml 5d4d1af5d7 Addresses MDL-18474 (global search should use of PATH_SEPARATOR) 2009-03-23 21:55:39 +00:00
diml f891b69aec Addresses MDL-18638 (Search code does not follow coding guidelines) and MDL-18474 (global search should use of PATH_SEPARATOR) 2009-03-23 21:54:42 +00:00
thepurpleblob 0f899b0cc3 Whoops... missed Tim's edit. 2009-03-23 21:46:38 +00:00
thepurpleblob 0471947593 Reverting changes in MDL-18542 2009-03-23 21:34:31 +00:00
thepurpleblob 0791d2fbb5 Reverting changes in MDL-18542 (some more to do in fields, but this should
un-break it). Checkbox error still extant.
2009-03-23 21:22:52 +00:00
mudrd8mz 654e003982 MDL-18644 Add a note about the bug found and upstream bug link. Backported from HEAD 2009-03-23 10:56:42 +00:00
mudrd8mz f847d9f546 MDL-18644 Both if and else end with return therefore another return afterwards is
obsolete. Also, "return true" at top of the function renders all the
following code useless
2009-03-23 09:47:45 +00:00
mudrd8mz 68a3d81779 MDL-18644 Variables used without $-prefix 2009-03-23 09:47:30 +00:00
mudrd8mz bd294d2986 MDL-18644 Function name must be enclosed in quotes 2009-03-23 09:46:18 +00:00
mudrd8mz e24a45df3f MDL-18644 Invalid assignment instead of comparation
Should be checked and reported upstream, too
2009-03-23 09:45:57 +00:00
mudrd8mz 6f49985bb8 MDL-18644 Both if and else end with return therefore another return afterwards is
obsolete
2009-03-23 09:45:42 +00:00
mudrd8mz 5a1655832f MDL-18644 Variable used without $-prefix 2009-03-23 09:44:52 +00:00
nicolasconnault 26c2f68336 MDL-18402 Reverting aggregationcoef default 2009-03-23 08:33:53 +00:00
dongsheng 1fcf706f09 "DATA/MDL-14818, fix checkbox options cannot dispaly properly in search form" 2009-03-23 05:38:02 +00:00
tjhunt 8871d7f463 quiz: MDL-18635 log every single hit to mod/quiz/attempts.php
I don't know why the quiz only logged every 10 minutes. No other part of Moodle worked like that. However, it has always been like that and I did not have a good reason to change it until now.

What was a problem becuase it made it harder to catch people doing a primitive DOS attack against the server by hitting Reload repeatedly.
2009-03-23 01:59:18 +00:00
moodlerobot 912481e00d Updated the 19 build version to 20090323 2009-03-22 23:42:19 +00:00
moodlerobot bbaec83b08 Automatic installer.php lang files by installer_builder (20090323) 2009-03-22 23:34:11 +00:00
poltawski acb1e9fc07 Messages block: Incorrect link to user profile
The block incorrectly links to site profile in the current pageid.
This doens't make sense in a number of different scenarios, but
most notably if the user who messaged isn't enrolled in the current
course. Instead link to the profile at site context like the messaging
popup does.

Fixes: MDL-18279 MDL-6890 MDL-5887
2009-03-22 22:39:40 +00:00
moodlerobot 57a049c4b5 Updated the 19 build version to 20090322 2009-03-21 23:38:36 +00:00
moodlerobot 533f83552c Updated the 19 build version to 20090321 2009-03-20 23:40:58 +00:00
poltawski 2867af6a5b mod/forum - invalid html in q&a forum MDL-18305
thanks to Neil Streeter for the patch
2009-03-20 13:38:27 +00:00
stronk7 cc18654ce9 MDL-15748 get_user_access_sitewide() - reduce looking for perms in any context below category level.
Dramatic speed-up in sites with zillions of contexts and overrides. Credit goes to Samuli Karevaara.
2009-03-20 12:01:38 +00:00
thepurpleblob 5e7932a38f MDL-18542:
Aaargh... yet another one missed. Hopefully that's it.
2009-03-20 11:35:03 +00:00
moodlerobot 19902c841f Updated the 19 build version to 20090320 2009-03-19 23:35:10 +00:00
moodlerobot edeb99025b Automatic installer.php lang files by installer_builder (20090320) 2009-03-19 23:28:38 +00:00
thepurpleblob d831f2bd37 MDL-18542:
Missed the format field for textarea.
2009-03-19 21:15:57 +00:00
thepurpleblob e04eb3c786 MDL-18542:
Correctly deals with field types that have multiple parts (e.g. data and lat/long)
Thanks to Eloy for spotting this.
2009-03-19 20:39:45 +00:00
stronk7 1316b059c9 MDL-18594 restore check - skip maintenance.html file on restore of sie files. Credit goes to Juan Segarra. 2009-03-19 14:43:25 +00:00
poltawski 776e168943 email_to_user: MDL-16328 - prevent empty receeipent address
Be a bit defensive as it seems to be possible for this to happen
with LDAP auth
2009-03-19 10:33:49 +00:00
moodlerobot 97e5e34231 Updated the 19 build version to 20090319 2009-03-18 23:35:43 +00:00
danmarsden 2538f34611 MDL-18564 choice - fix grammar - thanks to Ray Lawrence for the report merged from HEAD 2009-03-18 23:05:09 +00:00
sam_marshall a6b72a94d7 MDL-18582: Made config.php consistently require_once 2009-03-18 14:19:21 +00:00
sam_marshall 5a84b468c7 MDL-18582: Made config.php consistently require_once 2009-03-18 14:08:32 +00:00
exe-cutor f21a6c674c MDL-18597 Various code improvements, new logout return url config option and better instructions regarding Shibboleth logout 2009-03-18 13:26:31 +00:00
exe-cutor c7904acb92 MDL-18597: Added language strings for auth_shib_logout_return_url 2009-03-18 13:18:10 +00:00
thepurpleblob 4a093d5096 MDL-18579:
Provide nicer message if 'Stop on error' is selected and errors are found.
2009-03-18 11:14:17 +00:00
tjhunt 2b808f03b8 quiz settings: MDL-18583 When a quiz has no grade, make it clear that you can only enter one lot of overall feedback.
When the maximum grade for the quiz is 0, we disable all the overall feedback form controls except for the first, and display an explanitory message.
2009-03-18 07:34:04 +00:00
tjhunt 5636aa5494 formslib: MDL-15827 disabledif option to repeat_elements did not work if you depend on another repeated element.
Patch thanks to Matthieu Nué.
2009-03-18 07:08:25 +00:00
tjhunt a756e41f9f question bank: MDL-18531 Sorry, capability name typo. 2009-03-18 05:34:03 +00:00
tjhunt 73fc1a1820 quiz outline report: MDL-18285 Show regrade date, not last attempt date.
I also took the opportunity to clean up the code a bit.
2009-03-18 05:16:42 +00:00
tjhunt 0c34967646 question bank: MDL-18531 actually, moodle/question:use would be a better capabilty to check than moodle/question:add. 2009-03-18 05:01:54 +00:00
tjhunt e299d01687 formslib disabledif: MDL-18522 make it work if either end of a disabledif relationship is a set of radio buttons.
Backport from HEAD to 1.9 stable.
2009-03-18 04:46:52 +00:00
tjhunt 2113a65fdd question bank: MDL-18531 if someone can add questions in the quiz context, but no the course context, choose a more sensible default category in the question bank. 2009-03-18 04:45:47 +00:00
moodlerobot f0fbafe9d9 Updated the 19 build version to 20090318 2009-03-17 23:38:44 +00:00
moodlerobot 5ea5f1052c Automatic installer.php lang files by installer_builder (20090318) 2009-03-17 23:31:00 +00:00
mark-nielsen 589358b7f3 shortanswer grading: MDL-18347 shortanswer was not grading correctly with custom scoring set to No 2009-03-17 16:24:47 +00:00
tjhunt f40fb532d8 database mod: XHTML strict! 2009-03-17 04:28:52 +00:00
tjhunt 7fc3fa77d7 database mod: XHTML strict! 2009-03-17 04:22:55 +00:00
moodlerobot 70d00ab90b Updated the 19 build version to 20090317 2009-03-16 23:35:31 +00:00
stronk7 22973ebf85 MDL-18576 timezones - info updated to tzdata2009c 2009-03-16 17:53:55 +00:00
thepurpleblob 0479b1aa14 MDL-18567:
Check for (boolean) false coming back from database instead of real data
2009-03-16 16:35:44 +00:00
thepurpleblob 20538060c3 MDL-18542
Can now uncheck checkboxes and have them stored correctly.
2009-03-16 15:35:48 +00:00
thepurpleblob 80fe7b9ef7 MDL-18555:
Adding better handling for unsupported question types.
2009-03-16 14:19:46 +00:00
thepurpleblob 7d8f12b630 MDL-18390:
Now looks up the questiontype name correctly.
2009-03-16 13:43:19 +00:00
tjhunt d3c7da5741 qtypes: MDL-18559 questions showing penalty information when they shouldn't.
We had a !== when it should have been !=, and our constants were defined as strings not ints. This problem has been there since forever, but no one had noticed before. Thanks to Alan Trick for finally spotting it!
2009-03-16 01:52:24 +00:00
gbateson a1e836ace4 force Moodle gradebook grades to be recalculated when HotPot grade method is changed: http://moodle.org/mod/forum/discuss.php?d=117691 2009-03-16 01:46:54 +00:00
Francois Marier 10ec29097f Fix CVS-git drift 2009-03-15 23:33:21 +00:00
moodlerobot ee8d4be64f Updated the 19 build version to 20090316 2009-03-15 23:33:21 +00:00
skodak 772230543b MDL-18265 fixed regression in menu field - discovered and patched by Vlas Voloshin, thanks! 2009-03-15 13:43:28 +00:00
moodlerobot f6de7336d1 Updated the 19 build version to 20090315 2009-03-14 23:37:46 +00:00
moodlerobot aa6ab4e614 Automatic installer.php lang files by installer_builder (20090315) 2009-03-14 23:31:24 +00:00
diml 6e1f85a7a8 Changing PATH_SEPARATOR - Fixing MDL-18474 2009-03-14 10:25:57 +00:00
moodlerobot f9d9e0e512 Updated the 19 build version to 20090314 2009-03-13 23:33:47 +00:00
moodlerobot 9740b1b449 Updated the 19 build version to 20090313 2009-03-12 23:34:27 +00:00
stronk7 312fc573c7 MDL-18482 restore skipping non selected activities. 2009-03-12 23:14:11 +00:00
stronk7 e3cc7cfd7c MDL-18543 restore of role assignments / overrides - skip non-restored contexts. 2009-03-12 22:20:44 +00:00
stronk7 b890fdaed4 MDL-18541 replace script - now also replaces within well known html blocks. 2009-03-12 19:02:08 +00:00
stronk7 acfc17d452 Delete one non-critical-but-unnecessary trailing semicolon 2009-03-12 18:09:26 +00:00
exe-cutor 37934e4996 Shibboleth authentication: Fixed bug MDL-18538 that overwrites alternateloginurl when Shibboleth authentication settings are saved 2009-03-12 15:06:07 +00:00
thepurpleblob 7b1476eb6d MDL-18535:
Adding checks for field name mismatches and "proper" error messages.
2009-03-12 14:38:09 +00:00
moodlerobot c1d77cb923 Updated the 19 build version to 20090312 2009-03-11 23:34:44 +00:00
danmarsden 6e5eaf55b9 MDL-18519 SCORM remove rubbish from locallib.php 2009-03-11 20:25:04 +00:00
thepurpleblob 4e334e2d89 MDL-18390 - now correctly looks up name of questiontype from language pack 2009-03-11 13:15:32 +00:00
stronk7 3ab60a5351 MDL-18518 user firstaccess - forgot to commit lang string. 2009-03-11 10:35:57 +00:00
stronk7 6b31e49438 MDL-18518 user firstaccess - added suport to display user->firstaccess. Credit goes to Anthony Borrow! 2009-03-11 10:34:56 +00:00
dongsheng ec6270acb8 "DATA/MDL-18024, use rid instead page to comment a record" 2009-03-11 05:31:02 +00:00
danmarsden 73c0691713 MDL-18412 typo - remove bad code that hid the real issue 2009-03-11 04:48:59 +00:00
dongsheng 08888c21c6 "DATA/MDL-18136, fix pagination in data mod" 2009-03-11 04:19:57 +00:00
dongsheng 2c0838a960 "ADMINLIB/MDL-17966, display changes saved in admin page" 2009-03-11 02:40:56 +00:00
dongsheng 03d0e079c7 "CHAT/MDL-14949, remove mod/chat:talk capability and check chat and readlog capabilities respectively" 2009-03-11 02:21:45 +00:00
danmarsden aab2a31c11 MDL-18460 - SCORM Report - remove duplicated header - thanks Vlas Voloshin for the report. - merged from HEAD 2009-03-11 01:18:41 +00:00
moodlerobot 3216e3bcdf Updated the 19 build version to 20090311 2009-03-10 23:33:56 +00:00
moodlerobot 40ffadedca Automatic installer.php lang files by installer_builder (20090311) 2009-03-10 23:27:42 +00:00
nicolasconnault 30f703a490 MDL-14961 Added a help button for the synchronise legacy grades button 2009-03-10 14:00:19 +00:00
moodlerobot c52af6208e Updated the 19 build version to 20090310 2009-03-09 23:34:39 +00:00
stronk7 e85de04d7b MDL-18468 Adding admin experimental option to enable split on restore. Thanks for string cleanup, Helen. 2009-03-09 23:30:55 +00:00
stronk7 cb512feef5 MDL-18468 restore preprocessing (split) - Added $CFG->experimentalsplitrestore option
to enable split of moodle.xml files into upto 19 smaller files for quicker restore.
2009-03-09 23:28:39 +00:00
moodlerobot e603181eeb Automatic installer.php lang files by installer_builder (20090310) 2009-03-09 23:28:20 +00:00
mjollnir_ b3c8c097aa MDL-18462 theme: consistency in css for incorrect questions 2009-03-09 09:23:09 +00:00
poltawski f8338c21b5 forum/subscribe to all forums broken - MDL-15317
Was calling has_capability on $cm rather than a context..
thanks to Garret Gengler for the fix.
2009-03-08 23:49:59 +00:00
moodlerobot dc56fc912e Updated the 19 build version to 20090309 2009-03-08 23:39:39 +00:00
moodlerobot 93c0ab4628 Updated the 19 build version to 20090308 2009-03-07 23:37:32 +00:00
skodak 734e6125ed MDL-18265 fixed regressions by hardfreeze security workaround - defaults were overriding locked values - backported from HEAD 2009-03-07 21:01:39 +00:00
moodlerobot 689eeabb2f Updated the 19 build version to 20090307 2009-03-06 23:33:02 +00:00
mark-nielsen b31b9c0d8d lesson grading: MDL-17101 The lesson module was sending the incorrect raw grade values. Correcting the values by calculating the actual raw grade before sending to gradebook. 2009-03-06 18:44:54 +00:00
moodlerobot baec5bf1b5 Updated the 19 build version to 20090306 2009-03-05 23:39:01 +00:00
moodlerobot 675c797a5c Automatic installer.php lang files by installer_builder (20090306) 2009-03-05 23:32:43 +00:00
moodlerobot cec35fd605 Updated the 19 build version to 20090305 2009-03-04 23:37:56 +00:00
moodlerobot b0178a9339 Automatic installer.php lang files by installer_builder (20090305) 2009-03-04 23:31:39 +00:00
stronk7 73078aefd5 MDL-18440 email_to_user() - avoid some notices 2009-03-04 14:59:45 +00:00
skodak c5129f59e6 MDL-16852 fixed left join trouble 2009-03-04 13:34:20 +00:00
sam_marshall b3e0a94764 MDL-15913: Smartpix fails if themes or images have upper-case names 2009-03-04 11:55:19 +00:00
thepurpleblob a34725b3eb MDL-18390
Corrected handling of unsupported question types and added new language file
to remove hard coded strings.
2009-03-04 10:25:23 +00:00
danmarsden 102ab4b93d MDL-15276 add check for RESTORE_SILENTLY merged from HEAD 2009-03-04 02:45:10 +00:00
moodlerobot 0b8efe1434 Updated the 19 build version to 20090304 2009-03-03 23:35:41 +00:00
moodlerobot 1c3090aabc Automatic installer.php lang files by installer_builder (20090304) 2009-03-03 23:29:25 +00:00
dongsheng 135de95512 "FORUM/MDL-15968, respect mod/forum:viewqandawithoutposting in forum_search_posts" 2009-03-03 06:46:28 +00:00
tjhunt 86bfbf6d5a Aiken question import: MDL-18423 Greater robustness when parsing. 2009-03-03 05:12:06 +00:00
tjhunt 4bfcbb6065 qtype base: remove debug code. 2009-03-03 04:37:46 +00:00
dongsheng 3ebec13e90 "FORUM/MDL-14860, declare subtext varible before use it" 2009-03-03 01:03:10 +00:00
stronk7 4130b29319 MDL-17934 flv player in resources - allow full screen. Credit goes to Darren Jones. 2009-03-02 23:40:26 +00:00
moodlerobot 7c581c26d6 Updated the 19 build version to 20090303 2009-03-02 23:33:56 +00:00
piers 753d8d6b8f MDL-18412 - fixed incorrect config var name. thanks Anthony. backport 1.9. 2009-03-02 23:21:26 +00:00
mudrd8mz cac526294c MDL-17492 Reset flag did not work in PostgreSQL
Postgres does not seem to support table alias in UPDATE statement.
Therefore the SQL like
 UPDATE mdl_tag tg SET tg.flag = 0, tg.timemodified = 1236027984 WHERE tg.id IN (4)
ends with an ERROR: column "tg" of relation "mdl_tag" does not exist
The fix is quite easy - just do not use table alias as it makes no sense
here anyway.
Besides this, the commit also fixes:
* do not try to access the array key [0] in case of empty array (no tags
  exist yet)
* do not require_capability() at the function level - it is already
  checked at the caller script level
2009-03-02 21:36:50 +00:00
stronk7 9d86cefba4 MDL-18420 reserved words - adding 2 new PG reserved words. 2009-03-02 19:08:26 +00:00
stronk7 9161104df4 MDL-18420 reserved words - pointing to new URL 2009-03-02 18:53:16 +00:00
stronk7 a1f37c56c7 MDL-18420 reserved words - adding MySQL 5.1 and 6.0 new reserved words 2009-03-02 18:46:38 +00:00
mudrd8mz 4ff615ba18 MDL-14743 offer a link to the English help file 2009-03-02 14:06:22 +00:00
moodlerobot 0b01e09a84 Updated the 19 build version to 20090302 2009-03-01 23:34:29 +00:00
moodlerobot 2546b11627 Updated the 19 build version to 20090301 2009-02-28 23:38:24 +00:00
gbateson 3856061526 MDL-18409 add "Remove grade item" to mod_form.php form and standardize grade items for HotPots: (i) remove orphan grade items, (ii) remove grade items for HotPots with a zero grade, (iii) synchronize grade item name and HotPot name (iv) add missing grade items 2009-02-28 04:03:58 +00:00
gbateson 97268bfcd1 MDL-18409 new help file for "Remove grade item" form element 2009-02-28 04:00:56 +00:00
gbateson 61b8ee4cc8 MDL-18409: new message required for "Remove grade item" form element 2009-02-28 03:59:28 +00:00
moodlerobot dc30763a29 Updated the 19 build version to 20090228 2009-02-27 23:33:36 +00:00
nicolasconnault 13cd3572ef MDL-18402 Setting aggregationcoef to 1 if left empty 2009-02-27 13:05:58 +00:00
sam_marshall 61ed6f0fef MDL-18401: Glossary page bar should highlight current page 2009-02-27 12:58:00 +00:00
moodlerobot e366e28485 Updated the 19 build version to 20090227 2009-02-26 23:33:20 +00:00
piers 6323f16bce MDL-18148 - AICC compliance fixes from Martin Holden. 2009-02-26 15:52:56 +00:00
dongsheng 0728db718f "LANG/MDL-17620, add language string" 2009-02-26 02:31:42 +00:00
moodlerobot 7ac3cc9a32 Updated the 19 build version to 20090226 2009-02-25 23:35:20 +00:00
moodlerobot cf8a84bf7e Automatic installer.php lang files by installer_builder (20090226) 2009-02-25 23:29:07 +00:00
piers 33edb1d079 MDL-18212 - switch to addslashes_js - thanks Tim. Backport 1.9. 2009-02-25 23:06:35 +00:00
nicolasconnault 6aec578ba1 MDL-18321 Changed default permissions for overview report 2009-02-25 06:57:59 +00:00
dongsheng f8c0dc7619 "FORUM/MDL-14860, hide unsubscribe link if users are not allowed to unsubscribe from this forum" 2009-02-25 05:26:28 +00:00
moodlerobot 22aa2fdc7c Updated the 19 build version to 20090225 2009-02-24 23:33:54 +00:00
moodlerobot 070fd51ff0 Automatic installer.php lang files by installer_builder (20090225) 2009-02-24 23:27:38 +00:00
moodlerobot 574b31e05a Updated the 19 build version to 20090224 2009-02-23 23:33:33 +00:00
mjollnir_ 6a00dfa325 MDL-18351: activity block: detect when there's no course (eg admin page) and return 2009-02-23 14:47:44 +00:00
stronk7 4d5f3910e9 Annotating some more customizations performed in PHPMailer() 2009-02-23 09:07:54 +00:00
skodak a2e4bb85a6 MDL-18348 CVE-2007-3215 2009-02-23 07:45:30 +00:00
dongsheng 056a946997 "DATA MOD/MDL-18079, respect mod/data:comment capability when adding comments" 2009-02-23 07:24:04 +00:00
moodlerobot 7b97dc4cbb Updated the 19 build version to 20090223 2009-02-22 23:33:33 +00:00
moodlerobot 6d45d2bb7c Updated the 19 build version to 20090222 2009-02-21 23:33:10 +00:00
moodlerobot 362b789ca0 Updated the 19 build version to 20090221 2009-02-20 23:33:22 +00:00
moodlerobot e2e7da4724 Automatic installer.php lang files by installer_builder (20090221) 2009-02-20 23:27:04 +00:00
skodak 82e0a8a59f MDL-18325 Grade Import Outcomes SQL Issues - thanks Tim Lock 2009-02-20 07:22:26 +00:00
moodlerobot f73d700f79 Updated the 19 build version to 20090220 2009-02-19 23:33:39 +00:00
moodlerobot c64f343eaa Automatic installer.php lang files by installer_builder (20090220) 2009-02-19 23:27:21 +00:00
sam_marshall 458cc5c807 MDL-18322: Fix debug warning on course view page when forum has grouping set 2009-02-19 17:41:48 +00:00
skodak f964ff9281 MDL-18039 fixed footer docs link; backported from HEAD 2009-02-19 07:33:36 +00:00
skodak 67c0bc01eb MDL-18274 fixed lang string, thanks Helen; backported from HEAD 2009-02-19 07:21:42 +00:00
tjhunt 51d6e3d5b9 Add missing Id tags to all files under question, to help the unmerged files script. 2009-02-19 01:09:33 +00:00
moodlerobot 8dea1ae18c Updated the 19 build version to 20090219 2009-02-18 23:33:46 +00:00
moodlerobot 55b51fafa7 Automatic installer.php lang files by installer_builder (20090219) 2009-02-18 23:27:40 +00:00
skodak e0240b2abd MDL-18041 improved hints - thanks helen 2009-02-18 20:32:13 +00:00
pichetp fbffc13306 MDL-18034 MDL-18035 fixing typo merged from HEAD 2009-02-18 18:04:12 +00:00
stronk7 2a2124087f MDL-18302 filterlib - fixed rebuild of nested ignoretags 2009-02-18 11:02:11 +00:00
dongsheng 1c86f1b0ac "RESOURCE/MDL-17696, remove extra div" 2009-02-18 08:09:51 +00:00
tjhunt e18c7dde34 question editing: MDL-18035 Nice refactoring from Oleg Sychev that saves 50+ lines of code between the various editing forms. 2009-02-18 06:52:02 +00:00
moodlerobot c672c0ed6c Updated the 19 build version to 20090218 2009-02-17 23:33:51 +00:00
moodlerobot fb205e7b0b Automatic installer.php lang files by installer_builder (20090218) 2009-02-17 23:27:34 +00:00
skodak a92a26b3b6 MDL-18223 removed repeated format_text() - should be applied only once; backported from HEAD 2009-02-17 23:01:43 +00:00
skodak 7ece8b4084 MDL-18223 XHTML strrrict - backported 2009-02-17 22:57:08 +00:00
skodak dca4f867b6 MDL-18223 fixed admin string sorting 2009-02-17 22:49:32 +00:00
skodak eaea1cefde MDL-18223 fixed theoretical XSS 2009-02-17 22:45:22 +00:00
skodak d7267110ca MDL-18223 removed 2.0 code from spamcleaner + fixed report name in admin tree 2009-02-17 22:41:26 +00:00
skodak 2f64c88416 MDL-11313 improved strings in for simplified user switching 2009-02-17 22:24:22 +00:00
nicolasconnault 5af402822b MDL-18238 Reverting 2009-02-17 07:51:01 +00:00
nicolasconnault 82b904822e MDL-18247 Reverting the new navigation code, not ready yet. 2009-02-17 07:33:37 +00:00
tjhunt 4b2839e2a5 formslib: MDL-17403 add accept-charset="UTF-8" to all formslib forms. Backported from HEAD. 2009-02-17 07:24:58 +00:00
nicolasconnault 0ce91e17f7 MDL-18247 Implemented a constant for line length 2009-02-17 07:24:42 +00:00
tjhunt 42f60c49fb quiz attempts: MDL-18283 add accept-charset="utf-8" to avoid encoding problems. 2009-02-17 07:21:51 +00:00
tjhunt 56cef87b61 random question: MDL-18174 Fix notice when adding a random question to a quiz. 2009-02-17 06:14:48 +00:00
tjhunt c52849d56c tex filter: MDL-18230 ensure we always generate valid XHTML. 2009-02-17 05:24:35 +00:00
moodler afb7e5382c report/spamcleaner MDL-18223 Renaming main script from spamcleaner.php to index.php 2009-02-17 03:27:56 +00:00
moodlerobot a50c3fb9ad Updated the 19 build version to 20090217 2009-02-16 23:33:07 +00:00
stronk7 5515ae9a0a Erasing trailer semicolon breaking on Oracle. 2009-02-16 18:03:12 +00:00
stronk7 e0d027939e MDL-18243 data module filter - make it cross-db by using sql_compare_text() 2009-02-16 17:57:19 +00:00
wildgirl 3354933a9f welcometocoursetext lang string: MDL-18260 small rewording 2009-02-16 17:12:53 +00:00
poltawski c88022ade7 performance/mymoodle MDL-18241 - Assigments were very expensive
Reworked to take queries out of loops and let it scale. Unfortunately
I don't think we can get the get_users_by_capability() call out of the
loop on assignments.

Real query numbers before/after:
Teacher: 13,129 / 314
Student: 127 / 72
Admin: 718 / 133
2009-02-16 13:09:01 +00:00
dongsheng 5a6d196559 "SPAM/MDL-18223, if the user is deleted, ignore its blog posts" 2009-02-16 11:00:49 +00:00
stronk7 8d0787e3b1 MDL-18222 restore - fixed restoring of course->summary links. Was being handled too early. Moved to final decoding links process. 2009-02-16 10:26:25 +00:00
dongsheng 3cbb43304a "SPAM/MDL-18223, move language string to report_spamcleaner.php" 2009-02-16 09:37:47 +00:00
dongsheng 52b6e169b8 "SPAM/MDL-18223, spam cleaner for MOODLE 1.9" 2009-02-16 09:28:21 +00:00
dongsheng 460da32af8 "FILTER/MDL-17703, reverse changes to work within p tag" 2009-02-16 07:08:17 +00:00
tjhunt 7ca1f7a0fc quiz overview report: MDL-18256 Fix the more flagrant performance problems. 2009-02-16 04:17:54 +00:00
tjhunt 1726d852ae weblib: finish documenting print_user_picture. 2009-02-16 04:15:59 +00:00
dongsheng 2dc83e6145 "FILTER/MDL-18230, remove hardcoded style for TeX formulas image" 2009-02-16 03:08:47 +00:00
tjhunt bb2067c851 database: MDL-18269 query logging behaviour changed in Moodle 1.9 due to internal ADODB changes. 2009-02-16 03:00:07 +00:00
moodlerobot d5b43ea6a2 Updated the 19 build version to 20090216 2009-02-15 23:33:15 +00:00
stronk7 4c7971bb08 MDL-18244 sql_length() - apply new function to resource names filter 2009-02-15 23:20:36 +00:00
stronk7 047158d694 MDL-18244 sql_length() - new cross-db function to calculate the length in chars of any expression 2009-02-15 23:04:43 +00:00
skodak f2af2ec841 MDL-18209 fixe short php tag - thanks Jeffrey Silverman 2009-02-15 19:23:24 +00:00
skodak f01be9f366 MDL-18253 hopefully fixed weird float precision that breaks upgrade and gradebook; backported from HEAD 2009-02-15 19:03:18 +00:00
skodak a5886c1a26 MDL-18258 fixed legacy type and improved risky default course role hints; backported from HEAD 2009-02-15 18:46:07 +00:00
skodak 6ed6493820 MDL-18039 xhtml strict fixes 2009-02-15 17:40:59 +00:00
iarenaza 6a31fe27bb Cache LDAP connections: MDL-18130 Properly handle open LDAP connections.
Both CAS and LDAP auth plugins open new connections to the LDAP server
to get the user account details. While this is the desired behaviour
for regular logins (we probably don't have an already open connection
to the LDAP server), this is a ressource hog when we are doing user
synchronization, as the closed connections remain in the TCP_WAIT
state for a while before the server can reuse them. If we are syncing
a lot of users, we can make the server run out of available TCP
ressources.

So we cache the connection the first time we establish it and return
the same connection handle everytime, unless we've closed all the
'open' connections, or the auth object is destroyed.

In addition to that, there were a few missing calls to ldap_close().
2009-02-15 14:53:58 +00:00
skodak 8cc2a7e47a MDL-18041 improved admin risk info; backported from HEAD 2009-02-15 11:31:18 +00:00
skodak 473474f370 MDL-18155 mentioned possiblity to lock email field 2009-02-15 10:05:07 +00:00
skodak ecde99b07d MDL-18155 no warning if allowed email domains set 2009-02-15 09:55:19 +00:00
skodak 26f86416a0 MDL-18078 adding docs links from detailed security overview report 2009-02-15 09:45:00 +00:00
moodlerobot 9eb6cba683 Updated the 19 build version to 20090215 2009-02-14 23:32:10 +00:00
iarenaza b65da94dd7 NTLM SSO: MDL-13760 Speed up ntlm sign on with conditional redirect for msie
Provides an option, configurable by admin, to make the ntlm test happen
only if MSIE is not used. This speeds things up for IE.
2009-02-14 16:17:51 +00:00
iarenaza f8102d906e NTLM SSO: MDL-14584 Fix for several outstanding NTLM SSO issues.
These include:

MDL-14078: redirect() doubles the specified timeout when we haven't printed
           the page header and uses javascript to execute the redirect. This
           is interacting badly with some versions of IE and FF (at least
           3.0.x Windows version) that fireup javascript timers even if
           we already left the page where we set those up. Just print
           the page header (we are printing other content anyway) to
           make redirect respect our timeouts.

MDL-14071: All the relevant details are in the description of the bug :)

MDL-14297: This is probably the same as MDL-14078
2009-02-14 16:14:22 +00:00
nicolasconnault 1db15f42c6 MDL-18247 2009-02-14 13:59:46 +00:00
stronk7 5494b1a058 MDL-9796 install - delete dataroot's env info (shouldn't exist) to force check against released one ; merged from 18_STABLE 2009-02-14 11:05:30 +00:00
moodlerobot 6790b9a824 Updated the 19 build version to 20090214 2009-02-13 23:33:04 +00:00
stronk7 bfe073b05d MDL-9796 upgrade & env - delete dataroot's environmetal info to force check against released one ; merged from 18_STABLE 2009-02-13 15:46:35 +00:00
nicolasconnault 5c211a86f1 MDL-18238 Applied capability check to gradebook report settings pages 2009-02-13 13:09:57 +00:00
stronk7 52a7473e9a MDL-12846 course defaults - don't apply coursedefaults->category anymore. Backported from HEAD 2009-02-13 10:01:15 +00:00
stronk7 28364d4103 MDL-12846 MDL-17074 course defaults - backport deletion of default category 2009-02-13 09:58:21 +00:00
tjhunt a2b4f68e91 question bank: MDL-12719, MDL-15774, MDL-17105, and MDL-18174
These are all to do with the combination of the $form->category, and $form->categorymoveto fields on the question editing forms since Moodle 1.9. These are now resolved to a single ->category value in question.php, which simplifies the logic for the individual question types.

MDL-15774 and MDL-12719 errors editing Cloze question
MDL-17105 problems with qustion saving logic.
MDL-18174 'Select from subcategories' option not preserved when editing a random question.
2009-02-13 06:11:58 +00:00
moodlerobot f91d11fc6f Updated the 19 build version to 20090213 2009-02-12 23:33:14 +00:00
moodlerobot 4a040da19a Automatic installer.php lang files by installer_builder (20090213) 2009-02-12 23:27:06 +00:00
jerome 0c24a4523d Switch Roles MDL-11313 add a new config option to allow user to switch roles that they can't assign 2009-02-12 02:29:34 +00:00
moodlerobot ae5c3732d1 Updated the 19 build version to 20090212 2009-02-12 00:34:40 +00:00
stronk7 3ee21ffa01 MDL-17074 course settings - new defaults to be applied on interactive course creation 2009-02-11 18:00:05 +00:00
stronk7 d2aa927a0a MDL-17074 - backport ability of admin settings to use the config_plugins table 2009-02-11 17:51:34 +00:00
mjollnir_ 50537ba778 local settings in admin tree: include, rather than include once since it gets unset and regenerated. 2009-02-11 12:13:15 +00:00
stronk7 eada690a18 MDL-17365 forum ajax rating - revert menu color back after error 2009-02-11 09:59:41 +00:00
moodlerobot 33f4c4c10b Updated the 19 build version to 20090211 2009-02-11 00:14:25 +00:00
tjhunt 45b0c62de6 datasetdependant qtype: fix whitespace. 2009-02-10 05:40:13 +00:00
tjhunt d25db1b795 weblib: XHTML strict. 2009-02-10 03:27:48 +00:00
moodlerobot 95c1a1e51d Updated the 19 build version to 20090210 2009-02-09 23:42:35 +00:00
danmarsden adfd6053f1 MDL-17198 - show better confirmation of choice selection. missed lang file 2009-02-09 09:53:51 +00:00
danmarsden 22962abbf0 MDL-17198 - show better confirmation of choice selection. merged from HEAD 2009-02-09 09:52:59 +00:00
danmarsden 94e044dd6f MDL-18092 - better checking for empty vars when no users are in course. wrong place for empty check! 2009-02-09 09:31:54 +00:00
danmarsden e9103c0a0e MDL-18092 - better checking for empty vars when no users are in course. merged from HEAD 2009-02-09 09:26:47 +00:00
moodlerobot 098a5acddd Updated the 19 build version to 20090209 2009-02-08 23:35:08 +00:00
moodlerobot 76d9c74e68 Automatic installer.php lang files by installer_builder (20090209) 2009-02-08 23:29:12 +00:00
skodak 51bddf22fd MDL-9796 fixed error array when environment file broken 2009-02-08 21:30:06 +00:00
moodlerobot b290c986f6 Updated the 19 build version to 20090208 2009-02-07 23:38:43 +00:00
skodak 85557feb30 MDL-18138 added option to supply username as GET param - based on patch by Robert Allerstorfer 2009-02-07 22:54:04 +00:00
skodak bb8b3cffe6 MDL-18137 all cookies now secure if configured to be; backported from HEAD 2009-02-07 22:48:11 +00:00
skodak 4b3fd72079 MDL-18150 fixed typo- thanks Chris Potter 2009-02-07 22:31:38 +00:00
skodak c972b89def MDL-18151 fixed problem in legacy filter code - thanks Mark Nielsen 2009-02-07 22:24:26 +00:00
skodak 7d3d94eee5 MDL-14924 fixed typo - thanks bouley Hélène 2009-02-07 11:14:57 +00:00
stronk7 791733eaab MDL-18165 filterlib - Use one exclusive separator, instead of "." (dot) to avoid saved tags to match with phrases being processed 2009-02-07 00:58:16 +00:00
moodlerobot 69658560bf Updated the 19 build version to 20090207 2009-02-06 23:37:53 +00:00
exe-cutor 08b51e7f13 authentication: MDL-18116 Added Shibboleth logout handler URL, remove hard-coded strings to lang file, updated README
- Added a new setting logout_handler to the Shibboleth authentication settings
- Removed hard-coded strings in the configuration settings and replaced them with proper print_string expressions
- Added a logoutpage_hook function that (optinally) sends a user who clicks on the logout button to the Shibboleth logout handler after Moodle logout
- Updated README
2009-02-06 08:19:58 +00:00
jerome ab478fe0bc mp3 flash player MDL-7549 MP3 flash player now plays the end of the mp3 file 2009-02-06 07:18:57 +00:00
stronk7 94f7464280 MDL-18066 import_backup_file_silently() - delete dangerous code 2009-02-06 01:55:01 +00:00
jerome 277ae48e25 mnet MDL-10935 fix unicode character when the remote site send the course name for updating enrolment 2009-02-06 00:36:41 +00:00
moodlerobot fe27f84099 Updated the 19 build version to 20090206 2009-02-05 23:39:00 +00:00
stronk7 876a3baa42 MDL-10583 course format - some more uses of the get_section_name() added 2009-02-05 13:41:18 +00:00
stronk7 1465d3d426 MDL-10583 course format - discovered the get_section_name() that performs the fallback harcoded in previous commit. 2009-02-05 13:28:46 +00:00
stronk7 bc5368842f MDL-10583 course format - allow course formats to specify their section name 2009-02-05 13:12:03 +00:00
jerome 4dc25063e8 link resource MDL-16272 fix anchor into the url (not urlescaped anymore) 2009-02-05 02:25:40 +00:00
moodlerobot 436e9574a5 Updated the 19 build version to 20090205 2009-02-05 00:35:54 +00:00
piers fd50629bd0 MDL-17832 - consistent adding and removing of slashes for track data. backport 1.9. 2009-02-04 18:59:53 +00:00
piers 59fc418b73 MDL-18023 - add type check to check against default to avoid 0 error. backport 1.9. 2009-02-04 18:40:09 +00:00
stronk7 9ac773b15c MDL-8848 restore section summaries - now restored if target course have them empty 2009-02-04 17:19:52 +00:00
stronk7 d6546599dd MDL-18129 blog_print_entry() - avoid double format_text() 2009-02-04 16:39:27 +00:00
tjhunt 552ae7276f themes / pix: MDL-10441 better up, down, left and right icons without a white fringe.
Since these are not anti-aliased on a white background, they look better against a wider range of background colours. Since all the lines are at 90 or 45 degrees, jagged edges are not a problem.

Thanks to Dag Klimas for these.
2009-02-04 09:24:51 +00:00
tjhunt e8d902964d themes / participants: MDL-17526 add class name to search form on the participants page. 2009-02-04 09:15:06 +00:00
tjhunt a0dd83702f themes / pix: MDL-18052 dmg.gif icon should not contain excessive colour profile information.
This reduces the files size from 3.7k to 200b.
2009-02-04 08:42:36 +00:00
tjhunt 4b53c0f87d weblib: MDL-17525 Give previous and next links in paging bars class names, so they can be themed.
Thanks to Daniel Neis for the patch.

I checked the standard theme, and I don't see any rules there that would erroneously apply to these class names in paging bars.
2009-02-04 08:21:06 +00:00
tjhunt 87c2747ee5 weblib: MDL-14901 Fix misleading comment on print_navigation 2009-02-04 07:34:52 +00:00
tjhunt eaffb7ef7c admin reports: MDL-18134 Third-party admin reports not listed with the correct name.
Regression caused by MDL-17372.
2009-02-04 02:15:27 +00:00
moodlerobot a92bc4ed2d Updated the 19 build version to 20090204 2009-02-03 23:43:16 +00:00
moodlerobot 6b57802eca Automatic installer.php lang files by installer_builder (20090204) 2009-02-03 23:41:29 +00:00
tjhunt 8788cc6fe6 theme / navbar: MDL-14133 every link in the nav bar was getting class="first"! 2009-02-03 09:32:47 +00:00
tjhunt 91792878a0 theme / weblib: MDL-14400 Setting $THEME->makenavmenulist = true causes a php notice 2009-02-03 07:47:11 +00:00
moodlerobot 2d3799bfc8 Updated the 19 build version to 20090203 2009-02-02 23:44:17 +00:00
piers fc85b7977f MDL-17498 - fix grading output for submissions. 2009-02-02 22:09:29 +00:00
stronk7 397ad6af5b MDL-18100 tex filted debug - fix missing quote. Credit goes to Paulo Matos. 2009-02-02 21:08:11 +00:00
poltawski 3aeca96386 mnet/ email links rewritten MDL-18118 2009-02-02 17:44:59 +00:00
skodak 256c570e0a MDL-18040 fixed adminrisk query too - now much faster; backported from HEAD 2009-02-02 13:15:43 +00:00
Francois Marier cc90879d52 Fix CVS-git drift (old .sql files) 2009-02-01 23:44:30 +00:00
moodlerobot 822f1fe81c Updated the 19 build version to 20090202 2009-02-01 23:44:30 +00:00
moodlerobot a063109a4a Automatic installer.php lang files by installer_builder (20090202) 2009-02-01 23:42:45 +00:00
skodak 4ba3104b23 MDL-10275 backporting gd environment test 2009-02-01 16:22:32 +00:00
moodlerobot 32f25d39b7 Updated the 19 build version to 20090201 2009-01-31 23:47:40 +00:00
moodlerobot 8ae0e59cbb Automatic installer.php lang files by installer_builder (20090201) 2009-01-31 23:45:42 +00:00
skodak 49f3723381 MDL-17808 more lastname support when resetting passwords 2009-01-31 21:37:10 +00:00
moodlerobot f5838b1e56 Updated the 19 build version to 20090131 2009-01-30 23:48:27 +00:00
moodlerobot 0b0b1022f9 Automatic installer.php lang files by installer_builder (20090131) 2009-01-30 23:46:40 +00:00
stronk7 0d217d2820 MDL-18066 import_backup_file_silently - reverting last commit. 2009-01-30 13:17:55 +00:00
mudrd8mz 669db62519 MDL-17940 Display the count of ratings together with the aggregated grade for the post 2009-01-30 11:30:21 +00:00
stronk7 65cb682f22 MDL-18076 course participation report - fix actions dropdown not working. Credit goes to Paul Holden. 2009-01-30 10:12:44 +00:00
stronk7 5648e66cb2 MDL-18066 - import_backup_file_silently - better handling of missing $USER. Credit goes to Gabriel Mazetto. 2009-01-30 09:56:16 +00:00
jerome 613d0f81c4 calendar MDL-14693 fix month link when calendar is displayed on a text page resource 2009-01-30 06:22:16 +00:00
moodlerobot 72f0f08f9d Updated the 19 build version to 20090130 2009-01-29 23:44:04 +00:00
danmarsden e00a6b577f MDL-18086 backport fix for incorrect ODS export 2009-01-29 21:24:27 +00:00
jamiesensei 4d5025a776 MDL-18085 "custom user profile fields : in a list box field if one of the admin chosen values has an apostrophe in it it breaks the query to update / save the value" 2009-01-29 13:43:50 +00:00
mudrd8mz 82e1b609d2 MDL-13449 Fix the problem with displaying aggregation type "Count of ratings" 2009-01-29 12:32:48 +00:00
moodlerobot 81126259ae Updated the 19 build version to 20090129 2009-01-28 23:46:13 +00:00
stronk7 1e98ff2a8d Bump 2009-01-28 23:44:23 +00:00
stronk7 827f863046 MDL-18073 environment - enforce PHP 5.2.8 req for Moodle 2.0 ; merged from 18_STABLE 2009-01-28 23:42:40 +00:00
skodak b3b4937eb6 MDL-18040 rewritten XSS query, I hope this will be much faster; backported from HEAD 2009-01-28 22:51:28 +00:00
piers 5893fbd8e1 MDL-16184 - patch to correct the calculation of first, and last access to a SCORM attempt. backport to 1.9. + missing php tag in debug. 2009-01-28 18:16:18 +00:00
piers e6dcae98fa MDL-17821 - fix incorrect data validation regexs for 2004. thanks Peter Chamberlin. backport to 1.9. 2009-01-28 18:14:57 +00:00
mudrd8mz 3f4820fadf MDL-13449 Reverting the previous commit, sorry - not working yet 2009-01-28 16:08:03 +00:00
mudrd8mz 78700ccdca MDL-13449 If the count exceeds the forum scale, then set the score to the max grade 2009-01-28 15:51:32 +00:00
sam_marshall be10e474f3 MDL-381: Added 'Move' button to reduce accidentally moving forum posts. 2009-01-28 13:11:22 +00:00
sam_marshall b1ddca5c74 MDL-17974: Calendar 'new entry' accessibility improvement 2009-01-28 12:10:23 +00:00
moodler e666ae15f6 Bumping to post 1.9.4 2009-01-28 07:37:27 +00:00
moodler e7ff269394 Bumping to Moodle 1.9.4 for release! 2009-01-28 06:20:53 +00:00
moodler 8c3666955a report/security MDL-18039 Just some trivial text fixes 2009-01-28 06:10:38 +00:00
moodlerobot a166672c09 Updated the 19 build version to 20090128 2009-01-27 23:54:27 +00:00
stronk7 cc84c1aba0 MDL-17365 forum rate - fix error message. Merged from 18_STABLE 2009-01-27 18:08:29 +00:00
stronk7 62c7a8c799 MDL-17365 forum rate - add 'invalidrate' string. 2009-01-27 17:51:52 +00:00
stronk7 0b174abec7 MDL-17365 forum rate - validate rating against scale values. 2009-01-27 17:40:02 +00:00
skodak ba58c9f08e MDL-18057 fixed XSS test 2009-01-27 17:38:40 +00:00
skodak dd75d8696e MDL-18040 adding warning that the security report processing may take a long time; backported from HEAD 2009-01-27 16:22:32 +00:00
skodak aaa9b674c9 MDL-18055 adding timeout protection to security report 2009-01-27 15:06:04 +00:00
skodak 2d1541b597 MDL-18015 improved lang strings - thanks Andrea! 2009-01-27 09:58:02 +00:00
tjhunt b226b10a60 multianswer help file: Many XHTML strict issues. 2009-01-27 07:32:20 +00:00
tjhunt 6e115e57be forum rating: MDL-18044 notice sometimes when a forum is rated, also XHTML strict problems and fix incorrect help text. 2009-01-27 06:35:44 +00:00
gbateson 8d81298c4a MDL-17679: implement course reset for HotPot module (thanks to Albert Gasset) 2009-01-27 05:33:57 +00:00
tjhunt cc8549eaae quiz view: MDL-18038 Open close dates displayed to teachers incorrectly. 2009-01-27 04:44:00 +00:00
moodlerobot a68a6dcc62 Updated the 19 build version to 20090127 2009-01-26 23:55:26 +00:00
moodlerobot ed103b539a Automatic installer.php lang files by installer_builder (20090127) 2009-01-26 23:53:30 +00:00
pichetp 3c6ed6e2ca MDL-17995 replacing is_null() by empty(). Merged from HEAD 2009-01-26 01:27:16 +00:00
pichetp eb64eefaab MDL-17995 replacing != '' by !empty(). Merged from HEAD 2009-01-26 01:26:03 +00:00
moodlerobot 284aefc537 Updated the 19 build version to 20090126 2009-01-25 23:54:28 +00:00
pichetp bb215b150f MDL-17995 replacing $wrapped !='' by !is_null($wrapped) Merge from HEAD 2009-01-25 14:52:56 +00:00
moodlerobot 2f1fc9d9f2 Updated the 19 build version to 20090125 2009-01-24 23:55:56 +00:00
stronk7 042be7ddd6 MDL-17835 backup & restore - encode/decode content links from/to course formats info.
Credit goes to Mark Nielsen. Thanks!
2009-01-24 00:20:51 +00:00
moodlerobot 6b502ee98f Updated the 19 build version to 20090124 2009-01-23 23:55:05 +00:00
moodlerobot 35aacbe41e Automatic installer.php lang files by installer_builder (20090124) 2009-01-23 23:53:29 +00:00
stronk7 63370ab86b MDL-17886 backup & restore - Add some defaults to import_backup_file_silently()
Credit goes to Mark Nielsen. Thanks!
- CVS: ----------------------------------------------------------------------
2009-01-23 23:28:40 +00:00
stronk7 aacdd2a2aa MDL-17998 forum ajax rating - avoid 'null' printout + improved search by class (IE7, you know) 2009-01-23 16:30:13 +00:00
tjhunt ee71dd5d5b matching qtype: MDL-17981 extra distractors feature was not working on MS SQL server, since MDL-14420 was fixed. 2009-01-23 02:19:36 +00:00
tjhunt 9637977c56 admin: xhtml strict problems. 2009-01-23 02:10:11 +00:00
moodlerobot 38abaa812b Updated the 19 build version to 20090123 2009-01-22 23:56:12 +00:00
moodlerobot 50a391f3ff Updated the 19 build version to 20090122 2009-01-21 23:56:39 +00:00
moodlerobot 2f0595b2ba Automatic installer.php lang files by installer_builder (20090122) 2009-01-21 23:55:05 +00:00
wildgirl 0d2d8435eb scorm lang string: MDL-16651 added scorm:deleteresponses 2009-01-21 16:21:37 +00:00
skodak 84d866f59a MDL-17463 bumped version report number numbers again - I found 3 sites that did not have the caps installed after upgrade - weird 2009-01-21 15:42:54 +00:00
mudrd8mz 3b8a200da9 MDL-17982 Security overview report backported to 1.9 uses 2.0 API
Fixes:
- admin/roles/manage.php instead of new admin/roles/define.php
- results returned by old get_recordset_sql() must be iterated using rs_fetch_next_record() instead of new foreach()
2009-01-21 10:57:53 +00:00
moodlerobot 3a281e4282 Updated the 19 build version to 20090121 2009-01-20 23:54:29 +00:00
wildgirl 8ad8632027 forum lang string: MDL-17364 small rewording 2009-01-20 10:43:54 +00:00
moodler adfe07e897 forum/css MDL-16749 added a div named "posting" around the posting 2009-01-20 07:54:14 +00:00
tjhunt c83e62ae8b upgrade reload icon MDL-17924 unobfuscate Martin's reload icon. 2009-01-20 06:56:44 +00:00
moodler 92179c5667 calendar ical MDL-17964 Better hostname derived from wwwroot 2009-01-20 06:21:03 +00:00
moodler b26a82e9a9 maintenance mode MDL-15700 Just some little tidyups of the maintenance mode page 2009-01-20 05:57:08 +00:00
tjhunt 1ed574d378 quiz backup: MDL-17970 MSSQL text / varchar compare issue.
Commiting this fix so it gets into 1.9.4. I've tested and it does not break sensible databases, and probably fixes the problem on MSSQL.
2009-01-20 04:24:01 +00:00
tjhunt 1ae3f411b5 backup/restore: MDL-16614 more reliable test for when we are restoring a backup that was made of the same site that we are restoring to.
* Use this to fix a question restore bug.
* Replace older code that does something similar with the new test.
* Refactor initialisation of $CFG->siteidentifier into a function. There were about 4 copies of this code ;-)
2009-01-20 03:16:05 +00:00
moodler 6592bac242 calendar/export MDL-17964 explicitly define a non-random UID for each event 2009-01-20 03:07:27 +00:00
moodlerobot d750ce8fa2 Updated the 19 build version to 20090120 2009-01-19 23:54:34 +00:00
moodlerobot 94b7fd6607 Automatic installer.php lang files by installer_builder (20090120) 2009-01-19 23:52:33 +00:00
sam_marshall 576ba278bc MDL-17965: Prevent forum move to forum you can't start discussions in 2009-01-19 14:18:24 +00:00
dongsheng 8a76863c7e "FILTER/MDL-17703, use classname instead of inline style" 2009-01-19 01:55:50 +00:00
dongsheng 000bfd6e5b "FORUM/MDL-17709, replace p with div in forum summary" 2009-01-19 01:36:18 +00:00
moodlerobot ec432881c3 Updated the 19 build version to 20090119 2009-01-18 23:52:25 +00:00
moodlerobot 17400c041b Automatic installer.php lang files by installer_builder (20090119) 2009-01-18 23:50:38 +00:00
moodlerobot 59911a0388 Updated the 19 build version to 20090118 2009-01-18 00:02:48 +00:00
stronk7 3c13c816f3 MDL-17364 forum ajax rating - needed strings ; backported from HEAD 2009-01-17 19:37:07 +00:00
stronk7 c57931ce32 MDL-17364 forum ajax rating working ; backporting from HEAD 2009-01-17 19:30:08 +00:00
stronk7 e33c29d4b2 file rate_ajax.php was added on branch MOODLE_19_STABLE on 2009-01-17 19:30:08 +0000 2009-01-17 19:14:38 +00:00
stronk7 0aa5484366 file rate_ajax.js was added on branch MOODLE_19_STABLE on 2009-01-17 19:30:08 +0000 2009-01-17 19:14:38 +00:00
stronk7 0f9654453d Adding small loading gif for AJAX processing. 2009-01-17 18:25:03 +00:00
stronk7 86b6811e97 MDL-17331 choose_from_menu() - backport listbox, multiple and class params 2009-01-17 18:09:38 +00:00
moodlerobot 13d2dda5de Updated the 19 build version to 20090117 2009-01-17 00:06:46 +00:00
moodlerobot 0f208a88f0 Automatic installer.php lang files by installer_builder (20090117) 2009-01-17 00:04:41 +00:00
nicolasconnault bb038bc7c8 MDL-17883 Added title attribute to grade item link 2009-01-16 14:56:59 +00:00
nicolasconnault c98fa2cd88 MDL-13778 Added new display types to course settings 2009-01-16 10:20:02 +00:00
dongsheng 6de4bdb976 "GLOSSARY/MDL-17707, remove extra div" 2009-01-16 08:59:39 +00:00
dongsheng 9f62d5bd19 "MDL-17710, remove extra div" 2009-01-16 08:52:09 +00:00
tjhunt 6f48c01a43 adminlib: MDL-6160 mess up my lovely code just to keep PHP4 happy.
Thanks to Ashley Holman for noticing my mistake.
2009-01-16 08:34:21 +00:00
dongsheng 50850f2545 "WIKI/MDL-17704, wrap wiki summary by div" 2009-01-16 05:37:56 +00:00
dongsheng d8c5e6c18f "QUIZ/MDL-17710, wrap quiz summary by div" 2009-01-16 05:31:55 +00:00
dongsheng 94d9f6d84f "FILTER/MDL-17703, wrap object tag by div" 2009-01-16 05:20:19 +00:00
dongsheng 5f3e7b35d4 "GLOSSARY/MDL-17708, use css selector instead of inline style" 2009-01-16 04:55:38 +00:00
dongsheng f6d70ceca1 "FORUM/MDL-17709, use css selector instead of inline style" 2009-01-16 04:52:01 +00:00
tjhunt 190dddfc0b quiz / questions: MDL-17919 Bad link edit questions from quiz preview page.
Thanks to Ann Adamcik for noticing this. It was a regression from MDL-6085.
2009-01-16 04:47:35 +00:00
dongsheng 9d06855887 "MDL-17707, replace p with div in module summary" 2009-01-16 04:46:31 +00:00
tjhunt b755cfd75c moodlelib: MDL-17761 More consistent error handling in get_string. 2009-01-16 04:18:32 +00:00
moodlerobot 3c2df10618 Updated the 19 build version to 20090116 2009-01-16 03:39:36 +00:00
moodler 187e8dc3a4 admin update reload MDL-17924 Changed reload form to an icon (merged from head) 2009-01-16 02:37:29 +00:00
moodler d3f811b3c4 file reload.gif was added on branch MOODLE_19_STABLE on 2009-01-16 02:37:29 +0000 2009-01-16 02:29:34 +00:00
whchuang 241cf74e0a Fixed a trivial typo in the quiz "item analysis table" help file - it was spelled as "stadard" which should be "standard" 2009-01-15 21:25:51 +00:00
skodak d78bca84e8 MDL-17222 backported security report into 1.9.x 2009-01-15 20:16:12 +00:00
skodak 9c73f43e69 file lib.php was added on branch MOODLE_19_STABLE on 2009-01-15 20:16:12 +0000 2009-01-15 18:30:26 +00:00
skodak 93c9712e34 file index.php was added on branch MOODLE_19_STABLE on 2009-01-15 20:16:12 +0000 2009-01-15 18:30:26 +00:00
tjhunt bf28249d82 questiontypes: MDL-17800 Add extra_question_fields() support to backup/restore functions.
* Implement this in the base class, and
* use this in the shortanswer type as a proof of concept.

This makes writing new question type subclasses a bit easier. Thanks to Oleg Sychev for this code.
2009-01-15 07:29:00 +00:00
tjhunt 4328416b29 question engine: MDL-17651 this context is not used anywhere, so remove it.
(There was a bug in the get_context_instance call.)
2009-01-15 05:15:31 +00:00
moodlerobot 959a292ddf Updated the 19 build version to 20090115 2009-01-15 03:07:47 +00:00
wildgirl a6dcdb14c9 help files: MDL-14319 small XHTML fixes, as reported by Chris Bandy 2009-01-14 20:15:55 +00:00
stronk7 e79859512f MDL-17837 apply some limits to the dropdown of users in first instance. 2009-01-14 17:47:00 +00:00
stronk7 22fc88f88b MDL-17837 opt limit resultsets returned by some get_xxxx_users() function. 2009-01-14 17:44:46 +00:00
thepurpleblob ac6e14ff79 MDL-17048:
Added additional check for non-visible fields in signup page.
2009-01-14 10:06:06 +00:00
tjhunt c8a507097c quiz: MDL-14926 New capability mod/quiz:reviewmyattempts, separate from mod/quiz:attempt. 2009-01-14 07:03:09 +00:00
dongsheng dfa8aab5d8 "MDL-6926, force language in forum module" 2009-01-14 04:55:10 +00:00
dongsheng 7bbe53f402 "MDL-17747, add max category depth setting" 2009-01-14 04:47:21 +00:00
tjhunt 8e88626ff3 admin settings: MDL-17877 Remember to pass u.id to get_users_by_capability. 2009-01-14 04:45:10 +00:00
tjhunt 68099376a3 accesslib: Nice debug developer warning if you call get_users_with_capability without including u.id in the list of fields. 2009-01-14 04:44:08 +00:00
dongsheng b5d665d551 "MDL-14949, reverse changes to permission which can cause problems" 2009-01-14 04:35:23 +00:00
moodlerobot 526a055559 Updated the 19 build version to 20090114 2009-01-13 23:58:22 +00:00
thepurpleblob a3d160fdec MDL-17048
Corrected misuse of formslib - works now.
2009-01-13 13:15:23 +00:00
wildgirl f442462c07 embedding files in a frame: MDL-10021 small rewording of help file 2009-01-13 10:21:39 +00:00
skodak b02e348184 MDL-17868 detection of incorrect hadnling of floats in version numbers - this should prevent dataloss in case it does not work as expected 2009-01-13 09:02:01 +00:00
tjhunt c1321f6c40 edit profile: MDL-15607 Edit profile form breaks if the list of countries in the language pack is broken.
After this patch it still breaks, unavoidably, but at least there is now an error message.
2009-01-13 06:03:36 +00:00
moodlerobot 58ce50f528 Updated the 19 build version to 20090113 2009-01-13 00:01:24 +00:00
dongsheng 8ab1c8dfeb "MDL-12077, add course delete hook for course format" 2009-01-12 06:22:38 +00:00
tjhunt 2b406390d8 Fix typo. 2009-01-12 06:03:10 +00:00
peterbulmer 489b503378 MDL-10498: Apostrophe / Quote in username or email breaks profile update
Author: Aaron Barnes <aaronb@catalyst.net.nz>
2009-01-12 02:05:12 +00:00
moodlerobot ee5537a5a9 Updated the 19 build version to 20090112 2009-01-11 23:55:14 +00:00
moodlerobot 7481a23090 Updated the 19 build version to 20090111 2009-01-11 00:07:50 +00:00
skodak 79536558fa MDL-17841 removed bogus remove lib/simpletest/slowcodetest.php 2009-01-10 13:48:06 +00:00
moodlerobot 85a0fcf2a2 Updated the 19 build version to 20090110 2009-01-09 23:55:45 +00:00
moodlerobot 7d8264c188 Automatic installer.php lang files by installer_builder (20090110) 2009-01-09 23:54:09 +00:00
tjhunt 1cb675b598 restorelib: fix incorrect indenting. 2009-01-09 06:35:34 +00:00
tjhunt c6c9b4faca accesslib: MDL-17626 delete the context whenever a block is deleted. This includes a new helper function blocks_delete_all_on_page. 2009-01-09 06:16:52 +00:00
tjhunt 2a538623e4 accesslib: MDL-17626 admin/modules.php should call delete_context when a module is uninstalled. 2009-01-09 05:34:54 +00:00
tjhunt 83b238f9b8 accesslib: MDL-17626 delete_course_module should call delete_context. 2009-01-09 05:32:16 +00:00
tjhunt 6548bc4898 accesslib: MDL-17626 role_names not cleaned up when a context is deleted. 2009-01-09 05:25:59 +00:00
tjhunt a23612213a shortanswer qtype: MDL-17706 use extra_question_fields mechanism to save on code. Changes thanks to Oleg Sychev. 2009-01-09 05:10:40 +00:00
jerome a75573c738 admin MDL-17155 cURL functions called in adminlib.php: add checking for disable_functions php configuration option 2009-01-09 02:05:45 +00:00
jerome 8ec33be76c online user block MDL-15325 optimize the display of the message icon/link (instantiation out of a loop) 2009-01-09 00:54:05 +00:00
moodlerobot 037f56034f Updated the 19 build version to 20090109 2009-01-08 23:57:11 +00:00
moodlerobot 57a8ff3a73 Automatic installer.php lang files by installer_builder (20090109) 2009-01-08 23:55:07 +00:00
stronk7 e12b3b10ca MDL-17826 restore - proper TEXT comparison. Was breaking MSSQL and Oracle. 2009-01-08 18:28:46 +00:00
nicolasconnault e2e0711a49 MDL-17825 Converting float grades to string when counting values using the Mode of Grades aggregation 2009-01-08 16:01:43 +00:00
nicolasconnault 54862201c5 MDL-13778 Improved code in grades admin settings page 2009-01-08 08:52:37 +00:00
nicolasconnault 69cce5950b MDL-13778 Added 6 "composite" grade display types for the grader report 2009-01-08 08:19:41 +00:00
jerome 624567f853 online user block MDL-15325 Online Users Block didn't perform capability check when displaying messaging icon 2009-01-08 07:37:17 +00:00
tjhunt fe6a9871bf course requests: MDL-6160 clean up admin option for choosing who is notified. 2009-01-08 07:05:31 +00:00
jerome 8656394dac resource: MDL-10021 change the wording "Yes, frame tag" "Yes, object tag" to "Yes, with frame" "Yes, without frame" 2009-01-08 02:59:54 +00:00
jerome be2f1abc87 resource: MDL-10021 upload file resource: change "keep navigation visible" into a select box. Choice are now No - Yes, Frame tag - Yes, Object tag 2009-01-08 02:19:44 +00:00
jerome 295c7cad90 database: MDL-16999 move the warning message from the environment check page to a normal upgrade page 2009-01-08 01:01:04 +00:00
moodlerobot 6eb25b3e8c Updated the 19 build version to 20090108 2009-01-08 00:05:04 +00:00
skodak 93eceb28d2 MDL-17799 proper log url sanitisation - big thanks to Full Name hacker ;-) backported from HEAD 2009-01-07 23:01:30 +00:00
skodak 5a33217812 MDL-17797 fixed cap definition - thanks Andrea Bicciolo 2009-01-07 19:55:25 +00:00
skodak 2f62d8b459 MDL-17811 fixed typos, thanks James Riggs 2009-01-07 19:51:18 +00:00
skodak 9802accd59 MDL-17808 Use users lastname in password change confirmation mails, thanks Andreas Grupp; backported from HEAD 2009-01-07 19:03:59 +00:00
thepurpleblob af993edd90 MDL-17048
Suppress display of empty custom profile field categories
2009-01-07 13:50:43 +00:00
moodlerobot 86ced6c244 Updated the 19 build version to 20090107 2009-01-06 23:56:02 +00:00
skodak 05f6536c54 MDL-17789 prevent potential XSS problems through PHP_SELF; backported from HEAD 2009-01-06 13:09:13 +00:00
diml d8b7674ec5 Fixes MDL17792 cron break effect 2009-01-06 10:26:31 +00:00
dongsheng 507c75ff7c "MDL-17747, Add Max category depth as a configuratble setting to the site settings, credit goes to Jason Hardin" 2009-01-06 06:52:19 +00:00
moodlerobot 77c64292d5 Updated the 19 build version to 20090106 2009-01-05 23:55:26 +00:00
moodlerobot 9dc01d93fe Automatic installer.php lang files by installer_builder (20090106) 2009-01-05 23:53:22 +00:00
thepurpleblob db784f7936 MDL-17779
Add simple check that question at least has questiontext before allowing it.
2009-01-05 15:20:11 +00:00
tjhunt acfbbeb1d3 XHTML Strict! 2009-01-05 02:18:49 +00:00
moodlerobot 5400aac79f Updated the 19 build version to 20090105 2009-01-04 23:54:26 +00:00
moodlerobot f67faa62d6 Updated the 19 build version to 20090104 2009-01-03 23:57:15 +00:00
moodlerobot e83a493a43 Updated the 19 build version to 20090103 2009-01-03 00:00:14 +00:00
moodlerobot 2b42953f9a Automatic installer.php lang files by installer_builder (20090103) 2009-01-02 23:58:20 +00:00
skodak ef005cf1fe MDL-17772 fixed guest access 2009-01-02 20:54:59 +00:00
stronk7 ef2286f2d8 MDL-17321 restore roll dates - prevent wrong rolls to 0 happening to teachers 2009-01-02 16:53:30 +00:00
arborrow 5c8cb3a6a4 removing files for new_forum_replies mistakenly added to 19STABLE intended for CONTRIB 2009-01-02 02:02:29 +00:00
arborrow 251e356eb1 CONTRIB-612 - adding new forum replies block submitted and maintained by Niall Barr 2009-01-02 01:42:44 +00:00
moodlerobot 6cde557687 Updated the 19 build version to 20090102 2009-01-01 23:57:34 +00:00
moodlerobot c512f546b0 Automatic installer.php lang files by installer_builder (20090102) 2009-01-01 23:55:04 +00:00
skodak aeb1c7c456 MDL-17226 reverted incorrect fix 2009-01-01 23:53:47 +00:00
mudrd8mz a606b17d90 A typo fixed 2009-01-01 23:43:10 +00:00
skodak 33698217a3 MDL-16262 recovery of broken single simple discussions after old reset; backported from HEAD 2009-01-01 22:54:06 +00:00
skodak 7685016d20 MDL-16262 fixed resetting of single simple discussions; backported from HEAD 2009-01-01 22:43:20 +00:00
skodak c37304a964 MDL-15172 lowered timeoout and adding warning that users must not click continue in middle of course import - this is a silly workaround, unfortunately I did not find better solution; backported from HEAD 2009-01-01 16:06:37 +00:00
skodak 95968dff75 MDL-17758 fixed hardcoded /admin/ links 2009-01-01 14:29:37 +00:00
moodlerobot ff3ce1ed42 Updated the 19 build version to 20090101 2008-12-31 23:55:14 +00:00
skodak 5f9e154544 MDL-17203 ooops, forgot to bump up main version number 2008-12-31 16:10:17 +00:00
skodak a963e6c8e4 MDL-17203 longer default salt 2008-12-31 15:56:49 +00:00
skodak 25da571df9 MDL-17203 prevent disclosing of sensitive information; backported from HEAD 2008-12-31 15:54:09 +00:00
skodak 3222c0c272 MDL-17203 hash salt added to calendar export; backported from HEAD 2008-12-31 15:51:27 +00:00
skodak 33942f16e2 MDL-17203 new option for disabling of calendar export; backported from HEAD 2008-12-31 14:11:34 +00:00
moodlerobot 6b13469879 Updated the 19 build version to 20081231 2008-12-30 23:59:41 +00:00
skodak 7e8ab13d8f MDL-17556 fixed whitespace; backported from HEAD 2008-12-30 16:34:14 +00:00
moodlerobot f9377c0a7e Updated the 19 build version to 20081230 2008-12-29 23:56:41 +00:00
skodak 7f491dc474 MDL-17682 added default value for city field; backported from HEAD 2008-12-29 21:47:27 +00:00
skodak c3e7bda77c MDL-17724 fixed group/grouping renaming now allows case change; backported from HEAD 2008-12-29 21:32:36 +00:00
skodak ea0bc86d6e MDL-17637 fixed adobe XSS protection; backported from HEAD 2008-12-29 21:18:32 +00:00
skodak ffb5a93032 MDL-17677 fixed string locations - patch by Vlas Voloshin 2008-12-29 20:19:59 +00:00
skodak e2cf6b91da MDL-17727 do not allow access to feeds from hidden courses or activitites - security improvement, in 2.0 this will be rewritten 2008-12-29 20:06:54 +00:00
skodak d100f76f6e MDL-17746 fixed debugdisplay typo in cron - patch by Tomasz Muras; backported from HEAD 2008-12-29 19:58:05 +00:00
moodlerobot 060f414899 Updated the 19 build version to 20081229 2008-12-28 23:57:07 +00:00
moodlerobot 8b68630612 Updated the 19 build version to 20081228 2008-12-27 23:56:11 +00:00
diml 323a266cf5 fixes reference id for label record in search index 2008-12-27 11:56:23 +00:00
diml 85203af7a3 completing access policy with course state examination 2008-12-27 11:42:54 +00:00
diml 0f2f33611f fixing constant CONTEXT_COURSE name 2008-12-27 11:42:25 +00:00
moodlerobot c201ac514b Updated the 19 build version to 20081227 2008-12-26 23:57:49 +00:00
moodlerobot 3080aa14e1 Automatic installer.php lang files by installer_builder (20081227) 2008-12-26 23:55:47 +00:00
arborrow 0502b5122c MDL-17741 - typo $tableparam; merged from MOODLE_18_STABLE 2008-12-26 23:19:47 +00:00
arborrow ae9f99119a MDL-17741 - typo $tableparam 2008-12-26 20:47:25 +00:00
iarenaza b11a0766ed auth/ldap: MDL-9405 sync_users() can create duplicated users
Merged from MOODLE_18_STABLE

If we are using auth_ldap_sync_users.php to synchronize our users, and we
have a database which is case-sensitive when doing comparisons (Postgres and
Oracle at least), and any of our users has the vale of the username attribute
in mixed-case (like 'John Smith'), we get duplicated users.

This is because we don't make sure the username attribute value is 'lowercased'
after we retrive it from the LDAP server and before we insert it into the
database.
2008-12-26 16:00:12 +00:00
moodlerobot 0b3a3435a1 Updated the 19 build version to 20081226 2008-12-25 23:54:21 +00:00
moodlerobot 65eda6e60e Updated the 19 build version to 20081225 2008-12-24 23:55:41 +00:00
ikawhero 351c28559b MDL-17228 Allow admins to view hidden custom profile fields.
Thanks to Alan Barrett for the fix.
2008-12-24 04:16:21 +00:00
moodlerobot edd41a94eb Updated the 19 build version to 20081224 2008-12-23 23:55:26 +00:00
moodlerobot 937a8769de Automatic installer.php lang files by installer_builder (20081224) 2008-12-23 23:53:57 +00:00
moodlerobot a490bb4f0d Updated the 19 build version to 20081223 2008-12-22 23:53:48 +00:00
danmarsden 2252803d20 Accessibility: MDL-17705: Thanks Tim merged from HEAD 2008-12-22 07:04:37 +00:00
tjhunt 3a580fd193 admin tree: MDL-13104 - fix another external page so there are not problems when you click the blocks editing on/off button. 2008-12-22 03:16:51 +00:00
moodlerobot 1c1646cb4b Updated the 19 build version to 20081222 2008-12-21 23:52:17 +00:00
danmarsden 1caa37ac3e XHTML Striiict:MDL-17705 2008-12-21 22:27:40 +00:00
moodlerobot 14c870de0d Automatic installer.php lang files by installer_builder (20081222) 2008-12-21 16:58:04 +00:00
stronk7 3afd68857d Adding kk_utf8 to installer langs. Backported from HEAD. 2008-12-21 16:05:42 +00:00
stronk7 2f0a40ab47 file installer.php was added on branch MOODLE_19_STABLE on 2008-12-21 16:05:42 +0000 2008-12-21 16:02:16 +00:00
gbateson 615852be16 MDL-6467 add "swf" and "flv" to the list of files for which relative urls are converted to absolute urls 2008-12-21 01:48:21 +00:00
moodlerobot fa6eac40ee Updated the 19 build version to 20081221 2008-12-20 23:57:25 +00:00
moodlerobot 21aabcbc9f Updated the 19 build version to 20081220 2008-12-19 23:53:54 +00:00
mjollnir_ f3d3aa6881 MDL-17694: very small stickyblocks improvements 2008-12-19 09:49:10 +00:00
mjollnir_ c165e7462e MDL-17693: get_role_users - add lastaccess & mnethostid to the list of default fields to return. These are used by messaging/emailing. 2008-12-19 08:56:01 +00:00
mjollnir_ fd5244dc46 MDL-17692: count_role_users now accepts an int or an array of ints for roleid - this is now consistent with get_role_users. 2008-12-19 08:45:09 +00:00
moodler d8709908a0 user tabs MDL-17472 Fixed a regression where the $secondrow variable of forum posts was being wiped out (See also MDLSITE-594) 2008-12-19 01:44:48 +00:00
moodlerobot 2d10a5ef93 Updated the 19 build version to 20081219 2008-12-18 23:54:50 +00:00
moodler 968788be74 Cleaning up the main version file. 2008-12-18 06:44:51 +00:00
stronk7 f56cacd0d8 MDL-17009 restore of mnet users - order some recently added strings and add 1 more 2008-12-18 00:22:11 +00:00
stronk7 54cae7edcf MDL-17009 restore of mnet users - Automatic switching of remote users (unknown host) to local ones. 2008-12-18 00:18:44 +00:00
moodlerobot 07f8fab029 Updated the 19 build version to 20081218 2008-12-17 23:56:19 +00:00
moodlerobot ee89fdf92c Automatic installer.php lang files by installer_builder (20081218) 2008-12-17 23:54:09 +00:00
stronk7 8e99ea4081 MDL-17009 restore of mnet users - New lang strings. 2008-12-17 23:37:48 +00:00
stronk7 2a3f443ac1 MDL-17009 restore of mnet users - Prevent teachers to restore this type of backups to different sites. 2008-12-17 23:33:42 +00:00
diml b56ccc3192 Big global search update for 1.9. Will resolve major bug points in Global Search component section. 2008-12-17 20:52:07 +00:00
diml 323a68467c Big global search update for 1.9. Will resolve major bug points in Global Search component section. 2008-12-17 20:51:19 +00:00
skodak 68c5857cb9 MDL-14876 fixed regressions in user subscriptions - $cm used incorrectly instead of $cm->id 2008-12-17 18:09:11 +00:00
sam_marshall 7acc360f7c MDL-17556: Improve performance of get_fast_modinfo when courses have many activities 2008-12-17 12:40:09 +00:00
moodlerobot 80a6e5fb67 Updated the 19 build version to 20081217 2008-12-17 00:36:42 +00:00
stronk7 b18ecac385 MDL-17647 accesslib - cleaning some candoanything in comments 2008-12-17 00:29:52 +00:00
dongsheng 9111f5dacf "MDL-14949, add a new capability chat:talk" 2008-12-16 04:54:26 +00:00
moodlerobot d09916f929 Updated the 19 build version to 20081216 2008-12-15 23:53:33 +00:00
moodlerobot 41fd49847c Automatic installer.php lang files by installer_builder (20081216) 2008-12-15 23:51:55 +00:00
stronk7 60bcf0156d MDL-17599 scheduled backup: add support for grade history setting + minor XML formatting 2008-12-15 21:28:02 +00:00
tjhunt 9be7cc58e4 accesslib: MDL-17648 fix stupid typo. Sorry. 2008-12-15 08:12:53 +00:00
tjhunt 6913746fb1 accesslib: MDL-17647, MDL-17648 and MDL-17649 Bug fix, improvement and unit test.
MDL-17647 was referring to moodle/site:candoanything insstead of moodle/site:doanything

MDL-17648 Let get_users_by_capability take an array of capabilities, like has_any_capability

MDL-17649 get_users_by_capability must have unit tests (HEAD only).

The unit tests were briefly working (apart from the system context, which I had to set up by hand in the test contexts table). Then I made the mistake of trying to upgrade the test tables, and it all went horribly wrong (MDL-17644).
2008-12-15 06:22:40 +00:00
tjhunt bd88ac6161 forum subscriptions: MDL-14876 - followup - use the right table prefix on column names to avoid an ambiguous column name error. 2008-12-15 06:09:07 +00:00
tjhunt 797a1f7e0b Flatfile enrolment: MDL-11418 SQL error. Thanks to Patrick Pollet.
I don't know exactly how this works, but it looks like a good fix to me, so committing.
2008-12-15 02:53:50 +00:00
moodlerobot 1c8e955e4b Updated the 19 build version to 20081215 2008-12-14 23:53:01 +00:00
moodlerobot 60ced88eb2 Automatic installer.php lang files by installer_builder (20081215) 2008-12-14 23:51:36 +00:00
jonathanharker 2b11b765dd MDL-17548 MNET: Fix email links for sites with path component in wwwroot
Where Moodle sites have a path in their wwwroot, the MNET function that
forced remote users to go via their identity provider (to make sure they
were logged in) previously directed the user back to a URL like
contentprovider.com/moodle/moodle/mod/forum/view.php?f=7 where there
should only be one /moodle in the middle of the URL.

Slightly tweaked from HEAD to support PHP4
2008-12-14 23:40:21 +00:00
jonathanharker 62cf1ae8c1 MDL-16875 New Moodle setting - sessioncookiedomain
Added new sessioncookiedomain setting to session handling section.

 * allows you to change the domain that the Moodle cookies are available
   from. This is useful for Moodle customisations (i.e. Squirrelmail SSO
   or enrolment plugins) that need to share Moodle session information
   with a web application on another subdomain.

 * Will NOT work if the moodle host does not have a domain - i.e. just a
   hostname, e.g. 'localhost' or 'myhostname'. Needs a FQDN

 * Currently the setting is set to PARAM_TEXT length 50 since PARAM_HOST
   does not allow a leading dot e.g.  '.mydomain.com'

 * TODO: do we make up a new PARAM_COOKIEDOMAIN which is the same as
   PARAM_HOST but allows leading dots? Using PARAM_HOST and prepending a
   dot may not always be desirable.
2008-12-14 23:30:58 +00:00
jonathanharker 501592d7be MDL-17549 auth/radius: add CHAP and MSCHAP auth support, detect PHP reqs
* Added support for CHAP and MSCHAP authentication schemes
   contributed by Stanislav Tsymbalov http://www.tsymbalov.net/
   original code at http://sourceforge.net/projects/moodleradius/

 * Tweak the detection of PHP RADIUS extension and Pear code

 * Update the warning notices to use more Moodly CSS classes

 * Add PEAR Auth_RADIUS and Crypt_CHAP packages to lib/pear
2008-12-14 23:18:53 +00:00
moodlerobot a658b7fe9c Updated the 19 build version to 20081214 2008-12-13 23:52:18 +00:00
mudrd8mz f9ed2393be MDL-16430 replaces hardcoded format to the one specified in the
langconfig.php
2008-12-13 02:19:41 +00:00
moodlerobot 7f8cd6639a Updated the 19 build version to 20081213 2008-12-12 23:53:42 +00:00
moodlerobot 689dfa7a7c Automatic installer.php lang files by installer_builder (20081213) 2008-12-12 23:52:23 +00:00
danmarsden f0e02543da include filelib.php:MDL-17622: 2008-12-12 19:39:32 +00:00
tjhunt 159865b202 multichoice qtype upgrade: MDL-17619 referring to constant from questionlib.php, which was not being included. 2008-12-12 13:12:59 +00:00
skodak 7fae1f7b6c MDL-17589 fixed handling of missing caps in admin tree 2008-12-12 10:45:48 +00:00
tjhunt c9f0c6e754 questions manual grading: MDL-15147 refine the logic for distinguishing '' and 0, so you can grade an essay 0 without making a comment, but also, grade some, but not all student's work in the manual grading report. 2008-12-12 09:00:03 +00:00
tjhunt b4502ae40f quiz info page: MDL-9542 refix: overridden grades in the gradebook not visible to students in the quiz UI, 2008-12-12 07:24:41 +00:00
tjhunt aa77a3d3de match qtype: MDL-17326 backup and restore problems
* The shuffleanswers options was not backed up or restored.

* Responses were not properly recoded on restore.
2008-12-12 06:45:01 +00:00
tjhunt c414f9e5ad course categories: fix typo introduced when fixing MDL-10801 2008-12-12 06:18:56 +00:00
tjhunt 2eaf6c0e95 matching qtype: MDL-17496 With filterall and multilang, the contents of the dropdowns was not being properly filtered
This was caused becuse the solution to MDL-9005 was not quite right.
2008-12-12 04:39:30 +00:00
tjhunt 26207ab4c2 numerical and shortanswer question types: problems with compare_responses and test_response.
MDL-15315 The previous fix for this issue with wildcard answers in the item analysis report caused the following two regressions. This patch fixes it properly.

MDL-17247 This is basiclly pointing out the weridness in the previous fix and gave some useful clues as to a proper solution. Thanks Oleg.

MDL-17610 This was a report of a problem with each attempt builds on last, with a shortanswer question, where the sutdent's response contains a '.

Also, lots of unit tests to try to ensure the new code is right.
2008-12-12 03:48:32 +00:00
tjhunt 23179e6a47 questionlib: clarify a comment. 2008-12-12 02:50:29 +00:00
moodlerobot 7fc859e6e4 Updated the 19 build version to 20081212 2008-12-11 23:53:23 +00:00
moodlerobot 29b951b6dd Automatic installer.php lang files by installer_builder (20081212) 2008-12-11 23:51:53 +00:00
danmarsden 080eed3f12 fix typo, improve text a bit:MDL-17612 2008-12-11 21:35:56 +00:00
stronk7 70cf5492bc MDL-17009 Restore of mnet users: Fix incorrectly named MNET_EXTERNALUSERS 2008-12-11 16:37:37 +00:00
tjhunt 9af88f530b course search: MDL-10801 Search terms were not being highlighted consistently in the results. 2008-12-11 10:47:57 +00:00
tjhunt 954a3a0b9c weblib: MDL-17606 Make the highlight function better, with unit tests. 2008-12-11 10:34:07 +00:00
tjhunt cf0031eef4 admin tree: MDL-10047 and MDL-13104 weird things happen when you turn editing on and off.
That was becuase not enough information was being passed in for the blocks editing controls to construct the right URL to reload the page.

It is also now possible for admin external pages to add some UI next to the turn blocks editing on/off button. For example, when you are editing the list of course catgories, the turn editing off button is now in the right place.
2008-12-11 09:21:52 +00:00
tjhunt bae97d133b forum subscriptions: MDL-14876 user of deprecated functions was breaking managing subscribers.
This was visible when, for example, unusual role definitions meant that someone could access a forum without being enrolled in a course.

Note that one of the places that was previously broken was front page forums. Since subscribers.php does not do paging at all, the fact that I have fixed this bug makes this page dangerous on large sites. A proper solution will have to wait until bug 17550 is fixed in HEAD.

This also fixes a minor problem introduced by MDL-12979.
2008-12-11 07:02:09 +00:00
tjhunt 4f4fa095e9 question bank: MDL-14376 Errors deleting a course containing Cloze questions.
(For some reason, this only seemed to cause problems on MySQL.)
2008-12-11 05:31:41 +00:00
dongsheng 576fe29a1c "MDL-16954, get rid of remote_addr notice on cli, set ip = 0.0.0.0 in mdl_log table when accessed from cli" 2008-12-11 05:17:02 +00:00
tjhunt 50a8526252 multianswer qtype help: Fix HTML errors. 2008-12-11 05:14:39 +00:00
tjhunt 5be081f0d9 matching qtype: MDL-14420 Could not use '0' as a question stem. Oops, more tests need to be corrected. 2008-12-11 05:01:43 +00:00
tjhunt 112b018900 matching qtype: MDL-14420 Could not use '0' as a question stem. Bloody PHP! 2008-12-11 04:57:45 +00:00
tjhunt 2c87248acc matching qtype: whitespace cleanup. 2008-12-11 04:55:48 +00:00
dongsheng e6551f36d0 "MDL-17469, fix assignment date when restore course" 2008-12-11 04:37:11 +00:00
tjhunt 88575207d3 numerical qtype: MDL-15159 Error moving a numerical question type with no units from one category to another. 2008-12-11 04:33:48 +00:00
moodlerobot 4058e8bacc Updated the 19 build version to 20081211 2008-12-10 23:54:14 +00:00
thepurpleblob dc37ac0b2f MDL-11090
Added absent trim - Thanks Tim :-)
2008-12-10 09:37:37 +00:00
dongsheng f3355b7b06 "MDL-17570, cleanup inline css" 2008-12-10 07:09:48 +00:00
tjhunt 110b003f86 quiz manual grading: MDL-5517 manual grading pop-up is too small. HTML editor does not fit. 2008-12-10 07:06:18 +00:00
dongsheng 1c870741af "MDL-17570, cleanup inline css settings" 2008-12-10 06:30:23 +00:00
tjhunt 51134a7b79 quiz: MDL-6085 when editing a question from various places like a preview attempt or review screen, don't use a popup, instead take advantage of the fact that question.php now takes a returnurl. 2008-12-10 06:22:04 +00:00
dongsheng 7921d02f15 "MDL-17570, clean up align property in div" 2008-12-10 06:07:39 +00:00
dongsheng f9c1a62f86 "MDL-17570, cleanup align property in div" 2008-12-10 06:05:24 +00:00
tjhunt 4fb4ff22a6 Simple whitespace cleanup. 2008-12-10 05:32:58 +00:00
tjhunt 5d922e47f7 course request: MDL-17575 and MDL-6160 further improvements:
1/ email notification when course requested
2/ course request capability so that we can limit who can request new course
3/ list of my pending course requests on the request form

Implemented in 1.9 by Petr Skoda, and reviewed and merged to HEAD by me.
2008-12-10 02:57:51 +00:00
tjhunt bc7bc8e1d6 performance: MDL-17577 only include lib/questionlib.php from the few parts of mod/quiz/lib.php that actually need it. 2008-12-10 02:11:24 +00:00
tjhunt 7b7863fa69 truefalse qtype: MDL-12027 remove spurious alt attribute from truefalse qtype radio buttons. 2008-12-10 00:54:33 +00:00
moodlerobot 4a8ded6144 Updated the 19 build version to 20081210 2008-12-09 23:53:54 +00:00
piers 7eea186ea0 MDL-17572 - remove php short tags. backport to 1.9. 2008-12-09 22:03:01 +00:00
danmarsden 1067cd48e9 fix php short tags:MDL-17566: Thanks Stephen Bourget 2008-12-09 20:38:28 +00:00
skodak 5903377c7a MDL-17479 category search: replaced old update capability 2008-12-09 20:29:15 +00:00
skodak ef232b4294 MDL-17502 oops, I have overlooked Tim already fixed this - sorry 2008-12-09 16:34:37 +00:00
skodak 16d3155e4e MDL-17502 accesslib: added warning if incorrect parameters supplied to has_all_capabilities() and fixed parameters in course lib code; backported from HEAD 2008-12-09 16:26:16 +00:00
tjhunt 248be37230 course categories: MDL-17502 followup. Fix notices. I'm sure I remember writing this code yesterday! 2008-12-09 09:27:17 +00:00
tjhunt 20cd50e2e7 course settings: MDL-17501 fix potential problem for people upgrading 1.6 -> 1.9.4.
I am amazed that Petr spotted this. Great catch.
2008-12-09 04:49:06 +00:00
moodlerobot aaae02a573 Updated the 19 build version to 20081209 2008-12-08 23:53:30 +00:00
skodak 2fa8ad59f9 MDL-17559 user edit: fixed undefined email property warnings 2008-12-08 20:15:39 +00:00
exe-cutor b926e3dde5 Added Upgrade instructions for Shibboleth 2.x
Corrected some typos for logout section
2008-12-08 10:46:13 +00:00
exe-cutor 8f12ddef8e Added fix for Shibboleth 2.x 2008-12-08 10:45:47 +00:00
tjhunt 02d92a5513 course categories: MDL-17502 when deleting a category and its contents, check moodle/course:delete capability.
* Note: this would never lead to problems with default role definions.
* Also ended up mostly rewriting delete_category_form to simplify the messages that are displayed.
* New helper function require_all_capabilities, a bit like require_any_capability.
2008-12-08 07:28:04 +00:00
tjhunt da4676a27e course settings: MDL-17501 check for moodle/course:visibility in the course settings form.
1. If a user does not have that capability, don't let them change whether the course is visible.
2. Give teachers that capability by default.
3. To avoid regressions, on upgrade, give moodle/course:visibility to any role that has moodle/course:update.
2008-12-08 02:30:56 +00:00
tjhunt 56d2fd74d9 Fix typo in error message. 2008-12-08 01:18:44 +00:00
skodak 52b6dd1533 MDL-17368 removing unused html area spell checker - we have our own implementation 2008-12-08 00:11:14 +00:00
moodlerobot 3656fb017a Updated the 19 build version to 20081208 2008-12-07 23:53:27 +00:00
moodlerobot c1832e69da Automatic installer.php lang files by installer_builder (20081208) 2008-12-07 23:51:58 +00:00
skodak c396e2239c MDL-17519 - restore: preventing group member duplicates 2008-12-07 22:24:06 +00:00
danmarsden 99c13aae72 force scorm update:MDL-17034: force update of SCORM when scorm_simple_play is used. merged from HEAD 2008-12-07 22:18:29 +00:00
piers 374b0f29cd MDL-17115 - SCORM onload API checking. Hunt for the API. backport 1.9. 2008-12-07 22:15:24 +00:00
danmarsden 0857948493 skip content structure page:MDL-11908: skip content structure page with multiple scos - if a teacher has set to skip, it should skip! - even with multiple scos. merged from HEAD 2008-12-07 22:09:46 +00:00
skodak d3363def5a MDL-17537 course request: shortname field shortened because db can store max 15 chars 2008-12-07 21:54:35 +00:00
skodak 2bc4631d41 MDL-17547 added missing param type 2008-12-07 21:30:48 +00:00
stronk7 86a01e810f MDL-17545 activity names filter: Improve handling when name contains htmlentities() chars. 2008-12-07 18:55:18 +00:00
stronk7 d84dacba45 MDL-17518 resource names filter: Improve handling when name contains htmlentities() chars. 2008-12-07 17:32:44 +00:00
moodlerobot 89f67f45aa Updated the 19 build version to 20081207 2008-12-06 23:52:59 +00:00
skodak 1d7651e19f MDL-15785 new options for enforcing of enrolment key commplexity and requirements; backported from HEAD 2008-12-06 21:21:55 +00:00
skodak 540875d055 MDL-17372 fixed regression in 3rd party admin reports 2008-12-06 20:41:42 +00:00
skodak 0043e716bc MDL-11265 added shorter log retention periods and a warning that it might have some side effects; backported from HEAD 2008-12-06 17:45:30 +00:00
moodlerobot 4c83ff8612 Updated the 19 build version to 20081206 2008-12-05 23:53:04 +00:00
moodlerobot 4c47d171d1 Automatic installer.php lang files by installer_builder (20081206) 2008-12-05 23:51:36 +00:00
mchurch 13c223cb2f MDL-17539 - Added a 'courseid' condition to the 'LEFT JOIN' of 'lastaccess' to limit the records returned to the correctly requested course. 2008-12-05 21:35:47 +00:00
tjhunt 7f2e6a23a9 course request: MDL-9854 major cleanup to the course request code.
* Rewrite all the forms to use formslib and improve usability.
* Put the place where admins need to go to process approvals in the admin menu.
* Show the request course/pending requests button on the page for the category that requested courses get added to.
2008-12-05 08:57:06 +00:00
tjhunt 32b1759f9d quiz settings: MDL-16781 Avoid concatenating and calling strtolower on language strings. 2008-12-05 04:20:32 +00:00
dongsheng e753201ea8 HTMLAREA/MDL-17448
fix flaw in logic, yui event module shouldn't be loaded in IE. Credit go to Kris Thornley, thanks.
2008-12-05 00:57:21 +00:00
moodlerobot 5cc23984d6 Updated the 19 build version to 20081205 2008-12-04 23:53:10 +00:00
moodlerobot a853baa1ef Automatic installer.php lang files by installer_builder (20081205) 2008-12-04 23:51:41 +00:00
pichetp 72a0975fd2 MDL-17524 Merging from HEAD
Deleting a calculated question delete datasetdefinitions shared by other question
2008-12-04 16:32:16 +00:00
exe-cutor 9333948786 Added Shibboleth front and back channel logout support 2008-12-04 16:27:00 +00:00
tjhunt 79518165b9 course categories: Fix many bugs with category editing and permissions. Clean up code.
Bugs: MDL-17479, MDL-16426, MDL-16063, MDL-16013, MDL-15658, MDL-15556, MDL-15161, MDL-14925, MDL-13742, MDL-11557.

* Simplify category editing permissions to just moodle/category:manage and moodle/category:seehiddencategories.
* Enforce those correctly. (Note MDL 17502 is still outstanding.)
* Don't screw up category sort order when you just edit name or description.
* Niceties like where redirects go when you cancel or submit forms.
* Make sure a global course creator can see the site admin block.
* Don't allow a category to be made the child of one of its children!
* General code cleanup to bring key files more in line with best pracitice.

Apologies for the fact it is one big patch, rather than a series of smaller patches. However, categoryedit.php, category.php and index.php where in pretty bad shape and needed significant cleaning up. categoryedit.php, in particular, was almost completely rewritten.
2008-12-04 08:49:47 +00:00
dongsheng 39dc0663e2 "htmlarea/MDL-17448, fix enlarging htmlarea, thanks chris fryer" 2008-12-04 08:22:20 +00:00
dongsheng b1b3aede9c ASSIGNMENT, RESTORE/MDL-17469 2008-12-04 08:04:09 +00:00
piers 383570242d MDL-17310 - Fixup an issue with relative directory paths. Thanks Jonathan. backport 1.9. 2008-12-04 03:26:24 +00:00
moodlerobot be0420e2ee Updated the 19 build version to 20081204 2008-12-03 18:37:55 +00:00
moodlerobot 44805fee30 Automatic installer.php lang files by installer_builder (20081204) 2008-12-03 18:30:36 +00:00
ericmerrill bde30ae513 weblib: MDL-16293: background-color attribute stripped from html. Adding 'background-color' attribute to $ALLOWED_PROTOCOLS array so kses doesn't drop it. 2008-12-03 16:48:08 +00:00
samulik 2e9cb9d29a course import: MDL-17497 PHP was running out of memory if a category had a lot of courses. Now get_courses only fetches course id and fullname. 2008-12-03 16:31:01 +00:00
piers b645325d98 MDL-17498 - fix postgres compatibility on recent activity block integration, correct recent activity links to trigger actual assignments. Lots of whitespace fixing. 2008-12-03 05:59:11 +00:00
pichetp fcb5bc8193 MDL-17264 merging the last version from HEAD a second time... 2008-12-02 05:19:11 +00:00
tjhunt 270b6e3444 help file: MDL-17490 multianswer help file was in the wrong place. 2008-12-02 03:26:42 +00:00
skodak d41415da8a MDL-17392 - mailstop typo - credit goes to Daniel Neis, thanks 2008-12-01 22:37:12 +00:00
skodak 98d9032ce1 MDL-17486 added option to make my courses list in user profile hidden; backported from HEAD 2008-12-01 22:06:55 +00:00
skodak 741426a8f6 MDL-11261 hiddenuserfields/lastaccess now fully respected on participants page; backported from HEAD 2008-12-01 20:46:13 +00:00
skodak 67a8105001 MDL-11261 setting hidden user lastaccess now works on outline report; backported from HEAD 2008-12-01 20:02:27 +00:00
skodak b2908c36a7 MDL-17485 roles: fixed use and definition of moodle/user:viewuseractivitiesreport; backported from HEAD 2008-12-01 19:20:16 +00:00
tjhunt 059ec02aaa Fix notice. 2008-12-01 07:19:40 +00:00
tjhunt c353917324 Remove unnecessary extra $Id$ tag. It messes up the unmerged files list, and makes merging extra difficult. 2008-12-01 07:09:44 +00:00
tjhunt 426c2ba5b2 restore: MDL-17480 Potentially expensive function user_can_create_courses called repeatedly from restore UI. 2008-12-01 06:55:31 +00:00
danmarsden a546aa2eec don't use copy() for http based copies: MDL-16123: use download_file_content for external SCORM packages instead of copy() 2008-12-01 05:27:59 +00:00
skodak a1990f18ef MDL-11259 stats report: do not show links to logs if not having required capability; backported from HEAD 2008-11-30 21:34:29 +00:00
skodak 8d2ef9efe8 MDL-17472 notes: backported disabling of notes and general refactoring from HEAD 2008-11-30 19:25:48 +00:00
skodak f499321716 MDL-11984 blocks: new capability block/online_users:viewlist which may be used to restrict viewing of list of online users, if cap not allowed only number of users dispalyed, I hope this will be also faster because only one query used now (insetad of two); for BC reasons enabled by default in all legacy roles; backported from HEAD 2008-11-30 15:43:28 +00:00
skodak 8f2f9d3d08 file access.php was added on branch MOODLE_19_STABLE on 2008-11-30 15:43:28 +0000 2008-11-30 15:42:48 +00:00
skodak 89ee56ed69 MDL-17372 moving the categories out of the if cap block - cap report needs to add page there; backported from HEAD 2008-11-30 14:20:32 +00:00
skodak 7ea8ea7f0a MDL-17464 profile reports are now respecting course report caps; backported from HEAD 2008-11-30 12:05:03 +00:00
piers d45250b531 MDL-16651 - add in delete attempt capability - thanks Dan/Tim. backport 1.9. 2008-11-29 17:56:43 +00:00
skodak cecd63c9f2 MDL-17372 new course reports string - role definition improvement 2008-11-29 16:28:21 +00:00
skodak 1a16c4486c MDL-17465 - separate live log capability adn admin tree link; backported from HEAD 2008-11-29 16:23:45 +00:00
skodak 0d2aa4a617 MDL-17465 - separate live log capability adn admin tree link; backported from HEAD 2008-11-29 16:16:21 +00:00
skodak 19a4956b35 file indexlive.php was added on branch MOODLE_19_STABLE on 2008-11-29 16:16:22 +0000 2008-11-29 16:15:40 +00:00
skodak f93c5dcf23 MDL-17463 - renamed outline to activity report 2008-11-29 15:08:46 +00:00
skodak 22a987837c MDL-17463 - reparate capabilities for course and admin reports; backported from HEAD 2008-11-29 14:30:55 +00:00
skodak c6bfc43c7c file version.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:30:58 +0000 2008-11-29 14:22:15 +00:00
skodak f23d1d4057 file access.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:31:00 +0000 2008-11-29 14:22:15 +00:00
skodak 8c25e10349 file version.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:30:57 +0000 2008-11-29 14:22:14 +00:00
skodak 475a460b6e file report_courseoverview.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:30:58 +0000 2008-11-29 14:22:12 +00:00
skodak 9f1bf377ac file coursereport_stats.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:30:59 +0000 2008-11-29 14:22:12 +00:00
skodak ec3bd695f3 file coursereport_participation.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:30:58 +0000 2008-11-29 14:22:12 +00:00
skodak 26d7e0294c file coursereport_outline.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:30:59 +0000 2008-11-29 14:22:12 +00:00
skodak 37be511e7c file coursereport_log.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:30:58 +0000 2008-11-29 14:22:12 +00:00
skodak da9dcf8ef7 file version.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:31:00 +0000 2008-11-29 14:22:11 +00:00
skodak ee65d12cfe file access.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:31:01 +0000 2008-11-29 14:22:11 +00:00
skodak b989fe2b0f file access.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:30:59 +0000 2008-11-29 14:22:11 +00:00
skodak a429bdab98 file version.php was added on branch MOODLE_19_STABLE on 2008-11-29 14:30:55 +0000 2008-11-29 14:22:10 +00:00
skodak 7b6f15a8c4 MDL-17372 admin reports: Added full plugin support for admin reports - fixed sorting regression, plugins now loaded as last category; backported from HEAD 2008-11-28 08:12:51 +00:00
danmarsden e8b6d6f62c MDL-17115 - no point in waiting for SCORM API to load when we know JS is disabled. merged from HEAD 2008-11-28 06:49:49 +00:00
tjhunt ae7b2e3829 random essay questions: MDL-8648 Allow essay questions to be selected by random question.
In the 1.9 branch this is controlled by a new option under Admin -> Experimental. In Moodle 2.0 dev it is not optional, it just works.

The main change is letting the manual grading report know which random questions might need manual grading. MDL-4004 - this depends on the random question under consideration, which requires a new questiontype method.

I also changed the random question code so that I could remove some global variables.
2008-11-28 06:07:24 +00:00
tjhunt 52e24fe922 file qtype_random.php was added on branch MOODLE_19_STABLE on 2008-11-28 06:07:24 +0000 2008-11-28 06:07:12 +00:00
ikawhero 0c51eaa6f0 MDL-17434 Full URLs for enrol/unenrol links 2008-11-28 06:03:16 +00:00
tjhunt 5c4bcc266e questionlib: fix typo. 2008-11-28 02:41:06 +00:00
moodlerobot 57dfa1557b Updated the 19 build version to 20081128 2008-11-28 01:57:46 +00:00
skodak 12748c8425 MDL-17372 course reports: Added full plugin support for course reports - backported from HEAD 2008-11-27 20:31:02 +00:00
tjhunt 901c4aae9f question bank: MDL-14434 Cannot edit the only question category in a context. 2008-11-27 11:50:20 +00:00
tjhunt 761e1f5cb5 listlib: MDL-17422 Paging in listlib was badly screwed 2008-11-27 10:53:40 +00:00
tjhunt 874be4b0f0 question bank: MDL-17078 Error after deleting a question category. 2008-11-27 07:30:11 +00:00
tjhunt 4ec232ec6a health centre: MDL-16935 Question categories should belong to a valid context solution has SQL that does not work in MySQL 2008-11-27 05:57:04 +00:00
tjhunt 3cacf33b58 fix notices: MDL-15974 Some systems that were upgraded have nullable columns, leading to notices
A new install has NOT NULL DEFAULT 0.
2008-11-27 05:07:47 +00:00
tjhunt 35c7aaa325 quiz item analysis report: MDL-13427 <br> tags in the headers of some columns. 2008-11-27 04:48:11 +00:00
moodlerobot 331fb695a9 Updated the 19 build version to 20081127 2008-11-27 02:03:18 +00:00
skodak 2d89f2de76 MDL-17372 admin reports: Added full plugin support for admin reports; added specail capability for unittest execution, minor refactoring - backported from HEAD 2008-11-26 20:58:03 +00:00
skodak 2910d40ad0 file version.php was added on branch MOODLE_19_STABLE on 2008-11-26 20:58:04 +0000 2008-11-26 19:27:41 +00:00
skodak e998027091 file settings.php was added on branch MOODLE_19_STABLE on 2008-11-26 20:58:07 +0000 2008-11-26 19:27:41 +00:00
skodak 065a86dbf7 file settings.php was added on branch MOODLE_19_STABLE on 2008-11-26 20:58:03 +0000 2008-11-26 19:27:41 +00:00
skodak 8a893ed82f file report_unittest.php was added on branch MOODLE_19_STABLE on 2008-11-26 20:58:06 +0000 2008-11-26 19:27:41 +00:00
skodak 3b85388c00 file index.php was added on branch MOODLE_19_STABLE on 2008-11-26 20:58:04 +0000 2008-11-26 19:27:41 +00:00
skodak a5eebeaea3 file access.php was added on branch MOODLE_19_STABLE on 2008-11-26 20:58:07 +0000 2008-11-26 19:27:41 +00:00
skodak 087d36b6e5 file report.php was added on branch MOODLE_19_STABLE on 2008-11-26 20:58:05 +0000 2008-11-26 19:27:40 +00:00
skodak 8e66f84d9f file settings.php was added on branch MOODLE_19_STABLE on 2008-11-26 20:58:06 +0000 2008-11-26 19:27:39 +00:00
thepurpleblob ebce25e7b9 MDL-17125
Fix as suggested by Jonathan Kemp.
2008-11-26 15:13:51 +00:00
thepurpleblob 0afa12be00 MDL-11090
Passwords are now held in clear text so you can see what the password
is on the config screen.
Still backward compatible with old md5 passwords (which are still not displayed
of course)
2008-11-26 14:30:22 +00:00
thepurpleblob 1272fbf749 MDL-17411
defaultquestion() now reflects the one in the question bank code, thus supressing
lots of notices
2008-11-26 13:08:32 +00:00
thepurpleblob 498e0d12d8 MDL-14155
$a in string no longer required. Changed the text slightly to make it make some sense.
2008-11-26 11:49:11 +00:00
moodlerobot 08cbafdeac Updated the 19 build version to 20081126 2008-11-26 02:03:24 +00:00
moodlerobot 7b9d66434b Automatic installer.php lang files by installer_builder (20081126) 2008-11-26 01:56:28 +00:00
jerome 5649654bd5 database: MDL-16999 update 'Required Entries' warning message 2008-11-25 02:43:53 +00:00
moodlerobot 71a93cd00e Updated the 19 build version to 20081125 2008-11-25 02:00:15 +00:00
pichetp a208bffde9 MDL-17264 Merged from HEAD
Adding control of usecase for the shortanswer type using SHORTANSWER_C or
 SAC or MWC,
2008-11-24 16:46:31 +00:00
dongsheng cc89382bdc FILTER/MDL-17360
media plugin is truncating width and height to 3 digits, patched by Vlas Voloshin.
2008-11-24 01:59:12 +00:00
moodlerobot 04bf1303c2 Updated the 19 build version to 20081124 2008-11-24 01:58:48 +00:00
moodler 542cd89f8d Emoticons MDLSITE-564 Patch to avoid [[brackets]] around alt text 2008-11-24 01:02:33 +00:00
jerome 490414af8d database: MDL-16999 move the flag from config table to config_plugins table 2008-11-24 00:51:58 +00:00
piers 4df7f4237e MDL-17310 - take the opportunity to change the scorm defaults to a highest grade orientation. backport to 1.9. 2008-11-23 21:41:40 +00:00
moodlerobot dad879ae99 Updated the 19 build version to 20081123 2008-11-23 01:53:00 +00:00
moodlerobot f0a8545516 Automatic installer.php lang files by installer_builder (20081123) 2008-11-23 01:46:38 +00:00
moodlerobot 67aea44be9 Updated the 19 build version to 20081122 2008-11-22 02:05:49 +00:00
moodlerobot ae3c9c36d4 Automatic installer.php lang files by installer_builder (20081122) 2008-11-22 01:59:18 +00:00
mudrd8mz daed839963 MDL-17357 Removed duplicate string definition 2008-11-21 23:04:06 +00:00
mudrd8mz 9280eac530 MDL-17356 Use Unix style end of lines 2008-11-21 22:46:31 +00:00
jerome f597bba458 database: MDL-16999 fix "Required Entries" and "Required Entries before viewing" settings. Display a warning message during upgrade process if the fields were set previously. 2008-11-21 07:01:00 +00:00
moodlerobot 54d2128109 Updated the 19 build version to 20081121 2008-11-21 02:12:19 +00:00
moodlerobot eeae9616be Automatic installer.php lang files by installer_builder (20081121) 2008-11-21 02:05:15 +00:00
nicolasconnault 10b1faa27f MDL-17218 Copied the image where the css expects it to be. 2008-11-20 14:36:10 +00:00
moodlerobot 5cbd2c991b Updated the 19 build version to 20081120 2008-11-20 02:01:40 +00:00
skodak 5866dee70a MDL-17236 html block: proper cleanup of html; backported from HEAD 2008-11-19 16:47:13 +00:00
skodak c1ed31c01f MDL-17310 scorm: Install asks for scorm &auth questions on install rather than just front page settings - whitespace 2008-11-19 15:11:25 +00:00
skodak f92fbb037d MDL-17274 security: register globals not supported- now we are preventing upgrades and installs too; backported from HEAD 2008-11-19 09:46:38 +00:00
moodlerobot 934f6bd973 Updated the 19 build version to 20081119 2008-11-19 02:10:25 +00:00
moodlerobot 9be463a33b Automatic installer.php lang files by installer_builder (20081119) 2008-11-19 02:03:28 +00:00
stronk7 836bd9aad4 MDL-15534 Wiki 1.0: Allow to display "Site map for" using i18n Moodle strings 2008-11-19 01:25:49 +00:00
skodak 63e73da77b MDL-17143 $CFG->profilesforenrolledusersonly does not belong into advanced user edit form - it was removing description if user had only create user cap 2008-11-18 21:43:34 +00:00
moodlerobot f3b83353e7 Updated the 19 build version to 20081118 2008-11-18 01:54:30 +00:00
moodlerobot f1855ba03b Automatic installer.php lang files by installer_builder (20081118) 2008-11-18 01:48:29 +00:00
stronk7 5979de1b0e MDL-15425 Coding style: Change some logical operator uses. Thanks Robert! 2008-11-18 00:08:39 +00:00
stronk7 d8f015100a MDL-17200 deprecated & front page: Fix deprecated get_course_users() and get_course_students() to work properly against front page. 2008-11-17 22:52:29 +00:00
moodlerobot b3bca79c74 Updated the 19 build version to 20081117 2008-11-17 02:08:40 +00:00
moodlerobot 465bd9f5be Automatic installer.php lang files by installer_builder (20081117) 2008-11-17 02:02:03 +00:00
stronk7 d3a94cbbe4 Mini-bump version 2008-11-16 23:38:27 +00:00
stronk7 de67f68127 MDL-16879 Backup & mnet: Avoid problems in sites missing mnet_host records being more flexible in backup (outer join). 2008-11-16 23:20:47 +00:00
stronk7 0329e38af7 MDL-17227 forum: seekey-ize forum prune (split) 2008-11-16 22:45:05 +00:00
moodlerobot b5c9d33a7f Updated the 19 build version to 20081116 2008-11-16 01:51:53 +00:00
iarenaza d430e7feb5 file resources: MDL-14541 Object tag embedding PDF's and nested Flash objects does not work reliably
Credit goes to David Boyer for reporting and suggesting the fix for PDF files,
and Jon Witts & Mauno Korpelainen for proving a way to reproduce the Flash
issue and tips to fix it.
2008-11-15 12:22:32 +00:00
moodlerobot dd50f0d6da Updated the 19 build version to 20081115 2008-11-15 01:55:48 +00:00
moodlerobot 296da1a31b Automatic installer.php lang files by installer_builder (20081115) 2008-11-15 01:48:06 +00:00
stronk7 ef0d6a6a8f MDL-17227 forum: add sesskey to post/discussion deletion 2008-11-14 08:50:45 +00:00
moodlerobot 24050cd891 Updated the 19 build version to 20081114 2008-11-14 02:01:41 +00:00
moodlerobot c303dca672 Automatic installer.php lang files by installer_builder (20081114) 2008-11-14 01:54:57 +00:00
piers 9e7f70ddab MDL-16810 - Allow site configuration of scorm settings. Thanks Jason Hardin. Backport 1.9. 2008-11-14 00:14:49 +00:00
piers b40bf0bf58 MDL-16949 - fix wrong addition of times in SCORM API, thanks Xabi Martin. backport 1.9. 2008-11-14 00:06:22 +00:00
nicolasconnault a60ed2afc6 MDL-17226 Hiding the group show/hide settings and toggle for grader report 2008-11-13 15:43:19 +00:00
wildgirl cb03609eed lesson lang string: MDL-17209 typo fix 2008-11-13 14:59:43 +00:00
wildgirl 926da7c331 xmldb lang string: MDL-17209 typo fix 2008-11-13 14:58:09 +00:00
wildgirl 01edd51f1a qtype_datasetdependent lang string: MDL-17209 typo fix 2008-11-13 14:56:28 +00:00
wildgirl 0a3eb4efac wiki lang string: MDL-17209 typo fix 2008-11-13 14:54:17 +00:00
wildgirl 74ed9155a1 install lang string: MDL-17209 typo fix 2008-11-13 14:52:06 +00:00
wildgirl e6e54c85e9 auth lang string: MDL-17209 typo fix 2008-11-13 14:50:05 +00:00
wildgirl 79875473a4 mnet lang string: MDL-17209 typo fix 2008-11-13 14:47:57 +00:00
wildgirl fca0b1c6dd qtype_truefalse lang string: MDL-16942 typo fix 2008-11-13 14:24:01 +00:00
wildgirl f29dd7aac0 profilesforenrolledusersonly setting: MDL-17143 lang string rewording 2008-11-13 11:22:15 +00:00
tjhunt ac9c42de1f course settings: MDL-16327 when creating a course, the role renames were not saved. 2008-11-13 08:21:47 +00:00
moodlerobot eddf18d9f2 Updated the 19 build version to 20081113 2008-11-13 01:57:26 +00:00
moodlerobot fa44bc2fb8 Automatic installer.php lang files by installer_builder (20081113) 2008-11-13 01:51:23 +00:00
sam_marshall 2232f4fbd9 MDL-17164: Glossary autolinking doesn't work for entries similar to current entry 2008-11-12 17:02:23 +00:00
pichetp 6995ba729a MDL-14763 remove automatic numbering of multichoice vertical or horizontal display 2008-11-12 07:05:21 +00:00
danmarsden 49d62e0d49 scorm: MDL-16185 display warning when zlib_compression on - causes errors with certain browsers. merged from HEAD 2008-11-12 06:37:35 +00:00
moodlerobot bc6d265d16 Updated the 19 build version to 20081112 2008-11-12 02:12:13 +00:00
stronk7 aeaff0b308 MDL-17143 Bump version to force new profilesforenrolledusersonly setting 2008-11-11 19:09:10 +00:00
stronk7 b0a9e1c532 MDL-17143 Some improvements suggested by Petr applied. 2008-11-11 19:00:48 +00:00
mjollnir_ 802af00aea Merged from HEAD: MDL-17207 filter/tex reverting removal of $pathname in
http://cvs.moodle.org/moodle/filter/tex/texed.php?r1=1.8&r2=1.7

This fixes a security problem only triggered with register_globals ON and magic_quotes_gpc OFF which is a very uncommon case

CVS: ----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS: 	filter/tex/texed.php
CVS: ----------------------------------------------------------------------
2008-11-11 18:35:42 +00:00
stronk7 f77f4743e2 MDL-17143 deleting one line that shouldn't be in core. Sorry. 2008-11-11 18:34:50 +00:00
stronk7 e9a53fb1ba MDL-17143 Avoid notices caused by not existing profilesforenrolledusersonly setting 2008-11-11 18:31:07 +00:00
jerome 4847ef9b3a activities search: MDL-13987 remove AS from SQL 2008-11-11 07:55:30 +00:00
tjhunt 5e304e4900 role assign: MDL-13325 when assigning roles inside front page activites, list all users as potential users. 2008-11-11 07:23:36 +00:00
moodlerobot a98b19c219 Updated the 19 build version to 20081111 2008-11-11 02:07:48 +00:00
moodlerobot 4d5b31c269 Automatic installer.php lang files by installer_builder (20081111) 2008-11-11 02:01:21 +00:00
pichetp 2e9f0b00e4 MDL-14763 new lang strings and MDL-17134 merged from HEAD 2008-11-10 19:54:41 +00:00
pichetp 1bda18dfb0 MDL-14763 new help file merged from HEAD 2008-11-10 19:44:27 +00:00
stronk7 58cbd74d66 MDL-17122 lang files: Reverting last manual commit. Installer lang files must be
generated automatically (by inclusion of strings in stringnames.txt)
2008-11-10 09:24:54 +00:00
tjhunt 5e1fd88ecb random questions: MDL-17185 regression from MDL-17160 random questions were no longer randomising.
Backporting Jamie's fix to 1.9, and making a minor improvement along the way.
2008-11-10 07:56:43 +00:00
jerome 5b64744053 Installation: MDL-17122 add comment and link to the Moodle Docs in the postgresql installation database page 2008-11-10 04:57:20 +00:00
dongsheng 85f1f34c85 "MDL-17143, don't display the user description at all when user isn't enrolled in any courses" 2008-11-10 02:57:00 +00:00
tjhunt 5c4db861ab quiz reports overview: MDL-17168 Cancelling 'are you sure you want to delete this attempt' still deletes it.
Report and fix thanks to Federico Botti. This was already fixed in 2.0, and was not a problem in 1.8. Therefore no need to merge.
2008-11-10 02:43:35 +00:00
moodlerobot 1964efc04b Updated the 19 build version to 20081110 2008-11-10 01:56:03 +00:00
pichetp bcc1885779 Merge from HEAD MDL-17104 and MDL-17105 unused old questions are deleted more
correclty and take in account that the actual questiontype/save_question()
create a new question  when categorytomove is not set..
2008-11-09 23:44:36 +00:00
stronk7 5037cf7014 MDL-17171 Glossary: Correct breadcrumb when exporting glossary. 2008-11-09 22:55:39 +00:00
piers 2bb6c9fbe4 MDL-17178 - fix grade update so that it happens both when the lesson status, and the score changes. Backport to 1.9. Fix bad debug statement in code (sorry). 2008-11-09 22:39:20 +00:00
piers 172e3b12a2 MDL-17178 - fix grade update so that it happens both when the lesson status, and the score changes. Backport to 1.9. 2008-11-09 22:33:12 +00:00
moodlerobot ec5978ac13 Updated the 19 build version to 20081109 2008-11-09 01:56:46 +00:00
moodlerobot 4c4faf547f Updated the 19 build version to 20081108 2008-11-08 01:55:08 +00:00
ikawhero 418a1ffb39 MDL-17151: Missing code to check for uniqueness of values 2008-11-07 05:51:54 +00:00
tjhunt e87035545b random questions: MDL-17160 Adding random questions, maximum option.
When counting how many options to put in the add NN random questions dropdown, we should only count questions of types that are usable by random.
2008-11-07 05:50:08 +00:00
jerome 11a786d55e MDL-13987: fix navigation links for Activities Administration page: check that the course list is not empty 2008-11-07 05:40:04 +00:00
jerome cac15c9ff3 MDL-13987: fix bottom navigation links for Activities Administration page 2008-11-07 05:34:09 +00:00
moodler 69017ad364 auth/cas MDL-17121 Upgraded to latest version which is LGPL 2008-11-07 01:59:35 +00:00
ikawhero 34c01a4a02 MDL-17151: Fixed typo. 2008-11-07 01:58:16 +00:00
moodlerobot 20a594645a Updated the 19 build version to 20081107 2008-11-07 01:54:55 +00:00
jerome 0baeccfd24 MDL-13987: fix navigation links for Activities Administration page 2008-11-07 01:52:50 +00:00
tjhunt 557caae4eb quiz results block: MDL-17137 block_quiz_results: manager links to group/overview are wrong.
Eloy told me exactly what to change. I don't know why he did not commit the fix himself!
2008-11-06 06:14:12 +00:00
moodlerobot 2d2955bc70 Updated the 19 build version to 20081106 2008-11-06 02:20:11 +00:00
danmarsden 710e078327 MDL-17140 should check if $data->id isn't empty before sending to get_record merged from HEAD 2008-11-06 01:05:59 +00:00
skodak 7a80df2bbc MDL-17110 snoopy: added import info; backported from HEAD 2008-11-05 09:14:09 +00:00
skodak 577d9d6de6 file moodle_readme.txt was added on branch MOODLE_19_STABLE on 2008-11-05 09:14:09 +0000 2008-11-05 09:13:38 +00:00
danmarsden b92ef5be76 MDL-17071 fix misleading text - it's removing enrolments not assignments - merged from HEAD 2008-11-05 07:14:08 +00:00
danmarsden 26aa7a8db9 MDL-17128 SCORM backuplib generates invalid XML - causes backup to fail. thanks to Mark Nielsen for patch. merged from HEAD 2008-11-05 06:53:02 +00:00
moodlerobot 1866371731 Updated the 19 build version to 20081105 2008-11-05 02:20:24 +00:00
stronk7 1905721bee MDLSITE-548 - langconfig: Adding thousands separator. 2008-11-04 16:39:08 +00:00
stronk7 8dc2432c92 MDLSITE-548 - langconfig: Adding thousands separator. Backported from HEAD. 2008-11-04 16:27:57 +00:00
wildgirl 436294e18c MDL-13702 example replaced with simpler one 2008-11-04 12:25:58 +00:00
jerome cc99016319 MDL-10021: display iframe when the resource is on another domain 2008-11-04 05:09:42 +00:00
jerome 39889df28a MDL-10021: fix xhtml/javascript 2008-11-04 02:25:43 +00:00
moodlerobot ed7ba2f8bd Updated the 19 build version to 20081104 2008-11-04 02:07:28 +00:00
moodlerobot 19202892a7 Automatic installer.php lang files by installer_builder (20081104) 2008-11-04 01:59:54 +00:00
jerome 6ebb04cff6 MDL-10021: use build_navigation() instead a string into print_header() 2008-11-04 01:52:33 +00:00
skodak b97a5d97bd MDL-17110 snoopy: imported new version 1.2.4; backported from HEAD 2008-11-03 07:56:36 +00:00
dongsheng b7c8bfd263 "MDL-16954, use rebert\'s patch to clean notice/warning in cron job via php cli" 2008-11-03 05:21:45 +00:00
moodlerobot f0f28e3a4e Updated the 19 build version to 20081103 2008-11-03 01:50:27 +00:00
moodlerobot 78eac44451 Updated the 19 build version to 20081102 2008-11-02 01:47:06 +00:00
skodak 57bdd314e4 MDL-17027: protect user profile images if $CFG->forcelogin enabled 2008-11-01 22:28:54 +00:00
skodak 9f29866371 MDL-17065 user: profile iamges of deleted users are not accessible anymore 2008-11-01 19:35:46 +00:00
mudrd8mz f00e699477 MDL-17094 Automatic language update can be disabled via $CFG->skiplangupgrade settings. 2008-11-01 19:30:56 +00:00
skodak b29f0b5d59 MDL-11789 fixed regressions preventing file caching when default used 2008-11-01 19:27:36 +00:00
skodak c372f7bac5 CONTRIB-849 phpPgAdmin integration hook 2008-11-01 17:52:21 +00:00
moodlerobot 7aa5da8b2e Updated the 19 build version to 20081101 2008-11-01 01:45:06 +00:00
stronk7 2fe9a6d323 MDL-14952 - roles: 'moodle/legacy:guest' was preventing admins to post
new discussions in fron page if $CFG->defaultfrontpageroleid = guest.
2008-11-01 00:28:40 +00:00
piers fc89ab2433 MDL-7068 - SCORM 2004 compliance - fix mod/scorm to handle core data elements correctly - now passes test DMI. backport 1.9. 2008-10-31 22:59:17 +00:00
stronk7 fac8b5db4f MDL-14998 - roles: add mod/forum:viewdiscussion protection to forum_get_discussions() 2008-10-31 21:48:21 +00:00
mudrd8mz 97928e7e50 MDL-17094 Allow translators to disable automatic language update during Moodle upgrade.
One needs just add $CFG->skiplangupgrade = true; to their config.php and keep their language pack up-to-date manually. This is intended for lang pack maintainers with CVS access only.
2008-10-31 21:01:03 +00:00
stronk7 0dca43644d MDL-14998 - roles: User needs to have mod/forum:viewdiscussion to be able to see news block. 2008-10-31 19:04:03 +00:00
jerome a4e5cc84e0 MDL-10021: change frame into object tag when display a Link Resource with navigation bar 2008-10-31 05:55:56 +00:00
moodlerobot f8b220ec70 Updated the 19 build version to 20081031 2008-10-31 02:08:29 +00:00
danmarsden 5123fa76c8 MDL-17050 excorising $_POST - thanks to mikec for patch - also check groupmode before bothering to get groupstuff to save some trees. merged from HEAD 2008-10-31 00:56:05 +00:00
gbateson 0105dfc1f3 MDL-16300: use cache to minimize use of get_users_by_capability() 2008-10-30 07:27:00 +00:00
gbateson 75f484f534 use "md5key" as secondary key on hotpot_strings table; allow for non-unique secondary keys on hotpot tables (can happen on hotpot_strings) 2008-10-30 06:23:41 +00:00
moodlerobot c9c457c268 Updated the 19 build version to 20081030 2008-10-30 01:53:03 +00:00
peterbulmer 8fca983968 MDL-15942 catch one more mnet update needing secure commit
Author: Peter Bulmer <peter.bulmer@catalyst.net.nz>
2008-10-30 01:42:17 +00:00
peterbulmer 1a445dc3fc MDL-17038 bugfixes
Author: Peter Bulmer <peter.bulmer@catalyst.net.nz>
2008-10-30 01:40:21 +00:00
peterbulmer 00959494a6 MDL-17038 - truncate overlength varchar fields before attempting to insert
Signed-off-by: Peter Bulmer <peter.bulmer@catalyst.net.nz>


Author: Peter Bulmer <peter.bulmer@catalyst.net.nz>
2008-10-30 01:39:45 +00:00
peterbulmer d5942d6a6f MDL-17038 formatting correction
Author: Peter Bulmer <peter.bulmer@catalyst.net.nz>
2008-10-30 01:39:09 +00:00
peterbulmer 5b407159d5 MDL-17038 Change to use sensible variable names
Author: Peter Bulmer <peter.bulmer@catalyst.net.nz>
2008-10-30 01:38:39 +00:00
peterbulmer e3c3610af1 MDL-17038 - refine query to limit size of returned data.
Author: Peter Bulmer <peter.bulmer@catalyst.net.nz>
2008-10-30 01:21:15 +00:00
piers 10610a60bc MDL-17052 - remove use of $_POST. backport to 1.9. 2008-10-29 16:15:03 +00:00
moodlerobot f0abdc5c72 Updated the 19 build version to 20081029 2008-10-29 01:50:47 +00:00
moodlerobot 13069faafe Updated the 19 build version to 20081028 2008-10-28 01:53:08 +00:00
tjhunt 3f51bef08c qtype multichoice: MDL-17029 - followup - revert my overzealous copying and pasting. Thanks to Myles Carrick for noticing my mistake. 2008-10-27 23:36:04 +00:00
tjhunt f42636806d qtype multichoice: MDL-17029 answernumbering option was not being backed up or restored. 2008-10-27 04:23:08 +00:00
tjhunt 4043d93219 qtype match: MDL-16450 Change validation so it is possible to create matching questions with two stems and three answers.
Thanks to Oleg Sychev for implementing this.
2008-10-27 02:33:28 +00:00
moodlerobot 700ba226f7 Updated the 19 build version to 20081027 2008-10-27 01:46:06 +00:00
moodlerobot 1db7d40fc9 Automatic installer.php lang files by installer_builder (20081027) 2008-10-27 01:39:27 +00:00
moodlerobot 156a376c41 Updated the 19 build version to 20081026 2008-10-26 01:41:26 +00:00
moodlerobot 0ada42290c Updated the 19 build version to 20081025 2008-10-25 01:51:42 +00:00
robertall 4e96b320ec [MDL-15425] Search Filters are too persistant 2008-10-24 19:47:47 +00:00
skodak 6e91016520 MDL-16785 bogus grades inserted when formulas used - credit Michael Spall and Ann Adamcik 2008-10-24 17:47:56 +00:00
sam_marshall 20c30ac5e4 MDL-16756: Groups bugfixes and multiple select support for deletion 2008-10-24 13:34:12 +00:00
sam_marshall a240818cf3 file delete.php was added on branch MOODLE_19_STABLE on 2008-10-24 13:34:13 +0000 2008-10-24 13:31:49 +00:00
tjhunt ead49b0e44 moodlelib iprange checks: MDL-16986 If the user makes a mistake and types something like 172.16.1.143/148, with something greater than 32 after the slash, treat it as /32. 2008-10-24 02:54:16 +00:00
moodlerobot c457a17af4 Updated the 19 build version to 20081024 2008-10-24 01:56:23 +00:00
moodlerobot ba0f099ade Updated the 19 build version to 20081023 2008-10-23 02:04:36 +00:00
nicolasconnault b75bb79414 MDL-16962 New formslib element for dropdowns with a link to another page. Applied to outcome item and outcome edit pages. 2008-10-22 09:19:30 +00:00
nicolasconnault 2bc741e66a MDL-16962 New formslib element for dropdowns with a link to another page. Applied to outcome item and outcome edit pages. 2008-10-22 09:09:31 +00:00
fmarier 112de10a61 backuplib: MDL-16945 remove the uid alias since it's a reserved field on Oracle 2008-10-22 03:04:12 +00:00
fmarier d9b3406111 moodlelib/welcome message: MDL-16947 use the userid that was passed in for the profile URL 2008-10-22 02:33:11 +00:00
moodlerobot 21de218e57 Updated the 19 build version to 20081022 2008-10-22 01:56:54 +00:00
jerome 98cc1b062d MDL-16929: fix bulk user download function. (the shortname column title is now profile_field_"shortname") 2008-10-22 01:32:22 +00:00
stronk7 06306ddd94 Bumped to 1.9.3+ (before weekly build) 2008-10-21 23:06:55 +00:00
tjhunt 73de6ccc13 qtype description: MDL-16863 Put back edit icon next to descriptions for teachers. 2008-10-21 06:33:58 +00:00
tjhunt ec3d11dd00 quiz reports: MDL-16948 SQL does not work in Oracle - you are not allowed to refer to output column names in GROUP BY. Fix thanks to Francois Marier. 2008-10-21 05:45:28 +00:00
moodlerobot d7d10cd3d4 Updated the 19 build version to 20081021 2008-10-21 01:51:31 +00:00
arborrow af20b75c55 MDL-16939 - adding check type exists to avoid PHP notice in build_navigation function 2008-10-20 17:47:52 +00:00
nicolasconnault 1f02086d55 MDL-16892 Fixed bug in accesslib role_fix_names method 2008-10-20 13:43:12 +00:00
moodlerobot 44c64196fb Updated the 19 build version to 20081020 2008-10-20 01:54:27 +00:00
moodlerobot e1009af391 Updated the 19 build version to 20081019 2008-10-19 01:46:12 +00:00
moodlerobot 4a36974d3b Automatic installer.php lang files by installer_builder (20081019) 2008-10-19 01:40:08 +00:00
moodlerobot 523a5947a3 Updated the 19 build version to 20081018 2008-10-18 01:47:45 +00:00
arborrow bddc038848 fixed trivial typo in comment 2008-10-18 00:10:00 +00:00
stronk7 f81e0a1d06 Adding correct Office 2007 mime types. MDL-15987 2008-10-17 18:03:21 +00:00
nicolasconnault af4c52b849 MDL-13702 Added language help file 2008-10-17 14:55:10 +00:00
nicolasconnault 85db26a355 MDL-16917 small semantic change 2008-10-17 14:33:37 +00:00
nicolasconnault 9e9b288017 MDL-13259 Redirecting to creation of new scale when none exists. 2008-10-17 14:32:44 +00:00
nicolasconnault d3ee291624 MDL-16917 Fixed 2008-10-17 14:01:07 +00:00
moodlerobot abb176bfc0 Updated the 19 build version to 20081017 2008-10-17 01:54:43 +00:00
skodak f4d2786bb0 MDL-16903 mod/forum: undefined course context when forum subscription not allowed 2008-10-16 20:45:28 +00:00
nicolasconnault dfa5b89d74 MDL-16898 Extending include_path 2008-10-16 11:16:42 +00:00
moodlerobot dd4e8cbc7a Updated the 19 build version to 20081016 2008-10-16 02:02:13 +00:00
moodler 2079bf0472 Bumped the version up to 1.9.3 2008-10-15 05:43:18 +00:00
moodler ddd1e701ed Updated tags file for 1.9.3 2008-10-15 05:33:16 +00:00
dongsheng 79c29f165b "User Filter: empty filter form fixed, MDL-16880" 2008-10-15 05:29:48 +00:00
moodlerobot 94a5897dcb Updated the 19 build version to 20081015 2008-10-15 02:03:35 +00:00
skodak f06de5f7bc MDL-16881 gradebook: overview report does not ignore hidden grades if user can not view them 2008-10-14 20:32:47 +00:00
dongsheng c77c231e17 "Chat Module, refreshing in safari fixed, MDL-16878" 2008-10-14 08:38:26 +00:00
piers 8dab4c6a9e MDL-16810 - fix typo on function name. thanks to Jason Hardin. Backport to 1.9. 2008-10-14 04:42:06 +00:00
moodlerobot fced6c75ca Updated the 19 build version to 20081014 2008-10-14 02:03:30 +00:00
stronk7 a9c060f742 MDL-16709. Improve scheduling of stats. They only will run if:
- 20 hours has passes since last execution.
- We are in a 4 hours time window since last scheduled time.

Should work for 99.99% os sites (running cron in < 4h intervals)
2008-10-13 23:21:58 +00:00
skodak 435f116fed MDL-14972 groupings and groupmembers only help icons 2008-10-13 22:42:24 +00:00
skodak a35e1c073b MDL-14972 new help files for groupings and groupmembersonly - most of the credit goes to Helen ;-) 2008-10-13 22:40:45 +00:00
stronk7 a1fb0461d1 Adding new setting "statsruntimedays" to configure the number
of days to calculate as max per stats cron invocation. Part of MDL-16709
2008-10-13 21:45:23 +00:00
skodak 8c5ea44aaf MDL-16839 forms: workaround for problematic hard frozen values 2008-10-13 19:38:49 +00:00
nicolasconnault 7b799d0c18 MDL-16568 Hiding courses with showgrades set to 0 2008-10-13 12:34:14 +00:00
jamiesensei 1b19052646 MDL-16842 "Adding group of elements in function lib/formslib.php/repeat_elements() not working correctly" Fixed using fullclone instead of clone now. 2008-10-13 11:50:14 +00:00
nicolasconnault c833e8c3ba MDL-15680 Committing the small refactorings required for the implementation of the weights interface 2008-10-13 07:05:40 +00:00
moodlerobot 4cbdb49e2b Updated the 19 build version to 20081013 2008-10-13 01:59:04 +00:00
moodlerobot 13c7ebc071 Automatic installer.php lang files by installer_builder (20081013) 2008-10-13 01:46:53 +00:00
dongsheng e10b05289e "MDL-16844, making choose very old stats data possible" 2008-10-12 05:45:58 +00:00
moodlerobot df5b42819f Updated the 19 build version to 20081012 2008-10-12 01:51:10 +00:00
moodlerobot eab7d2b9f4 Updated the 19 build version to 20081011 2008-10-11 01:56:05 +00:00
stronk7 f6a81a6698 Detect non-utf8 langs in user edition forms. MDL-16845 MDL-11829 2008-10-10 21:27:42 +00:00
stronk7 e2994aa61f Set the user->lang DB default to en_utf8. MDL-16845 2008-10-10 17:48:18 +00:00
nicolasconnault ca90016b5d MDL-15887 Changed showpercentage to On by default 2008-10-10 08:39:14 +00:00
moodlerobot 3d50601189 Updated the 19 build version to 20081010 2008-10-10 02:01:09 +00:00
poltawski 3c73cdd15d MDL-16205 - fix 'coltroller' typo 2008-10-09 13:17:19 +00:00
poltawski bfeb5ed8c2 MDL-16428 - fix typo 2008-10-09 12:59:27 +00:00
poltawski 664428a5a2 MDL-16461 - default wasn't being set on send for marking due to
incorrect element name

thanks to Brian Gray
2008-10-09 11:22:14 +00:00
mudrd8mz 09c2eb69e2 MDL-16506 Fixed error when deleting the only page in the Lesson. Credit goes to Chris Bertagne for the patch. 2008-10-09 11:04:12 +00:00
poltawski 8b21237fd4 MDL-16434 fix typo in class name "generalbox"
thanks to Joseph Rézeau
2008-10-09 10:51:06 +00:00
scyrma 2efc9eb251 Files/MDL-14231: reverting previous commit. 2008-10-09 07:11:19 +00:00
scyrma bd0185707b Files/MDL-14231: return false on file not found so that the user is warned that the file could not be deleted. 2008-10-09 06:20:17 +00:00
moodlerobot 732866c986 Updated the 19 build version to 20081009 2008-10-09 01:58:31 +00:00
moodlerobot 614ccf9671 Automatic installer.php lang files by installer_builder (20081009) 2008-10-09 01:49:36 +00:00
skodak 32c987cdd6 MDL-15262 using hardFreeze instead of static, because we need this info to b returned from form; the new change* caps are not in effect when adding new courses 2008-10-08 20:48:23 +00:00
skodak 02d4a0bbd8 MDL-15262 adding xss risks to new course update related caps 2008-10-08 20:06:35 +00:00
skodak 39eccdd11a MDL-15262 fixed major regressions for non-legacy roles with course:update enabled 2008-10-08 20:00:22 +00:00
wildgirl b72fd9598e reverted to previous version (changed in error - see MDL-15887) 2008-10-08 19:57:57 +00:00
skodak 25a237a24d MDL-16738 fixed + array operator overriding the same numeric keys - credit goes to Vince Gángó 2008-10-08 19:09:43 +00:00
skodak ebbc87af56 MDL-14840 trimming scale options - the spaces should not be there in the first place (to be addressed later MDL-16832) - credit goes to Mike Corb and Dan Marsden 2008-10-08 18:52:46 +00:00
nicolasconnault 821c604e82 MDL-15262 Instead of removing these form fields entirely, rendering them as static form elements 2008-10-08 13:40:26 +00:00
nicolasconnault 81dc7d8b36 MDL-15262 Added 3 new capabilities without changing defaults, as suggested by Matt. 2008-10-08 13:15:27 +00:00
nicolasconnault 1b52625473 MDL-12198 Fixed ordering of sections 2008-10-08 12:13:39 +00:00
nicolasconnault 783425fc96 MDL-15887 Implemented new setting 2008-10-08 10:56:10 +00:00
jamiesensei 9a4ba0a430 MDL-14676 "In question bank, problem with moodle/question:edit* when do not have moodle/question:move*" Fixed logic for processing submission of question form and also added some validation to check that the user has permissions to move a question. 2008-10-08 10:19:51 +00:00
nicolasconnault 0e64f1234c MDL-10301 Applying language patch 2008-10-08 09:21:14 +00:00
nicolasconnault e177755c7f MDL-10201 Applying patch 2008-10-08 09:07:23 +00:00
nicolasconnault a51c4acab3 MDL-15871 Applying patch 2008-10-08 08:25:03 +00:00
nicolasconnault 92e0ed3ca3 MDL-16784 Adding missing files to 1.9 2008-10-08 08:12:11 +00:00
dongsheng 1c6ec70112 "MDL-11371, The View past chat sessions should not appear if there haven't been any." 2008-10-08 07:51:40 +00:00
skodak af94c62bb4 MDL-16765 - undoing MDL-14303 and adding different fix 2008-10-08 07:15:34 +00:00
dongsheng 44b1830731 MDL-15370, replace some old html and javascript code. 2008-10-08 06:41:55 +00:00
moodlerobot 0dfe475afc Updated the 19 build version to 20081008 2008-10-08 02:03:40 +00:00
fmarier 9c0fbb65c2 mod/label: Fix typo in function name 2008-10-08 01:46:40 +00:00
dongsheng fe7c27f5b4 "MDL-16753, remove single quote in SQL (parameter is not empty)" 2008-10-08 01:18:23 +00:00
skodak 536db61cae MDL-15800 fixed undefined wwwroot problem - credit goes to Charlie Owen 2008-10-07 22:04:51 +00:00
wildgirl 1afb6de73e MDL-13875 multiplicator help file rewording 2008-10-07 10:47:16 +00:00
scyrma 99dfda7a6d Forum/MDL-14558: Prevent users from subscribing or getting subscribed to forums where subscriptions are not allowed. 2008-10-07 08:13:01 +00:00
scyrma e4909c4527 Lesson/MDL-13311: make it possible to have a short answer question using 0 has answer. 2008-10-07 05:13:51 +00:00
jerome 0dd18fa6f6 MDL-15800: clean filelib.php, fix https image link into the edit profil page (weblib.php), and also into the YUI integration (ajaxlib.php) 2008-10-07 02:09:51 +00:00
moodlerobot 2267cd6a20 Updated the 19 build version to 20081007 2008-10-07 01:49:19 +00:00
skodak 460de28701 MDL-15431 User icon and Guest icon mixed up on compressed Course list 2008-10-06 22:29:00 +00:00
skodak d9a17dc900 MDL-16799 - Unit tests failing on events testing - caused by handler caching 2008-10-06 22:07:10 +00:00
wildgirl 623dab16e0 MDL-14830 backup info added to role renaming help file 2008-10-06 15:23:04 +00:00
skodak a1365689d1 MDL-14696 Option to unenrol user from course when assigned to a role at a higher context 2008-10-06 09:28:26 +00:00
andreabix 813a34b3b6 Fixed non compliant HTMl in README 2008-10-06 08:18:21 +00:00
moodlerobot 8756039fac Updated the 19 build version to 20081006 2008-10-06 01:46:31 +00:00
moodlerobot 186328cfcd Updated the 19 build version to 20081005 2008-10-05 01:43:56 +00:00
moodlerobot 0c897809db Automatic installer.php lang files by installer_builder (20081005) 2008-10-05 01:37:51 +00:00
moodlerobot 9cf2c68924 Updated the 19 build version to 20081004 2008-10-04 01:46:16 +00:00
nicolasconnault ef322c9a8b MDL-16784 Removing old YUI 2008-10-03 13:18:25 +00:00
nicolasconnault 8e3a2f3d47 MDL-16784 Added YUI 2.6.0 2008-10-03 13:12:58 +00:00
nicolasconnault c1d9d90e71 MDL-16784 Removing old YUI 2008-10-03 13:08:39 +00:00
nicolasconnault 5c8b0beeaf MDL-16780 Updated README.txt 2008-10-03 07:10:16 +00:00
nicolasconnault 059a33a8f9 MDL-16780 Added HTML/AJAX 2008-10-03 07:09:49 +00:00
nicolasconnault 173ffb591f MDL-16780 Moved JSON class and updated core files 2008-10-03 07:07:32 +00:00
moodlerobot 73e448e0b2 Updated the 19 build version to 20081003 2008-10-03 01:46:08 +00:00
poltawski 776f1020c9 Group overview displays incorrect user count
When there are no users in a group, the count displays
as 1 - MDL-16705
2008-10-02 15:29:57 +00:00
poltawski 9f9539bdea MDL-16729 - typo in 'Statements' 2008-10-02 14:39:13 +00:00
nicolasconnault d292294c97 MDL-16768 Added php version-dependent function definitions so that we can use json_encode() and json_decode() no matter what PHP version the server is running. 2008-10-02 07:40:11 +00:00
tjhunt 587397becf MDL-8547 Time remaining covers question text in the quiz when using secure mode. 2008-10-02 02:45:25 +00:00
moodlerobot 329952a56c Updated the 19 build version to 20081002 2008-10-02 01:54:24 +00:00
moodlerobot 6031cd5187 Updated the 19 build version to 20081001 2008-10-01 01:55:22 +00:00
moodlerobot 394b9fe3f7 Updated the 19 build version to 20080930 2008-09-30 01:46:31 +00:00
stronk7 694db66283 Reviewed breadcrumb in 19_STABLE. Page name was missing. MDL-16331 2008-09-29 22:37:06 +00:00
stronk7 57ee499fc6 Improve DOM detection (due to conficts with old DOM-XML). MDL-15637. Thanks Dariem! 2008-09-29 17:09:42 +00:00
moodlerobot 61e6f7cd92 Updated the 19 build version to 20080929 2008-09-29 01:44:03 +00:00
tjhunt e42effaa67 MDL-16720 The edit icon in the quiz preview screen pops up the edit form in a window that is too small 2008-09-28 09:00:05 +00:00
moodlerobot fc193feda1 Updated the 19 build version to 20080928 2008-09-28 01:47:54 +00:00
moodlerobot eadeac6943 Automatic installer.php lang files by installer_builder (20080928) 2008-09-28 01:41:42 +00:00
moodlerobot da27ea2b48 Updated the 19 build version to 20080927 2008-09-27 01:48:14 +00:00
ethem 55246ce2e3 Authorize.net Trans IDs are changing in October-Will it break moodle? YES
http://moodle.org/mod/forum/discuss.php?d=106626
Backported from HEAD.
2008-09-27 00:40:00 +00:00
stronk7 7dd49286ad Cleaning wiki recent activity URLs. MDL-15896 2008-09-26 09:33:03 +00:00
scyrma a17718ae3e MDL-14092: forcing imported users with a weak password to change it on first login. 2008-09-26 09:10:20 +00:00
scyrma 93586136d2 MDL-16700: Making the password policy be applied all at once.
Also, any policy letting a user use password "password" is not worth using, so removing this check.
2008-09-26 08:08:21 +00:00
tjhunt 6a96e586d6 Correct comment. 2008-09-26 05:55:37 +00:00
tjhunt 1c2c8b0946 MDL-16600 forcedownload broken for file resources. 2008-09-26 05:49:06 +00:00
tjhunt 6852263fc2 XHTML strict. 2008-09-26 05:15:45 +00:00
tjhunt 72737be236 Fix whitespace. 2008-09-26 04:49:32 +00:00
tjhunt d25bee6187 MDL-16683 - add 5/6 as a grading option. 2008-09-26 03:13:30 +00:00
moodlerobot 9bda662574 Updated the 19 build version to 20080926 2008-09-26 01:58:32 +00:00
piers 705154d96f MDL-7068 - SCORM 2004 compliance. Handle cmi.interactions hydration (scorm 1.2 to as well). Backport to 1.9 - rerun compliance test. 2008-09-26 00:35:10 +00:00
stronk7 11d1f8ef69 Protect message settings with sesskey. MDL-16688 2008-09-25 22:31:39 +00:00
skodak 195ccb83ce MDL-15896 undoing last commit, sorry 2008-09-25 21:45:28 +00:00
skodak e990f1b6ad MDL-15896 proper pagename quoting 2008-09-25 21:44:01 +00:00
mudrd8mz d69d156acf MDL-16308 Use default country instead of empty one when some external auth source (LDAP, POP3 etc) is used 2008-09-25 10:09:59 +00:00
peterbulmer 1ec17a6380 MDL-16560 - correct bogus function call
Author: Peter Bulmer <peter.bulmer@catalyst.net.nz>
2008-09-25 09:57:33 +00:00
skodak 123b38e44b MDL-15682 fixed isset() test 2008-09-25 07:40:54 +00:00
skodak db12065ba8 MDL-16617 fixed forum name filtering - thanks Mark Nielsen 2008-09-25 07:11:31 +00:00
moodlerobot 9620024032 Updated the 19 build version to 20080925 2008-09-25 01:48:47 +00:00
skodak e6613a931c MDL-15810 whitelist _blank target in htmlpurifier cleaning 2008-09-24 21:38:43 +00:00
skodak 1faa5a441e MDL-16667 security fixes in htmlpurifier 2.1.5 2008-09-24 21:24:14 +00:00
skodak 373f371166 MDL-16598 Admin config setting to make enrolment key hint optional; backported from HEAD 2008-09-24 18:48:08 +00:00
stronk7 4c22bf9766 Substring MSSQL function *requires* 3rd parameter - MDL-16655 2008-09-24 17:26:27 +00:00
skodak ccceaab929 MDL-16365 domain restrictions are now optional when changing email address 2008-09-24 16:58:36 +00:00
scyrma b78c2ceb0c MDL-14489: Make the tag cloud "more extended" in size with small dataset (credits to Matt Gibson) 2008-09-24 08:04:01 +00:00
danmarsden a31878015b MDL-16599 - tidy up error message to be make more sense to the user. merged from HEAD 2008-09-24 07:02:46 +00:00
dongsheng 7f601668fb "MDL-16648, UTF-8 lang file for phpmailer" 2008-09-24 02:40:42 +00:00
moodlerobot c8961f175a Updated the 19 build version to 20080924 2008-09-24 01:52:44 +00:00
moodlerobot 6f48b3d99f Automatic installer.php lang files by installer_builder (20080924) 2008-09-24 01:46:29 +00:00
jerome 3e60778c6f MDL-12297: improvement for fix "assignment view submission" link into "Profil/Activty Report/all logs 2008-09-23 07:46:53 +00:00
jerome 472d8bf771 MDL-12297: fix "assignment view submission" link into "Profil/Activty Report/all logs 2008-09-23 07:21:40 +00:00
tjhunt 3177a65e62 MDL-13894 Impoved fix with less duplicated code, no notices displayed before you get to the 'New settings' screen, and named constants instead of magic numbers. 2008-09-23 05:18:03 +00:00
moodlerobot 9d4d9e2dd4 Updated the 19 build version to 20080923 2008-09-23 01:50:40 +00:00
scyrma 6ae3a5a15b MDL-16602: always display teachers. 2008-09-22 09:08:49 +00:00
dongsheng 5f2c283ad0 "MDL-16554, strip slashes in email, chech the patch, vefired" 2008-09-22 02:30:13 +00:00
moodlerobot 86d9320313 Updated the 19 build version to 20080922 2008-09-22 01:41:08 +00:00
moodlerobot 909ea21954 Automatic installer.php lang files by installer_builder (20080922) 2008-09-22 01:34:55 +00:00
arborrow 582bab05c0 CONTRIB-716 - removing files intended for CONTRIB from 19STABLE 2008-09-21 04:28:23 +00:00
arborrow 666a4a6eb7 CONTRIB-716 - adding the exabis_student_review block. Thanks to Daniel Prieler for contributing the code. 2008-09-21 04:14:49 +00:00
moodlerobot 88d8b37b18 Updated the 19 build version to 20080921 2008-09-21 01:42:10 +00:00
moodlerobot 6f147abf9f Automatic installer.php lang files by installer_builder (20080921) 2008-09-21 01:36:28 +00:00
pichetp edcf824953 MDL-16427 implement the '*' convention as for other questiontypes 2008-09-20 14:07:47 +00:00
pichetp 7564f1d095 merge from HEAD MDL-15358 negative data from datasets between () 2008-09-20 14:01:51 +00:00
moodlerobot 81fc3036eb Updated the 19 build version to 20080920 2008-09-20 01:47:40 +00:00
nicolasconnault 82a82552e3 MDL-16556 Merging from MOODLE_18_STABLE 2008-09-19 20:33:52 +00:00
scyrma eb61a1e83a MDL-16585: fixing query. 2008-09-19 10:02:30 +00:00
thepurpleblob d178d3a213 MDL-16570
Use CDATA sections for text where required. More readable and less error
prone.
2008-09-19 09:58:57 +00:00
nicolasconnault 577fb1cd3b MDL-16556 Reverting commit of test code 2008-09-19 06:22:43 +00:00
nicolasconnault 23375cea89 MDL-16556 Applied Mark Nielsen's patch 2008-09-19 05:32:23 +00:00
scyrma 21f1d5ec78 MDL-16574: improving configgetremoteaddrconf documentation 2008-09-19 03:33:29 +00:00
moodlerobot 2d46263265 Updated the 19 build version to 20080919 2008-09-19 01:46:59 +00:00
stronk7 7f08b6a5d7 Setting some proper zeros. MDL-16565 2008-09-18 16:14:12 +00:00
stronk7 f2e8a852b2 Respect role names for logged students. MDL-16569. Credit goes to Otakar Šprdlík 2008-09-18 15:13:34 +00:00
stronk7 c051d555b9 Fixing typo in my last commit, apologizes. MDL-13894 2008-09-18 14:43:20 +00:00
pichetp 253df4f69b MDL-16427 changing $answer=='*' to $answer ==='*' 2008-09-18 14:37:50 +00:00
stronk7 fe4550bbdf Fixing mistyped cfg var. Backported from HEAD. MDL-13894 2008-09-18 14:13:40 +00:00
scyrma 90ada2fc85 MDL-13894: saving a better source IP, following what the admin wants. 2008-09-18 08:16:01 +00:00
moodlerobot 6982a49147 Updated the 19 build version to 20080918 2008-09-18 01:58:55 +00:00
piers 372c1dd2d7 MDL-7097 - API debug. Add ability to manually poke the SCORM API for 1.2 and 2004. backport 1.9. 2008-09-17 02:11:46 +00:00
moodlerobot a238e79026 Updated the 19 build version to 20080917 2008-09-17 01:50:02 +00:00
moodler 4a8b9598bf MDL-12563 Fixed RSS dates so that they are always GMT 2008-09-16 08:55:43 +00:00
moodlerobot 8b7a64cdb7 Updated the 19 build version to 20080916 2008-09-16 01:59:19 +00:00
stronk7 f7ad0c514a Re-introducing colons in page names + cleaning tabs output. MDL-15896 2008-09-15 16:23:21 +00:00
wildgirl d7739ac095 MDL-16389 meta course help file update 2008-09-15 15:43:29 +00:00
wildgirl a2234cd4da MDL-15314 lang string rewording, thanks to Ray Lawrence 2008-09-15 15:14:52 +00:00
thepurpleblob c43541599b MDL-16508
Changed deprecated error() calls to print_error()
2008-09-15 14:21:02 +00:00
wildgirl e118ad4709 MDL-15134 lang string typo fix, thanks to David Mudrak 2008-09-15 14:18:46 +00:00
wildgirl b9c9531cee MDL-14404 enrolment expiry notification help file text 2008-09-15 14:00:50 +00:00
mudrd8mz 353f7ee981 MDL-16355 Do not set lesson maxgrade to 100 but use the real value without multfactor 2008-09-15 11:56:14 +00:00
mudrd8mz 45794074b5 MDL-16356 Fix capability name 2008-09-15 11:48:06 +00:00
mudrd8mz b0f74680f7 MDL-16441 Display language selection drop-down list at My Moodle page 2008-09-15 11:29:24 +00:00
andreabix 9b82222107 Fixed duplicated style in fw_fonts.css 2008-09-15 08:01:42 +00:00
moodlerobot ef043800b5 Updated the 19 build version to 20080915 2008-09-15 01:53:12 +00:00
moodlerobot 963c69ce92 Updated the 19 build version to 20080914 2008-09-14 01:47:42 +00:00
moodlerobot e888919b90 Updated the 19 build version to 20080913 2008-09-13 01:45:00 +00:00
moodler 2a4d3c9e22 MDL-16473 Removed stylings from user and group images so theme can do it with CSS 2008-09-12 06:54:03 +00:00
tjhunt 9c6389efc5 MDL-15632 Wrong permission in the admin tree defininition mean that people with moodle/role:manage could not define role, and people with moodle/role:assign could not assign system roles. 2008-09-12 05:18:40 +00:00
moodlerobot 7b814e23aa Updated the 19 build version to 20080912 2008-09-12 02:00:25 +00:00
stronk7 28d6c12579 Prevent get_users_by_capability() to retrn deleted users. MDL-16323 2008-09-11 22:14:10 +00:00
skodak 26c2ccbbe5 MDL-16468 never mail deleted users 2008-09-11 19:53:35 +00:00
urs_hunkler f709ee920d add missing icons 2008-09-11 13:16:07 +00:00
moodlerobot 4f9df5e050 Updated the 19 build version to 20080911 2008-09-11 02:06:20 +00:00
peterbulmer 856bbd151c MDL-16378 Changes to lang strings,
remoteappuser should be output as somthing like "Remote Moodle User" or
"Remote Mahara User", or "Remote <application name goes here> User"
2008-09-10 03:21:04 +00:00
moodlerobot af66ad1fe1 Updated the 19 build version to 20080910 2008-09-10 01:58:24 +00:00
tjhunt d37b5e0f44 XHTML Strict! 2008-09-09 02:49:01 +00:00
moodlerobot a24f50ced3 Updated the 19 build version to 20080909 2008-09-09 01:53:50 +00:00
stronk7 d0fd3458fc Fix regression introduced by MDL-12029. Concepts must not be linked by filters. MDL-16372 2008-09-08 23:04:22 +00:00
piers e1a609c888 MDL-11734 - cmi.comments_from_learner not read - write. revamp the handling of array style elements. Backport to 1.9. 2008-09-08 19:50:24 +00:00
stronk7 e644988f14 XHTML-ize course categories list. MDL-16358 2008-09-08 18:13:57 +00:00
stronk7 290d4edd83 Added missing join condition. Credit goes to Colin Chambers. MDL-16385 2008-09-08 14:25:18 +00:00
moodler 023fc40de4 MDL-9683 Fixed error call for when confirm_sesskey() fails in formslib 2008-09-08 02:41:40 +00:00
moodlerobot 68679f923f Updated the 19 build version to 20080908 2008-09-08 01:49:50 +00:00
piers c1d74923f8 MDL-16299 - Javascript error during scorm player load. SCOID should not be populated - TOC figures this out. Backport to 1.9. 2008-09-08 00:34:12 +00:00
peterbulmer 0e2a066e7b MDL-14488 - start sql query with unique field - credit David Monllaó 2008-09-07 06:03:49 +00:00
peterbulmer d74fddbd58 MDL-16301 address issue. 2008-09-07 05:08:35 +00:00
moodlerobot 98e9f88177 Updated the 19 build version to 20080907 2008-09-07 01:47:10 +00:00
moodlerobot afe78ffd24 Updated the 19 build version to 20080906 2008-09-06 01:43:33 +00:00
wildgirl 3f29c452f9 MDL-16050 wrong help file name, thanks to Marty Gilbert and Daniel Miksik for reporting this issue 2008-09-05 13:51:56 +00:00
scyrma 460add2ed7 MDL-16289: Backport of improvement to error reporting in mnet (patch by Penny Leach). 2008-09-05 07:22:11 +00:00
tjhunt a16f9c67fb MDL-12336 Inconsistent naming of the Front page area of the question bank, and the front page context more generally. 2008-09-05 04:05:16 +00:00
tjhunt 67d8f80127 MDL-12814 typo in CSS class name. 2008-09-05 03:38:17 +00:00
moodlerobot 794d10ebe2 Updated the 19 build version to 20080905 2008-09-05 01:53:06 +00:00
moodlerobot 7bafbd170f Updated the 19 build version to 20080904 2008-09-04 01:47:13 +00:00
pichetp 04ed1cebd7 Improving multichoice display MDL-14763 merging from HEAD 2008-09-03 15:22:46 +00:00
dongsheng 3b38133b31 "MDL-16284, fix mismatch tracking state title" 2008-09-03 02:57:33 +00:00
moodlerobot 9d74541b96 Updated the 19 build version to 20080903 2008-09-03 01:50:26 +00:00
piers d6e017d513 MDL-16299 - Javascript error during scorm player load. Ensure SCOID is always populated. Backport 1.9. 2008-09-03 00:41:14 +00:00
skodak 59499faf67 MDL-14826 reverting commit, MDL-16292 solves this issue 2008-09-02 21:45:50 +00:00
jerome 797ccfe11f MDL-12224: preload ratings for the specific user and only for his discussions 2008-09-02 09:32:49 +00:00
tjhunt 5c6522115b MDL-14160 SQL in get_categories_for_contexts does not work on Oracle. Thanks to Adrian Smith and Francois Marier for the fix. 2008-09-02 06:55:40 +00:00
moodlerobot f31e70f7db Updated the 19 build version to 20080902 2008-09-02 01:50:46 +00:00
moodlerobot a86917dcbf Automatic installer.php lang files by installer_builder (20080902) 2008-09-02 01:41:19 +00:00
skodak 693dbaa59c MDL-16029 Added $extralocations in the function print_error 2008-09-01 15:24:40 +00:00
skodak 1096639958 MDL-16292 print_error not backwards compatible with error(get_string('xx', 'moodle')) 2008-09-01 14:54:09 +00:00
wildgirl 32f4075551 MDL-15879 lang string typo fix (thanks to Susan Mangan) 2008-09-01 14:53:11 +00:00
mudrd8mz fe89f05464 MDL-16259 Display overridden role names in course info pop-up box. 2008-09-01 09:30:07 +00:00
skodak aa45463df1 MDL-15218 reset change password secret if somebody just tries to guess it 2008-09-01 08:15:38 +00:00
skodak 7fecd329e0 MDL-15948 inform that curl is required for recaptcha 2008-09-01 07:17:36 +00:00
tjhunt a7faad2559 MDL-15605 - Fix solution SQL syntax for the "question categories must belong to a context that exists" check. 2008-09-01 05:29:32 +00:00
tjhunt 1bc9815601 MDL-15655 - address_in_subnet does not work on 64 bit architectures. Also, we found some other issues with this funtion while diagnosing the problem. 2008-09-01 04:17:52 +00:00
moodlerobot 646ff46ce1 Updated the 19 build version to 20080901 2008-09-01 01:45:26 +00:00
skodak 30e3ea98d5 MDL-15580 detection of broken groups upgrade in 1.8.x -unfortunately this can not be fixed automatically because the courseid field from groups table is gone; adding missing $result into upgrade blocks 2008-08-31 20:59:14 +00:00
skodak 596a16d82a MDL-16283 fixed notice 2008-08-31 20:44:16 +00:00
moodlerobot 9479d167ac Updated the 19 build version to 20080831 2008-08-31 01:42:54 +00:00
moodlerobot 8fdac6dd60 Updated the 19 build version to 20080830 2008-08-30 01:50:30 +00:00
moodler 3dc83fb06c Latest tags file for 1.9 2008-08-29 05:44:36 +00:00
peterbulmer 77e78e7ea7 MDL-16264 Make mnet courses affect course_list block
If a user has mnet courses, these should affect block display in the same way as local courses do.
2008-08-29 04:23:38 +00:00
piers 3318cc4ecf MDL-14492 - Provide feedback to user about redirect delay in loadsco.php. Add sanity checking for scorm_resize() as it tries to set -ve heights if user specifies a small area. Thanks francois. backport 1.9. 2008-08-29 04:13:35 +00:00
moodlerobot af192f2f3d Updated the 19 build version to 20080829 2008-08-29 01:48:26 +00:00
moodlerobot 86d88be296 Automatic installer.php lang files by installer_builder (20080829) 2008-08-29 01:41:39 +00:00
stronk7 e54f616168 Allowing category themes to be reverted to "none". MDL-16152. Credit goes to Caio SBA. 2008-08-28 23:12:44 +00:00
skodak 7584bb8e26 MDL-16238 improved SQL - see tracker for details 2008-08-28 17:42:01 +00:00
mudrd8mz 1d3ab7bb8b MDL-14826 Added missing string 2008-08-28 16:37:52 +00:00
thepurpleblob ca1a880ffd MDL-16198
Blackboard V6+ can now handle the .dat file directly as an option to the .zip file
Some changes needed to recover the original filename.
2008-08-28 13:43:25 +00:00
thepurpleblob cb285deb66 MDL-16221
Specify both width and height for user image
2008-08-28 12:45:11 +00:00
stronk7 9b1294cad1 Improve get_user_courses_bycap() queries. MDL-16209 2008-08-28 12:37:58 +00:00
thepurpleblob 2f26b249c0 MDL-16252
Fixed some notices with essay questions when there is no feedback
2008-08-28 10:57:50 +00:00
thepurpleblob aeb8bb2802 MDL-16251
Changed tests to empty rather than isset to avoid notices when array is set but empty
2008-08-28 10:34:11 +00:00
thepurpleblob a2055ae57f MDL-16250
Added support for Essay type questions
2008-08-28 10:04:23 +00:00
thepurpleblob 9b1e693fa7 MDL-16221
Fixed missing height/width in CSS
2008-08-28 08:34:07 +00:00
tjhunt 1dcdf87bcc MDL-16202 formslib show/hide advanced button does not work with strict XML headers 2008-08-28 07:52:17 +00:00
skodak b67163420f MDL-15420 fixed wrong show submission to others test 2008-08-28 07:22:04 +00:00
jamiesensei f1a022424d MDL-16242 "'Required' does nothing for select fields in customisable user profiles" added an extra option 'Choose...' which is the default if no other default is specified. If the user leaves the select field set to 'Choose...' then the required rule fails and the form does not submit. 2008-08-28 06:46:43 +00:00
tjhunt 791a2be380 MDL-16243 Implement a health-centre check that the question categories are arranged properly in tree structures. 2008-08-28 05:06:39 +00:00
tjhunt 5fb836fdc0 MDL-16204 - On an old site, there were question categories where category->parent went round in a loop. This crashed the upgrade. Change the upgrade code to make it more robust. 2008-08-28 03:24:04 +00:00
tjhunt 568dfa5f06 MDL-16219 - mod/quiz/reviewquestion.php does not call questiontype::get_html_head_contributions. This was missed when implementing MDL-6368. 2008-08-28 02:15:24 +00:00
moodlerobot 3052f51877 Updated the 19 build version to 20080828 2008-08-28 01:52:30 +00:00
tjhunt f863bed701 MDL-8475 - Better handling of blank answer - further changes to make it even more robust. Also, make the same changes to the shortanswer question type that were already made to the numerical question type. 2008-08-28 01:46:47 +00:00
moodlerobot f1ea9b43b7 Automatic installer.php lang files by installer_builder (20080828) 2008-08-28 01:44:51 +00:00
piers bc6931c744 MDL-4746 - Course 01 of the ADL SCORM 1.2 test suite fails on point 4. only set browsed status if the SCO hasn't set a status. Backport 1.9. 2008-08-27 23:27:07 +00:00
danmarsden f9be7c4386 MDL-16137 - clear scorm directory if it already exists merged from HEAD 2008-08-27 22:39:50 +00:00
danmarsden c42d772ffa MDL-10767 - set values of checkboxes correctly merged from HEAD 2008-08-27 22:02:53 +00:00
thepurpleblob a05709ad59 MDL-16221
The height and width are now included in the user's image.
2008-08-27 10:17:01 +00:00
jerome 9e57da557f MDL-16043: manage case when administrator set enrol_remotecoursefield or enrol_remoteuserfield in UPPERCASE 2008-08-27 06:26:49 +00:00
piers c12b948bf2 MDL-4746 - Course 01 of the ADL SCORM 1.2 test suite fails on point 4. gramatical error - thanks Dan. Backport 1.9. 2008-08-27 04:06:31 +00:00
peterbulmer 7fec1d20eb MDL-15942 - separate data escaped for database entry from unescaped data 2008-08-27 03:33:14 +00:00
piers 65edfe910a MDL-4746 - Course 01 of the ADL SCORM 1.2 test suite fails on point 4. Fix cmi.comments, and mastery_score checking. Backport to 1.9. 2008-08-27 02:50:08 +00:00
dongsheng 669ba2b076 "MDL-13413, chat transcripts donot include instructor when using separate groups" 2008-08-27 02:17:37 +00:00
moodlerobot 3e683cfa5f Updated the 19 build version to 20080827 2008-08-27 01:47:10 +00:00
stronk7 a6a1b60ba7 Prevent SQL error when forcing download. MDL-15921 2008-08-26 23:01:12 +00:00
tjhunt 5877f527ac MDL-16201 - The logic in mod/quiz/view.php for when to display a link to the review page was not consistent with the logic in mod/quiz/review.php for when students are allowed to see the review. 2008-08-26 02:32:23 +00:00
moodlerobot 1f9fc718ac Updated the 19 build version to 20080826 2008-08-26 01:52:57 +00:00
iarenaza b29004e366 MDL-16061 Revert incorrect fix for "Remove 'username' from the $moodleattributes array".
Merged from MOODLE_18_STABLE.

The fix is wrong, as it breaks auth_db_sync_users.php and
auth_ldap_sync_users.php at least. No new users are added to Moodle, as the
username is missing from the new user info record.

The fix needs to go into update_user_record() in lib/moodlelib.php to make it
skip the 'username' key, as we really need get_userinfo() to return the
username as part of the user info array.
2008-08-25 22:40:29 +00:00
moodlerobot 919c6cc713 Updated the 19 build version to 20080825 2008-08-25 01:41:15 +00:00
moodlerobot 2c5ec7b773 Automatic installer.php lang files by installer_builder (20080825) 2008-08-25 01:34:47 +00:00
piers def6969944 MDL-15881 - Probable bug: Not able to update SCORM. Backport 1.9. 2008-08-24 23:03:40 +00:00
piers 7e51170aec MDL-16111 - SCORM grade not updated in Grader Report. Include grading by learning objects if status is complete. Backport to 1.9. 2008-08-24 21:13:02 +00:00
iarenaza 6046523272 MDL-15799 LDAP - user data mapping doesn't work. Merged from MOODLE_18_STABLE
The Right Way(tm) to write a LDAP filter is enclosing it in parentheses (see
RFC 4515/2254).
2008-08-24 20:42:57 +00:00
stronk7 bb61ce2e91 Prevent some notices at install. MDL-16188 ; merged from 18_STABLE 2008-08-24 16:31:33 +00:00
moodlerobot a78e7e7139 Updated the 19 build version to 20080824 2008-08-24 01:40:56 +00:00
moodlerobot 20e025b85b Automatic installer.php lang files by installer_builder (20080824) 2008-08-24 01:33:01 +00:00
moodlerobot e6fefabec5 Updated the 19 build version to 20080823 2008-08-23 01:40:58 +00:00
moodlerobot 4d02c666f2 Automatic installer.php lang files by installer_builder (20080823) 2008-08-23 01:34:27 +00:00
piers 5a3e0c81e7 MDL-16111 - SCORM grade not updated in Grader Report. Make sure that lastattempt does not exceed maxattempts. Backport 1.9. 2008-08-22 03:21:52 +00:00
moodlerobot db62c7ecc6 Updated the 19 build version to 20080822 2008-08-22 01:46:37 +00:00
moodlerobot a81c1d5c0b Automatic installer.php lang files by installer_builder (20080822) 2008-08-22 01:39:35 +00:00
piers cf42577a41 MDL-13431 - SCORM results not transferring to Gradebook. SCORM API debugging tool - add reference to SCORM, and SCO identifier. backport 1.9. 2008-08-22 01:38:37 +00:00
skodak e45cc3e023 MDL-15716 Tightened dataroot security checks and and 'loud' administrator warning; backported from HEAD 2008-08-21 15:31:09 +00:00
mudrd8mz 0738e88d48 MDL-14326 Remove all course_modules that remained empty (i.e. with instance==0) after the particular restore process. 2008-08-21 11:26:32 +00:00
piers cd74712f30 MDL-13431 - SCORM results not transferring to Gradebook. SCORM API debugging tool. Backport to 1.9. remove add_to_log. 2008-08-21 08:30:58 +00:00
piers c11ccc62f3 MDL-16111 - SCORM grade not updated in Grader Report. Thanks John Macklin. Backport 1.9. 2008-08-21 03:16:11 +00:00
danmarsden 20a2a2c49d MDL-14620 - fix link to repository and tidy up using $CFG vars merged from HEAD 2008-08-21 01:54:10 +00:00
moodlerobot d730018ff2 Updated the 19 build version to 20080821 2008-08-21 01:47:33 +00:00
moodlerobot 7c5bfc373a Automatic installer.php lang files by installer_builder (20080821) 2008-08-21 01:39:55 +00:00
piers 2753d9448f MDL-13431 - SCORM results not transferring to Gradebook. SCORM API debugging tool. Backport to 1.9. 2008-08-21 00:39:57 +00:00
piers 881e78daa2 file debug.js.php was added on branch MOODLE_19_STABLE on 2008-08-21 00:39:57 +0000 2008-08-21 00:36:12 +00:00
piers 604c88975c MDL-13431 - SCORM results not transferring to Gradebook. Add logging mechanism so that launched URI can be traced. Backport 1.9. 2008-08-20 23:31:37 +00:00
piers ff915d6056 MDL-15859 [PATCH] Fixes for tests of '' on Oracle. Backport 1.9. 2008-08-20 23:06:37 +00:00
piers 88ba1fda5e MDL-13431 - SCORM results not transferring to Gradebook. Add logging mechanism so that SCORM API interaction with Moodle can be traced. Backport 1.9. 2008-08-20 22:32:19 +00:00
piers 27fb07f87b MDL-13431 - SCORM results not transferring to Gradebook. Use the correct method for getting the course object. Backport 1.9. 2008-08-20 22:29:33 +00:00
danmarsden 0e70c9ea14 MDL-14620 - need to check vars are set before using. - adding check so I can include this form type in SCORM - merged from HEAD 2008-08-20 22:00:10 +00:00
whchuang d76df8e848 Minor formatting changes to make the content more consistent. See MDL-15075 2008-08-20 17:40:47 +00:00
whchuang 8820c44464 Fixed MDL-15075. Some mistakes in the help file for category aggregation. 2008-08-20 17:21:46 +00:00
tjhunt 9aa1607364 MDL-15654 Incorrect escaping of HTML in the history table on the review quiz attempt page. 2008-08-20 09:46:03 +00:00
tjhunt 3ac08fe986 MDL-15605 Convert question bank consistency checks described in MoodleDocs (http://docs.moodle.org/en/Development:Question_bank_consistency_check) to health centre checks. 2008-08-20 08:52:54 +00:00
tjhunt 0af8b572e4 MDL-16141 Need an sql_position function to do POSITION(needle IN haystack) on crappy databases. Backported from HEAD. 2008-08-20 08:51:11 +00:00
peterbulmer 4b39d5ca89 MNET-12558 Additional commenting and variable name change 2008-08-20 06:00:08 +00:00
danmarsden bc7cf284a9 MDL-16113 add warning to Scorm modedit page if slasharg is disabled. merged from HEAD 2008-08-20 02:25:23 +00:00
moodlerobot 3d1dbf4edb Updated the 19 build version to 20080820 2008-08-20 01:50:54 +00:00
skodak 2d843ded37 MDL-15819 bumping version, needed for updated risks of quiz caps 2008-08-19 21:39:05 +00:00
skodak 648c9db090 MDL-15819 bumping main version, needed for updated risks of question caps 2008-08-19 21:37:44 +00:00
tjhunt 40da47484d SCORM module XHTML strict fixes. 2008-08-19 06:59:23 +00:00
tjhunt faa479918c Fix up XHTML strick breakage introduce during the fix for MDL-13478. 2008-08-19 05:17:14 +00:00
tjhunt ab1efe3442 MDL-14643 - Revert the hugely umpopular change from MDL-10841. 2008-08-19 02:34:16 +00:00
moodlerobot 20139dedfd Updated the 19 build version to 20080819 2008-08-19 01:46:02 +00:00
moodlerobot 9e1feba326 Automatic installer.php lang files by installer_builder (20080819) 2008-08-19 01:38:28 +00:00
stronk7 9f00b6e8b4 Avoid "some" ra's duplicates. MDL-14817 2008-08-18 22:37:18 +00:00
skodak 4be2bb4847 MDL-16060 use old style slasharguments file.php link when launching scorm packages; merged from HEAD 2008-08-18 20:57:37 +00:00
skodak e26f73219a MDL-16108 force autocomplete off for unmaskable password fields 2008-08-18 20:38:26 +00:00
skodak 12ffbe6f65 MDL-16108 force autocomplete off for unmaskable password fields; merged from MOODLE_18_STABLE 2008-08-18 20:20:42 +00:00
stronk7 38a1e2bc67 Making some accesslib queries cross-db. Avoid using DISTINCT clauses on TEXT fields. MDL-16034 2008-08-18 18:35:43 +00:00
jerome 3d3bd448b1 MDL-MDL-12333: display custom field in categories box on the signup page 2008-08-18 08:23:03 +00:00
moodlerobot cd80e2619c Updated the 19 build version to 20080818 2008-08-18 01:41:05 +00:00
moodlerobot a136accca4 Automatic installer.php lang files by installer_builder (20080818) 2008-08-18 01:33:40 +00:00
skodak 6faef753b8 MDL-16003 changing to new adminroot style - thanks Tatsuya Shirai 2008-08-17 22:52:52 +00:00
skodak c1726a573b MDL-16024 adding spam risk to database approve capability 2008-08-17 22:47:47 +00:00
skodak 71f94d26fe MDL-15586 fixed undefined $course; backported from HEAD 2008-08-17 22:41:19 +00:00
skodak e80eec503e MDL-16051 fixed confirmed string in user filters 2008-08-17 22:33:04 +00:00
skodak d38c50ff6f MDL-16066 fixed apache log typo - thanks Neil Streeter 2008-08-17 22:22:51 +00:00
skodak 9aff1a51d0 MDL-16085 fixed typo -thanks John Ryan; merged from HEAD 2008-08-17 20:18:52 +00:00
moodlerobot 0ff122d12d Updated the 19 build version to 20080817 2008-08-17 01:37:11 +00:00
moodlerobot 5237fd4012 Updated the 19 build version to 20080816 2008-08-16 01:46:51 +00:00
pichetp 605d0b0c49 better filtering of null answers MDL-8475 merged from HEAD 2008-08-15 11:22:35 +00:00
iarenaza 1e6da87629 MDL-16061 Remove 'username' from the $moodleattributes array.
It doesn't make sense at all (username is not part of the externally mapped
fields) and produces a notice that breaks HTTP headers with debugging enabled.
2008-08-15 11:21:48 +00:00
tjhunt 865d83b3ca DEVELOPER_DEBUG messages to help you diagnose broken prev/next links in XMDBD files. 2008-08-15 11:09:51 +00:00
jamiesensei 64b0c54d0f MDL-16041 "Grade of new tests are zero!" no longer displaying graphs of grades for ungraded quizzes. 2008-08-15 10:28:16 +00:00
tjhunt 37cd57495b MDL-16056 - Aiken format should treat input as plain text, and so escape HTML special characters. 2008-08-15 03:13:39 +00:00
danmarsden 4700ef26f3 MDL-16052 deleting responses using view.php not working. merged from HEAD 2008-08-15 01:49:26 +00:00
moodlerobot 40a134e075 Updated the 19 build version to 20080815 2008-08-15 01:43:58 +00:00
piers c073b133a4 MDL-13904 Scorm structure isn't respected after an update of the package. Incorrectly named table in a delete. backport 1.9. 2008-08-15 01:09:26 +00:00
piers 45477f2cc0 MDL-16055 PHP warning when creating new scorm activity. backport 1.9. 2008-08-15 00:18:11 +00:00
peterbulmer 9bf3e1887d MDL-16021 dont force mnethost restriction forloading user data based on id 2008-08-14 23:45:32 +00:00
jerome 2c352e9940 MDL-12224: complete activity report: fix warning display + display the rating 2008-08-14 13:01:16 +00:00
pichetp 95c8fddc7d better validation of null answers MDL-8475 merged from HEAD 2008-08-14 11:39:03 +00:00
jerome 0f4a1b7db8 MDL-16043: ensures cross-db: add lowercase conversion for every database fieldname 2008-08-14 11:26:47 +00:00
jerome 36cf4a27de MDL-15175: ensures cross-db: add a lowercase conversion for the username 2008-08-14 09:44:13 +00:00
tjhunt 1c45f77669 MDL-14979 - Remove the obsolete quizfile.php and associated code. This has not been used since Moodle 1.5. 2008-08-14 03:48:12 +00:00
moodlerobot f02087ef36 Updated the 19 build version to 20080814 2008-08-14 01:48:43 +00:00
peterbulmer 5edabc2b82 MDL-15933 Require jump destination MNET peer to be non-deleted.
Also require landing source MNET peer to be non-deleted.
2008-08-13 23:31:01 +00:00
piers 4c15e91188 MDL-13904 Scorm structure isn't respected after an update of the package. This is a large change to the handling of SCORM package update - all SCOes are issued with a new id, and all references to the old ones are deleted. The scorm_scoes_track data is preserved by being reattached to the new SCO ids (unless they have been deleted). backport to 1.9. 2008-08-13 22:47:33 +00:00
piers 8b07448215 MDL-11188 SCORM module does not respect "prerequisites" like it used to. MDL-12342 & signs in CDATA sections are imported as &amp;. This is a rewrite of the prerequisite handling. backport to 1.9. 2008-08-13 22:40:24 +00:00
piers b79105c4a2 MDL-14492 Provide feedback to user about redirect delay in loadsco.php. Add lang text for please wait. backport 1.9. 2008-08-13 22:28:03 +00:00
tjhunt 20d50e975c MDL-15819 - Review the RISK_XXX flags on all quiz and question capabilites. 2008-08-13 07:05:58 +00:00
jerome 7a12ac92c0 MDL-15175: fix sync with external Oracle database 2008-08-13 06:31:45 +00:00
tjhunt 9ef749413f Remove broken unit test. 2008-08-13 06:21:49 +00:00
tjhunt 5929f17c0e Correct a URL in a comment. 2008-08-13 05:27:51 +00:00
tjhunt 930fbd3b5d MDL-12797 - Site-wide quiz default time-limit was not working. The default was being used, but the enabled state was not being initialised correctly for the form field. 2008-08-13 03:17:59 +00:00
moodlerobot e697e660da Updated the 19 build version to 20080813 2008-08-13 01:46:09 +00:00
skodak 8f184c6d5b MDL-15994 fix typo in choice/lib.php backported from HEAD 2008-08-12 21:27:01 +00:00
tjhunt 9e724aa8ed MDL-15973 - Errors from manual grading report on Postgres. Actually, this was already fixed in HEAD, so I am just backporting an already-working fix. 2008-08-12 07:27:50 +00:00
tjhunt b0d5723c11 Found while testing MDL-12392 - it should not be considered an error if a quiz does not contain any essay questions. Packporting this return true from HEAD. 2008-08-12 06:07:13 +00:00
tjhunt 1f64775a99 XHTML strrrict! 2008-08-12 04:11:56 +00:00
moodlerobot f512cbdb9c Updated the 19 build version to 20080812 2008-08-12 01:50:12 +00:00
moodlerobot 698c1c93f1 Automatic installer.php lang files by installer_builder (20080812) 2008-08-12 01:43:42 +00:00
danmarsden e5cba21fb3 MDL-14913 check vars b4 using merged from HEAD 2008-08-11 05:10:44 +00:00
danmarsden 6a85d31fab MDL-15328 - hide grade category drop down. - merged from HEAD 2008-08-11 04:49:57 +00:00
danmarsden fec92d9c3e MDL-14655 fix display of Choice when "show results after closed" is selected. merged from HEAD 2008-08-11 04:22:58 +00:00
moodlerobot 3ca11c32d2 Updated the 19 build version to 20080811 2008-08-11 01:19:18 +00:00
moodlerobot 3e81e45b43 Automatic installer.php lang files by installer_builder (20080811) 2008-08-11 01:13:04 +00:00
piers c0b72b725c MDL-14492 Provide feedback to user about redirect delay in loadsco.php. backport to 1.9. 2008-08-10 22:33:49 +00:00
moodlerobot eb8fa0ce5c Updated the 19 build version to 20080810 2008-08-10 01:37:26 +00:00
moodlerobot 0e3da7abb0 Updated the 19 build version to 20080809 2008-08-09 01:40:02 +00:00
moodlerobot b7a957168c Automatic installer.php lang files by installer_builder (20080809) 2008-08-09 01:33:48 +00:00
moodlerobot f306e3fa67 Updated the 19 build version to 20080808 2008-08-08 01:45:30 +00:00
moodlerobot 3ea5e9eb8b Automatic installer.php lang files by installer_builder (20080808) 2008-08-08 01:38:34 +00:00
stronk7 8c93a426ef Complete inline help about smtp hosts. Credit goes to Anthony. MDL-15923 2008-08-07 22:55:12 +00:00
stronk7 ebb5b6b760 Allow font-family "protocol" to avoid kses cleaning it. MDL-15963 2008-08-07 22:36:33 +00:00
danmarsden 42f42ad0bb MDL-15967 - must use full php tags, not shortags - thanks Urs merged from head 2008-08-07 20:47:20 +00:00
stronk7 fc9d285a62 Fixed copy&paste error. Credit goes to Sergio Rabellino.
http://moodle.org/mod/forum/discuss.php?d=102933
2008-08-07 17:09:27 +00:00
dongsheng f20c125374 MDL-11789, apply $CFG->filelifetime in send_file function. 2008-08-07 06:09:18 +00:00
moodlerobot 90ffc0342c Updated the 19 build version to 20080807 2008-08-07 01:49:06 +00:00
moodlerobot 61bad674a3 Automatic installer.php lang files by installer_builder (20080807) 2008-08-07 01:42:01 +00:00
piers d86a0382de MDL-10425 and MDL-12872 Firefox bugs String() handling on replace. enhanced rege xfor CMI data types. MDL-8193 Incorrect handling of quotes in SetValue processing - recoded so that it escapes all values passed from tracks. backport to 1.9. 2008-08-06 23:52:27 +00:00
stronk7 0616b1fba2 Fixing typo causing restore not to work within 19_STABLE branch (BC). MDL-15282 2008-08-06 16:41:48 +00:00
skodak 3b20cc2f8f MDL-15941 block view permissions override regression fixed, merged from HEAD 2008-08-06 05:08:35 +00:00
piers ec88010b2e MDL-15950 MDL-15640 MDL-15943 - SCORM player.php not inserting footer, Showing SCORM participation report. (thanks Urs Hunkler and Mitsuhiro Yoshida). Warning are displayed in a SCORM activity (thanks Dan). Backport to 1.9. 2008-08-06 05:06:00 +00:00
scyrma d024e361f9 MDL-15345: Fix in sql query, for postgres. 2008-08-06 02:35:19 +00:00
moodlerobot 3dc9ef3784 Updated the 19 build version to 20080806 2008-08-06 01:48:44 +00:00
moodlerobot 86031c9964 Automatic installer.php lang files by installer_builder (20080806) 2008-08-06 01:40:23 +00:00
tjhunt 0c5c51bdc5 MDL-15583 - Broken link in Item analysis report. Fix thanks to John T. Macklin in MDL-15940. 2008-08-05 17:45:50 +00:00
thepurpleblob d39d9a4df2 MDL-15949
enrol_logtolocation not defined in config_form()
2008-08-05 14:16:08 +00:00
moodlerobot 7e3bebda6d Updated the 19 build version to 20080805 2008-08-05 01:42:39 +00:00
moodlerobot 056f34bc58 Automatic installer.php lang files by installer_builder (20080805) 2008-08-05 01:35:28 +00:00
stronk7 f98a72984d Make custom checks BC, so any test about future releases doesn't fail
with error it the file and/or function is missing (highly possible). MDL-15939 ; backported from HEAD
2008-08-05 00:23:09 +00:00
stronk7 b0138cb939 Deleting one env test not needed for 2.0 (backporting from HEAD) 2008-08-04 23:01:20 +00:00
stronk7 1b9cd29cbe Backporting latest modifications of environment.xml in HEAD to 19_STABLE. MDL-15349 and sqllite 2.0 2008-08-04 22:42:52 +00:00
stronk7 fe6247bb36 Added missing curlrequired string. MDL-15349 2008-08-04 21:16:27 +00:00
skodak cc22d069c7 MDL-15928 switched to zip PHP extensions in HEAD - adding to env test 2008-08-04 16:46:03 +00:00
thepurpleblob 3da5676e18 MDL-15885
QTI fixes from Niall Barr
2008-08-04 10:07:54 +00:00
moodler 4cc1194951 Bumped to an integer. 2008-08-04 08:57:14 +00:00
moodler 8bea916e87 MDL-15926 JUst show one scale when required 2008-08-04 07:00:08 +00:00
moodlerobot d33a0a8cdd Updated the 19 build version to 20080804 2008-08-04 01:45:04 +00:00
peterbulmer 73c73b1119 MDL-12558 modify emails as they are being sent
replace urls in-place to direct users to their idp first
(1.9 edition - Moodle-Moodle sso only)
2008-08-03 23:28:59 +00:00
piers e0aa018ccf MDL-14457 SCORM module creating extra windows when opening module in a new window. Backport to 1.9 (thanks Jo Matthews). 2008-08-03 22:17:16 +00:00
stronk7 c2c2f12d41 Allow multiple SMTP hosts or host:port to be defined in $CFG->smtphosts. MDL-15923 2008-08-03 21:13:20 +00:00
moodlerobot 602bf00fd1 Updated the 19 build version to 20080803 2008-08-03 01:37:23 +00:00
gbateson cba660bfe6 MDL-15811 fix quotes: width=240" -> width="240" 2008-08-02 21:30:37 +00:00
moodlerobot 766624537d Updated the 19 build version to 20080802 2008-08-02 01:40:50 +00:00
moodlerobot e37d20268d Automatic installer.php lang files by installer_builder (20080802) 2008-08-02 01:34:04 +00:00
skodak 95e1b81938 MDL-15410 Require PHP 5.2.4 instead of 5.2.0 in HEAD because PHP 5.2.0 has many known problems :-( 2008-08-01 10:08:58 +00:00
piers 5b3e0dd963 MDL-14902 Missing column 'whatgrade' in prefix_scorm table. Is a DB patch (thanks Hans de Zwart). backport 1.9. 2008-08-01 04:30:45 +00:00
moodlerobot 0301220044 Updated the 19 build version to 20080801 2008-08-01 01:42:52 +00:00
piers 2e11eb2fed MDL-15899 JavaScript error In IE7 when opening SCORM content in a new window. Fix spaces in popup name for fussy IE. backported to 1.9. 2008-07-31 22:31:04 +00:00
thepurpleblob 5996538474 MDL-15148
In fact, getting IP lookup too from MDL-15008 by Lue Hudson.
2008-07-31 15:00:35 +00:00
thepurpleblob fe4cb39742 MDL-15148
When replacing key pair, lookup wwwroot again (it might have been changed)
2008-07-31 14:53:27 +00:00
mchurch fe67442c84 MDL-15896 - Clean 'page' and 'q' parameters to only allow normal page name characters. 2008-07-31 14:02:34 +00:00
moodler 4fb8cf0b0e MDL-15892 Added some phpdocs to explain the module parameter better 2008-07-31 07:35:59 +00:00
moodler 3fac08373c MDL-15892 Improved get_string - it can now handle paths as the module like 'mod/forum' or 'grade/import/txt' and will look in the right file automatically (eg forum.php and gradeimport_txt.php) 2008-07-31 07:23:35 +00:00
moodlerobot 305d28fc37 Updated the 19 build version to 20080731 2008-07-31 01:51:50 +00:00
skodak 484b866963 MDL-15890 removing public function - breaks PHP4, sorry! 2008-07-30 19:26:17 +00:00
moodlerobot 247b827045 Updated the 19 build version to 20080730 2008-07-30 01:40:59 +00:00
wildgirl c9332cc8ee MDL-11844 lang string small rewording 2008-07-29 14:23:58 +00:00
sam_marshall 5f6512446e MDL-15875: Missing break; in switch 2008-07-29 13:33:05 +00:00
wildgirl db1d22711d MDL-15846 lang string small rewording 2008-07-29 12:43:46 +00:00
moodlerobot 40513431f1 Updated the 19 build version to 20080729 2008-07-29 01:42:48 +00:00
piers 251b51c948 MDL-9378 New visualisation for SCORM - modify CSS class names to make them more specific. sorry to commit so close to review day, just fixing a regression - 1.9. 2008-07-29 01:25:20 +00:00
piers 8334db6c52 MDL-11892 JavaScript error on SCORM tree list - bapckport to 1.9 for AICC. 2008-07-28 22:42:57 +00:00
fmarier 50c995e402 mod/scorm/help: fix typo (extra space before period) 2008-07-28 06:31:46 +00:00
moodler 23ab305b99 MDL-15841 Removed the default safe overrides for new installs (MDL-8521) 2008-07-28 03:11:35 +00:00
moodlerobot d7cff10ece Updated the 19 build version to 20080728 2008-07-28 01:41:39 +00:00
moodlerobot ac273a80fb Automatic installer.php lang files by installer_builder (20080728) 2008-07-28 01:35:39 +00:00
piers 58afb04bc7 MDL-9378 New visualisation for SCORM - back ported to 1.9. 2008-07-28 00:44:49 +00:00
piers 17b03a9310 MDL-11137 Unable to locate API error - add check for empty array from DB interface (ksort complains) - backport to 1.9. 2008-07-27 21:23:26 +00:00
danmarsden be8dce4263 MDL-15747 typo merged from HEAD 2008-07-27 20:22:07 +00:00
moodlerobot d4574cfd9a Updated the 19 build version to 20080727 2008-07-27 01:37:49 +00:00
stronk7 fb7eddbe0e Fix A tag regex searching. MDL-15842 2008-07-26 23:03:24 +00:00
stronk7 710c437386 Fix A tag regex searching. MDL-15842 2008-07-26 22:11:33 +00:00
skodak f6e0e6860f MDL-15846 add option to prevent course welcome emails + support for searching in enrolment page; backported from HEAD 2008-07-26 16:51:11 +00:00
skodak 054fabfbb8 MDL-11844 new option for conditional stripping of tags from activity names; backported from HEAD 2008-07-26 15:17:03 +00:00
skodak a6017978a2 MDL-13353 Course page does not validate when a lable containing <p> tags is hidden 2008-07-26 11:35:23 +00:00
skodak f0217b9883 MDL-5018 added thead and tfoot to allowed tags 2008-07-26 11:27:48 +00:00
moodlerobot 15fe5d855b Updated the 19 build version to 20080726 2008-07-26 01:41:15 +00:00
skodak 25db6e1545 MDL-15823 format_string() improvements 2008-07-25 22:43:08 +00:00
nicolasconnault c43b787bd0 MDL-14383 Updated to YUI 2.5.2 2008-07-25 11:13:15 +00:00
nicolasconnault 564701314a file layout-core.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:09 +0000 2008-07-25 10:50:25 +00:00
nicolasconnault 0c590542b8 file uploader.swf was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:45 +0000 2008-07-25 10:50:24 +00:00
nicolasconnault c225616d65 file charts.swf was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:07 +0000 2008-07-25 10:50:24 +00:00
nicolasconnault 17a80d2794 file profilerviewer-beta.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:35 +0000 2008-07-25 10:50:22 +00:00
nicolasconnault 143e492402 file profilerviewer-beta-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:36 +0000 2008-07-25 10:50:22 +00:00
nicolasconnault 18a086751a file profilerviewer-beta-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:36 +0000 2008-07-25 10:50:22 +00:00
nicolasconnault e27bbbc985 file imagecropper-core.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:08 +0000 2008-07-25 10:50:22 +00:00
nicolasconnault e8ebd7b421 file imagecropper-beta-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:01 +0000 2008-07-25 10:50:21 +00:00
nicolasconnault 129915ba8f file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:01 +0000 2008-07-25 10:50:21 +00:00
nicolasconnault da3972a185 file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:35 +0000 2008-07-25 10:50:21 +00:00
nicolasconnault e1b5751918 file simpleeditor-core.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:06 +0000 2008-07-25 10:50:20 +00:00
nicolasconnault 40b4e7b4bc file selector-beta.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:26 +0000 2008-07-25 10:50:20 +00:00
nicolasconnault 78b6fd22c2 file selector-beta-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:26 +0000 2008-07-25 10:50:20 +00:00
nicolasconnault fc17c54077 file selector-beta-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:26 +0000 2008-07-25 10:50:20 +00:00
nicolasconnault de077f1dd4 file resize-beta-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:45 +0000 2008-07-25 10:50:20 +00:00
nicolasconnault 3425aa1e2c file imagecropper-beta.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:01 +0000 2008-07-25 10:50:20 +00:00
nicolasconnault 7d006e9a5e file imagecropper-beta-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:01 +0000 2008-07-25 10:50:20 +00:00
nicolasconnault 8621ab7126 file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:25 +0000 2008-07-25 10:50:20 +00:00
nicolasconnault da80ed628e file resize-beta.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:44 +0000 2008-07-25 10:50:19 +00:00
nicolasconnault 72771dc3cf file resize-beta-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:44 +0000 2008-07-25 10:50:19 +00:00
nicolasconnault cc3509a6ec file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:44 +0000 2008-07-25 10:50:19 +00:00
nicolasconnault 757ec59ed3 file colorpicker.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:32 +0000 2008-07-25 10:50:17 +00:00
nicolasconnault 03a3755549 file colorpicker-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:32 +0000 2008-07-25 10:50:17 +00:00
nicolasconnault 3e9d9efdad file colorpicker-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:31 +0000 2008-07-25 10:50:17 +00:00
nicolasconnault e9f830c53d file charts-experimental.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:49 +0000 2008-07-25 10:50:17 +00:00
nicolasconnault 5f88d883e9 file charts-experimental-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:49 +0000 2008-07-25 10:50:17 +00:00
nicolasconnault 0e89101111 file charts-experimental-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:49 +0000 2008-07-25 10:50:17 +00:00
nicolasconnault 07bde17a1c file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:49 +0000 2008-07-25 10:50:17 +00:00
nicolasconnault 3caa54fc84 file reset-fonts.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:53 +0000 2008-07-25 10:50:15 +00:00
nicolasconnault e8757d27e7 file calgrad.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:27 +0000 2008-07-25 10:50:15 +00:00
nicolasconnault 44ede51ffc file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:53 +0000 2008-07-25 10:50:15 +00:00
nicolasconnault 6d7cfc2957 file history.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:39 +0000 2008-07-25 10:50:14 +00:00
nicolasconnault bdd4d7abd6 file history-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:39 +0000 2008-07-25 10:50:14 +00:00
nicolasconnault 9dd0c1416e file history-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:39 +0000 2008-07-25 10:50:14 +00:00
nicolasconnault 526db10dcf file uploader-experimental.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:42 +0000 2008-07-25 10:50:13 +00:00
nicolasconnault 8b83d56614 file uploader-experimental-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:43 +0000 2008-07-25 10:50:13 +00:00
nicolasconnault e81145d832 file uploader-experimental-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:43 +0000 2008-07-25 10:50:13 +00:00
nicolasconnault d1362aa48f file imagecropper.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:57 +0000 2008-07-25 10:50:13 +00:00
nicolasconnault 4be67e14c6 file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:43 +0000 2008-07-25 10:50:13 +00:00
nicolasconnault 0530079e3a file imagecropper-skin.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:57 +0000 2008-07-25 10:50:12 +00:00
nicolasconnault 1efa5d19b2 file simpleeditor-beta.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:18 +0000 2008-07-25 10:50:11 +00:00
nicolasconnault acbddb8c0e file simpleeditor-beta-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:17 +0000 2008-07-25 10:50:11 +00:00
nicolasconnault ee92e22009 file simpleeditor-beta-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:17 +0000 2008-07-25 10:50:11 +00:00
nicolasconnault 5d82602a1a file cookie-beta.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:19 +0000 2008-07-25 10:50:08 +00:00
nicolasconnault 17a4761c51 file cookie-beta-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:19 +0000 2008-07-25 10:50:08 +00:00
nicolasconnault e2c4404f70 file cookie-beta-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:19 +0000 2008-07-25 10:50:08 +00:00
nicolasconnault 1de76b3cdf file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:19 +0000 2008-07-25 10:50:08 +00:00
nicolasconnault 3a855b0805 file imageloader.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:34 +0000 2008-07-25 10:50:07 +00:00
nicolasconnault a8bb07dc1a file imageloader-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:34 +0000 2008-07-25 10:50:07 +00:00
nicolasconnault 777f89e896 file imageloader-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:34 +0000 2008-07-25 10:50:07 +00:00
nicolasconnault dec437a979 file profiler-beta.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:40 +0000 2008-07-25 10:50:06 +00:00
nicolasconnault f89e53a5dd file profiler-beta-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:40 +0000 2008-07-25 10:50:06 +00:00
nicolasconnault 468c0855cc file profiler-beta-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:40 +0000 2008-07-25 10:50:06 +00:00
nicolasconnault 19b630187c file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:40 +0000 2008-07-25 10:50:06 +00:00
nicolasconnault c0d325e7a1 file transparent.gif was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:25 +0000 2008-07-25 10:50:03 +00:00
nicolasconnault af4676fb38 file yuiloader-dom-event.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:04 +0000 2008-07-25 10:50:00 +00:00
nicolasconnault cfd196d5ae file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:03 +0000 2008-07-25 10:50:00 +00:00
nicolasconnault 70b194e93c file yuitest_core.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:47 +0000 2008-07-25 10:49:59 +00:00
nicolasconnault 7786b00b22 file yuitest-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:47 +0000 2008-07-25 10:49:59 +00:00
nicolasconnault c88e78bb40 file get.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:55 +0000 2008-07-25 10:49:59 +00:00
nicolasconnault 0d130bb286 file get-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:54 +0000 2008-07-25 10:49:59 +00:00
nicolasconnault 6bfdc81f0e file get-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:55 +0000 2008-07-25 10:49:59 +00:00
nicolasconnault b63e566b45 file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:55 +0000 2008-07-25 10:49:59 +00:00
nicolasconnault 82dccafe5a file yuitest_core-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:46 +0000 2008-07-25 10:49:58 +00:00
nicolasconnault 26c3caf6a3 file yuitest_core-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:47 +0000 2008-07-25 10:49:58 +00:00
nicolasconnault 4d689d16bb file yuitest.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:47 +0000 2008-07-25 10:49:58 +00:00
nicolasconnault f658f56f47 file yuitest-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:48 +0000 2008-07-25 10:49:58 +00:00
nicolasconnault 31fdf7577a file treeview-menu.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:38 +0000 2008-07-25 10:49:58 +00:00
nicolasconnault c85e20f0ba file sprite-menu.gif was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:38 +0000 2008-07-25 10:49:58 +00:00
nicolasconnault f312612a38 file menuitem_submenuindicator_disabled.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:41 +0000 2008-07-25 10:49:57 +00:00
nicolasconnault b53abb6ecc file menuitem_submenuindicator.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:42 +0000 2008-07-25 10:49:57 +00:00
nicolasconnault 122d408f7b file menuitem_checkbox_disabled.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:42 +0000 2008-07-25 10:49:57 +00:00
nicolasconnault 002d676529 file menuitem_checkbox.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:42 +0000 2008-07-25 10:49:57 +00:00
nicolasconnault 55bc41f9a2 file menubaritem_submenuindicator_disabled.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:41 +0000 2008-07-25 10:49:57 +00:00
nicolasconnault bd697aba1d file menubaritem_submenuindicator.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:42 +0000 2008-07-25 10:49:57 +00:00
nicolasconnault 5a42d736b7 file layout_sprite.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:05 +0000 2008-07-25 10:49:57 +00:00
nicolasconnault 8509497ed8 file layout.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:05 +0000 2008-07-25 10:49:57 +00:00
nicolasconnault 9594faa9c6 file layout-skin.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:14:05 +0000 2008-07-25 10:49:57 +00:00
nicolasconnault a00891dd9b file button.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:53 +0000 2008-07-25 10:49:56 +00:00
nicolasconnault 772b2bd4b1 file button-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:53 +0000 2008-07-25 10:49:56 +00:00
nicolasconnault dbd92929dd file button-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:54 +0000 2008-07-25 10:49:56 +00:00
nicolasconnault 659bbcfec4 file layout-beta.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:52 +0000 2008-07-25 10:49:55 +00:00
nicolasconnault 0720542e52 file layout-beta-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:52 +0000 2008-07-25 10:49:55 +00:00
nicolasconnault 69744ce1e3 file layout-beta-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:51 +0000 2008-07-25 10:49:55 +00:00
nicolasconnault a8a400a4e3 file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:52 +0000 2008-07-25 10:49:55 +00:00
nicolasconnault a802fb0865 file wait.gif was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:57 +0000 2008-07-25 10:49:54 +00:00
nicolasconnault a51609599b file resize-core.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:52 +0000 2008-07-25 10:49:54 +00:00
nicolasconnault d642645b37 file profilerviewer.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:58 +0000 2008-07-25 10:49:54 +00:00
nicolasconnault 6e0a143abd file layout_sprite.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:56 +0000 2008-07-25 10:49:54 +00:00
nicolasconnault c2a4193bd8 file header_background.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:58 +0000 2008-07-25 10:49:54 +00:00
nicolasconnault 8cea7b6440 file desc.gif was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:57 +0000 2008-07-25 10:49:54 +00:00
nicolasconnault f098c2e1cd file asc.gif was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:58 +0000 2008-07-25 10:49:54 +00:00
nicolasconnault 8b82876aa7 file resize.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:56 +0000 2008-07-25 10:49:53 +00:00
nicolasconnault fa13546769 file resize-skin.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:56 +0000 2008-07-25 10:49:53 +00:00
nicolasconnault cb0d52c9c9 file menuitem_submenuindicator_disabled.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:30 +0000 2008-07-25 10:49:49 +00:00
nicolasconnault 7230a16b43 file menuitem_submenuindicator.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:31 +0000 2008-07-25 10:49:49 +00:00
nicolasconnault 8f56f260fc file menuitem_checkbox_selected.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:29 +0000 2008-07-25 10:49:49 +00:00
nicolasconnault 2f2205fdc6 file menuitem_checkbox.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:30 +0000 2008-07-25 10:49:49 +00:00
nicolasconnault 0b47114700 file menubaritem_submenuindicator_disabled.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:29 +0000 2008-07-25 10:49:49 +00:00
nicolasconnault 69822d5b63 file menubaritem_submenuindicator.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:28 +0000 2008-07-25 10:49:49 +00:00
nicolasconnault 347dae0027 file menu_up_arrow.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:31 +0000 2008-07-25 10:49:49 +00:00
nicolasconnault 1b91f2ab8b file menuitem_submenuindicator_selected.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:31 +0000 2008-07-25 10:49:48 +00:00
nicolasconnault 8e2ea1ba39 file menuitem_checkbox_disabled.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:29 +0000 2008-07-25 10:49:48 +00:00
nicolasconnault a9b8a21de5 file menubaritem_submenuindicator_selected.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:31 +0000 2008-07-25 10:49:48 +00:00
nicolasconnault ad6e03efb0 file menu_up_arrow_disabled.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:30 +0000 2008-07-25 10:49:48 +00:00
nicolasconnault 2b39f6e384 file menu_down_arrow_disabled.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:28 +0000 2008-07-25 10:49:48 +00:00
nicolasconnault 4ca80babe5 file menu_down_arrow.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:29 +0000 2008-07-25 10:49:48 +00:00
nicolasconnault 65ac424b84 file json.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:18 +0000 2008-07-25 10:49:48 +00:00
nicolasconnault 1cb6492da5 file json-min.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:18 +0000 2008-07-25 10:49:48 +00:00
nicolasconnault 98273acc63 file json-debug.js was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:19 +0000 2008-07-25 10:49:48 +00:00
nicolasconnault 8e4865cf94 file menuitem_submenuindicator_disabled.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:20 +0000 2008-07-25 10:49:47 +00:00
nicolasconnault 1a0c5f3b0d file menuitem_checkbox_disabled.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:23 +0000 2008-07-25 10:49:47 +00:00
nicolasconnault 2065c05b07 file README was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:18 +0000 2008-07-25 10:49:47 +00:00
nicolasconnault 371944075f file transparent.gif was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:20 +0000 2008-07-25 10:49:46 +00:00
nicolasconnault e97f0e5420 file profilerviewer.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:21 +0000 2008-07-25 10:49:46 +00:00
nicolasconnault 208b652cd3 file menubaritem_submenuindicator_disabled.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:20 +0000 2008-07-25 10:49:46 +00:00
nicolasconnault 4a8d746b4f file imagecropper.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:22 +0000 2008-07-25 10:49:46 +00:00
nicolasconnault 4ad6881a2d file simpleeditor.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:21 +0000 2008-07-25 10:49:45 +00:00
nicolasconnault 5d6a449f7e file resize.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:21 +0000 2008-07-25 10:49:45 +00:00
nicolasconnault 2d7434c3bc file menuitem_submenuindicator.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:22 +0000 2008-07-25 10:49:45 +00:00
nicolasconnault 054de985c5 file wait.gif was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:22 +0000 2008-07-25 10:49:44 +00:00
nicolasconnault 48002b23c2 file menuitem_checkbox.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:22 +0000 2008-07-25 10:49:44 +00:00
nicolasconnault 7a0dc51192 file menubaritem_submenuindicator.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:23 +0000 2008-07-25 10:49:44 +00:00
nicolasconnault 31741dbe6d file layout_sprite.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:24 +0000 2008-07-25 10:49:44 +00:00
nicolasconnault 604cef521b file layout.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:23 +0000 2008-07-25 10:49:44 +00:00
nicolasconnault 8026517377 file header_background.png was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:23 +0000 2008-07-25 10:49:44 +00:00
nicolasconnault 9b1905cc2b file desc.gif was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:22 +0000 2008-07-25 10:49:44 +00:00
nicolasconnault 9fd99f387a file asc.gif was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:20 +0000 2008-07-25 10:49:44 +00:00
nicolasconnault 5adafb4e17 file simpleeditor.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:35 +0000 2008-07-25 10:49:43 +00:00
nicolasconnault 706bffc940 file simpleeditor-skin.css was added on branch MOODLE_19_STABLE on 2008-07-25 11:13:35 +0000 2008-07-25 10:49:43 +00:00
piers 8fdfb20a90 MDL-11137 Unable to locate API error - remove comment code with bad characters. backport to 1.9. 2008-07-25 02:32:38 +00:00
piers bf3fc937f6 MDL-11137 Unable to locate API error - force a sort order on the cmi elements, and ensure correct type comparison when determining whether we have seen this objective id before. affects aicc, 1.2 and 1.3. propagate to 1.9. 2008-07-25 01:48:36 +00:00
moodlerobot 9408154669 Updated the 19 build version to 20080725 2008-07-25 01:44:17 +00:00
skodak ea62f50ea7 MDL-15821 do not show profile link in admin block if using guest account 2008-07-24 23:14:09 +00:00
skodak 6e47562d93 MDL-15820 fixed some install noise on dev sites 2008-07-24 22:23:51 +00:00
skodak 3e79b6e37a MDL-11421 context levels fixed in capability definitions, sorting of caps by name, plug-ins may report used core caps, fixed some risks 2008-07-24 21:58:05 +00:00
nicolasconnault 1b5b25b498 MDL-14247 Applying Katja's fix. Thanks! 2008-07-24 14:03:17 +00:00
arborrow e403b1fd34 fix trivial typo 2008-07-24 12:32:26 +00:00
skodak d99319f400 MDL-15809 fixed js errors on group members page 2008-07-24 11:39:05 +00:00
skodak 709c9900b5 MDL-15804 yet more space for editor area 2008-07-24 11:11:58 +00:00
skodak b54847edc3 MDL-15804 smaller online assignment text box size 2008-07-24 06:01:55 +00:00
piers 61e8fd6d8a MDL-9077 switch from client to server side validation for reference field as client side not supported for this type (file upload name) - propogate to 1.9. 2008-07-24 01:40:35 +00:00
moodlerobot 3e9d48cb8c Updated the 19 build version to 20080724 2008-07-24 01:40:01 +00:00
piers 340d23ab2f MDL-7323 AICC Import does not handle Core_Vendor + remove tabs and ambiguous else - propogated to 1.9. 2008-07-24 01:16:12 +00:00
stronk7 47ec4f9c6f Course page blocks are lost when restoring 1.3 and 1.4 backups. MDL-15803 2008-07-23 22:46:10 +00:00
skodak bc8b3aa84d MDL-8521 new feature - safe overrides, see tracker for details 2008-07-23 16:09:13 +00:00
thepurpleblob e6ace9b182 MDL-13925
Was not handling adding subcategories properly. Thanks to Dennis Protzek for the patch.
2008-07-23 14:33:38 +00:00
thepurpleblob f0c952dd41 MDL-14566
Misused get_role_users() was not returning users assigned in parent categories
2008-07-23 13:16:31 +00:00
tjhunt b2ece40a6b MDL-15792 - Images in question don't display. This is a regression from MDL-14279. Fix thanks to Yolanda Ord?ez Rufat. 2008-07-23 10:32:33 +00:00
nicolasconnault d0c5b9f724 MDL-15682 Fixed 2008-07-23 05:21:21 +00:00
dongsheng 4cac26a67d MDL-15565, fix bug of maintenance mode alert reminder 2008-07-23 03:16:00 +00:00
moodlerobot e7202030ef Updated the 19 build version to 20080723 2008-07-23 01:40:44 +00:00
sam_marshall 0e8a3a618b MDL-15773 - 'Pass by reference' errors in update from 1.9.1+ 2008-07-22 14:06:48 +00:00
moodlerobot a8dc4f71d6 Updated the 19 build version to 20080722 2008-07-22 01:48:09 +00:00
moodlerobot 3d4a59a201 Automatic installer.php lang files by installer_builder (20080722) 2008-07-22 01:42:27 +00:00
mudrd8mz 553e7a6faf MDL-15738 Always use <textarea> in language translation form, even for short strings 2008-07-21 15:21:51 +00:00
sam_marshall f9e7707b90 MDL-15731 Removed default grouping for modules which do not support grouping 2008-07-21 11:46:00 +00:00
dongsheng e68f5a9bf6 MDL-15317, when forum is invisible, only users with 'mod/forum:managesubscriptions' capability can subscrib forum. 2008-07-21 09:18:12 +00:00
moodlerobot 497fe2b602 Updated the 19 build version to 20080721 2008-07-21 01:35:26 +00:00
moodlerobot 181bad6feb Automatic installer.php lang files by installer_builder (20080721) 2008-07-21 01:29:50 +00:00
moodlerobot 3e6232e1c0 Added autogenerated bn_utf8 installer file. 2008-07-20 21:23:09 +00:00
moodlerobot 9e9e8a3d7a file installer.php was added on branch MOODLE_19_STABLE on 2008-07-20 21:23:08 +0000 2008-07-20 21:20:08 +00:00
jamiesensei 65143620aa MDL-15198 "non-standard sql in reportlib.php" using CASE statement to wrap logic in fields list 2008-07-20 13:01:45 +00:00
moodlerobot cac921308c Updated the 19 build version to 20080720 2008-07-20 01:37:18 +00:00
moodlerobot 1261492cfc Updated the 19 build version to 20080719 2008-07-19 01:36:31 +00:00
moodlerobot f8a3490beb Automatic installer.php lang files by installer_builder (20080719) 2008-07-19 01:31:01 +00:00
nicolasconnault c288ec21b2 MDL-14909 Preventing the border from being assigned to label list elements. 2008-07-18 14:19:55 +00:00
nicolasconnault 5bab878c29 MDL-12198 Fixing the ajax reordering problem with a new method. 2008-07-18 14:00:56 +00:00
ericmerrill 66a84e93f5 MDL-15697 Added a check form rule limiting post subject and forum name to 255 characters, as limited by the DB 2008-07-18 13:18:28 +00:00
moodler 349a7e7522 MDL-15702 More efficient SQL for advanced searching 2008-07-18 07:49:27 +00:00
scyrma a6a816fb4c MDL-4346: limiting the 'defer' clause to one call / fix the missing openpopup() bug in IE. 2008-07-18 07:14:12 +00:00
moodler ef30cf850a MDL-6850 Removed apparent-size from du 2008-07-18 06:41:13 +00:00
piers db376fdb42 MDL-11892 Propogate Fixes for 'calls to expand javascript' to SCORM 1.2, and 1.3 code. 2008-07-18 06:27:12 +00:00
moodler e8aa537761 MDL-15701 Don't show deleted hosts in block 2008-07-18 04:02:32 +00:00
moodler 8239c00c74 MDL-15700 Tidied up the maintenance mode display to users 2008-07-18 02:59:45 +00:00
moodlerobot 82d8384cdd Updated the 19 build version to 20080718 2008-07-18 01:36:19 +00:00
tjhunt 9b3e993a98 MDL-15693 - print_question_icon does not cope with missing question types 2008-07-17 12:49:22 +00:00
tjhunt a1f418fb08 MDL-15692 - Quiz attempt paging bar screws up in IE7 when you zoom the page. Normal Moodle paging bar doesn't, so I've changed the HTML the quiz generates to be closer the the output of weblib. Fortunately, this is irrelevant in 2.0. 2008-07-17 12:39:43 +00:00
scyrma 7536d5b28c MDL-15676: restrict block/blog_tags to showing blog tags. 2008-07-17 04:22:11 +00:00
moodler c4c2438e8b Bump post 1.9.2 release 2008-07-17 03:25:33 +00:00
dongsheng 3afb22f274 MDL-15683, get query string instead of calling me(). 2008-07-17 03:12:23 +00:00
moodlerobot 88f8f8f327 Updated the 19 build version to 20080717 2008-07-17 01:40:57 +00:00
jmg324 5d10a560d7 MDL-7971 check in get_categories if user can see hidden categories uses specific capability not course:create 2008-07-16 15:12:12 +00:00
moodlerobot f7bbe3d2d0 Updated the 19 build version to 20080716 2008-07-16 01:40:35 +00:00
scyrma 273d765e8d MDL-15661: typo in function name - wrong call meant tag type was set incorrectly 2008-07-16 01:20:48 +00:00
tjhunt cdd3f7f3ea MDL-14413 - Invalid function name - is_image_by_extentsion in QTI export 2008-07-15 09:18:38 +00:00
moodler de1b29bc55 MDL-14299 - small fix to credit line 2008-07-15 04:28:39 +00:00
ikawhero 94f5f73216 MDL-14299 New checkbox profile field type.
Credit to Brian King.
2008-07-15 04:06:05 +00:00
ikawhero 63982e9727 Change language string file. 2008-07-15 04:01:20 +00:00
ikawhero 6a983a636f MDL-14299 New checkbox profile field type.
Credit to Brian King.
2008-07-15 03:24:20 +00:00
moodlerobot 5cb634a5fa Updated the 19 build version to 20080715 2008-07-15 01:41:06 +00:00
fmarier 409b091091 MDL-15614 Add 3 missing PHP error codes to get_file_upload_error()
The get_file_upload_error() function was missing the following error codes:

    UPLOAD_ERR_NO_TMP_DIR => 'Missing a temporary folder.',
    UPLOAD_ERR_CANT_WRITE => 'Failed to write file to disk.',
    UPLOAD_ERR_EXTENSION => 'File upload stopped by extension.',

(see http://www.php.net/manual/en/features.file-upload.errors.php)
2008-07-14 02:37:24 +00:00
dongsheng 5f16beaa9b MDL-15565, add maintenance mode alert reminders in title and navbar. 2008-07-14 02:29:26 +00:00
moodlerobot 47c35d0488 Updated the 19 build version to 20080714 2008-07-14 01:38:06 +00:00
gbateson c6eff884e7 improvements to generation of html from xml:
JCloze: set textbox size allowing for minimum gap size setting and longest answer;
JMatch: allow for duplicates and distractors in RHS items;
JQuiz: set textbox size allowing for longest answer, and use textarea if answer longer than 29 chars;
2008-07-13 12:20:30 +00:00
moodlerobot 8cfec7806c Updated the 19 build version to 20080713 2008-07-13 01:36:04 +00:00
gbateson 406a9d91d8 fixed a typo in get_baseurl function: get_file_url($this->filedir.'/'); should be get_file_url($this->filedir).'/'; i.e. finial slash should be *outside* the last bracket 2008-07-12 22:55:39 +00:00
moodlerobot 50d48da89d Updated the 19 build version to 20080712 2008-07-12 01:40:43 +00:00
skodak de62b323d9 MDL-13811 email change conf on by default 2008-07-11 07:49:54 +00:00
moodler e5ab89286b Bumping for release 2008-07-11 06:03:45 +00:00
dongsheng ea17cce0ae MDL-14932, improve accessibility in role assigning and group assigning pages. 2008-07-11 04:33:29 +00:00
moodler 04cb203237 MDL-15610 Fixed very old log display bug for labels (well spotted Gary!) 2008-07-11 02:54:54 +00:00
scyrma 4c87067821 MDL-14279: Fixes for regressions created by the get_file_url massive change 2008-07-11 02:28:31 +00:00
moodlerobot 4035e4dfcf Updated the 19 build version to 20080711 2008-07-11 01:39:46 +00:00
scyrma 4770b4b6b3 MDL-14279: use get_file_url instead of checking $CFG->slashargument manually 2008-07-10 09:48:43 +00:00
dongsheng 6023d353c4 "MDL-15592, change js function name toggle() to menu_toggle(), to be friendly with prototype.js" 2008-07-10 09:34:46 +00:00
moodler fa2b5a6add MDL-15601 Basic checking to avoid some notices 2008-07-10 08:50:00 +00:00
skodak 07dffe499d MDL-10586 fixed coding style 2008-07-10 08:36:02 +00:00
moodler 69f67b2af4 MDL-13811: Small fix to make this work even when email is disabled for that user 2008-07-10 08:05:52 +00:00
scyrma 0e27230f3b MDL-14999 & MDL-10657: Fix for a few problems in HTMLArea. (Patch by Nicklas Lindgren) 2008-07-10 04:11:34 +00:00
scyrma 0a3a5cdad5 MDL-10586: Fix header to show the right display order. (Initial patch by Mitsuhiro Yoshida) 2008-07-10 03:36:13 +00:00
dongsheng fcd05dab8e MDL-15563, use require instead of require_once, see tracker. 2008-07-10 01:50:32 +00:00
moodlerobot 1840030d48 Updated the 19 build version to 20080710 2008-07-10 01:39:42 +00:00
skodak e690e668ba MDL-15469 adding fclose before write to already open file 2008-07-09 10:32:37 +00:00
dongsheng 8cfc7e4ed4 MDL-15563, fix undefined variable in this page, and debugging information. 2008-07-09 09:31:40 +00:00
scyrma f505e072dd MDL-15403: Patch sent by Peter Bulmer, said to have been written by Donal McMullan. Prevents a remotely-triggered mass-unenrolments of users in a
(mnet-enabled) course.
2008-07-09 09:02:33 +00:00
moodlerobot 037b616369 Updated the 19 build version to 20080709 2008-07-09 01:40:26 +00:00
tjhunt 26f4fa7e15 MDL-11905 - Users with the capability to export questions may not have the capability to access backupdata. Therefore we need to change where question export files are stored. I know this is after the 1.9.2 code freeze, but I discussed this fix with Petr, and he reviewed it last night and we decided it was better to commit it before the 1.9.2 release. 2008-07-08 11:16:21 +00:00
thepurpleblob 9cc3a2e567 MDL-15304
Default name 'label' is looked up from language pack.
2008-07-08 09:38:27 +00:00
thepurpleblob dcb15c8dbc MDL-15304
Remove the item number from the created label name. It doesn't work for new labels.
2008-07-08 08:44:38 +00:00
moodlerobot 222b1a0040 Updated the 19 build version to 20080708 2008-07-08 01:43:17 +00:00
moodlerobot 21f7d612de Automatic installer.php lang files by installer_builder (20080708) 2008-07-08 01:35:27 +00:00
skodak 741cd9b3c1 MDL-13383 fixed restore form 2008-07-07 22:34:21 +00:00
skodak c029120bd6 MDL-15561 unsubscribe all option implemented; backported from HEAD 2008-07-07 21:51:40 +00:00
skodak 78a57b624b file unsubscribeall.php was added on branch MOODLE_19_STABLE on 2008-07-07 21:51:40 +0000 2008-07-07 21:51:01 +00:00
skodak 7713cdb03c MDL-15413 warn admins if display_errors enabled; backported from HEAD 2008-07-07 14:35:29 +00:00
thepurpleblob 4edbf22f28 MDL-15473
Fixed typo causing the image location to be ignored if the base_64 image is not included.
2008-07-07 11:51:57 +00:00
scyrma c2efdd7624 MDL-14237: Removing all remaining tag-related uses of html_entity_decode 2008-07-07 07:40:35 +00:00
scyrma 347579d364 MDL-14237: Removing calls to html_entity_decode, along with some syntax cleanup 2008-07-07 07:17:49 +00:00
scyrma 1690ed662c MDL-14772: Prevent official tags from being deleted when tag_instance table is empty. (Patch by Hynek Černoch) 2008-07-07 06:35:13 +00:00
scyrma adb9ea5757 MDL-12649: Prevent editing a blog from changing the display sort (based on creation date) (Patch by Dan Poltawski) 2008-07-07 03:19:09 +00:00
moodlerobot 06128605e7 Updated the 19 build version to 20080707 2008-07-07 01:36:47 +00:00
skodak 3cc961d47a MDL-13901 guest can not be selected in "Default role for all users" in 1.9.x 2008-07-06 23:53:33 +00:00
skodak 48f3e237f5 MDL-9983 role_unassign should not touch group members table directly - we need events 2008-07-06 22:54:05 +00:00
skodak 9952398b7f MDL-9983 role assignment related triggers 2008-07-06 19:26:21 +00:00
skodak 58286f7b5a MDL-15553 events_trigger() perf improvement 2008-07-06 18:56:50 +00:00
skodak 2959f8b18e MDL-9983, MDL-13998, MDL-15552 core events related cleanup and potential sql injection problem fixed; please note the changes are not backwards compatible, 3rd party code will need to be updated - sorry for the trouble 2008-07-06 17:55:54 +00:00
moodlerobot 5d1bd2051d Updated the 19 build version to 20080706 2008-07-06 01:34:43 +00:00
skodak 73db4aa6f3 MDL-13811 reworked unsetting of preferences and minor tweaks; backported from HEAD 2008-07-05 22:46:58 +00:00
skodak 9a6741db31 MDL-12505 do not leak separate groups info in advanced search user selection and other fixes 2008-07-05 20:57:09 +00:00
skodak 73532d6b11 MDL-15548 fixed regression, thanks Gary! 2008-07-05 17:24:48 +00:00
skodak 7cdd22b190 MDL-14035 fixed user images on user report 2008-07-05 16:13:35 +00:00
skodak 733818ca2e MDL-11905 send temp file support 2008-07-05 15:34:28 +00:00
skodak 3e779c59c6 MDL-15516 prvent access to deleted profiles and other user areas; backported from HEAD 2008-07-05 14:53:31 +00:00
nicolasconnault 7e408daaba MDL-13811 Fixing missing fullname variable for lang string. 2008-07-05 14:41:25 +00:00
nicolasconnault 84e9598a9f MDL-13811 Adding resetting of user preferences when change is successful. 2008-07-05 14:27:25 +00:00
skodak 7b22b8b89b MDL-13776 assignment attachment access now verified in module context 2008-07-05 14:17:29 +00:00
nicolasconnault e7f720c2c7 MDL-13811 Completed the required changes. Also added a "Cancel email change" link. 2008-07-05 14:06:58 +00:00
skodak 2b032990bf MDL-15420 fixed commented out continue which was causing leaks of info about hidden activities ;-) 2008-07-05 13:19:32 +00:00
skodak 2270fd6b61 MDL-14261 fixed access control issues for backup and unittest plugins 2008-07-05 13:05:24 +00:00
mudrd8mz 5100c95157 MDL-15077 Fixed link to admin section 2008-07-05 11:13:25 +00:00
skodak 67f6450846 MDL-15304 fixed empty label names coming from restore 2008-07-05 09:36:36 +00:00
moodlerobot 013a649ba8 Updated the 19 build version to 20080705 2008-07-05 01:42:38 +00:00
moodlerobot 0086b749dc Automatic installer.php lang files by installer_builder (20080705) 2008-07-05 01:36:03 +00:00
skodak 7eda97d239 MDL-15544 Disable email signup in new installation - add danger warning; backported from HEAD 2008-07-04 23:54:22 +00:00
skodak 0a062fdff5 MDL-14840 verbose scales in grade import; backported from HEAD 2008-07-04 20:48:18 +00:00
ethem a3c161ff00 http://moodle.org/mod/forum/discuss.php?d=100629 2008-07-04 17:07:00 +00:00
jamiesensei dcb16152f3 MDL-15530 "The Group menu in Quiz Module no longer works as before: all students are displayed regardless of what group is chosen" 'all attempts' mode for report is now disabled when a group is selected. 2008-07-04 09:48:01 +00:00
moodlerobot 022ebfc304 Updated the 19 build version to 20080704 2008-07-04 01:40:31 +00:00
moodlerobot ba91f79934 Automatic installer.php lang files by installer_builder (20080704) 2008-07-04 01:34:01 +00:00
skodak a5aea142e0 MDL-15304, MDL-15526 fixing regression 2008-07-03 23:00:33 +00:00
andreabix adefec37f7 Fixed MDL-13832 2008-07-03 22:05:59 +00:00
stronk7 de0a3bc5f1 Bump to clean empty role names. MDL-15284 2008-07-03 17:01:42 +00:00
stronk7 811e2ef0ee Clean empty role_names. MDL-15284 2008-07-03 17:00:54 +00:00
thepurpleblob 4f45ed6e32 MDL-13007
Corrected help for category selection. I hope this is what the tick boxes now do :-)
2008-07-03 15:12:44 +00:00
thepurpleblob 410f2eca60 MDL-13010
Now correctly checks for category context id and does not fail if it isn't there.
2008-07-03 14:47:09 +00:00
skodak dd11d7bdd3 MDL-15021 Deleted not fully setup separate admin settings; merged from MOODLE_18_STABLE but with better delete 2008-07-03 14:08:43 +00:00
stronk7 d889ca7bbc Only create role_name aliases if the original course (backup file) contains them. MDL-15284 2008-07-03 12:58:18 +00:00
skodak 524a75e438 MDL-11145 include orphaned mnet ids from user table into mnetid selector 2008-07-03 09:26:03 +00:00
jerome d38b5a753c MDL-14233 remove some var_dump() 2008-07-03 07:36:34 +00:00
jerome 465356acf0 MDL-14233 Make bulk user picture upload handle subdirectories in zip files (with patch) 2008-07-03 07:16:09 +00:00
jerome ff8e77b72a MDL-14635 fix user profil help icons 2008-07-03 04:08:33 +00:00
jerome d6b8aff273 MDL-14635 fix for user profil help icons 2008-07-03 04:08:06 +00:00
moodlerobot c0b030d581 Updated the 19 build version to 20080703 2008-07-03 01:40:04 +00:00
skodak 5efde2dafa MDL-15389 better explanation of spam dangers in user profiles - thanks Tim 2008-07-02 22:32:00 +00:00
skodak 37b48d3202 MDL-15390 improved subscribe me option when posting to forum - see tracker for more info 2008-07-02 21:58:35 +00:00
thepurpleblob cd50a71370 MDL-15505
Add debugging call if mnet authentication is not enabled.
2008-07-02 14:17:31 +00:00
robertall 74b4814e9c [MDL-15426] Distinguish latlong value being zero from no value 2008-07-02 12:42:15 +00:00
tjhunt 79cc2bf137 MDL-15494 - No allowance for the possibility that something might go wrong when processing the response to a question. Backported from HEAD. 2008-07-02 09:14:56 +00:00
dongsheng 8ca48dc533 "MDL-12843, add proper html id, thanks ken" 2008-07-02 07:32:35 +00:00
dongsheng 8b2a28041d "MDL-15424, close table tags manually before calling redirect" 2008-07-02 07:08:22 +00:00
dongsheng 359c7bbfa8 "MDL-15500, change helpbutton debug level to developer" 2008-07-02 06:38:09 +00:00
dongsheng 71f16fd1b3 "MDL-15501, typo, sorry" 2008-07-02 05:12:27 +00:00
dongsheng d64cb8b0c9 "MDL-15501, add appropriate div and h2 tags to the header div, merged from MOODLE_18_STABLE" 2008-07-02 05:02:00 +00:00
dongsheng f6ee689f33 "MDL-15469, limit email notification" 2008-07-02 04:46:04 +00:00
moodlerobot e40545b0d6 Updated the 19 build version to 20080702 2008-07-02 01:41:41 +00:00
skodak b3b6a4fff7 MDL-10633 fixed regression in last commit 2008-07-01 22:58:37 +00:00
skodak 0457fe8334 MDL-15387 fixing regression spotted by John Beedell 2008-07-01 22:25:26 +00:00
jamiesensei 696d84554d MDL-15490 "Create a new Quiz: warning message in Result tab" problem was when there were no students in a course - fixed. 2008-07-01 11:39:09 +00:00
gbateson 680c8b87e9 MDL-15184: fix sql injection vulnerability 2008-07-01 10:36:53 +00:00
moodlerobot d0356e72c3 Updated the 19 build version to 20080701 2008-07-01 01:35:58 +00:00
moodlerobot 11fc24fa4b Automatic installer.php lang files by installer_builder (20080701) 2008-07-01 01:30:08 +00:00
thepurpleblob 0f3cf24fa5 MDL-15476
Can now override the public key lifetime by specificying value
for $CFG->mnetkeylifetime in config.php
2008-06-30 15:00:25 +00:00
thepurpleblob d0de789783 MDL-15476
Can now override the public key lifetime by specificying value
for $CFG->mnetkeylifetime in config.php
2008-06-30 14:54:16 +00:00
thepurpleblob 08e6717022 MDL-14793
Added some debugging messages, if anything fails.
2008-06-30 14:14:31 +00:00
jamiesensei 78eabcc29d MDL-15198 "non-standard sql in reportlib.php" fixed this with new sql that does not require a limit clause. 2008-06-30 11:52:47 +00:00
ikawhero ccfbebff25 MDL-13000 - adding a missing call to update_capabilities() to process
local/db/access.php on an upgrade
2008-06-30 06:01:13 +00:00
scyrma ed77e5710f MDL-15392: preventing duplicate #id in blog entries list 2008-06-30 01:53:16 +00:00
moodlerobot af293d28c8 Updated the 19 build version to 20080630 2008-06-30 01:40:16 +00:00
moodlerobot ae022026b7 Automatic installer.php lang files by installer_builder (20080630) 2008-06-30 01:34:45 +00:00
moodlerobot 67f92d179d Updated the 19 build version to 20080629 2008-06-29 01:32:56 +00:00
stronk7 6daf124fcb Fix CEIL() uses with helper function. MDL-15336 2008-06-28 18:31:01 +00:00
stronk7 45516d902c Added sql_ceil() helper function. MDL-15336 2008-06-28 18:15:38 +00:00
moodlerobot 05ac554f60 Updated the 19 build version to 20080628 2008-06-28 01:35:52 +00:00
thepurpleblob b44c55c2bf MDL-15447
Admin search option only shown if user has moodle/site:config capability
2008-06-27 13:10:06 +00:00
scyrma e586bc17f1 MDL-15392: fix output sanitization and put permalink back, in a xhtml-strict compliant way. 2008-06-27 04:00:18 +00:00
moodler 80957b76a8 MDL-15413 Added some code to prevent direct calls on this script 2008-06-27 03:34:27 +00:00
dongsheng 81f64bba7f "MDL-10633, fix dobule quote in calendar, merged from MOODLE_18_STABLE" 2008-06-27 03:10:49 +00:00
moodlerobot fa2ff551e6 Updated the 19 build version to 20080627 2008-06-27 01:37:48 +00:00
tjhunt 3ba1f9c1cb MDL-15139 - Cannot create Random Short Answer questions becuase the validation code is buggy. Fix thanks to Paul-Andre Chasse. 2008-06-26 13:13:08 +00:00
dongsheng 3b65b56480 "MDL-15424, fix html tag" 2008-06-26 08:58:28 +00:00
robertall 97e32066cd [MDL-15423] Remove useless latlong formatting operations. 2008-06-26 08:04:04 +00:00
robertall 737f2c15b2 [MDL-14440] Show latlong field at list and single view in a prettier way. 2008-06-26 06:09:47 +00:00
moodlerobot 727bf3d324 Updated the 19 build version to 20080626 2008-06-26 01:43:33 +00:00
moodlerobot 3834d4ac9f Automatic installer.php lang files by installer_builder (20080626) 2008-06-26 01:37:08 +00:00
mudrd8mz 1e509794de MDL-15387 Always call add_to_log() even in case blocks are showing 2008-06-25 15:31:48 +00:00
robertall 7a8039c2e2 [MDL-15298] Avoid printing a warning if debugging is enabled. Backported from HEAD. 2008-06-25 10:22:34 +00:00
moodler 0867c861f4 Added a test to avoid potential notices for missing objects 2008-06-25 08:44:07 +00:00
skodak d3e345456a MDL-15372 fixed comment typo; backported from HEAD 2008-06-25 07:37:13 +00:00
Francois Marier 8c5891ba01 Fix drift between CVS and git 2008-06-25 03:01:49 +00:00
jerome 291f748a70 MDL-14635 remove tags from glossary block help 2008-06-25 03:01:49 +00:00
dongsheng 062b6df0ee "MDL-8642, see tracker, merged from MOODLE_18_STABLE" 2008-06-25 02:16:59 +00:00
moodlerobot 071e1ef4b0 Updated the 19 build version to 20080625 2008-06-25 01:40:28 +00:00
moodlerobot 066eecd756 Automatic installer.php lang files by installer_builder (20080625) 2008-06-25 01:34:06 +00:00
skodak 5e8fe2da7a MDL-15398 reverting previous incorrect patch 2008-06-24 22:09:46 +00:00
skodak 93b4063955 MDL-15298 fixed unlink with @ - silences debug warning 2008-06-24 21:52:54 +00:00
wildgirl a0f562e410 lang string typo fixes 2008-06-24 13:51:51 +00:00
jamiesensei ac625ae922 MDL-15309 "Switch role to student, take quiz, can't delete attempt" switching default of overview report to show all attempts whether or not the attempt is for a currently enrolled student. 2008-06-24 12:31:28 +00:00
jamiesensei f32aa45ef4 MDL-15378 "Quizz: sql error if not student in the group" now have extra logic to not display the table if there are no students at all or in current group - still displaying form and graph were appropriate. 2008-06-24 12:18:16 +00:00
moodlerobot d7a0b8fa3b Updated the 19 build version to 20080624 2008-06-24 01:39:30 +00:00
moodlerobot 78fa24340f Automatic installer.php lang files by installer_builder (20080624) 2008-06-24 01:33:46 +00:00
tjhunt 5cbc380ed5 MDL-15372 - Links in course summary and section summaries not recoded on restore. Petr thinks it is a bad idea to recode links in course summaries, becuase he thinks there should not be links there at all, but I disagree, and as long as links are there, and we have the code to stop them breaking on backup and restore, we should fix the bug. 2008-06-23 17:02:11 +00:00
tjhunt 00e807e8f5 MDL-13229 - Cannot export group events - now make it export group events if 'all' is selected - Oops, allow for course without groups. 2008-06-23 14:34:54 +00:00
tjhunt 5c6262b8cc MDL-13229 - Cannot export group events - now make it export group events if 'all' is selected - Oops, allow for course without groups. 2008-06-23 14:28:51 +00:00
dongsheng f8e68679d9 "MDL-15344, add lang string" 2008-06-23 06:05:09 +00:00
dongsheng 82f826bd09 "MDL-15311, remove extra enter" 2008-06-23 05:43:50 +00:00
scyrma 1938e7f893 MDL-15345: prevent problem while running tag_compute_correlations under pgsql. 2008-06-23 04:30:04 +00:00
moodlerobot 76fa355d68 Updated the 19 build version to 20080623 2008-06-23 01:36:50 +00:00
moodlerobot 5ffed7dfa5 Automatic installer.php lang files by installer_builder (20080623) 2008-06-23 01:31:06 +00:00
stronk7 0fea8c79f7 Fixed statistics generation under Oracle. MSSQL pending. MDL-13861 2008-06-22 23:37:12 +00:00
jamiesensei 29e3105632 Fixing typo introduced in 1.282.2.14 version of this file. 2008-06-22 13:01:39 +00:00
moodlerobot 85d6a36efa Updated the 19 build version to 20080622 2008-06-22 01:37:48 +00:00
moodlerobot 11742d0e26 Updated the 19 build version to 20080621 2008-06-21 01:38:47 +00:00
moodlerobot 9ec6d22190 Automatic installer.php lang files by installer_builder (20080621) 2008-06-21 01:33:30 +00:00
gbateson b797f83e4f add hidden "summarysource" field when updating HotPot. This fixes "undefined property" error from mod/hotpot/lib.php 2008-06-20 22:55:11 +00:00
nicolasconnault cb41c95ace CONTRIB-490 Adding support for generation of test calculated question type (thanks Pierre Pichet) 2008-06-20 19:11:34 +00:00
tjhunt 9af3558449 MDL-15315 - Error in Item analysis report for short aswer questions that use wildcards 2008-06-20 17:22:55 +00:00
tjhunt f4b0102d11 MDL-15332 - Item analysis links to the question edit form even for users without an appropriate capability. 2008-06-20 16:30:33 +00:00
tjhunt 2e0012e470 MDL-15330 - Truefalse help file not found 2008-06-20 15:24:14 +00:00
moodlerobot 51a934026a Updated the 19 build version to 20080620 2008-06-20 01:45:30 +00:00
tjhunt f446123b6a MDL-15321 - Add a class to the last column and row of the table in print_table to help theming 2008-06-19 18:38:36 +00:00
tjhunt b323b23ca0 MDL-13229 - Cannot export group events - now make it export group events if 'all' is selected. 2008-06-19 17:58:00 +00:00
jamiesensei 1c215c8bce MDL-15165 "Essay quiz Manual grading "these are no attempts to show" when there are actually attempts" - not resolved. But while reviewing the query I found a LIMIT clause in sql that I've replace with params to the get_records_sql function. Also made the logic in attempt_sql method more robust. 2008-06-19 15:19:17 +00:00
tjhunt e6afe4a18a MDL-15318 - url is a reserved word in JavaScript in IE, so the Gen Calendar URL button does not work there 2008-06-19 14:24:11 +00:00
jamiesensei e05eb943d0 MDL-15264 "Bar graph image missed when group with no attempts selected" added a query to check for sure that there are some grades there to display in the graph. Also now displaying grades for all groups a user has permission to view - but only if that is up to 4 groups and only if there are less than 500 grades total. 2008-06-19 12:31:28 +00:00
gbateson f5018bc548 improved setting of LHS and RHS items in JMatch 2008-06-19 11:41:49 +00:00
gbateson 7ed61cd749 allow <img> and other tags in LHS of JMatch in "v6" output format 2008-06-19 05:57:44 +00:00
fmarier f42d997d98 auth/ldap: fix PHP warnings and remove bad "Choose one" id 2008-06-19 02:27:33 +00:00
pichetp 6616311474 closing properly questions <label> i.e. adding </label> line 459-61 when some errors 2008-06-19 01:46:16 +00:00
moodlerobot 8a575a7c64 Updated the 19 build version to 20080619 2008-06-19 01:43:41 +00:00
robertall 720c7c0624 [MDL-15308] Automatically download exported preset. 2008-06-18 17:42:43 +00:00
thepurpleblob 5967922779 MDL-15304
Handle empty names for labels (if only HTML tags in label text)
2008-06-18 15:26:34 +00:00
robertall 5d7e3a41b2 [MDL-15300] Remove temporary files created while exporting a preset as ZIP file. 2008-06-18 14:42:20 +00:00
tjhunt aa0716e1ea MDL-15290 - Missing question types not handled properly on backup. 2008-06-18 14:29:40 +00:00
robertall 72c5387098 [MDL-15298] Don't create preset ZIP always in the same directory, as the same file name. 2008-06-18 11:39:43 +00:00
jerome 1335a32f75 MDL-15152 reverse MDL-14439 fix for dropdown menu for Opera+Linux 2008-06-18 05:40:19 +00:00
dongsheng 55737c854a "MDL-8642, setting of auto scrolling" 2008-06-18 03:57:50 +00:00
dongsheng 654b0cab44 "MDL-12304, fix double text" 2008-06-18 03:13:40 +00:00
moodlerobot 315e4bce26 Updated the 19 build version to 20080618 2008-06-18 01:41:05 +00:00
jerome 323f59a18f MDL-11461 all ressource types are now displayed in the ressource help popup 2008-06-17 01:47:57 +00:00
moodlerobot 28439653a2 Updated the 19 build version to 20080617 2008-06-17 01:40:34 +00:00
pichetp b50f8fc81f code cleaning 2008-06-17 01:11:09 +00:00
robertall e869c370bb [MDL-15258] Clean up data_presets_export() function. 2008-06-16 18:32:44 +00:00
sam_marshall d517630b63 MDL-15263 Fixed numeric entities remaining after html_to_text 2008-06-16 14:01:52 +00:00
robertall 12ab8a517b [MDL-15258] Move data_presets_export() function out from common module specific library. 2008-06-16 13:46:43 +00:00
pichetp 220058da84 MDL-14625 more tolerant to missing subquestions merged from HEAD 2008-06-16 13:07:05 +00:00
dongsheng 2c33f28f02 "MDL-15251, see tracker" 2008-06-16 12:24:23 +00:00
thepurpleblob 86f9dc29ac MDL-15257
Fix notice caused by (possibly) uninitialised variable.
2008-06-16 10:04:59 +00:00
nicolasconnault d2c33621f1 CONTRIB-475 Added CLI and web authentication, plus fixed a few little bugs. 2008-06-16 09:04:31 +00:00
dongsheng 33484c1b9f "MDL-15251, see tracker" 2008-06-16 09:04:15 +00:00
pichetp 890a48fabe MDL-15123 Using true value limits to grade responses, merged from head 2008-06-16 03:16:49 +00:00
pichetp 0e2dbbf7ee MDL-15123 Using true value limits to grade responses, merged from head 2008-06-16 03:09:48 +00:00
dongsheng 9052f663a8 "MDL-15251, fix country field in user/view.php" 2008-06-16 02:13:30 +00:00
moodlerobot 55d75bf44f Updated the 19 build version to 20080616 2008-06-16 01:41:51 +00:00
moodlerobot b10bddb693 Automatic installer.php lang files by installer_builder (20080616) 2008-06-16 01:35:42 +00:00
cataluke c918a27394 MDL-15156 add in missing upgrade_main_savepoint() 2008-06-16 00:20:33 +00:00
robertall 895dc1bb7d [MDL-15069] Change filename of exported preset to ensure downloading the latest version. 2008-06-15 15:17:30 +00:00
moodlerobot 33e0218f5f Updated the 19 build version to 20080615 2008-06-15 01:39:12 +00:00
moodlerobot 7197151005 Updated the 19 build version to 20080614 2008-06-14 01:52:22 +00:00
jamiesensei 1be3ce4510 MDL-15224 "Overview results in quiz module export to excel and txt fail" Fixed. 2008-06-13 12:46:54 +00:00
moodlerobot 44e9435e23 Updated the 19 build version to 20080613 2008-06-13 02:03:44 +00:00
stronk7 989807c327 Timezone info updated to tzdata2008c 2008-06-12 16:00:30 +00:00
robertall 258730666e [MDL-8407] Make the default role required to export database records weaker (use the 1.9 mod/data capability "viewalluserpresets"). 2008-06-12 13:49:40 +00:00
jmg324 7b8c3081a0 MDL-15223 need to default backup_blogs for backup_course_silently not to have PHP notice errors 2008-06-12 11:06:57 +00:00
thepurpleblob 9075e36022 MDL-15221
The name of the introformat database field was incorrect and the
format was not saved.
2008-06-12 09:35:28 +00:00
nicolasconnault 933f6db4b9 CONTRIB-490 Added support for scripted generation of questions. Calculated type not yet supported (datasets too complicated ;) 2008-06-12 04:48:20 +00:00
moodlerobot 2bf5901494 Updated the 19 build version to 20080612 2008-06-12 02:02:14 +00:00
moodlerobot 99f23c0304 Automatic installer.php lang files by installer_builder (20080612) 2008-06-12 01:55:16 +00:00
cataluke 7aa74e036b MDL-15156 fix conflict in schema for MNET PREFIX_mnet_enrol_course table 2008-06-12 01:30:26 +00:00
nicolasconnault e724b50ea0 MDL-15206 Fixed. My fault... 2008-06-11 08:46:50 +00:00
jmg324 ea39a99894 MDL-15183 defaulting a couple of variables in the graph class rather than every graph object needing to do it. 2008-06-11 08:22:35 +00:00
dongsheng 4440b029bb "MDL-12304, fix double text" 2008-06-11 06:05:09 +00:00
moodlerobot 9f69bbaec3 Updated the 19 build version to 20080611 2008-06-11 02:01:58 +00:00
nicolasconnault 73b73c9819 CONTRIB-490 Added generation code for generator tool. 2008-06-10 20:52:46 +00:00
jamiesensei f5d47e36f1 MDL-14821 "Quiz: report overview page is not XHTML compliant" wrapped hidden form params in div with style 'display:none'. 2008-06-10 07:45:22 +00:00
moodlerobot d41e6bdc07 Updated the 19 build version to 20080610 2008-06-10 02:00:10 +00:00
moodlerobot 2b63b81174 Automatic installer.php lang files by installer_builder (20080610) 2008-06-10 01:53:39 +00:00
jmg324 cd61bc6fb4 MDL-15183 reverting previous change 2008-06-09 10:05:50 +00:00
fmarier 7b30c23b87 filelib: Add .ics files to the mimetypes array.
Required so that .ics files can be attached to e-mails using the email_to_user
function. The facetoface module is doing this.

(from Nigel McNie <nigel@catalyst.net.nz>)
2008-06-09 05:33:52 +00:00
moodlerobot 8ba8fe0841 Updated the 19 build version to 20080609 2008-06-09 01:58:53 +00:00
dongsheng 8bf931fc5b "MDL-15138, fix breadcrumb nav" 2008-06-08 18:29:51 +00:00
iarenaza ad1f69b66b MDL-12783 IMS idon't unenroll students who were enrolled by other plug-ins
Credit goes to Scott Krajewski for the bug report and patch!

Merged from MOODLE_18_STABLE
2008-06-08 15:29:58 +00:00
moodlerobot df1c48b47f Updated the 19 build version to 20080608 2008-06-08 01:59:59 +00:00
iarenaza cf5d095f47 MDL-15182 Fix LDAP enrolment course auto-creation at user login
Merged from MOODLE_18_STABLE
2008-06-07 21:19:45 +00:00
jamiesensei 012de02b64 MDL-14821 "Quiz: report overview page is not XHTML compliant" gave the fieldsets in the form different names to avoid html id attribute conflict.
Backported from HEAD
2008-06-07 12:58:34 +00:00
moodlerobot ddad729c6e Updated the 19 build version to 20080607 2008-06-07 01:56:26 +00:00
gbateson 4200f652ad fix conversion of relative URLs in Hot Potatoes "<=" and "=>" buttons on sites where slasharguments as disabled (Site Admin -> Server -> HTTP -> Use slash arguments) 2008-06-07 01:42:32 +00:00
jmg324 8a7f4c11f9 MDL-7968 reports section of admin tree controled by reports capability not site config 2008-06-06 15:35:20 +00:00
jamiesensei a92741f2d2 MDL-15092 "Quiz overview report won't display if there are more than 29 questions" Small fixes in logic to do with sorting.
* Don't need extra joins for sorting if we are downloading as downloads are not sorted.
* Fix bug for sorting when detailed marks are not shown.
2008-06-06 12:24:17 +00:00
jamiesensei 6713e60db7 MDL-15150 "Quiz Report broken in course without students" added warning message if there are no students in course yet. 2008-06-06 11:08:58 +00:00
jmg324 a94592e608 MDL-12302 stopping filter_save_ignore_tags ignoring empty tags 2008-06-06 09:15:35 +00:00
jmg324 73f6e22ab9 init_y_axis parameter not set up correctly 2008-06-06 08:48:43 +00:00
moodlerobot 2bca713636 Updated the 19 build version to 20080606 2008-06-06 01:58:11 +00:00
mchurch f8dc3566d0 MDL-11892 Fixed calls to expand javascript to correctly use quoted strings in all necessary places. 2008-06-05 20:58:26 +00:00
jamiesensei 5b598e9e5d MDL-14223 "Add a column for the user's idnumber, controllable by a site-wide setting" adding idnumber to the list of columns that is 'suppressed' ie that is only printed once when the same data is repeated in consecutive rows. 2008-06-05 11:12:58 +00:00
jamiesensei 5bc700de54 MDL-15092 "Quiz overview report won't display if there are more than 29 questions" fixed this by going back to the old way of fetching data for display in the table. However still use table JOINs when user wants to sort by question grade. The user can sort by a maximum of two columns at once so the JOINs will not exceed the limit. 2008-06-05 06:12:26 +00:00
dongsheng e53a39773d "MDL-14932, move the course section" 2008-06-05 06:08:18 +00:00
dongsheng 7980e37b36 "MDL-14932, see tracker" 2008-06-05 06:02:56 +00:00
moodlerobot 4e8d585b85 Updated the 19 build version to 20080605 2008-06-05 02:01:12 +00:00
moodlerobot 3e980075e4 Updated the 19 build version to 20080604 2008-06-04 02:01:48 +00:00
moodlerobot 8c5171c03c Updated the 19 build version to 20080603 2008-06-03 01:59:50 +00:00
iarenaza 77d3068b70 MDL-15039 Apostrophes in idnumber prevent users from being unenrolled via LDAP
If any member of a course has an ID number containing an apostrophe (eg.
CN=Paddy O'Brien,OU=Students,DC=etc...), no other members will ever be
unenrolled via LDAP.

Thanks to Michael Woods for the bug report and proposed solution.

Merged from MOODLE_18_STABLE.
2008-06-02 22:35:23 +00:00
moodlerobot 3449d068e6 Updated the 19 build version to 20080602 2008-06-02 02:03:56 +00:00
skodak 5e61503fb3 MDL-15080 char to int cast problem in get_recent_enrolments(); backported from HEAD 2008-06-01 13:21:17 +00:00
skodak 669f7e7bc3 MDL-15079 fixed js quoting 2008-06-01 13:15:46 +00:00
skodak ac024610d8 MDL-15078 fixed role name displaying when adding group members 2008-06-01 13:14:23 +00:00
mudrd8mz ba309412ce The very last save button is tabindexed, too. Forgot to include it in the last commit. 2008-06-01 11:16:53 +00:00
mudrd8mz 92cfecea74 Save buttons are tabindexed as well. You don't need to touch the mouse at all ;-) 2008-06-01 08:38:58 +00:00
moodlerobot 6fcd60f62f Updated the 19 build version to 20080601 2008-06-01 01:58:42 +00:00
robertall 16b448da57 [MDL-8407] Don't offer the semicolon in the CSV delimiter selection menu. 2008-05-31 15:03:34 +00:00
iarenaza 8278b5164b MDL-4248 Fix error when updating user profiles and any of these fields is empty
According to http://es2.php.net/manual/en/function.ldap-modify.php#43216 we
need to specify an array() value to delete an attribute's value, instead of an
empty string.

Merged from MOODLE_18_STABLE
2008-05-31 14:55:56 +00:00
iarenaza 9fa80523a8 MDL-4207 Don't overwrite modified user profile values with empty LDAP values when 'unlocked if empty' is set
If user profile values are locked to LDAP, then LDAP should provide those
values.

But the purpose of the setting 'unlocked if empty' is to allow the user to fill
in a value for the selected field _if LDAP is giving nothing_ for this field.
Thus it makaes sense to let this value stand in until LDAP is giving a value
for this field.

Merged from MOODLE_18_STABLE
2008-05-31 13:26:01 +00:00
robertall 7960121a2c [MDL-14334] Export fields in preset.xml in the order as shown in the Fields tab. 2008-05-31 09:48:35 +00:00
moodlerobot 8b0d2ceeb0 Updated the 19 build version to 20080531 2008-05-31 02:02:25 +00:00
robertall 2852740b2e [MDL-8407] Last obligate commit to support exporting records of a database activity as a CSV, XLS, or ODS file. 2008-05-31 00:24:23 +00:00
robertall 7ce1f36198 [MDL-8407] Add two new files that contain the core CSV/XLS/ODS export code. 2008-05-30 22:17:31 +00:00
robertall d7652a4e1f [MDL-8407] Replace four language strings that will be used by 'mod/data/export_form.php' to be committed later. 2008-05-30 20:57:22 +00:00
robertall 2b9028dcd3 [MDL-14771] Replace direct use of function number_format() by format_float(). Some whitespace cleaned up has been made, too. 2008-05-30 16:10:42 +00:00
jamiesensei b536544e34 MDL-15047 "Quiz overview report download is broken - patch" fixed. 2008-05-30 12:22:20 +00:00
robertall 8da9517d60 [MDL-8407] Replace one language string that will be used by 'mod/data/export_form.php' to be committed later. 2008-05-30 10:19:11 +00:00
moodler 1fb0590508 MDL-15053 Fix RTL CSS typo (forum indenting and nav menu now work correctly) 2008-05-30 03:21:45 +00:00
moodlerobot 966230a681 Updated the 19 build version to 20080530 2008-05-30 02:03:37 +00:00
robertall 22cceb0cc9 [MDL-8407] Add new function text_export_supported() or export_text_value() to those "mod/data/field/*/field.class.php" files which need them. The existing code formatting has been cleaned up, too. 2008-05-30 01:34:41 +00:00
robertall 775a5f4020 [MDL-14771] Backend code to allow a "number" field to be displayed with a specified number of decimal digits. 2008-05-29 19:12:37 +00:00
mudrd8mz f685affe23 MDL-15036 Did not work with PostgreSQL 2008-05-29 17:25:30 +00:00
jamiesensei 49814438b9 MDL-15011 "grading report : allow user to select to grade next 10 ungraded attempts" added a new link and options to the grading report page to display only the next 10 ungraded attempts to grade. Also some fixes for faulty sql for ungraded option which was not respecting the users groups selection.
Merged from HEAD
2008-05-29 14:31:30 +00:00
dongsheng 2e49d3ab21 "MDL-15037, remove "none" in html head" 2008-05-29 03:21:11 +00:00
danmarsden eb6fad813f MDL-14550 really inefficient db calls - saves almost 3x number of users in site for backup queries. merged from head. 2008-05-29 02:02:39 +00:00
moodlerobot b7e1a3cc1b Updated the 19 build version to 20080529 2008-05-29 02:02:03 +00:00
mchurch 02d72f6b8b MDL-15035 - Changed error message to more meaningful one. 2008-05-28 14:52:15 +00:00
robertall 6f45a07d85 [MDL-14442] Resolve reopened bug for importing database records as CSV by applying "MDL-14442-clean_param.patch" (see tracker). Don't use PARAM_NOTAGS anymore. 2008-05-28 13:08:11 +00:00
robertall 849f63482c [MDL-8407] Finish preparation of language strings required to allow exporting records of a database avtivity. 2008-05-28 12:04:38 +00:00
robertall 994f8253f0 [MDL-8407] [MDL-14129] First step of patch to allow exporting records of a database avtivity. Three new error messages added in Moodle 2.0 style, to be used by 'mod/data/export.php' to be commited later. They are already present in HEAD. 2008-05-28 11:21:38 +00:00
scyrma 50789c3cbc MDL-15032: add quotes to make it possible to correctly send files with names containing spaces 2008-05-28 07:43:41 +00:00
dongsheng ee557b6f4d "MDL-15031, fix order of the user fields, see tracker" 2008-05-28 07:39:52 +00:00
scyrma c9e47cd096 MDL-13792: fixing problem in the previous patch, where filename contain spaces 2008-05-28 05:15:39 +00:00
moodler bd454a0c43 Latest tags file for 1.9, reduced in size 2008-05-28 03:20:03 +00:00
jerome a3612de1c2 MDL-14698 Improve language in actions list on course participants page 2008-05-28 03:10:45 +00:00
jerome a32a358768 MDL-14765 Assignments email teachers on any submission (only if Alert teacher = Yes AND Send for making = No) 2008-05-28 02:05:25 +00:00
moodlerobot 93b9727962 Updated the 19 build version to 20080528 2008-05-28 02:01:18 +00:00
dongsheng 1a8eaca65b "MDL-14932, accessibility imporvement, see tracker" 2008-05-28 01:45:16 +00:00
dongsheng 55d89d4337 "MDL-12405, add webpage to user fields" 2008-05-28 01:36:21 +00:00
tjhunt 50f45baff1 MDL-14764 - Imported multichoice questions may have a blank answernumbering value, which results in an "ERR" prefix to all answers' text. Thanks to Nate H for the fix. 2008-05-27 13:42:28 +00:00
tjhunt 32101da4c8 MDL-14593 - delete icons in the question bank do not work. This was a regression caused by part of the fix for MDL-13982. I hvae reverted that bit for now, pending a better solution. 2008-05-27 10:35:14 +00:00
sam_marshall e7c3b7e811 MDL-15015: Choice limited answers don't work with group mode 2008-05-27 10:16:01 +00:00
robertall e31e99f8f1 [MDL-14788] Don't store empty number fields as 0 2008-05-27 07:38:42 +00:00
moodlerobot b574ec6ff1 Updated the 19 build version to 20080527 2008-05-27 02:03:43 +00:00
jamiesensei e86d81b3ca MDL-15002 "grading report : notice from quiz_num_attempt_summary about how many total attempts there are on the quiz and how many in this group would make UI clearer" added call to function and fixed centering of notice on overview and grading report by adding a clear:left to stop the centering being affected by the groups menu. 2008-05-26 14:24:51 +00:00
jamiesensei cec3911dd4 MDL-12824 "Essay type of quiz questions needs to color mark which students have been graded and which have NOT"
Fixing notices introduced by the changes for this bug in grading report when no question is selected.
2008-05-26 13:23:14 +00:00
jamiesensei 9607206c71 MDL-12824 "Essay type of quiz questions needs to color mark which students have been graded and which have NOT"
As well as highlighting graded questions with a new CSS class highlightgraded which is a yellow bg in the standard theme, have also added the option to grade all ungraded attempts for a question.
2008-05-26 12:06:19 +00:00
jamiesensei 4c3332efff MDL-15000 "Moodle url method remove_params doesn't actually remove anything" Fixed. 2008-05-26 11:47:00 +00:00
jamiesensei 89bc941b70 MDL-14988 "tables have been hardcoded with a prefix of "mdl" - causing an error." Ooops! 2008-05-26 09:01:30 +00:00
moodlerobot 5265400d88 Updated the 19 build version to 20080526 2008-05-26 02:06:59 +00:00
iarenaza c875af622e MDL-14987 Default attribute for Active Directory password expiry is missing
Backported from HEAD
2008-05-25 21:55:50 +00:00
skodak 416f2dab44 MDL-14980 missing strsurveysaved when saving; backported from HEAD 2008-05-25 14:25:06 +00:00
jamiesensei 7e8b311075 MDL-5241 "When manually grading, identity questions by their number within the quiz as well as by question name" Ooops. Accidentally introduced a bug during refactoring and reworking of UI code. I added gradeall links to the table whether or not there were attempts to grade, have fixed this now. 2008-05-25 11:46:12 +00:00
jamiesensei 3a83ce8b5d MDL-5241 "When manually grading, identity questions by their number within the quiz as well as by question name"
Also added a drop down box to select question to mark instead of the viewquestions table. The drop down box is available at the top of every page, but only if there is more than one manually gradeable question in the quiz. If there is only one question it is automatically selected for marking.

Also added a new constant QUESTION_EVENTS_GRADED during a general refactoring of UI code in grading report and some improvements to efficiency of SQL in report.
2008-05-25 11:35:29 +00:00
moodlerobot 8c6725490f Updated the 19 build version to 20080525 2008-05-25 01:57:58 +00:00
pichetp 9f13517f8f Merge from head MDL-14054 Display of correct answers in the popup window
already use for feedback and MDL-14625 Make multianswer questions more tolerant if one of the subquestions
is missing
2008-05-24 22:33:05 +00:00
robertall 0654809d51 [MDL-14816] Escape special regex characters before applying perl compatible regex substitution of field names for database activity's advanced search 2008-05-24 11:02:17 +00:00
moodlerobot acf4b962b6 Updated the 19 build version to 20080524 2008-05-24 01:59:12 +00:00
jamiesensei 3014691278 MDL-12547 "allow manual quiz grading to sort by groups" added code to select which group to grade. 2008-05-23 13:00:47 +00:00
sam_marshall 1256ee3ec5 MDL-14965: Pass-by-reference call broke forum on php5 2008-05-23 11:02:27 +00:00
sam_marshall 2a212d94a0 MDL-14965: Pass-by-reference call broke install on php5 2008-05-23 10:36:11 +00:00
sam_marshall 38147894da MDL-14965: Pass-by-reference call broke install on php5 2008-05-23 10:28:23 +00:00
dongsheng 9ff5163d78 "MDL-14706, improve the progress bar" 2008-05-23 03:55:56 +00:00
moodlerobot e6fcaefe5b Updated the 19 build version to 20080523 2008-05-23 02:02:23 +00:00
moodlerobot f68d73ac89 Automatic installer.php lang files by installer_builder (20080523) 2008-05-23 01:54:58 +00:00
whchuang beadb11ec7 Fixed typo in the help text. Changed 'the' to then and removed the extra period in bulleted list 2008-05-22 16:25:33 +00:00
wildgirl 51a21e077f MDL-14951 help file typo fix 2008-05-22 12:41:44 +00:00
thepurpleblob fd17bd94da MDL-14945
MDL-14946
Now checks properly for mod/choice:deleteresponses and mod/choice:downloadresponses
2008-05-22 10:12:13 +00:00
jamiesensei 57fb427c9b MDL-14943 "moodle_url : need way to add extra params when outputting params as hidden fields for forms" added new optional param to method hidden_params_out 2008-05-22 09:18:03 +00:00
jerome fdab35a403 MDL-11748 add "protection" to avoid Notices in the A-Z name selector 2008-05-22 02:33:56 +00:00
jerome a1a7533fbc MDL-14819 changed main table size 2008-05-22 02:25:18 +00:00
moodlerobot 30a709620f Automatic installer.php lang files by installer_builder (20080522) 2008-05-22 01:55:30 +00:00
mchurch 9d3df57259 MDL-13860 - Fixed mistyped function call to 'scorm_seq_overall'. This was preventing some SCORM navigation from continuing in our tests - but only if debugging was turned off! 2008-05-21 16:27:42 +00:00
thepurpleblob 43aff3e874 MDL-14916:
Tidy up notices
2008-05-21 12:46:00 +00:00
thepurpleblob 902fa69779 MDL-14936
Course managers admin screen shows roles in "correct" order.
2008-05-21 12:22:21 +00:00
thepurpleblob 0c4c41bd80 MDL-14832
Don't show a user name more than once. Only show them in the
most 'senior' role.
2008-05-21 12:02:08 +00:00
tjhunt b44bd7a1f2 Inconsistency between quiz attempt->id and attempt.uniqueid 2008-05-21 11:10:04 +00:00
jerome fabd02b53f MDL-14709 fix call view.pgp => view.php 2008-05-21 04:01:09 +00:00
moodlerobot 7673817cca Updated the 19 build version to 20080521 2008-05-21 02:10:13 +00:00
tjhunt ae5d6704dc MDL-14928 - Adding random questions from a category with an apostrophe in the name does not work. Stupid bloody addslashes. Roll on dmllib 2.0. 2008-05-20 17:09:37 +00:00
moodlerobot 0751b52c22 Updated the 19 build version to 20080520 2008-05-20 01:57:37 +00:00
mudrd8mz f3ab121919 MDL-13997 Links from "missing" to "compare" mode are being created using ID instead of A NAME now. Do not highlight strings translated in _local only. 2008-05-19 21:43:14 +00:00
skodak 014734bcb0 MDL-14894 html purifier updated 2008-05-19 06:23:20 +00:00
moodlerobot 2afa9de179 Updated the 19 build version to 20080519 2008-05-19 02:00:05 +00:00
stronk7 d2fc0bff85 Deleting one print_object() that shouldn't be there. 2008-05-18 23:34:50 +00:00
iarenaza 600dea12d3 MDL-14883 Password expiration check during login doesn't work after NTLM integration
As part of the NTLM integration work, we moved some login code from
login/index.php to lib/moodlelib.php (function complete_user_login()). This
broke the password expiration check code, as we moved the $userauth variable to
complete_user_login(), and we also need it in login/index.php later.

Add the missing variable and related code to get a suitable password change url.
Also remove the now inexistant $focus variable from the call to print_header().
2008-05-18 21:26:57 +00:00
moodlerobot b8ab4168cd Updated the 19 build version to 20080518 2008-05-18 01:52:58 +00:00
moodlerobot 89e162bcf9 Updated the 19 build version to 20080517 2008-05-17 01:58:46 +00:00
moodlerobot d9ab71f1b0 Automatic installer.php lang files by installer_builder (20080517) 2008-05-17 01:51:35 +00:00
jamiesensei 34ccb459a6 MDL-14844 "Quiz Report: Bar Graph doesn't displayed maximum grade" Reverting accidentally committed changes to this file which where committed as part of the fix for MDL-14844 2008-05-16 14:44:05 +00:00
jamiesensei fdc1036f0e MDL-14844 "Quiz Report: Bar Graph doesn't displayed maximum grade" Now using php ceil function to round up $bands as in some cases it could be a non integer. 2008-05-16 14:39:02 +00:00
moodler 3883481bfd MDL-14865 DOn't pass CFG to get_string 2008-05-16 07:10:36 +00:00
dongsheng b0e592a9c6 "MDL-14703, remove obsolete options" 2008-05-16 02:19:14 +00:00
dongsheng ca5d438280 "MDL-14668, fix course full in activity reports (upgrade course module version)" 2008-05-16 02:07:57 +00:00
moodlerobot 8785a88758 Updated the 19 build version to 20080516 2008-05-16 02:03:32 +00:00
stronk7 a326872b88 prevent NULL contents before field change (old servers can have this wrongly defined). MDL-14859 2008-05-15 17:02:05 +00:00
stronk7 2ecc706b25 Delete the check_defaults test from 19_STABLE. MDL-14854 2008-05-15 16:20:55 +00:00
stronk7 e0f1b13481 Deleting the check_defaults test from 19_STABLE. MDL-14854 2008-05-15 16:19:06 +00:00
tjhunt 5bd56c517c MDL-14750 - followup - make the code robust in the case their are broken questions in the DB. 2008-05-15 16:05:49 +00:00
tjhunt b209022e74 MDL-14835 - Grade not checked against valid range when manua grading 2008-05-15 16:02:15 +00:00
tjhunt d577bb8622 MDL-14857 - Clean up summary table generation code at the top of the quiz review page - This is basically a merge of improvements we made at the OU. 2008-05-15 15:32:44 +00:00
thepurpleblob 5e7fc13080 Whoops. missed a string.
+fixed a couple of grammatical oddities I noticed.
2008-05-15 15:27:21 +00:00
thepurpleblob 4f6fdcecd8 Whoops. missed a string. 2008-05-15 15:22:56 +00:00
thepurpleblob 48fadcf73b MDL-14854
Add facility to XMLDB editor to check for inconsistent field defaults.
2008-05-15 14:51:54 +00:00
thepurpleblob a0382cfbee file check_defaults.class.php was added on branch MOODLE_19_STABLE on 2008-05-15 14:51:54 +0000 2008-05-15 14:50:10 +00:00
thepurpleblob b9c474a9b3 MDL-14854
Add facility to XMLDB editor to check for inconsistent field defaults.
2008-05-15 14:44:37 +00:00
jamiesensei 01676c49a3 MDL-14852 "improve sql in overview report for fetching question grades" moved all querying for question grades into main attempts sql query. AND MDL-14200 "Add group and course averages" some fixes for functionality to display question grades averages. Grade averages are not displayed when grading method is set to Average - as this cannot be done in sql and would be expensive to do in memory. 2008-05-15 13:55:49 +00:00
jamiesensei 05289910b7 MDL-14200 "Add group and course averages" fix for bug introduced in this patch. We are now using a seperate sql command to get the feedback text as we need to get it for the average rows too. Since it is not part of the sql to fetch attempt data we can't sort on Feedback anymore so removed the option from the table. Sorting by feedbacktext is not really useful anyway, users are more likely to want to sort by grade. 2008-05-15 12:52:56 +00:00
jamiesensei 5746826364 MDL-14200 "Add group and course averages" added extra rows to the end of the table in quiz overview report also MDL-14187 "Improve tablelib - improve api and add functionality to download table contents in a variety of formats - XLS, ODS and CSV" implemented the first of my proposals for improving tablelib. Added a extra method to use keyed arrays to add a row to a table. Seems obvious that this is an improvement to tablelib and it is an addition to the API so won't affect existing code. 2008-05-15 12:25:04 +00:00
jamiesensei 316d595389 MDL-14844 "Quiz Report: Bar Graph doesn't displayed maximum grade" added perfect grade to last 'band' on graph. 2008-05-15 10:40:58 +00:00
sam_marshall fc1d395b8a MDL-14838: Corrected javadoc package names in wiki 2008-05-15 10:08:05 +00:00
moodler 879b1c04e6 POst 1.9.1 bump 2008-05-15 08:11:19 +00:00
moodler 2d92fd5eed Latest tags for 1.9.1 2008-05-15 06:43:37 +00:00
1477 changed files with 210864 additions and 93630 deletions
+339
View File
@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
+3 -2
View File
@@ -136,10 +136,11 @@ function print_auth_lock_options ($auth, $user_fields, $helptext, $retrieveopts,
$fieldname = get_string('language');
} elseif (preg_match('/^(.+?)(\d+)$/', $fieldname, $matches)) {
$fieldname = get_string($matches[1]) . ' ' . $matches[2];
} elseif ($fieldname == 'url') {
$fieldname = get_string('webpage');
} else {
$fieldname = get_string($fieldname);
}
}
if ($retrieveopts) {
$varname = 'field_map_' . $field;
+25 -23
View File
@@ -40,7 +40,7 @@
}
if (!empty($CFG->showcrondebugging)) {
$CFG->debug = DEBUG_DEVELOPER;
$CFG->displaydebug = true;
$CFG->debugdisplay = true;
}
/// extra safety
@@ -245,7 +245,7 @@
while ($assign = rs_fetch_next_record($rs)) {
if ($context = get_context_instance(CONTEXT_COURSE, $assign->courseid)) {
if (role_unassign(0, $assign->userid, 0, $context->id)) {
mtrace("Deleted assignment for user $assign->userid from course $assign->courseid");
mtrace("removing user $assign->userid from course $assign->courseid as they have not accessed the course for over $CFG->longtimenosee days");
}
}
}
@@ -290,8 +290,8 @@
/// Delete users who haven't completed profile within required period
if (!empty($CFG->deleteunconfirmed)) {
$cuttime = $timenow - ($CFG->deleteunconfirmed * 3600);
if (!empty($CFG->deleteincompleteusers)) {
$cuttime = $timenow - ($CFG->deleteincompleteusers * 3600);
$rs = get_recordset_sql ("SELECT id, username
FROM {$CFG->prefix}user
WHERE confirmed = 1
@@ -300,7 +300,7 @@
AND deleted = 0
AND (lastname = '' OR firstname = '' OR email = '')");
while ($user = rs_fetch_next_record($rs)) {
if (delete_records('user', 'id', $user->id)) {
if (delete_user($user)) {
mtrace("Deleted not fully setup user $user->username ($user->id)");
}
}
@@ -425,6 +425,23 @@
}
}
/// Run the auth cron, if any
/// before enrolments because it might add users that will be needed in enrol plugins
$auths = get_enabled_auth_plugins();
mtrace("Running auth crons if required...");
foreach ($auths as $auth) {
$authplugin = get_auth_plugin($auth);
if (method_exists($authplugin, 'cron')) {
mtrace("Running cron for auth/$auth...");
$authplugin->cron();
if (!empty($authplugin->log)) {
mtrace($authplugin->log);
}
}
unset($authplugin);
}
/// Run the enrolment cron, if any
if (!($plugins = explode(',', $CFG->enrol_plugins_enabled))) {
$plugins = array($CFG->enrol);
@@ -441,30 +458,15 @@
unset($enrol);
}
/// Run the auth cron, if any
$auths = get_enabled_auth_plugins();
mtrace("Running auth crons if required...");
foreach ($auths as $auth) {
$authplugin = get_auth_plugin($auth);
if (method_exists($authplugin, 'cron')) {
mtrace("Running cron for auth/$auth...");
$authplugin->cron();
if (!empty($authplugin->log)) {
mtrace($authplugin->log);
}
}
unset($authplugin);
}
if (!empty($CFG->enablestats) and empty($CFG->disablestatsprocessing)) {
require_once($CFG->dirroot.'/lib/statslib.php');
// check we're not before our runtime
$timetocheck = stats_get_base_daily() + $CFG->statsruntimestarthour*60*60 + $CFG->statsruntimestartminute*60;
if (time() > $timetocheck) {
// process max 31 days per cron execution
if (stats_cron_daily(31)) {
// process configured number of days as max (defaulting to 31)
$maxdays = empty($CFG->statsruntimedays) ? 31 : abs($CFG->statsruntimedays);
if (stats_cron_daily($maxdays)) {
if (stats_cron_weekly()) {
if (stats_cron_monthly()) {
stats_clean_old();
+40 -2
View File
@@ -5,18 +5,23 @@
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
$enrol = optional_param('enrol', $CFG->enrol, PARAM_SAFEDIR);
$enrol = optional_param('enrol', $CFG->enrol, PARAM_SAFEDIR);
$savesettings = optional_param('savesettings', 0, PARAM_BOOL);
$CFG->pagepath = 'enrol';
admin_externalpage_setup('enrolment');
if (!isset($CFG->sendcoursewelcomemessage)) {
set_config('sendcoursewelcomemessage', 1);
}
require_once("$CFG->dirroot/enrol/enrol.class.php"); /// Open the factory class
/// Save settings
if ($frm = data_submitted()) {
if ($frm = data_submitted() and !$savesettings) {
if (!confirm_sesskey()) {
print_error('confirmsesskeybad', 'error');
}
@@ -34,6 +39,12 @@
set_config('enrol_plugins_enabled', implode(',', $frm->enable));
set_config('enrol', $frm->default);
redirect("enrol.php", get_string("changessaved"), 1);
} else if ($frm = data_submitted() and $savesettings) {
if (!confirm_sesskey()) {
print_error('confirmsesskeybad', 'error');
}
set_config('sendcoursewelcomemessage', required_param('sendcoursewelcomemessage', PARAM_BOOL));
}
/// Print the form
@@ -101,6 +112,33 @@
echo "</div>";
echo "</form>";
echo '<hr />';
$yesnooptions = array(0=>get_string('no'), 1=>get_string('yes'));
echo '<form '.$CFG->frametarget.' id="adminsettings" method="post" action="enrol.php">';
echo '<div class="settingsform clearfix">';
print_heading(get_string('commonsettings', 'admin'));
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
echo '<input type="hidden" name="savesettings" value="1" />';
echo '<fieldset>';
echo '<div class="form-item clearfix" id="admin-sendcoursewelcomemessage">';
echo '<div class="form-label"><label for = "menusendcoursewelcomemessage">' . get_string('sendcoursewelcomemessage', 'admin');
echo '<span class="form-shortname">sendcoursewelcomemessage</span>';
echo '</label></div>';
echo '<div class="form-setting"><div class="form-checkbox defaultsnext">';
choose_from_menu($yesnooptions, 'sendcoursewelcomemessage', $CFG->sendcoursewelcomemessage, '');
echo '</div><div class="form-defaultinfo">'.get_string('defaultsettinginfo', 'admin', get_string('yes')).'</div></div>';
echo '<div class="form-description">' . get_string('configsendcoursewelcomemessage', 'admin') . '</div>';
echo '</div>';
echo '</fieldset>';
echo '<div class="form-buttons"><input class="form-submit" type="submit" value="'.get_string('savechanges', 'admin').'" /></div>';
echo '</div>';
echo '</form>';
admin_externalpage_print_footer();
?>
+35 -18
View File
@@ -200,7 +200,7 @@
<ON_OK message="questioncwqpfsok" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/customcheckslib.php" function="php_check_register_globals" level="optional">
<CUSTOM_CHECK file="lib/customcheckslib.php" function="php_check_register_globals" level="required">
<FEEDBACK>
<ON_CHECK message="globalswarning" />
</FEEDBACK>
@@ -214,19 +214,20 @@
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mysql" version="4.1.16">
<VENDOR name="mysql" version="5.0.25">
<FEEDBACK>
<ON_ERROR message="mysql416required" />
</FEEDBACK>
<BYPASS function="bypass_mysql416_reqs" message="mysql416bypassed" />
</VENDOR>
<VENDOR name="postgres" version="8.0" />
<VENDOR name="postgres" version="8.3" />
<VENDOR name="mssql" version="9.0" />
<VENDOR name="odbc_mssql" version="9.0" />
<VENDOR name="mssql_n" version="9.0" />
<VENDOR name="oracle" version="9.0" />
<VENDOR name="oracle" version="10.0" />
<VENDOR name="sqlite" version="2.0" />
</DATABASE>
<PHP version="5.2.0" level="required">
<PHP version="5.2.8" level="required">
</PHP>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="optional">
@@ -239,9 +240,9 @@
<ON_CHECK message="mbstringrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="optional">
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_CHECK message="curlrecommended" />
<ON_CHECK message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="optional">
@@ -264,19 +265,35 @@
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="optional">
<FEEDBACK>
<ON_CHECK message="gdrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="40M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="safe_mode" value="0" level="optional">
<FEEDBACK>
<ON_CHECK message="settingsafemode" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="question/upgrade.php" function="question_check_no_rqp_questions" level="optional">
<FEEDBACK>
<ON_CHECK message="qtyperqpwillberemovedanyway" />
<ON_OK message="qtyperqpwillberemoved" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/customcheckslib.php" function="php_check_register_globals" level="optional">
<FEEDBACK>
<ON_CHECK message="globalswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+275
View File
@@ -0,0 +1,275 @@
<?php
require_once('../config.php');
/**
* SCRIPT CONFIGURATION
*/
$starttimer = time()+microtime();
$settings = array();
$settings['verbose'] = false;
$settings['username'] = null;
$settings['password'] = null;
$settings['eolchar'] = '<br />'; // Character used to break lines
// Argument arrays: 0=>short name, 1=>long name
$arguments = array(
array('short'=>'u', 'long'=>'username', 'help' => 'Your moodle username', 'type'=>'STRING', 'default' => ''),
array('short'=>'pw', 'long'=>'password', 'help' => 'Your moodle password', 'type'=>'STRING', 'default' => ''),
array('short'=>'v', 'long' => 'verbose', 'help' => 'Display extra information about the process')
);
// Building the USAGE output of the command line version
if (isset($argv) && isset($argc)) {
$help = "Moodle User Pix Fix. Restores user profile images that were not properly moved during 1.8.2 upgrade to newer versions.\n\n"
. "Usage: {$argv[0]}; [OPTION] ...\n"
. "Options:\n"
. " -h, -?, -help, --help This output\n";
foreach ($arguments as $arg_array) {
$equal = '';
if (!empty($arg_array['type'])) {
$equal = "={$arg_array['type']}";
}
$padding1 = 5 - strlen($arg_array['short']);
$padding2 = 30 - (strlen($arg_array['long']) + strlen($equal));
$paddingstr1 = '';
for ($i = 0; $i < $padding1; $i++) {
$paddingstr1 .= ' ';
}
$paddingstr2 = '';
for ($i = 0; $i < $padding2; $i++) {
$paddingstr2 .= ' ';
}
$help .= " -{$arg_array['short']},$paddingstr1--{$arg_array['long']}$equal$paddingstr2{$arg_array['help']}\n";
}
$help .= "\nEmail nicolasconnault@gmail.com for any suggestions or bug reports.\n";
if ($argc == 1 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
echo $help;
die();
} else {
$settings['eolchar'] = "\n";
$argv = arguments($argv);
$argscount = 0;
foreach ($arguments as $arg_array) {
$value = null;
if (in_array($arg_array['short'], array_keys($argv))) {
$value = $argv[$arg_array['short']];
unset($argv[$arg_array['short']]);
} elseif (in_array($arg_array['long'], array_keys($argv))) {
$value = $argv[$arg_array['long']];
unset($argv[$arg_array['long']]);
}
if (!is_null($value)) {
$settings[$arg_array['long']] = $value;
$argscount++;
}
}
// If some params are left in argv, it means they are not supported
if ($argscount == 0 || count($argv) > 0) {
echo $help;
die();
}
}
}
/**
* SCRIPT SETUP
*/
require_once($CFG->libdir . '/formslib.php');
require_once($CFG->dirroot .'/course/lib.php');
verbose("Loading libraries...");
$systemcontext = get_context_instance(CONTEXT_SYSTEM);
/**
* WEB INTERFACE FORM
*/
class pixfix_form extends moodleform {
function definition() {
global $arguments;
$mform =& $this->_form;
foreach ($arguments as $arg_array) {
$type = 'advcheckbox';
$label = ucfirst(str_replace('-', ' ', $arg_array['long']));
if (!empty($arg_array['type'])) {
$type = 'text';
}
if ($arg_array['long'] == 'password' || $arg_array['long'] == 'username') {
continue;
}
$mform->addElement($type, $arg_array['long'], $label);
if (isset($arg_array['default'])) {
$mform->setDefault($arg_array['long'], $arg_array['default']);
}
}
$this->add_action_buttons(false, 'Restore Images');
}
function definition_after_data() {
}
}
$run_script = true;
$web_interface = false;
// If eolchar is still <br />, load the web interface
if ($settings['eolchar'] == '<br />') {
print_header("User Pix-Fix");
print_heading("User Pix-Fix");
$mform = new pixfix_form();
if ($data = $mform->get_data(false)) {
foreach ($arguments as $arg_array) {
if (!empty($data->{$arg_array['long']})) {
$settings[$arg_array['long']] = $data->{$arg_array['long']};
}
}
} else {
$run_script = false;
}
if (!has_capability('moodle/site:doanything', $systemcontext)) {
// If not logged in, give link to login page for current site
notify("You must be logged in as administrator before using this script.");
require_login();
} else {
$mform->display();
}
$web_interface = true;
}
if ($run_script) {
// User authentication
if (!$web_interface) {
if (empty($settings['username'])) {
echo "You must enter a valid username for a moodle administrator account on this site.{$settings['eolchar']}";
die();
} elseif (empty($settings['password'])) {
echo "You must enter a valid password for a moodle administrator account on this site.{$settings['eolchar']}";
die();
} else {
if (!$user = authenticate_user_login($settings['username'], $settings['password'])) {
echo "Invalid username or password!{$settings['eolchar']}";
die();
}
$USER = complete_user_login($user);
if (!has_capability('moodle/site:doanything', $systemcontext)) {
echo "You do not have administration privileges on this Moodle site. These are required for running the restore script.{$settings['eolchar']}";
die();
}
}
}
// Script code here
// Look for old moodledata/users directory
$oldusersdir = $CFG->dataroot . '/users';
if (!file_exists($oldusersdir)) {
notify('The old directory for user profile images ('.$oldusersdir.') does not exist. Pictures cannot be restored!');
} else {
// Find user profile images that are not yet in the new directory
$folders = get_directory_list($oldusersdir, '', false, true, false);
$restored_count = 0;
foreach ($folders as $userid) {
$olddir = $oldusersdir . '/' . $userid;
$files = get_directory_list($olddir);
if (empty($files)) {
continue;
}
// Create new user directory
if (!$newdir = make_user_directory($userid)) {
// some weird directory - do not stop the upgrade, just ignore it
continue;
}
// Move contents of old directory to new one
if (file_exists($olddir) && file_exists($newdir)) {
$restored = false;
foreach ($files as $file) {
if (!file_exists($newdir . '/' . $file)) {
copy($olddir . '/' . $file, $newdir . '/' . $file);
verbose("Moved $olddir/$file into $newdir/$file");
$restored = true;
}
}
if ($restored) {
$restored_count++;
}
} else {
notify("Could not move the contents of $olddir into $newdir!");
$result = false;
break;
}
}
if ($settings['eolchar'] == '<br />') {
print_box_start('generalbox centerpara');
}
if ($restored_count > 0) {
echo "Successfully restored profile images for $restored_count users!" . $settings['eolchar'];
} else {
echo "Did not find any user profile images in need of restoring." . $settings['eolchar'];
}
if ($settings['eolchar'] == '<br />') {
print_box_end();
}
}
}
if ($settings['eolchar'] == '<br />') {
print_footer();
}
/**
* Converts the standard $argv into an associative array taking var=val arguments into account
* @param array $argv
* @return array $_ARG
*/
function arguments($argv) {
$_ARG = array();
foreach ($argv as $arg) {
if (ereg('--?([^=]+)=(.*)',$arg,$reg)) {
$_ARG[$reg[1]] = $reg[2];
} elseif(ereg('-([a-zA-Z0-9]+)',$arg,$reg)) {
$_ARG[$reg[1]] = 'true';
}
}
return $_ARG;
}
/**
* If verbose is switched on, prints a string terminated by the global eolchar string.
* @param string $string The string to STDOUT
*/
function verbose($string) {
global $settings;
if ($settings['verbose'] && !$settings['quiet']) {
echo $string . $settings['eolchar'];
}
}
?>
+296 -3
View File
@@ -363,7 +363,11 @@ class problem_000008 extends problem_base {
}
$oldmemlimit = get_real_size($oldmemlimit);
//now lets change the memory limit to something unique below 128M==134217728
@ini_set('memory_limit', 134217720);
if (empty($CFG->extramemorylimit)) {
raise_memory_limit('128M');
} else {
raise_memory_limit($CFG->extramemorylimit);
}
$testmemlimit = get_real_size(@ini_get('memory_limit'));
//verify the change had any effect at all
if ($oldmemlimit == $testmemlimit) {
@@ -374,7 +378,7 @@ class problem_000008 extends problem_base {
return false;
}
}
@ini_set('memory_limit', $oldmemlimit);
reduce_memory_limit($oldmemlimit);
return false;
}
function severity() {
@@ -525,11 +529,300 @@ class problem_000011 extends problem_base {
}
return 'Error counter was cleared.';
} else {
return '<p>Session errors can be caused by:<ul><li>unresolved problem in server software (aka random switching of users),</li><li>blocked or modified cookies,</li><li>deleting of active session files.</li></ul></p><p><a href="'.me().'&resetsesserrorcounter=1">Reset counter.</a></p>';
return '<p>Session errors can be caused by:</p><ul>' .
'<li>unresolved problem in server software (aka random switching of users),</li>' .
'<li>blocked or modified cookies,</li>' .
'<li>deleting of active session files.</li>' .
'</ul><p><a href="'.me().'&amp;resetsesserrorcounter=1">Reset counter</a></p>';
}
}
}
class problem_000012 extends problem_base {
function title() {
return 'Random questions data consistency';
}
function exists() {
return record_exists_select('question', "qtype = 'random' AND parent <> id");
}
function severity() {
return SEVERITY_ANNOYANCE;
}
function description() {
return '<p>For random questions, question.parent should equal question.id. ' .
'There are some questions in your database for which this is not true. ' .
'One way that this could have happened is for random questions restored from backup before ' .
'<a href="http://tracker.moodle.org/browse/MDL-5482">MDL-5482</a> was fixed.</p>';
}
function solution() {
global $CFG;
return '<p>Upgrade to Moodle 1.9.1 or later, or manually execute the SQL</p>' .
'<pre>UPDATE ' . $CFG->prefix . 'question SET parent = id WHERE qtype = \'random\' and parent &lt;> id;</pre>';
}
}
class problem_000013 extends problem_base {
function title() {
return 'Multi-answer questions data consistency';
}
function exists() {
global $CFG;
$positionexpr = sql_position(sql_concat("','", "q.id", "','"),
sql_concat("','", "qma.sequence", "','"));
return record_exists_sql("
SELECT * FROM {$CFG->prefix}question q
JOIN {$CFG->prefix}question_multianswer qma ON $positionexpr > 0
WHERE qma.question <> q.parent") ||
record_exists_sql("
SELECT * FROM {$CFG->prefix}question q
JOIN {$CFG->prefix}question parent_q ON parent_q.id = q.parent
WHERE q.category <> parent_q.category");
}
function severity() {
return SEVERITY_ANNOYANCE;
}
function description() {
return '<p>For each sub-question whose id is listed in ' .
'question_multianswer.sequence, its question.parent field should equal ' .
'question_multianswer.question; and each sub-question should be in the same ' .
'category as its parent. There are questions in your database for ' .
'which this is not the case. One way that this could have happened is ' .
'for multi-answer questions restored from backup before ' .
'<a href="http://tracker.moodle.org/browse/MDL-14750">MDL-14750</a> was fixed.</p>';
}
function solution() {
return '<p>Upgrade to Moodle 1.9.1 or later, or manually execute the ' .
'code in question_multianswer_fix_subquestion_parents_and_categories in ' .
'<a href="http://cvs.moodle.org/moodle/question/type/multianswer/db/upgrade.php?revision=1.1.10.2&amp;view=markup">/question/type/multianswer/db/upgrade.php' .
'from the 1.9 stable branch</a>.</p>';
}
}
class problem_000014 extends problem_base {
function title() {
return 'Only multianswer and random questions should be the parent of another question';
}
function exists() {
global $CFG;
return record_exists_sql("
SELECT * FROM {$CFG->prefix}question q
JOIN {$CFG->prefix}question parent_q ON parent_q.id = q.parent
WHERE parent_q.qtype NOT IN ('random', 'multianswer')");
}
function severity() {
return SEVERITY_ANNOYANCE;
}
function description() {
return '<p>You have questions that violate this in your databse. ' .
'You will need to investigate to determine how this happened.</p>';
}
function solution() {
return '<p>It is impossible to give a solution without knowing more about ' .
' how the problem was caused. You may be able to get help from the ' .
'<a href="http://moodle.org/mod/forum/view.php?f=121">Quiz forum</a>.</p>';
}
}
class problem_000015 extends problem_base {
function title() {
return 'Question categories should belong to a valid context';
}
function exists() {
global $CFG;
return record_exists_sql("
SELECT qc.*, (SELECT COUNT(1) FROM {$CFG->prefix}question q WHERE q.category = qc.id) AS numquestions
FROM {$CFG->prefix}question_categories qc
LEFT JOIN {$CFG->prefix}context con ON qc.contextid = con.id
WHERE con.id IS NULL");
}
function severity() {
return SEVERITY_ANNOYANCE;
}
function description() {
global $CFG;
$problemcategories = get_records_sql("
SELECT qc.id, qc.name, qc.contextid, (SELECT COUNT(1) FROM {$CFG->prefix}question q WHERE q.category = qc.id) AS numquestions
FROM {$CFG->prefix}question_categories qc
LEFT JOIN {$CFG->prefix}context con ON qc.contextid = con.id
WHERE con.id IS NULL
ORDER BY numquestions DESC, qc.name");
$table = '<table><thead><tr><th>Cat id</th><th>Category name</th>' .
"<th>Context id</th><th>Num Questions</th></tr></thead><tbody>\n";
if ($problemcategories) {
foreach ($problemcategories as $cat) {
$table .= "<tr><td>$cat->id</td><td>" . s($cat->name) . "</td><td>" .
$cat->contextid ."</td><td>$cat->numquestions</td></tr>\n";
}
}
$table .= '</tbody></table>';
return '<p>All question categories are linked to a context id, and, ' .
'the context they are linked to must exist. The following categories ' .
'belong to a non-existant category:</p>' . $table . '<p>Any of these ' .
'categories that contain no questions can just be deleted form the database. ' .
'Other categories will require more thought.</p>';
}
function solution() {
global $CFG;
return '<p>You can delete the empty categories by executing the following SQL:</p><pre>
DELETE FROM ' . $CFG->prefix . 'question_categories
WHERE
NOT EXISTS (SELECT * FROM ' . $CFG->prefix . 'question q WHERE q.category = ' . $CFG->prefix . 'question_categories.id)
AND NOT EXISTS (SELECT * FROM ' . $CFG->prefix . 'context con WHERE contextid = con.id)
</pre><p>Any remaining categories that contain questions will require more thought. ' .
'People in the <a href="http://moodle.org/mod/forum/view.php?f=121">Quiz forum</a> may be able to help.</p>';
}
}
class problem_000016 extends problem_base {
function title() {
return 'Question categories should belong to the same context as their parent';
}
function exists() {
global $CFG;
return record_exists_sql("
SELECT parent_qc.id AS parent, child_qc.id AS child, child_qc.contextid
FROM {$CFG->prefix}question_categories child_qc
JOIN {$CFG->prefix}question_categories parent_qc ON child_qc.parent = parent_qc.id
WHERE child_qc.contextid <> parent_qc.contextid");
}
function severity() {
return SEVERITY_ANNOYANCE;
}
function description() {
global $CFG;
$problemcategories = get_records_sql("
SELECT
parent_qc.id AS parentid, parent_qc.name AS parentname, parent_qc.contextid AS parentcon,
child_qc.id AS childid, child_qc.name AS childname, child_qc.contextid AS childcon
FROM {$CFG->prefix}question_categories child_qc
JOIN {$CFG->prefix}question_categories parent_qc ON child_qc.parent = parent_qc.id
WHERE child_qc.contextid <> parent_qc.contextid");
$table = '<table><thead><tr><th colspan="3">Child category</th><th colspan="3">Parent category</th></tr><tr>' .
'<th>Id</th><th>Name</th><th>Context id</th>' .
'<th>Id</th><th>Name</th><th>Context id</th>' .
"</tr></thead><tbody>\n";
if ($problemcategories) {
foreach ($problemcategories as $cat) {
$table .= "<tr><td>$cat->childid</td><td>" . s($cat->childname) .
"</td><td>$cat->childcon</td><td>$cat->parentid</td><td>" . s($cat->parentname) .
"</td><td>$cat->parentcon</td></tr>\n";
}
}
$table .= '</tbody></table>';
return '<p>When one question category is the parent of another, then they ' .
'should both belong to the same context. This is not true for the following categories:</p>' .
$table;
}
function solution() {
return '<p>An automated solution is difficult. It depends whether the ' .
'parent or child category is in the wrong pace.' .
'People in the <a href="http://moodle.org/mod/forum/view.php?f=121">Quiz forum</a> may be able to help.</p>';
}
}
class problem_000017 extends problem_base {
function title() {
return 'Question categories tree structure';
}
function find_problems() {
static $answer = null;
if (is_null($answer)) {
$categories = get_records('question_categories', '', '', 'id');
// Look for missing parents.
$missingparent = array();
foreach ($categories as $category) {
if ($category->parent != 0 && !array_key_exists($category->parent, $categories)) {
$missingparent[$category->id] = $category;
}
}
// Look for loops.
$loops = array();
while (!empty($categories)) {
$current = array_pop($categories);
$thisloop = array($current->id => $current);
while (true) {
if (isset($thisloop[$current->parent])) {
// Loop detected
$loops[$current->id] = $thisloop;
break;
} else if (!isset($categories[$current->parent])) {
// Got to the top level, or a category we already know is OK.
break;
} else {
// Continue following the path.
$current = $categories[$current->parent];
$thisloop[$current->id] = $current;
unset($categories[$current->id]);
}
}
}
$answer = array($missingparent, $loops);
}
return $answer;
}
function exists() {
list($missingparent, $loops) = $this->find_problems();
return !empty($missingparent) || !empty($loops);
}
function severity() {
return SEVERITY_ANNOYANCE;
}
function description() {
list($missingparent, $loops) = $this->find_problems();
$description = '<p>The question categories should be arranged into tree ' .
' structures by the question_categories.parent field. Sometimes ' .
' this tree structure gets messed up.</p>';
if (!empty($missingparent)) {
$description .= '<p>The following categories are missing their parents:</p><ul>';
foreach ($missingparent as $cat) {
$description .= "<li>Category $cat->id: " . s($cat->name) . "</li>\n";
}
$description .= "</ul>\n";
}
if (!empty($loops)) {
$description .= '<p>The following categories form a loop of parents:</p><ul>';
foreach ($loops as $loop) {
$description .= "<li><ul>\n";
foreach ($loop as $cat) {
$description .= "<li>Category $cat->id: " . s($cat->name) . " has parent $cat->parent</li>\n";
}
$description .= "</ul></li>\n";
}
$description .= "</ul>\n";
}
return $description;
}
function solution() {
global $CFG;
list($missingparent, $loops) = $this->find_problems();
$solution = '<p>Consider executing the following SQL queries. These fix ' .
'the problem by moving some categories to the top level.</p>';
if (!empty($missingparent)) {
$solution .= "<pre>UPDATE " . $CFG->prefix . "question_categories\n" .
" SET parent = 0\n" .
" WHERE id IN (" . implode(',', array_keys($missingparent)) . ");</pre>\n";
}
if (!empty($loops)) {
$solution .= "<pre>UPDATE " . $CFG->prefix . "question_categories\n" .
" SET parent = 0\n" .
" WHERE id IN (" . implode(',', array_keys($loops)) . ");</pre>\n";
}
return $solution;
}
}
class problem_00000x extends problem_base {
function title() {
+47 -18
View File
@@ -61,6 +61,10 @@
error("The PHP server variable 'file_uploads' is not turned On - $documentationlink");
}
if (is_float_problem()) {
print_error('phpfloatproblem', 'admin', '', $documentationlink);
}
if (empty($CFG->prefix) && $CFG->dbfamily != 'mysql') { //Enforce prefixes for everybody but mysql
error('$CFG->prefix can\'t be empty for your target DB (' . $CFG->dbtype . ')');
}
@@ -286,17 +290,22 @@
require_once($CFG->libdir.'/environmentlib.php');
print_heading(get_string('environment', 'admin'));
remove_dir($CFG->dataroot . '/environment'); /// Always delete downloaded env. info to force use of the released one. MDL-9796
if (!check_moodle_environment($release, $environment_results, true)) {
print_box_start('generalbox', 'notice'); // MDL-8330
print_string('langpackwillbeupdated', 'admin');
print_box_end();
if (empty($CFG->skiplangupgrade)) {
print_box_start('generalbox', 'notice'); // MDL-8330
print_string('langpackwillbeupdated', 'admin');
print_box_end();
}
notice_yesno(get_string('environmenterrorupgrade', 'admin'),
'index.php?confirmupgrade=1&confirmrelease=1', 'index.php');
'index.php?confirmupgrade=1&amp;confirmrelease=1', 'index.php');
} else {
notify(get_string('environmentok', 'admin'), 'notifysuccess');
print_box_start('generalbox', 'notice'); // MDL-8330
print_string('langpackwillbeupdated', 'admin');
print_box_end();
if (empty($CFG->skiplangupgrade)) {
print_box_start('generalbox', 'notice'); // MDL-8330
print_string('langpackwillbeupdated', 'admin');
print_box_end();
}
echo '<form action="index.php"><div>';
echo '<input type="hidden" name="confirmupgrade" value="1" />';
echo '<input type="hidden" name="confirmrelease" value="1" />';
@@ -319,7 +328,7 @@
print_plugin_tables();
echo "<br />";
echo '<div class="continuebutton">';
print_single_button('index.php', array('confirmupgrade' => 1, 'confirmrelease' => 1), get_string('reload'), 'get');
echo '<a href="index.php?confirmupgrade=1&amp;confirmrelease=1" title="'.get_string('reload').'" ><img src="'.$CFG->pixpath.'/i/reload.gif" alt="" /> '.get_string('reload').'</a>';
echo '</div><br />';
echo '<form action="index.php"><div>';
echo '<input type="hidden" name="confirmupgrade" value="1" />';
@@ -344,7 +353,9 @@
upgrade_log_start();
/// Upgrade current language pack if we can
upgrade_language_pack();
if (empty($CFG->skiplangupgrade)) {
upgrade_language_pack();
}
print_heading($strdatabasechecking);
$db->debug=true;
@@ -467,6 +478,9 @@
/// Check all message output plugins and upgrade if necessary
upgrade_plugins('message','message/output',"$CFG->wwwroot/$CFG->admin/index.php");
/// Check all course report plugins and upgrade if necessary
upgrade_plugins('coursereport', 'course/report', "$CFG->wwwroot/$CFG->admin/index.php");
/// Check all admin report plugins and upgrade if necessary
upgrade_plugins('report', $CFG->admin.'/report', "$CFG->wwwroot/$CFG->admin/index.php");
@@ -529,19 +543,19 @@
//add admin_tree block to site if not already present
if ($admintree = get_record('block', 'name', 'admin_tree')) {
$page = page_create_object(PAGE_COURSE_VIEW, SITEID);
blocks_execute_action($page, blocks_get_by_page($page), 'add', (int)$admintree->id, false, false);
$pageblocks=blocks_get_by_page($page);
blocks_execute_action($page, $pageblocks, 'add', (int)$admintree->id, false, false);
if ($admintreeinstance = get_record('block_instance', 'pagetype', $page->type, 'pageid', SITEID, 'blockid', $admintree->id)) {
blocks_execute_action($page, blocks_get_by_page($page), 'moveleft', $admintreeinstance, false, false);
$pageblocks=blocks_get_by_page($page); // Needs to be re-got, since has just changed
blocks_execute_action($page, $pageblocks, 'moveleft', $admintreeinstance, false, false);
}
}
set_config('adminblocks_initialised', 1);
}
/// Define the unique site ID code if it isn't already
if (empty($CFG->siteidentifier)) { // Unique site identification code
set_config('siteidentifier', random_string(32).$_SERVER['HTTP_HOST']);
}
/// Define the unique site ID code if it isn't already set. This getter does that as a side-effect.
get_site_identifier();
/// Check if the guest user exists. If not, create one.
if (! record_exists("user", "username", "guest")) {
@@ -567,6 +581,8 @@
/// check that site is properly customized
if (empty($site->shortname)) {
// probably new installation - lets return to frontpage after this step
// remove settings that we want uninitialised
unset_config('registerauth');
redirect('upgradesettings.php?return=site');
}
@@ -578,6 +594,12 @@
}
}
/// setup critical warnings before printing admin tree block
$insecuredataroot = is_dataroot_insecure(true);
$register_globals_enabled = ini_get_bool('register_globals');
$SESSION->admin_critical_warning = ($register_globals_enabled || $insecuredataroot==INSECURE_DATAROOT_ERROR);
$adminroot =& admin_get_root();
/// Check if there are any new admin settings which have still yet to be set
@@ -602,12 +624,19 @@
print_box(get_string("upgrade$CFG->upgrade", "admin", "$CFG->wwwroot/$CFG->admin/upgrade$CFG->upgrade.php"));
}
if (ini_get_bool('register_globals')) {
print_box(get_string('globalswarning', 'admin'), 'generalbox adminwarning');
if ($register_globals_enabled) {
print_box(get_string('globalswarning', 'admin'), 'generalbox adminerror');
}
if (is_dataroot_insecure()) {
if ($insecuredataroot == INSECURE_DATAROOT_WARNING) {
print_box(get_string('datarootsecuritywarning', 'admin', $CFG->dataroot), 'generalbox adminwarning');
} else if ($insecuredataroot == INSECURE_DATAROOT_ERROR) {
print_box(get_string('datarootsecurityerror', 'admin', $CFG->dataroot), 'generalbox adminerror');
}
if (defined('WARN_DISPLAY_ERRORS_ENABLED')) {
print_box(get_string('displayerrorswarning', 'admin'), 'generalbox adminwarning');
}
if (substr($CFG->wwwroot, -1) == '/') {
+15 -10
View File
@@ -26,6 +26,7 @@
define('LANG_MISSING_TEXT_MAX_LEN', 60); // maximum length of the missing text to display
define('LANG_KEEP_ORPHANS', 1); // keep orphaned strings (i.e. strings w/o English reference)
define('LANG_SEARCH_EXTRA', 1); // search lang files in extra locations
define('LANG_ALWAYS_TEXTAREA', 1); // always use <textarea> even for short strings MDL-15738
$mode = optional_param('mode', '', PARAM_ALPHA);
if ($mode == 'helpfiles') {
@@ -294,7 +295,7 @@
$missingcounter++;
}
if (LANG_LINK_MISSING_STRINGS && ($missingstring || $translationsdiffer)) {
$missinglinkstart = "<a href=\"lang.php?mode=compare&amp;currentfile=$filename#missing$missingcounter\">";
$missinglinkstart = "<a href=\"lang.php?mode=compare&amp;currentfile=$filename#$key\">";
$missinglinkend = '</a>';
} else {
$missinglinkstart = '';
@@ -555,7 +556,7 @@
$linescounter++ ;
if (LANG_SUBMIT_REPEAT && $editable && $linescounter % LANG_SUBMIT_REPEAT_EVERY == 0) {
$o .= '<tr><td>&nbsp;</td><td><br />';
$o .= '<input type="submit" name="update" value="'.get_string('savechanges').': '.$currentfile.'" />';
$o .= '<input type="submit" tabindex="'.$missingcounter.'" name="update" value="'.get_string('savechanges').': '.$currentfile.'" />';
$o .= '<br />&nbsp;</td></tr>';
}
$envalue = nl2br(htmlspecialchars($envalue));
@@ -571,7 +572,7 @@
}
$o .= '">';
$o .= '<td dir="ltr" lang="en">';
$o .= '<span class="stren">'.$envalue.'</span>';
$o .= '<span id="'.$key.'" class="stren">'.$envalue.'</span>';
$o .= '<br />'."\n";
$o .= '<span class="strkey">'.$key.'</span>';
$o .= '</td>'."\n";
@@ -613,7 +614,7 @@
}
} else {
// the string is translated in the pack being processed
if ($value <> $value2 && ($uselocal || $value2 <> '')) {
if ($value <> $value2 && ($value2 <> '')) {
$cellcolour = 'class="localdifferent"';
$usetabindex = true;
$missingcounter++;
@@ -651,7 +652,11 @@
if ($valuelen) {
$cols = $valuelen + 5;
}
$o .= '<input type="text" name="stringXXX'.lang_form_string_key($key).'" value="'.$value.'" size="'.$cols.'" '.$tabindex.' />';
if (LANG_ALWAYS_TEXTAREA) {
$o .= '<textarea name="stringXXX'.lang_form_string_key($key).'" cols="'.$cols.'" rows="1" '.$tabindex.'>'.$value.'</textarea>'."\n";
} else {
$o .= '<input type="text" name="stringXXX'.lang_form_string_key($key).'" value="'.$value.'" size="'.$cols.'" '.$tabindex.' />';
}
}
if ($value2 <> '' && $value <> $value2) {
$o .= '<br /><span style="font-size:small">'.$value2.'</span>';
@@ -668,7 +673,7 @@
$o .= '<input type="hidden" name="sesskey" value="'.$USER->sesskey.'" />';
$o .= '<input type="hidden" name="currentfile" value="'.$currentfile.'" />';
$o .= '<input type="hidden" name="mode" value="compare" />';
$o .= '<input type="submit" name="update" value="'.get_string('savechanges').': '.$currentfile.'" />';
$o .= '<input type="submit" name="update" tabindex="'.$missingcounter.'" value="'.get_string('savechanges').': '.$currentfile.'" />';
$o .= '</td></tr>';
}
$o .= '</table>';
@@ -817,7 +822,7 @@
echo '<input type="hidden" name="sesskey" value="'.$USER->sesskey.'" />';
echo '<input type="hidden" name="currentfile" value="'.$currentfile.'" />';
echo '<input type="hidden" name="mode" value="helpfiles" />';
echo "<div align=\"center\">\n";
echo "<div class='mdl-align'>\n";
echo "<textarea rows=\"$fileeditorrows\" cols=\"$fileeditorcols\" name=\"filedata\">";
if (file_exists("$saveto/$currentfile")) {
echo htmlspecialchars(file_get_contents("$saveto/$currentfile"));
@@ -825,7 +830,7 @@
echo ($filetemplate);
}
echo "</textarea>\n</div>\n";
echo '<div align="center"><input type="submit" value="'.get_string('savechanges').'" /></div>';
echo '<div class="mdl-align"><input type="submit" value="'.get_string('savechanges').'" /></div>';
echo '</form>';
$preview_url = lang_help_preview_url($currentfile, !$uselocal);
if ($preview_url) {
@@ -837,7 +842,7 @@
if (is_readable("$altdir/$currentfile")) {
// show the content of the same help file in alternative location
echo '<fieldset><legend>'.$straltdirtitle.'</legend>';
echo "<div align=\"center\">\n";
echo "<div class='mdl-align'>\n";
echo "<textarea rows=\"$fileeditorrows\" cols=\"$fileeditorcols\" name=\"\">";
if (file_exists("$altdir/$currentfile")) {
echo htmlspecialchars(file_get_contents("$altdir/$currentfile"));
@@ -864,7 +869,7 @@
echo '<fieldset><legend>'.$strlangmasterenglish;
helpbutton('langpackages', $strlangmasterenglish);
echo '</legend>';
echo "<div align=\"center\">\n<textarea rows=\"$fileeditorrows\" cols=\"$fileeditorcols\" name=\"\">";
echo "<div class='mdl-align'>\n<textarea rows=\"$fileeditorrows\" cols=\"$fileeditorcols\" name=\"\">";
echo htmlspecialchars(file_get_contents($ensrc));
echo "</textarea>\n</div>\n";
$preview_url = lang_help_preview_url($currentfile, true, 'en_utf8'); // do not display en_utf8_local
+2 -2
View File
@@ -112,7 +112,7 @@
for ($a=0; $a < count($pathparts)-1 ; $a++) {
$checkpath .= "/".$pathparts[$a];
if(!file_exists($checkpath)){
if(!mkdir($checkpath)){
if(!mkdir($checkpath, $CFG->directorypermissions)){
echo ("Cannot create directory: $checkpath");
}
}
@@ -186,7 +186,7 @@ $langdir/$currentfile")."</font></p>";
if ($preview_url) {
link_to_popup_window($preview_url, 'popup', get_string('preview'));
}
echo '<div align="center"><input type="submit" value="'.get_string('savechanges').': lang/'.$currentlang.'/'.$currentfile.'" /></div>';
echo '<div class="mdl-align"><input type="submit" value="'.get_string('savechanges').': lang/'.$currentlang.'/'.$currentfile.'" /></div>';
echo '</form>';
}
+11 -4
View File
@@ -11,6 +11,13 @@
admin_externalpage_setup('langimport');
if (!empty($CFG->skiplangupgrade)) {
admin_externalpage_print_header();
print_box(get_string('langimportdisabled', 'admin'));
print_footer();
die;
}
$mode = optional_param('mode', 0, PARAM_INT); //phase
$pack = optional_param('pack', array(), PARAM_FILE); //pack to install
$displaylang = $pack;
@@ -43,8 +50,8 @@
if (confirm_sesskey() and !empty($pack)) {
set_time_limit(0);
@mkdir ($CFG->dataroot.'/temp/'); //make it in case it's a fresh install, it might not be there
@mkdir ($CFG->dataroot.'/lang/');
@mkdir ($CFG->dataroot.'/temp/', $CFG->directorypermissions); //make it in case it's a fresh install, it might not be there
@mkdir ($CFG->dataroot.'/lang/', $CFG->directorypermissions);
if (is_array($pack)) {
$packs = $pack;
@@ -160,8 +167,8 @@
}
}
@mkdir ($CFG->dataroot.'/temp/');
@mkdir ($CFG->dataroot.'/lang/');
@mkdir ($CFG->dataroot.'/temp/', $CFG->directorypermissions);
@mkdir ($CFG->dataroot.'/lang/', $CFG->directorypermissions);
foreach ($packs as $pack){ //for each of the remaining in the list, we
if ($pack == 'en_utf8') { // no update for en_utf8
continue;
+13 -4
View File
@@ -33,29 +33,36 @@
admin_externalpage_print_header();
print_heading(get_string('sitemaintenancemode', 'admin'));
print_box_start();
/// Print the appropriate form
if (file_exists($filename)) { // We are in maintenance mode
echo '<div style="margin-left:auto;margin-right:auto">';
echo '<div class="buttons">';
echo '<p>'.get_string('sitemaintenanceon', 'admin').'</p>';
echo '<form action="maintenance.php" method="post">';
echo '<div>';
echo '<input type="hidden" name="action" value="disable" />';
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
echo '<p><input type="submit" value="'.get_string('disable').'" /></p>';
echo '</div>';
echo '</form>';
echo '</div>';
} else { // We are not in maintenance mode
$usehtmleditor = can_use_html_editor();
echo '<div style="text-align:center;margin-left:auto;margin-right:auto">';
echo '<div class="buttons">';
echo '<form action="maintenance.php" method="post">';
echo '<div>';
echo '<input type="hidden" name="action" value="enable" />';
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
echo '<p><input type="submit" value="'.get_string('enable').'" /></p>';
echo '<p>'.get_string('optionalmaintenancemessage', 'admin').':</p>';
echo '<table><tr><td>';
echo '<div class="editor" style="width:600px;">'; // contains the editor
print_textarea($usehtmleditor, 20, 50, 600, 400, "text");
echo '</td></tr></table>';
echo '</div>';
echo '</div>';
echo '</form>';
echo '</div>';
@@ -65,5 +72,7 @@
}
}
print_box_end();
admin_externalpage_print_footer();
?>
+9 -10
View File
@@ -1,5 +1,7 @@
<?php
admin_externalpage_print_header($adminroot);
admin_externalpage_print_header();
print_heading(get_string('themes'));
$original_theme = fullclone($THEME);
$logurl = $CFG->wwwroot.
'/course/report/log/index.php?chooselog=1&amp;showusers=1&amp;showcourses=1&amp;host_course='.$mnet_peer->id.
@@ -10,13 +12,10 @@ $logurl = $CFG->wwwroot.
$tabs[] = new tabobject('mnetdetails', 'peers.php?step=update&amp;hostid='.$mnet_peer->id, $strmnetedithost, $strmnetedithost, false);
$tabs[] = new tabobject('mnetservices', 'mnet_services.php?step=list&amp;hostid='.$mnet_peer->id, $strmnetservices, $strmnetservices, false);
$tabs[] = new tabobject('mnetthemes', 'mnet_themes.php?step=list&amp;hostid='.$mnet_peer->id, $strmnetthemes, $strmnetthemes, false);
if ($mnet_peer->id != $CFG->mnet_all_hosts_id) $tabs[] = new tabobject('mnetlog', $logurl, $strmnetlog, $strmnetlog, false);
print_tabs(array($tabs), 'mnetthemes');
print_simple_box_start("center", "");
print_heading($strthemes);
if ($mnet_peer->id != $CFG->mnet_all_hosts_id) {
$tabs[] = new tabobject('mnetlog', $logurl, $strmnetlog, $strmnetlog, false);
}
print_tabs(array($tabs), 'mnetthemes');
$themes = get_list_of_plugins("theme");
$sesskey = !empty($USER->id) ? $USER->sesskey : '';
@@ -123,6 +122,6 @@ print_simple_box_start("center", "");
}
echo "</table>";
print_simple_box_end();
admin_externalpage_print_footer($adminroot);
$THEME = $original_theme;
admin_externalpage_print_footer();
?>
+6 -4
View File
@@ -4,8 +4,6 @@
require_once(dirname(dirname(dirname(__FILE__))) . '/config.php');
require_once($CFG->libdir.'/adminlib.php');
include_once($CFG->dirroot.'/mnet/lib.php');
error_reporting(E_ALL);
ini_set('display_errors', true);
require_login();
admin_externalpage_setup('mnetpeers');
@@ -54,7 +52,9 @@ ini_set('display_errors', true);
if (confirm_sesskey()) {
if ($choose == $unlikely_name) {
$mnet_peer->force_theme = 1;
$mnet_peer->updateparams->force_theme = 1;
$mnet_peer->theme = '';
$mnet_peer->updateparams->theme = '';
if ($mnet_peer->commit()) {
$report = array(get_string('themesaved'), 'informationbox');
} else {
@@ -65,7 +65,8 @@ ini_set('display_errors', true);
$report = array('This theme is not installed!'.'3', 'errorbox');
} else {
$mnet_peer->force_theme = 1;
$mnet_peer->theme = addslashes($choose);
$mnet_peer->theme = $choose;
$mnet_peer->updateparams->theme = addslashes($choose);
if ($mnet_peer->commit()) {
$report = array(get_string('themesaved').'1', 'informationbox');
} else {
@@ -75,5 +76,6 @@ ini_set('display_errors', true);
}
}
include('./mnet_themes.html');
$adminroot = admin_get_root();
require('./mnet_themes.html');
?>
+4 -2
View File
@@ -97,6 +97,7 @@ if (($form = data_submitted()) && confirm_sesskey()) {
}
if (isset($form->deleted) && ($form->deleted == '0' || $form->deleted == '1')) {
$mnet_peer->updateparams->deleted = $form->deleted;
$mnet_peer->deleted = $form->deleted;
}
@@ -108,9 +109,10 @@ if (($form = data_submitted()) && confirm_sesskey()) {
} else {
$oldkey = $mnet_peer->public_key;
$mnet_peer->public_key = $form->public_key;
$mnet_peer->public_key_expires = $mnet_peer->check_common_name($form->public_key);
$mnet_peer->updateparams->public_key = addslashes($form->public_key);
$mnet_peer->public_key_expires = $mnet_peer->check_common_name($form->public_key);
$mnet_peer->updateparams->public_key_expires = $mnet_peer->check_common_name($form->public_key);
if ($mnet_peer->public_key_expires == false) {
$mnet_peer->public_key == $oldkey;
$errmsg = '<br />';
foreach ($mnet_peer->error as $err) {
$errmsg .= $err['code'] . ': ' . $err['text'].'<br />';
+7
View File
@@ -123,6 +123,13 @@
if (!delete_records("course_modules", "module", $module->id)) {
notify("Error occurred while deleting all $strmodulename records in course_modules table");
}
if ($coursemods) {
foreach ($coursemods as $coursemod) {
if (!delete_context(CONTEXT_MODULE, $coursemod->id)) {
notify("Could not delete the context for $strmodulename with id = $coursemod->id");
}
}
}
// Then delete all the logs
if (!delete_records("log", "module", $module->name)) {
+39 -6
View File
@@ -20,8 +20,11 @@ page_map_class(PAGE_ADMIN, 'page_admin');
class page_admin extends page_base {
var $section;
var $section = '';
var $visiblepathtosection;
var $extraurlparams = array();
var $extrabutton = '';
var $url = '';
// hack alert!
// this function works around the inability to store the section name
@@ -62,6 +65,9 @@ class page_admin extends page_base {
function url_get_path() {
global $CFG;
if (!empty($this->url)) {
return $this->url;
}
$adminroot =& admin_get_root(false, false); //settings not required - only pages
@@ -73,8 +79,29 @@ class page_admin extends page_base {
}
}
/**
* Use this to pass extra HTML that is added after the turn blocks editing on/off button.
*
* @param string $extrabutton HTML code.
*/
function set_extra_button($extrabutton) {
$this->extrabutton = $extrabutton;
}
/**
* Use this to pass extra URL parameters that, for example, the blocks editing controls need to reload the current page accurately.
*
* @param array $extraurlparams paramname => value array.
*/
function set_extra_url_params($extraurlparams, $actualurl = '') {
$this->extraurlparams = $extraurlparams;
if (!empty($actualurl)) {
$this->url = $actualurl;
}
}
function url_get_parameters() { // only handles parameters relevant to the admin pagetype
return array('section' => (isset($this->section) ? $this->section : ''));
return array_merge($this->extraurlparams, array('section' => $this->section));
}
function blocks_get_positions() {
@@ -107,13 +134,19 @@ class page_admin extends page_base {
// The search page currently doesn't handle block editing
if ($this->section != 'search' and $this->user_allowed_editing()) {
$buttons = '<div><form '.$CFG->frametarget.' method="get" action="' . $this->url_get_path() . '">'.
'<div><input type="hidden" name="adminedit" value="'.($this->user_is_editing()?'off':'on').'" />'.
'<input type="hidden" name="section" value="'.$this->section.'" />'.
'<input type="submit" value="'.get_string($this->user_is_editing()?'blockseditoff':'blocksediton').'" /></div></form></div>';
$options = $this->url_get_parameters();
if ($this->user_is_editing()) {
$caption = get_string('blockseditoff');
$options['adminedit'] = 'off';
} else {
$caption = get_string('blocksediton');
$options['adminedit'] = 'on';
}
$buttons = print_single_button($this->url_get_path(), $options, $caption, 'get', '', true);
} else {
$buttons = '&nbsp;';
}
$buttons .= $this->extrabutton;
$navlinks = array();
foreach ($this->visiblepathtosection as $element) {
+1 -7
View File
@@ -23,13 +23,7 @@
$admin->country = $CFG->country;
}
if (empty($CFG->siteidentifier)) { // Unique site identification code
set_config('siteidentifier', random_string(32).$_SERVER['HTTP_HOST']);
}
/// Print headings
$stradministration = get_string("administration");
$strregistration = get_string("registration");
$strregistrationinfo = get_string("registrationinfo");
@@ -54,7 +48,7 @@
echo "<!-- Together they form a key. If any of these change between updates then the entry -->\n";
echo "<!-- is flagged as a new entry and will be manually checked by the list maintainer -->\n";
echo "<input type=\"hidden\" name=\"url\" value=\"$CFG->wwwroot\" />\n";
echo "<input type=\"hidden\" name=\"secret\" value=\"$CFG->siteidentifier\" />\n";
echo "<input type=\"hidden\" name=\"secret\" value=\"" . get_site_identifier() . "\" />\n";
echo "<input type=\"hidden\" name=\"host\" value=\"".$_SERVER["HTTP_HOST"]."\" />\n";
echo "<input type=\"hidden\" name=\"lang\" value=\"".current_language()."\" />\n";
+15 -1
View File
@@ -19,7 +19,7 @@ print_heading('Search and replace text throughout the whole database');
if (!data_submitted() or !$search or !$replace or !confirm_sesskey()) { /// Print a form
print_simple_box_start('center');
echo '<div align="center">';
echo '<div class="mdl-align">';
echo '<form action="replace.php" method="post">';
echo '<input type="hidden" name="sesskey" value="'.$USER->sesskey.'" />';
echo 'Search whole database for: <input type="text" name="search" /><br />';
@@ -40,6 +40,20 @@ if (!db_replace($search, $replace)) {
print_simple_box_end();
/// Try to replace some well-known serialised contents (html blocks)
notify('Replacing in html blocks...');
$sql = "SELECT bi.*
FROM {$CFG->prefix}block_instance bi
JOIN {$CFG->prefix}block b ON b.id = bi.blockid
WHERE b.name = 'html'";
if ($instances = get_records_sql($sql)) {
foreach ($instances as $instance) {
$blockobject = block_instance('html', $instance);
$blockobject->config->text = str_replace($search, $replace, $blockobject->config->text);
$blockobject->instance_config_commit($blockobject->pinned);
}
}
/// Rebuild course cache which might be incorrect now
notify('Rebuilding course cache...');
rebuild_course_cache();
+2 -5
View File
@@ -5,13 +5,10 @@
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->dirroot.'/backup/lib.php');
admin_externalpage_setup('reportbackups');
admin_externalpage_print_header();
$courseid = optional_param('courseid', 0, PARAM_INT);
require_capability('moodle/site:backup', get_context_instance(CONTEXT_SYSTEM));
admin_externalpage_setup('reportbackups');
admin_externalpage_print_header();
/// Scheduled backups are disabled by the server admin
if (!empty($CFG->disablescheduledbackups)) {
+3
View File
@@ -0,0 +1,3 @@
<?php // $Id$
$ADMIN->add('reports', new admin_externalpage('reportbackups', get_string('backups', 'admin'), "$CFG->wwwroot/$CFG->admin/report/backups/index.php",'moodle/site:backup'));
?>
+42
View File
@@ -0,0 +1,42 @@
<?php // $Id$
///////////////////////////////////////////////////////////////////////////
// //
// NOTICE OF COPYRIGHT //
// //
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
// http://moodle.com //
// //
// Copyright (C) 1999 onwards Martin Dougiamas http://moodle.com //
// //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details: //
// //
// http://www.gnu.org/copyleft/gpl.html //
// //
///////////////////////////////////////////////////////////////////////////
$report_courseoverview_capabilities = array(
'report/courseoverview:view' => array(
'riskbitmask' => RISK_PERSONAL,
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'legacy' => array(
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
'admin' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/site:viewreports',
)
);
?>
+7 -6
View File
@@ -4,18 +4,19 @@
require_once($CFG->dirroot.'/lib/statslib.php');
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('reportcourseoverview');
admin_externalpage_print_header();
$report = optional_param('report', STATS_REPORT_ACTIVE_COURSES, PARAM_INT);
$time = optional_param('time', 0, PARAM_INT);
$numcourses = optional_param('numcourses', 20, PARAM_INT);
require_capability('moodle/site:viewreports', get_context_instance(CONTEXT_SYSTEM)); // needed?
admin_externalpage_setup('reportcourseoverview');
admin_externalpage_print_header();
if (empty($CFG->enablestats)) {
redirect("$CFG->wwwroot/$CFG->admin/settings.php?section=stats", get_string('mustenablestats', 'admin'), 3);
if (has_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM))) {
redirect("$CFG->wwwroot/$CFG->admin/settings.php?section=stats", get_string('mustenablestats', 'admin'), 3);
} else {
error("Stats is not enabled.");
}
}
$course = get_site();
+2 -2
View File
@@ -10,7 +10,7 @@
require_login();
require_capability('moodle/site:viewreports', get_context_instance(CONTEXT_SYSTEM));
require_capability('report/courseoverview:view', get_context_instance(CONTEXT_SYSTEM));
stats_check_uptodate();
@@ -29,7 +29,7 @@
$courses = get_records_sql($sql, 0, $numcourses);
if (empty($courses)) {
print_error('statsnodata', "", $CFG->wwwroot.'/'.$CFG->admin.'/report/course/index.php');
print_error('statsnodata', "", $CFG->wwwroot.'/'.$CFG->admin.'/report/courseoverview/index.php');
}
+3
View File
@@ -0,0 +1,3 @@
<?php // $Id$
$ADMIN->add('reports', new admin_externalpage('reportcourseoverview', get_string('courseoverview', 'admin'), "$CFG->wwwroot/$CFG->admin/report/courseoverview/index.php",'report/courseoverview:view'));
?>
+29
View File
@@ -0,0 +1,29 @@
<?PHP // $Id$
///////////////////////////////////////////////////////////////////////////
// //
// NOTICE OF COPYRIGHT //
// //
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
// http://moodle.com //
// //
// Copyright (C) 1999 onwards Martin Dougiamas http://moodle.com //
// //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details: //
// //
// http://www.gnu.org/copyleft/gpl.html //
// //
///////////////////////////////////////////////////////////////////////////
$plugin->version = 2007101503;
$plugin->requires = 2007101532;
?>
-31
View File
@@ -1,31 +0,0 @@
<?php // $Id$
require_once('../../../config.php');
require_once($CFG->dirroot.'/course/lib.php');
require_once($CFG->dirroot.'/course/report/log/lib.php');
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('reportlog');
admin_externalpage_print_header();
$course = get_site();
print_heading(get_string('chooselogs') .':');
print_mnet_log_selector_form($CFG->mnet_localhost_id, $course);
echo '<br />';
print_heading(get_string('chooselivelogs') .':');
$heading = link_to_popup_window('/course/report/log/live.php?id='. $course->id,
'livelog', get_string('livelogs'),
500, 800, '', 'none', true);
print_heading($heading, 'center', 3);
admin_externalpage_print_footer();
?>
+5
View File
@@ -0,0 +1,5 @@
<?php // $Id$
// just a link to course report
$ADMIN->add('reports', new admin_externalpage('reportlog', get_string('log', 'admin'), "$CFG->wwwroot/course/report/log/index.php?id=".SITEID, 'coursereport/log:view'));
$ADMIN->add('reports', new admin_externalpage('reportloglive', get_string('loglive', 'coursereport_log'), "$CFG->wwwroot/course/report/log/indexlive.php?id=".SITEID, 'coursereport/log:viewlive'));
?>
+1 -1
View File
@@ -5,8 +5,8 @@
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('reportquestion');
admin_externalpage_print_header();
print_heading(get_string('adminreport', 'question'));
$probstr = '';
+3
View File
@@ -0,0 +1,3 @@
<?php // $Id$
$ADMIN->add('reports', new admin_externalpage('reportquestion', get_string('question', 'admin'), "$CFG->wwwroot/$CFG->admin/report/question/index.php", 'moodle/site:config'));
?>
+36
View File
@@ -0,0 +1,36 @@
<?php // $Id$
///////////////////////////////////////////////////////////////////////////
// //
// NOTICE OF COPYRIGHT //
// //
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
// http://moodle.com //
// //
// Copyright (C) 1999 onwards Martin Dougiamas http://moodle.com //
// //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details: //
// //
// http://www.gnu.org/copyleft/gpl.html //
// //
///////////////////////////////////////////////////////////////////////////
$report_security_capabilities = array(
'report/security:view' => array(
'riskbitmask' => RISK_CONFIG,
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'legacy' => array(
'admin' => CAP_ALLOW
),
)
);
+127
View File
@@ -0,0 +1,127 @@
<?php //$Id$
///////////////////////////////////////////////////////////////////////////
// //
// NOTICE OF COPYRIGHT //
// //
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
// http://moodle.org //
// //
// Copyright (C) 1999 onwards Martin Dougiamas http://dougiamas.com //
// //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details: //
// //
// http://www.gnu.org/copyleft/gpl.html //
// //
///////////////////////////////////////////////////////////////////////////
require_once('../../../config.php');
require_once($CFG->dirroot.'/'.$CFG->admin.'/report/security/lib.php');
require_once($CFG->libdir.'/adminlib.php');
require_login();
$issue = optional_param('issue', '', PARAM_FILE); // show detailed info about one issue only
$issues = report_security_get_issue_list();
// test if issue valid string
if (array_search($issue, $issues, true) === false) {
$issue = '';
}
// we may need a bit more memory and this may take a long time to process
@raise_memory_limit('128M');
@set_time_limit(0);
// Print the header.
admin_externalpage_setup('reportsecurity');
admin_externalpage_print_header();
print_heading(get_string('reportsecurity', 'report_security'));
echo '<div id="timewarning">'.get_string('timewarning', 'report_security').'</div>';
while(@ob_end_flush());
@flush();
$strok = '<span class="statusok">'.get_string('statusok', 'report_security').'</span>';
$strinfo = '<span class="statusinfo">'.get_string('statusinfo', 'report_security').'</span>';
$strwarning = '<span class="statuswarning">'.get_string('statuswarning', 'report_security').'</span>';
$strserious = '<span class="statusserious">'.get_string('statusserious', 'report_security').'</span>';
$strcritical = '<span class="statuscritical">'.get_string('statuscritical', 'report_security').'</span>';
$strissue = get_string('issue', 'report_security');
$strstatus = get_string('status', 'report_security');
$strdesc = get_string('description', 'report_security');
$strconfig = get_string('configuration', 'report_security');
$statusarr = array(REPORT_SECURITY_OK => $strok,
REPORT_SECURITY_INFO => $strinfo,
REPORT_SECURITY_WARNING => $strwarning,
REPORT_SECURITY_SERIOUS => $strserious,
REPORT_SECURITY_CRITICAL => $strcritical);
$url = "$CFG->wwwroot/$CFG->admin/report/security/index.php";
if ($issue and ($result = $issue(true))) {
report_security_hide_timearning();
$table = new object();
$table->head = array($strissue, $strstatus, $strdesc, $strconfig);
$table->size = array('30%', '10%', '50%', '10%' );
$table->align = array('left', 'left', 'left', 'left');
$table->width = '90%';
$table->data = array();
// print detail of one issue only
$row = array();
$row[0] = report_security_doc_link($issue, $result->name);
$row[1] = $statusarr[$result->status];
$row[2] = $result->info;
$row[3] = is_null($result->link) ? '&nbsp;' : $result->link;
$CFG->pagepath = "report/security/$issue"; // help link in footer
$table->data[] = $row;
print_table($table);
print_box($result->details, 'generalbox boxwidthnormal boxaligncenter'); // TODO: add proper css
print_continue($url);
} else {
report_security_hide_timearning();
$table = new object();
$table->head = array($strissue, $strstatus, $strdesc);
$table->size = array('30%', '10%', '60%' );
$table->align = array('left', 'left', 'left');
$table->width = '90%';
$table->data = array();
foreach ($issues as $issue) {
$result = $issue(false);
if (!$result) {
// ignore this test
continue;
}
$row = array();
$row[0] = "<a href='$url?issue=$result->issue'>$result->name</a>";
$row[1] = $statusarr[$result->status];
$row[2] = $result->info;
$table->data[] = $row;
}
print_table($table);
}
print_footer();
File diff suppressed because it is too large Load Diff
+3
View File
@@ -0,0 +1,3 @@
<?php //$Id$
$ADMIN->add('reports', new admin_externalpage('reportsecurity', get_string('reportsecurity', 'report_security'), "$CFG->wwwroot/$CFG->admin/report/security/index.php",'report/security:view'));
+29
View File
@@ -0,0 +1,29 @@
<?PHP // $Id$
///////////////////////////////////////////////////////////////////////////
// //
// NOTICE OF COPYRIGHT //
// //
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
// http://moodle.com //
// //
// Copyright (C) 1999 onwards Martin Dougiamas http://moodle.com //
// //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details: //
// //
// http://www.gnu.org/copyleft/gpl.html //
// //
///////////////////////////////////////////////////////////////////////////
$plugin->version = 2007101500;
$plugin->requires = 2007101533;
?>
+373
View File
@@ -0,0 +1,373 @@
<?php
/**
* Spam Cleaner
*
* Helps an admin to clean up spam in Moodle
*
* @version $Id$
* @authors Dongsheng Cai, Martin Dougiamas, Amr Hourani
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
*/
// Configuration
// List of known spammy keywords, please add more here
$autokeywords = array(
"<img",
"fuck",
"casino",
"porn",
"xxx",
"cialis",
"viagra",
"poker",
"warcraft"
);
/////////////////////////////////////////////////////////////////////////////////
require_once('../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_js(array('yui_dom-event', 'yui_connection', 'yui_json'));
$keyword = optional_param('keyword', '', PARAM_RAW);
$autodetect = optional_param('autodetect', '', PARAM_RAW);
$del = optional_param('del', '', PARAM_RAW);
$delall = optional_param('delall', '', PARAM_RAW);
$ignore = optional_param('ignore', '', PARAM_RAW);
$reset = optional_param('reset', '', PARAM_RAW);
$id = optional_param('id', '', PARAM_INT);
require_login();
admin_externalpage_setup('reportspamcleaner');
// Implement some AJAX calls
// Delete one user
if (!empty($del) && confirm_sesskey() && ($id != $USER->id)) {
if (isset($SESSION->users_result[$id])) {
$user = $SESSION->users_result[$id];
if (delete_user($user)) {
unset($SESSION->users_result[$id]);
echo json_encode(true);
} else {
echo json_encode(false);
}
} else {
echo json_encode(false);
}
exit;
}
// Delete lots of users
if (!empty($delall) && confirm_sesskey()) {
if (!empty($SESSION->users_result)) {
foreach ($SESSION->users_result as $userid => $user) {
if ($userid != $USER->id) {
if (delete_user($user)) {
unset($SESSION->users_result[$userid]);
}
}
}
}
echo json_encode(true);
exit;
}
if (!empty($ignore)) {
unset($SESSION->users_result[$id]);
echo json_encode(true);
exit;
}
admin_externalpage_print_header();
// Print headers and things
print_spamcleaner_javascript();
print_box(get_string('spamcleanerintro', 'report_spamcleaner'));
print_box_start(); // The forms section at the top
?>
<div class="mdl-align">
<form method="post" action="index.php">
<div>
<input type="text" name="keyword" id="keyword_el" value="<?php p($keyword) ?>" />
<input type="hidden" name="sesskey" value="<?php echo sesskey();?>" />
<input type="submit" value="<?php echo get_string('spamsearch', 'report_spamcleaner')?>" />
</div>
</form>
<p><?php echo get_string('spameg', 'report_spamcleaner');?></p>
<hr />
<form method="post" action="index.php">
<div>
<input type="submit" name="autodetect" value="<?php echo get_string('spamauto', 'report_spamcleaner');?>" />
</div>
</form>
</div>
<?php
print_box_end();
echo '<div id="result" class="mdl-align">';
// Print list of resulting profiles
if (!empty($keyword)) { // Use the keyword(s) supplied by the user
$keywords = explode(',', $keyword);
foreach ($keywords as $key => $keyword) {
$keywords[$key] = trim($keyword);
}
search_spammers($keywords);
} else if (!empty($autodetect)) { // Use the inbuilt keyword list to detect users
search_spammers($autokeywords);
}
echo '</div>';
/////////////////////////////////////////////////////////////////////////////////
/// Functions
function search_spammers($keywords) {
global $CFG, $USER, $DB;
if (!is_array($keywords)) {
$keywords = array($keywords); // Make it into an array
}
$like = sql_ilike();
$keywordfull = array();
foreach ($keywords as $keyword) {
$keyword = addslashes($keyword); // Just to be safe
$keywordfull[] = " description $like '%$keyword%' ";
$keywordfull2[] = " p.summary $like '%$keyword%' ";
}
$conditions = '( '.implode(' OR ', $keywordfull).' )';
$conditions2 = '( '.implode(' OR ', $keywordfull2).' )';
$sql = "SELECT * FROM {$CFG->prefix}user WHERE deleted = 0 AND id <> {$USER->id} AND $conditions"; // Exclude oneself
$sql2= "SELECT u.*, p.summary FROM {$CFG->prefix}user AS u, {$CFG->prefix}post AS p WHERE $conditions2 AND u.deleted = 0 AND u.id=p.userid AND u.id <> {$USER->id}";
$spamusers_desc = get_recordset_sql($sql);
$spamusers_blog = get_recordset_sql($sql2);
$keywordlist = implode(', ', $keywords);
print_box(get_string('spamresult', 'report_spamcleaner').s($keywordlist)).' ...';
print_user_list(array($spamusers_desc, $spamusers_blog), $keywords);
}
function print_user_list($users_rs, $keywords) {
global $CFG, $SESSION;
// reset session everytime this function is called
$SESSION->users_result = array();
$count = 0;
foreach ($users_rs as $rs) {
while ($user = rs_fetch_next_record($rs)) {
if (!$count) {
echo '<table border="1" width="100%" id="data-grid"><tr><th>&nbsp;</th><th>'.get_string('user','admin').'</th><th>'.get_string('spamdesc', 'report_spamcleaner').'</th><th>'.get_string('spamoperation', 'report_spamcleaner').'</th></tr>';
}
$count++;
filter_user($user, $keywords, $count);
}
}
if (!$count) {
echo get_string('spamcannotfinduser', 'report_spamcleaner');
} else {
echo '</table>';
echo '<div class="mld-align">
<button id="removeall_btn">'.get_string('spamdeleteall', 'report_spamcleaner').'</button>
</div>';
}
}
function filter_user($user, $keywords, $count) {
global $CFG;
$image_search = false;
if (in_array('<img', $keywords)) {
$image_search = true;
}
if (isset($user->summary)) {
$user->description = '<h3>'.get_string('spamfromblog', 'report_spamcleaner').'</h3>'.$user->summary;
unset($user->summary);
}
if (preg_match('#<img.*src=[\"\']('.$CFG->pixpath.')#', $user->description, $matches)
&& $image_search) {
$result = false;
foreach ($keywords as $keyword) {
if (preg_match('#'.$keyword.'#', $user->description)
&& ($keyword != '<img')) {
$result = true;
}
}
if ($result) {
echo print_user_entry($user, $keywords, $count);
} else {
unset($user);
}
} else {
echo print_user_entry($user, $keywords, $count);
}
}
function print_user_entry($user, $keywords, $count) {
global $SESSION, $CFG;
$smalluserobject = new object; // All we need to delete them later
$smalluserobject->id = $user->id;
$smalluserobject->email = $user->email;
$smalluserobject->auth = $user->auth;
$smalluserobject->firstname = $user->firstname;
$smalluserobject->lastname = $user->lastname;
if (empty($SESSION->users_result[$user->id])) {
$SESSION->users_result[$user->id] = $smalluserobject;
$html = '<tr valign="top" id="row-'.$user->id.'" class="result-row">';
$html .= '<td width="10">'.$count.'</td>';
$html .= '<td width="30%" align="left"><a href="'.$CFG->wwwroot."/user/view.php?course=1&amp;id=".$user->id.'" title="'.s($user->username).'">'.fullname($user).'</a>';
$html .= "<ul>";
$profile_set = array('city'=>true, 'country'=>true, 'email'=>true);
foreach ($profile_set as $key=>$value) {
if (isset($user->$key)){
$html .= '<li>'.$user->$key.'</li>';
}
}
$html .= "</ul>";
$html .= '</td>';
foreach ($keywords as $keyword) {
$user->description = highlight($keyword, $user->description);
}
$html .= '<td align="left">'.format_text($user->description, FORMAT_MOODLE).'</td>';
$html .= '<td width="100px" align="center">';
$html .= '<button onclick="del_user(this,'.$user->id.')">'.get_string('deleteuser', 'admin').'</button><br />';
$html .= '<button onclick="ignore_user(this,'.$user->id.')">'.get_string('ignore', 'admin').'</button>';
$html .= '</td>';
$html .= '</tr>';
return $html;
} else {
return null;
}
}
function print_spamcleaner_javascript() {
$sesskey = sesskey();
?>
<script type="text/javascript">
//<![CDATA[
var row = null;
var delall_cb = {
success: function(o){
try {
var resp = YAHOO.lang.JSON.parse(o.responseText);
} catch(e) {
alert('<?php echo get_string('spaminvalidresult', 'report_spamcleaner');?>');
return;
}
if(resp == true){
window.location.href=window.location.href;
}
}
}
function init() {
YAHOO.util.Event.addListener("removeall_btn", "click", function(){
var yes = confirm('<?php echo get_string('spamdeleteallconfirm', 'report_spamcleaner');?>');
if(yes){
var cObj = YAHOO.util.Connect.asyncRequest('POST', '<?php echo me();?>?delall=yes&sesskey=<?php echo $sesskey;?>', delall_cb);
}
});
}
var del_cb = {
success: function(o) {
try {
var resp = YAHOO.lang.JSON.parse(o.responseText);
} catch(e) {
alert('<?php echo get_string('spaminvalidresult', 'report_spamcleaner');?>');
return;
}
if(row) {
if(resp == true){
while(row.tagName != 'TR') {
row = row.parentNode;
}
row.parentNode.removeChild(row);
row = null;
} else {
alert('<?php echo get_string('spamcannotdelete', 'report_spamcleaner');?>');
}
}
}
}
var ignore_cb = {
success: function(o){
try {
var resp = YAHOO.lang.JSON.parse(o.responseText);
} catch(e) {
alert('<?php echo get_string('spaminvalidresult', 'report_spamcleaner');?>');
return;
}
if(row) {
if(resp == true){
while(row.tagName != 'TR') {
row = row.parentNode;
}
row.parentNode.removeChild(row);
row = null;
}
}
}
}
function del_user(obj, id) {
var yes = confirm('<?php echo get_string('spamdeleteconfirm', 'report_spamcleaner');?>');
if(yes){
row = obj;
var cObj = YAHOO.util.Connect.asyncRequest('POST', '<?php echo me();?>?del=yes&sesskey=<?php echo $sesskey;?>&id='+id, del_cb);
}
}
function ignore_user(obj, id) {
row = obj;
var cObj = YAHOO.util.Connect.asyncRequest('POST', '<?php echo me();?>?ignore=yes&sesskey=<?php echo $sesskey;?>&id='+id, ignore_cb);
}
YAHOO.util.Event.onDOMReady(init);
//]]>
</script>
<?php
}
admin_externalpage_print_footer();
?>
+5
View File
@@ -0,0 +1,5 @@
<?php
// spam cleaner
$ADMIN->add('reports', new admin_externalpage('reportspamcleaner', get_string('spamcleaner','report_spamcleaner'), "$CFG->wwwroot/$CFG->admin/report/spamcleaner/index.php", 'moodle/site:config'));
-75
View File
@@ -1,75 +0,0 @@
<?php // $Id$
require_once('../../../config.php');
require_once($CFG->dirroot.'/lib/statslib.php');
require_once($CFG->dirroot.'/course/report/stats/lib.php');
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('reportstats');
admin_externalpage_print_header();
$courseid = optional_param('course', SITEID, PARAM_INT);
$report = optional_param('report', 0, PARAM_INT);
$time = optional_param('time', 0, PARAM_INT);
$mode = optional_param('mode', STATS_MODE_GENERAL, PARAM_INT);
$userid = optional_param('userid', 0, PARAM_INT);
$roleid = 0;
if ($report > 50) {
$roleid = substr($report,1);
$report = 5;
}
if ($report == STATS_REPORT_USER_LOGINS) {
$courseid = SITEID; //override
}
if ($mode == STATS_MODE_RANKED) {
redirect($CFG->wwwroot.'/'.$CFG->admin.'/report/stats/index.php?time='.$time, '', 3);
}
if (!$course = get_record("course","id",$courseid)) {
error("That's an invalid course id");
}
if (!empty($userid)) {
if (!$user = get_record('user','id',$userid)) {
error("That's an invalid user id");
}
}
require_login();
if (empty($CFG->enablestats)) {
redirect("$CFG->wwwroot/$CFG->admin/settings.php?section=stats", get_string('mustenablestats', 'admin'), 3);
}
require_capability('moodle/site:viewreports', get_context_instance(CONTEXT_SYSTEM));
add_to_log($course->id, "course", "report stats", "report/stats/index.php?course=$course->id", $course->id);
stats_check_uptodate($course->id);
// $strreports = get_string("reports");
// $strstats = get_string('stats');
//
// $menu = report_stats_mode_menu($course, $mode, $time); // add 4th $url parameter if uncommented!
//
//
// $crumb = "<a href=\"{$CFG->wwwroot}/admin\">".get_string('administration')."</a> ->
// <a href=\"{$CFG->wwwroot}/admin/report.php\">$strreports</a> ->
// $strstats";
// print_header("$course->shortname: $strstats", "$course->fullname",
// $crumb, '', '', true, '&nbsp;', $menu);
require_once($CFG->dirroot.'/course/report/stats/report.php');
admin_externalpage_print_footer();
?>
+4
View File
@@ -0,0 +1,4 @@
<?php // $Id$
// just a link to course report
$ADMIN->add('reports', new admin_externalpage('reportstats', get_string('stats', 'admin'), "$CFG->wwwroot/course/report/stats/index.php", 'coursereport/stats:view'));
?>
+40
View File
@@ -0,0 +1,40 @@
<?php // $Id$
///////////////////////////////////////////////////////////////////////////
// //
// NOTICE OF COPYRIGHT //
// //
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
// http://moodle.com //
// //
// Copyright (C) 1999 onwards Martin Dougiamas http://moodle.com //
// //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details: //
// //
// http://www.gnu.org/copyleft/gpl.html //
// //
///////////////////////////////////////////////////////////////////////////
$report_unittest_capabilities = array(
'report/unittest:view' => array(
'riskbitmask' => RISK_DATALOSS,
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'legacy' => array(
'admin' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/site:config',
)
);
?>
@@ -16,14 +16,6 @@ require_once($CFG->libdir.'/simpletestlib.php');
require_once('ex_simple_test.php');
require_once('ex_reporter.php');
require_login();
require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
/* The UNITTEST constant can be checked elsewhere if you need to know
* when your code is being run as part of a unit test. */
define('UNITTEST', true);
$langfile = 'simpletest';
// CGI arguments
$path = optional_param('path', null, PARAM_PATH);
$showpasses = optional_param('showpasses', false, PARAM_BOOL);
@@ -31,10 +23,17 @@ $showsearch = optional_param('showsearch', false, PARAM_BOOL);
$thorough = optional_param('thorough', false, PARAM_BOOL);
// Print the header.
admin_externalpage_setup('reportsimpletest');
$strtitle = get_string('unittests', $langfile);
admin_externalpage_setup('reportunittest', '', array('showpasses' => $showpasses,
'showsearch' => $showsearch, 'thorough' => $thorough));
admin_externalpage_print_header();
/* The UNITTEST constant can be checked elsewhere if you need to know
* when your code is being run as part of a unit test. */
define('UNITTEST', true);
$langfile = 'simpletest';
$strtitle = get_string('unittests', $langfile);
if (!is_null($path)) {
// Create the group of tests.
$test =& new AutoGroupTest($showsearch, $thorough);
+3
View File
@@ -0,0 +1,3 @@
<?php //$Id$
$ADMIN->add('reports', new admin_externalpage('reportunittest', get_string('simpletest', 'admin'), "$CFG->wwwroot/$CFG->admin/report/unittest/index.php", 'report/unittest:view'));
?>
+29
View File
@@ -0,0 +1,29 @@
<?PHP // $Id$
///////////////////////////////////////////////////////////////////////////
// //
// NOTICE OF COPYRIGHT //
// //
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
// http://moodle.com //
// //
// Copyright (C) 1999 onwards Martin Dougiamas http://moodle.com //
// //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details: //
// //
// http://www.gnu.org/copyleft/gpl.html //
// //
///////////////////////////////////////////////////////////////////////////
$plugin->version = 2007101501;
$plugin->requires = 2007101532;
?>
+1 -2
View File
@@ -10,8 +10,7 @@
require_once('../../config.php');
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('defineroles');
admin_externalpage_setup('defineroles', '', array(), $CFG->wwwroot . '/' . $CFG->admin . '/roles/allowassign.php');
$sitecontext = get_context_instance(CONTEXT_SYSTEM);
require_capability('moodle/role:manage', $sitecontext);
+2 -3
View File
@@ -8,8 +8,7 @@
require_once('../../config.php');
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('defineroles');
admin_externalpage_setup('defineroles', '', array(), $CFG->wwwroot . '/' . $CFG->admin . '/roles/allowoverride.php');
$sitecontext = get_context_instance(CONTEXT_SYSTEM);
require_capability('moodle/role:manage', $sitecontext);
@@ -74,7 +73,7 @@
$table->data[] = array_merge(array(format_string($role->name)), $beta);
}
print_simple_box(get_string('configallowoverride', 'admin'), 'center');
print_simple_box(get_string('configallowoverride2', 'admin'), 'center');
echo '<form action="allowoverride.php" method="post">';
print_table($table);
+2 -3
View File
@@ -46,9 +46,8 @@
</label>
<?php check_theme_arrows(); ?>
<p class="arrow_button">
<input name="add" id="add" type="submit" value="<?php echo '&nbsp;'.$THEME->larrow.' &nbsp; &nbsp; '.get_string('add'); ?>" title="<?php print_string('add'); ?>" />
<br />
<input name="remove" id="remove" type="submit" value="<?php echo '&nbsp; '.$THEME->rarrow.' &nbsp; &nbsp; '.get_string('remove'); ?>" title="<?php print_string('remove'); ?>" />
<input name="add" id="add" type="submit" value="<?php echo $THEME->larrow.'&nbsp;'.get_string('add'); ?>" title="<?php print_string('add'); ?>" /><br />
<input name="remove" id="remove" type="submit" value="<?php echo get_string('remove').'&nbsp;'.$THEME->rarrow; ?>" title="<?php print_string('remove'); ?>" />
</p>
</td>
<td valign="top">
+21 -11
View File
@@ -65,7 +65,6 @@
$overridableroles = get_overridable_roles($context, 'name', ROLENAME_BOTH);
$assignableroles = get_assignable_roles($context, 'name', ROLENAME_BOTH);
/// Get some language strings
$strpotentialusers = get_string('potentialusers', 'role');
@@ -107,7 +106,7 @@
/// Make sure this user can assign that role
if ($roleid) {
if (!user_can_assign($context, $roleid)) {
if (!isset($assignableroles[$roleid])) {
error ('you can not override this role in this context');
}
}
@@ -145,11 +144,11 @@
$currenttab = 'assign';
include_once($CFG->dirroot.'/user/tabs.php');
} else if ($context->contextlevel == CONTEXT_SYSTEM) {
admin_externalpage_setup('assignroles');
admin_externalpage_print_header();
admin_externalpage_setup('assignroles', '', array('contextid' => $contextid, 'roleid' => $roleid));
admin_externalpage_print_header('');
} else if ($context->contextlevel==CONTEXT_COURSE and $context->instanceid == SITEID) {
admin_externalpage_setup('frontpageroles');
admin_externalpage_print_header();
admin_externalpage_setup('frontpageroles', '', array('contextid' => $contextid, 'roleid' => $roleid));
admin_externalpage_print_header('');
$currenttab = 'assign';
include_once('tabs.php');
} else {
@@ -291,7 +290,7 @@
$selectsql = "";
}
if ($context->contextlevel > CONTEXT_COURSE) { // mod or block (or group?)
if ($context->contextlevel > CONTEXT_COURSE && !is_inside_frontpage($context)) { // mod or block (or group?)
/************************************************************************
* *
@@ -396,6 +395,12 @@
notify($msg);
print_simple_box_end();
}
//Back to Assign Roles button
echo "<br/>";
echo "<div class='continuebutton'>";
print_single_button('assign.php', array('contextid' => $contextid), get_string('assignrolesin', 'role', print_context_name($context)));
echo "</div>";
} else { // Print overview table
@@ -430,7 +435,8 @@
$rolehodlernames[$roleid] = '';
}
}
// Print overview table
$table->tablealign = 'center';
$table->cellpadding = 5;
@@ -453,10 +459,14 @@
}
$table->data[] = $row;
}
print_table($table);
//Continue to Course Button
echo "<br/>";
echo "<div class='continuebutton'>";
print_single_button($CFG->wwwroot.'/course/view.php', array('id' => $courseid), get_string('continuetocourse'));
echo "</div>";
}
print_footer($course);
?>
+3 -3
View File
@@ -24,7 +24,7 @@
<?php if ($action == 'view') { ?>
<tr valign="top">
<td align="right"><?php print_string('name') ?>:</td>
<td><?php p($role->name); ?></td>
<td><?php p(format_string($role->name)); ?></td>
</tr>
<tr valign="top">
<td align="right"><?php print_string('shortname') ?>:</td>
@@ -32,11 +32,11 @@
</tr>
<tr valign="top">
<td align="right"><?php print_string('description') ?>:</td>
<td><?php p($role->description); $usehtmleditor = false; ?></td>
<td><?php p(format_text($role->description, FORMAT_HTML)); $usehtmleditor = false; ?></td>
</tr>
<tr valign="top">
<td align="right"><?php print_string('legacytype', 'role') ?>:</td>
<td><?php
<td><?php
$usehtmleditor = false;
if (empty($role->legacytype)) {
print_string('none');
+3 -3
View File
@@ -4,8 +4,6 @@
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('defineroles');
$roleid = optional_param('roleid', 0, PARAM_INT); // if set, we are editing a role
$name = optional_param('name', '', PARAM_MULTILANG); // new role name
$shortname = optional_param('shortname', '', PARAM_RAW); // new role shortname, special cleaning before storage
@@ -14,6 +12,8 @@
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$cancel = optional_param('cancel', 0, PARAM_BOOL);
admin_externalpage_setup('defineroles', '', array('roleid' => $roleid));
$sitecontext = get_context_instance(CONTEXT_SYSTEM);
require_capability('moodle/role:manage', $sitecontext);
@@ -414,7 +414,7 @@
/// print UI now
admin_externalpage_print_header();
admin_externalpage_print_header('');
$currenttab = 'manage';
include_once('managetabs.php');
+10 -2
View File
@@ -3,6 +3,7 @@
$strallow = get_string('allow','role');
$strprevent = get_string('prevent','role');
$strprohibit = get_string('prohibit','role');
$strsafewarning = get_string('safeoverridenotice', 'role');
?>
<form id="overrideform" action="override.php" method="post">
@@ -67,7 +68,7 @@
$isprohibit = 0;
}
$isdisabled = $isprohibit;
$isdisabled = $isprohibit || $capability->locked;
$riskinfo = '<td class="risk managetrust">';
$rowclasses = '';
@@ -138,10 +139,17 @@
<?php echo $riskinfo; ?>
</tr>
<?php } ?>
<?php } ?>
</table>
<div class="submit buttons">
<input type="submit" value="<?php print_string('savechanges') ?>" />
<input type="submit" name="cancel" value="<?php print_string('cancel') ?>" />
</div>
<?php
if ($safeoverridenotice) {
echo '<div class="sefeoverridenotice">'.$strsafewarning.'</div>';
}
?>
</form>
+34 -5
View File
@@ -20,7 +20,9 @@
error('Can not override base role capabilities');
}
if (!has_capability('moodle/role:override', $context)) {
$canoverride = has_capability('moodle/role:override', $context);
if (!$canoverride and !has_capability('moodle/role:safeoverride', $context)) {
error('You do not have permission to change overrides in this context!');
}
@@ -61,7 +63,7 @@
/// Make sure this user can override that role
if ($roleid) {
if (!user_can_override($context, $roleid)) {
if (!isset($overridableroles[$roleid])) {
error ('you can not override this role in this context');
}
}
@@ -72,7 +74,30 @@
}
/// get all cababilities
$capabilities = fetch_context_capabilities($context);
$safeoverridenotice = false;
if ($roleid) {
if ($capabilities = fetch_context_capabilities($context)) {
// find out if we need to lock some capabilities
foreach ($capabilities as $capname=>$capability) {
$capabilities[$capname]->locked = false;
if ($canoverride) {
//ok no locking at all
continue;
}
//only limited safe overrides - spam only allowed
if ((RISK_DATALOSS & (int)$capability->riskbitmask)
or (RISK_MANAGETRUST & (int)$capability->riskbitmask)
or (RISK_CONFIG & (int)$capability->riskbitmask)
or (RISK_XSS & (int)$capability->riskbitmask)
or (RISK_PERSONAL & (int)$capability->riskbitmask)) {
$capabilities[$capname]->locked = true;
$safeoverridenotice = true;
}
}
}
} else {
$capabilities = null;
}
/// Process incoming role override
if ($data = data_submitted() and $roleid and confirm_sesskey()) {
@@ -82,6 +107,10 @@
'', 'capability, permission, id');
foreach ($capabilities as $cap) {
if ($cap->locked) {
//user not allowed to change this cap
continue;
}
if (!isset($data->{$cap->name})) {
//cap not specified in form
@@ -142,7 +171,7 @@
include_once($CFG->dirroot.'/user/tabs.php');
} else if ($context->contextlevel==CONTEXT_COURSE and $context->instanceid == SITEID) {
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('frontpageroles');
admin_externalpage_setup('frontpageroles', '', array('contextid' => $contextid, 'roleid' => $roleid), $CFG->wwwroot . '/' . $CFG->admin . '/roles/override.php');
admin_externalpage_print_header();
$currenttab = 'override';
include_once('tabs.php');
@@ -179,7 +208,7 @@
if (!empty($capabilities)) {
// Print the capabilities overrideable in this context
print_simple_box_start('center');
include_once('override.html');
include('override.html');
print_simple_box_end();
} else {
+1 -4
View File
@@ -48,16 +48,13 @@ if ($currenttab != 'update') {
require_login($course);
$navlinks[] = array('name' => get_string('roles'),
'link' => "$CFG->wwwroot/admin/roles/assign.php?contextid=$context->id",
'link' => "$CFG->wwwroot/$CFG->admin/roles/assign.php?contextid=$context->id",
'type' => 'misc');
$navigation = build_navigation($navlinks);
print_header($streditcoursesettings, $course->fullname, $navigation);
}
break;
case CONTEXT_GROUP:
break;
case CONTEXT_MODULE:
// get module type?
if (!$cm = get_record('course_modules','id',$context->instanceid)) {
+8
View File
@@ -44,6 +44,8 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$temp->add(new admin_setting_special_calendar_weekend());
$temp->add(new admin_setting_configtext('calendar_lookahead',get_string('configlookahead','admin'),get_string('helpupcominglookahead', 'admin'),21,PARAM_INT));
$temp->add(new admin_setting_configtext('calendar_maxevents',get_string('configmaxevents','admin'),get_string('helpupcomingmaxevents', 'admin'),10,PARAM_INT));
$temp->add(new admin_setting_configcheckbox('enablecalendarexport', get_string('enablecalendarexport', 'admin'), get_string('configenablecalendarexport','admin'), 1));
$temp->add(new admin_setting_configtext('calendar_exportsalt', get_string('calendarexportsalt','admin'), get_string('configcalendarexportsalt', 'admin'), random_string(60)));
$ADMIN->add('appearance', $temp);
// "htmleditor" settingpage
@@ -62,6 +64,11 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$temp->add(new admin_setting_emoticons());
$ADMIN->add('appearance', $temp);
// "htmlsettings" settingpage
$temp = new admin_settingpage('htmlsettings', get_string('htmlsettings', 'admin'));
$temp->add(new admin_setting_configcheckbox('formatstringstriptags', get_string('stripalltitletags', 'admin'), get_string('configstripalltitletags', 'admin'), 1));
$ADMIN->add('appearance', $temp);
// "documentation" settingpage
$temp = new admin_settingpage('documentation', get_string('moodledocs'));
$temp->add(new admin_setting_configtext('docroot', get_string('docroot', 'admin'), get_string('configdocroot', 'admin'), 'http://docs.moodle.org', PARAM_URL));
@@ -70,6 +77,7 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$temp = new admin_settingpage('mymoodle', get_string('mymoodle', 'admin'));
$temp->add(new admin_setting_configcheckbox('mymoodleredirect', get_string('mymoodleredirect', 'admin'), get_string('configmymoodleredirect', 'admin'), 0));
$temp->add(new admin_setting_configtext('mycoursesperpage', get_string('mycoursesperpage', 'admin'), get_string('configmycoursesperpage', 'admin'), 21, PARAM_INT));
$ADMIN->add('appearance', $temp);
// new CFG variable for coursemanager (what roles to display)
+49 -3
View File
@@ -4,19 +4,64 @@
if ($hassiteconfig
or has_capability('moodle/site:backup', $systemcontext)
or has_capability('moodle/category:update', $systemcontext)) { // speedup for non-admins, add all caps used on this page
or has_capability('moodle/category:manage', $systemcontext)
or has_capability('moodle/course:create', $systemcontext)
or has_capability('moodle/site:approvecourse', $systemcontext)) { // speedup for non-admins, add all caps used on this page
$ADMIN->add('courses', new admin_externalpage('coursemgmt', get_string('coursemgmt', 'admin'), $CFG->wwwroot . '/course/index.php?categoryedit=on',
array('moodle/category:manage', 'moodle/course:create')));
$ADMIN->add('courses', new admin_externalpage('coursemgmt', get_string('coursemgmt', 'admin'), $CFG->wwwroot . '/course/index.php?categoryedit=on','moodle/category:update'));
$ADMIN->add('courses', new admin_enrolment_page());
$ADMIN->add('courses', new admin_externalpage('enrolment', get_string('enrolments'), $CFG->wwwroot . '/'.$CFG->admin.'/enrol.php'));
/// Course Default Settings Page
/// NOTE: these settings must be applied after all other settings because they depend on them
/// NOTE: these are a subset of the complete defaults available in 2.0
///general course settings
$temp = new admin_settingpage('coursesettings', get_string('coursesettings'));
$courseformats = get_list_of_plugins('course/format');
$formcourseformats = array();
foreach ($courseformats as $courseformat) {
$formcourseformats["$courseformat"] = get_string("format$courseformat","format_$courseformat");
if ($formcourseformats["$courseformat"]=="[[format$courseformat]]") {
$formcourseformats["$courseformat"] = get_string("format$courseformat");
}
}
$temp->add(new admin_setting_configselect('moodlecourse/format', get_string('format'), get_string('coursehelpformat'), 'weeks',$formcourseformats));
for ($i=1; $i<=52; $i++) {
$sectionmenu[$i] = "$i";
}
$temp->add(new admin_setting_configselect('moodlecourse/numsections', get_string('numberweeks'), get_string('coursehelpnumberweeks'), 10, $sectionmenu));
$choices = array();
$choices['0'] = get_string('hiddensectionscollapsed');
$choices['1'] = get_string('hiddensectionsinvisible');
$temp->add(new admin_setting_configselect('moodlecourse/hiddensections', get_string('hiddensections'), get_string('coursehelphiddensections'), 0,$choices));
$options = range(0, 10);
$temp->add(new admin_setting_configselect('moodlecourse/newsitems', get_string('newsitemsnumber'), get_string('coursehelpnewsitemsnumber'), 5,$options));
$temp->add(new admin_setting_configselect('moodlecourse/showgrades', get_string('showgrades'), get_string('coursehelpshowgrades'), 1,array(0 => get_string('no'), 1 => get_string('yes'))));
$temp->add(new admin_setting_configselect('moodlecourse/showreports', get_string('showreports'), '', 0,array(0 => get_string('no'), 1 => get_string('yes'))));
if (isset($CFG->maxbytes)) {
$choices = get_max_upload_sizes($CFG->maxbytes);
} else {
$choices = get_max_upload_sizes();
}
$temp->add(new admin_setting_configselect('moodlecourse/maxbytes', get_string('maximumupload'), get_string('coursehelpmaximumupload'), key($choices), $choices));
$temp->add(new admin_setting_configselect('moodlecourse/metacourse', get_string('metacourse'), get_string('coursehelpmetacourse'), 0,array(0 => get_string('no'), 1 => get_string('yes'))));
$ADMIN->add('courses', $temp);
// "courserequests" settingpage
$temp = new admin_settingpage('courserequest', get_string('courserequest'));
$temp->add(new admin_setting_configcheckbox('enablecourserequests', get_string('enablecourserequests', 'admin'), get_string('configenablecourserequests', 'admin'), 0));
$temp->add(new admin_settings_coursecat_select('defaultrequestcategory', get_string('defaultrequestcategory', 'admin'), get_string('configdefaultrequestcategory', 'admin'), 1));
$temp->add(new admin_setting_users_with_capability('courserequestnotify', get_string('courserequestnotify', 'admin'), get_string('configcourserequestnotify2', 'admin'), array(), 'moodle/site:approvecourse'));
$ADMIN->add('courses', $temp);
// Pending course requests.
if (!empty($CFG->enablecourserequests)) {
$ADMIN->add('courses', new admin_externalpage('coursespending', get_string('pendingrequests'),
$CFG->wwwroot . '/course/pending.php', array('moodle/site:approvecourse')));
}
// "backups" settingpage
if (!empty($CFG->backup_version)) {
$bi = array();
@@ -29,6 +74,7 @@ if ($hassiteconfig
$bi[] = new admin_setting_configcheckbox('backup_sche_userfiles', get_string('userfiles'), get_string('backupuserfileshelp'), 0);
$bi[] = new admin_setting_configcheckbox('backup_sche_coursefiles', get_string('coursefiles'), get_string('backupcoursefileshelp'), 0);
$bi[] = new admin_setting_configcheckbox('backup_sche_sitefiles', get_string('sitefiles'), get_string('backupsitefileshelp'), 0);
$bi[] = new admin_setting_configcheckbox('backup_sche_gradebook_history', get_string('gradebookhistories', 'grades'), get_string('backupgradebookhistoryhelp'), 0);
$bi[] = new admin_setting_configcheckbox('backup_sche_messages', get_string('messages', 'message'), get_string('backupmessageshelp','message'), 0);
$bi[] = new admin_setting_configcheckbox('backup_sche_blogs', get_string('blogs', 'blog'), get_string('backupblogshelp','blog'), 0);
$bi[] = new admin_setting_configselect('backup_sche_keep', get_string('keep'),
+8
View File
@@ -26,6 +26,14 @@ if (get_site()) { //do not use during installation
$temp->add(new admin_setting_special_frontpagedesc());
$temp->add(new admin_setting_courselist_frontpage(false)); // non-loggedin version of the setting (that's what the parameter is for :) )
$temp->add(new admin_setting_courselist_frontpage(true)); // loggedin version of the setting
$options = array();
$options[] = get_string('unlimited');
for ($i=1; $i<100; $i++) {
$options[$i] = $i;
}
$temp->add(new admin_setting_configselect('maxcategorydepth', get_string('configsitemaxcategorydepth','admin'), get_string('configsitemaxcategorydepthhelp','admin'), 0, $options));
$temp->add(new admin_setting_sitesetcheckbox('numsections', get_string('sitesection'), get_string('sitesectionhelp','admin'), 1));
$temp->add(new admin_setting_sitesetselect('newsitems', get_string('newsitemsnumber'), '', 3,
array('0' => '0',
+33 -11
View File
@@ -5,11 +5,23 @@
if (has_capability('moodle/grade:manage', $systemcontext)
or has_capability('moodle/grade:manageletters', $systemcontext)) { // speedup for non-admins, add all caps used on this page
require_once $CFG->libdir.'/grade/constants.php';
$display_types = array(GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'),
GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades'),
GRADE_DISPLAY_TYPE_REAL_PERCENTAGE => get_string('realpercentage', 'grades'),
GRADE_DISPLAY_TYPE_REAL_LETTER => get_string('realletter', 'grades'),
GRADE_DISPLAY_TYPE_LETTER_REAL => get_string('letterreal', 'grades'),
GRADE_DISPLAY_TYPE_LETTER_PERCENTAGE => get_string('letterpercentage', 'grades'),
GRADE_DISPLAY_TYPE_PERCENTAGE_LETTER => get_string('percentageletter', 'grades'),
GRADE_DISPLAY_TYPE_PERCENTAGE_REAL => get_string('percentagereal', 'grades')
);
asort($display_types);
// General settings
$temp = new admin_settingpage('gradessettings', get_string('generalsettings', 'grades'), 'moodle/grade:manage');
if ($ADMIN->fulltree) {
require_once $CFG->libdir.'/grade/constants.php';
// new CFG variable for gradebook (what roles to display)
$temp->add(new admin_setting_special_gradebookroles());
@@ -32,10 +44,7 @@ if (has_capability('moodle/grade:manage', $systemcontext)
$temp->add(new admin_setting_configcheckbox('gradepublishing', get_string('gradepublishing', 'grades'), get_string('configgradepublishing', 'grades'), 0));
$temp->add(new admin_setting_configselect('grade_export_displaytype', get_string('gradeexportdisplaytype', 'grades'),
get_string('configgradeexportdisplaytype', 'grades'), GRADE_DISPLAY_TYPE_REAL,
array(GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'),
GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades'))));
get_string('configgradeexportdisplaytype', 'grades'), GRADE_DISPLAY_TYPE_REAL, $display_types));
$temp->add(new admin_setting_configselect('grade_export_decimalpoints', get_string('gradeexportdecimalpoints', 'grades'),
get_string('configexportdecimalpoints', 'grades'), 2,
@@ -45,8 +54,14 @@ if (has_capability('moodle/grade:manage', $systemcontext)
'3' => '3',
'4' => '4',
'5' => '5')));
$temp->add(new admin_setting_configselect('grade_navmethod', get_string('navmethod', 'grades'), null, 0,
array(GRADE_NAVMETHOD_DROPDOWN => get_string('dropdown', 'grades'),
GRADE_NAVMETHOD_TABS => get_string('tabs', 'grades'),
GRADE_NAVMETHOD_COMBO => get_string('combo', 'grades'))));
$temp->add(new admin_setting_special_gradeexport());
$temp->add(new admin_setting_special_gradelimiting());
}
$ADMIN->add('grades', $temp);
@@ -67,9 +82,17 @@ if (has_capability('moodle/grade:manage', $systemcontext)
GRADE_AGGREGATE_MAX =>get_string('aggregatemax', 'grades'),
GRADE_AGGREGATE_MODE =>get_string('aggregatemode', 'grades'),
GRADE_AGGREGATE_SUM =>get_string('aggregatesum', 'grades'));
$defaultvisible = array(GRADE_AGGREGATE_MEAN, GRADE_AGGREGATE_WEIGHTED_MEAN, GRADE_AGGREGATE_WEIGHTED_MEAN2,
GRADE_AGGREGATE_EXTRACREDIT_MEAN, GRADE_AGGREGATE_MEDIAN, GRADE_AGGREGATE_MIN,
GRADE_AGGREGATE_MAX, GRADE_AGGREGATE_MODE, GRADE_AGGREGATE_SUM);
$defaults = array('value'=>GRADE_AGGREGATE_WEIGHTED_MEAN2, 'forced'=>false, 'adv'=>false);
$temp->add(new admin_setting_gradecat_combo('grade_aggregation', get_string('aggregation', 'grades'), get_string('aggregationhelp', 'grades'), $defaults, $options));
$temp->add(new admin_setting_configmultiselect('grade_aggregations_visible', get_string('aggregationsvisible', 'grades'),
get_string('aggregationsvisiblehelp', 'grades'), $defaultvisible, $options));
$options = array(0 => get_string('no'), 1 => get_string('yes'));
$defaults = array('value'=>1, 'forced'=>false, 'adv'=>true);
@@ -101,10 +124,7 @@ if (has_capability('moodle/grade:manage', $systemcontext)
$temp = new admin_settingpage('gradeitemsettings', get_string('gradeitemsettings', 'grades'), 'moodle/grade:manage');
if ($ADMIN->fulltree) {
$temp->add(new admin_setting_configselect('grade_displaytype', get_string('gradedisplaytype', 'grades'),
get_string('configgradedisplaytype', 'grades'), GRADE_DISPLAY_TYPE_REAL,
array(GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'),
GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades'))));
get_string('configgradedisplaytype', 'grades'), GRADE_DISPLAY_TYPE_REAL, $display_types));
$temp->add(new admin_setting_configselect('grade_decimalpoints', get_string('decimalpoints', 'grades'),
get_string('configdecimalpoints', 'grades'), 2,
@@ -142,8 +162,10 @@ if (has_capability('moodle/grade:manage', $systemcontext)
$scales = new admin_externalpage('scales', get_string('scales'), $CFG->wwwroot.'/grade/edit/scale/index.php', 'moodle/grade:manage');
$ADMIN->add('grades', $scales);
$outcomes = new admin_externalpage('outcomes', get_string('outcomes', 'grades'), $CFG->wwwroot.'/grade/edit/outcome/index.php', 'moodle/grade:manage');
$ADMIN->add('grades', $outcomes);
if (!empty($CFG->enableoutcomes)) {
$outcomes = new admin_externalpage('outcomes', get_string('outcomes', 'grades'), $CFG->wwwroot.'/grade/edit/outcome/index.php', 'moodle/grade:manage');
$ADMIN->add('grades', $outcomes);
}
$letters = new admin_externalpage('letters', get_string('letters', 'grades'), $CFG->wwwroot.'/grade/edit/letter/edit.php', 'moodle/grade:manageletters');
$ADMIN->add('grades', $letters);
+4
View File
@@ -12,6 +12,10 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$item->set_updatedcallback('reset_text_filters_cache');
$temp->add($item);
$temp->add(new admin_setting_configcheckbox('enablegroupings', get_string('enablegroupings', 'admin'), get_string('configenablegroupings', 'admin'), 0));
$rqsetting = new admin_setting_configcheckbox('selectmanual', get_string('selectmanualquestions', 'qtype_random'), get_string('configselectmanualquestions', 'qtype_random'), 0);
$rqsetting->plugin = 'qtype_random';
$temp->add($rqsetting);
$temp->add(new admin_setting_configcheckbox('experimentalsplitrestore', get_string('experimentalsplitrestore', 'admin'), get_string('configexperimentalsplitrestore', 'admin'), 0));
$ADMIN->add('misc', $temp);
+21 -2
View File
@@ -138,9 +138,28 @@ if ($hassiteconfig) {
$ADMIN->add('filtersettings', $settings);
} else if (file_exists("$CFG->dirroot/$filterfull/filterconfig.html")) {
$ADMIN->add('filtersettings', new admin_externalpage('filtersetting'.str_replace('/', '', $filterfull), $strfiltername, "$CFG->wwwroot/$CFG->admin/filter.php?filter=$filterfull", !in_array($filterfull, $activefilters)));
$ADMIN->add('filtersettings', new admin_externalpage('filtersetting'.str_replace('/', '', $filterfull), $strfiltername, "$CFG->wwwroot/$CFG->admin/filter.php?filter=$filterfull", 'moodle/site:config', !in_array($filterfull, $activefilters)));
}
}
}
}
?>
/// Now add reports
foreach (get_list_of_plugins($CFG->admin.'/report') as $plugin) {
$settings_path = "$CFG->dirroot/$CFG->admin/report/$plugin/settings.php";
if (file_exists($settings_path)) {
include($settings_path);
continue;
}
$index_path = "$CFG->dirroot/$CFG->admin/report/$plugin/index.php";
if (!file_exists($index_path)) {
continue;
}
// old style 3rd party plugin without settings.php
$www_path = "$CFG->wwwroot/$CFG->admin/report/$plugin/index.php";
$reportname = get_string($plugin, 'report_' . $plugin);
$ADMIN->add('reports', new admin_externalpage('report'.$plugin, $reportname, $www_path, 'moodle/site:viewreports'));
}
+5
View File
@@ -40,6 +40,9 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
0 => get_string('disableblogs','blog'))));
$temp->add(new admin_setting_configcheckbox('usetags', get_string('usetags','admin'),get_string('configusetags', 'admin'),'1'));
$temp->add(new admin_setting_configcheckbox('keeptagnamecase', get_string('keeptagnamecase','admin'),get_string('configkeeptagnamecase', 'admin'),'1'));
$temp->add(new admin_setting_configcheckbox('profilesforenrolledusersonly', get_string('profilesforenrolledusersonly','admin'),get_string('configprofilesforenrolledusersonly', 'admin'),'1'));
$temp->add(new admin_setting_configcheckbox('cronclionly', get_string('cronclionly', 'admin'), get_string('configcronclionly', 'admin'), 0));
$temp->add(new admin_setting_configpasswordunmask('cronremotepassword', get_string('cronremotepassword', 'admin'), get_string('configcronremotepassword', 'admin'), ''));
@@ -50,6 +53,8 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$temp->add(new admin_setting_configtext('minpasswordupper', get_string('minpasswordupper', 'admin'), get_string('configminpasswordupper', 'admin'), 1, PARAM_INT));
$temp->add(new admin_setting_configtext('minpasswordnonalphanum', get_string('minpasswordnonalphanum', 'admin'), get_string('configminpasswordnonalphanum', 'admin'), 1, PARAM_INT));
$temp->add(new admin_setting_configcheckbox('disableuserimages', get_string('disableuserimages', 'admin'), get_string('configdisableuserimages', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('emailchangeconfirmation', get_string('emailchangeconfirmation', 'admin'), get_string('configemailchangeconfirmation', 'admin'), 1));
$temp->add(new admin_setting_configcheckbox('enablenotes', get_string('enablenotes', 'notes'), get_string('configenablenotes', 'notes'), 1));
$ADMIN->add('security', $temp);
+43 -6
View File
@@ -20,7 +20,7 @@ $ADMIN->add('server', $temp, 0);
// "email" settingpage
$temp = new admin_settingpage('mail', get_string('mail','admin'));
$temp->add(new admin_setting_configtext('smtphosts', get_string('smtphosts', 'admin'), get_string('configsmtphosts', 'admin'), '', PARAM_HOST));
$temp->add(new admin_setting_configtext('smtphosts', get_string('smtphosts', 'admin'), get_string('configsmtphosts', 'admin'), '', PARAM_RAW));
$temp->add(new admin_setting_configtext('smtpuser', get_string('smtpuser', 'admin'), get_string('configsmtpuser', 'admin'), '', PARAM_NOTAGS));
$temp->add(new admin_setting_configpasswordunmask('smtppass', get_string('smtppass', 'admin'), get_string('configsmtpuser', 'admin'), ''));
$temp->add(new admin_setting_configtext('smtpmaxbulk', get_string('smtpmaxbulk', 'admin'), get_string('configsmtpmaxbulk', 'admin'), 1, PARAM_INT));
@@ -89,6 +89,7 @@ $temp->add(new admin_setting_configselect('sessiontimeout', get_string('sessiont
300 => get_string('numminutes', '', 5))));
$temp->add(new admin_setting_configtext('sessioncookie', get_string('sessioncookie', 'admin'), get_string('configsessioncookie', 'admin'), '', PARAM_ALPHANUM));
$temp->add(new admin_setting_configtext('sessioncookiepath', get_string('sessioncookiepath', 'admin'), get_string('configsessioncookiepath', 'admin'), '/', PARAM_LOCALURL));
$temp->add(new admin_setting_configtext('sessioncookiedomain', get_string('sessioncookiedomain', 'admin'), get_string('configsessioncookiedomain', 'admin'), '', PARAM_TEXT, 50));
$ADMIN->add('server', $temp, 50);
@@ -102,7 +103,7 @@ $ADMIN->add('server', $temp);
// "debugging" settingpage
$temp = new admin_settingpage('debugging', get_string('debugging', 'admin'));
$temp->add(new admin_setting_special_debug());
$temp->add(new admin_setting_configcheckbox('debugdisplay', get_string('debugdisplay', 'admin'), get_string('configdebugdisplay', 'admin'), ini_get('display_errors')));
$temp->add(new admin_setting_configcheckbox('debugdisplay', get_string('debugdisplay', 'admin'), get_string('configdebugdisplay', 'admin'), ini_get_bool('display_errors')));
$temp->add(new admin_setting_configcheckbox('xmlstrictheaders', get_string('xmlstrictheaders', 'admin'), get_string('configxmlstrictheaders', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('debugsmtp', get_string('debugsmtp', 'admin'), get_string('configdebugsmtp', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('perfdebug', get_string('perfdebug', 'admin'), get_string('configperfdebug', 'admin'), '7', '15', '7'));
@@ -123,7 +124,7 @@ $temp->add(new admin_setting_configselect('statsfirstrun', get_string('statsfirs
60*60*24*140 => get_string('nummonths','moodle',5),
60*60*24*168 => get_string('nummonths','moodle',6),
'all' => get_string('all') )));
$temp->add(new admin_setting_configselect('statsmaxruntime', get_string('statsmaxruntime', 'admin'), get_string('configstatsmaxruntime2', 'admin'), 0, array(0 => get_string('untilcomplete'),
$temp->add(new admin_setting_configselect('statsmaxruntime', get_string('statsmaxruntime', 'admin'), get_string('configstatsmaxruntime3', 'admin'), 0, array(0 => get_string('untilcomplete'),
60*30 => '10 '.get_string('minutes'),
60*30 => '30 '.get_string('minutes'),
60*60 => '1 '.get_string('hour'),
@@ -134,6 +135,7 @@ $temp->add(new admin_setting_configselect('statsmaxruntime', get_string('statsma
60*60*6 => '6 '.get_string('hours'),
60*60*7 => '7 '.get_string('hours'),
60*60*8 => '8 '.get_string('hours') )));
$temp->add(new admin_setting_configtext('statsruntimedays', get_string('statsruntimedays', 'admin'), get_string('configstatsruntimedays', 'admin'), 31, PARAM_INT));
$temp->add(new admin_setting_configtime('statsruntimestarthour', 'statsruntimestartminute', get_string('statsruntimestart', 'admin'), get_string('configstatsruntimestart', 'admin'), array('h' => 0, 'm' => 0)));
$temp->add(new admin_setting_configtext('statsuserthreshold', get_string('statsuserthreshold', 'admin'), get_string('configstatsuserthreshold', 'admin'), 0, PARAM_INT));
@@ -146,6 +148,13 @@ $ADMIN->add('server', $temp);
$temp = new admin_settingpage('http', get_string('http', 'admin'));
$temp->add(new admin_setting_configtext('framename', get_string('framename', 'admin'), get_string('configframename', 'admin'), '_top', PARAM_ALPHAEXT));
$temp->add(new admin_setting_configcheckbox('slasharguments', get_string('slasharguments', 'admin'), get_string('configslasharguments', 'admin'), 1));
$temp->add(new admin_setting_heading('reverseproxy', get_string('reverseproxy', 'admin'), '', ''));
$options = array(
0 => 'HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR, REMOTE_ADDR',
GETREMOTEADDR_SKIP_HTTP_CLIENT_IP => 'HTTP_X_FORWARDED_FOR, REMOTE_ADDR',
GETREMOTEADDR_SKIP_HTTP_X_FORWARDED_FOR => 'HTTP_CLIENT, REMOTE_ADDR',
GETREMOTEADDR_SKIP_HTTP_X_FORWARDED_FOR|GETREMOTEADDR_SKIP_HTTP_CLIENT_IP => 'REMOTE_ADDR');
$temp->add(new admin_setting_configselect('getremoteaddrconf', get_string('getremoteaddrconf', 'admin'), get_string('configgetremoteaddrconf', 'admin'), 0, $options));
$temp->add(new admin_setting_heading('webproxy', get_string('webproxy', 'admin'), get_string('webproxyinfo', 'admin')));
$temp->add(new admin_setting_configtext('proxyhost', get_string('proxyhost', 'admin'), get_string('configproxyhost', 'admin'), '', PARAM_HOST));
$temp->add(new admin_setting_configtext('proxyport', get_string('proxyport', 'admin'), get_string('configproxyport', 'admin'), 0, PARAM_INT));
@@ -186,6 +195,15 @@ $temp->add(new admin_setting_configselect('deleteunconfirmed', get_string('delet
6 => get_string('numhours', '', 6),
1 => get_string('numhours', '', 1))));
$temp->add(new admin_setting_configselect('deleteincompleteusers', get_string('deleteincompleteusers', 'admin'), get_string('configdeleteincompleteusers', 'admin'), 0, array(0 => get_string('never'),
168 => get_string('numdays', '', 7),
144 => get_string('numdays', '', 6),
120 => get_string('numdays', '', 5),
96 => get_string('numdays', '', 4),
72 => get_string('numdays', '', 3),
48 => get_string('numdays', '', 2),
24 => get_string('numdays', '', 1))));
$temp->add(new admin_setting_configselect('loglifetime', get_string('loglifetime', 'admin'), get_string('configloglifetime', 'admin'), 0, array(0 => get_string('neverdeletelogs'),
1000 => get_string('numdays', '', 1000),
365 => get_string('numdays', '', 365),
@@ -194,7 +212,10 @@ $temp->add(new admin_setting_configselect('loglifetime', get_string('loglifetime
120 => get_string('numdays', '', 120),
90 => get_string('numdays', '', 90),
60 => get_string('numdays', '', 60),
35 => get_string('numdays', '', 35))));
35 => get_string('numdays', '', 35),
10 => get_string('numdays', '', 10),
5 => get_string('numdays', '', 5),
2 => get_string('numdays', '', 2))));
$temp->add(new admin_setting_configcheckbox('disablegradehistory', get_string('disablegradehistory', 'grades'),
@@ -221,6 +242,16 @@ $ADMIN->add('server', new admin_externalpage('phpinfo', get_string('phpinfo'), "
// "performance" settingpage
$temp = new admin_settingpage('performance', get_string('performance', 'admin'));
$temp->add(new admin_setting_configselect('extramemorylimit', get_string('extramemorylimit', 'admin'),
get_string('configextramemorylimit', 'admin'), '128M',
// if this option is set to 0, default 128M will be used
array( '64M' => '64M',
'128M' => '128M',
'256M' => '256M',
'512M' => '512M',
'1024M' => '1024M'
)));
$temp->add(new admin_setting_special_selectsetup('cachetype', get_string('cachetype', 'admin'),
get_string('configcachetype', 'admin'), '',
array( '' => get_string('none'),
@@ -244,8 +275,14 @@ $temp->add(new admin_setting_configselect('memcachedpconn', get_string('memcache
'1' => get_string('yes'))));
$ADMIN->add('server', $temp);
if (file_exists("$CFG->dirroot/$CFG->admin/mysql/frame.php")) {
$ADMIN->add('server', new admin_externalpage('database', get_string('managedatabase'), "$CFG->wwwroot/$CFG->admin/mysql/frame.php"));
if ($CFG->dbfamily === 'mysql') {
if (file_exists("$CFG->dirroot/$CFG->admin/mysql/frame.php")) {
$ADMIN->add('server', new admin_externalpage('database', get_string('managedatabase'), "$CFG->wwwroot/$CFG->admin/mysql/frame.php"));
}
} else if ($CFG->dbfamily === 'postgres') {
if (file_exists("$CFG->dirroot/$CFG->admin/pgsql/frame.php")) {
$ADMIN->add('server', new admin_externalpage('database', get_string('managedatabase'), "$CFG->wwwroot/$CFG->admin/pgsql/frame.php"));
}
}
} // end of speedup
-16
View File
@@ -23,29 +23,13 @@ $ADMIN->add('root', new admin_category('courses', get_string('courses','admin'))
$ADMIN->add('root', new admin_category('grades', get_string('grades')));
$ADMIN->add('root', new admin_category('location', get_string('location','admin')));
$ADMIN->add('root', new admin_category('language', get_string('language')));
$ADMIN->add('root', new admin_category('modules', get_string('plugins', 'admin')));
$ADMIN->add('root', new admin_category('security', get_string('security','admin')));
$ADMIN->add('root', new admin_category('appearance', get_string('appearance','admin')));
$ADMIN->add('root', new admin_category('frontpage', get_string('frontpage','admin')));
$ADMIN->add('root', new admin_category('server', get_string('server','admin')));
$ADMIN->add('root', new admin_category('mnet', get_string('net','mnet')));
$ADMIN->add('root', new admin_category('reports', get_string('reports')));
foreach (get_list_of_plugins($CFG->admin.'/report') as $plugin) {
/// This snippet is temporary until simpletest can be fixed to use xmldb. See MDL-7377 XXX TODO
if ($plugin == 'simpletest' && $CFG->dbfamily != 'mysql' && $CFG->dbfamily != 'postgres') {
continue;
}
/// End of removable snippet
$reportname = get_string($plugin, 'report_' . $plugin);
if ($reportname[1] == '[') {
$reportname = get_string($plugin, 'admin');
}
$ADMIN->add('reports', new admin_externalpage('report'.$plugin, $reportname, "$CFG->wwwroot/$CFG->admin/report/$plugin/index.php"));
}
$ADMIN->add('root', new admin_category('misc', get_string('miscellaneous')));
// hidden unsupported category
+24 -14
View File
@@ -2,15 +2,19 @@
// This file defines settingpages and externalpages under the "users" category
$ADMIN->add('users', new admin_category('authsettings', get_string('authentication','admin')));
$ADMIN->add('users', new admin_category('accounts', get_string('accounts', 'admin')));
$ADMIN->add('users', new admin_category('roles', get_string('permissions', 'role')));
if ($hassiteconfig
or has_capability('moodle/site:uploadusers', $systemcontext)
or has_capability('moodle/user:create', $systemcontext)
or has_capability('moodle/user:update', $systemcontext)
or has_capability('moodle/user:delete', $systemcontext)) { // speedup for non-admins, add all caps used on this page
or has_capability('moodle/user:delete', $systemcontext)
or has_capability('moodle/role:manage', $systemcontext)
or has_capability('moodle/role:assign', $systemcontext)) { // speedup for non-admins, add all caps used on this page
$ADMIN->add('users', new admin_category('authsettings', get_string('authentication','admin')));
$temp = new admin_settingpage('manageauths', get_string('authsettings', 'admin'));
$temp->add(new admin_setting_manageauths());
$temp->add(new admin_setting_heading('manageauthscommonheading', get_string('commonsettings', 'admin'), ''));
@@ -25,6 +29,7 @@ if ($hassiteconfig
get_string('authinstructions', 'auth'), ''));
$temp->add(new admin_setting_configtext('allowemailaddresses', get_string('allowemailaddresses', 'admin'), get_string('configallowemailaddresses', 'admin'), '', PARAM_NOTAGS));
$temp->add(new admin_setting_configtext('denyemailaddresses', get_string('denyemailaddresses', 'admin'), get_string('configdenyemailaddresses', 'admin'), '', PARAM_NOTAGS));
$temp->add(new admin_setting_configcheckbox('verifychangedemail', get_string('verifychangedemail', 'admin'), get_string('configverifychangedemail', 'admin'), 1));
$temp->add(new admin_setting_configtext('recaptchapublickey', get_string('recaptchapublickey', 'admin'), get_string('configrecaptchapublickey', 'admin'), '', PARAM_NOTAGS));
$temp->add(new admin_setting_configtext('recaptchaprivatekey', get_string('recaptchaprivatekey', 'admin'), get_string('configrecaptchaprivatekey', 'admin'), '', PARAM_NOTAGS));
@@ -36,10 +41,7 @@ if ($hassiteconfig
$authbyname = array();
foreach ($auths as $auth) {
$strauthname = get_string("auth_{$auth}title", "auth");
if ($strauthname == "[[auth_{$auth}title]]") {
$strauthname = get_string("auth_{$auth}title", "auth_{$auth}");
}
$strauthname = auth_get_plugin_title($auth);
$authbyname[$strauthname] = $auth;
}
ksort($authbyname);
@@ -67,7 +69,6 @@ if ($hassiteconfig
$securewwwroot = str_replace('http:','https:',$CFG->wwwroot);
}
// stuff under the "accounts" subcategory
$ADMIN->add('users', new admin_category('accounts', get_string('accounts', 'admin')));
$ADMIN->add('accounts', new admin_externalpage('editusers', get_string('userlist','admin'), "$CFG->wwwroot/$CFG->admin/user.php", array('moodle/user:update', 'moodle/user:delete')));
$ADMIN->add('accounts', new admin_externalpage('userbulk', get_string('userbulk','admin'), "$CFG->wwwroot/$CFG->admin/user/user_bulk.php", array('moodle/user:update', 'moodle/user:delete')));
$ADMIN->add('accounts', new admin_externalpage('addnewuser', get_string('addnewuser'), "$securewwwroot/user/editadvanced.php?id=-1", 'moodle/user:create'));
@@ -77,9 +78,8 @@ if ($hassiteconfig
// stuff under the "roles" subcategory
$ADMIN->add('users', new admin_category('roles', get_string('permissions', 'role')));
$ADMIN->add('roles', new admin_externalpage('defineroles', get_string('defineroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/manage.php"));
$ADMIN->add('roles', new admin_externalpage('assignroles', get_string('assignglobalroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/assign.php?contextid=".$systemcontext->id));
$ADMIN->add('roles', new admin_externalpage('defineroles', get_string('defineroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/manage.php", 'moodle/role:manage'));
$ADMIN->add('roles', new admin_externalpage('assignroles', get_string('assignglobalroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/assign.php?contextid=".$systemcontext->id, 'moodle/role:assign'));
// "userpolicies" settingpage
@@ -110,7 +110,12 @@ if ($hassiteconfig
}
if (!$guestroles = get_roles_with_capability('moodle/legacy:guest', CAP_ALLOW)) {
$guestroles = array();
$defaultguestid = null;
} else {
$defaultguestid = reset($guestroles);
$defaultguestid = $defaultguestid->id;
}
// we must not use assignable roles here:
// 1/ unsetting roles as assignable for admin might bork the settings!
// 2/ default user role should not be assignable anyway
@@ -127,9 +132,9 @@ if ($hassiteconfig
}
$temp->add(new admin_setting_configselect('notloggedinroleid', get_string('notloggedinroleid', 'admin'),
get_string('confignotloggedinroleid', 'admin'), $guestrole->id, $allroles ));
get_string('confignotloggedinroleid', 'admin'), $defaultguestid, $allroles ));
$temp->add(new admin_setting_configselect('guestroleid', get_string('guestroleid', 'admin'),
get_string('configguestroleid', 'admin'), $guestrole->id, $allroles));
get_string('configguestroleid', 'admin'), $defaultguestid, $allroles));
$temp->add(new admin_setting_configselect('defaultuserroleid', get_string('defaultuserroleid', 'admin'),
get_string('configdefaultuserroleid', 'admin'), $userrole->id, $nonguestroles)); // guest role here breaks a lot of stuff
}
@@ -161,9 +166,14 @@ if ($hassiteconfig
'yahooid' => get_string('yahooid'),
'aimid' => get_string('aimid'),
'msnid' => get_string('msnid'),
'lastaccess' => get_string('lastaccess'))));
'firstaccess' => get_string('firstaccess'),
'lastaccess' => get_string('lastaccess'),
'mycourses' => get_string('mycourses'),
'groups' => get_string('groups'))));
}
$temp->add(new admin_setting_configcheckbox('allowuserswitchrolestheycantassign', get_string('allowuserswitchrolestheycantassign', 'admin'), get_string('configallowuserswitchrolestheycantassign', 'admin'), 0));
$ADMIN->add('roles', $temp);
} // end of speedup
+9 -1
View File
@@ -20,7 +20,15 @@ if ($data = data_submitted() and confirm_sesskey()) {
$adminroot =& admin_get_root(true); //reload tree
}
$newsettingshtml = admin_output_new_settings_by_page($adminroot);
$newsettings = admin_output_new_settings_by_page($adminroot);
if (isset($newsettings['frontpagesettings'])) {
$frontpage = $newsettings['frontpagesettings'];
unset($newsettings['frontpagesettings']);
array_unshift($newsettings, $frontpage);
}
$newsettingshtml = implode($newsettings);
unset($newsettings);
$focus = '';
if (empty($adminroot->errors) and $newsettingshtml === '') {
+130 -56
View File
@@ -26,9 +26,11 @@ require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/gdlib.php');
require_once('uploadpicture_form.php');
$adminroot = admin_get_root();
admin_externalpage_setup('uploadpictures', $adminroot);
define ('PIX_FILE_UPDATED', 0);
define ('PIX_FILE_ERROR', 1);
define ('PIX_FILE_SKIPPED', 2);
admin_externalpage_setup('uploadpictures');
require_login();
@@ -46,8 +48,6 @@ $strfile = get_string('file');
$struser = get_string('user');
$strusersupdated = get_string('usersupdated');
$struploadpictures = get_string('uploadpictures','admin');
$usersupdated = 0;
$userserrors = 0;
$userfields = array (
0 => 'username',
@@ -91,61 +91,15 @@ if ($formdata = $mform->get_data()) {
// We don't need the zip file any longer, so delete it to make
// it easier to process the rest of the files inside the directory.
@unlink($dstfile);
if(! ($handle = opendir($zipdir))) {
notify(get_string('uploadpicture_cannotprocessdir','admin'));
} else {
while (false !== ($item = readdir($handle))) {
if($item != '.' && $item != '..' && is_file($zipdir.'/'.$item)) {
// Add additional checks on the filenames, as they are user
// controlled and we don't want to open any security holes.
$path_parts = pathinfo(cleardoubleslashes($item));
$basename = $path_parts['basename'];
$extension = $path_parts['extension'];
if ($basename != clean_param($basename, PARAM_CLEANFILE)) {
// The original picture file name has invalid characters
notify(get_string('uploadpicture_invalidfilename', 'admin',
clean_param($basename, PARAM_CLEANHTML)));
continue;
}
$results = array ('errors' => 0,'updated' => 0);
// The picture file name (without extension) must match the
// userfield attribute.
$uservalue = substr($basename, 0,
strlen($basename) -
strlen($extension) - 1);
// userfield names are safe, so don't quote them.
if (!($user = get_record('user', $userfields[$userfield],
addslashes($uservalue)))) {
$userserrors++;
$a = new Object();
$a->userfield = clean_param($userfields[$userfield], PARAM_CLEANHTML);
$a->uservalue = clean_param($uservalue, PARAM_CLEANHTML);
notify(get_string('uploadpicture_usernotfound', 'admin', $a));
continue;
}
$haspicture = get_field('user', 'picture', 'id', $user->id);
if ($haspicture && !$overwritepicture) {
notify(get_string('uploadpicture_userskipped', 'admin', $user->username));
continue;
}
if (my_save_profile_image($user->id, $zipdir.'/'.$item)) {
set_field('user', 'picture', 1, 'id', $user->id);
$usersupdated++;
notify(get_string('uploadpicture_userupdated', 'admin', $user->username));
} else {
$userserrors++;
notify(get_string('uploadpicture_cannotsave', 'admin', $user->username));
}
}
}
}
closedir($handle);
process_directory($zipdir, $userfields[$userfield], $overwritepicture, $results);
// Finally remove the temporary directory with all the user images and print some stats.
remove_dir($zipdir);
notify(get_string('usersupdated', 'admin') . ": $usersupdated");
notify(get_string('errors', 'admin') . ": $userserrors");
notify(get_string('usersupdated', 'admin') . ": " . $results['updated']);
notify(get_string('errors', 'admin') . ": " . $results['errors']);
echo '<hr />';
}
}
@@ -157,6 +111,17 @@ exit;
// ----------- Internal functions ----------------
/**
* Create a unique temporary directory with a given prefix name,
* inside a given directory, with given permissions. Return the
* full path to the newly created temp directory.
*
* @param string $dir where to create the temp directory.
* @param string $prefix prefix for the temp directory name (default '')
* @param string $mode permissions for the temp directory (default 700)
*
* @return string The full path to the temp directory.
*/
function my_mktempdir($dir, $prefix='', $mode=0700) {
if (substr($dir, -1) != '/') {
$dir .= '/';
@@ -169,6 +134,115 @@ function my_mktempdir($dir, $prefix='', $mode=0700) {
return $path;
}
/**
* Recursively process a directory, picking regular files and feeding
* them to process_file().
*
* @param string $dir the full path of the directory to process
* @param string $userfield the prefix_user table field to use to
* match picture files to users.
* @param bool $overwrite overwrite existing picture or not.
* @param array $results (by reference) accumulated statistics of
* users updated and errors.
*
* @return nothing
*/
function process_directory ($dir, $userfield, $overwrite, &$results) {
if(!($handle = opendir($dir))) {
notify(get_string('uploadpicture_cannotprocessdir','admin'));
return;
}
while (false !== ($item = readdir($handle))) {
if ($item != '.' && $item != '..') {
if (is_dir($dir.'/'.$item)) {
process_directory($dir.'/'.$item, $userfield, $overwrite, $results);
} else if (is_file($dir.'/'.$item)) {
$result = process_file($dir.'/'.$item, $userfield, $overwrite);
switch ($result) {
case PIX_FILE_ERROR:
$results['errors']++;
break;
case PIX_FILE_UPDATED:
$results['updated']++;
break;
}
}
// Ignore anything else that is not a directory or a file (e.g.,
// symbolic links, sockets, pipes, etc.)
}
}
closedir($handle);
}
/**
* Given the full path of a file, try to find the user the file
* corresponds to and assign him/her this file as his/her picture.
* Make extensive checks to make sure we don't open any security holes
* and report back any success/error.
*
* @param string $file the full path of the file to process
* @param string $userfield the prefix_user table field to use to
* match picture files to users.
* @param bool $overwrite overwrite existing picture or not.
*
* @return integer either PIX_FILE_UPDATED, PIX_FILE_ERROR or
* PIX_FILE_SKIPPED
*/
function process_file ($file, $userfield, $overwrite) {
// Add additional checks on the filenames, as they are user
// controlled and we don't want to open any security holes.
$path_parts = pathinfo(cleardoubleslashes($file));
$basename = $path_parts['basename'];
$extension = $path_parts['extension'];
if ($basename != clean_param($basename, PARAM_CLEANFILE)) {
// The original picture file name has invalid characters
notify(get_string('uploadpicture_invalidfilename', 'admin',
clean_param($basename, PARAM_CLEANHTML)));
return PIX_FILE_ERROR;
}
// The picture file name (without extension) must match the
// userfield attribute.
$uservalue = substr($basename, 0,
strlen($basename) -
strlen($extension) - 1);
// userfield names are safe, so don't quote them.
if (!($user = get_record('user', $userfield, addslashes($uservalue)))) {
$a = new Object();
$a->userfield = clean_param($userfield, PARAM_CLEANHTML);
$a->uservalue = clean_param($uservalue, PARAM_CLEANHTML);
notify(get_string('uploadpicture_usernotfound', 'admin', $a));
return PIX_FILE_ERROR;
}
$haspicture = get_field('user', 'picture', 'id', $user->id);
if ($haspicture && !$overwrite) {
notify(get_string('uploadpicture_userskipped', 'admin', $user->username));
return PIX_FILE_SKIPPED;
}
if (my_save_profile_image($user->id, $file)) {
set_field('user', 'picture', 1, 'id', $user->id);
notify(get_string('uploadpicture_userupdated', 'admin', $user->username));
return PIX_FILE_UPDATED;
} else {
notify(get_string('uploadpicture_cannotsave', 'admin', $user->username));
return PIX_FILE_ERROR;
}
}
/**
* Try to save the given file (specified by its full path) as the
* picture for the user with the given id.
*
* @param integer $id the internal id of the user to assign the
* picture file to.
* @param string $originalfile the full path of the picture file.
*
* @return bool
*/
function my_save_profile_image($id, $originalfile) {
$destination = create_profile_image_destination($id, 'user');
if ($destination === false) {
+15 -3
View File
@@ -150,6 +150,8 @@ if ($formdata = $mform->is_cancelled()) {
$renameerrors = 0;
$usersskipped = 0;
$forcechangepassword = 0;
// caches
$ccache = array(); // course cache - do not fetch all courses here, we will not probably use them all anyway!
$rolecache = array(); // roles lookup cache
@@ -171,7 +173,7 @@ if ($formdata = $mform->is_cancelled()) {
}
unset($allowedroles);
// clear bilk selection
// clear bulk selection
if ($bulk) {
$SESSION->bulk_users = array();
}
@@ -201,6 +203,9 @@ if ($formdata = $mform->is_cancelled()) {
if ($key == 'password') {
if ($value !== '') {
$user->password = hash_internal_user_password($value);
if (!empty($CFG->passwordpolicy) and !check_password_policy($value, $errmsg)) {
$forcechangepassword++;
}
}
} else {
$user->$key = $value;
@@ -435,6 +440,9 @@ if ($formdata = $mform->is_cancelled()) {
continue;
} else if (!empty($user->password)) {
$upt->track('password', get_string('updated'));
if ($forcechangepassword) {
set_user_preference('auth_forcepasswordchange', 1, $existinguser->id);
}
}
}
if ((array_key_exists($column, $existinguser) and array_key_exists($column, $user)) or in_array($column, $PRF_FIELDS)) {
@@ -538,6 +546,9 @@ if ($formdata = $mform->is_cancelled()) {
set_user_preference('auth_forcepasswordchange', 1, $user->id);
$upt->track('password', get_string('new'));
}
if ($forcechangepassword) {
set_user_preference('auth_forcepasswordchange', 1, $user->id);
}
} else {
// Record not added -- possibly some other error
$upt->track('status', $strusernotaddederror, 'error');
@@ -696,6 +707,7 @@ if ($formdata = $mform->is_cancelled()) {
if ($usersskipped) {
echo get_string('usersskipped', 'admin').': '.$usersskipped.'<br />';
}
echo get_string('usersweakpassword', 'admin').': '.$forcechangepassword.'<br />';
echo get_string('errors', 'admin').': '.$userserrors.'</p>';
print_box_end();
@@ -949,7 +961,7 @@ function uu_allowed_auths() {
$plugins = get_enabled_auth_plugins();
$choices = array();
foreach ($plugins as $plugin) {
$choices[$plugin] = get_string('auth_'.$plugin.'title', 'auth');
$choices[$plugin] = auth_get_plugin_title ($plugin);
}
return $choices;
@@ -979,4 +991,4 @@ function uu_allowed_roles($shortname=false) {
return $choices;
}
?>
?>
+12 -1
View File
@@ -202,7 +202,18 @@
$mainadmin = get_admin();
$table->head = array ("$firstname / $lastname", $email, $city, $country, $lastaccess, "", "", "");
$override = new object();
$override->firstname = 'firstname';
$override->lastname = 'lastname';
$fullnamelanguage = get_string('fullnamedisplay', '', $override);
if (($CFG->fullnamedisplay == 'firstname lastname') or
($CFG->fullnamedisplay == 'firstname') or
($CFG->fullnamedisplay == 'language' and $fullnamelanguage == 'firstname lastname' )) {
$fullnamedisplay = "$firstname / $lastname";
} else { // ($CFG->fullnamedisplay == 'language' and $fullnamelanguage == 'lastname firstname')
$fullnamedisplay = "$lastname / $firstname";
}
$table->head = array ($fullnamedisplay, $email, $city, $country, $lastaccess, "", "", "");
$table->align = array ("left", "left", "left", "left", "left", "center", "center", "center");
$table->width = "95%";
foreach ($users as $user) {
+1 -1
View File
@@ -39,7 +39,7 @@ if ($format) {
if ($extrafields = get_records_select('user_info_field')) {
foreach ($extrafields as $n=>$v){
$fields['profile_field_'.$v->shortname] = 'profile_field_'.$v->name;
$fields['profile_field_'.$v->shortname] = 'profile_field_'.$v->shortname;
}
}
@@ -84,7 +84,7 @@ class edit_field extends XMLDBAction {
/// Fetch request data
$tableparam = required_param('table', PARAM_CLEAN);
if (!$table =& $structure->getTable($tableparam)) {
$this->errormsg = 'Wrong table specified: ' . $tableparm;
$this->errormsg = 'Wrong table specified: ' . $tableparam;
return false;
}
$fieldparam = required_param('field', PARAM_CLEAN);
@@ -84,7 +84,7 @@ class edit_index extends XMLDBAction {
/// Fetch request data
$tableparam = required_param('table', PARAM_CLEAN);
if (!$table =& $structure->getTable($tableparam)) {
$this->errormsg = 'Wrong table specified: ' . $tableparm;
$this->errormsg = 'Wrong table specified: ' . $tableparam;
return false;
}
$indexparam = required_param('index', PARAM_CLEAN);
@@ -84,7 +84,7 @@ class edit_key extends XMLDBAction {
/// Fetch request data
$tableparam = required_param('table', PARAM_CLEAN);
if (!$table =& $structure->getTable($tableparam)) {
$this->errormsg = 'Wrong table specified: ' . $tableparm;
$this->errormsg = 'Wrong table specified: ' . $tableparam;
return false;
}
$keyparam = required_param('key', PARAM_CLEAN);
-1
View File
@@ -857,7 +857,6 @@ class test extends XMLDBAction {
} else {
$test->error = $db->ErrorMsg();
$test->sql = array($newtextlen . ' cc. (text) transfer failed. Data changed!');
print_object($new);
$test->status = false;
}
} else {
@@ -80,7 +80,7 @@ class view_table_sql extends XMLDBAction {
/// Get parameters
$tableparam = required_param('table', PARAM_PATH);
if (!$table =& $structure->getTable($tableparam)) {
$this->errormsg = 'Wrong table specified: ' . $tableparm;
$this->errormsg = 'Wrong table specified: ' . $tableparam;
return false;
}
$generatorparam = optional_param('generator', null, PARAM_ALPHANUM);
+1 -1
View File
@@ -657,7 +657,7 @@ class CASClient
*/
function setCacheTimesForAuthRequest($n)
{
$this->_cache_times_for_auth_recheck = n;
$this->_cache_times_for_auth_recheck = $n;
}
/**
File diff suppressed because it is too large Load Diff
+33 -4
View File
@@ -57,8 +57,8 @@ class auth_plugin_cas extends auth_plugin_base {
* @return bool Authentication success or failure.
*/
function user_login ($username, $password) {
$this->connectCAS();
return phpCAS::isAuthenticated();
$this->connectCAS();
return phpCAS::isAuthenticated() && (phpCAS::getUser() == $username);
}
/**
* Returns true if this authentication plugin is 'internal'.
@@ -409,7 +409,7 @@ if ( !is_object($PHPCAS_CLIENT) ) {
$result[$key] = $ldapval;
}
}
@ldap_close($ldapconnection);
$this->ldap_close($ldapconnection);
return $result;
}
/**
@@ -439,6 +439,16 @@ if ( !is_object($PHPCAS_CLIENT) ) {
* @return connection result
*/
function ldap_connect($binddn='',$bindpwd='') {
// Cache ldap connections (they are expensive to set up
// and can drain the TCP/IP ressources on the server if we
// are syncing a lot of users (as we try to open a new connection
// to get the user details). This is the least invasive way
// to reuse existing connections without greater code surgery.
if(!empty($this->ldapconnection)) {
$this->ldapconns++;
return $this->ldapconnection;
}
//Select bind password, With empty values use
//ldap_bind_* variables or anonymous bind if ldap_bind_* are empty
if ($binddn == '' and $bindpwd == '') {
@@ -473,6 +483,10 @@ if ( !is_object($PHPCAS_CLIENT) ) {
ldap_set_option($connresult, LDAP_OPT_DEREF, $this->config->opt_deref);
}
if ($bindresult) {
// Set the connection counter so we can call PHP's ldap_close()
// when we call $this->ldap_close() for the last 'open' connection.
$this->ldapconns = 1;
$this->ldapconnection = $connresult;
return $connresult;
}
$debuginfo .= "<br/>Server: '$server' <br/> Connection: '$connresult'<br/> Bind result: '$bindresult'</br>";
@@ -481,6 +495,18 @@ if ( !is_object($PHPCAS_CLIENT) ) {
print_error('auth_ldap_noconnect_all','auth',$this->config->user_type);
return false;
}
/**
* disconnects from a ldap server
*
*/
function ldap_close() {
$this->ldapconns--;
if($this->ldapconns == 0) {
@ldap_close($this->ldapconnection);
unset($this->ldapconnection);
}
}
/**
* retuns user attribute mappings between moodle and ldap
*
@@ -630,7 +656,7 @@ if ( !is_object($PHPCAS_CLIENT) ) {
print "Connecting to ldap...\n";
$ldapconnection = $this->ldap_connect();
if (!$ldapconnection) {
@ldap_close($ldapconnection);
$this->ldap_close($ldapconnection);
print get_string('auth_ldap_noconnect','auth',$this->config->host_url);
exit;
}
@@ -866,6 +892,7 @@ if ( !is_object($PHPCAS_CLIENT) ) {
} else {
print "No users to be added\n";
}
$this->ldap_close();
return true;
}
/**
@@ -1004,6 +1031,7 @@ if (!empty($this->config->attrcreators)) {
}
}
}
$this->ldap_close();
return $result;
}
/**
@@ -1043,6 +1071,7 @@ if (!empty($this->config->attrcreators)) {
array_push($fresult, ($users[$i][$this->config->user_attribute][0]) );
}
}
$this->ldap_close();
return $fresult;
}
/**
+2
View File
@@ -176,6 +176,7 @@ class auth_plugin_db extends auth_plugin_base {
if ($rs = $authdb->Execute($sql)) {
if ( !$rs->EOF ) {
$fields_obj = rs_fetch_record($rs);
$fields_obj = (object)array_change_key_case((array)$fields_obj , CASE_LOWER);
foreach ($selectfields as $localname=>$externalname) {
$result[$localname] = $textlib->convert($fields_obj->{$localname}, $this->config->extencoding, 'utf-8');
}
@@ -421,6 +422,7 @@ class auth_plugin_db extends auth_plugin_base {
print_error('auth_dbcantconnect','auth');
} else if ( !$rs->EOF ) {
while ($rec = rs_fetch_next_record($rs)) {
$rec = (object)array_change_key_case((array)$rec , CASE_LOWER);
array_push($result, $rec->username);
}
}
+3
View File
@@ -86,6 +86,9 @@ class auth_plugin_email extends auth_plugin_base {
/// Save any custom profile field information
profile_save_data($user);
$user = get_record('user', 'id', $user->id);
events_trigger('user_created', $user);
if (! send_confirmation_email($user)) {
print_error('auth_emailnoemail','auth');
}
+2 -1
View File
@@ -16,7 +16,8 @@
/* */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License. */
/* the Free Software Foundation; either version 2 of the License or any */
/* later version. */
/************************************************************************/
/* Author: Torsten Anderson, torsten.anderson@skeria.skelleftea.se
*/
+145 -37
View File
@@ -57,11 +57,36 @@ class auth_plugin_ldap extends auth_plugin_base {
$this->config->{$key} = $value[$this->config->user_type];
}
}
//hack prefix to objectclass
if (empty($this->config->objectclass)) { // Can't send empty filter
$this->config->objectclass='objectClass=*';
} else if (stripos($this->config->objectclass, 'objectClass=') !== 0) {
$this->config->objectclass = 'objectClass='.$this->config->objectclass;
// Hack prefix to objectclass
if (empty($this->config->objectclass)) {
// Can't send empty filter
$this->config->objectclass='(objectClass=*)';
} else if (stripos($this->config->objectclass, 'objectClass=') === 0) {
// Value is 'objectClass=some-string-here', so just add ()
// around the value (filter _must_ have them).
$this->config->objectclass = '('.$this->config->objectclass.')';
} else if (stripos($this->config->objectclass, '(') !== 0) {
// Value is 'some-string-not-starting-with-left-parentheses',
// which is assumed to be the objectClass matching value.
// So build a valid filter with it.
$this->config->objectclass = '(objectClass='.$this->config->objectclass.')';
} else {
// There is an additional possible value
// '(some-string-here)', that can be used to specify any
// valid filter string, to select subsets of users based
// on any criteria. For example, we could select the users
// whose objectClass is 'user' and have the
// 'enabledMoodleUser' attribute, with something like:
//
// (&(objectClass=user)(enabledMoodleUser=1))
//
// This is only used in the functions that deal with the
// whole potential set of users (currently sync_users()
// and get_user_list() only).
//
// In this particular case we don't need to do anything,
// so leave $this->config->objectclass as is.
}
}
@@ -116,7 +141,7 @@ class auth_plugin_ldap extends auth_plugin_base {
if ($this->ldap_find_userdn($ldapconnection, $extusername)) {
$validuser = true;
}
ldap_close($ldapconnection);
$this->ldap_close();
}
// Shortcut here - SSO confirmed
@@ -131,19 +156,19 @@ class auth_plugin_ldap extends auth_plugin_base {
//if ldap_user_dn is empty, user does not exist
if (!$ldap_user_dn) {
ldap_close($ldapconnection);
$this->ldap_close();
return false;
}
// Try to bind with current username and password
$ldap_login = @ldap_bind($ldapconnection, $ldap_user_dn, $extpassword);
ldap_close($ldapconnection);
$this->ldap_close();
if ($ldap_login) {
return true;
}
}
else {
@ldap_close($ldapconnection);
$this->ldap_close();
print_error('auth_ldap_noconnect','auth','',$this->config->host_url);
}
return false;
@@ -217,7 +242,7 @@ class auth_plugin_ldap extends auth_plugin_base {
}
}
@ldap_close($ldapconnection);
$this->ldap_close();
return $result;
}
@@ -358,7 +383,7 @@ class auth_plugin_ldap extends auth_plugin_base {
default:
print_error('auth_ldap_unsupportedusertype','auth','',$this->config->user_type);
}
ldap_close($ldapconnection);
$this->ldap_close();
return $uadd;
}
@@ -403,6 +428,9 @@ class auth_plugin_ldap extends auth_plugin_base {
$this->update_user_record($user->username);
update_internal_user_password($user, $plainslashedpassword);
$user = get_record('user', 'id', $user->id);
events_trigger('user_created', $user);
if (! send_confirmation_email($user)) {
print_error('auth_emailnoemail', 'auth');
}
@@ -481,7 +509,7 @@ class auth_plugin_ldap extends auth_plugin_base {
$ldapconnection = $this->ldap_connect();
$user_dn = $this->ldap_find_userdn($ldapconnection, $extusername);
$search_attribs = array($this->config->expireattr);
$sr = ldap_read($ldapconnection, $user_dn, 'objectclass=*', $search_attribs);
$sr = ldap_read($ldapconnection, $user_dn, '(objectClass=*)', $search_attribs);
if ($sr) {
$info = $this->ldap_get_entries($ldapconnection, $sr);
if (!empty ($info) and !empty($info[0][$this->config->expireattr][0])) {
@@ -568,7 +596,7 @@ class auth_plugin_ldap extends auth_plugin_base {
$ldapconnection = $this->ldap_connect();
if (!$ldapconnection) {
@ldap_close($ldapconnection);
$this->ldap_close();
print get_string('auth_ldap_noconnect','auth',$this->config->host_url);
exit;
}
@@ -577,7 +605,7 @@ class auth_plugin_ldap extends auth_plugin_base {
//// get user's list from ldap to sql in a scalable fashion
////
// prepare some data we'll need
$filter = "(&(".$this->config->user_attribute."=*)(".$this->config->objectclass."))";
$filter = '(&('.$this->config->user_attribute.'=*)'.$this->config->objectclass.')';
$contexts = explode(";",$this->config->contexts);
@@ -810,6 +838,9 @@ class auth_plugin_ldap extends auth_plugin_base {
$user->confirmed = 1;
$user->auth = 'ldap';
$user->mnethostid = $CFG->mnet_localhost_id;
// get_userinfo_asobj() might have replaced $user->username with the value
// from the LDAP server (which can be mixed-case). Make sure it's lowercase
$user->username = trim(moodle_strtolower($user->username));
if (empty($user->lang)) {
$user->lang = $CFG->lang;
}
@@ -836,6 +867,7 @@ class auth_plugin_ldap extends auth_plugin_base {
} else {
print "No users to be added\n";
}
$this->ldap_close();
return true;
}
@@ -940,7 +972,7 @@ class auth_plugin_ldap extends auth_plugin_base {
error ('auth: ldap user_activate() does not support selected usertype:"'.$this->config->user_type.'" (..yet)');
}
$result = ldap_modify($ldapconnection, $userdn, $newinfo);
ldap_close($ldapconnection);
$this->ldap_close();
return $result;
}
@@ -975,7 +1007,7 @@ class auth_plugin_ldap extends auth_plugin_base {
error ('auth: ldap user_disable() does not support selected usertype (..yet)');
}
$result = ldap_modify($ldapconnection, $userdn, $newinfo);
ldap_close($ldapconnection);
$this->ldap_close();
return $result;
}*/
@@ -1096,6 +1128,7 @@ class auth_plugin_ldap extends auth_plugin_base {
}
$nuvalue = $textlib->convert($newuser->$key, 'utf-8', $this->config->ldapencoding);
empty($nuvalue) ? $nuvalue = array() : $nuvalue;
$ouvalue = $textlib->convert($olduser->$key, 'utf-8', $this->config->ldapencoding);
foreach ($ldapkeys as $ldapkey) {
@@ -1159,11 +1192,11 @@ class auth_plugin_ldap extends auth_plugin_base {
}
} else {
error_log("ERROR:No user found in LDAP");
@ldap_close($ldapconnection);
$this->ldap_close();
return false;
}
@ldap_close($ldapconnection);
$this->ldap_close();
return true;
@@ -1225,7 +1258,7 @@ class auth_plugin_ldap extends auth_plugin_base {
}
//Update password expiration time, grace logins count
$search_attribs = array($this->config->expireattr, 'passwordExpirationInterval','loginGraceLimit' );
$sr = ldap_read($ldapconnection, $user_dn, 'objectclass=*', $search_attribs);
$sr = ldap_read($ldapconnection, $user_dn, '(objectClass=*)', $search_attribs);
if ($sr) {
$info=$this->ldap_get_entries($ldapconnection, $sr);
$newattrs = array();
@@ -1287,7 +1320,7 @@ class auth_plugin_ldap extends auth_plugin_base {
}
@ldap_close($ldapconnection);
$this->ldap_close();
return $result;
}
@@ -1362,7 +1395,7 @@ class auth_plugin_ldap extends auth_plugin_base {
'rfc2307' => 'shadowExpire',
'rfc2307bis' => 'shadowExpire',
'samba' => '', //No support yet
'ad' => '', //No support yet
'ad' => 'pwdLastSet',
'default' => ''
);
return $default;
@@ -1532,6 +1565,16 @@ class auth_plugin_ldap extends auth_plugin_base {
* @return connection result
*/
function ldap_connect($binddn='',$bindpwd='') {
// Cache ldap connections (they are expensive to set up
// and can drain the TCP/IP ressources on the server if we
// are syncing a lot of users (as we try to open a new connection
// to get the user details). This is the least invasive way
// to reuse existing connections without greater code surgery.
if(!empty($this->ldapconnection)) {
$this->ldapconns++;
return $this->ldapconnection;
}
//Select bind password, With empty values use
//ldap_bind_* variables or anonymous bind if ldap_bind_* are empty
if ($binddn == '' and $bindpwd == '') {
@@ -1578,6 +1621,10 @@ class auth_plugin_ldap extends auth_plugin_base {
}
if ($bindresult) {
// Set the connection counter so we can call PHP's ldap_close()
// when we call $this->ldap_close() for the last 'open' connection.
$this->ldapconns = 1;
$this->ldapconnection = $connresult;
return $connresult;
}
@@ -1589,6 +1636,18 @@ class auth_plugin_ldap extends auth_plugin_base {
return false;
}
/**
* disconnects from a ldap server
*
*/
function ldap_close() {
$this->ldapconns--;
if($this->ldapconns == 0) {
@ldap_close($this->ldapconnection);
unset($this->ldapconnection);
}
}
/**
* retuns dn of username
*
@@ -1673,7 +1732,7 @@ class auth_plugin_ldap extends auth_plugin_base {
$ldapconnection = $this->ldap_connect();
if ($filter=="*") {
$filter = "(&(".$this->config->user_attribute."=*)(".$this->config->objectclass."))";
$filter = '(&('.$this->config->user_attribute.'=*)'.$this->config->objectclass.')';
}
$contexts = explode(";",$this->config->contexts);
@@ -1784,16 +1843,55 @@ class auth_plugin_ldap extends auth_plugin_base {
*
*/
function loginpage_hook() {
global $CFG;
global $CFG, $SESSION;
if (($_SERVER['REQUEST_METHOD'] === 'GET' // Only on initial GET of loginpage
|| ($_SERVER['REQUEST_METHOD'] === 'POST'
&& (get_referer() != strip_querystring(qualified_me()))))
// Or when POSTed from another place
// See MDL-14071
&& !empty($this->config->ntlmsso_enabled) // SSO enabled
&& !empty($this->config->ntlmsso_subnet) // have a subnet to test for
&& empty($_GET['authldap_skipntlmsso']) // haven't failed it yet
&& (isguestuser() || !isloggedin()) // guestuser or not-logged-in users
&& address_in_subnet(getremoteaddr(), $this->config->ntlmsso_subnet)) {
if ($_SERVER['REQUEST_METHOD'] === 'GET' // Only on initial GET
// of loginpage
&&!empty($this->config->ntlmsso_enabled)// SSO enabled
&& !empty($this->config->ntlmsso_subnet)// have a subnet to test for
&& empty($_GET['authldap_skipntlmsso']) // haven't failed it yet
&& (isguestuser() || !isloggedin()) // guestuser or not-logged-in users
&& address_in_subnet($_SERVER['REMOTE_ADDR'],$this->config->ntlmsso_subnet)) {
redirect("{$CFG->wwwroot}/auth/ldap/ntlmsso_attempt.php");
// First, let's remember where we were trying to get to before we got here
if (empty($SESSION->wantsurl)) {
$SESSION->wantsurl = (array_key_exists('HTTP_REFERER', $_SERVER) &&
$_SERVER['HTTP_REFERER'] != $CFG->wwwroot &&
$_SERVER['HTTP_REFERER'] != $CFG->wwwroot.'/' &&
$_SERVER['HTTP_REFERER'] != $CFG->httpswwwroot.'/login/' &&
$_SERVER['HTTP_REFERER'] != $CFG->httpswwwroot.'/login/index.php')
? $_SERVER['HTTP_REFERER'] : NULL;
}
// Now start the whole NTLM machinery.
if(!empty($this->config->ntlmsso_ie_fastpath)) {
// Shortcut for IE browsers: skip the attempt page at all
if(check_browser_version('MSIE')) {
$sesskey = sesskey();
redirect($CFG->wwwroot.'/auth/ldap/ntlmsso_magic.php?sesskey='.$sesskey);
} else {
redirect($CFG->httpswwwroot.'/login/index.php?authldap_skipntlmsso=1');
}
} else {
redirect($CFG->wwwroot.'/auth/ldap/ntlmsso_attempt.php');
}
}
// No NTLM SSO, Use the normal login page instead.
// If $SESSION->wantsurl is empty and we have a 'Referer:' header, the login
// page insists on redirecting us to that page after user validation. If
// we clicked on the redirect link at the ntlmsso_finish.php page instead
// of waiting for the redirection to happen, then we have a 'Referer:' header
// we don't want to use at all. As we can't get rid of it, just point
// $SESSION->wantsurl to $CFG->wwwroot (after all, we came from there).
if (empty($SESSION->wantsurl)
&& (get_referer() == $CFG->httpswwwroot.'/auth/ldap/ntlmsso_finish.php')) {
$SESSION->wantsurl = $CFG->wwwroot;
}
}
@@ -1816,7 +1914,14 @@ class auth_plugin_ldap extends auth_plugin_base {
*/
function ntlmsso_magic($sesskey) {
if (isset($_SERVER['REMOTE_USER']) && !empty($_SERVER['REMOTE_USER'])) {
$username = $_SERVER['REMOTE_USER'];
// HTTP __headers__ seem to be sent in ISO-8859-1 encoding
// (according to my reading of RFC-1945, RFC-2616 and RFC-2617 and
// my local tests), so we need to convert the REMOTE_USER value
// (i.e., what we got from the HTTP WWW-Authenticate header) into UTF-8
$textlib = textlib_get_instance();
$username = $textlib->convert($_SERVER['REMOTE_USER'], 'iso-8859-1', 'utf-8');
$username = substr(strrchr($username, '\\'), 1); //strip domain info
$username = moodle_strtolower($username); //compatibility hack
set_cache_flag('auth/ldap/ntlmsess', $sesskey, $username, AUTH_NTLMTIMEOUT);
@@ -1962,7 +2067,7 @@ class auth_plugin_ldap extends auth_plugin_base {
if (!isset($config->forcechangepassword))
{$config->forcechangepassword = 0; }
if (!isset($config->stdchangepassword))
{$config->forcechangepassword = 0; }
{$config->stdchangepassword = 0; }
if (!isset($config->passtype))
{$config->passtype = 'plaintext'; }
if (!isset($config->changepasswordurl))
@@ -1973,6 +2078,8 @@ class auth_plugin_ldap extends auth_plugin_base {
{$config->ntlmsso_enabled = 0; }
if (!isset($config->ntlmsso_subnet))
{$config->ntlmsso_subnet = ''; }
if (!isset($config->ntlmsso_ie_fastpath))
{$config->ntlmsso_ie_fastpath = 0; }
// save settings
set_config('host_url', $config->host_url, 'auth/ldap');
@@ -1987,7 +2094,7 @@ class auth_plugin_ldap extends auth_plugin_base {
set_config('bind_dn', $config->bind_dn, 'auth/ldap');
set_config('bind_pw', $config->bind_pw, 'auth/ldap');
set_config('version', $config->version, 'auth/ldap');
set_config('objectclass', $config->objectclass, 'auth/ldap');
set_config('objectclass', trim($config->objectclass), 'auth/ldap');
set_config('memberattribute', $config->memberattribute, 'auth/ldap');
set_config('memberattribute_isdn', $config->memberattribute_isdn, 'auth/ldap');
set_config('creators', $config->creators, 'auth/ldap');
@@ -2005,6 +2112,7 @@ class auth_plugin_ldap extends auth_plugin_base {
set_config('removeuser', $config->removeuser, 'auth/ldap');
set_config('ntlmsso_enabled', (int)$config->ntlmsso_enabled, 'auth/ldap');
set_config('ntlmsso_subnet', $config->ntlmsso_subnet, 'auth/ldap');
set_config('ntlmsso_ie_fastpath', (int)$config->ntlmsso_ie_fastpath, 'auth/ldap');
return true;
}
@@ -2056,7 +2164,7 @@ class auth_plugin_ldap extends auth_plugin_base {
// If UF_DONT_EXPIRE_PASSWD flag is set in user's
// userAccountControl attribute, the password doesn't expire.
$sr = ldap_read($ldapconn, $user_dn, 'objectclass=*',
$sr = ldap_read($ldapconn, $user_dn, '(objectClass=*)',
array('userAccountControl'));
if (!$sr) {
error_log("ldap: error getting userAccountControl for $user_dn");
@@ -2102,7 +2210,7 @@ class auth_plugin_ldap extends auth_plugin_base {
// details below).
// ----------------------------------------------------------------
$sr = ldap_read($ldapconn, ROOTDSE, 'objectclass=*',
$sr = ldap_read($ldapconn, ROOTDSE, '(objectClass=*)',
array('defaultNamingContext'));
if (!$sr) {
error_log("ldap: error querying rootDSE for Active Directory");
@@ -2112,7 +2220,7 @@ class auth_plugin_ldap extends auth_plugin_base {
$info = $this->ldap_get_entries($ldapconn, $sr);
$domaindn = $info[0]['defaultNamingContext'][0];
$sr = ldap_read ($ldapconn, $domaindn, 'objectclass=*',
$sr = ldap_read ($ldapconn, $domaindn, '(objectClass=*)',
array('maxPwdAge'));
$info = $this->ldap_get_entries($ldapconn, $sr);
$maxpwdage = $info[0]['maxPwdAge'][0];
+13
View File
@@ -59,6 +59,8 @@
{$config->ntlmsso_enabled = 0; }
if (!isset($config->ntlmsso_subnet))
{$config->ntlmsso_subnet = ''; }
if (!isset($config->ntlmsso_ie_fastpath))
{$config->ntlmsso_ie_fastpath = 0; }
$yesno = array( get_string('no'), get_string('yes') );
@@ -468,6 +470,17 @@ if (!function_exists('ldap_connect')) { // Is php4-ldap really there?
<?php print_string('auth_ntlmsso_subnet','auth') ?>
</td>
</tr>
<tr valign="top">
<td align="right"><label for="menuntlmsso_ie_fastpath"><?php print_string('auth_ntlmsso_ie_fastpath_key','auth') ?></label></td>
<td>
<?php
choose_from_menu($yesno, 'ntlmsso_ie_fastpath', $config->ntlmsso_ie_fastpath, '0');
?>
</td>
<td>
<?php print_string('auth_ntlmsso_ie_fastpath','auth') ?>
</td>
</tr>
<?php
+10 -2
View File
@@ -22,7 +22,15 @@ if (empty($authplugin->config->ntlmsso_enabled)) {
$sesskey = sesskey();
//print_header("$site->fullname: $loginsite", $site->fullname, $loginsite, $focus, '', true);
// Display the page header. This makes redirect respect the timeout we specify
// here (and not add 3 more secs) which in turn prevents a bug in both IE 6.x
// and FF 3.x (Windows version at least) where javascript timers fire up even
// when we've already left the page that set the timer.
$loginsite = get_string("loginsite");
$navlinks = array(array('name' => $loginsite, 'link' => null, 'type' => 'misc'));
$navigation = build_navigation($navlinks);
print_header("$site->fullname: $loginsite", $site->fullname, $navigation, '', '', true);
$msg = '<p>'.get_string('ntlmsso_attempting','auth').'</p>'
. '<img width="1", height="1" '
. ' src="' . $CFG->wwwroot . '/auth/ldap/ntlmsso_magic.php?sesskey='
@@ -31,4 +39,4 @@ redirect($CFG->wwwroot . '/auth/ldap/ntlmsso_finish.php', $msg, 3);
?>
?>
+8 -2
View File
@@ -24,7 +24,13 @@ if (empty($authplugin->config->ntlmsso_enabled)) {
// so we only worry about failure.
if (!$authplugin->ntlmsso_finish()) {
// Redirect to login, saying "don't try again!"
redirect($CFG->wwwroot . '/login/index.php?authldap_skipntlmsso=1',
// Display the page header. This makes redirect respect the timeout we specify
// here (and not add 3 more secs).
$loginsite = get_string("loginsite");
$navlinks = array(array('name' => $loginsite, 'link' => null, 'type' => 'misc'));
$navigation = build_navigation($navlinks);
print_header("$site->fullname: $loginsite", $site->fullname, $navigation, '', '', true);
redirect($CFG->httpswwwroot . '/login/index.php?authldap_skipntlmsso=1',
get_string('ntlmsso_failed','auth'), 3);
}
?>
?>
+7 -1
View File
@@ -27,6 +27,12 @@ $file = $CFG->dirroot . '/pix/spacer.gif';
if ($authplugin->ntlmsso_magic($sesskey)
&& file_exists($file)) {
if (!empty($authplugin->config->ntlmsso_ie_fastpath)) {
if (check_browser_version('MSIE')) {
redirect($CFG->wwwroot . '/auth/ldap/ntlmsso_finish.php');
}
}
// Serve GIF
// Type
header('Content-Type: image/gif');
@@ -41,4 +47,4 @@ if ($authplugin->ntlmsso_magic($sesskey)
print_error('ntlmsso_iwamagicnotenabled','auth');
}
?>
?>
-5
View File
@@ -1,10 +1,5 @@
<!-- No config needed -->
<div style="text-align:center"><?php print_string('none'); ?></div>
<table cellspacing="0" cellpadding="5" border="0">
<?php
print_auth_lock_options('manual', $user_fields, get_string('auth_fieldlocks_help', 'auth'), false, false);
?>
</table>
+87 -63
View File
@@ -208,7 +208,7 @@ class auth_plugin_mnet extends auth_plugin_base {
$mnet_session->confirm_timeout = time() + $this->config->rpc_negotiation_timeout;
$mnet_session->expires = time() + (integer)ini_get('session.gc_maxlifetime');
$mnet_session->session_id = session_id();
if (! $mnet_session->id = insert_record('mnet_session', addslashes_object($mnet_session))) {
if (! $mnet_session->id = insert_record('mnet_session', addslashes_recursive($mnet_session))) {
print_error('databaseerror', 'mnet');
}
} else {
@@ -217,7 +217,7 @@ class auth_plugin_mnet extends auth_plugin_base {
$mnet_session->confirm_timeout = time() + $this->config->rpc_negotiation_timeout;
$mnet_session->expires = time() + (integer)ini_get('session.gc_maxlifetime');
$mnet_session->session_id = session_id();
if (false == update_record('mnet_session', addslashes_object($mnet_session))) {
if (false == update_record('mnet_session', addslashes_recursive($mnet_session))) {
print_error('databaseerror', 'mnet');
}
}
@@ -244,7 +244,7 @@ class auth_plugin_mnet extends auth_plugin_base {
require_once $CFG->dirroot . '/mnet/xmlrpc/client.php';
// verify the remote host is configured locally before attempting RPC call
if (! $remotehost = get_record('mnet_host', 'wwwroot', $remotewwwroot)) {
if (! $remotehost = get_record('mnet_host', 'wwwroot', $remotewwwroot, 'deleted', 0)) {
print_error('notpermittedtoland', 'mnet');
}
@@ -294,7 +294,7 @@ class auth_plugin_mnet extends auth_plugin_base {
print_error('nolocaluser', 'mnet');
}
$remoteuser->mnethostid = $remotehost->id;
if (! insert_record('user', addslashes_object($remoteuser))) {
if (! insert_record('user', addslashes_recursive($remoteuser))) {
print_error('databaseerror', 'mnet');
}
$firsttime = true;
@@ -368,7 +368,7 @@ class auth_plugin_mnet extends auth_plugin_base {
$localuser->mnethostid = $remotepeer->id;
$bool = update_record('user', addslashes_object($localuser));
$bool = update_record('user', addslashes_recursive($localuser));
if (!$bool) {
// TODO: Jonathan to clean up mess
// Actually, this should never happen (modulo race conditions) - ML
@@ -391,12 +391,12 @@ class auth_plugin_mnet extends auth_plugin_base {
$mnet_session->confirm_timeout = time();
$mnet_session->expires = time() + (integer)$session_gc_maxlifetime;
$mnet_session->session_id = session_id();
if (! $mnet_session->id = insert_record('mnet_session', addslashes_object($mnet_session))) {
if (! $mnet_session->id = insert_record('mnet_session', addslashes_recursive($mnet_session))) {
print_error('databaseerror', 'mnet');
}
} else {
$mnet_session->expires = time() + (integer)$session_gc_maxlifetime;
update_record('mnet_session', addslashes_object($mnet_session));
update_record('mnet_session', addslashes_recursive($mnet_session));
}
if (!$firsttime) {
@@ -540,7 +540,7 @@ class auth_plugin_mnet extends auth_plugin_base {
// First up - do we have a record for this course?
if (!array_key_exists($course['remoteid'], $currentcourses)) {
// No record - we must create it
$course['id'] = insert_record('mnet_enrol_course', addslashes_object((object)$course));
$course['id'] = insert_record('mnet_enrol_course', addslashes_recursive((object)$course));
$currentcourse = (object)$course;
} else {
// Pointer to current course:
@@ -558,7 +558,7 @@ class auth_plugin_mnet extends auth_plugin_base {
}
if ($saveflag) {
update_record('mnet_enrol_course', addslashes_object($currentcourse));
update_record('mnet_enrol_course', addslashes_recursive($currentcourse));
}
if (isset($currentcourse->assignmentid) && is_numeric($currentcourse->assignmentid)) {
@@ -581,7 +581,7 @@ class auth_plugin_mnet extends auth_plugin_base {
$assignObj->hostid = (int)$MNET_REMOTE_CLIENT->id;
$assignObj->courseid = $course['id'];
$assignObj->rolename = $course['defaultrolename'];
$assignObj->id = insert_record('mnet_enrol_assignments', addslashes_object($assignObj));
$assignObj->id = insert_record('mnet_enrol_assignments', addslashes_recursive($assignObj));
}
}
@@ -772,76 +772,76 @@ class auth_plugin_mnet extends auth_plugin_base {
join("\n", $mnet_request->error));
break;
}
$mnethostlogssql = '
SELECT
mhostlogs.remoteid, mhostlogs.time, mhostlogs.userid, mhostlogs.ip,
mhostlogs.course, mhostlogs.module, mhostlogs.cmid, mhostlogs.action,
mhostlogs.url, mhostlogs.info, mhostlogs.username, c.fullname as coursename,
c.modinfo
FROM
(
SELECT
l.id as remoteid, l.time, l.userid, l.ip, l.course, l.module, l.cmid,
l.action, l.url, l.info, u.username
FROM
' . $CFG->prefix . 'user u
INNER JOIN ' . $CFG->prefix . 'log l on l.userid = u.id
WHERE
u.mnethostid = ' . $mnethostid . '
AND l.id > ' . $mnet_request->response['last log id'] . '
ORDER BY remoteid ASC
LIMIT 500
) mhostlogs
INNER JOIN ' . $CFG->prefix . 'course c on c.id = mhostlogs.course
ORDER by mhostlogs.remoteid ASC';
$query = "SELECT
l.id as remoteid,
l.time,
l.userid,
l.ip,
l.course,
l.module,
l.cmid,
l.action,
l.url,
l.info,
c.fullname as coursename,
c.modinfo as modinfo,
u.username
FROM
{$CFG->prefix}user u,
{$CFG->prefix}log l,
{$CFG->prefix}course c
WHERE
l.userid = u.id AND
u.mnethostid = '$mnethostid' AND
l.id > '".$mnet_request->response['last log id']."' AND
c.id = l.course
ORDER BY
remoteid ASC";
$mnethostlogs = get_records_sql($mnethostlogssql);
$results = get_records_sql($query);
if ($mnethostlogs == false) {
continue;
}
if (false == $results) continue;
$processedlogs = array();
$param = array();
foreach($results as $result) {
if (!empty($result->modinfo) && !empty($result->cmid)) {
$modinfo = unserialize($result->modinfo);
unset($result->modinfo);
foreach($mnethostlogs as $hostlog) {
// Extract the name of the relevant module instance from the
// course modinfo if possible.
if (!empty($hostlog->modinfo) && !empty($hostlog->cmid)) {
$modinfo = unserialize($hostlog->modinfo);
unset($hostlog->modinfo);
$modulearray = array();
foreach($modinfo as $module) {
$modulearray[$module->cm] = urldecode($module->name);
}
$result->resource_name = $modulearray[$result->cmid];
$hostlog->resource_name = $modulearray[$hostlog->cmid];
} else {
$result->resource_name = '';
$hostlog->resource_name = '';
}
$param[] = array (
'remoteid' => $result->remoteid,
'time' => $result->time,
'userid' => $result->userid,
'ip' => $result->ip,
'course' => $result->course,
'coursename' => $result->coursename,
'module' => $result->module,
'cmid' => $result->cmid,
'action' => $result->action,
'url' => $result->url,
'info' => $result->info,
'resource_name' => $result->resource_name,
'username' => $result->username
$processedlogs[] = array (
'remoteid' => $hostlog->remoteid,
'time' => $hostlog->time,
'userid' => $hostlog->userid,
'ip' => $hostlog->ip,
'course' => $hostlog->course,
'coursename' => $hostlog->coursename,
'module' => $hostlog->module,
'cmid' => $hostlog->cmid,
'action' => $hostlog->action,
'url' => $hostlog->url,
'info' => $hostlog->info,
'resource_name' => $hostlog->resource_name,
'username' => $hostlog->username
);
}
unset($result);
unset($hostlog);
$mnet_request = new mnet_xmlrpc_client();
$mnet_request->set_method('auth/mnet/auth.php/refresh_log');
// set $token and $useragent parameters
$mnet_request->add_param($param);
$mnet_request->add_param($processedlogs);
if ($mnet_request->send($mnet_peer) === true) {
if ($mnet_request->response['code'] > 0) {
@@ -877,7 +877,7 @@ class auth_plugin_mnet extends auth_plugin_base {
if (isset($useridarray[$logEntryObj->username])) {
$logEntryObj->userid = $useridarray[$logEntryObj->username];
} else {
$logEntryObj->userid = get_field('user','id','username',$logEntryObj->username);
$logEntryObj->userid = get_field('user','id','username',$logEntryObj->username,'mnethostid',(int)$logEntryObj->hostid);
if ($logEntryObj->userid == false) {
$logEntryObj->userid = 0;
}
@@ -886,10 +886,12 @@ class auth_plugin_mnet extends auth_plugin_base {
unset($logEntryObj->username);
$insertok = insert_record('mnet_log', addslashes_object($logEntryObj), false);
$logEntryObj = $this->trim_logline($logEntryObj);
$insertok = insert_record('mnet_log', addslashes_recursive($logEntryObj), false);
if ($insertok) {
$MNET_REMOTE_CLIENT->last_log_id = $logEntryObj->remoteid;
$MNET_REMOTE_CLIENT->updateparams->last_log_id = $logEntryObj->remoteid;
} else {
$returnString .= 'Record with id '.$logEntryObj->remoteid." failed to insert.\n";
}
@@ -1312,9 +1314,12 @@ class auth_plugin_mnet extends auth_plugin_base {
svc.apiversion,
h2s.id as h2s_id
FROM
{$CFG->prefix}mnet_host h,
{$CFG->prefix}mnet_service svc,
{$CFG->prefix}mnet_host2service h2s
WHERE
h.deleted = '0' AND
h.id = h2s.hostid AND
h2s.hostid = '$mnethostid' AND
h2s.serviceid = svc.id AND
svc.name = '$servicename' AND
@@ -1349,6 +1354,25 @@ class auth_plugin_mnet extends auth_plugin_base {
}
}
/**
* Trims a log line from mnet peer to limit each part to a length which can be stored in our DB
*
* @param object $logline The log information to be trimmed
* @return object The passed logline object trimmed to not exceed storable limits
*/
function trim_logline ($logline) {
$limits = array('ip' => 15, 'coursename' => 40, 'module' => 20, 'action' => 40,
'url' => 255);
foreach ($limits as $property => $limit) {
if (isset($logline->$property)) {
$logline->$property = substr($logline->$property, 0, $limit);
}
}
return $logline;
}
}
?>
+8 -2
View File
@@ -14,7 +14,7 @@
require_once dirname(dirname(dirname(__FILE__))) . '/config.php';
require_login();
require_login(SITEID,false);
if (!is_enabled_auth('mnet')) {
error('mnet is disabled');
@@ -22,9 +22,15 @@ if (!is_enabled_auth('mnet')) {
// grab the GET params - wantsurl could be anything - take it
// with PARAM_RAW
$hostid = required_param('hostid', PARAM_INT);
$hostid = optional_param('hostid', '0', PARAM_INT);
$hostwwwroot = optional_param('hostwwwroot', '', PARAM_URL);
$wantsurl = optional_param('wantsurl', '', PARAM_RAW);
// If hostid hasn't been specified, try getting it using wwwroot
if (!$hostid) {
$hostid = get_field('mnet_host', 'id', 'wwwroot', $hostwwwroot);
}
// start the mnet session and redirect browser to remote URL
$mnetauth = get_auth_plugin('mnet');
$url = $mnetauth->start_jump_session($hostid, $wantsurl);
+51 -1
View File
@@ -9,8 +9,10 @@
*
* Authenticates against a RADIUS server.
* Contributed by Clive Gould <clive@ce.bromley.ac.uk>
* CHAP support contributed by Stanislav Tsymbalov http://www.tsymbalov.net/
*
* 2006-08-31 File created.
* 2008-03-12 CHAP support added by Stanislav Tsymbalov.
*/
if (!defined('MOODLE_INTERNAL')) {
@@ -42,6 +44,7 @@ class auth_plugin_radius extends auth_plugin_base {
*/
function user_login ($username, $password) {
require_once 'Auth/RADIUS.php';
require_once 'Crypt/CHAP.php';
// Added by Clive on 7th May for test purposes
// printf("Username: $username <br/>");
@@ -50,9 +53,52 @@ class auth_plugin_radius extends auth_plugin_base {
// printf("nasport: $this->config->nasport <br/>");
// printf("secret: $this->config->secret <br/>");
$rauth = new Auth_RADIUS_PAP(stripslashes($username), stripslashes($password));
// Added by Stanislav Tsymbalov on 12th March 2008 only for test purposes
//$type = 'PAP';
//$type = 'CHAP_MD5';
//$type = 'MSCHAPv1';
//$type = 'MSCHAPv2';
$type = $this->config->radiustype;
if (empty($type)) {
$type = 'PAP';
}
$classname = 'Auth_RADIUS_' . $type;
$rauth = new $classname(stripslashes($username), stripslashes($password));
$rauth->addServer($this->config->host, $this->config->nasport, $this->config->secret);
$rauth->username = $username;
switch($type) {
case 'CHAP_MD5':
case 'MSCHAPv1':
$classname = $type == 'MSCHAPv1' ? 'Crypt_CHAP_MSv1' : 'Crypt_CHAP_MD5';
$crpt = new $classname;
$crpt->password = $password;
$rauth->challenge = $crpt->challenge;
$rauth->chapid = $crpt->chapid;
$rauth->response = $crpt->challengeResponse();
$rauth->flags = 1;
// If you must use deprecated and weak LAN-Manager-Responses use this:
// $rauth->lmResponse = $crpt->lmChallengeResponse();
// $rauth->flags = 0;
break;
case 'MSCHAPv2':
$crpt = new Crypt_CHAP_MSv2;
$crpt->username = $username;
$crpt->password = $password;
$rauth->challenge = $crpt->authChallenge;
$rauth->peerChallenge = $crpt->peerChallenge;
$rauth->chapid = $crpt->chapid;
$rauth->response = $crpt->challengeResponse();
break;
default:
$rauth->password = $password;
break;
}
if (!$rauth->start()) {
printf("Radius start: %s<br/>\n", $rauth->getError());
exit;
@@ -122,6 +168,9 @@ class auth_plugin_radius extends auth_plugin_base {
if (!isset ($config->nasport)) {
$config->nasport = '1812';
}
if (!isset($config->radiustype)) {
$config->radiustype = 'PAP';
}
if (!isset ($config->secret)) {
$config->secret = '';
}
@@ -134,6 +183,7 @@ class auth_plugin_radius extends auth_plugin_base {
set_config('nasport', $config->nasport, 'auth/radius');
set_config('secret', $config->secret, 'auth/radius');
set_config('changepasswordurl', $config->changepasswordurl, 'auth/radius');
set_config('radiustype', $config->radiustype, 'auth/radius');
return true;
}
+31 -4
View File
@@ -1,10 +1,12 @@
<?php
// TODO: this generates broken file errors, needs safer test -JH
// Is Auth/RADIUS really there?
if (!defined('Auth_RADIUS_PAP') or !class_exists(Auth_RADIUS_PAP) or !include_once('Auth/RADIUS.php')) {
print '<p style="text-align:center; color: red"><strong>Warning: The Auth_RADIUS module does not seem to be present. Please ensure it is installed and enabled.</strong></p>';
if (!extension_loaded('radius')) {
print '<div class="box errorbox errorboxcontent"><p class="errormessage"><strong>Warning: The PHP RADIUS extension is not present. Please ensure it is installed and enabled.</strong></p></div>';
}
include_once 'Auth/RADIUS.php';
if (!class_exists('Auth_RADIUS')) {
print '<div class="box errorbox errorboxcontent"><p class="errormessage"><strong>Warning: There is a problem with the PHP Pear Auth_RADIUS package. Please ensure it is installed correctly.</strong></p></div>';
}
// set to defaults if undefined
@@ -14,6 +16,9 @@ if (!isset($config->host)) {
if (!isset($config->nasport)) {
$config->nasport = '1812';
}
if (!isset($config->radiustype)) {
$config->radiustype = 'PAP';
}
if (!isset($config->secret)) {
$config->secret = '';
}
@@ -54,6 +59,28 @@ if (!isset($config->changepasswordurl)) {
<td><?php print_string('auth_radiusnasport', 'auth') ?></td>
</tr>
<tr valign="top" >
<td align="right"><?php print_string('auth_radiustype_key', 'auth') ?>: </td>
<td>
<?php
$radiustype = array();
$radiustype['PAP'] = get_string('auth_radiustypepap', 'auth');
$radiustype['CHAP_MD5'] = get_string('auth_radiustypechapmd5', 'auth');
$radiustype['MSCHAPv1'] = get_string('auth_radiustypemschapv1', 'auth');
$radiustype['MSCHAPv2'] = get_string('auth_radiustypemschapv2', 'auth');
choose_from_menu($radiustype, 'radiustype', $config->radiustype, '');
if (isset($err['radiustype'])) {
formerr($err['radiustype']);
}
?>
</td>
<td><?php print_string('auth_radiustype', 'auth') ?></td>
</tr>
<tr valign="top" >
<td align="right"><?php print_string('auth_radiussecret_key', 'auth') ?>: </td>
<td>
+118 -10
View File
@@ -2,8 +2,8 @@ Shibboleth Authentication for Moodle
-------------------------------------------------------------------------------
Requirements:
- Shibboleth target 1.1 or later. See documentation for your Shibboleth
federation on how to set up Shibboleth.
- Shibboleth Service Provider 1.3 or newer. Recommended is 2.1 or newer.
See documentation for your Shibboleth federation on how to set up Shibboleth.
Changes:
- 11. 2004: Created by Markus Hagman
@@ -20,6 +20,11 @@ Changes:
- 10. 2007: Removed the requirement for email address, surname and given name
attributes on request of Markus Hagman
- 11. 2007: Integrated WAYF Service in Moodle
- 12. 2008: Shibboleth 2.x and Single Logout support added
- 1. 2008: Added logout hook and moved Shibboleth config strings to utf8 auth
language files.
- 3. 2009: Added various improvements and bug fixes reported by Ina Müller from
university Tuebingen and Peter Ellis of University of Washington
Moodle Configuration with Dual login
-------------------------------------------------------------------------------
@@ -39,17 +44,30 @@ Moodle Configuration with Dual login
with something that fits your needs, e.g. 'require affiliation student'.
For IIS you have protect the auth/shibboleth directory directly in the
RequestMap of the Shibboleth configuration file (shibboleth.xml). See
RequestMap of the Shibboleth configuration file (shibboleth.xml or
shibboleth2.xml).
https://spaces.internet2.edu/display/SHIB/xmlaccesscontrol?topic=XMLAccessControl
--
<Path name="moodle" requireSession="false" >
<Path name="auth/shibboleth/index.php" requireSession="true" >
<AccessControl>
...
</AccessControl>
</Path>
</Path>
--
Also see:
https://spaces.internet2.edu/display/SHIB2/NativeSPRequestMapper and
https://spaces.internet2.edu/display/SHIB2/NativeSPAccessControl
2. As Moodle admin, go to the 'Administrations >> Users >> Authentication
Options' and click on the the 'Shibboleth' settings.
2. As Moodle admin, go to the 'Administrations >> Users >> Authentication' and
click on the the 'Shibboleth' settings.
3. Fill in the fields of the form. The fields 'Username', 'First name',
'Surname', etc. should contain the name of the environment variables of the
Shibboleth attributes that you want to map onto the corresponding Moodle
variable (e.g. 'HTTP_SHIB_PERSON_SURNAME' for the person's last name, refer
variable (e.g. 'Shib-Person-surname' for the person's last name, refer
the Shibboleth documentation or the documentation of your Shibboleth
federation for information on which attributes are available).
Especially the 'Username' field is of great importance because
@@ -72,14 +90,16 @@ Moodle Configuration with Dual login
to the the URL of the file 'moodle/auth/shibboleth/index.php'.
This will enforce Shibboleth login.
4.b If you want to use the Moodle internal WAYF service, you have to activate it
4.b If you want to use the Moodle integrated WAYF service, you have to activate it
in the Moodle Shibboleth authentication settings by checking the
'Moodle WAYF Service' checkbox and providing a list of entity IDs in the
'Identity Providers' textarea together with a name and an optional
SessionInitiator URL, which usually is an absolute or relative URL pointing
to the same host. If no SessionInitiator URL is given, the default one
'/Shibboleth.sso' will be used.
'/Shibboleth.sso' (only works for Shibboleth 1.3.x) will be used. For
Shibboleth 2.x you have to add '/Shibboleth.sso/DS' as a SessionInitiator.
Also see https://spaces.internet2.edu/display/SHIB/SessionInitiator
and https://spaces.internet2.edu/display/SHIB2/NativeSPSessionInitiator
Important Note: If you upgraded from a previous version of Moodle and now
want to use the integrated WAYF, you have to make sure that
@@ -87,7 +107,7 @@ Moodle Configuration with Dual login
moodle/auth/shibboleth/ is protected but *not* the other
scripts and especially not the login.php script.
5. Save the changes for the 'Shibboleth settings'. T
5. Save the changes for the 'Shibboleth settings'.
Important Note: If you went for 4.b (integrated WAYF service), saving the
settings will overwrite the Moodle Alternate Login URL
@@ -199,6 +219,94 @@ Example file:
?>
--
How to upgrade your Service Provider to 2.x
-------------------------------------------------------------------------------
In case your upgrade your Service Provider 1.3.x to 2.x, be aware of the fact
that in version 2.0 the default behaviour regarding attribute propagation
changed.
While the Service Provider 1.3.x published the Shibboleth attributes to the
web server environment as HTTP Request headers, the Service Provider 2.x
publishes attributes as environment variables, which increases the security for
some platforms.
However, this change has the effect that the attribute names change.
E.g. while the surname attribute was published as 'HTTP_SHIB_PERSON_SURNAME'
with 1.3.x, this attribute will be available in $_SERVER['Shib-Person-surname']
or depending on your /etc/shibboleth/attribute-map.xml file just as
$_SERVER['sn'].
Because Moodle needs to know what Shibboleth attributes it shall map onto which
Moodle user profile field, one has to make sure the mapping is updated as well
after the Service Provider upgrade.
********************************************************************************
Because you risk locking yourself out of Moodle it is strongly
recommended to use the following approach when upgrading the Service Provider:
1. Enable manual authentication before the upgrade.
2. Make sure that you have at least one manual account with administration
privileges working before upgrading your Service Provider to 2.x.
3. After the SP upgrade, use this account to log into Moodle and adapt the
attribute mapping in 'Site Administration -> Users -> Shibboleth' to reflect
the changed attribute names.
You find the attribute names in the file /etc/shibboleth/attribute-map.xml
listed as the 'id' value of an attribute definition.
4. If you are using the integrated WAYF, you may have to set the third parameter
of each entry to '/Shibboleth.sso/DS'
5. Test the login with a Shibboleth account
6. If all is working, disable manual authentication again
********************************************************************************
How to add logout support
--------------------------------------------------------------------------------
In order make Moodle support Shibboleth logout, one has to make the Shibboleth
Service Provider (SP) aware of the Moodle logout capability. Only then the SP
can trigger Moodle's front or back channel logout handler.
To make the SP aware of the Moodle logout, you have to add the following to the
Shibboleth main configuration file shibboleth2.xml (usually in /etc/shibboleth/)
just before the <MetadataProvider> element.
--
<Notify
Channel="back"
Location="https://#YOUR_MOODLE_HOSTNAME#/moodle/auth/shibboleth/logout.php" />
<!--
If possible, you should use only the back channel logout once it is working.
-->
<!--
<Notify
Channel="front"
Location="https://#YOUR_MOODLE_HOSTNAME#/moodle/auth/shibboleth/logout.php" />
-->
--
Then restart the Shibboleth daemon and check the log file for errors. If there
were no errors, you can test the logout feature by accessing Moodle,
authenticating via Shibboleth and the access the URL:
#YOUR_MOODLE_HOSTNAME#/Shibboleth.sso/Logout (assuming you have a standard
Shibboleth installation). If everything worked well, you should see a Shibboleth
page saying that you were successfully logged out and if you go back to Moodle
you also should be logged out from Moodle.
Requirements:
- PHP needs the Soap Extension, which maybe must installed manually:
More information is available here http://ch.php.net/soap
- Logout only works with Shibboleth Service Provider 2.1 or higher
Limitations:
Single Logout is only supported when SAML2 is used at the SP and the IdP.
As of December 2008, the Shibboleth Identity Provider 2.1.1 does not yet support
Single Logout (SLO). Therefore, the single logout feature cannot be used yet.
One of the reasons why SLO isn't supported yet is because there aren't many
applications yet that were adapted to support front and back channel
logout. Hopefully, the Moodle logout helps to motivate the developers to
implement SLO :)
Also see https://spaces.internet2.edu/display/SHIB2/SLOIssues and
https://spaces.internet2.edu/display/SHIB2/NativeSPLogoutInitiator for some
background information on this topic.
--------------------------------------------------------------------------------
In case of problems and questions with Shibboleth authentication, contact
Lukas Haemmerle <lukas.haemmerle@switch.ch> or Markus Hagman <hagman@hytti.uku.fi>
+59 -3
View File
@@ -51,9 +51,27 @@ class auth_plugin_shibboleth extends auth_plugin_base {
* @return bool Authentication success or failure.
*/
function user_login($username, $password) {
global $SESSION;
// If we are in the shibboleth directory then we trust the server var
if (!empty($_SERVER[$this->config->user_attribute])) {
// Associate Shibboleth session with user for SLO preparation
$sessionkey = '';
if (isset($_SERVER['Shib-Session-ID'])){
// This is only available for Shibboleth 2.x SPs
$sessionkey = $_SERVER['Shib-Session-ID'];
} else {
// Try to find out using the user's cookie
foreach ($_COOKIE as $name => $value){
if (eregi('_shibsession_', $name)){
$sessionkey = $value;
}
}
}
// Set shibboleth session ID for logout
$SESSION->shibboleth_session_id = $sessionkey;
return (strtolower($_SERVER[$this->config->user_attribute]) == strtolower($username));
} else {
// If we are not, the user has used the manual login and the login name is
@@ -165,6 +183,37 @@ class auth_plugin_shibboleth extends auth_plugin_base {
return;
}
/**
* Hook for logout page
*
*/
function logoutpage_hook() {
global $redirect;
// Only do this if logout handler is defined
if (
isset($this->config->logout_handler)
&& !empty($this->config->logout_handler)
){
// Check if there is an alternative logout return url defined
if (
isset($this->config->logout_return_url)
&& !empty($this->config->logout_return_url)
){
// Set temp_redirect to alternative return url
$temp_redirect = $this->config->logout_return_url;
} else {
// Backup old redirect url
$temp_redirect = $redirect;
}
// Overwrite redirect in order to send user to Shibboleth logout page and let him return back
$redirect = $this->config->logout_handler.'?return='.urlencode($temp_redirect);
}
}
/**
* Prints a form for configuring this authentication plugin.
@@ -225,17 +274,24 @@ class auth_plugin_shibboleth extends auth_plugin_base {
if (isset($config->organization_selection) && !empty($config->organization_selection)) {
set_config('organization_selection', $config->organization_selection, 'auth/shibboleth');
}
set_config('logout_handler', $config->logout_handler, 'auth/shibboleth');
set_config('logout_return_url', $config->logout_return_url, 'auth/shibboleth');
set_config('login_name', $config->login_name, 'auth/shibboleth');
set_config('convert_data', $config->convert_data, 'auth/shibboleth');
set_config('auth_instructions', $config->auth_instructions, 'auth/shibboleth');
set_config('changepasswordurl', $config->changepasswordurl, 'auth/shibboleth');
// Overwrite alternative login URL if integrated WAYF is used
if (isset($config->alt_login) && $config->alt_login == 'on'){
set_config('alt_login', $config->alt_login, 'auth/shibboleth');
set_config('alternateloginurl', $CFG->wwwroot.'/auth/shibboleth/login.php');
} else {
set_config('alt_login', 'off', 'auth/shibboleth');
set_config('alternateloginurl', '');
// Check if integrated WAYF was enabled and is now turned off
// If it was and only then, reset the Moodle alternate URL
if ($this->config->alt_login == 'on'){
set_config('alt_login', 'off', 'auth/shibboleth');
set_config('alternateloginurl', '');
}
$config->alt_login = 'off';
}
+32 -10
View File
@@ -45,7 +45,7 @@
</tr>
<tr valign="top">
<td align="right">Moodle WAYF Service:</td>
<td align="right"><?php print_string("auth_shib_integrated_wayf", "auth") ?>:</td>
<td>
<input name="alt_login" type="checkbox" <?php
if ( isset($config->alt_login) and $config->alt_login == 'on' ){
@@ -53,24 +53,24 @@
}
?> />
</td>
<td>If you check this, Moodle will use its own WAYF service instead of the one configured for Shibboleth. Moodle will display a drop-down list on this alternative login page where the user has to select his Identity Provider.</td>
<td><?php print_string("auth_shib_integrated_wayf_description", "auth") ?></td>
</tr>
<tr valign="top">
<td align="right">Identity Providers:</td>
<td align="right"><?php print_string("auth_shib_idp_list", "auth") ?>:</td>
<td>
<textarea name="organization_selection" rows="10" cols="30" style="overflow: auto; white-space: nowrap;"
><?php
if (!isset($config->organization_selection)){
echo 'urn:mace:organization1:providerID, Example Organization 1
https://another.idp-id.com/shibboleth, Other Example Organization
https://another.idp-id.com/shibboleth, Other Example Organization, /Shibboleth.sso/DS/SWITCHaai
urn:mace:organization2:providerID, Example Organization 2, /Shibboleth.sso/WAYF/SWITCHaai';
} else {
echo $config->organization_selection;
}
?>
</textarea>
<?
<?php
if (isset($config->organization_selection) && empty($config->organization_selection) && isset($config->alt_login) && $config->alt_login == 'on') {
echo '<br/><font color="red">';
print_string("auth_shib_no_organizations_warning", "auth");
@@ -78,13 +78,35 @@ urn:mace:organization2:providerID, Example Organization 2, /Shibboleth.sso/WAYF/
}
?>
</td>
<td>Provide a list of Identity Provider entityIDs to let the user choose from on the login page.
On each line there must be a comma-separated tuple for entityID of the IdP (see the Shibboleth metadata file) and Name of IdP as it shall be displayed in the drow-down list.
As an optional third parameter you can add the location of a Shibboleth session initiator that shall be used in case your Moodle installation is part of a multi federation setup.</td>
<td><?php print_string("auth_shib_idp_list_description", "auth") ?></td>
</tr>
<tr valign="top">
<td align="right">Authentication Method Name:</td>
<td align="right"><?php print_string("auth_shib_logout_url", "auth") ?>:</td>
<td>
<input name="logout_handler" type="text" size="30" value="<?php
if ( isset($config->logout_handler) and !empty($config->logout_handler)){
echo $config->logout_handler;
}
?>" />
</td>
<td><?php print_string("auth_shib_logout_url_description", "auth") ?></td>
</tr>
<tr valign="top">
<td align="right"><?php print_string("auth_shib_logout_return_url", "auth") ?>:</td>
<td>
<input name="logout_return_url" type="text" size="30" value="<?php
if ( isset($config->logout_return_url) and !empty($config->logout_return_url)){
echo $config->logout_return_url;
}
?>" />
</td>
<td><?php print_string("auth_shib_logout_return_url_description", "auth") ?></td>
</tr>
<tr valign="top">
<td align="right"><?php print_string("auth_shib_auth_method", "auth") ?>:</td>
<td>
<input name="login_name" type="text" size="30" value="<?php
if ( isset($config->login_name) and !empty($config->login_name)){
@@ -94,7 +116,7 @@ As an optional third parameter you can add the location of a Shibboleth session
}
?>" />
</td>
<td>Provide a name for the Shibboleth authentication method that is familiar to your users. This could be the name of your Shibboleth federation, e.g. "SWITCHaai Login" or "InCommon Login" and so on.</td>
<td><?php print_string("auth_shib_auth_method_description", "auth") ?></td>
</tr>
<tr valign="top">
+1 -1
View File
@@ -87,7 +87,7 @@
// If we can find any (user independent) Shibboleth attributes but no user
// attributes we probably didn't receive any user attributes
elseif (!empty($_SERVER['HTTP_SHIB_APPLICATION_ID'])) {
elseif (!empty($_SERVER['HTTP_SHIB_APPLICATION_ID']) || !empty($_SERVER['Shib-Application-ID'])) {
print_error('shib_no_attributes_error', 'auth' , '', '\''.$pluginconfig->user_attribute.'\', \''.$pluginconfig->field_map_firstname.'\', \''.$pluginconfig->field_map_lastname.'\' and \''.$pluginconfig->field_map_email.'\'');
} else {
print_error('shib_not_set_up_error', 'auth');
+2 -1
View File
@@ -1,6 +1,5 @@
<?php // $Id$
require_once("../../config.php");
require_once($CFG->dirroot."/auth/shibboleth/auth.php");
@@ -61,6 +60,8 @@ httpsrequired();
if (isset($IdPs[$selectedIdP][1]) && !empty($IdPs[$selectedIdP][1])){
header('Location: '.$IdPs[$selectedIdP][1].'?providerId='. urlencode($selectedIdP) .'&target='. urlencode($CFG->wwwroot.'/auth/shibboleth/index.php'));
} else {
// TODO: This has to be changed to /Shibboleth.sso/DS?entityId= for
// Shibbolet 2.x sometime...
header('Location: /Shibboleth.sso?providerId='. urlencode($selectedIdP) .'&target='. urlencode($CFG->wwwroot.'/auth/shibboleth/index.php'));
}
} elseif (isset($_POST['idp']) && !isset($IdPs[$_POST['idp']])) {
+208
View File
@@ -0,0 +1,208 @@
<?php // $Id$
// Implements logout for Shibboleth authenticated users according to:
// - https://spaces.internet2.edu/display/SHIB2/NativeSPLogoutInitiator
// - https://spaces.internet2.edu/display/SHIB2/NativeSPNotify
require_once("../../config.php");
require_once($CFG->dirroot."/auth/shibboleth/auth.php");
// Find out whether host supports https
$protocol = 'http://';
if ( isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'){
$protocol = 'https://';
}
// Front channel logout
if (
isset($_GET['return'])
&& isset($_GET['action'])
&& $_GET['action'] == 'logout'
){
// Logout out user from application
// E.g. destroy application session/cookie etc
require_logout();
// Finally, send user to the return URL
redirect($_GET['return']);
}
// Back channel logout
elseif (!empty($HTTP_RAW_POST_DATA)) {
// Requires PHP 5
// Set SOAP header
$server = new SoapServer($protocol.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'/LogoutNotification.wsdl');
$server->addFunction("LogoutNotification");
$server->handle();
}
// Return WSDL
else {
header('Content-Type: text/xml');
echo <<<WSDL
<?xml version ="1.0" encoding ="UTF-8" ?>
<definitions name="LogoutNotification"
targetNamespace="urn:mace:shibboleth:2.0:sp:notify"
xmlns:notify="urn:mace:shibboleth:2.0:sp:notify"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<!--
This page either has to be called with the GET arguments 'action' and 'return' via
a redirect from the Shibboleth Service Provider logout handler (front-channel
logout) or via a SOAP request by a Shibboleth Service Provider (back-channel
logout).
Because neither of these two variants seems to be the case, the WSDL file for
the web service is returned.
For more information see:
- https://spaces.internet2.edu/display/SHIB2/NativeSPLogoutInitiator
- https://spaces.internet2.edu/display/SHIB2/NativeSPNotify
-->
<types>
<schema targetNamespace="urn:mace:shibboleth:2.0:sp:notify"
xmlns="http://www.w3.org/2000/10/XMLSchema"
xmlns:notify="urn:mace:shibboleth:2.0:sp:notify">
<simpleType name="string">
<restriction base="string">
<minLength value="1"/>
</restriction>
</simpleType>
<element name="OK" type="notify:OKType"/>
<complexType name="OKType">
<sequence/>
</complexType>
</schema>
</types>
<message name="getLogoutNotificationRequest">
<part name="SessionID" type="notify:string" />
</message>
<message name="getLogoutNotificationResponse" >
<part name="OK"/>
</message>
<portType name="LogoutNotificationPortType">
<operation name="LogoutNotification">
<input message="getLogoutNotificationRequest"/>
<output message="getLogoutNotificationResponse"/>
</operation>
</portType>
<binding name="LogoutNotificationBinding" type="notify:LogoutNotificationPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="LogoutNotification">
<soap:operation soapAction="urn:xmethods-logout-notification#LogoutNotification"/>
</operation>
</binding>
<service name="LogoutNotificationService">
<port name="LogoutNotificationPort" binding="notify:LogoutNotificationBinding">
<soap:address location="{$protocol}{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}"/>
</port>
</service>
</definitions>
WSDL;
exit;
}
/******************************************************************************/
function LogoutNotification($SessionID){
global $CFG, $SESSION;
// Delete session of user using $SessionID
if(empty($CFG->dbsessions)) {
// File session
$dir = $CFG->dataroot .'/sessions';
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
// Read all session files
while (($file = readdir($dh)) !== false) {
// Check if it is a file
if (is_file($dir.'/'.$file)){
$session_key = ereg_replace('sess_', '', $file);
// Read session file data
$data = file($dir.'/'.$file);
if (isset($data[0])){
$user_session = unserializesession($data[0]);
// Check if we have found session that shall be deleted
if (isset($user_session['SESSION']) && isset($user_session['SESSION']->shibboleth_session_id)){
// If there is a match, delete file
if ($user_session['SESSION']->shibboleth_session_id == $SessionID){
// Delete session file
if (!unlink($dir.'/'.$file)){
return new SoapFault('LogoutError', 'Could not delete Moodle session file.');
}
}
}
}
}
}
closedir($dh);
}
}
} else {
// DB Session
if (!empty($CFG->sessiontimeout)) {
$ADODB_SESS_LIFE = $CFG->sessiontimeout;
}
if ($user_session_data = get_records_sql('SELECT sesskey, sessdata FROM '. $CFG->prefix .'sessions2 WHERE expiry > NOW()')) {
foreach ($user_session_data as $session_data) {
// Get user session
$user_session = adodb_unserialize( urldecode($session_data->sessdata) );
if (isset($user_session['SESSION']) && isset($user_session['SESSION']->shibboleth_session_id)){
// If there is a match, delete file
if ($user_session['SESSION']->shibboleth_session_id == $SessionID){
// Delete this session entry
if (ADODB_Session::destroy($session_data->sesskey) !== true){
return new SoapFault('LogoutError', 'Could not delete Moodle session entry in database.');
}
}
}
}
}
}
// If now SoapFault was thrown the function will return OK as the SP assumes
}
/*****************************************************************************/
// Same function as in adodb, but cannot be used for file session for some reason...
function unserializesession( $serialized_string ){
$variables = array( );
$a = preg_split( "/(\w+)\|/", $serialized_string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE );
for( $i = 0; $i < count( $a ); $i = $i+2 ) {
$variables[$a[$i]] = unserialize( $a[$i+1] );
}
return( $variables );
}
?>
+4
View File
@@ -337,6 +337,9 @@ function schedule_backup_course_configure($course,$starttime = 0) {
if (!isset($backup_config->backup_sche_sitefiles)) {
$backup_config->backup_sche_sitefiles = 1;
}
if (!isset($backup_config->backup_sche_gradebook_history)) {
$backup_config->backup_sche_gradebook_history = 0;
}
if (!isset($backup_config->backup_sche_messages)) {
$backup_config->backup_sche_messages = 0;
}
@@ -439,6 +442,7 @@ function schedule_backup_course_configure($course,$starttime = 0) {
$preferences->backup_user_files = $backup_config->backup_sche_userfiles;
$preferences->backup_course_files = $backup_config->backup_sche_coursefiles;
$preferences->backup_site_files = $backup_config->backup_sche_sitefiles;
$preferences->backup_gradebook_history = $backup_config->backup_sche_gradebook_history;
$preferences->backup_messages = $backup_config->backup_sche_messages;
$preferences->backup_blogs = $backup_config->backup_sche_blogs;
$preferences->backup_course = $course->id;
+211 -172
View File
@@ -215,54 +215,28 @@
//Calculate the number of user files to backup
//Under $CFG->dataroot/users
//and put them (their path) in backup_ids
//Return an array of info (name,value)
function user_files_check_backup($course,$backup_unique_code) {
global $CFG;
$rootdir = $CFG->dataroot."/users";
//Check if directory exists
if (is_dir($rootdir)) {
//Get directories without descend
$userdirs = get_directory_list($rootdir,"",false,true,false);
foreach ($userdirs as $dir) {
//Extracts user id from file path
$tok = strtok($dir,"/");
if ($tok) {
$userid = $tok;
} else {
//We were getting $dir='0', so continue (WAS: $tok = "";)
continue;
}
//Look it is a backupable user
$data = get_record ("backup_ids","backup_code","$backup_unique_code",
"table_name","user",
"old_id",$userid);
if ($data) {
//Insert them into backup_files
$status = execute_sql("INSERT INTO {$CFG->prefix}backup_files
(backup_code, file_type, path, old_id)
VALUES
('$backup_unique_code','user','".addslashes($dir)."','$userid')",false);
}
//Do some output
backup_flush(30);
$count = 0;
$backup_users = get_recordset_select("backup_ids",
"backup_code='$backup_unique_code' AND table_name='user'", "", "id, old_id");
while ($user = rs_fetch_next_record($backup_users)) {
//Is this user needed in the backup?
$userdir = make_user_directory($user->old_id, true);
if (check_dir_exists($userdir)) {
$count++;
}
//Do some output
backup_flush(30);
}
//Now execute the select
$ids = get_records_sql("SELECT DISTINCT b.path, b.old_id
FROM {$CFG->prefix}backup_files b
WHERE backup_code = '$backup_unique_code' AND
file_type = 'user'");
rs_close($backup_users);
//Gets the user data
$info[0][0] = get_string("files");
if ($ids) {
$info[0][1] = count($ids);
} else {
$info[0][1] = 0;
}
$info[0][0] = get_string('userswithfiles', 'moodle');
$info[0][1] = $count;
return $info;
}
@@ -509,6 +483,8 @@
fwrite ($bf,full_tag("DATE",2,false,$preferences->backup_unique_code));
//The original site wwwroot
fwrite ($bf,full_tag("ORIGINAL_WWWROOT",2,false,$CFG->wwwroot));
//The original site identifier. MD5 hashed for security.
fwrite ($bf,full_tag("ORIGINAL_SITE_IDENTIFIER_HASH",2,false,md5(get_site_identifier())));
//The zip method used
if (!empty($CFG->zip)) {
$zipmethod = 'external';
@@ -613,7 +589,7 @@
fwrite ($bf,full_tag("SITEFILES",3,false,"false"));
}
//The gradebook histories
if ($preferences->backup_gradebook_history == 1) {
if (empty($CFG->disablegradehistory) && $preferences->backup_gradebook_history == 1) {
fwrite ($bf,full_tag("GRADEBOOKHISTORIES",3,false,"true"));
} else {
fwrite ($bf,full_tag("GRADEBOOKHISTORIES",3,false,"false"));
@@ -1298,11 +1274,16 @@
// Use a recordset to for the memory handling on to
// the DB and run faster
// Note the outer join with mnet_host: It shouldn't be neccesary
// but there are some sites having mnet_host records missing
// and that causes backup to fail (no users). Being a bit more
// flexible here (outer joing) we bypass the problem and doesn't
// cause more troubles. Eloy - MDL-16879
$users = get_recordset_sql("SELECT b.old_id, b.table_name, b.info,
u.*, m.wwwroot
FROM {$CFG->prefix}backup_ids b
JOIN {$CFG->prefix}user u ON b.old_id=u.id
JOIN {$CFG->prefix}mnet_host m ON u.mnethostid=m.id
LEFT JOIN {$CFG->prefix}mnet_host m ON u.mnethostid=m.id
WHERE b.backup_code = '$preferences->backup_unique_code' AND
b.table_name = 'user'");
@@ -1359,7 +1340,7 @@
fwrite ($bf,full_tag("AJAX",4,false,$user->ajax));
fwrite ($bf,full_tag("AUTOSUBSCRIBE",4,false,$user->autosubscribe));
fwrite ($bf,full_tag("TRACKFORUMS",4,false,$user->trackforums));
if ($user->mnethostid != $CFG->mnet_localhost_id) {
if ($user->mnethostid != $CFG->mnet_localhost_id && !empty($user->wwwroot)) {
fwrite ($bf,full_tag("MNETHOSTURL",4,false,$user->wwwroot));
}
fwrite ($bf,full_tag("TIMEMODIFIED",4,false,$user->timemodified));
@@ -1396,11 +1377,11 @@
fwrite ($bf,end_tag("ROLES",4,true));
//Check if we have custom profile fields to backup
if ($cpfields = get_records_sql("SELECT uif.shortname, uif.datatype, uid.data
if ($cpfields = get_records_sql("SELECT uif.shortname, uif.datatype, uidata.data
FROM {$CFG->prefix}user_info_field uif,
{$CFG->prefix}user_info_data uid
WHERE uif.id = uid.fieldid
AND uid.userid = $user->id")) {
{$CFG->prefix}user_info_data uidata
WHERE uif.id = uidata.fieldid
AND uidata.userid = $user->id")) {
//Start USER_CUSTOM_PROFILE_FIELDS tag
fwrite ($bf,start_tag("USER_CUSTOM_PROFILE_FIELDS",4,true));
//Write custom profile fields
@@ -1568,8 +1549,8 @@
AND itemtype = 'mod'")) {
foreach ($grade_items as $grade_item) {
// get module information
// if no user data selected, we do not backup categories
if (!backup_userdata_selected($preferences,$grade_item->itemmodule,$grade_item->iteminstance)) {
// if some activities not selected, we do not backup categories at all
if (!backup_mod_selected($preferences,$grade_item->itemmodule,$grade_item->iteminstance)) {
$backupall = false;
break;
}
@@ -1590,8 +1571,8 @@
$status = backup_gradebook_item_info($bf,$preferences, $backupall);
// backup gradebook histories
if ($preferences->backup_gradebook_history) {
// backup gradebook histories (only if grade history is enabled and selected)
if (empty($CFG->disablegradehistory) && $preferences->backup_gradebook_history) {
$status = backup_gradebook_outcomes_history($bf, $preferences);
$status = backup_gradebook_categories_history_info($bf, $preferences);
$status = backup_gradebook_items_history_info($bf, $preferences);
@@ -1853,28 +1834,28 @@
// find all grade categories history
if ($chs = get_records('grade_categories_history', 'courseid', $preferences->backup_course)) {
fwrite ($bf,start_tag("GRADE_CATEGORIES_HISTORIES",5,true));
fwrite ($bf,start_tag("GRADE_CATEGORIES_HISTORIES",3,true));
foreach ($chs as $ch) {
fwrite ($bf,start_tag("GRADE_CATEGORIES_HISTORY",6,true));
fwrite ($bf,full_tag("ID",7,false,$ch->id));
fwrite ($bf,full_tag("ACTION",7,false,$ch->action));
fwrite ($bf,full_tag("OLDID",7,false,$ch->oldid));
fwrite ($bf,full_tag("SOURCE",7,false,$ch->source));
fwrite ($bf,full_tag("TIMEMODIFIED",7,false,$ch->timemodified));
fwrite ($bf,full_tag("LOGGEDUSER",7,false,$ch->loggeduser));
fwrite ($bf,full_tag("PARENT",7,false,$ch->parent));
fwrite ($bf,full_tag("DEPTH",7,false,$ch->depth));
fwrite ($bf,full_tag("PATH",7,false,$ch->path));
fwrite ($bf,full_tag("FULLNAME",7,false,$ch->fullname));
fwrite ($bf,full_tag("AGGRETGATION",7,false,$ch->aggregation));
fwrite ($bf,full_tag("KEEPHIGH",7,false,$ch->keephigh));
fwrite ($bf,full_tag("DROPLOW",7,false,$ch->droplow));
fwrite ($bf,full_tag("AGGREGATEONLYGRADED",7,false,$ch->aggregateonlygraded));
fwrite ($bf,full_tag("AGGREGATEOUTCOMES",7,false,$ch->aggregateoutcomes));
fwrite ($bf,full_tag("AGGREGATESUBCATS",7,false,$ch->aggregatesubcats));
fwrite ($bf,end_tag("GRADE_CATEGORIES_HISTORY",6,true));
fwrite ($bf,start_tag("GRADE_CATEGORIES_HISTORY",4,true));
fwrite ($bf,full_tag("ID",5,false,$ch->id));
fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
fwrite ($bf,full_tag("PARENT",5,false,$ch->parent));
fwrite ($bf,full_tag("DEPTH",5,false,$ch->depth));
fwrite ($bf,full_tag("PATH",5,false,$ch->path));
fwrite ($bf,full_tag("FULLNAME",5,false,$ch->fullname));
fwrite ($bf,full_tag("AGGRETGATION",5,false,$ch->aggregation));
fwrite ($bf,full_tag("KEEPHIGH",5,false,$ch->keephigh));
fwrite ($bf,full_tag("DROPLOW",5,false,$ch->droplow));
fwrite ($bf,full_tag("AGGREGATEONLYGRADED",5,false,$ch->aggregateonlygraded));
fwrite ($bf,full_tag("AGGREGATEOUTCOMES",5,false,$ch->aggregateoutcomes));
fwrite ($bf,full_tag("AGGREGATESUBCATS",5,false,$ch->aggregatesubcats));
fwrite ($bf,end_tag("GRADE_CATEGORIES_HISTORY",4,true));
}
$status = fwrite ($bf,end_tag("GRADE_CATEGORIES_HISTORIES",5,true));
$status = fwrite ($bf,end_tag("GRADE_CATEGORIES_HISTORIES",3,true));
}
return $status;
}
@@ -1890,39 +1871,39 @@
JOIN {$CFG->prefix}grade_items gi
ON gi.id = ggh.itemid
WHERE gi.courseid = $preferences->backup_course")) {
fwrite ($bf,start_tag("GRADE_GRADES_HISTORIES",5,true));
fwrite ($bf,start_tag("GRADE_GRADES_HISTORIES",3,true));
foreach ($chs as $ch) {
/// Grades are only sent to backup if the user is one target user
if (backup_getid($preferences->backup_unique_code, 'user', $ch->userid)) {
fwrite ($bf,start_tag("GRADE_GRADES_HISTORY",6,true));
fwrite ($bf,full_tag("ID",7,false,$ch->id));
fwrite ($bf,full_tag("ACTION",7,false,$ch->action));
fwrite ($bf,full_tag("OLDID",7,false,$ch->oldid));
fwrite ($bf,full_tag("SOURCE",7,false,$ch->source));
fwrite ($bf,full_tag("TIMEMODIFIED",7,false,$ch->timemodified));
fwrite ($bf,full_tag("LOGGEDUSER",7,false,$ch->loggeduser));
fwrite ($bf,full_tag("ITEMID",7,false,$ch->itemid));
fwrite ($bf,full_tag("USERID",7,false,$ch->userid));
fwrite ($bf,full_tag("RAWGRADE",7,false,$ch->rawgrade));
fwrite ($bf,full_tag("RAWGRADEMAX",7,false,$ch->rawgrademax));
fwrite ($bf,full_tag("RAWGRADEMIN",7,false,$ch->rawgrademin));
fwrite ($bf,full_tag("RAWSCALEID",7,false,$ch->rawscaleid));
fwrite ($bf,full_tag("USERMODIFIED",7,false,$ch->usermodified));
fwrite ($bf,full_tag("FINALGRADE",7,false,$ch->finalgrade));
fwrite ($bf,full_tag("HIDDEN",7,false,$ch->hidden));
fwrite ($bf,full_tag("LOCKED",7,false,$ch->locked));
fwrite ($bf,full_tag("LOCKTIME",7,false,$ch->locktime));
fwrite ($bf,full_tag("EXPORTED",7,false,$ch->exported));
fwrite ($bf,full_tag("OVERRIDDEN",7,false,$ch->overridden));
fwrite ($bf,full_tag("EXCLUDED",7,false,$ch->excluded));
fwrite ($bf,full_tag("FEEDBACK",7,false,$ch->feedback));
fwrite ($bf,full_tag("FEEDBACKFORMAT",7,false,$ch->feedbackformat));
fwrite ($bf,full_tag("INFORMATION",7,false,$ch->information));
fwrite ($bf,full_tag("INFORMATIONFORMAT",7,false,$ch->informationformat));
fwrite ($bf,end_tag("GRADE_GRADES_HISTORY",6,true));
fwrite ($bf,start_tag("GRADE_GRADES_HISTORY",4,true));
fwrite ($bf,full_tag("ID",5,false,$ch->id));
fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
fwrite ($bf,full_tag("ITEMID",5,false,$ch->itemid));
fwrite ($bf,full_tag("USERID",5,false,$ch->userid));
fwrite ($bf,full_tag("RAWGRADE",5,false,$ch->rawgrade));
fwrite ($bf,full_tag("RAWGRADEMAX",5,false,$ch->rawgrademax));
fwrite ($bf,full_tag("RAWGRADEMIN",5,false,$ch->rawgrademin));
fwrite ($bf,full_tag("RAWSCALEID",5,false,$ch->rawscaleid));
fwrite ($bf,full_tag("USERMODIFIED",5,false,$ch->usermodified));
fwrite ($bf,full_tag("FINALGRADE",5,false,$ch->finalgrade));
fwrite ($bf,full_tag("HIDDEN",5,false,$ch->hidden));
fwrite ($bf,full_tag("LOCKED",5,false,$ch->locked));
fwrite ($bf,full_tag("LOCKTIME",5,false,$ch->locktime));
fwrite ($bf,full_tag("EXPORTED",5,false,$ch->exported));
fwrite ($bf,full_tag("OVERRIDDEN",5,false,$ch->overridden));
fwrite ($bf,full_tag("EXCLUDED",5,false,$ch->excluded));
fwrite ($bf,full_tag("FEEDBACK",5,false,$ch->feedback));
fwrite ($bf,full_tag("FEEDBACKFORMAT",5,false,$ch->feedbackformat));
fwrite ($bf,full_tag("INFORMATION",5,false,$ch->information));
fwrite ($bf,full_tag("INFORMATIONFORMAT",5,false,$ch->informationformat));
fwrite ($bf,end_tag("GRADE_GRADES_HISTORY",4,true));
}
}
$status = fwrite ($bf,end_tag("GRADE_GRADES_HISTORIES",5,true));
$status = fwrite ($bf,end_tag("GRADE_GRADES_HISTORIES",3,true));
}
return $status;
}
@@ -1934,43 +1915,43 @@
// find all grade categories history
if ($chs = get_records('grade_items_history','courseid', $preferences->backup_course)) {
fwrite ($bf,start_tag("GRADE_ITEM_HISTORIES",5,true));
fwrite ($bf,start_tag("GRADE_ITEM_HISTORIES",3,true));
foreach ($chs as $ch) {
fwrite ($bf,start_tag("GRADE_ITEM_HISTORY",6,true));
fwrite ($bf,full_tag("ID",7,false,$ch->id));
fwrite ($bf,full_tag("ACTION",7,false,$ch->action));
fwrite ($bf,full_tag("OLDID",7,false,$ch->oldid));
fwrite ($bf,full_tag("SOURCE",7,false,$ch->source));
fwrite ($bf,full_tag("TIMEMODIFIED",7,false,$ch->timemodified));
fwrite ($bf,full_tag("LOGGEDUSER",7,false,$ch->loggeduser));
fwrite ($bf,full_tag("CATEGORYID",7,false,$ch->categoryid));
fwrite ($bf,full_tag("ITEMNAME",7,false,$ch->itemname));
fwrite ($bf,full_tag("ITEMTYPE",7,false,$ch->itemtype));
fwrite ($bf,full_tag("ITEMMODULE",7,false,$ch->itemmodule));
fwrite ($bf,full_tag("ITEMINSTANCE",7,false,$ch->iteminstance));
fwrite ($bf,full_tag("ITEMNUMBER",7,false,$ch->itemnumber));
fwrite ($bf,full_tag("ITEMINFO",7,false,$ch->iteminfo));
fwrite ($bf,full_tag("IDNUMBER",7,false,$ch->idnumber));
fwrite ($bf,full_tag("CALCULATION",7,false,$ch->calculation));
fwrite ($bf,full_tag("GRADETYPE",7,false,$ch->gradetype));
fwrite ($bf,full_tag("GRADEMAX",7,false,$ch->grademax));
fwrite ($bf,full_tag("GRADEMIN",7,false,$ch->grademin));
fwrite ($bf,full_tag("SCALEID",7,false,$ch->scaleid));
fwrite ($bf,full_tag("OUTCOMEID",7,false,$ch->outcomeid));
fwrite ($bf,full_tag("GRADEPASS",7,false,$ch->gradepass));
fwrite ($bf,full_tag("MULTFACTOR",7,false,$ch->multfactor));
fwrite ($bf,full_tag("PLUSFACTOR",7,false,$ch->plusfactor));
fwrite ($bf,full_tag("AGGREGATIONCOEF",7,false,$ch->aggregationcoef));
fwrite ($bf,full_tag("SORTORDER",7,false,$ch->sortorder));
fwrite ($bf,start_tag("GRADE_ITEM_HISTORY",4,true));
fwrite ($bf,full_tag("ID",5,false,$ch->id));
fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
fwrite ($bf,full_tag("CATEGORYID",5,false,$ch->categoryid));
fwrite ($bf,full_tag("ITEMNAME",5,false,$ch->itemname));
fwrite ($bf,full_tag("ITEMTYPE",5,false,$ch->itemtype));
fwrite ($bf,full_tag("ITEMMODULE",5,false,$ch->itemmodule));
fwrite ($bf,full_tag("ITEMINSTANCE",5,false,$ch->iteminstance));
fwrite ($bf,full_tag("ITEMNUMBER",5,false,$ch->itemnumber));
fwrite ($bf,full_tag("ITEMINFO",5,false,$ch->iteminfo));
fwrite ($bf,full_tag("IDNUMBER",5,false,$ch->idnumber));
fwrite ($bf,full_tag("CALCULATION",5,false,$ch->calculation));
fwrite ($bf,full_tag("GRADETYPE",5,false,$ch->gradetype));
fwrite ($bf,full_tag("GRADEMAX",5,false,$ch->grademax));
fwrite ($bf,full_tag("GRADEMIN",5,false,$ch->grademin));
fwrite ($bf,full_tag("SCALEID",5,false,$ch->scaleid));
fwrite ($bf,full_tag("OUTCOMEID",5,false,$ch->outcomeid));
fwrite ($bf,full_tag("GRADEPASS",5,false,$ch->gradepass));
fwrite ($bf,full_tag("MULTFACTOR",5,false,$ch->multfactor));
fwrite ($bf,full_tag("PLUSFACTOR",5,false,$ch->plusfactor));
fwrite ($bf,full_tag("AGGREGATIONCOEF",5,false,$ch->aggregationcoef));
fwrite ($bf,full_tag("SORTORDER",5,false,$ch->sortorder));
//fwrite ($bf,full_tag("DISPLAY",7,false,$ch->display));
//fwrite ($bf,full_tag("DECIMALS",7,false,$ch->decimals));
fwrite ($bf,full_tag("HIDDEN",7,false,$ch->hidden));
fwrite ($bf,full_tag("LOCKED",7,false,$ch->locked));
fwrite ($bf,full_tag("LOCKTIME",7,false,$ch->locktime));
fwrite ($bf,full_tag("NEEDSUPDATE",7,false,$ch->needsupdate));
fwrite ($bf,end_tag("GRADE_ITEM_HISTORY",6,true));
fwrite ($bf,full_tag("HIDDEN",5,false,$ch->hidden));
fwrite ($bf,full_tag("LOCKED",5,false,$ch->locked));
fwrite ($bf,full_tag("LOCKTIME",5,false,$ch->locktime));
fwrite ($bf,full_tag("NEEDSUPDATE",5,false,$ch->needsupdate));
fwrite ($bf,end_tag("GRADE_ITEM_HISTORY",4,true));
}
$status = fwrite ($bf,end_tag("GRADE_ITEM_HISTORIES",5,true));
$status = fwrite ($bf,end_tag("GRADE_ITEM_HISTORIES",3,true));
}
return $status;
@@ -1982,22 +1963,22 @@
// find all grade categories history
if ($chs = get_records('grade_outcomes_history','courseid', $preferences->backup_course)) {
fwrite ($bf,start_tag("GRADE_OUTCOME_HISTORIES",5,true));
fwrite ($bf,start_tag("GRADE_OUTCOME_HISTORIES",3,true));
foreach ($chs as $ch) {
fwrite ($bf,start_tag("GRADE_OUTCOME_HISTORY",6,true));
fwrite ($bf,full_tag("ID",7,false,$ch->id));
fwrite ($bf,full_tag("OLDID",7,false,$ch->oldid));
fwrite ($bf,full_tag("ACTION",7,false,$ch->action));
fwrite ($bf,full_tag("SOURCE",7,false,$ch->source));
fwrite ($bf,full_tag("TIMEMODIFIED",7,false,$ch->timemodified));
fwrite ($bf,full_tag("LOGGEDUSER",7,false,$ch->loggeduser));
fwrite ($bf,full_tag("SHORTNAME",7,false,$ch->shortname));
fwrite ($bf,full_tag("FULLNAME",7,false,$ch->fullname));
fwrite ($bf,full_tag("SCALEID",7,false,$ch->scaleid));
fwrite ($bf,full_tag("DESCRIPTION",7,false,$ch->description));
fwrite ($bf,end_tag("GRADE_OUTCOME_HISTORY",6,true));
fwrite ($bf,start_tag("GRADE_OUTCOME_HISTORY",4,true));
fwrite ($bf,full_tag("ID",5,false,$ch->id));
fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
fwrite ($bf,full_tag("SHORTNAME",5,false,$ch->shortname));
fwrite ($bf,full_tag("FULLNAME",5,false,$ch->fullname));
fwrite ($bf,full_tag("SCALEID",5,false,$ch->scaleid));
fwrite ($bf,full_tag("DESCRIPTION",5,false,$ch->description));
fwrite ($bf,end_tag("GRADE_OUTCOME_HISTORY",4,true));
}
$status = fwrite ($bf,end_tag("GRADE_OUTCOME_HISTORIES",5,true));
$status = fwrite ($bf,end_tag("GRADE_OUTCOME_HISTORIES",3,true));
}
return $status;
}
@@ -2158,7 +2139,8 @@
{$CFG->prefix}backup_ids bi
WHERE gm.groupid = $groupid
AND bi.backup_code = $preferences->backup_unique_code
AND bi.table_name = 'user'");
AND bi.table_name = 'user'
AND bi.old_id = gm.userid");
//Pring groups_members header
if ($groups_members) {
@@ -2273,6 +2255,7 @@
global $CFG;
$status = true;
$statusm = true;
require_once($CFG->dirroot.'/mod/'.$module.'/backuplib.php');
@@ -2314,7 +2297,7 @@
//It does this conversions:
// - $CFG->wwwroot/file.php/courseid ------------------> $@FILEPHP@$ (slasharguments links)
// - $CFG->wwwroot/file.php?file=/courseid ------------> $@FILEPHP@$ (non-slasharguments links)
// - Every module xxxx_encode_content_links() is executed too
// - Every module/block/course_format xxxx_encode_content_links() is executed too
//
function backup_encode_absolute_links($content) {
@@ -2340,6 +2323,12 @@
$includedfiles = array();
}
//Check if we support unicode modifiers in regular expressions. Cache it.
static $unicoderegexp;
if (!isset($unicoderegexp)) {
$unicoderegexp = @preg_match('/\pL/u', 'a'); // This will fail silenty, returning false,
} // if regexp libraries don't support unicode
//Check if preferences is ok. If it isn't set, we are
//in a scheduled_backup to we are able to get a copy
//from CFG->backup_preferences
@@ -2349,15 +2338,28 @@
//We are in manual backups so global preferences must exist!!
$mypreferences = $preferences;
}
//First, we check for every call to file.php inside the course
$search = array($CFG->wwwroot.'/file.php/'.$mypreferences->backup_course,
$CFG->wwwroot.'/file.php?file=/'.$mypreferences->backup_course);
$CFG->wwwroot.'/file.php?file=/'.$mypreferences->backup_course,
$CFG->wwwroot.'/file.php?file=%2f'.$mypreferences->backup_course,
$CFG->wwwroot.'/file.php?file=%2F'.$mypreferences->backup_course);
$replace = array('$@FILEPHP@$','$@FILEPHP@$');
$replace = array('$@FILEPHP@$', '$@FILEPHP@$', '$@FILEPHP@$', '$@FILEPHP@$');
$result = str_replace($search,$replace,$content);
// Now we look for any '$@FILEPHP@$' URLs, replacing:
// - slashes and %2F by $@SLASH@$
// - &forcedownload=1 &amp;forcedownload=1 and ?forcedownload=1 by $@FORCEDOWNLOAD@$
// This way, backup contents will be neutral and independent of slasharguments configuration. MDL-18799
// Based in $unicoderegexp, decide the regular expression to use
if ($unicoderegexp) { //We can use unicode modifiers
$search = '/(\$@FILEPHP@\$)((?:(?:\/|%2f|%2F))(?:(?:\([-;:@#&=\pL0-9\$~_.+!*\',]*?\))|[-;:@#&=\pL0-9\$~_.+!*\',]|%[a-fA-F0-9]{2}|\/)*)?(\?(?:(?:(?:\([-;:@#&=\pL0-9\$~_.+!*\',]*?\))|[-;:@#&=?\pL0-9\$~_.+!*\',]|%[a-fA-F0-9]{2}|\/)*))?(?<![,.;])/';
} else { //We cannot ue unicode modifiers
$search = '/(\$@FILEPHP@\$)((?:(?:\/|%2f|%2F))(?:(?:\([-;:@#&=a-zA-Z0-9\$~_.+!*\',]*?\))|[-;:@#&=a-zA-Z0-9\$~_.+!*\',]|%[a-fA-F0-9]{2}|\/)*)?(\?(?:(?:(?:\([-;:@#&=a-zA-Z0-9\$~_.+!*\',]*?\))|[-;:@#&=?a-zA-Z0-9\$~_.+!*\',]|%[a-fA-F0-9]{2}|\/)*))?(?<![,.;])/';
}
$result = preg_replace_callback($search, 'backup_process_filephp_uses', $result);
foreach ($mypreferences->mods as $name => $info) {
/// We only include the corresponding backuplib.php if it hasn't been included before
/// This will save some load under PHP5. MDL-8700.
@@ -2373,6 +2375,25 @@
}
}
// For the current course format call its encode_content_links method (if it exists)
static $format_function_name;
if (!isset($format_function_name)) {
$format_function_name = false;
if ($format = get_field('course', 'format', 'id', $mypreferences->backup_course)) {
if (file_exists("$CFG->dirroot/course/format/$format/backuplib.php")) {
include_once("$CFG->dirroot/course/format/$format/backuplib.php");
$function_name = $format.'_encode_format_content_links';
if (function_exists($function_name)) {
$format_function_name = $function_name;
}
}
}
}
// If the above worked - then we have a function to call
if ($format_function_name) {
$result = $format_function_name($result, $mypreferences);
}
// For each block, call its encode_content_links method.
// This encodes forexample links to blocks/something/viewphp?id=666
// that are stored in other activities.
@@ -2399,7 +2420,22 @@
return $result;
}
//This function copies all the needed files under the "users" directory to the "user_files"
/**
* Callback preg_replace function used by backup_encode_absolute_links()
* to process $@FILEPHP@$ URLs to get slasharguments independent URLs
*/
function backup_process_filephp_uses($matches) {
// Replace slashes (plain and encoded) and forcedownload=1 parameter
$search = array('/', '%2f', '%2F', '?forcedownload=1', '&forcedownload=1', '&amp;forcedownload=1');
$replace = array('$@SLASH@$', '$@SLASH@$', '$@SLASH@$', '$@FORCEDOWNLOAD@$', '$@FORCEDOWNLOAD@$', '$@FORCEDOWNLOAD@$');
$result = $matches[1] . (isset($matches[2]) ? str_replace($search, $replace, $matches[2]) : '') . (isset($matches[3]) ? str_replace($search, $replace, $matches[3]) : '');
return $result;
}
//This function copies all the needed files under the "user" directory to the "user_files"
//directory under temp/backup
function backup_copy_user_files ($preferences) {
@@ -2407,24 +2443,19 @@
$status = true;
//First we check to "user_files" exists and create it as necessary
//First we check that "user_files" exists and create it if necessary
//in temp/backup/$backup_code dir
$status = check_and_create_user_files_dir($preferences->backup_unique_code);
//Now iterate over directories under "user" to check if that user must be copied to backup
// Method to get a list of userid=>array(basedir => $basedir, userfolder => $userfolder)
$userlist = get_user_directories();
foreach ($userlist as $userid => $userinfo) {
//Look for dir like username in backup_ids
$data = count_records("backup_ids","backup_code",$preferences->backup_unique_code, "table_name","user", "old_id",$userid);
//If exists, copy it
if ($data) {
$parts = explode('/', $userinfo['userfolder']);
//now get a list of users that we need for this backup.
$backup_users = get_recordset_select("backup_ids",
"backup_code='$preferences->backup_unique_code' AND table_name='user'", "", "id, old_id");
while ($user = rs_fetch_next_record($backup_users)) {
//If this user's directory exists, copy it
$userdir = make_user_directory($user->old_id, true);
if (check_dir_exists($userdir)) {
//first remove dirroot so we can split out the folders.
$parts = explode('/', str_replace($CFG->dataroot.'/user/', '', $userdir));
$status = true;
if (is_array($parts)) {
$group = $parts[0];
$userid = $parts[1];
@@ -2433,10 +2464,13 @@
$status = check_dir_exists("$CFG->dataroot/temp/backup/$preferences->backup_unique_code/user_files/". $group, true);
}
$status = $status && backup_copy_file($userinfo['basedir'] . '/' . $userinfo['userfolder'],
"$CFG->dataroot/temp/backup/$preferences->backup_unique_code/user_files/{$userinfo['userfolder']}");
$status = $status && backup_copy_file($userdir,
"$CFG->dataroot/temp/backup/$preferences->backup_unique_code/user_files/$group/$user->old_id");
}
//Do some output
backup_flush(30);
}
rs_close($backup_users);
return $status;
}
@@ -2809,9 +2843,14 @@
}
}
// foreach context, call get_roles_on_exact_context insert into array
// foreach context, call get_roles_on_exact_context + get_roles_with_override_on_context() and insert into array
foreach ($contexts as $context) {
if ($proles = get_roles_on_exact_context($context)) {
if ($proles = get_roles_on_exact_context($context)) { // Look for roles assignments
foreach ($proles as $prole) {
$roles[$prole->id] = $prole;
}
}
if ($proles = get_roles_with_override_on_context($context)) { // Look for roles overrides
foreach ($proles as $prole) {
$roles[$prole->id] = $prole;
}
+1 -1
View File
@@ -74,7 +74,7 @@ function blackboard_convert($dir){
// Copy the Blackboard course files into the moodle course_files structure
$subdirs = get_subdirs($dir."/");
mkdir("$dir/course_files");
mkdir("$dir/course_files", $CFG->directorypermissions);
foreach ($subdirs as $subdir){
rename($subdir, "course_files/$subdir");
}
+58 -9
View File
@@ -435,6 +435,25 @@
upgrade_log_finish();
}
/**
* Are we restoring a backup that was made on the same site that we are restoring to?
* This relies on some information that was only added to backup files in January 2009.
* For older backup files, fall back to guessing based on wwwroot. MDL-16614 explains
* when this guess could give the wrong answer.
* @return boolean true if the backup was made on the same site we are restoring to.
*/
function backup_is_same_site(&$restore) {
global $CFG;
static $hashedsiteid = null;
if (is_null($hashedsiteid)) {
$hashedsiteid = md5(get_site_identifier());
}
if (!empty($restore->original_siteidentifier)) {
return $restore->original_siteidentifier == $hashedsiteid;
} else {
return $restore->original_wwwroot == $CFG->wwwroot;
}
}
//This function is used to insert records in the backup_ids table
//If the info field is greater than max_db_storage, then its info
@@ -630,12 +649,10 @@
function import_backup_file_silently($pathtofile,$destinationcourse,$emptyfirst=false,$userdata=false, $preferences=array()) {
global $CFG,$SESSION,$USER; // is there such a thing on cron? I guess so..
global $restore; // ick
if (empty($USER)) {
$USER = get_admin();
$USER->admin = 1; // not sure why, but this doesn't get set
}
define('RESTORE_SILENTLY',true); // don't output all the stuff to us.
if (!defined('RESTORE_SILENTLY')) {
define('RESTORE_SILENTLY',true); // don't output all the stuff to us.
}
$debuginfo = 'import_backup_file_silently: ';
$cleanupafter = false;
@@ -684,9 +701,12 @@
mtrace($debuginfo.'Required function check failed (see backup_required_functions)');
return false;
}
@ini_set("max_execution_time","3000");
raise_memory_limit("192M");
if (empty($CFG->extramemorylimit)) {
raise_memory_limit('128M');
} else {
raise_memory_limit($CFG->extramemorylimit);
}
if (!$backup_unique_code = restore_precheck($destinationcourse,$pathtofile,$errorstr,true)) {
mtrace($debuginfo.'Failed restore_precheck (error was '.$errorstr.')');
@@ -699,14 +719,17 @@
$SESSION->restore->metacourse = $restore->metacourse = (isset($preferences['restore_metacourse']) ? $preferences['restore_metacourse'] : 0);
$SESSION->restore->restoreto = $restore->restoreto = 1;
$SESSION->restore->users = $restore->users = $userdata;
$SESSION->restore->groups = $restore->groups = (isset($preferences['restore_groups']) ? $preferences['restore_groups'] : RESTORE_GROUPS_NONE);
$SESSION->restore->logs = $restore->logs = (isset($preferences['restore_logs']) ? $preferences['restore_logs'] : 0);
$SESSION->restore->user_files = $restore->user_files = $userdata;
$SESSION->restore->messages = $restore->messages = (isset($preferences['restore_messages']) ? $preferences['restore_messages'] : 0);
$SESSION->restore->blogs = $restore->blogs = (isset($preferences['restore_blogs']) ? $preferences['restore_blogs'] : 0);
$SESSION->restore->course_id = $restore->course_id = $destinationcourse;
$SESSION->restore->restoreto = 1;
$SESSION->restore->course_id = $destinationcourse;
$SESSION->restore->deleting = $emptyfirst;
$SESSION->restore->restore_course_files = $restore->course_files = (isset($preferences['restore_course_files']) ? $preferences['restore_course_files'] : 0);
$SESSION->restore->restore_site_files = $restore->site_files = (isset($preferences['restore_site_files']) ? $preferences['restore_site_files'] : 0);
$SESSION->restore->backup_version = $SESSION->info->backup_backup_version;
$SESSION->restore->course_startdateoffset = $course->startdate - $SESSION->course_header->course_startdate;
@@ -749,7 +772,9 @@
*/
function backup_course_silently($courseid, $prefs, &$errorstring) {
global $CFG, $preferences; // global preferences here because something else wants it :(
define('BACKUP_SILENTLY', 1);
if (!defined('BACKUP_SILENTLY')) {
define('BACKUP_SILENTLY', 1);
}
if (!$course = get_record('course', 'id', $courseid)) {
debugging("Couldn't find course with id $courseid in backup_course_silently");
return false;
@@ -783,6 +808,7 @@
global $CFG;
$preferences = new StdClass;
$preferences->backup_unique_code = time();
$preferences->backup_users = (isset($prefs['backup_users']) ? $prefs['backup_users'] : 0);
$preferences->backup_name = backup_get_zipfile_name($course, $preferences->backup_unique_code);
$count = 0;
@@ -800,6 +826,7 @@
if (!function_exists($modbackup) || !function_exists($modcheckbackup)) {
continue;
}
$modcheckbackup($course->id, $preferences->backup_users, $preferences->backup_unique_code);
$var = "exists_".$modname;
$preferences->$var = true;
$count++;
@@ -841,14 +868,36 @@
//Check other parameters
$preferences->backup_metacourse = (isset($prefs['backup_metacourse']) ? $prefs['backup_metacourse'] : 0);
$preferences->backup_users = (isset($prefs['backup_users']) ? $prefs['backup_users'] : 0);
$preferences->backup_logs = (isset($prefs['backup_logs']) ? $prefs['backup_logs'] : 0);
$preferences->backup_user_files = (isset($prefs['backup_user_files']) ? $prefs['backup_user_files'] : 0);
$preferences->backup_course_files = (isset($prefs['backup_course_files']) ? $prefs['backup_course_files'] : 0);
$preferences->backup_site_files = (isset($prefs['backup_site_files']) ? $prefs['backup_site_files'] : 0);
$preferences->backup_messages = (isset($prefs['backup_messages']) ? $prefs['backup_messages'] : 0);
$preferences->backup_gradebook_history = (isset($prefs['backup_gradebook_history']) ? $prefs['backup_gradebook_history'] : 0);
$preferences->backup_blogs = (isset($prefs['backup_blogs']) ? $prefs['backup_blogs'] : 0);
$preferences->backup_course = $course->id;
//Check users
user_check_backup($course->id,$preferences->backup_unique_code,$preferences->backup_users,$preferences->backup_messages, $preferences->backup_blogs);
//Check logs
log_check_backup($course->id);
//Check user files
user_files_check_backup($course->id,$preferences->backup_unique_code);
//Check course files
course_files_check_backup($course->id,$preferences->backup_unique_code);
//Check site files
site_files_check_backup($course->id,$preferences->backup_unique_code);
//Role assignments
$roles = get_records('role', '', '', 'sortorder');
foreach ($roles as $role) {
$preferences->backuproleassignments[$role->id] = $role;
}
backup_add_static_preferences($preferences);
return $preferences;
}

Some files were not shown because too many files have changed in this diff Show More