Compare commits

..

1116 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) 50ce778ad8 Moodle release 2.1.3 2011-11-27 23:52:11 +01:00
Eloy Lafuente (stronk7) 64f26a2673 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-11-27 23:40:01 +01:00
Eloy Lafuente (stronk7) 7d93ab4189 Merge branch 'dropbox-api-bump-for-21_STABLE' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-11-27 23:18:09 +01:00
AMOS bot 9f28d15bc9 Automatically generated installer lang files 2011-11-27 00:31:01 +00:00
AMOS bot 0407f9cda7 Automatically generated installer lang files 2011-11-26 00:31:07 +00:00
Eloy Lafuente (stronk7) b8321ca069 weekly release 2.1.2+ 2011-11-25 11:10:52 +01:00
Eloy Lafuente (stronk7) cc0988ad2b Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-11-25 11:05:14 +01:00
Dan Poltawski 3c7ea58432 MDL-29960 repository/dropbox - update to use 1.0 API version 2011-11-25 10:03:12 +00:00
AMOS bot bd2790b2f2 Automatically generated installer lang files 2011-11-25 00:30:47 +00:00
Sam Hemelryk 1ed6756d80 Merge branch 'MDL-26431-21' of git://github.com/totara/moodle into MOODLE_21_STABLE 2011-11-25 12:44:39 +13:00
Sam Hemelryk c3ef0a618d Merge branch 'MDL-29115_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-11-25 11:59:18 +13:00
Sam Hemelryk 3174abc728 Merge branch 'wip-mdl-30391-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-25 11:36:26 +13:00
Mary Evans 40cc2378f2 MDL-28625 - removed ul/ol styles from canvas/text.css 2011-11-25 11:18:39 +13:00
Aaron Barnes 69180a0de7 MDL-26431 course completion report columns not lining up 2011-11-25 09:59:45 +13:00
Aparup Banerjee babd54537c Merge branch 'MDL-30288_override_checkbox_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-11-24 16:14:53 +08:00
Aparup Banerjee f0a173ff75 Merge branch 'MDL-29226-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-24 14:45:24 +08:00
Andrew Davis 913a61a323 MDL-30288 gradebook: prevented grade grade feedback being wrapped in a text to html div tag which was causing it to look like feedback had been edited when it hadn't 2011-11-24 11:08:08 +08:00
AMOS bot 51050f4b3d Automatically generated installer lang files 2011-11-24 00:31:08 +00:00
Eloy Lafuente (stronk7) 4b67fa946b Merge branch 'wip-mdl-30394-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-23 13:38:40 +01:00
Eloy Lafuente (stronk7) 279fa1b994 Merge branch 'wip-mdl-30375-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-23 13:28:52 +01:00
Ankit Kumar Agarwal 6fe2462f98 MDL-30398 Validations added for password field 2011-11-23 13:20:01 +01:00
Eloy Lafuente (stronk7) 1f8ca423da Merge branch 'MDL-29095_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-23 12:06:14 +01:00
Eloy Lafuente (stronk7) 9e2c51dbf2 Merge branch 'MDL-29060_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-23 11:48:13 +01:00
Eloy Lafuente (stronk7) 8ed17824f6 Merge branch 'wip-mdl-28947-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-23 11:38:09 +01:00
Andrew Robert Nicols 4397b907bd MDL-30165: Make repository file extension check case insensitive 2011-11-23 11:23:37 +01:00
Dan Marsden f029a59e24 SCORM MDL-25757 fix for saving of duplicate CMI values - thanks to Evan Irving-Pease for the patch 2011-11-23 11:09:19 +01:00
Jamie Pratt 92939cd69a MDL-28562 "automatic naming of file in convert_image not working"
there is an obvious typo in the code causing the problem. The use of
an equality check instead of the intended assignment.
2011-11-23 12:39:54 +08:00
Aparup Banerjee 72b19bafdb Merge branch 'wip-MDL-20627-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2011-11-23 11:13:57 +08:00
Mary Evans 5c2ca52338 MDL-29778 Fix to make user selector arrow visible 2011-11-23 15:55:38 +13:00
Rajesh Taneja db90eb6883 MDL-30375 Blocks: Comments block will show blank textbox rather then hiding and 'add a comment' will be visible if it's empty 2011-11-23 10:47:55 +08:00
Kordan a2c65d52ce MDL-29830 theme_base: Fix overflow problems with navigation items 2011-11-23 15:46:07 +13:00
Eloy Lafuente (stronk7) 5a66a2b9c5 Merge branch 'MDL-30042-MOODLE_21_STABLE-1' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-11-23 03:07:25 +01:00
Eloy Lafuente (stronk7) 4df0583e21 Merge branch 'MDL-27045_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-23 03:02:26 +01:00
Sam Hemelryk f99bd07ab6 Merge branch 'MDL-30192_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-11-23 14:20:10 +13:00
Sam Hemelryk aa1d8c5cde Merge branch 'MDL-29904-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-23 13:57:38 +13:00
AMOS bot 673baa5a49 Automatically generated installer lang files 2011-11-23 00:31:03 +00:00
Eloy Lafuente (stronk7) 156ec7701e Merge branch 'm21_MDL-30223' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-11-23 01:22:20 +01:00
Eloy Lafuente (stronk7) 30a83348fe Merge branch 'MDL-30402-install-string_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-11-23 01:07:58 +01:00
Mary Evans 97186f31a8 MDL-30164 FIX for missing gap between icon and text in reports 2011-11-23 12:59:07 +13:00
Mary Evans cd931a8f1b MDL-30196 changed reference from Serenity to Sky High in theme_sky_high.php 2011-11-23 12:50:12 +13:00
Petr Skoda 9599370dff MDL-30303 fix media playback from URLs with ? query parts
Credit for the rawurlencode() fix goes to Eloy.
2011-11-23 12:17:57 +13:00
Aparup Banerjee d81e6cc96e Merge branch 'MDL-30397_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-22 17:17:40 +08:00
David Mudrak 2b50d26f00 MDL-30402 Removing hard-coded English string from the CLI installer 2011-11-22 10:04:35 +01:00
Aparup Banerjee f0c67f5f02 Merge branch 'MDL-30194-m21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-22 16:17:44 +08:00
Aparup Banerjee 52f04e91a1 Merge branch 'wip-mdl-29396-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-22 16:10:29 +08:00
Rajesh Taneja a7371c4d8c MDL-29396 core: ip blocking will be bypassed for cli scripts - Thanks Petr 2011-11-22 16:09:16 +08:00
Tim Hunt 70f24aebbf MDL-30397 qformat_xml::format() should be public. 2011-11-22 07:22:10 +00:00
Aparup Banerjee da86b56615 Merge branch 'MDL-27703_user_report_sql_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-11-22 14:25:06 +08:00
Sam Hemelryk 4236448a19 Merge branch 'MDL-28629_MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-11-22 18:28:30 +13:00
Rajesh Taneja 785ff2b69f MDL-30394 Backup: Removed popup, inserted by 27790 during restore in new course 2011-11-22 12:05:22 +08:00
Rajesh Taneja 679d738636 MDL-30391 Backup: Exception in restore should be thrown as it is to be handled by calling function 2011-11-22 11:42:19 +08:00
Rajesh Taneja 79c4fef51f MDL-28947 lib: print_object cleans html special chars before printing 2011-11-22 09:29:41 +08:00
AMOS bot 516a904af3 Automatically generated installer lang files 2011-11-22 00:30:53 +00:00
Sam Hemelryk 27bc295382 Merge branch 'MDL-30392_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-11-22 12:59:37 +13:00
Eloy Lafuente (stronk7) 7c0df73abb MDL-30392 DML - Fix old-style delete_records() call 2011-11-22 00:43:57 +01:00
Eloy Lafuente (stronk7) f249bab334 Merge branch 'mdl-23006-xmldb-missing-strings-m21' of git://github.com/sbourget/moodle into MOODLE_21_STABLE 2011-11-21 19:43:12 +01:00
Andrew Robert Nicols 2f14dd463b MDL-30174 Assignment : Only increment submission offset if the current assignment was not saved 2011-11-22 02:21:34 +08:00
Andrew Robert Nicols 12216d31ff MDL-30173 Assignment : Convert to use moodle_url and add missing filter param 2011-11-22 02:04:46 +08:00
Aparup Banerjee 7d584b168b Merge branch 'MDL-29814_blank_emails2_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-11-22 01:21:31 +08:00
Aparup Banerjee 2823fe83d9 Merge branch 'wip-MDL-30289-MOODLE_21_STABLE' of git://github.com/abgreeve/moodle into MOODLE_21_STABLE 2011-11-21 14:02:52 +08:00
Aparup Banerjee d047cf60ae Merge branch 'MDL-30279-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-11-21 11:52:39 +08:00
Andrew Robert Nicols 8e74088cc1 MDL-29591 Check for permission before overwriting course idnumber when restoring 2011-11-21 02:34:11 +01:00
Charles Fulton f6bbbbf33f MDL-30289 forum - set page context when pruning a discussion 2011-11-21 09:09:03 +08:00
Mary Evans ced260583a MDL-30236 removed outlawed javasript from theme_anomaly 2011-11-21 13:27:41 +13:00
Petr Skoda 737c229ea6 MDL-30308 outputrequirementslib.php breaks xhtml validation
Credit goes to Matthew Davidson.
2011-11-21 12:40:12 +13:00
Sam Hemelryk 2712c59da7 MDL-30359 theme_base Fixed regression with course completion icons 2011-11-21 11:30:43 +13:00
Mary Evans e0acecab96 MDL-29904-M21 FIX to add pagelayout=>report 2011-11-20 19:39:06 +00:00
Tim Hunt 484c3c70f7 MDL-29060 q export: writefiles should be public write_files & belongs to XML format.
Conflicts:

	question/format/xml/format.php
2011-11-20 11:58:42 +00:00
AMOS bot 16ada8d30e Automatically generated installer lang files 2011-11-20 00:30:49 +00:00
Andrew Davis 9694f1c114 MDL-29814 message: made html personal messages also store a plain text version as a fallback 2011-11-19 15:37:45 +08:00
Mary Evans 1097299e59 MDL-29226-M21 RTL fixes - additions and amendments 2011-11-19 01:10:35 +00:00
AMOS bot 81b24b17cf Merge branch 'MOODLE_21_STABLE' into install_21_STABLE 2011-11-19 00:31:04 +00:00
Mary Evans 339beda38b MDL-30359-M21 Fixes for dir-rtl in theme_base CSS 2011-11-18 23:50:32 +00:00
Eloy Lafuente (stronk7) 6498060a7c MDL-30192 restore - prevent any extra info to be created for deleted users 2011-11-18 13:04:38 +01:00
adrian@moodle.com 97aef9b3ad MDL-20627 user - Fixed viewing permission of email when sending group messages. 2011-11-18 14:42:23 +08:00
AMOS bot 7138495b4b Automatically generated installer lang files 2011-11-18 00:30:55 +00:00
Eloy Lafuente (stronk7) cf04ce3a50 weekly release 2.1.2+ 2011-11-18 01:30:06 +01:00
Eloy Lafuente (stronk7) b7341aa136 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-11-18 01:18:14 +01:00
Eloy Lafuente (stronk7) 2b38c7bea5 MDL-29350 Prevent memory/time problems if there are zillions of combinations 2011-11-17 20:22:51 +01:00
Eloy Lafuente (stronk7) 6c628d482a Merge branch 'MDL-29350-MOODLE_21_STABLE-2' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-11-17 20:16:13 +01:00
Tim Hunt 0f8e22ee96 MDL-27045 formslib: fix disabledif for advcheckbox
This is based on earlier work by Henning Bostelmann and Tom Potts.
2011-11-17 18:01:52 +00:00
Charles Fulton 473dfcee8d MDL-30279 show full date and time for all wiki revisions 2011-11-17 09:05:01 +05:30
Sam Hemelryk 02c43cd86a Merge branch 'MDL-24577-MOODLE_21_STABLE-1' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-11-17 14:54:27 +13:00
AMOS bot 2675160b8e Automatically generated installer lang files 2011-11-17 00:55:31 +00:00
Eloy Lafuente (stronk7) d3606a9a84 Merge branch 'MDL-29743_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 01:22:41 +01:00
Sam Hemelryk 18b7d18959 Merge branch 'MDL-29893-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-11-17 13:07:33 +13:00
Eloy Lafuente (stronk7) 1e7732cec6 Merge branch 'MDL-30069_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:45:28 +01:00
Eloy Lafuente (stronk7) 372d9df650 Merge branch 'MDL-30122_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:35:12 +01:00
Eloy Lafuente (stronk7) 71a215991d Merge branch 'MDL-30167_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:31:24 +01:00
Eloy Lafuente (stronk7) 830969cc63 Merge branch 'MDL-30186_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:11:02 +01:00
Eloy Lafuente (stronk7) 96ec3502f0 Merge branch 'MDL-30199_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:08:40 +01:00
Eloy Lafuente (stronk7) 373c70e5d5 Merge branch 'MDL-30209_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-17 00:02:16 +01:00
Eloy Lafuente (stronk7) edfcab2970 Merge branch 'MDL-30300_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-16 23:59:45 +01:00
Nadav Kavalerchik 1db5119839 MDL-27516 Several CSS fixes for right to left languages 2011-11-17 11:41:18 +13:00
Mary Evans 24dad096ca MDL-30283-M20 FIX coding errors 2011-11-16 19:01:40 +01:00
Tim Hunt 45918dedf9 MDL-30300 question behaviours: improve q compatibility API. 2011-11-16 10:53:23 +00:00
Ankit Kumar Agarwal 552cff42a3 MDL-29893 Fixing issues with password generation function 2011-11-16 12:00:11 +05:30
AMOS bot 4e7cec54a2 Automatically generated installer lang files 2011-11-16 00:55:57 +00:00
Dan Marsden 71923e963b SCORM AICC MDL-30223 invalid call to update_record - very hard to test/reproduce. 2011-11-16 08:49:29 +13:00
Henning Bostelmann 3815ecf471 MDL-29350 Prevent duplication of groupings when copying activities
This patch also includes a database upgrade to correct data produced as a
result of this bug.
2011-11-15 11:10:42 +00:00
Tim Hunt bf850b4b18 MDL-30209 quiz refers to wrong rendere method in two places.
Thanks to Dan Marsden for working out the fix.
2011-11-15 11:03:04 +00:00
Tim Hunt 5255100dac MDL-30199 qtype numerical etc. Don't require tolerance for answer *. 2011-11-15 11:02:35 +00:00
Tim Hunt 256a93c9b5 MDL-30186 qtype editing forms should use advcheckbox. 2011-11-15 11:02:01 +00:00
Tim Hunt 4493fe9c90 MDL-30167 qtype_numerical: notice when required unit is not in the answer. 2011-11-15 11:01:29 +00:00
Tim Hunt 471992218f MDL-30185 question engine reporting: add redundant where to query for perf.
Without this, MySQL fails to cope.
2011-11-15 11:00:55 +00:00
Tim Hunt 195a8b7840 MDL-30069 Question type icons missing in lots of places. 2011-11-15 11:00:26 +00:00
Tim Hunt 1af4e4a874 MDL-29743 quiz: Finish attempt link didn't save responses in some brosers.
Thanks to Brandon Browning for identifying the problem. It is quite subtle why this typo would have this effect. You need to look at the implementation of the preventDefault method in lib/yui/3.4.1/build/event-base/event-base.js.
2011-11-15 10:59:51 +00:00
Oleg Sychev 7a3cd7d57c MDL-29095: initialise_question_instance should use extra_question_fields
Shortanswer question type converted to use extra question fields.

Signed-off-by: Oleg Sychev <oasychev@gmail.com>
2011-11-15 10:59:22 +00:00
Eloy Lafuente (stronk7) e25ecdfcf3 weekly release 2.1.2+ 2011-11-15 11:07:52 +01:00
Eloy Lafuente (stronk7) 88f8312aa0 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-11-15 10:55:11 +01:00
AMOS bot c4972aca4a Automatically generated installer lang files 2011-11-15 00:55:21 +00:00
Sam Hemelryk fcd27b4981 Merge branch 'MDL-28670_m21' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2011-11-14 17:50:47 +13:00
Aparup Banerjee bf8ab84950 MDL-28670 webservice : (review) changes improving performance 2011-11-14 11:26:11 +08:00
Mary Evans 66e9f5c965 MDL-30010FIX for pagelayout problems when moving blocks 2011-11-14 12:14:15 +13:00
AMOS bot 5ad0823134 Automatically generated installer lang files 2011-11-13 15:14:36 +01:00
AMOS bot bf1f6c769f Automatically generated installer lang files 2011-11-13 00:55:22 +00:00
AMOS bot bf98f9e6a0 Automatically generated installer lang files 2011-11-12 00:55:34 +00:00
Aparup Banerjee de3476d171 Merge branch 'wip-mdl-29638-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-11 17:00:56 +08:00
Jerome Mouneyrac 375c26deb3 MDL-28629 more checks during web service authentication 2011-11-11 16:19:47 +08:00
andrew 1542c91c8e MDL-27703 gradebook: altered an sql query in the user report. join with no on clause causes an error in some DBs 2011-11-11 14:31:44 +08:00
Aparup Banerjee 5c04356ed4 MDL-27037 wiki : fixed whitespace. 2011-11-11 13:28:16 +08:00
Mayank Gupta cdc502c531 MDL-27037, wiki does not support visiblegroups functionality 2011-11-11 13:27:58 +08:00
Aparup Banerjee 7159b53324 Merge branch 'wip-MDL-26712-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-11 11:26:44 +08:00
Eloy Lafuente (stronk7) cd6ac6c8b8 Merge branch 'MDL-29035-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-11-11 02:43:46 +01:00
Eloy Lafuente (stronk7) 3a2fc5926a Merge branch 'MDL-22351-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-11 02:34:16 +01:00
Eloy Lafuente (stronk7) c35c8eb8e6 Merge branch 'mdl-29529-assignment-submission-sorting-m21-2' of git://github.com/sbourget/moodle into MOODLE_21_STABLE 2011-11-11 01:18:58 +01:00
Stephen Bourget 4aef860aec MDL-29529 Assignment: Fix regression caused by MDL-27638 2011-11-10 17:08:43 -05:00
Andrew Robert Nicols 5720c0b1ff MDL-30042: Sanitize httpwwwroot in mnet jump 2011-11-10 10:21:32 +00:00
Eloy Lafuente (stronk7) 0242c9ba9e Merge branch 'MDL-30045' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-11-10 01:54:34 +01:00
Eloy Lafuente (stronk7) 8ec13b3312 Merge branch 'MDL-28426_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-10 01:33:47 +01:00
Eloy Lafuente (stronk7) 147ec85e06 Merge branch 'MDL-30158-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-11-10 00:22:42 +01:00
Petr Skoda a3367a1711 MDL-30150 support frankenstyle in page type callbacks 2011-11-10 09:43:33 +13:00
Eloy Lafuente (stronk7) 4ca2c772be NOBUG: Whitespace fixes 2011-11-09 16:31:35 +01:00
Eloy Lafuente (stronk7) 4eeae5a673 Merge branch 'MDL-27542b_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-11-09 15:56:26 +01:00
Aparup Banerjee 0eb0583d9d Merge branch 'MDL-29620-workshop-sequence_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-11-09 17:55:17 +08:00
Sun Zhigang d56fe710e6 MDL-29656 Fix bad string reference 2011-11-09 16:46:40 +08:00
Dan Poltawski be82e0a689 MDL-29696 mod/data - fixed page continuing after footer. 2011-11-09 15:43:33 +08:00
Sun Zhigang 113f6b5c79 MDL-29722 - No default guest enrol instance for requested courses 2011-11-09 15:23:20 +08:00
Jason Fowler 17ea5774eb MDL-30194 - Lib - Fixing phpdoc for clean_param 2011-11-09 14:58:39 +08:00
Aparup Banerjee bc1f567d38 Merge branch 'MDL-29977-mnet-masquerade_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-11-09 13:38:53 +08:00
Aparup Banerjee 07340448fe Merge branch 'MDL-30021_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-09 13:04:02 +08:00
Dan Poltawski 18611b3dbc MDL-29812 partcipiant report - breaks when filtering by user 2011-11-09 11:17:28 +08:00
Aparup Banerjee bace4ce456 Merge branch 'wip-MDL-24200-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-09 11:04:40 +08:00
Eloy Lafuente (stronk7) fe23b6e72f Merge branch 'm21_MDL-29159' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-11-09 02:25:50 +01:00
AMOS bot 8a65e45adf Automatically generated installer lang files 2011-11-09 00:55:29 +00:00
Eloy Lafuente (stronk7) b797666fe8 Merge branch 'MDL-29803' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-11-09 00:43:50 +01:00
Aparup Banerjee 3aed25accd Merge branch 'MDL-29739_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-08 20:35:21 +08:00
Aparup Banerjee b57566d3be Merge branch 'MDL-29970_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-08 16:48:40 +08:00
Aparup Banerjee 40b90130a0 Merge branch 'wip-mdl-27521-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-08 15:18:42 +08:00
Aparup Banerjee f598387441 Merge branch 'wip-mdl-27790-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-11-08 14:51:20 +08:00
Rajesh Taneja aa2b2c4e31 MDL-27790 Backup: Added warning message to let user know that temporary course will be created for restoration process 2011-11-08 14:47:41 +08:00
Rajesh Taneja 5a301c16a1 fixed 2011-11-08 14:47:34 +08:00
Rajesh Taneja 5f30ffdac1 MDL-27790 Backup: temperory course will be deleted in case of exception and cancellation of restore process 2011-11-08 14:47:28 +08:00
Rossiani Wijaya 0ff996b0a9 MDL-29115 lesson mod: fixed the display of 'try again' button so it relates to lesson setting 2011-11-08 12:12:46 +08:00
Aparup Banerjee 3e99f27558 Merge branch 'MDL-30135_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-08 11:45:33 +08:00
Aparup Banerjee a49a4aecb2 Merge branch 'MDL-30137_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-08 11:38:29 +08:00
Aparup Banerjee 42d96d7c2e MDL-30154 Repositories : fixed whitespace. 2011-11-08 11:30:54 +08:00
Aparup Banerjee d4d070fc35 Merge branch 'MDL-30154_21_wip' of git://github.com/grabs/moodle into MOODLE_21_STABLE 2011-11-08 11:30:06 +08:00
Ankit Kumar Agarwal 1ceb53f945 MDL-30158 Questions Cleaning up blackboard/format.php 2011-11-08 07:41:25 +05:30
Sam Hemelryk 2331e2eddd Merge branch 'MDL-25823_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-11-08 13:09:44 +13:00
Sam Hemelryk c2d7c22962 Merge branch 'wip-MDL-30059-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-08 12:05:39 +13:00
Sam Hemelryk 3fb3517a00 Merge branch 'MDL-2942-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-11-08 12:02:59 +13:00
Tony Levi 5931af6ce5 MDL-24577: Fix mark all posts in this discussion read doesn't work completely correct 2011-11-07 13:00:01 +00:00
Tim Hunt 6636527808 MDL-30135 question formats: trans_format/get_format should be public.
They need to be used by third-party qtype developers.
2011-11-07 11:37:49 +00:00
Rossiani Wijaya bf870f7f2d MDL-27542 calendar export: fixed the following:
1. changing auth token to use user id instead of username
2. add fall back checking for old url
3. remove yui functionality to generate calendar url
4. add missing variable
5. fixed usercontext instance
2011-11-07 17:06:03 +08:00
Jason Fowler 253be7381f MDL24200 - Admin Users - Changing the submit button to just a button to prevent it from taking focus when entering text. (Patch provided by Hubert Chathi) 2011-11-07 15:37:21 +08:00
Aparup Banerjee cc9a416086 MDL-28670 webservice : added dimming of service name in security keys page if webservice is disabled or not on authorised list to access webservice. 2011-11-07 14:22:57 +08:00
Mark Nielsen c8972b9909 MDL-30059: Assignment Submission Notification Should Use Teacher's Timezone Rather Than Server Time 2011-11-07 13:37:30 +08:00
Sam Hemelryk 875ffd3734 MDL-28292 block_html: white space fix 2011-11-07 12:33:32 +13:00
Sam Hemelryk fb09c60c5e Merge branch 'wip-MDL-28292-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-11-07 12:24:21 +13:00
Sam Hemelryk ace2712e43 Merge branch 'MDL-29955_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-11-07 11:41:25 +13:00
Andreas Grabs 280854dc21 MDL-30154 - WebDAV-Repository fails on some WebDAV-Server 2011-11-06 22:10:49 +01:00
AMOS bot 26fa36381d Automatically generated installer lang files 2011-11-05 00:55:37 +00:00
Tim Hunt 0bf39d0c55 MDL-30137 question engine: Ugglify the SQL to appease MS SQL server. 2011-11-04 15:03:40 +00:00
David Mudrak daccd72436 MDL-29620 workshop table id sequence reset after the upgrade 2011-11-04 12:40:55 +01:00
David Mudrak e74ffa9215 MDL-29977 MNet does not allow to start a remote session when masquerading as another user 2011-11-04 09:42:39 +01:00
Ankit Kumar Agarwal 43b5e6bf57 MDL-29420 Global Search Fixing string issue 2011-11-04 12:08:45 +05:30
Mary Evans c9b3258ccc wip-MDL-22351 convert Anomaly CSS to readable format 2011-11-04 02:53:56 +00:00
AMOS bot 7986e5260c Automatically generated installer lang files 2011-11-04 00:55:33 +00:00
Dan Marsden 82fe152cea SCORM MDL-29159 - override getContentHtml function in treeview so that it doesn't escape text incorrectly 2011-11-04 00:24:59 +13:00
Tim Hunt 8bf2359662 MDL-30021 qtype numerical better showunits default when coming from 1.9
This applies to:
1. Upgrade from 1.9,
2. Import of questions exported from 1.9, and
3. Restore of courses backed-up from 1.9.

It also applies to the calculated question type.
2011-11-03 10:42:57 +00:00
Charles Fulton d76a78afae MDL-29970 question preview: Fill correct only if qtype supports it 2011-11-03 10:38:04 +00:00
Tim Hunt 5eb4001050 MDL-29739 question import used a bad default for text formats.
The new logic is that the questiontext defaults to HTML if the format is
not specified, then all other fields default to the same format of the
question text.

However, good practice is that the XML file should specify the format
for each bit of text content.

This code is not 100% backwards-compatible, since some methods have new
arguments, however for question types that have not been updated, it
will just generate a PHP Warning, which is, I think, and OK way to let
qtype developers know that they need to update their question types.
2011-11-03 10:37:35 +00:00
Tim Hunt 2dd93c071a MDL-28426 qtype base export_to_xml does not write format.
Fix based on Roger Moore's patch.
2011-11-03 10:37:08 +00:00
Jason Fowler 930bbe97c6 MDL-28292 - Blocks - Patch supplied by Chris Follin to fix blocks with empty titles that disappear when docked 2011-11-03 16:31:43 +08:00
Rajesh Taneja a5b30b0463 MDL-25937 Forms Library: Filepicker will respect disable if 2011-11-03 13:37:58 +08:00
Rajesh Taneja b2595cb67b MDL-25937 Froms Library: Added server side validation for filepicker and filemanager 2011-11-03 13:37:58 +08:00
Jason Fowler 2c5be3e552 MDL-26712 Themes - Correcting text dimming for hidden labels 2011-11-03 13:25:14 +08:00
Ankit Kumar Agarwal 6b67218be3 MDL-29035 Backups making email match case-insensitive when restoring backups 2011-11-03 10:32:24 +05:30
Rossiani Wijaya 76a526a270 MDL-25823 lesson mod: fixed true and false question feedback. 2011-11-03 12:46:11 +08:00
AMOS bot c28c9a2d89 Automatically generated installer lang files 2011-11-03 00:55:35 +00:00
Eloy Lafuente (stronk7) f08f22c267 weekly release 2.1.2+ 2011-11-02 19:53:29 +01:00
Eloy Lafuente (stronk7) d4a8a15d7f Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-11-02 19:48:42 +01:00
Jerome Mouneyrac 500ba8b11e MDL-30043 token.php should not return a mix of EXTERNAL_TOKEN_PERMANENT and EXTERNAL_TOKEN_EMBEDDED 2011-11-02 15:24:10 +08:00
Jerome Mouneyrac fae4f8f1b9 MDL-29931 remove unneeded join and selects 2011-11-02 15:23:44 +08:00
Jerome Mouneyrac 0d7773c098 MDL-29716 Make token more flexible to support third party client - also fix issue with some code not matching the way the server authenticate/authorize token, missing iprestriction/validuntil for restricted users (there are iprestriction/validiuntil on token and on restricted user). Also add missing check when the user is not listed in the authorised list. 2011-11-02 15:23:22 +08:00
Eloy Lafuente (stronk7) 3d4bcfbddf Merge branch 'MDL-29879_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-11-01 20:13:26 +01:00
Eloy Lafuente (stronk7) c3a648c342 Merge branch 'm21_MDL-29213' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-11-01 19:54:53 +01:00
Dan Poltawski 541a9978a8 MDL-29803 report/logs - don't retrieve all users uncessarily
Also remove uncessary retrieval of idnumber

Helps display the main logs page on large sites without running out of
memory
2011-11-01 16:36:22 +00:00
Tim Hunt 2c1773b908 MDL-29879 qbehaviour missing. Fix bad lang string. 2011-11-01 10:38:39 +00:00
Aparup Banerjee c880538684 Merge branch 'w43_MDL-30005_m21_uri' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-11-01 15:19:51 +08:00
Petr Skoda de79cbe32b MDL-30005 regression fix for non http/ftp urls 2011-11-01 07:57:08 +01:00
Sam Hemelryk 7f422374c1 MDL-28720 calendar: Quick fix of a regression in set.php 2011-11-01 17:50:28 +13:00
Aparup Banerjee 65af1129c5 Merge branch 'w43_MDL-29990_m21_navcontinue' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-11-01 12:16:10 +08:00
Aparup Banerjee df1d01c9f7 Merge branch 'MDL-29787_M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-01 12:07:22 +08:00
Sam Hemelryk 2acd50840c Merge branch 'w43_MDL-29980_m21_flowcss' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-11-01 16:52:31 +13:00
Tim Hunt ce5b99077c MDL-29164 question import, missing lang string.
AMOS BEGIN
 CPY [noquestionsinfile,mod_quiz],[noquestionsinfile,question]
AMOS END
2011-11-01 16:48:25 +13:00
Gerwood Stewart 5e876cd379 MDL-27521 Updates the can_finalize and can_unfinalize methods to deal with passing a submission object that isn't one (in this case is a Boolean value). This will result in both methods now returning false. Kick on effect is that it corrects the bug described in MDL-27521 by removing the button if it isn't possible to finalize the submission. 2011-11-01 11:46:36 +08:00
Sam Hemelryk 9fc8435c21 Merge branch 'MDL-29197-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-01 16:11:44 +13:00
Sam Hemelryk 685cc34c18 Merge branch 'MDL-25760_M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-11-01 15:58:14 +13:00
AMOS bot ec0a00ea27 Automatically generated installer lang files 2011-11-01 00:55:20 +00:00
Sam Hemelryk 5e56574d55 Merge branch 'w43_MDL-29925_m21_calendar' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-11-01 09:38:10 +13:00
Aparup Banerjee 2d930dc6dd Merge branch 'w43_MDL-29966_m21_grouploading' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-31 16:05:51 +08:00
Aparup Banerjee 4f14428adc Merge branch 'w43_MDL-29984_m21_enroltoday' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-31 15:26:09 +08:00
Aparup Banerjee 4f0ad6fc94 MDL-30005 URL : fixed typos 2011-10-31 15:17:48 +08:00
Aparup Banerjee 340aa2008f Merge branch 'w43_MDL-30005_m21_uri' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-31 15:17:15 +08:00
Rossiani Wijaya 5fd928d633 MDL-29955: filestorage/file_types: add support for .f4v, .m4v and .webm 2011-10-31 15:15:32 +08:00
Sam Hemelryk 1322584287 Merge branch 'w43_MDL-28720_m21_calendarreturn' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-31 17:31:49 +13:00
Jamie Pratt 2df5a98299 MDL-27919 Fixed a regression where I was seeing that after choosing "Overwrite"
in a filemanager form component when subsequently trying to add another file the
file picker would then immediately close upon opening.
2011-10-31 17:18:58 +13:00
Jamie Pratt cb28940596 MDL-27919 also adding a callback to the filepicker when a file is overwritten
but a file with the same name. This is not necessary in most cases but is
instant and some code may expect a call to the function whether the url and / or
file name has changed or not so it can update itself when the file changes.
2011-10-31 17:18:58 +13:00
Jamie Pratt 44915324c8 MDL-27919 Fixes 'undefined' message and similar problems when selecting a
recent file, server file or when renaming a file being uploaded with the same
name as a previous one.
2011-10-31 17:18:57 +13:00
Sam Hemelryk 7a6d43a3ee Merge branch 'MDL-29810-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-10-31 17:10:41 +13:00
Dan Marsden 1bd3952b19 MDL-29213 SCORM - fix for bug with flash player and IE 9 2011-10-31 14:58:46 +13:00
Mary Evans cfaa48041a MDL-29197 FIX for content displacment when clicking anchor elements in course page 2011-10-31 01:55:03 +00:00
Sam Hemelryk 376d035af9 Merge branch 'MDL-30006-workshop-grades_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-10-31 13:05:53 +13:00
Sam Hemelryk c440076d2b Merge branch 'm21_MDL-28559' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-10-31 13:00:08 +13:00
Sam Hemelryk d612fa300e Merge branch 'm21_MDL-29965' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-10-31 12:56:18 +13:00
Sam Hemelryk 84ac3ff122 Merge branch 'MDL-29898-MOODLE_21_STABLE-1' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-10-31 12:44:31 +13:00
Petr Skoda 516dd9c525 MDL-30005 bump up version after lang string change 2011-10-30 23:54:01 +01:00
Petr Skoda 4064642b37 MDL-30005 fix general URI support in URL module
The recent change completely removed support for general URIs and enforced strict URL validation which was breaking backwards compatibility and was not user friendly at all.

This patch finally adds full URI support with basic validation and fixes some older xhtml strict issues.

Please note we do not try to explain the difference between URL and URI to our users. Also keep in mind that mod/url has XSS risk and does not do any security validation of the data.
2011-10-30 23:53:55 +01:00
David Mudrak 08fb23840e MDL-30006 Workshop / Number of errors grading: force graders to actually answer the form
QuickForms do not distinguish non-checked radio from the checked radio
with the value "0". So we map the database grade value "0" to a value
"-1" when displaying the form and vice versa when saving the form. This
allowed us to have none radios checked by default and force the grader
to actually answer the form themselves, using the 'required' rule.
2011-10-30 20:16:08 +01:00
David Mudrak 112f7d41ea MDL-30006 Workshop / Accumulative grading: force graders to actually pick a grade
This patch introduces a new hidden field with the value "-1". The grade
selectors are compared with this values and must be greater than it.
This should fit well for numerical grades with the range 0..x and scale
items with the range 1..x.
2011-10-30 20:16:01 +01:00
Petr Skoda 364c32f0c1 MDL-29990 fix syntax error 2011-10-29 10:00:29 +02:00
Dan Marsden 75658ad2ca SCORM MDL-29965 improve display of SCORM package - decrease unecessary padding 2011-10-29 15:34:13 +13:00
AMOS bot a4ab3f9840 Automatically generated installer lang files 2011-10-29 00:55:20 +00:00
Petr Skoda 0d2672748c MDL-28720 fix set.php return url handling 2011-10-28 19:35:28 +02:00
Petr Skoda bc577df6a9 MDL-29925 improve redirect url cleanup 2011-10-28 19:33:06 +02:00
Petr Skoda c915b922b7 MDL-29966 fix invalid group loading image
Credit goes to Alexander Bias.
2011-10-28 15:50:06 +02:00
Petr Skoda 3dfaec6d6e MDL-29980 fix rules typo
Credit goes to Paul Nicholls.
2011-10-28 15:35:51 +02:00
Petr Skoda 8c41a90a9c MDL-29984 fix undefined $today when no course start date 2011-10-28 15:13:11 +02:00
Mary Evans 60a3ede47e MDL-25760 FIX for highlighted current topic section 2011-10-28 01:40:39 +01:00
Mary Evans 46dd3d8f6d MDL-29787 FIX to remove sprite hover image from single menu item 2011-10-28 00:39:22 +01:00
Henning Bostelmann 716267f233 MDL-29810 Assignment grading: don't include teachers in list of students 2011-10-27 22:19:15 +01:00
Eloy Lafuente (stronk7) 9de8774f09 weekly release 2.1.2+ 2011-10-27 18:53:34 +02:00
Eloy Lafuente (stronk7) 7f5d1ef3c0 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-10-27 18:49:09 +02:00
AMOS bot 6e03d19df5 Automatically generated installer lang files 2011-10-27 00:55:34 +00:00
Eloy Lafuente (stronk7) d21cdb8b3c MDL-29912 course search - oracle inabilities with concats, empties, nulls and type-restrictions 2011-10-27 12:59:56 +13:00
Tim Hunt 21c5b22d97 MDL-29854 questions: display better message and more useful continue
when an error occurs in the middle of processing responeses.
2011-10-26 15:16:37 +08:00
Dan Marsden 006106d640 MDL-28559 - hide send for marking button from people that are enrolled but don't have capability to submit files - displays the same way as teachers/admins - keeps ability to display previously submitted files if they exist 2011-10-26 10:55:31 +13:00
Sam Hemelryk 5c6ec45706 Merge branch 'MDL-29569_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-10-26 10:44:20 +13:00
Dan Poltawski 23f3d0e4ac MDL-26568 block_online_users - reporting incorrect number of users
When over 50 users were online the count used in the listing was incorrect
2011-10-25 23:35:22 +02:00
Stephen Bourget 3f4186c6dc MDL-29368 Assignment: Fixed a fatal error caused by a missing include 2011-10-25 19:19:35 +02:00
Eloy Lafuente (stronk7) fd26ea4218 Merge branch 'MDL-29815_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-25 17:44:10 +02:00
Eloy Lafuente (stronk7) c96deddbe7 MDL-29815 dbtest - added one test_get_records_sql_complicated related test 2011-10-25 17:38:38 +02:00
Aparup Banerjee c963b7e15b MDL-28718 quiz : fixed plugin requires version to reflect current moodle MOODLE_21_STABLE version. 2011-10-25 15:48:05 +08:00
Rossiani Wijaya cd4336433c MDL-29569: lesson_mod: in matching type questions, fixed and set default value for scoring and fixed jump page setting when response text is set to empty 2011-10-25 12:16:56 +08:00
Sam Hemelryk 68bbf58745 Merge branch 'MDL-28718_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-25 16:47:03 +13:00
Sam Hemelryk 523f4aa787 Merge branch 'wip-MDL-29231-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-10-25 15:19:12 +13:00
Petr Skoda b304495ee4 MDL-29444 use iframe embedding in IE
iframe is back in HTML 5, we can safely use it in IE for all text documents because object embedding has multiple problems
2011-10-25 14:32:12 +13:00
AMOS bot ce50619835 Automatically generated installer lang files 2011-10-25 00:55:21 +00:00
Eloy Lafuente (stronk7) 9ee2ba4676 Merge branch 'MDL-29339_b_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-25 01:54:10 +02:00
Sam Hemelryk 35e2ec4df5 Merge branch 'MDL-29906_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-25 12:25:06 +13:00
Sam Hemelryk 3a87f672b7 Merge branch 'w42_MDL-29862_m21_fullmeinit' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-25 11:50:10 +13:00
Eloy Lafuente (stronk7) 9aa5b604ec Merge branch 'w42_MDL-29867_m21_author' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-24 23:14:49 +02:00
Tim Hunt e52c5225ec MDL-29906 quiz statistics report: replace use of deprectaed helpbutton. 2011-10-24 16:20:49 +01:00
Andrew Robert Nicols 3eb03012f0 MDL-29898: Fix documentation for CLI DB only installer 2011-10-24 12:32:10 +01:00
Tim Hunt 8c7d6037e6 MDL-29339 Manually cast objects to string before calling dmllib. 2011-10-24 11:20:42 +01:00
Aparup Banerjee 3cc9205676 Merge branch 'MDL-29542_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-10-24 17:05:39 +08:00
Aparup Banerjee 3d336f2264 Merge branch 'MDL-29828_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-24 16:43:21 +08:00
Aparup Banerjee 2cc4660758 MDL-29527 RSS : improved language string. 2011-10-24 16:21:12 +08:00
Dan Poltawski f1dc5d01e1 MDL-29527 - RSS: Add a description to the reset keys page
Thanks to Alexander Bias for the suggestion
2011-10-24 16:20:55 +08:00
Aparup Banerjee fdb8574046 Merge branch 'MDL-29619-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-10-24 14:49:35 +08:00
Jason Fowler e2236bac8c MDL-29231 - Course, Resource - Fix so that the correct icon is displayed for courses that have had two or more files uploaded to them - Thanks Michael D for the patch 2011-10-24 14:36:09 +08:00
Aparup Banerjee 8eb6f9f7a7 Merge branch 'MDL-29646-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-10-24 13:52:51 +08:00
Aparup Banerjee b35dc1beb7 Merge branch 'MDL-29818-MOODLE_21_STABLE' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-10-24 13:06:58 +08:00
AMOS bot 515b891bb7 Automatically generated installer lang files 2011-10-23 00:55:21 +00:00
Petr Skoda 1973078427 MDL-29867 fix invalid file author 2011-10-22 20:21:50 +02:00
Andreas Grabs e4f1b4db59 MDL-29806 - When a Feedback activity is restore the "Site after submit" URL is not updated and shows "$@PAGEVIEWBYID*15463@$" 2011-10-21 23:07:50 +02:00
Ankit Kumar Agarwal 49b266c07b MDL-29619 Validate urls before generating output 2011-10-21 14:14:04 +05:30
Petr Skoda 06f72d26d7 MDL-29862 incorrect wwwroot must be detected before session start 2011-10-21 09:53:13 +02:00
Rossiani Wijaya 68370e7bc6 MDL-29542 lesson module: changing qtype param type to INT 2011-10-21 12:40:51 +08:00
Tim Hunt 0750c0e114 MDL-29815 question engine DB: bad group-by clause detected by Oracle.
Thanks to Yanfei Lu for finding this and suggesting the fix.
2011-10-20 11:05:37 +01:00
Tim Hunt 77425798fb MDL-28718 block_quiz_results - add missing require_once. 2011-10-20 11:05:04 +01:00
Tim Hunt 57680da013 MDL-28718 block_quiz_results - add copyright headers. 2011-10-20 11:05:02 +01:00
Ankit Kumar Agarwal e7448d5102 MDL-29646 Scorm Fixing Regressions in userreport.php 2011-10-20 08:35:40 +05:30
Eloy Lafuente (stronk7) e04dba08b7 emergency release 2.1.2+ 2011-10-20 00:54:35 +02:00
Eloy Lafuente (stronk7) fbab740334 MDL-29496 course search - emergency regression fix 2011-10-20 00:49:34 +02:00
Eloy Lafuente (stronk7) 9065fddabb weekly release 2.1.2+ 2011-10-19 18:45:25 +02:00
Eloy Lafuente (stronk7) 26c8e82338 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-10-19 18:41:34 +02:00
Andrew Robert Nicols 73ebb5d7ab MDL-29818: Improve error message when a grade has no answer 2011-10-19 09:35:32 +01:00
Tim Hunt 32cb53a832 MDL-29828 quiz review: fix display of overdue time. 2011-10-19 09:10:25 +01:00
Sam Hemelryk 63cdff2429 MDL-28945 course_reports: Fixed up pagination issue 2011-10-19 16:50:40 +13:00
Sam Hemelryk 0b6713fe55 MDL-26953 theme_nonzero: Quick fix to incorrect left position 2011-10-19 16:27:01 +13:00
Eloy Lafuente (stronk7) 0e6186fb45 Merge branch 'wip-MDL-29496-stable21' of git://github.com/phalacee/moodle into MOODLE_21_STABLE 2011-10-18 11:00:35 +02:00
Eloy Lafuente (stronk7) 175bbb07f0 MDL-29496 unittests - verify COALESCE() cross-db compatibility 2011-10-18 16:01:42 +08:00
Sam Hemelryk bc23dbcf78 Merge branch 'MDL-29501-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2011-10-18 11:39:24 +13:00
Eloy Lafuente (stronk7) 7edd6c250d Merge branch 'w41_MDL-28454_m21_yuibackport' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-10-17 16:24:10 +02:00
Sam Hemelryk a258bda0b5 Merge branch 'MDL-28170_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-17 18:51:58 +13:00
Sam Hemelryk f1618d9343 Merge branch 'MDL-26953-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-17 17:37:16 +13:00
Sam Hemelryk 6adc168c96 Merge branch 'MDL-28945-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2011-10-17 16:26:04 +13:00
Sam Hemelryk 24e5f9df63 Merge branch 'MDL-29781-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-17 15:17:36 +13:00
Sam Hemelryk 297f40838a Merge branch 'MDL-26893-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-17 13:55:18 +13:00
Eloy Lafuente (stronk7) dabf2c159f MDL-28170 environment - add new 2.2 section
nothing changes from 2.1 as far as it was agreed that this will be
the last version supporting 1.9 upgrade. See issue for details.
2011-10-17 02:11:53 +02:00
Eloy Lafuente (stronk7) 171bbdad02 Merge branch 'MDL-28219d-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-10-16 21:32:05 +02:00
Aparup Banerjee 4ca17ce1cd MDL-27351 Quiz : updated string to reflect validation looking for embedded questions. 2011-10-16 19:22:27 +02:00
Aparup Banerjee 46d1d80388 MDL-28436 webservice : fixed missing field in query 2011-10-16 19:13:34 +02:00
Eloy Lafuente (stronk7) 1e42eedbad MDL-29191 wiki - avoid one more username leak 2011-10-16 19:01:57 +02:00
Eloy Lafuente (stronk7) c2dc95003e Merge branch 'MDL-29191' of git://github.com/hit-moodle/moodle into MOODLE_21_STABLE 2011-10-16 18:50:04 +02:00
Petr Skoda a6bb03641e MDL-28454 backport YUI 2.9.0 and 3.4.1 from master 2011-10-16 18:16:48 +02:00
Stephen Bourget a6c348362a MDL-29698 Assignment: Fix broken logentry 2011-10-16 18:14:21 +02:00
Eloy Lafuente (stronk7) 52bc12cedc Merge branch 'MDL-28483-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-10-16 17:37:41 +02:00
Petr Skoda 00a3005485 MDL-29773 prevent negative unix timestamps in the files table 2011-10-16 16:52:01 +02:00
Petr Skoda cfb15041cf MDL-29773 use db debuginfo when file record insertion fails 2011-10-16 16:52:01 +02:00
Mary Evans 280f3a4a1c MDL-29781 FIX for side-post-only layout 2011-10-14 20:48:26 +01:00
Mary Evans a8b50f506a MDL-26953 FIX for side-post-only layout 2011-10-14 02:38:09 +01:00
AMOS bot d93fc6e1ad Automatically generated installer lang files 2011-10-14 00:55:27 +00:00
Tony Levi cc6b535972 MDL-28945: Fix course/activity completion reports initial selection broken 2011-10-13 17:03:09 +01:00
Ankit Kumar Agarwal 6bcfb5f23b MDL-28483 URL adding validation checks and changing field externalurl to not-null 2011-10-13 09:07:15 +05:30
Mary Evans 4a17d78395 MDL-26983 FIX for side-post-only layout 2011-10-13 02:59:55 +01:00
Sun Zhigang c38cfee97b MDL-29191 - Show creator's fullname instead of username 2011-10-13 08:19:55 +08:00
Henning Bostelmann c0c07d835d MDL-28219 QE2 adaptive behaviour: fix scores and penalties 2011-10-12 23:26:42 +01:00
Eloy Lafuente (stronk7) 263c52843b weekly release 2.1.2+ 2011-10-12 23:48:54 +02:00
Sam Hemelryk 9b0e51000e MDL-29224 navigation Fixed bug caused because in 20 and 21 onclick events get added to extra rather than onclick 2011-10-12 19:47:13 +13:00
Aparup Banerjee 42f5db3ca8 Merge branch 'wip-MDL-27278-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-11 11:24:56 +08:00
Aparup Banerjee 4b7783da19 Merge branch 'wip-MDL-28549-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-11 09:45:06 +08:00
Aparup Banerjee 489f5b1338 Merge branch 'wip-MDL-28582-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-11 09:27:29 +08:00
Sam Hemelryk 28d838ba5e Merge branch 'MDL-29447_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-11 10:27:04 +13:00
sam marshall d33c06621a MDL-29501 Gradebook should not show links to activities that aren't available to user 2011-10-10 17:48:43 +01:00
Aparup Banerjee 415c4ee04f Merge branch 'wip-MDL-29224-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-10 23:14:42 +08:00
Aparup Banerjee 1d6bb3a897 Merge branch 'wip-MDL-29672-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-10 22:46:33 +08:00
Eloy Lafuente (stronk7) 63526ae3d5 MDL-29564 Assignment: whitespace fix 2011-10-10 13:10:07 +02:00
Sam Hemelryk b1913094d4 Merge branch 'MDL-16553-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-10-10 17:56:58 +13:00
Jason Fowler 2be90263ec MDL-29496 Search, Course - Code applied from patch to allow courses with a blank summary to be found in searchs - Thanks to Andrew Nicols for the patch 2011-10-10 11:38:15 +08:00
Sam Hemelryk 63a778838e Merge branch 'MDL-29661' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-10-10 16:27:04 +13:00
Sam Hemelryk 27625e0fca Merge branch 'MDL-29692' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-10-10 14:56:59 +13:00
Petr Skoda b15dee25e0 MDL-29686 obey caching setting for moodle yui modules 2011-10-10 12:28:35 +13:00
Sam Hemelryk 7fbb52d717 Merge branch 'MDL-29668_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-10 12:09:19 +13:00
Sam Hemelryk 2a0df64521 Merge branch 'MDL-29677_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-10 12:03:09 +13:00
Sam Hemelryk 430ce6cca3 Merge branch 'mdl-29564-assignment-plagiarism' of git://github.com/sbourget/moodle into MOODLE_21_STABLE 2011-10-10 11:51:08 +13:00
Dan Marsden c61c509f37 MDL-29690 fix usage of select all/deselect all in choice reports 2011-10-10 11:37:26 +13:00
Sam Hemelryk 960262ffe4 MDL-28582 course-report: Added a nothing to display notification to the outline and complete activity reports 2011-10-10 10:35:21 +13:00
Sam Hemelryk 63f81e076d MDL-28549 navigation: Added a missing login check when adding the calendar link to the navigation 2011-10-10 10:31:01 +13:00
Sam Hemelryk 28fb9fa8e2 MDL-29672 user: Fixed user edit page for non-admin users 2011-10-10 10:27:46 +13:00
Sam Hemelryk ffe1cc611c MDL-27278 navigation: Admin users can now set the home page preference like normal users 2011-10-10 10:17:37 +13:00
Eloy Lafuente (stronk7) 75371a7963 emergency release 2.1.2 2011-10-09 22:42:40 +02:00
Eloy Lafuente (stronk7) 94d5bb3b50 MDL-29520 - mysql multitable delete, outer join some tables 2011-10-09 22:39:12 +02:00
Eloy Lafuente (stronk7) b15cd07d4b Moodle release 2.1.2 2011-10-09 00:49:42 +02:00
Eloy Lafuente (stronk7) 22363663b8 MDL-29668 xmldb editor - fix PHP generation for foreign-unique keys 2011-10-08 21:51:42 +02:00
Henning Bostelmann 29bdd38e50 MDL-16553 Assignment, student view: show response files when no grade available 2011-10-07 23:23:04 +01:00
Ruslan Kabalin dfdef4a231 MDL-29692 enrol: cohort: Fix default role issue in Chrome
This is related to MDL-24280, the issue still persists in Chrome. The patch
fixes it for Chrome and works fine for the most major browsers.
2011-10-07 10:53:58 +01:00
Eloy Lafuente (stronk7) ec51da7d4b MDL-29677 unit tests - missing global was causing tons of incorrect debugging info 2011-10-07 01:24:40 +02:00
Eloy Lafuente (stronk7) ecbd8716f6 weekly release 2.1.1+ 2011-10-07 00:11:22 +02:00
Eloy Lafuente (stronk7) 7820e5047d fix permissions 2011-10-07 00:06:23 +02:00
Eloy Lafuente (stronk7) c4101db016 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-10-07 00:05:07 +02:00
Stephen Bourget 36c402ba79 mdl-23003 XMLDB missing strings
Fix notices generated by editing a table name using the XMLDB editor
2011-10-06 14:42:29 -04:00
Dan Poltawski 0b2d555f1a MDL-29661 - lib/googleapi.php - Switch to SSL urls
I am not sure why I did not use these in the first instance, I don't
think Google supported SSL in the first versions of their API.

They do now, and it seems that this week they stopped supporting non-ssl
requests.
2011-10-06 12:46:11 +01:00
Sam Hemelryk 5993fccd1e MDL-29224 navigation: Navigation now respects a modules onclick event when preparing navigation nodes 2011-10-06 19:32:52 +13:00
AMOS bot d1582f14d5 Automatically generated installer lang files 2011-10-06 00:55:37 +00:00
Aparup Banerjee e153abc018 Merge branch 'wip-MDL-28615-m21-squashed' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-05 14:52:45 +08:00
Eloy Lafuente (stronk7) f1ae261bc9 Merge branch 'MDL-28469_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-05 01:14:47 +02:00
Eloy Lafuente (stronk7) 19fcc09ac7 Merge branch 'wip-MDL-25697-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-05 01:10:24 +02:00
Sam Hemelryk 82bd683018 MDL-28615 forum: Fixed up a couple of minor regressions 2011-10-05 11:09:28 +13:00
Tim Hunt 0d3a082373 MDL-29447 quiz course reset does not reset the quiz_grades table.
Thank to Jean-Michel Vedrine for working out the basic idea of the fix.
2011-10-04 22:49:20 +01:00
Eloy Lafuente (stronk7) 19c8fd9e8b Merge branch 'MDL-29644_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-04 23:40:23 +02:00
Tim Hunt 0bfc2dde8f MDL-29644 qtype multianswer, hints lost doing Moodle XML export.
This commit also includes a lot of useful tidying up of some of the unit
test helper code. I turned out that I could not use all the helper code
in my new tests, but despite that it will be useful in the future, so I
am committing it here.
2011-10-04 22:28:35 +01:00
Stephen Bourget b801633a9c MDL-29564 Assignment: Fixed a fatal error caused by a missing include 2011-10-04 13:44:59 -04:00
Eloy Lafuente (stronk7) 807f806ed7 Merge branch 'MDL-27857-assignment-portfolio_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-10-04 12:46:24 +02:00
Eloy Lafuente (stronk7) 85dd2a674a Merge branch 'MDL-29548_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-04 12:37:45 +02:00
Tim Hunt fa8843c424 MDL-29548 allow message plugins to control message
defaults.

At the moment, each message_provider can specify defaults for
each message output, to say whether that message output should be
used for this type of message:
http://docs.moodle.org/dev/Messaging_2.0#Adding_new_message_type.

If the message provider does not set a default, this change allows
the message output to set the default.
2011-10-04 11:24:43 +01:00
Eloy Lafuente (stronk7) fdca6e8321 Merge branch 'MDL-19575-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-10-04 12:12:33 +02:00
Tim Hunt ae3056cb00 MDL-29520 question engine: work-around bad MySQL delete performance.
This is a temporary fix, until the new API from MDL-29589 is available.

(amended to fix comments)
2011-10-04 12:05:04 +02:00
Tim Hunt 74969d8866 MDL-29571 questions: improve class=accesshide screen-reader hints.
This changes the hint that comes before the question text. There are
unit tests to verify the new behaviour.

(amended to fix comments)
2011-10-04 11:53:07 +02:00
Tim Hunt 5e69fe4971 MDL-29571 qtype description refactor unit test code a bit. 2011-10-04 11:52:20 +02:00
Sam Hemelryk 133173e213 Merge branch 'MDL-29621_21_wip' of git://github.com/grabs/moodle into MOODLE_21_STABLE 2011-10-04 17:56:39 +13:00
Sam Hemelryk 747d6b5aac MDL-28615 forum: Fixed missing context regression 2011-10-04 16:37:04 +13:00
Sam Hemelryk 91a7a788aa Merge branch 'MDL-28725_wiki_section2_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-10-04 16:21:33 +13:00
Eloy Lafuente (stronk7) c3a4009a56 Merge branch 'MDL-29511_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-04 01:11:48 +02:00
Eloy Lafuente (stronk7) f0837f65d8 Merge branch 'MDL-29216_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-03 22:55:56 +02:00
Eloy Lafuente (stronk7) a70eda6cc8 Merge branch 'MDL-29341_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-03 22:50:30 +02:00
Eloy Lafuente (stronk7) c5c9be022d Merge branch 'MDL-29570_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-10-03 21:42:55 +02:00
Andreas Grabs 96909b1597 MDL-29621 - XHTML not welformed when creating Feedback questions 2011-10-03 18:44:55 +02:00
Tim Hunt 8f40d27954 MDL-28469 quiz settings pages should be pagelayout admin. 2011-10-03 16:38:59 +01:00
David Mudrak 59c8be2362 MDL-27857 Export to portfolio support in the assignment module improved
Portfolio API code in the assignment module expected that the current
user is the author of the submission. Therefore the "Export to
portfolio" button did not work when the submission was viewed by a
teacher (eg at the page with the list of all submissions in the Advanced
upload assignment).

This patch introduces a new callback argument 'submissionid' that holds
explicit ID of the submission the export deals with. With it available,
we do not need to expect the current user is the author of the
submission.

The patch also cleans some strings used for portfolio callback
exceptions.
2011-10-03 10:13:11 +02:00
David Mudrak f289c698a9 MDL-27857 Typo in the phpDocs fixed 2011-10-03 10:13:11 +02:00
David Mudrak daf4471a40 MDL-27857 Assignment does not use form tag to render portfolio export control widget
When this code was used as a part of the grading screen, the default
PORTFOLIO_ADD_FULL_FORM widget led to nested form elements. This patch replaces
the form widget with a plain text link that can be embedded safely.
2011-10-03 10:13:10 +02:00
Aparup Banerjee b056fee5ba MDL-26486 Lesson : fixed whitespace 2011-10-03 16:01:36 +08:00
Aparup Banerjee c6e321ccaf Merge branch 'MDL-26486_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-10-03 16:01:00 +08:00
Andrew Davis (andyjdavis) f6705d681a MDL-27640 rating: altered the return url provided by mod_data to ratings 2011-10-03 15:25:00 +08:00
Aparup Banerjee 30ed26a576 Merge branch 'wip-MDL-27867-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-10-03 14:29:46 +08:00
Aparup Banerjee 1e6c738c6c MDL-29541 Administration : fixed whitespace 2011-10-03 14:04:08 +08:00
Aparup Banerjee 4cb89f4df4 Merge branch 'wip-mdl-29244-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-10-03 13:54:09 +08:00
Rajesh Taneja 1f2d15dc62 MDL-29244 Users: Fixed filter for selecting users who never logged in and course roles dropdown show all revelent roles 2011-10-03 13:46:39 +08:00
Sam Hemelryk 7d9cb204be Merge branch 'MDL-29296_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-10-03 17:08:51 +13:00
Sam Hemelryk e6f5ebe25b Merge branch 'MDL-29605-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-03 16:43:09 +13:00
Sam Hemelryk 6eeb293e04 Merge branch 'wip-mdl-29539-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-10-03 15:09:53 +13:00
Sam Hemelryk 124414cc5e MDL-28566 theme_base: removed MDL comment 2011-10-03 15:01:06 +13:00
Sam Hemelryk 69a62c2646 Merge branch 'MDL-28566-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-03 14:37:54 +13:00
Sam Hemelryk add033dafe Merge branch 'MDL-29323-M21' of git://github.com/lazydaisy/moodle into MOODLE_21_STABLE 2011-10-03 14:30:12 +13:00
Sam Hemelryk 90e44b5068 Merge branch 'wip-MDL-25454-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2011-10-03 14:24:18 +13:00
Sam Hemelryk bf49e4404c Merge branch 'MDL-29558_2_1' of git://github.com/jamiepratt/moodle into MOODLE_21_STABLE 2011-10-03 14:04:47 +13:00
AMOS bot e4346a63ba Automatically generated installer lang files 2011-10-03 00:55:29 +00:00
Eloy Lafuente (stronk7) e438ff9942 MDL-29552 themes - show the name of the picked theme when working with device detection enabled 2011-10-03 13:30:09 +13:00
Sam Hemelryk ddf0d0dcd7 Merge branch 'MDL-29567_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-03 13:23:24 +13:00
Sam Hemelryk d85d6ccd3e Merge branch 'MDL-29566_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-03 12:49:54 +13:00
Sam Hemelryk bd90c5891f Merge branch 'MDL-29618_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-10-03 12:28:05 +13:00
Dan Poltawski e58c72d050 MDL-27295 Course Category View - Only display count when more than 0 courses 2011-10-03 11:52:09 +13:00
Eloy Lafuente (stronk7) 77be201a0f MDL-29618 backup - back to handling enrolments properly. Regession of MDL-26841, my fault, grrr 2011-10-03 00:47:28 +02:00
Sam Hemelryk 73a48291b3 MDL-28615 forum: Revised enrol_sharing_course to use the new enrol_get_shared_courses and fixed permission checking in forum_user_can_see_post 2011-10-03 11:23:56 +13:00
Mary Evans cb7699c3a9 MDL-29605-modify Afterburner menu to allow auto format 2011-10-01 23:20:29 +01:00
Tim Hunt 22ba72591c MDL-29216 multianswer qtype needs intereactive elements on the form. 2011-10-01 00:09:27 +01:00
Tim Hunt 41be2f3587 MDL-29341 qtype numerical/calc: display of mc units badly laid out. 2011-09-30 23:42:27 +01:00
Kordan 7bbad2e268 MDL-29403 fix for M21 2011-09-30 11:15:52 +02:00
Jamie Pratt fc15f0837a MDL-29558 question preview: limit variants drop-down to the first 100
In situations when question has many variants.
2011-09-30 09:43:26 +07:00
Mary Evans 9d0cc2cb4c MDL-29323-FIX invalid border style 2011-09-30 03:16:32 +01:00
AMOS bot f058ea24c9 Automatically generated installer lang files 2011-09-30 00:55:21 +00:00
Tim Hunt b99d21aaa9 MDL-29511 cannot review previous steps of a question attempt since MDL-28679. 2011-09-29 21:53:41 +01:00
Tim Hunt 778854eef5 MDL-29511 Fix problems on the quiz review questions page found while investigating this bug. 2011-09-29 21:53:40 +01:00
Marina Glancy 5c6377900a MDL-25454: using the faster way to check if record exists in db 2011-09-29 17:06:37 +08:00
Andrew Davis (andyjdavis) a00b84e864 MDL-28725 wiki: added urlencode around the section variable when it is being used to construct URLs 2011-09-29 16:49:52 +08:00
Andrew Davis (andyjdavis) 667ffef155 MDL-28725 wiki: added missing string
AMOS BEGIN
 CPY [invalidsection,core_admin],[invalidsection,mod_wiki]
AMOS END
2011-09-29 16:49:43 +08:00
Tim Hunt 8258ddff3b MDL-29570 Quiz editing page displays the wrong time in the status line sometimes. 2011-09-29 09:06:41 +01:00
Rossiani Wijaya 03fb10da20 MDL-26486 lesson mod: fixed grade report error on matching and shortanswers questions. 2011-09-29 13:05:50 +08:00
Ankit Kumar Agarwal 342f224f03 MDL-19575 Global Search Adding capability checks to the search and stat pages 2011-09-29 09:09:54 +05:30
Marina Glancy 0623443356 MDL-25454 before skipping course backup make sure that there are no change entries in it's log during the last month. Store the nextstarttime even for courses that were not backed up 2011-09-29 10:02:08 +08:00
Rajesh Taneja 4a313905bc MDL-29539 HTML Editor: Fixed XHTML formatting for editor 2011-09-29 09:36:22 +08:00
Sam Hemelryk 9c36051feb MDL-28615 mod_forum: Fixed the users page that shows all of the users posts 2011-09-29 14:21:15 +13:00
Sam Hemelryk fa447a513e MDL-25697 theme_base: Improved the alignment of the activity editing icons on the course frontpage 2011-09-29 14:15:24 +13:00
AMOS bot 037afad8c3 Automatically generated installer lang files 2011-09-29 00:55:41 +00:00
Eloy Lafuente (stronk7) 72a32ea968 MDL-29567 postgresql - handle negative defaults in numerical cols properly 2011-09-29 01:22:31 +02:00
Eloy Lafuente (stronk7) 21973a92a4 MDL-29567 unit tests - add some tests to cover negative defaults in numerical cols 2011-09-29 01:22:21 +02:00
Eloy Lafuente (stronk7) af9a00d398 MDL-29566 mysql - length / decimal specs in float columns are optional 2011-09-29 00:33:18 +02:00
Eloy Lafuente (stronk7) 3264974513 MDL-29566 unit tests - add some tests to cover get_columns() with number/float columns 2011-09-29 00:33:15 +02:00
Sam Hemelryk 214784a4af MDL-27867 course: Course and category theme selectors no longer show theme's that should be hidden from the selector 2011-09-29 10:47:52 +13:00
Mary Evans b15ab7630c MDL-28566 - Fix for participants user details 2011-09-28 15:45:20 +01:00
Eloy Lafuente (stronk7) 3973662145 weekly release 2.1.1+ 2011-09-28 11:08:00 +02:00
Eloy Lafuente (stronk7) f7bb84df23 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-09-28 11:04:28 +02:00
AMOS bot fc316236f5 Automatically generated installer lang files 2011-09-28 00:55:21 +00:00
Aparup Banerjee e9be98eed2 Merge branch 'MDL-29230_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-09-27 15:00:49 +08:00
Aparup Banerjee ca92a99a2e Merge branch 'MDL-25241_forum_search_ratings_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-09-27 11:35:44 +08:00
Sam Hemelryk d021250bf0 Merge branch 'm21_MDL-29519' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-09-27 14:09:50 +13:00
Eloy Lafuente (stronk7) 2b4dcfdcbd Merge branch 'MDL-28686-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-09-27 00:54:49 +02:00
Sam Hemelryk fe245b725b Merge branch 'MDL-28424_21' of git://github.com/timhunt/moodle.git with changes 2011-09-27 11:26:37 +13:00
Eloy Lafuente (stronk7) 3dba01a40f Merge branch 'w38_MDL-29535_m21_filters' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-09-26 23:57:30 +02:00
Petr Skoda 5cac28fb2b MDL-29535 fix support for custom filter settings in contrib filters 2011-09-26 23:49:58 +02:00
Eloy Lafuente (stronk7) dc110687c8 Merge branch 'MDL-29462_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 22:42:09 +02:00
Eloy Lafuente (stronk7) 0518140c31 Merge branch 'MDL-28202_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 22:28:47 +02:00
Eloy Lafuente (stronk7) 4d7a9cd8f5 Merge branch 'MDL-29427_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 22:01:35 +02:00
Eloy Lafuente (stronk7) ba1afa0d95 Merge branch 'MDL-29528_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 21:44:49 +02:00
Tim Hunt f8431a1933 MDL-29528 qtype multichoice and caclulated combined feedback format overwritten during upgrade. 2011-09-26 13:39:11 +01:00
Aparup Banerjee 3cef27bf9f Merge branch 'MDL-29270-question-grade_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-09-26 17:04:28 +08:00
Rossiani Wijaya 9551f03606 MDL-29296 lesson mod: fixed regression for continue button on last lesson page. 2011-09-26 16:40:39 +08:00
Aparup Banerjee 8daff43635 Merge branch 'wip-MDL-29487-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-26 16:01:11 +08:00
Aparup Banerjee e90206aaa4 Merge branch 'MDL-29464_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 14:49:21 +08:00
Aparup Banerjee b967bf6005 Merge branch 'MDL-29333_rating_ajax_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-09-26 14:07:25 +08:00
Sam Hemelryk ded9134e03 Merge branch 'MDL-29428_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 14:04:15 +13:00
AMOS bot 9d7b02bec0 Merge branch 'MOODLE_21_STABLE' into install_21_STABLE 2011-09-26 00:55:32 +00:00
Sam Hemelryk d496829c61 Merge branch 'MDL-29484_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 13:55:27 +13:00
Sam Hemelryk 9c43f8f7e1 Merge branch 'MDL-29493_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-26 13:48:11 +13:00
Dan Marsden 7af777217d MDL-29519 move plagiarism cron to after event queue 2011-09-26 13:16:28 +13:00
Sam Hemelryk 585bd02479 Merge branch 'MDL-29336-numerrors-mapping-21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-09-26 12:36:46 +13:00
Sam Hemelryk d7749a10a6 Merge branch 'MDL-29478_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-09-26 10:53:10 +13:00
Sam Hemelryk 65072bfdc2 Merge branch 'MDL-29139_m21' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2011-09-26 10:45:40 +13:00
Sam Hemelryk 9f05075c61 Merge branch 'MDL-29190_21_wip' of git://github.com/grabs/moodle into MOODLE_21_STABLE 2011-09-26 10:39:26 +13:00
Jean-Michel Vedrine ef4cf39174 MDL-29270 Fixed question bank backup converter (field rename) 2011-09-25 23:30:40 +02:00
Eloy Lafuente (stronk7) 7294a0649b weekly release 2.1.1+ (emergency) 2011-09-25 17:26:40 +02:00
Eloy Lafuente (stronk7) 9c49600397 MDL-29512 Revert "MDL-25937 Froms Library: Added server side validation for filepicker and filemanager"
This reverts commit b19539bf44.
2011-09-25 17:14:47 +02:00
Eloy Lafuente (stronk7) 0a5afc0583 MDL-29512 Revert "MDL-25937 Forms Library: Added Javascript validation for filepicker and filemanager. Also fixed disbledif rule check for both"
This reverts commit 1f552b4c48.
2011-09-25 17:14:33 +02:00
AMOS bot 2de4e3872c Automatically generated installer lang files 2011-09-25 00:55:21 +00:00
AMOS bot d73581da42 Automatically generated installer lang files 2011-09-24 00:55:24 +00:00
Andreas Grabs dbd388acef MDL-29190 - XHTML not well formed in show_nonrespondents.php 2011-09-23 18:54:18 +02:00
Tim Hunt 51fd4dd261 MDL-29493 questions should be createable with defaultmark a float. 2011-09-23 12:52:39 +01:00
Tim Hunt dddcaf6b6b MDL-29484 qformat xml tests failing. 2011-09-23 12:09:31 +01:00
Sam Hemelryk 8710d49bec MDL-29487 enrol: Fixed typo in enrol_sharing_course 2011-09-23 18:18:10 +12:00
Rossiani Wijaya a672bd8ad5 MDL-29230 lesson_module: fixed question's answer to have 0 value. 2011-09-23 14:10:12 +08:00
Eloy Lafuente (stronk7) 4d1e35d8c0 MDL-29478 unittest - fix rating tests so they can be executed with accesslib caches cleaned 2011-09-23 01:48:09 +02:00
Eloy Lafuente (stronk7) 7bfc279ffb MDL-29478 unittest - explicity include blog/lib.php. Was causing "random" errors 2011-09-23 01:37:58 +02:00
Eloy Lafuente (stronk7) cb59f50fb8 MDL-29478 blog - fixed some recent regressions introduced by MDL-29186 2011-09-23 00:06:10 +02:00
Tim Hunt 5d81093e3c MDL-29427 quiz nav: information items should should have a state tooltip 2011-09-22 18:13:11 +01:00
Tim Hunt a9384ab0d0 MDL-29428 quiz navigation panel should use 'This page' (accessibility improvement) 2011-09-22 17:56:35 +01:00
Kyle Temkin 18d81bdb3c MDL-28202 qtype_calculated fix edge case in the rounding code. 2011-09-22 12:14:44 +01:00
Andrew Davis (andyjdavis) 4b5c0b461c MDL-25241 forum: reimplemented the display of ratings on the forum search page 2011-09-22 15:30:05 +08:00
Aparup Banerjee 0047a8f47d MDL-29139 Forms Library : fixed missing require_once 2011-09-22 14:56:40 +08:00
David Mudrak a39eb49fc2 MDL-29336 Saving grade mapping table in the Workshop
The Workshop module using the "Number of errors" grading strategy did
not save all items in the grade mapping table. If some assessment form
fields have weight > 1, the number of possible errors is greater that
the number of the assessment form fields. The previous code deleted all
mappings where the number of errors was greater than the number of
fields.

In this patch, the maximum number of possible errors is calculated as a
sum of weights of all fields. Only mappings over this maximum are
deleted now.
2011-09-22 05:17:44 +02:00
Andrew Davis (andyjdavis) cfb909d013 MDL-29333 rating: prevent the ratings JS from being intialized multiple times 2011-09-22 10:23:26 +08:00
Andrew Davis (andyjdavis) 81fa243ea4 MDL-29333 rating: refactored the ratings ajax 2011-09-22 10:23:15 +08:00
AMOS bot 747d4d3e25 Automatically generated installer lang files 2011-09-22 00:55:33 +00:00
Tim Hunt 74ca90e5fb MDL-29464 quiz add random question popup does not update sumgrades. 2011-09-21 16:43:05 +01:00
Tim Hunt 4e92a71fb3 MDL-29462 html_to_text('0') gives '', not '0'. 2011-09-21 16:42:33 +01:00
Tim Hunt e6674da8ff MDL-28424 Reviewing a quiz in 'secure mode' gives a fatal error.
The problem was when output was being started in relation to when the fake block was added.

Took the opportunity to clean up the quiz renderer API a bit.
2011-09-21 16:41:36 +01:00
Eloy Lafuente (stronk7) 136fa79e34 weekly release 2.1.1+ 2011-09-21 17:11:46 +02:00
Eloy Lafuente (stronk7) 06a22aecb7 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-09-21 17:04:43 +02:00
AMOS bot f7cf17a853 Automatically generated installer lang files 2011-09-21 00:55:20 +00:00
Eloy Lafuente (stronk7) e63827ad98 Merge branch 'MDL-26567_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-21 00:11:14 +02:00
Tim Hunt 84de2336fb MDL-26567 no grade category option on the quiz settings form.
Also, refine the standard_grading_coursemodule_elements method to add a
help string.

AMOS BEGIN
 CPY [gradecategory,grades],[gradecategoryonmodform,grades]
AMOS END
2011-09-20 12:15:07 +01:00
Eloy Lafuente (stronk7) 7f0d91d546 Merge branch 'wip-mdl-29079-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-20 09:51:18 +02:00
Aparup Banerjee 14312ebc6a Merge branch 'MDL-26890-m21' of git://github.com/ankitagarwal/moodle into MOODLE_21_STABLE 2011-09-20 13:17:00 +08:00
Ankit Kumar Agarwal 292faa4f7d Forums check on filesize if the file is added to the forum from private area 2011-09-20 10:05:36 +05:30
Rajesh Taneja e93bb0ca52 MDL-29079 Administration: Added space on both sides of locked checkbox and for rtl language space will be applied accordingly 2011-09-20 11:50:46 +08:00
Aparup Banerjee a886ad10ea Merge branch 'wip-mdl-28726-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-20 10:20:38 +08:00
Sam Hemelryk c4b234ec54 Merge branch 'MDL-26841_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-09-20 12:13:48 +12:00
Sam Hemelryk 6831c9ff36 Merge branch 'MDL-29392_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-20 11:58:23 +12:00
Colin Chambers 6a49c01825 MDL-29394 form editor - Use hidden field when only 1 format option is available #947 2011-09-20 00:36:35 +02:00
Eloy Lafuente (stronk7) 0ff54e134f Merge branch 'wip-mdl-29079-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-20 00:17:42 +02:00
Eloy Lafuente (stronk7) 5af8bbf854 Merge branch 'MDL-28679_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-20 00:04:17 +02:00
Eloy Lafuente (stronk7) 75ebacb1ec Merge branch 'MDL-29126_export_separator_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-09-19 23:37:49 +02:00
M Kassaei 1859247e0c MDL-29392 grade/report/index.php should use $CFG->grade_profilereport 2011-09-19 11:32:18 +01:00
Eloy Lafuente (stronk7) f199117f05 MDL-26841 backup - prevent any enrolments info to be handled in IMPORT/HUB operations 2011-09-19 11:24:24 +02:00
Aparup Banerjee bc24c20388 Merge branch 's13_MDL-29036_ws_upload_21' of git://github.com/dongsheng/moodle into MOODLE_21_STABLE 2011-09-19 16:13:31 +08:00
Dongsheng Cai 4e970a5335 MDL-29036 WEBSERVICE : webservice upload script should respect maxbytes and userquota settings 2011-09-19 15:29:13 +08:00
Sam Hemelryk 955f15a71f Merge branch 'MDL-29366_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-19 19:20:17 +12:00
Sam Hemelryk 5585910ea7 Merge branch 'MDL-28329_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-19 18:36:55 +12:00
Rajesh Taneja 1b17be9050 MDL-29079 Administration: Added space between checkboxes on general backup setting page 2011-09-19 13:35:56 +08:00
Sam Hemelryk 26c28d0821 Merge branch 'wip-mdl-25937-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-19 17:00:40 +12:00
Aparup Banerjee 8104e0f2df Merge branch 's13_MDL-28509_youtube_21' of github.com:dongsheng/moodle into MOODLE_21_STABLE 2011-09-19 12:15:00 +08:00
Dongsheng Cai 4ded0afd16 MDL-28509 repository : fixed youtube repository search keyword 2011-09-19 11:57:14 +08:00
Mark Johnson 2e348a6643 MDL-28509 repository_youtube Enable selection of sort order 2011-09-19 11:57:01 +08:00
Petr Skoda 84cae7bef8 MDL-29406 fix greedy config settings cleanup 2011-09-19 13:33:08 +12:00
Sam Hemelryk 3d2029f3d4 Merge branch 'MDL-29360_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-09-19 11:57:58 +12:00
KNDeepa 9acc5736a8 MDL-28329 local_qeupgradehelper make cron work. 2011-09-16 18:44:06 +01:00
Tim Hunt 08d1ba7106 MDL-28679 question response history displays states incorrectly. 2011-09-16 16:05:59 +01:00
Tim Hunt e9197a3711 MDL-29366 qtype_essay import/export as Moodle XML loses files from graderinfo 2011-09-16 12:00:40 +01:00
Tim Hunt 4394f91b26 MDL-29360 quiz comment.php has broken JS for the Cancel button.
This swtichest it to more modern YUI3 approach.
2011-09-16 12:00:03 +01:00
Tim Hunt 25aa44ea97 MDL-28259 Individual answers Feedback not shown in Cloze questions 2011-09-16 11:59:02 +01:00
Rajesh Taneja f9d4ab44e0 MDL-28726 wiki-2.0: Fixed XSS in wiki comments 2011-09-16 11:10:27 +08:00
Rajesh Taneja 1f552b4c48 MDL-25937 Forms Library: Added Javascript validation for filepicker and filemanager. Also fixed disbledif rule check for both 2011-09-16 09:18:23 +08:00
Rajesh Taneja b19539bf44 MDL-25937 Froms Library: Added server side validation for filepicker and filemanager 2011-09-16 09:18:23 +08:00
Eloy Lafuente (stronk7) ce0cb2451b weekly release 2.1.1+ 2011-09-16 01:38:33 +02:00
Eloy Lafuente (stronk7) 929c1e4a8b Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-09-16 01:34:34 +02:00
Eloy Lafuente (stronk7) 7923d63b16 MDL-29093 auth - help string now specifies MNet exception. Thanks Helen! 2011-09-14 11:37:31 +02:00
Eloy Lafuente (stronk7) efb0aacf37 MDL-29093 auth - help string changed to VBFET suggestion
(very best favourite english translator, aka. Helen :-P)
2011-09-14 10:12:17 +02:00
Sam Hemelryk 9e312ed269 MDL-29188 course_formats Fixed up formatting of section name within navigation 2011-09-14 11:41:36 +12:00
Sam Hemelryk 6aa9352f66 MDL-29093 - Authentication improved new setting name and strings 2011-09-14 00:30:26 +02:00
Iñaki Arenaza 2023ca1f0f MDL-29093 - Authentication for authentication only, not for user creation
There are cases when a moodle installation needs to only deal
user authentication and not user creation (this is especially
interesting when using external authentication sources such as LDAP,
CAS, etc.)

Add an option to prevent automatic user creation if the administrator
does't want users to be automatically created.

Signed-off-by: Iñaki Arenaza <iarenaza@mondragon.edu>
2011-09-14 00:30:17 +02:00
Petr Skoda 6f1156a6c2 MDL-29295 do not use strtok in dml and ddl layers
This prevents clobbering of internal pointer when code calling DML
uses strtok too. Unit test added to prevent future uses.
2011-09-14 00:21:33 +02:00
Aparup Banerjee a7cb1e62f4 MDL-26257 Authentication : whitespace/style fixes 2011-09-13 19:15:48 +08:00
Aparup Banerjee edb8077e7b Merge branch 'MDL-26257-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-09-13 19:11:49 +08:00
Aparup Banerjee d8f2500f46 Merge branch MDL-29186-m21 of git://github.com/samhemelryk/moodle
- resolved conflicts, minor whitespace and fixed quote.
    - note: textlib_get_instance() is already deprecated
2011-09-13 16:19:47 +08:00
Aparup Banerjee 6519a7769d Merge branch MDL-29187-m21 of git://github.com/samhemelryk/moodle
- resolved conflict.
2011-09-13 13:54:43 +08:00
Aparup Banerjee 995b4d16cd Merge branch 'wip-MDL-29188-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-13 13:33:56 +08:00
Aparup Banerjee 717c3395be Merge branch 'wip-MDL-29189-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-13 11:45:51 +08:00
Sam Hemelryk 6bc526319e Merged branch '28595_m22_installcontinue' of git://github.com/skodak/moodle with changes 2011-09-13 15:35:27 +12:00
Sam Hemelryk b3c64930ff MDL-29189 course Minor fixups after code review 2011-09-13 11:19:17 +12:00
Andrew Davis (andyjdavis) a6f388c664 MDL-22232 messaging: added the ability to temporarily disable notifications to a particular user 2011-09-12 20:24:08 +12:00
Sam Hemelryk 90d14d089c Merge branch 'MDL-29211_M21' of git://github.com/kordan/moodle into MOODLE_21_STABLE 2011-09-12 19:49:26 +12:00
kordan 9d8dbe645c MDL-29211 fox for MOODLE_21_STABLE 2011-09-12 09:40:08 +02:00
Sun Zhigang 937e0a23d9 MDL-29112 trigger event mod_deleted after deleting mod through AJAX 2011-09-12 17:36:10 +12:00
Aparup Banerjee 910671644c MDL-28724 wiki : Fixed bugs in wiki forms 2011-09-12 17:27:56 +12:00
Petr Skoda 9e6ef6ccc2 MDL-29131 fix multiple groups issues on the recent activity report 2011-09-12 17:08:58 +12:00
Sam Hemelryk 4a277f4f4e Merge branch 'w36_MDL-29306_m21_dbenrolroles' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-09-12 15:30:33 +12:00
Sam Hemelryk 786a905607 Merge branch 'w36_MDL-29292_m21_featuretypo' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-09-12 15:17:25 +12:00
Sam Hemelryk 20ff7e3279 Merge branch 'MDL-27635_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-09-12 14:39:22 +12:00
Sam Hemelryk 2513a2b24f Merge branch 'w36_MDL-29312_m21_cookieless' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-09-12 14:25:02 +12:00
Rossiani Wijaya 4966b0ee71 MDL-27635 hub component: fixed default value for 'secret' field in 'registration_hubs' table 2011-09-12 10:21:45 +08:00
Sam Hemelryk 18fc309097 Merge branch 'MDL-28488_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-09-12 13:20:47 +12:00
kordan 3bfe7ce57a MDL-29056 theme-formal_white fix for the report pagelayout that was preventing horizontal scroll 2011-09-12 13:03:02 +12:00
Eloy Lafuente (stronk7) 366c19fabd MDL-28488 backup - conditionaly apply defaults based on mode
Some modes of backup cannot be preloaded with general backup
settings because they may conflict with the definitions required/set
by the mode (for example, import backups are, by definition, without
users always, so we cannot apply one default in the opposite direction).

So, after the patch, current general_backup setting will be only applied
to general backups, import/hub modes won't be using any default and
automated backup defaults should be loaded here (TODO)
2011-09-11 21:57:00 +02:00
Eloy Lafuente (stronk7) 56a1642c5b MDL-28488 backup - '[backup|restore]:configure cap does not control import mode anymore 2011-09-11 21:56:45 +02:00
Eloy Lafuente (stronk7) 9d74bab3bc MDL-28488 backup - fixup some strings and delete legacy ones 2011-09-11 21:56:31 +02:00
Eloy Lafuente (stronk7) 993261dcff MDL-28488 backup - make backup and import capabilities independent
Before this change, in order to perform one course import it was
necessary to have both the backupcourse and the backuptargetimport
capabilities. After agreement now each one will control its own
backup mode. Same applies for restore.
2011-09-11 21:56:13 +02:00
Eloy Lafuente (stronk7) 4b5233f9c4 MDL-28488 backup - activity duplication requires 2 capabilities in ctx 2011-09-11 21:55:43 +02:00
Petr Skoda 0cf269c1fc MDL-29292 fix feature typo
Credit goes to Raminder Singh.
2011-09-11 12:49:16 +02:00
Petr Skoda e1e082a809 MDL-29312 prevent cookieless mode for security reasons 2011-09-11 10:07:27 +02:00
AMOS bot 8cd0f221b6 Automatically generated installer lang files 2011-09-11 00:55:40 +00:00
Petr Skoda 94a720f287 MDL-28595 explain the need to install into new db if something fails during the initial install 2011-09-11 00:08:23 +02:00
Petr Skoda f6090a3531 MDL-28595 do not print continue link if install fails 2011-09-11 00:08:20 +02:00
Petr Skoda 3dfac46e97 MDL-29306 support multiple roles in ext enrol db 2011-09-10 23:34:06 +02:00
AMOS bot 3119ba9a2a Automatically generated installer lang files 2011-09-10 00:55:20 +00:00
AMOS bot 74743b5e48 Automatically generated installer lang files 2011-09-09 00:55:20 +00:00
Henning Bostelmann 033a066e4f MDL-26257 Shibboleth auth: run logout handler only if logged in via Shibboleth 2011-09-08 11:53:44 +01:00
AMOS bot 8ede1d5121 Automatically generated installer lang files 2011-09-08 00:55:31 +00:00
Sam Hemelryk 0347dd4d70 MDL-29186 multilang Reviewed the uses of course fullname and ensured things were being formatted consistently 2011-09-08 09:39:00 +12:00
Sam Hemelryk 5da6f4eeb6 MDL-29187 multilang Reviewed the uses of category name and ensured things are being formatted correctly 2011-09-08 09:36:55 +12:00
Sam Hemelryk 34c46428f1 MDL-29189 mutlilang Reviewed the uses of course shortname and ensured things are being formatted consistently 2011-09-08 09:30:10 +12:00
Sam Hemelryk 9ec4220c84 MDL-29188 multilang Reviewed the uses of section name and ensured things were being formatted consistently 2011-09-08 09:27:55 +12:00
Eloy Lafuente (stronk7) 22e8ad6134 weekly release 2.1.1+ 2011-09-07 17:55:05 +02:00
Eloy Lafuente (stronk7) 0780ba7ca7 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-09-07 17:49:21 +02:00
Eloy Lafuente (stronk7) 06b66d530b Merge branch 'wip-MDL-28043-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-06 13:56:08 +02:00
Eloy Lafuente (stronk7) 57d30b5276 Merge branch 'wip-mdl-28987-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-06 01:59:49 +02:00
Sam Hemelryk a640301b81 MDL-28043 user Fixed context hack in pluginfile for user pics leading to init of page, theme and output for redirect 2011-09-06 11:29:44 +12:00
Eloy Lafuente (stronk7) 593b4518ad Merge branch 'wip-mdl-23520-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-09-06 01:27:51 +02:00
Eloy Lafuente (stronk7) abaff947c6 Merge branch 'wip-MDL-29006-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-06 00:38:38 +02:00
Eloy Lafuente (stronk7) ae115cf229 Merge branch 'w35_MDL-29145_m21_imscpregression' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-09-05 21:52:08 +02:00
Eloy Lafuente (stronk7) 152ee16812 MDL-29072 Import course - whitespace fixes 2011-09-05 10:42:55 +02:00
Petr Skoda ed2448a342 MDL-29145 fix regression caused by MDL-27448 2011-09-05 09:47:09 +02:00
Rajesh Taneja 48f6a80092 MDL-28987 Forms Library: Removed onBlur validation. Now the validation will occur on form submit only 2011-09-05 14:26:19 +08:00
Iñaki Arenaza 85f5ab3145 MDL-27689 Vague README-LDAP file in auth/ldap
README-LDAP referes to a file that was renamed (to auth.php) in Moodle
1.8 and no longer exists. Make clear what file we are referring to.
2011-09-05 13:31:41 +08:00
Aparup Banerjee 26cfc10584 Merge branch 'wip-MDL-26811-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-09-05 13:18:52 +08:00
Aparup Banerjee 5f856fdfe9 Merge branch 'MDL-29198_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-09-05 12:52:15 +08:00
Rajesh Taneja 0d7dcbf1ae MDL-28987 Forms Library: Added tinyMCE onblur event callback for required tinymce fields 2011-09-05 12:21:55 +08:00
Rajesh Taneja 6786f79ab4 MDL-28987 Forms Library: Added tinyMCE save for tinymce editor validation 2011-09-05 12:21:49 +08:00
Adam Olley a010bfe63d MDL-28987: Affix [text] to editor element in JS validation and add blur event 2011-09-05 12:21:43 +08:00
Sam Hemelryk 3cabe2de8c Merge branch 'MDL-29018_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-09-05 16:08:07 +12:00
Sam Hemelryk 7ecabfdce4 Merge branch 'MDL-28689_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-09-05 16:03:08 +12:00
Rossiani Wijaya c8fa99de72 MDL-29018 lesson module statistics: fixed statistics diplay for whole the class 2011-09-05 11:16:33 +08:00
Henning Bostelmann 02aac22ff8 MDL-29072 Import course: Use correct capability for course selection 2011-09-05 13:41:34 +12:00
Sam Hemelryk 05956888d7 Merge branch 'MDL-27975_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-09-05 13:37:33 +12:00
Sam Hemelryk caff2aa640 Merge branch 's13_MDL-29170_risklevel_21' of git://github.com/dongsheng/moodle into MOODLE_21_STABLE 2011-09-05 11:13:17 +12:00
AMOS bot 5031249d84 Automatically generated installer lang files 2011-09-03 00:55:20 +00:00
Eloy Lafuente (stronk7) 3c7a83744e MDL-28080 DML unit tests - cover tweak_param_names() and the new 30 chars limit exception 2011-09-01 19:59:13 +02:00
Eloy Lafuente (stronk7) 436135f52a MDL-28080 oracle - avoid tweak_param_names() tweaking too much :-P
Sometimes the (oracle only) tweak_param_names() method was causing
placeholders having > 28 chars length to exceed the 30 chars limit
imposed by Oracle. With this commit the tweak is performed by
replacement for such long placeholders and, at the same time, the
tweak has been commented out from insert/update because it is not
necessary there (placeholders are safe column name always)
2011-09-01 19:59:13 +02:00
Tim Hunt 41f17b384f MDL-28080 coding_exception for over-long placeholder names. 2011-09-01 19:59:12 +02:00
Rossiani Wijaya 47b9f44c6f MDL-27975 community block: fixed string typo 2011-09-01 17:10:29 +08:00
Eloy Lafuente (stronk7) 7a8a938077 MDL-29198 DB - make delete_records transactional safe when needed 2011-09-01 11:08:09 +02:00
Rossiani Wijaya e3a6a3878e MDL-28689 chat module: add input.png file. This is a simple fix by copying the file from bubbles themes. Proper fix should be done in the future 2011-09-01 16:27:13 +08:00
Andrew Davis (andyjdavis) 35dd29564b MDL-29126 gradebook: made text export with tabs as separator work 2011-09-01 15:32:27 +08:00
Dongsheng Cai 5c71cfca6a WEBSERVICE MDL-29170 reduce createmobiletoken capability risk level 2011-09-01 11:03:47 +08:00
AMOS bot e5df0e3e17 Automatically generated installer lang files 2011-09-01 00:55:25 +00:00
Rajesh Taneja 6b94a62ff8 MDL-23520 mod-wiki-2.0: Added delete page and version feature as it was in 1.9 2011-08-31 13:54:16 +08:00
Sam Hemelryk e9a574454c MDL-29006 block_html Added formatted to title printed on editing form when a hard freeze is in effect 2011-08-31 11:46:44 +12:00
Eloy Lafuente (stronk7) ddf322586e weekly release 2.1.1+ 2011-08-31 01:33:29 +02:00
Sam Hemelryk ed9041c9ce MDL-26811 upgrade Fixed up default handling causing exception on upgrade of used site in MSSQL 2011-08-31 11:33:29 +12:00
Eloy Lafuente (stronk7) 3853dc585c Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-08-31 01:29:39 +02:00
Aparup Banerjee 132c116509 MDL-29005 blocks : clarified comment 2011-08-30 11:20:38 +08:00
Aparup Banerjee 97dd4ec539 Merge branch 'MDL-29005_MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-08-30 11:19:57 +08:00
Eloy Lafuente (stronk7) 5266e929da MDL-28489 site news forum - support multilang filter 2011-08-30 11:06:57 +12:00
Eloy Lafuente (stronk7) 9c89f307f8 Merge branch 'MDL-29141_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 13:01:57 +02:00
Eloy Lafuente (stronk7) 4524a47a0a Merge branch 'wip-MDL-24202-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-08-29 10:30:59 +02:00
Aparup Banerjee 7816f5acb0 Merge branch 'MDL-29144_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 12:01:41 +08:00
Sam Hemelryk ce4285c883 Merge branch 'MDL-28564_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 13:59:26 +12:00
Sam Hemelryk 208b9e2a50 MDL-24202 navigation Fixed bug caused by navigation overriding a CFG setting 2011-08-29 13:45:36 +12:00
Eloy Lafuente (stronk7) 5a8f177c73 Merge branch 'MDL-28943_manage_message_name_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-08-29 03:26:41 +02:00
Eloy Lafuente (stronk7) fa3dff1318 Merge branch 'MDL-26302_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 03:23:28 +02:00
Sam Hemelryk a4ad64950b Merge branch 'MDL-26819_21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-08-29 13:05:22 +12:00
Sam Hemelryk 6870b5dcbb Merge branch 'dev_MDL-27289_boxnet_21' of git://github.com/dongsheng/moodle into MOODLE_21_STABLE 2011-08-29 12:54:40 +12:00
Eloy Lafuente (stronk7) 6e582f1632 Merge branch 'MDL-29064_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 02:52:55 +02:00
Eloy Lafuente (stronk7) 3bdb9bfd54 Merge branch 'MOODLE_21_STABLE' of git.moodle.org:/git/integration into MOODLE_21_STABLE 2011-08-29 02:41:27 +02:00
Eloy Lafuente (stronk7) 1dd41f0eb1 Merge branch 'MDL-29062_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 02:40:08 +02:00
Sam Hemelryk 78b19caf0a Merge branch 'MDL-29135-mnet-login_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-08-29 12:24:57 +12:00
Eloy Lafuente (stronk7) 4984e712e6 Merge branch 'MDL-29111_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-29 02:02:55 +02:00
David Mudrak 174245497e MDL-29148 MNet - improved handling of a verification function return code 2011-08-29 01:48:41 +02:00
Eloy Lafuente (stronk7) 119b895133 Merge branch 'wip_MDL-16168_2.1_CAS_crash_if_no_LDAP' of https://github.com/iarenaza/moodle into MOODLE_21_STABLE 2011-08-29 01:33:03 +02:00
Eloy Lafuente (stronk7) 04dc7f877b Merge branch 'MDL-25872-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-08-29 01:22:42 +02:00
Iñaki Arenaza 5e7d9e3e36 MDL-28402 LDAP configuration values being stored in lower case, causing misconfiguration
It looks like array_change_key_case() does not work recursively, so we
were not actually lowercasing the expiration attribute key. As the
configuration setting is always lowercase they didn't match.
2011-08-29 01:08:42 +02:00
Eloy Lafuente (stronk7) c24ccde07f MDL-26819 quiz statistics - use cross-db GROUP BY expression 2011-08-28 22:16:11 +02:00
Iñaki Arenaza b38bcc3a1d MDL-16168 auth/cas CAS crashes if no LDAP is set up
Fix was pending for Moodle 2.1. Credit goes to Ivan Dackiewicz.
2011-08-28 15:32:32 +02:00
David Mudrak 9b81b37eb9 MDL-27107 auth_mnet - consider all incoming roaming users as confirmed
The 'confirmed' field can't be optional. If the identity provider did
not export it, the new remote user would be created with 'confirmed' set
to default zero and as such could be a subject of scheduled deletion.
2011-08-28 02:36:38 +02:00
David Mudrak 2f2cf818c2 MDL-29135 Reworded login prompt with SSO over MNet enabled 2011-08-27 18:24:55 +02:00
AMOS bot ed32596d3a Automatically generated installer lang files 2011-08-27 00:55:41 +00:00
M Kassaei 9651053bb4 MDL-29144 quiz navigation: Screen-readers speak question state twice 2011-08-26 19:10:54 +01:00
Tim Hunt 15e6246359 MDL-29111 quiz was passing 0 to ->review_url when it should have been null. 2011-08-26 18:16:57 +01:00
Henning Bostelmann b1a24c1eb0 MDL-25872 View assignment submissions: show only students, not teachers
Fixing incorrect capability reference mod/assignment:view to ...:submit
2011-08-26 17:34:35 +01:00
Tim Hunt 362d5c1ed1 MDL-29141 question bank show question text checkbox does not match state. 2011-08-26 17:01:52 +01:00
Henning Bostelmann d5ae2ed112 MDL-28686 QE2 upgrade: recognize manually graded, deleted questions 2011-08-26 14:37:49 +01:00
Eloy Lafuente (stronk7) e4527c5497 weekly release 2.1.1+ 2011-08-26 15:09:00 +02:00
Eloy Lafuente (stronk7) 200cb06bfc Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-08-26 14:56:52 +02:00
Eloy Lafuente (stronk7) 97e4e3953a MDL-28684 QE2 upgrade: fix undefined $a regression. Thanks Henning! 2011-08-25 15:54:41 +02:00
Eloy Lafuente (stronk7) ee4dee99e8 Merge branch 'MDL-27823_bulk_messaging_2_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-08-25 10:46:11 +02:00
AMOS bot 7adfd55ec2 Automatically generated installer lang files 2011-08-25 00:55:21 +00:00
Eloy Lafuente (stronk7) efc2de0e97 Merge branch 'MDL-28650-MOODLE-21-STABLE' of https://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-08-25 01:15:49 +02:00
Eloy Lafuente (stronk7) ddec658859 Merge branch 'MDL-28684_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-24 17:12:18 +02:00
Tim Hunt e9f707d38a MDL-28684 fix failing unit test - which means fix the acutal code.
Sorry for the noise.
2011-08-24 16:02:40 +01:00
Eloy Lafuente (stronk7) 7faa5b4e9c Merge branch 'MDL-28976_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-24 12:57:51 +02:00
Jerome Mouneyrac 2eb3bb390f MDL-29005 display enrollable courses total and downloadable courses total instead of courses/sites total 2011-08-24 14:49:54 +08:00
Aparup Banerjee 2134aa6129 Revert "MDL-28509 repository_youtube Enable selection of sort order"
This reverts commit 0638e55b14.
2011-08-24 14:43:05 +08:00
Eloy Lafuente (stronk7) adc0d74ac9 Merge branch 'w33_MDL-29022_m21_idnumber' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-24 03:51:51 +02:00
Aaron Barnes b5013dc868 MDL-28248 completion: Incorrect SQL for finding enrol start date 2011-08-24 12:07:18 +12:00
Eloy Lafuente (stronk7) b61fd419e8 Merge branch 'MDL-28979_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-24 01:56:06 +02:00
Tim Hunt 8c412f122c MDL-28942 qtype multichoice, multi-response. Avoid computing the wrong random guess score.
It is effectively impossible to compute the right random guess score, so we should not compute anything, rather than computing a number that we know is wrong.

This patch also fixes a multianswer unit test error that was shown up by this fix.
2011-08-24 01:53:26 +02:00
Eloy Lafuente (stronk7) 7a4a1f14ca Merge branch 'MDL-28975_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-24 01:45:23 +02:00
Sun Zhigang fad5ec9b5a MDL-29019 enrol - fix a typo 2011-08-24 01:31:29 +02:00
Petr Skoda 93e8c6c422 MDL-19380 fix redirect when virus found in JS-less mode 2011-08-24 01:21:08 +02:00
Petr Skoda 16dc846eb1 MDL-19380 reimplement antivir scanning in repositories 2011-08-24 01:21:00 +02:00
Petr Skoda c7c1a8cf14 MDL-29000 multiple password reset issues
* stop abusing get_complete_user_data()
* fix case-sensitiveness in password reset for PG
* do not allow reset of disabled accounts
* propose a solution for non-unique emails
2011-08-24 01:08:10 +02:00
Petr Skoda b13eda7e8d MDL-28981 fix forum_user_can_post() call params 2011-08-24 00:53:29 +02:00
Tony Levi a3ad8fd883 MDL-27228: Fix label 'eye' does not match show/hide setting 2011-08-23 23:36:29 +02:00
Eloy Lafuente (stronk7) 4ffedd8b0e Merge branch 'w33_MDL-28708_m21_f304' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 23:32:36 +02:00
Eloy Lafuente (stronk7) 71cf843ad2 Merge branch 'w33_MDL-28709_m21_h304' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 23:23:15 +02:00
Eloy Lafuente (stronk7) fd7bdf278c Merge branch 'w33_MDL-29011_m21_nomanualenrol' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 23:13:28 +02:00
Eloy Lafuente (stronk7) 80fc30b7bd MDL-28684 QE2 upgrade: whitespace fix 2011-08-23 22:53:26 +02:00
Eloy Lafuente (stronk7) 251037cefd Merge branch 'MDL-28684b-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-08-23 22:53:11 +02:00
Eloy Lafuente (stronk7) 3d95259d7e Merge branch 'MDL-28444-21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-23 22:48:06 +02:00
Aparup Banerjee 1b502dff19 Merge branch 'w33_MDL-28982_m21_sqlfullname' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-24 02:59:56 +08:00
Aparup Banerjee e9f8af2a1b Merge branch 'MDL-28687_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-24 02:28:21 +08:00
Eloy Lafuente (stronk7) 35dd038144 MDL-28962 enrol imsenterprise - whitespace fix 2011-08-23 18:43:37 +02:00
Eloy Lafuente (stronk7) f403941133 Merge branch 'm21_MDL-28962' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-23 18:43:21 +02:00
Eloy Lafuente (stronk7) a1eeb0185a Merge branch 'MDL-28957_21' of git://github.com/colchambers/moodle into MOODLE_21_STABLE 2011-08-23 18:01:16 +02:00
Eloy Lafuente (stronk7) dc70aa7378 Merge branch 'MDL-28397-21' of https://github.com/totara/moodle into MOODLE_21_STABLE 2011-08-23 17:31:12 +02:00
Sam Hemelryk bb37aab093 MDL-25636 block_html Fixed up missing format config if block restored from early 2.0 backup 2011-08-23 18:41:48 +08:00
Eloy Lafuente (stronk7) 72bd83e0f1 Merge branch 'w33_MDL-28381_m21_cliphpver' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 11:03:42 +02:00
Eloy Lafuente (stronk7) 1b69c111cc Merge branch 'MDL-28996_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-23 10:42:52 +02:00
Petr Skoda 23eccfcd77 MDL-28935 use weekdays as calendar table headings 2011-08-23 10:05:14 +02:00
Jason Ilicic 68cfdb72f9 MDL-28935 Add days of week to monthly calendar view 2011-08-23 10:05:04 +02:00
Tim Hunt 0570e81ecb MDL-29062 qtype multianswer refers to old name for the question_delete_questions function. 2011-08-23 08:54:15 +01:00
Tim Hunt 5ce736caa8 MDL-29064 qtype multianswer, question text should be a required field. 2011-08-23 08:41:00 +01:00
Aparup Banerjee 8145290d43 Merge branch 'MDL-28509_21_STABLE' of git://github.com/marxjohnson/moodle into MOODLE_21_STABLE 2011-08-23 14:55:11 +08:00
Eloy Lafuente (stronk7) d94b4b327d Merge branch 'm21_MDL-28999' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-23 02:49:59 +02:00
Petr Skoda c896d5c54d MDL-29016 allow distributions to set dataroot permissions 2011-08-23 02:43:10 +02:00
Eloy Lafuente (stronk7) 5cfb119475 Merge branch 'MDL-28990-MOODLE_21_STABLE' of git://github.com/mouneyrac/moodle into MOODLE_21_STABLE 2011-08-23 02:37:01 +02:00
Eloy Lafuente (stronk7) 092c6089c9 Merge branch 'w33_MDL-29031_m21_oldblock' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 02:05:08 +02:00
Eloy Lafuente (stronk7) 8fb3542126 Merge branch 'MDL-28226_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-23 01:42:25 +02:00
Adam Olley 4b0fbfcbd9 MDL-28481: Send headers before any possible output 2011-08-23 01:37:16 +02:00
Eloy Lafuente (stronk7) b1ea3fb2c6 Merge branch 'w33_MDL-28936_m21_msgstrlen' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-23 01:20:24 +02:00
Eloy Lafuente (stronk7) 94aa0fbe8c Merge branch 'MDL-28241_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-23 01:17:17 +02:00
Tom Cubanski 6be8a680e2 MDL-26302 quiz editing: top move button on the order and paging tab does not work.
It is strange that processes the submission already handles the submitted data from this change to the HTML.
2011-08-22 23:56:51 +01:00
Tim Hunt 6310adb3f4 MDL-28564 question type importing, improve Jamie's fix. 2011-08-22 23:32:48 +01:00
Jamie Pratt 80fa621c50 MDL-28564 "implement support for extra answer fields in question export and
import" implemented support for extra answer fields in questiontype base
export and import functions.
2011-08-22 23:32:47 +01:00
Tim Hunt 60854b669a MDL-28241 editing multianswer questions broken since the fix for MDL-24594. 2011-08-22 22:36:37 +01:00
Aparup Banerjee 8db14e344b Merge branch 'wip-mdl-28580-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-23 01:49:51 +08:00
Andrew Davis (andyjdavis) a47827691a MDL-27823 messaging: preventing html tags from being output to the UI 2011-08-22 15:28:30 +08:00
Aaron Barnes 3b9bf6a949 MDL-28397 completion: Activity completion criteria not showing grading
requirement

Credit goes to Evan Irving-Pease for the patch
2011-08-22 14:57:13 +12:00
Petr Skoda 5eb8c77850 MDL-29011 do not require manual enrol cap on the enrolled users page 2011-08-21 18:18:35 +02:00
Petr Skoda 51606ad2d8 MDL-29031 remove blocks cleanup todo 2011-08-21 17:45:52 +02:00
Petr Skoda 812e3294be MDL-27248 remove forgotten unique sortorder index from the course table 2011-08-21 17:33:19 +02:00
Petr Skoda 181b0dc545 MDL-28982 fix DML use 2011-08-21 15:39:34 +02:00
Petr Skoda 6b3d645e9b MDL-28381 always verify PHP version in CLI scripts
The problem is that people may use different php binary for web and CLI.
2011-08-21 12:22:14 +02:00
Tim Hunt 3d233b9dab MDL-28444 unit test to verify the fix. 2011-08-20 13:18:05 +01:00
Henning Bostelmann 5c364504a6 MDL-28444 synchronized datasets: fix typo in get_variants_selection_seed() 2011-08-20 11:45:41 +01:00
Petr Skoda 0864c8a59d MDL-29022 do not require idnumber in ext courses - backport from MDL-29020 2011-08-20 11:34:58 +02:00
AMOS bot c498bf796b Automatically generated installer lang files 2011-08-20 00:55:28 +00:00
Petr Skoda a32da065ae MDL-28936 fix invalid >200 comparison and utf-8 incompatibility
Credit for discovery goes to Jason Ilicic.
2011-08-19 18:44:33 +02:00
Tony Levi 68d9daa187 MDL-28708: Send 304 Not Modified response when browser If-Modified-Since header is after file mtime 2011-08-19 17:27:20 +02:00
Petr Skoda 4bdcd23e19 MDL-28709 adding HTTP_IF_MODIFIED_SINCE and minor style tweaks 2011-08-19 16:50:16 +02:00
Tony Levi 716f93efdb MDL-28709: Performance: Send cache/contenttype headers with 304 responses 2011-08-19 16:50:16 +02:00
Henning Bostelmann ec5f40b1a9 MDL-28684 QE2 upgrade: recognize empty answer in multichoice questions 2011-08-19 10:33:55 +01:00
Rajesh Taneja 01f9bc7948 MDL-28580 Administration: Added sanity check to grab wrong usage of upgrade_main_savepoint 2011-08-19 07:41:13 +00:00
Jerome Mouneyrac fc218ba9e2 MDL-28990 add web service mobile overview 2011-08-19 11:47:17 +08:00
Dan Marsden f3e0eac04f MDL-28999 SCORM add missing yui2 require 2011-08-19 10:21:11 +12:00
Tim Hunt da45306da5 MDL-28996 Quiz view page list of attempts table is sometimes missing a cell. 2011-08-18 19:27:19 +01:00
Tim Hunt 96bab3e01d MDL-28979 qtype match: correct answer formatted badly. 2011-08-18 13:51:18 +01:00
Tim Hunt cb5a7bba89 MDL-28976 quiz was passing 0 to ->attempt_url when it should have been null.
There was also one other incorrect call that is fixed in this commit.
2011-08-18 13:50:51 +01:00
Tim Hunt 0a20ddbe7d MDL-28975 question engine, JavaScript error in IE. 2011-08-18 13:50:24 +01:00
Tim Hunt 3575052f81 MDL-28687 questions avoid fatal errors when reviewing attempts at deleted questions. 2011-08-18 13:49:33 +01:00
Tim Hunt 6d9ae2adf0 MDL-28226 quiz locallib. Fix PHPdoc comment and code to make the API clearer. 2011-08-18 13:44:01 +01:00
Jerome Mouneyrac f76dc0ff65 MDL-28650 add a page in the administration to the full web service API (API documentation). 2011-08-18 12:08:38 +08:00
Dan Marsden 1b64c78d36 MDL-28962 enrol imsenterprise - incorrect conversion of new dml syntax - thanks to Patrick Gagnon for report and fix. 2011-08-18 13:40:17 +12:00
Eloy Lafuente (stronk7) 24654d977b weekly release 2.1.1+ 2011-08-18 02:42:40 +02:00
Eloy Lafuente (stronk7) cd91adc715 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-08-18 02:38:43 +02:00
Colin Chambers e5ba71b479 #MDL-28957 outputrequirementslib reduced excessive js console logging 2011-08-17 14:58:15 +01:00
Eloy Lafuente (stronk7) ad307c7121 Merge branch 'MDL-28349_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-17 15:40:00 +02:00
Dongsheng Cai 1c64c52951 MDL-27289, upgrade box.net repository plugin to use new box.net authentication process 2011-08-17 11:45:32 +08:00
Eloy Lafuente (stronk7) 74475bd5d5 Merge branch 'wip-mdl-27219-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-17 02:59:38 +02:00
Eloy Lafuente (stronk7) c30dadce6f Merge branch 'MDL-28737_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-17 02:51:57 +02:00
Eloy Lafuente (stronk7) f45cf8cb2c Revert "MDL-25757 SCORM fix issue with duplicate cmi values being saved"
This reverts commit 2c7cc519d8.
2011-08-17 02:28:49 +02:00
Eloy Lafuente (stronk7) 4239318be9 Merge branch 'MDL-21934_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-17 01:29:20 +02:00
Eloy Lafuente (stronk7) 33868528bb Merge branch 'MDL-27752_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-08-17 01:02:21 +02:00
Eloy Lafuente (stronk7) e3af6a00ba Merge branch 'MDL-28643-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2011-08-17 00:45:25 +02:00
Eloy Lafuente (stronk7) 95caac3cc8 Merge branch 'm21_MDL-28649' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-17 00:33:07 +02:00
Eloy Lafuente (stronk7) c89c390759 Merge branch 'MDL-28652_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-17 00:29:23 +02:00
Eloy Lafuente (stronk7) 25bde46869 Merge branch 'MDL-28653_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-17 00:25:46 +02:00
Tim Hunt 269c653560 MDL-28654 fix path for TinyMCE in lib/thirdpartylibs.xml. 2011-08-17 00:10:09 +02:00
Eloy Lafuente (stronk7) 88b340161b Merge branch 'MDL-28655-21' of git://github.com/bostelm/moodle into MOODLE_21_STABLE 2011-08-17 00:07:44 +02:00
Eloy Lafuente (stronk7) 5b18861bf0 Merge branch 'm21_MDL-28721' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-16 23:44:12 +02:00
Eloy Lafuente (stronk7) 84e093e143 Merge branch 'wip-MDL-26754-MOODLE_21_STABLE' of github.com:marinaglancy/moodle into MOODLE_21_STABLE 2011-08-16 13:11:16 +02:00
Eloy Lafuente (stronk7) 02b36f79d2 Merge branch 'MDL-28365_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-16 13:03:59 +02:00
Eloy Lafuente (stronk7) a6f18c98f4 Merge branch 'MDL-23872_m21' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2011-08-16 11:51:53 +02:00
Rajesh Taneja 273ac54baa MDL-27219 chat: Beep will not display user fullname if user is not in chat 2011-08-16 16:35:33 +08:00
Andrew Davis (andyjdavis) 549af292b6 MDL-28943 messaging: made messaging admin page use a string instead of the plugin name 2011-08-16 14:33:57 +08:00
Eloy Lafuente (stronk7) 28f9b39287 Merge branch 'MDL-28931_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-08-16 03:06:07 +02:00
Eloy Lafuente (stronk7) e42213ab72 Merge branch 'wip-mdl-27728-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-16 02:14:49 +02:00
Eloy Lafuente (stronk7) 68d998c6cf Merge branch 'MDL-27030_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-16 02:07:37 +02:00
Eloy Lafuente (stronk7) bf22dc969c MDL-27896 filters/editor - fix whitespace 2011-08-16 02:01:20 +02:00
Eloy Lafuente (stronk7) 0031600453 Merge branch 'wip-mdl-27896-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-16 02:00:36 +02:00
Eloy Lafuente (stronk7) 3bcd0781f1 Merge branch 'm21_MDL-25757' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-16 00:39:18 +02:00
Petr Skoda 26e3dce466 Merge branch 'MDL-27845_rating_aggregation_21' into MOODLE_21_STABLE 2011-08-15 20:41:12 +02:00
Tim Hunt 5e54da0a69 MDL-21934 Removing all questions from the quiz should not delet overall feedback.
Overall feedback was being wiped because the quiz max grade was being set to zero when sumgrades was set to 0. The correct logic is to only set maxgrade to 0 if there are questions in the quiz and sumgrades is 0.
2011-08-15 19:10:47 +01:00
Eloy Lafuente (stronk7) a4f85cc579 Merge branch 'm21_MDL-28603' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-15 20:02:33 +02:00
Dan Poltawski bf1b681560 MDL-28605 repsitory/local - Prevent server running out of memory
Removing useless code..
2011-08-15 19:58:27 +02:00
Eloy Lafuente (stronk7) 2ce0d40694 Merge branch 'MDL-28939_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-15 19:34:59 +02:00
Tim Hunt 7f10fbbf5f MDL-28349 error when GIFT-importing essay questions. 2011-08-15 16:18:03 +01:00
Tim Hunt e67a234c98 MDL-28365 Move question lang string to the right file
All the references to this sring were already referring to it in the new
place.

AMOS BEGIN
 MOV [cannotread,mod_quiz],[cannotread,question]
AMOS END
2011-08-15 15:20:15 +01:00
Tim Hunt 80e3f00091 MDL-28939 Bad lang string reference in grade/import/csv. 2011-08-15 15:12:19 +01:00
Tim Hunt d3fd75d21d MDL-28639 question import should set timemodified and modified by.
Thanks to Jean-Michel Vedrine for the fix.
2011-08-15 14:56:45 +01:00
Tim Hunt 8ad92a30f1 MDL-28438 Aiken question import broken since MDL-24594. 2011-08-15 14:47:16 +01:00
Eloy Lafuente (stronk7) bee0152fda MDL-28931 timezone - update to 2011h (2200 rules) 2011-08-14 18:06:10 +02:00
Dan Marsden 2c7cc519d8 MDL-25757 SCORM fix issue with duplicate cmi values being saved 2011-08-13 13:24:22 +12:00
Tim Hunt 643e2728df MDL-28737 advcheckboxes toggle state every submit if checkbox_controller present. 2011-08-12 19:13:20 +01:00
Rajesh Taneja 3a7de25755 MDL-27896 course - Rectified wrong use of itemid for preparing draft file area 2011-08-12 16:49:29 +08:00
Rajesh Taneja 56d57a9a4e MDL-27896 editor - parent context will be respected by editor in case context is not created. 2011-08-12 16:49:05 +08:00
Rajesh Taneja 1449e4faa2 MDL-27896 editor - added sanity check to pick wrong context passed to editor creation 2011-08-12 16:48:47 +08:00
Rajesh Taneja b51aac313f MDL-27896 context - Fixed editor context to observe filter status 2011-08-12 16:48:22 +08:00
Dan Marsden ee124f531b MDL-28603 SCORM fix regression with ADL scorm 1.2 tests 2011-08-12 17:24:48 +12:00
Rajesh Taneja 63ff326835 MDL-27728 Moodleforms: Added validation for element before checking element values 2011-08-12 10:54:33 +08:00
AMOS bot 5ce30862f2 Automatically generated installer lang files 2011-08-12 00:55:30 +00:00
Dan Marsden dbc61bc225 MDL-28649 SCORM start new attempt if set when skipview used. 2011-08-12 12:53:53 +12:00
Dan Marsden f08cc8276c MDL-28721 SCORM respect hidenav setting 2011-08-12 11:07:28 +12:00
Eloy Lafuente (stronk7) 3a5778ec5a weekly release 2.1.1+ 2011-08-12 00:19:27 +02:00
Eloy Lafuente (stronk7) d0aeb0abfa Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-08-12 00:13:16 +02:00
Marina Glancy f364d3f91d MDL-26754: Removed unnecessary include 2011-08-11 13:40:24 +08:00
AMOS bot 07b5fbb9ca Automatically generated installer lang files 2011-08-11 00:55:47 +00:00
Eloy Lafuente (stronk7) 7637e2e5e4 Merge branch 'MDL-27491-m21' of git://github.com/sammarshallou/moodle into MOODLE_21_STABLE 2011-08-10 23:04:13 +02:00
Eloy Lafuente (stronk7) d980c1d746 Merge branch 'm21_MDL-28295' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-10 22:58:04 +02:00
Daren Chandisingh 339c198ade MDL-23872 Forms Library : Updated MoodleQuickForm to honour setConstant(), prevents injection. 2011-08-10 15:22:07 +08:00
Sam Hemelryk 4f4cbbad8f Merge branch 'MDL-20501_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-08-10 14:10:12 +08:00
Dan Marsden 6a211fb52d MDL-28295 SCORM change mangement of pop-up windows, load full SCORM API in existing window - this fixes an issue with IE 7 and httpreq communication 2011-08-10 14:33:39 +12:00
Eloy Lafuente (stronk7) 9271414522 Merge branch 'MDL-27631_21' of git://github.com/mkassaei/moodle into MOODLE_21_STABLE 2011-08-10 03:06:52 +02:00
AMOS bot f715589ee5 Automatically generated installer lang files 2011-08-10 00:55:22 +00:00
Eloy Lafuente (stronk7) 6c506c9a07 Merge branch 'MDL-27550-workshop-feedback_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-08-10 02:49:03 +02:00
Eloy Lafuente (stronk7) a28b6620d6 Merge branch 'w31_MDL-27597_m21_catlike' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-10 02:37:07 +02:00
Dan Poltawski c0d30fbb75 MDL-23967 admin/cron.php - warn about use on CLI
Admins now need to use the explicit CLI script
2011-08-10 02:06:12 +02:00
Dan Poltawski 3b97dedfbd MDL-28059 weblib - don't strip mailto: anchors 2011-08-10 01:59:16 +02:00
Eloy Lafuente (stronk7) d04b3d580e Merge branch 'wip-MDL-28407-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-08-10 01:11:51 +02:00
Eloy Lafuente (stronk7) 0f61d7f97c Merge branch 'w31_MDL-28533_m21_columnperf' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-09 19:33:09 +02:00
sam marshall 37f5c92302 MDL-28643 Fix debugging message when deleting activity with grade completion 2011-08-09 12:47:26 +01:00
Tim Hunt dc4bff71a2 MDL-28653 question output. Add a class to the main div based on question state.
This makes it possible themes do cool things. For example change more of the display depending on whether the answer was correct or not.
2011-08-09 11:32:18 +01:00
Eloy Lafuente (stronk7) fd6a17ecfb Merge branch 'MDL-28565_m21' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2011-08-09 10:15:48 +02:00
Henning Bostelmann fe34282df6 MDL-28655 qtype_calculated question engine upgrade: fix return value 2011-08-09 09:15:33 +01:00
Eloy Lafuente (stronk7) 6b4422a086 Merge branch 'MDL-28604_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-09 09:42:59 +02:00
AMOS bot 9dba637233 Automatically generated installer lang files 2011-08-09 00:55:22 +00:00
Tony Levi 5c5cb085c0 MDL-27030: Fix quiz overview report showing incorrect grades on regraded attempts
Conflicts:

	mod/quiz/report/overview/report.php
2011-08-08 23:46:19 +01:00
Petr Skoda 1c106106fd Merge branch 'MDL-28620_21' of git://github.com/jbrisland/moodle into MOODLE_21_STABLE 2011-08-08 15:35:05 +02:00
Tim Hunt 65be66e4d4 MDL-28652 qtype calculated, bad display of placeholder names on the editing form. 2011-08-08 13:14:20 +01:00
Aparup Banerjee 006776fc71 MDL-28565 General - updated lang files License link to docs.moodle.org/dev/License 2011-08-08 17:14:06 +08:00
Aparup Banerjee 6f80b9b3e9 MDL-28565 General - updated License and Credits links
to docs.moodle.org/dev/License and docs.moodle.org/dev/Credits
2011-08-08 17:13:36 +08:00
Sagie Maoz 56f2ab3335 MDL-26721 automated backups - Fix typo
Causing the 'role assignment' backup inclusion to be tied to the users

Signed-off-by: Dan Poltawski <dan.poltawski@luns.net.uk>
2011-08-08 15:39:12 +08:00
Sam Hemelryk 5553dcba67 Merge branch 'mdl-28517_2.1' of git://github.com/colchambers/moodle into MOODLE_21_STABLE 2011-08-08 14:22:41 +08:00
Sam Hemelryk 806e82b7fc Merge branch 'MDL-28569' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-08-08 14:09:53 +08:00
Sam Hemelryk 172007a066 Merged branch 'MDL-28575_MOODLE_21_STABLE' of git://github.com/kordan/moodle.git with conflict resolution 2011-08-08 13:59:08 +08:00
Sam Hemelryk 9a2e30d8bc Merge branch 'MDL-28587_MOODLE_21_STABLE' of git://github.com/kordan/moodle into MOODLE_21_STABLE 2011-08-08 13:44:52 +08:00
Rossiani Wijaya 272d804840 MDL-27752 Calendar export: fixed typo in url parameter 2011-08-08 12:16:59 +08:00
Sam Hemelryk 40b4296d07 Merge branch 'MDL-28406_block_duplicate_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-08-08 11:18:54 +08:00
Sam Hemelryk f24eca0c6b Merge branch 'MDL-28602_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-08 11:08:08 +08:00
Sam Hemelryk 9d660d5f0e Merge branch 'MDL-28593_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-08 11:04:38 +08:00
Sam Hemelryk cf7daeae7e Merge branch 'MDL-28612_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-08 11:02:11 +08:00
Sam Hemelryk 62bdb79c26 Merge branch 'MDL-28618_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-08 10:57:31 +08:00
Sam Hemelryk 6f7c43c7de Merge branch 'w31_MDL-27586_m21_browser' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:47:33 +08:00
Sam Hemelryk cf8cc1bab1 Merge branch 'w31_MDL-27685_m21_pglike' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:25:47 +08:00
Sam Hemelryk 6b9c6cc54e Merge branch 'w31_MDL-28382_m21_iis' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:20:57 +08:00
Sam Hemelryk 31b4fdabbf Merge branch 'w31_MDL-28450_m21_defgroup' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:09:46 +08:00
Sam Hemelryk a9fbf9fb87 Merge branch 'w31_MDL-28468_m21_cohortassign' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:06:21 +08:00
Sam Hemelryk 2e81c307d0 Merge branch 'w31_MDL-28473_m21_blocksupgrade' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-08-08 10:03:07 +08:00
Petr Skoda c2edea7cbd MDL-28382 work around or detect REQUEST_URI IIS bug 2011-08-07 14:45:53 +02:00
Petr Skoda f6589dd72d MDL-27685 fix pg LIKE escape trouble 2011-08-07 13:22:36 +02:00
Petr Skoda 29a27d3ca4 MDL-28450 prefer member group for default 2011-08-07 13:07:54 +02:00
Petr Skoda e24225351c MDL-28634 fix forgotten references to Moodle 2.0 and old PHP version requirements 2011-08-06 22:57:47 +02:00
Petr Skoda 520f687cde MDL-27586 fix file_browser access control 2011-08-06 16:24:04 +02:00
Petr Skoda e25df8c464 MDL-28473 fix $instanceids troubles in blocks upgrade
Credit goes to Mateusz Wójcik.
2011-08-05 22:09:49 +02:00
Petr Skoda a5410db4e3 MDL-28468 fix cohort assign check 2011-08-05 21:47:41 +02:00
Petr Skoda d84336c27d verify where_clause() only in debug mode 2011-08-05 21:34:09 +02:00
Petr Skoda cbe6399300 MDL-27597 fix invalid results of get_categories when shallow is false 2011-08-05 20:14:59 +02:00
Tim Hunt c5fe3d7490 MDL-28618 question combined feedback: inconsistency in file areas.
The (partially|in)?correct feedback fields acutally store their files in a file area with component 'question'. Some code, however, was written as if they were stored in the qtype_whatever area.
2011-08-05 17:38:22 +01:00
James Brisland c04c6e6b8a MDL-28620 - Removed admin/generator.php include as it causes issues if this script is included from any other script that is running in the command line 2011-08-05 16:11:44 +01:00
M Kassaei 6f90ec4703 MDL-27631 question bank Show question text in the question list when top level category is used 2011-08-05 15:00:29 +01:00
Tim Hunt e3b8930087 MDL-28593 Missing include breaks editing quiz grade item. 2011-08-05 08:53:16 +01:00
Andrew Davis (andyjdavis) 70ade8e8d7 MDL-28406 blocks: added JS to prevent the addition of duplicate blocks 2011-08-05 11:33:42 +08:00
Andrew Davis (andyjdavis) b312305ccc MDL-27845 rating: altered the get_ratings() query to avoid possible future duplicate key problems 2011-08-05 11:19:11 +08:00
Sam Hemelryk 1ad4fb6f12 MDL-28407 Fixed up calendar preferences form handling 2011-08-05 09:34:43 +08:00
AMOS bot 056a53e81f Automatically generated installer lang files 2011-08-05 00:55:17 +00:00
Tim Hunt 788e2b30a5 MDL-28612 Quiz statistics report does not always show the 'Actual response' column when it should 2011-08-04 18:15:34 +01:00
Colin Chambers 005900fd2a MDL-28517 question editing fixed duplicate id in hint header field 2011-08-04 14:54:11 +01:00
Tim Hunt f97a14ba27 MDL-28602 Quiz review reports the wrong duration. 2011-08-04 14:20:02 +01:00
Tim Hunt 3e1d47f2cc MDL-28604 Question bank display forgets sort order 2011-08-04 13:55:38 +01:00
Marina Glancy ad66263bc1 MDL-26754 Display blocks in 'manage blocks' alphabetically sorted 2011-08-04 14:12:08 +08:00
AMOS bot 64d8fed91c Automatically generated installer lang files 2011-08-04 00:55:33 +00:00
Petr Skoda 80eb52c415 weekly release 2.1.1+ 2011-08-03 18:04:44 +02:00
Petr Skoda c0852d9a0c Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-08-03 18:02:52 +02:00
kordan 5dd9ee192e MDL-28587 fix for MOODLE_21_STABLE 2011-08-03 15:25:08 +02:00
sam marshall e1bb4741f1 MDL-27491 Add 'complete on view' support to wiki, survey 2011-08-03 11:22:10 +01:00
Sam Hemelryk 4a45ddbae2 Revert "MDL-28284 don't load filepicker module for every page"
This reverts commit 279a874108.
2011-08-03 18:20:30 +08:00
kordan aa34ca4309 MDL-28575 fix for MOODLE_21_STABLE 2011-08-02 23:41:45 +02:00
David Mudrak 11351de2d3 MDL-27550 workshop: fixed XHTML strictness of H3 and A combo
H3 is block level element while A is in-line element in XHTML.
Credit goes to Sam Hemelryk for spotting this during the peer-review.
2011-08-02 23:32:46 +02:00
David Mudrak 08282ec16c MDL-27550 workshop: rendering links to the submission and the assessment page
This usability improvement helps to provide feedback quickly during the
grading evaluation phase.
2011-08-02 23:32:25 +02:00
David Mudrak 8981b64a41 MDL-27550 workshop: students do not see peer-assessment that are not graded yet 2011-08-02 23:32:25 +02:00
David Mudrak c6b8bbfa9b MDL-27550 workshop: display the feedback for the submission reviewer when the workshop is closed 2011-08-02 23:32:24 +02:00
David Mudrak 275a6f59d7 MDL-27550 workshop: assessments are now displayed via proper rendering subsystem
AMOS BEGIN
 MOV [assessmentbyknown,mod_workshop],[assessmentbyfullname,mod_workshop]
AMOS END
2011-08-02 23:32:24 +02:00
David Mudrak 308e4280e3 MDL-27550 workshop: display the feedback for the submission author when the workshop is closed
The method user_picture::fields() was not available when these SQL
statements were originally written. Now instead of hard-coding the list
of returned fields, the user_picture is asked for the list.

Together with this change, methods workshop::get_submission_by_id()
and workshop::get_submission_by_author() now return the information
about the user who provided the feedback and overwrote the grade.
2011-08-02 23:32:24 +02:00
Petr Skoda 5d08b03e5b Merge branch 'wip-mdl-27658-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-02 15:12:54 +02:00
Petr Skoda e4e3b12325 Merge branch 'MDL-28338_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-02 15:08:48 +02:00
Dan Marsden 97247fdadd MDL-28410 Choice - allow single answer choice to be created 2011-08-02 15:05:01 +02:00
Petr Skoda fb563a9949 Merge branch 'MDL-28507_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-02 14:51:30 +02:00
Dan Marsden f166ab0bec MDL-28535 SCORM remove old IE 6 related warning about zlib 2011-08-02 14:40:41 +02:00
Tim Hunt bae927bebd MDL-28507 fix bad lang string uses, and remove two obsolete strings. 2011-08-02 13:38:39 +01:00
Dan Poltawski 7f62477a87 MDL-28569 blocks/rss_client - RSS feed autodiscovery fails with ampersands
Simpliepie is quoting urls and we need the url to be unescaped
2011-08-02 13:19:01 +01:00
Sam Hemelryk 5a5e7bb3b1 Merge branch 'MDL-28490_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-02 17:56:14 +08:00
Sam Hemelryk 6f2723ae83 Merge branch 'MDL-28508_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-02 17:47:42 +08:00
Sam Hemelryk 365ed23695 Merge branch 'MDL-28051_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-08-02 17:14:33 +08:00
Andrew Robert Nicols c0c2b3dc1a MDL-28515 Add cli install options for fullname and shortname 2011-08-02 17:07:44 +08:00
Sam Hemelryk 26dcfcb542 Merge branch 'MDL-28340_advanced_search_other_users_21' of git://github.com/andyjdavis/moodle into MOODLE_21_STABLE 2011-08-02 16:59:36 +08:00
Sam Hemelryk 34eee090a7 Merge branch 'wip-mdl-28504-m21' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-08-02 16:51:57 +08:00
Sam Hemelryk 9a1f42da6d Merge branch 'wip-MDL-19907-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2011-08-02 16:46:07 +08:00
Sam Hemelryk 5be31c5bf2 MDL-27122 admin Improved block protection help string 2011-08-02 16:32:13 +08:00
Sam Hemelryk 3e2569f70d Merge branch 'wip-MDL-27122-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2011-08-02 16:27:49 +08:00
Sam Hemelryk fa0f970835 Merge branch 'wip-MDL-27754-MOODLE_21_STABLE' of git://github.com/marinaglancy/moodle into MOODLE_21_STABLE 2011-08-02 14:09:30 +08:00
Sam Hemelryk f89a34fb77 Merge branch 's11_MDL-28284_filepicker_module_21' of git://github.com/dongsheng/moodle into MOODLE_21_STABLE 2011-08-02 13:42:12 +08:00
Sam Hemelryk 09e7c66714 Merge branch 'MDL-28510_21_STABLE' of git://github.com/marxjohnson/moodle into MOODLE_21_STABLE 2011-08-02 13:37:17 +08:00
unknown c4eea3e21a Merge branch 'm21_MDL-27876' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-08-02 13:26:25 +08:00
Piers Harding 189bdcf125 MDL-27876 SCORM auto-adjust the stage height 2011-08-02 17:13:37 +12:00
Sam Hemelryk b587abd989 Merge branch 'MDL-28487-typo_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-08-02 12:23:14 +08:00
Sam Hemelryk 9cacdc07d7 Merged branch 'm21_MDL-28548' of git://github.com/danmarsden/moodle.git with comment changes 2011-08-02 11:46:11 +08:00
AMOS bot e054707e9a Automatically generated installer lang files 2011-08-02 00:55:21 +00:00
Marina Glancy 9cd9d86640 MDL-27754 fixed typo in language string 2011-08-02 08:52:10 +08:00
Marina Glancy 919fcc6f12 MDL-27122 Allow admin to change CFG->undeletableblocktypes on 'Manage blocks' settings page. Instances of protected block types will be undeletable only from site context 2011-08-02 08:52:03 +08:00
Marina Glancy f9694db2cb MDL-19907 rewrote validation for required fields in forms, including support for editor field. Added parameter to use strict (no spaces) required fields validation 2011-08-02 08:51:40 +08:00
Rossiani Wijaya 2154de3b3c MDL-20501 survey module: fix text alignment for right to left language. Change undefined string to 2011-08-01 17:40:04 +08:00
Sam Hemelryk 0c566ce339 Moodle 2.1.1 release 2011-08-01 16:57:23 +08:00
Rajesh Taneja 5bda1372a1 MDL-27658 javascript: Typo fixed for toUpperCase 2011-08-01 12:53:51 +08:00
Rajesh Taneja 877f061325 MDL-28504 filter: Typo in css fixed 2011-08-01 10:22:57 +08:00
Dan Marsden 263f258ae2 MDL-28548 allow backup to contain info from multiple plagiarism plugins. 2011-08-01 10:28:59 +12:00
Sam Hemelryk 06b04e5c62 weekly release 2.1+ (emergency) 2011-07-29 12:21:57 +08:00
Andrew Davis (andyjdavis) d0752d358e MDL-28340 messaging: fixed a display issue when you search for and tried to view a conversation between two other users 2011-07-29 11:50:51 +08:00
Sam Hemelryk c7f69afe4a Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-07-29 10:13:43 +08:00
Sam Hemelryk 2fa0daefca MDL-28503 comment-caps Slight improvement to allow frontpage and guest users to view comments by default 2011-07-29 09:44:10 +08:00
AMOS bot 89c13e32a0 Automatically generated installer lang files 2011-07-29 00:55:17 +00:00
Wale Olujide 235a394e04 MDL-28051 Question numbers on the question edit page shoud be the same as during the quiz attempt. 2011-07-28 18:03:55 +01:00
Mark Johnson a10ec7f66a MDL-28510 repository_youtube Use smaller thumbnails in search results 2011-07-28 13:46:04 +01:00
Mark Johnson 0638e55b14 MDL-28509 repository_youtube Enable selection of sort order 2011-07-28 13:15:25 +01:00
Tim Hunt a637417d78 MDL-28508 bad string trunction in Aiken format. 2011-07-28 11:52:27 +01:00
Sam Hemelryk 9da3c2efad MDL-28503 Removed the ability for plugins to override comment capabilities and the defaults associated with it 2011-07-28 13:40:06 +08:00
AMOS bot 16e382f8c5 Automatically generated installer lang files 2011-07-28 00:55:17 +00:00
Tim Hunt e12ec6169a MDL-28490 Better class names in the statistics report to help themes. 2011-07-27 19:26:32 +01:00
Tim Hunt 01528075a2 MDL-28338 fix stupid '\n's in the quiz renderer 2011-07-27 19:25:49 +01:00
David Mudrak 3cddd60db7 MDL-28487 Fixed typo in media filter help string 2011-07-27 14:44:17 +02:00
AMOS bot 216113139f Automatically generated installer lang files 2011-07-27 00:55:30 +00:00
Petr Skoda f664cb7c29 weekly release 2.1+ 2011-07-26 11:10:56 +02:00
Petr Skoda 4ac669f1e8 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-07-26 11:09:49 +02:00
AMOS bot 99b0cba0ec Automatically generated installer lang files 2011-07-26 00:55:24 +00:00
Tim Hunt 526d69522d MDL-28218 allow testclient.php to find the necessary form for services defined in plugins. 2011-07-25 20:05:01 +02:00
Petr Skoda a24681a87a Merge branch 'MDL-28437_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-07-25 19:54:07 +02:00
Petr Skoda e1ad3c38bc Merge branch 'MDL-28369_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-07-25 19:52:26 +02:00
Petr Skoda 7ff71aca59 Merge branch 'MDL-28377_21' of git://github.com/timhunt/moodle into MOODLE_21_STABLE 2011-07-25 19:50:18 +02:00
Petr Skoda e205686397 Merge branch 'wip-MDL-28421-MOODLE_21_STABLE' of https://github.com/Beedell/moodle into MOODLE_21_STABLE 2011-07-25 17:03:18 +02:00
Petr Skoda ba295bba29 Merge branch 'wip-MDL-28191-m21' into MOODLE_21_STABLE 2011-07-25 16:46:42 +02:00
Petr Skoda 25f9dae427 Merge branch 'MDL-28453_MOODLE_21_STABLE' into MOODLE_21_STABLE 2011-07-25 16:25:40 +02:00
Tim Hunt d8f77afbb8 MDL-28369 Question hints not being restored. 2011-07-25 10:06:27 +01:00
John Beedell aa4292ad22 MDL-28421 admin config improve class
admin_setting_configmultiselect_modules to include a default
2011-07-25 09:56:55 +01:00
Aparup Banerjee 2d4c4b65d4 MDL-28453 backup - made temporary restoration courses hidden by default. 2011-07-25 16:44:50 +08:00
Tim Hunt ce9423eaa7 MDL-28377 Call to mod_quiz_renderer is screwed up. 2011-07-25 09:16:11 +01:00
Tim Hunt 26a4f319a8 MDL-28437 Question bank pages should all use General type: admin. 2011-07-25 08:52:22 +01:00
Sam Hemelryk 93c5c05423 Merge branch 'MDL-28107_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-07-25 15:14:27 +08:00
Andrew Davis (andyjdavis) 2f74865eef MDL-27845 rating: split the get_ratings() query into two to reduce query complexity 2011-07-25 14:21:17 +08:00
Andrew Davis (andyjdavis) fc391624f0 MDL-27845 rating: updated rating unit tests 2011-07-25 14:18:38 +08:00
Eloy Lafuente (stronk7) a5224e1f83 rating/lib.php unit tests 1st cut 2011-07-25 14:18:29 +08:00
Sam Hemelryk 30bfe73981 Merge branch 'MDL-28228' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-07-25 13:04:19 +08:00
Sam Hemelryk b835eebad9 Merge branch 'MDL-28232' of git://git.luns.net.uk/moodle into MOODLE_21_STABLE 2011-07-25 12:57:01 +08:00
Michael Aherne 3152ccf0a4 MDL-27538 Added deprecation details to functions now in $DB 2011-07-25 11:31:39 +08:00
Sam Hemelryk 38a6a195a4 Merge branch 'w29_MDL-22584_m21_monsterpaths' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 11:18:37 +08:00
Sam Hemelryk 18c2fcf8f1 Merge branch 'w29_MDL-27464_m21_continue' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 11:03:52 +08:00
Sam Hemelryk dbb6d73c8c Merge branch 'w29_MDL-27653_m21_usercasting' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:59:21 +08:00
Sam Hemelryk ae5375722e Merge branch 'w29_MDL-27796_m21_httphost' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:55:04 +08:00
Sam Hemelryk 274d9cf950 Merge branch 'w29_MDL-27994_m21_creatorcaps' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:45:42 +08:00
Sam Hemelryk 7b205e100b Merge branch 'w29_MDL-28145_m21_renderer' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:39:47 +08:00
Sam Hemelryk 39a84a780b Merge branch 'w29_MDL-28182_m21_userdel' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:36:55 +08:00
Sam Hemelryk c782b4bb58 Merge branch 'w29_MDL-28337_m21_urlparams' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:30:00 +08:00
Sam Hemelryk b1591c6568 Merge branch 'w29_MDL-28384_m21_nullurl' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 10:14:47 +08:00
Sam Hemelryk 6e48852633 Merge branch 'w29_MDL-28432_m21_cohortconfig' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 09:52:49 +08:00
Sam Hemelryk 88b014092d Merge branch 'w29_MDL-28440_m21_jssemicol' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-25 09:45:42 +08:00
Mary Evans 7d8b8d1abe fix for MDL-27768 removed reference to gradient-sb image 2011-07-25 09:40:12 +08:00
Petr Skoda 13d0cc41eb MDL-27653 fix incorrect int | object detection 2011-07-24 15:05:16 +02:00
Petr Skoda f76942869c MDL-27994 course creator role is for creating courses only!
The course creator role is designed to be used to create courses, nothing else - that is create new course, create new course from backup + view hidden courses and categories.
2011-07-24 14:19:21 +02:00
Petr Skoda 50ecbad305 MDL-28384 convert empty log urls to ''
The problem is that the log table does not allow nulls, credit goes to Troy Williams.
2011-07-24 14:08:27 +02:00
Petr Skoda 1e075c08a0 MDL-27464 continuation link sometimes links off-site
This code was manually merged from MOODLE_19_STABLE, credit goes to Matt Meisberger.
2011-07-23 13:34:43 +02:00
Petr Skoda 4cbc500d1f MDL-28440 add missing semicolon causing JS issues
Credit goes to Mark Nielsen.
2011-07-23 11:49:39 +02:00
Petr Skoda 4e6464937c MDL-22584 deal with oversized dir and file names during upgrade 2011-07-23 11:40:21 +02:00
Petr Skoda cb52b340d3 MDL-28145 fix renderer typo in comments 2011-07-22 23:43:30 +02:00
Petr Skoda f1073b930b MDL-27796 ignore missing HTTP_HOST header 2011-07-22 23:18:13 +02:00
Petr Skoda 4133a3cd5b MDL-28182 always use full user object when deleting users 2011-07-22 22:48:16 +02:00
Petr Skoda bdbb48efe9 MDL-28337 add parameters explanation in URL resource configuration 2011-07-22 22:18:29 +02:00
Petr Skoda 965c9b97ab MDL-28432 use enrol/cohort and enrol/manual capabilities correctly in cohort enrol UI and fix input validation in ajax 2011-07-22 10:14:29 +02:00
Sam Hemelryk 22cf3b24a5 MDL-28191 Continue button after selecting a theme now redirects back to the theme selector 2011-07-22 14:58:06 +08:00
Rossiani Wijaya d19983fac1 MDL-28107 course enrolment icon: Fixed logged in user enrolment icons 2011-07-22 13:22:26 +08:00
AMOS bot 283ccdc71f Automatically generated installer lang files 2011-07-22 00:55:19 +00:00
Dongsheng Cai 279a874108 MDL-28284 don't load filepicker module for every page 2011-07-21 17:27:51 +08:00
AMOS bot e0d9ebc1f2 Automatically generated installer lang files 2011-07-20 00:55:26 +00:00
Petr Skoda aede1fe6a7 weekly release 2.1+ 2011-07-19 15:23:42 +02:00
Petr Skoda f21656d5d0 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-07-19 15:16:46 +02:00
Petr Skoda feccdaa0ff MDL-27696 initialise arrays
Credit goes to David Mudrak.
2011-07-19 15:04:38 +02:00
Petr Skoda fc7224bac7 MDL-27696 do not use placeholders in GROUP BY because pg does no like that 2011-07-19 10:54:04 +02:00
Petr Skoda 27b4936fcf MDL-27889 use new recaptcha google urls in lang packs 2011-07-19 10:26:30 +02:00
AMOS bot cdf9c89416 Automatically generated installer lang files 2011-07-19 00:55:36 +00:00
Dan Poltawski bf953fe670 MDL-28228 pagelib - incorrect DEBUG constant used 2011-07-19 00:02:56 +01:00
Dan Poltawski 677ee6dee7 MDL-28232 - Course log text export is missing a new line 2011-07-18 23:46:08 +01:00
Petr Skoda 8fa38242d0 Merge branch 'wip-MDL-28040-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:34:09 +02:00
Petr Skoda aa3097da63 Merge branch 'wip-MDL-28184-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:28:54 +02:00
Petr Skoda 719368f8cf Merge branch 'wip-MDL-28205-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:25:31 +02:00
Petr Skoda dd70519ab4 Merge branch 'wip-MDL-28137-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:22:57 +02:00
Petr Skoda 38a1040957 Merge branch 'wip-MDL-27771-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:20:01 +02:00
Petr Skoda ea3317e782 Merge branch 'wip-MDL-27696-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:17:55 +02:00
Petr Skoda f871cc1b8a Merge branch 'wip-MDL-27305-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 15:14:42 +02:00
Petr Skoda 29d4f2eeb3 Merge branch 'wip-MDL-25870-m21' of git://github.com/samhemelryk/moodle into MOODLE_21_STABLE 2011-07-18 14:57:59 +02:00
Sam Hemelryk a699cbcdbc Merge branch 'wip-MDL-27756-MOODLE_21_STABLE' of github.com:marinaglancy/moodle into MOODLE_21_STABLE 2011-07-18 22:18:52 +10:00
Sam Hemelryk 8910a2d15a Merge branch 'MDL-27555_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-07-18 21:51:11 +10:00
Sam Hemelryk 0d9cdacf89 Merge branch 'wip-mdl-27837-MOODLE_21_STABLE' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-07-18 21:08:41 +10:00
Sam Hemelryk 982ea16909 Merge branch 'w28_MDL-23344_m21_loginfocus2' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 20:26:19 +10:00
Sam Hemelryk 39b10270a1 Merge branch 'w28_MDL-27804_m21_csvauth' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 20:19:20 +10:00
Sam Hemelryk 4e579f6067 Merge branch 'w28_MDL-28253_m21_managerupgrade' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 20:10:01 +10:00
Sam Hemelryk f6c2b4fc13 Merge branch 'w28_MDL-28313_m21_enroldb' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 20:04:01 +10:00
Sam Hemelryk 056c04c9b4 Merge branch 'w28_MDL-28348_m21_meta' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 19:39:28 +10:00
Sam Hemelryk 03368c0b2e Merge branch 'w28_MDL-28350_m21_wsra' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-18 19:28:27 +10:00
Petr Skoda 4bc43436b9 Merge branch 'wip-MDL-25125-MOODLE_21_STABLE' of github.com:marinaglancy/moodle into MOODLE_21_STABLE 2011-07-18 09:34:18 +02:00
Sam Hemelryk 5dd5e31616 Merge branch 'w28_MDL-28363_m21_dimmed' of git://github.com/skodak/moodle into MOODLE_21_STABLE 2011-07-19 00:45:35 +10:00
Sam Hemelryk bd202c1531 Merge branch 'MDL-28298-workshop-constant_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-07-19 00:39:36 +10:00
Sam Hemelryk 9190787dff Merge branch 'MDL-28325-enrol-help_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-07-19 00:34:58 +10:00
Sam Hemelryk 3753033ef6 MDL-26482 minor whitespace fix 2011-07-19 00:28:15 +10:00
Sam Hemelryk 0a02548c23 Merge branch 'm21_MDL-26482' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-07-19 00:27:04 +10:00
Petr Skoda 8399f5a230 MDL-28348 fix spelling and some whitespace issues 2011-07-17 20:40:48 +02:00
Petr Skoda ffbde27300 MDL-28348 fix fatal error caused by unenrolling of incorrect enrol instance 2011-07-17 20:40:47 +02:00
Petr Skoda dd6142b7d2 MDL-28348 prevent circular references in meta handler for enrolments 2011-07-17 20:40:47 +02:00
Petr Skoda d5cb69e9ba MDL-28348 fix meta sync when unassigning roles 2011-07-17 20:40:47 +02:00
Petr Skoda 285e578ed7 MDL-28363 make dimmed selectors more specific to prevent overriding from other themes 2011-07-16 21:04:53 +02:00
AMOS bot e7250e5bd0 Automatically generated installer lang files 2011-07-16 00:55:20 +00:00
Petr Skoda f2b1a6c2ad MDL-28350 prevent bogus role assignment via externallib 2011-07-15 12:24:10 +02:00
Petr Skoda 52bdbe7617 MDL-27804 allow changing of only auth in csv user uploads 2011-07-15 11:08:19 +02:00
David Mudrak bf225ac4c8 MDL-28325 Enrolment: added help to the duration, start date and end date setting
The patch also fixes one typo in enrol_manual detected while working on
this.
2011-07-15 08:53:43 +02:00
AMOS bot 697c3ab6b6 Automatically generated installer lang files 2011-07-15 00:55:18 +00:00
Petr Skoda 0954c43f81 MDL-28313 fix incorrect enrol database settings upgrade 2011-07-14 22:34:03 +02:00
Petr Skoda 536ac72d51 MDL-23344 new option to autofocus username or password on the login form
Nearly everybody else does this login page autofocus. Once we switch to HMTL 5 we should use the new autofocus input option. I believe the admin setting should be enabled by default but it would not be possible to get it through the reviews.
2011-07-14 15:59:21 +02:00
Petr Skoda 1024510a4a MDL-28253 use unique name for new manager role 2011-07-14 13:37:31 +02:00
Marina Glancy 659d31bf25 MDL-27756 Improving move_course() performance 2011-07-14 11:02:43 +08:00
Rajesh Taneja 3012b215f6 MDL-27837 enrol - Fixed checkboxes for multiple self enrolment 2011-07-14 10:04:33 +08:00
Marina Glancy 7a97eccc48 MDL-25125 fix YUI bug with overriding styles 2011-07-14 10:00:52 +08:00
AMOS bot b8dd2bb73c Automatically generated installer lang files 2011-07-14 00:55:18 +00:00
Dan Marsden 2987d698b4 MDL-26482 SCORM add option to disable TOC completely - thanks to Clark Burns for some help! 2011-07-14 11:07:41 +12:00
Dan Marsden 082325c271 MDL-28300 SCORM Fix check for SCORM 2004 thanks to Silvia Bastos for report/patch 2011-07-14 11:02:05 +12:00
Sam Hemelryk 93d82f4601 weekly release 2.1+ 2011-07-13 20:23:04 +08:00
Sam Hemelryk 3a9e75e464 Merge branch 'install_21_STABLE' of git://github.com/amosbot/moodle into MOODLE_21_STABLE 2011-07-13 20:08:56 +08:00
Sam Hemelryk accc55da27 Revert "MDL-23344 fix login form focus"
This reverts commit 2d28584695.
2011-07-13 20:03:56 +08:00
David Mudrak d1c368e050 MDL-28298 workshop: do not use a constant without explicit inclusion of the library
Instead of including whole formslib just to get the constant defined, I
decided to hard-code the value and put the reference to the comment so
that eventual grep would spot it. Of course that is is not nice at all
but it's lesser of two evils imho.
2011-07-13 10:28:04 +02:00
Rossiani Wijaya 35ef97232c MDL-27555 assignment module: remove 'submitted' option from optional setting for offline assignment type. 2011-07-13 15:32:21 +08:00
Sam Hemelryk f3e47fc8d2 MDL-28184 navigation: Tidied up handling of coursenode when adding course essentials 2011-07-13 14:59:31 +08:00
Sam Hemelryk 4479a18d52 MDL-27771 filter-text: Fixed typo contninue 2011-07-13 14:53:12 +08:00
Chris Follin 7869e36193 MDL-27305 forum: Added missing item to forum_get_view_actions 2011-07-13 14:23:08 +08:00
Sam Hemelryk aa132e3f9b MDL-25870 enrol-manual: Fixed pagination of AJAX search results for users when changing search 2011-07-13 14:02:53 +08:00
Sam Hemelryk 34ee79470f MDL-28137 unit tests: Fixed up problem with block manager tests when running unit tests after turning editing on 2011-07-13 13:45:15 +08:00
Sam Hemelryk 9b1ffd0159 MDL-28205 RSS: Fixed up notice and set better pagelayout type on manage feeds page 2011-07-13 10:32:15 +08:00
Sam Hemelryk 9741999e77 MDL-27696 datalib Fixed up misused params in get_logs_usercourse 2011-07-13 10:29:56 +08:00
Sam Hemelryk 3274dc1461 MDL-28040 navigation: Fixed up error with navigation when dealing with categories that have a lower sort order than the parent. 2011-07-13 10:00:16 +08:00
Eloy Lafuente (stronk7) fe97a3dc7a Merge branch 'MDL-28221-resource-conversion_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-07-12 19:05:04 +02:00
Eloy Lafuente (stronk7) 6f09ed8643 Merge branch 'm21_MDL-28017' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-07-12 16:30:33 +02:00
Eloy Lafuente (stronk7) e0dfb65718 MDL-28210 messaging: all includes but config.php must use $CFG-based abosolute paths 2011-07-12 12:21:16 +02:00
Andrew Davis (andyjdavis) 9cf58aba08 MDL-28210 messaging: Fixed requires problems in /message/discussion.php 2011-07-12 12:21:07 +02:00
Petr Skoda c43a4beda8 MDL-28273 waring that removing user from cohorts may unenrol from courses 2011-07-12 16:27:18 +08:00
AMOS bot 64149328dd Automatically generated installer lang files 2011-07-12 00:55:23 +00:00
Dan Marsden 15bec9a365 MDL-28017 SCORM add unset_config for old config var 2011-07-12 09:48:28 +12:00
David Mudrak 665120d4e6 MDL-28221 Legacy resource URL pointing to the course itself are migrated as File module
This patch replays the logic of resource_20_migrate() function. If a
file is referred via URL to the course files of the course being
backed up, then such a resource is converted to the File module
(mod/resource) rather than URL module.
2011-07-11 22:37:34 +02:00
Petr Skoda 74275cf6e5 MDL-22404 add cohort ID to user filters
We are using only ID because there might be hundreds of cohorts in the system at different contexts. There is no special access control because filtering is supposed to be used by admins only.
2011-07-11 20:24:11 +02:00
Eloy Lafuente (stronk7) 1187c38d6d Merge branch 'm21_MDL-26942' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-07-11 19:48:10 +02:00
Eloy Lafuente (stronk7) a19c77bd24 Merge branch 'MDL-27755_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-07-11 19:43:53 +02:00
Eloy Lafuente (stronk7) b8cde34b06 Merge branch 'MDL-27741_m21' of git://github.com/rwijaya/moodle into MOODLE_21_STABLE 2011-07-11 19:36:01 +02:00
Petr Skoda 2d28584695 MDL-23344 fix login form focus 2011-07-11 17:23:28 +02:00
Dan Poltawski c261b351cf MDL-23580 course overview - remove debugging junk 2011-07-11 16:47:28 +02:00
Tim Hunt 934c878eaa MDL-26165 quiz submit are-you-sure is potentially confusing. 2011-07-11 16:33:10 +02:00
Tim Hunt b11d374122 MDL-27483 make quiz repagination more robust. 2011-07-11 16:26:36 +02:00
Rossiani Wijaya 337284688d MDL-27931 admin bulk user upload: convert city as required field. Credit goes to Charles Fulton for supplying the patch. 2011-07-11 15:57:45 +02:00
Ruslan Kabalin 661dd2cf61 MDL-28186 messaging: Fix "Enable messagning setting" infuence on the menus
"Enable messaging system" (Site administration > Advanced features) is
supposed to control messaging between site users only, thus it should not
remove user messging preferences menu item. However, it may remove instant
messging preferences from providers list for the user.

Signed-off-by: Ruslan Kabalin <ruslan.kabalin@luns.net.uk>
2011-07-11 15:24:15 +02:00
David Mudrak b0e79df977 MDL-28221 resource: improved file not found handling
When the referenced file is not found, do not rely on the record in
resource_old as the resource can be actually restored from a 1.9 backup.
2011-07-11 12:12:38 +02:00
David Mudrak 6ca0ba0104 MDL-28221 resource: fixed a typo in variable names 2011-07-11 12:04:18 +02:00
Rossiani Wijaya 153694ed0a MDL-27741 forum subscribe link: Removed 'no' string in social course format to display a subscribe link if user is not enrolled 2011-07-11 17:04:05 +08:00
Sam Hemelryk 1541d1a36b Merge branch 'wip-mdl-27954-MOODLE_21_STABLE' of git://github.com/rajeshtaneja/moodle into MOODLE_21_STABLE 2011-07-11 16:02:18 +08:00
Tim Hunt c159d8e872 MDL-28195 confirm_action should allow the button labels to be customised 2011-07-11 15:03:39 +08:00
Sam Hemelryk a8361fc214 Merge branch 'wip-MDL-27429-m21' of git://github.com/Beedell/moodle into MOODLE_21_STABLE 2011-07-11 13:56:39 +08:00
Jamie Pratt 96c7aa3fe5 MDL-28268 Missing ORDER BY when using extra answer table.
From OU bug #921 "Order of answer fields in Variable numeric keeps changing" Cannot
reproduce this bug on my system but hopefully this will fix the problem. I added
an ORDER BY clause to the sql for fetching answers with extra answer fields.
2011-07-11 13:26:39 +08:00
Tim Hunt a3b71db63b MDL-28192 local_qeupgradehelper fix typo. 2011-07-11 13:18:37 +08:00
Dan Marsden 66c36644d3 MDL-28017 SCORM - remove admin setting incorrectly added as it was never used. 2011-07-11 15:44:50 +12:00
Sam Hemelryk 903c12c74b Merge branch 'm21_MDL-27947' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-07-11 11:31:48 +08:00
Sam Hemelryk 73d78d8de4 Merge branch 'MDL-27890_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-07-11 11:25:56 +08:00
Sam Hemelryk bbdd6f2dc1 Merge branch 'glossary_multilang_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-07-11 11:15:17 +08:00
Sam Hemelryk f738eb06e7 Merge branch 'mod_url_decode_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-07-11 11:04:18 +08:00
Sam Hemelryk 6f30a86bc7 Merge branch 'backup_groups_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-07-11 10:57:15 +08:00
Rajesh Taneja 4db5d94af5 MDL-27954 mod_database - fixed search navigation link 2011-07-11 10:28:47 +08:00
Eloy Lafuente (stronk7) 5299507674 MDL-28048 glossary - fix double ampersand & missing string 2011-07-11 01:40:27 +02:00
Eloy Lafuente (stronk7) d5a8ec5ccd MDL-28048 glossary - add multilang support to categories 2011-07-11 01:03:58 +02:00
Eloy Lafuente (stronk7) 4daa20bb5b MDL-28156 restore - fix some notices restoring empty courses 2011-07-10 13:12:49 +02:00
Eloy Lafuente (stronk7) 3a32daedb5 MDL-28156 restore - support restoring files without grade items 2011-07-10 00:53:29 +02:00
Eloy Lafuente (stronk7) 130fcbd649 MDL-27438 backup - on course backups add course gropus and groupings 2011-07-09 19:28:50 +02:00
Eloy Lafuente (stronk7) 96ab22afc8 MDL-27018 restore - decode links missing url->externalurl support 2011-07-09 13:35:51 +02:00
AMOS bot b88f5de7ec Automatically generated installer lang files 2011-07-09 00:55:20 +00:00
Dan Marsden 0ae4c47c76 MDL-27947 - fix TOC display on skipview - use correct org in TOC title 2011-07-09 11:48:22 +12:00
Dan Marsden 60201a66e0 SCORM MDL-26942 - merge scorm_get_toc into a single global function 2011-07-09 11:12:18 +12:00
John Beedell 5a062fcd8f MDL-27429 Adding tabindex and on keypress to the blocks show/hide icon. 2011-07-08 12:31:49 +01:00
AMOS bot 4481d845e1 Automatically generated installer lang files 2011-07-08 12:34:51 +02:00
Rossiani Wijaya fefd37d864 MDL-27755 course search: Add course id and shortname to search fields 2011-07-08 17:24:26 +08:00
Eloy Lafuente (stronk7) a938306457 weekly release 2.1+ 2011-07-08 11:22:28 +02:00
Eloy Lafuente (stronk7) 8718d91313 fix permissions 2011-07-08 11:12:55 +02:00
Eloy Lafuente (stronk7) 24813d35f7 Merge branch 'MDL-28015-workshop-sql_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-07-08 01:18:44 +02:00
Eloy Lafuente (stronk7) 8437ce030d Merge branch 'MDL-28168-custommenu_21_STABLE' of git://github.com/mudrd8mz/moodle into MOODLE_21_STABLE 2011-07-08 00:58:08 +02:00
Tim Hunt 583e6a6992 MDL-27890 tinymce - enable 30 as min height within moodle 2011-07-07 19:59:35 +02:00
Eloy Lafuente (stronk7) f738546c8f MDL-NOBUG tinymce - updated instructions to cover local modifications and other minor changes 2011-07-07 18:21:15 +02:00
Eloy Lafuente (stronk7) 0e24cfb800 MDL-27890 tinymce - allow it to be smaller 2011-07-07 17:36:59 +02:00
David Mudrak cabce0e259 MDL-28015 workshop - fixed unique list of columns in ORDER BY clause
MSSQL requires that the columns in the ORDER BY clause list must be
unique. The patch populates the list of fields by combining an array of
explicit sort definition with an array of implicit (default) sort
definition.
2011-07-07 15:16:29 +02:00
Sun Zhigang fbe00fbec7 MDL-27833 Backup - Fix can't search courses with non-latin characters during importing
PARAM_ALPHANUMEXT filter out all non-latin characters, including
Chinese, Japanese and etc. Use PARAM_NOTAGS instead.
2011-07-07 10:39:24 +02:00
Aparup Banerjee 2fa78e85e9 MDL-28169 Installation Added 2.1 upgrade (idiot proof) lines to upgrade scripts. 2011-07-07 10:24:38 +02:00
Petr Skoda dd402d1fa3 MDL-28163 custom site frontpage support 2011-07-07 10:15:34 +02:00
Eloy Lafuente (stronk7) 14cf05a2cf Merge branch 'm21_MDL-28110' of git://github.com/danmarsden/moodle into MOODLE_21_STABLE 2011-07-07 03:01:30 +02:00
Eloy Lafuente (stronk7) acfa08a69f MDL-27989 whitespace fix 2011-07-07 02:22:54 +02:00
Eloy Lafuente (stronk7) e986a24a9d Merge branch 'MDL-27989_MOODLE_21_STABLE' of git://github.com/kordan/moodle into MOODLE_21_STABLE 2011-07-07 02:22:22 +02:00
Dan Poltawski 7a0374f6e7 MDL-26285 block_rss_client - do not disable with enablerssfeeds
This setting was used in 1.9 and below to control feed generation only, not
for RSS consumption.
2011-07-07 02:11:44 +02:00
Petr Skoda 78087ddfa5 MDL-27375 add missing lowercasing of external column names
Credit goes to Gail Preuninger.
2011-07-07 01:40:35 +02:00
Petr Skoda bde4f81335 MDL-28117 include repo lib when hacking file_picker renderer 2011-07-07 01:34:12 +02:00
Dan Poltawski 334b4f6301 MDL-27329 course report - correct use of wrong fullname
We are refering to users in this column of the course report not
course full name.
2011-07-07 00:25:11 +02:00
Dan Poltawski e4318be030 MDL-28100 - page resource was not using context for text filtering 2011-07-07 00:12:46 +02:00
Dan Poltawski 4c26ea1713 MDL-27279 lang/en/xmldb - Fix Typo in confirmcheckforeignkeys 2011-07-07 00:01:45 +02:00
Tim Hunt 40ff08d84f MDL-28222 quiz reports missing context in call to quiz_report_feedback_for_grade. 2011-07-06 20:29:20 +02:00
Tim Hunt 9a1da08340 MDL-27040 get_users_by_capability generates u.id IN () when no uesrs have accessallgroups 2011-07-06 19:26:30 +02:00
Tim Hunt eeb78f323a MDL-28166 fix some more instances of my favourite becuase typo. 2011-07-06 19:21:02 +02:00
Tim Hunt 54bf1cf7dc MDL-28166 send quiz event notifications asynchronously.
This avoids the problem that you cannot send messages in transactions.

It also means that the quiz submission will not be prevented, and the
message will still be sent eventually, if any part of the messaging
system is giving intermittent errors when the student wants to submit
their quiz.
2011-07-06 19:20:50 +02:00
Sun Zhigang 376d87ca03 MDL-27934 Upload Assignment - Remove useless code 2011-07-06 13:26:21 +08:00
Dan Poltawski fbb580c38a MDL-27855 navigation - only display participants link with permissions 2011-07-06 13:20:46 +08:00
Dan Poltawski 35a39e35e2 MDL-27168 completionstatus block - Use localized strings 2011-07-06 12:04:16 +08:00
Dan Poltawski 84a05572c9 MDL-26626 course competion block - fix hardcoded string 2011-07-06 11:21:35 +08:00
Dan Poltawski c01d7b4d79 MDL-26611 Roles Language - remove reference to 'legacy role type' 2011-07-06 11:10:08 +08:00
Sam Hemelryk baa97ed623 Merge branch 'MDL-28135_MOODLE_21_STABLE' of git://github.com/nebgor/moodle into MOODLE_21_STABLE 2011-07-06 11:02:55 +08:00
Petr Skoda 05f4555422 MDL-28147 do not double cache theme css/js 2011-07-06 03:15:03 +02:00
Tim Hunt a5dd15e921 MDL-28160 question preview window uses wrong pagelayout in activity contexts 2011-07-06 03:08:41 +02:00
Petr Skoda 05299908b4 MDL-28161 precreate htmlpurifier dir when resetting caches
Includes sloppy whitespace fix.
2011-07-06 02:55:00 +02:00
Petr Skoda 9a49e6004b MDL-28167 fix missing new
And sloppy whitespace.
2011-07-06 02:09:54 +02:00
Sam Hemelryk a3fd215cb8 MDL-28172 forum: Fixed up overzealous check for portfolio enabled. 2011-07-06 02:02:02 +02:00
Tim Hunt 6ff0bacee1 MDL-28179 make failed event hander error message much more useful. 2011-07-06 01:49:02 +02:00
Andrew Robert Nicols 757ca142ca MDL-28193 Add $external arg to get_driver_instance
Signed-off-by: Andrew Robert Nicols <andrew.nicols@luns.net.uk>
2011-07-06 01:40:35 +02:00
Eloy Lafuente (stronk7) 98e86d8b27 MDL-28196 quiz calls get_in_or_equal (fixing missing $DB) 2011-07-05 22:00:51 +02:00
Tim Hunt 69b88de0df MDL-28196 quiz calls get_in_or_equal (not DB->get_in_or_equal) in two places
Also, another minor error in one method call.
2011-07-05 21:56:37 +02:00
Tim Hunt 17b8d59a0a MDL-27821 backup_exception should not throw away debug info. 2011-07-05 19:43:54 +02:00
Eloy Lafuente (stronk7) d396a03bac Merge branch 'MDL-28185_m21' of git://github.com/stronk7/moodle into MOODLE_21_STABLE 2011-07-05 17:59:57 +02:00
Tim Hunt f404343487 MDL-26618 Moving sticky blocks on other pages does not work in Oracle.
This was due to some missing $DB->sql_empty() in a query affecting the
block_positions table.
2011-07-05 17:47:37 +02:00
Eloy Lafuente (stronk7) f8632149ad MDL-28185 upgrade - fix oracle problem upgrading blocks 2011-07-05 15:38:09 +02:00
David Mudrak a056d4fa9e MDL-28168 Multi-language support for custom_menu reimplemented
This is a reimplementation of the multi-language support for the
custom_menu class. The menu items now accept the forth optional
parameter with the explicit list of languages the item is valid for. If
no languages are listed, the item is valid for any language. The caller
of the custom_menu constructor must provide the user's current language
or null if the multi-language should not be supported (all items are
valid for any language then, regardless the definition).

See the attached unit tests for the examples of usage.
2011-07-05 12:22:26 +02:00
Kordan 3c9cd14006 addition to previous fix for MDL-27989 in MOODLE_21_STABLE 2011-07-05 11:30:50 +02:00
Tim Hunt d5670c612b MDL-25357 Allow maximum number of sections to be set by the admin. Also allow 0 sections at an choice.
Also fix one bad <br/> in another lang string.
2011-07-05 16:59:57 +08:00
David Mudrak 88d9d9fba5 MDL-28168 Improved custom_menu constructor
This improves custom_menu constructor by dropping support for useless
$text parameter and replacing it with the menu definition. This makes
custom_menu instance independent on the place where the menu is defined
($CFG->custommenuitems) and can be unit-tested. Also, multiple instances
of custom_menu can be instantiated now which can be interesting in the
future.
2011-07-05 10:26:01 +02:00
Kordan cc3e8c536c MDL-27989 fix for MOODLE_21_STABLE 2011-07-05 10:21:13 +02:00
Aparup Banerjee a43b8cf330 MDL-28135 general Updated broken and typo docs links 2011-07-05 15:17:23 +08:00
Aparup Banerjee 028fba6878 MDL-28135 general Updated the Copyright notice to point to docs.moodle.org/dev/Releases instead of en/Release 2011-07-05 15:17:15 +08:00
Aparup Banerjee 8f32d623c5 MDL-28135 general Updated doc links related to Release notes to docs.moodle.org/dev/Releases now 2011-07-05 15:17:06 +08:00
Aparup Banerjee 63e8936bb1 MDL-28135 general Updating all hardcoded "docs.moodle.org/en/Development:" type doc links to "docs.moodle.org/dev/" 2011-07-05 15:16:55 +08:00
David Mudrak 5b806d1524 MDL-28168 Revert "MDL-27073 Support multi-language content in custom menu"
This reverts commit 87e0230d0a.
2011-07-05 09:08:49 +02:00
Iñaki Arenaza 7679e8d256 MDL-24666 sync_users.php can throw db exception on sites upgraded from 1.x
From 2.0 on we lowercase all the settings related to LDAP attributes
to cope with differences in LDAP servers when returning attribute
names as array indices (some lowercase them, some leave them as
specified in the query, some normalize them, etc.).

But we only lowercase them when saving the settings page. So on sites
that have been migrated from 1.x, it may happen that we still have
mixed-case attribute names. And this is fatal for the user_attribute
setting, as we might not detect it in the returned array from LDAP and
it will be empty (and the db layer throws and exception).

So we just make sure the attribute name is lowercased (and trimmed,
in case it's got some white space around it).

Signed-off-by: Iñaki Arenaza <iarenaza@mondragon.edu>
2011-07-04 21:46:44 +02:00
Dan Marsden e1a1827b59 SCORM MDL-28110 fix string name 2011-07-03 12:54:41 +12:00
Dan Marsden 9f098ef0ec SCORM MDL-28110 set default for forcejavascript to yes - add string explaining what it does. 2011-07-03 12:54:31 +12:00
3732 changed files with 155394 additions and 200726 deletions
+1 -1
View File
@@ -19,7 +19,7 @@ $returnurl = new moodle_url('/admin/settings.php', array('section'=>'manageauths
$PAGE->set_url($returnurl);
$action = optional_param('action', '', PARAM_ACTION);
$auth = optional_param('auth', '', PARAM_PLUGIN);
$auth = optional_param('auth', '', PARAM_SAFEDIR);
get_enabled_auth_plugins(true); // fix the list of enabled auths
if (empty($CFG->auth)) {
+1 -1
View File
@@ -6,7 +6,7 @@
require_once '../config.php';
require_once $CFG->libdir.'/adminlib.php';
$auth = required_param('auth', PARAM_PLUGIN);
$auth = required_param('auth', PARAM_SAFEDIR);
$PAGE->set_pagetype('admin-auth-' . $auth);
admin_externalpage_setup('authsetting'.$auth);
+28 -3
View File
@@ -98,9 +98,34 @@
exit;
} else {
uninstall_plugin('block', $block->name);
// Inform block it's about to be deleted
if (file_exists("$CFG->dirroot/blocks/$block->name/block_$block->name.php")) {
$blockobject = block_instance($block->name);
if ($blockobject) {
$blockobject->before_delete(); //only if we can create instance, block might have been already removed
}
}
// First delete instances and then block
$instances = $DB->get_records('block_instances', array('blockname' => $block->name));
if(!empty($instances)) {
foreach($instances as $instance) {
blocks_delete_instance($instance);
}
}
// Delete block
$DB->delete_records('block', array('id'=>$block->id));
drop_plugin_tables($block->name, "$CFG->dirroot/blocks/$block->name/db/install.xml", false); // old obsoleted table names
drop_plugin_tables('block_'.$block->name, "$CFG->dirroot/blocks/$block->name/db/install.xml", false);
// Delete the capabilities that were defined by this block
capabilities_cleanup('block/'.$block->name);
// Remove event handlers and dequeue pending events
events_uninstall('block/'.$block->name);
$a = new stdClass();
$a->block = $strblockname;
$a->directory = $CFG->dirroot.'/blocks/'.$block->name;
notice(get_string('blockdeletefiles', '', $a), 'blocks.php');
@@ -225,7 +250,7 @@
$tablerows[] = array(strip_tags($strblockname), $row); // first element will be used for sorting
}
collatorlib::asort($tablerows);
textlib_get_instance()->asort($tablerows);
foreach ($tablerows as $row) {
$table->add_data($row[1]);
}
@@ -1,49 +1,27 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Create "blog" forums in each course and copy blog entries from these courses' participants in these forums
*
* @package tool
* @subpackage bloglevelupgrade
* @copyright 2009 Nicolas Connault
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/// Create "blog" forums in each course and copy blog entries from these courses' participants in these forums
define('NO_OUTPUT_BUFFERING', true);
require('../../../config.php');
require_once('../config.php');
require_once($CFG->dirroot.'/course/lib.php');
require_once($CFG->dirroot.'/blog/lib.php');
require_once($CFG->dirroot.'/mod/forum/lib.php');
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('toolbloglevelupgrade');
admin_externalpage_setup('bloglevelupgrade');
$PAGE->set_pagelayout('maintenance');
$go = optional_param('go', 0, PARAM_BOOL);
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('pluginname', 'tool_bloglevelupgrade'));
echo $OUTPUT->heading(get_string('bloglevelupgrade', 'admin'));
$strbloglevelupgrade = get_string('bloglevelupgradeinfo', 'tool_bloglevelupgrade');
$strbloglevelupgrade = get_string('bloglevelupgradeinfo', 'admin');
if (!$go or !data_submitted() or !confirm_sesskey()) { /// Print a form
$optionsyes = array('go'=>1, 'sesskey'=>sesskey());
echo $OUTPUT->confirm($strbloglevelupgrade, new moodle_url('/admin/tool/bloglevelupgrade/index.php', $optionsyes), new moodle_url('/admin/index.php'));
echo $OUTPUT->confirm($strbloglevelupgrade, new moodle_url('bloglevelupgrade.php', $optionsyes), 'index.php');
echo $OUTPUT->footer();
die;
}
@@ -60,7 +38,7 @@ $i = 0;
// whose enrolled students have written blog entries, copy these entries in that forum and switch off blogs at site level
if ($CFG->bloglevel == BLOG_COURSE_LEVEL || $CFG->bloglevel == BLOG_GROUP_LEVEL) {
$pbar = new progress_bar('toolbloglevelupgrade', 500, true);
$pbar = new progress_bar('bloglevelupgrade', 500, true);
$bloggers = $DB->get_records_sql("SELECT userid FROM {post} WHERE module = 'blog' GROUP BY userid");
require_once($CFG->dirroot.'/mod/forum/lib.php');
@@ -94,7 +72,7 @@ if ($CFG->bloglevel == BLOG_COURSE_LEVEL || $CFG->bloglevel == BLOG_GROUP_LEVEL)
}
$a->userscount = $i . '/' . count($bloggers);
$pbar->update($i, count($bloggers), get_string('bloglevelupgradeprogress', 'tool_bloglevelupgrade', $a));
$pbar->update($i, count($bloggers), get_string('bloglevelupgradeprogress', 'admin', $a));
$i++;
}
}
@@ -121,7 +99,7 @@ function bloglevelupgrade_entries($blogentries, $forum, $cm, $groupid=-1) {
$discussion->groupid = $groupid;
$message = '';
$discussionid = forum_add_discussion($discussion, null, $message, $blogentry->userid);
$discussionid = forum_add_discussion($discussion, null, $message);
// Copy file attachment records
$fs = get_file_storage();
@@ -157,7 +135,7 @@ function bloglevelupgrade_entries($blogentries, $forum, $cm, $groupid=-1) {
// END OF LOOP
// set conversion flag - switches to new plugin automatically
unset_config('tool_bloglevelupgrade_pending');
set_config('bloglevel_upgrade_complete', 1);
// Finally switch bloglevel to 0 (disabled)
set_config('bloglevel', 0);
@@ -168,7 +146,7 @@ echo $OUTPUT->notification('Rebuilding course cache...', 'notifysuccess');
rebuild_course_cache();
echo $OUTPUT->notification('...finished', 'notifysuccess');
echo $OUTPUT->continue_button(new moodle_url('/admin/index.php'));
echo $OUTPUT->continue_button('index.php');
echo $OUTPUT->footer();
die;
+12 -48
View File
@@ -20,6 +20,7 @@
*
* This script is not intended for beginners!
* Potential problems:
* - environment check is not present yet
* - su to apache account or sudo before execution
* - not compatible with Windows platform
*
@@ -78,16 +79,6 @@ Example:
"; //TODO: localize, mark as needed in install - to be translated later when everything is finished
// distro specific customisation
$distrolibfile = dirname(dirname(dirname(__FILE__))).'/install/distrolib.php';
$distro = null;
if (file_exists($distrolibfile)) {
require_once($distrolibfile);
if (function_exists('distro_get_config')) {
$distro = distro_get_config();
}
}
// Nothing to do if config.php exists
$configfile = dirname(dirname(dirname(__FILE__))).'/config.php';
if (file_exists($configfile)) {
@@ -100,16 +91,12 @@ if (file_exists($configfile)) {
echo "\n\n";
}
if ($DB->get_manager()->table_exists('config')) {
cli_error(get_string('clialreadyinstalled', 'install'));
} else {
cli_error(get_string('clialreadyconfigured', 'install'));
}
cli_error(get_string('clialreadyinstalled', 'install'));
}
$olddir = getcwd();
// change directory so that includes below work properly
// change directory so that includes bellow work properly
chdir(dirname($_SERVER['argv'][0]));
// Servers should define a default timezone in php.ini, but if they don't then make sure something is defined.
@@ -143,6 +130,7 @@ $CFG->dirroot = dirname(dirname(dirname(__FILE__)));
$CFG->libdir = "$CFG->dirroot/lib";
$CFG->wwwroot = "http://localhost";
$CFG->httpswwwroot = $CFG->wwwroot;
$CFG->dataroot = str_replace('\\', '/', dirname(dirname(dirname(dirname(__FILE__)))).'/moodledata');
$CFG->docroot = 'http://docs.moodle.org';
$CFG->running_installer = true;
$CFG->early_install_lang = true;
@@ -190,14 +178,14 @@ if (empty($databases)) {
// now get cli options
list($options, $unrecognized) = cli_get_params(
array(
'chmod' => isset($distro->directorypermissions) ? sprintf('%04o',$distro->directorypermissions) : '2777', // let distros set dir permissions
'chmod' => '2777',
'lang' => $CFG->lang,
'wwwroot' => '',
'dataroot' => empty($distro->dataroot) ? str_replace('\\', '/', dirname(dirname(dirname(dirname(__FILE__)))).'/moodledata'): $distro->dataroot, // initialised later after including libs or by distro
'dbtype' => empty($distro->dbtype) ? $defaultdb : $distro->dbtype, // let distro skip dbtype selection
'dbhost' => empty($distro->dbhost) ? 'localhost' : $distro->dbhost, // let distros set dbhost
'dataroot' => $CFG->dataroot,
'dbtype' => $defaultdb,
'dbhost' => 'localhost',
'dbname' => 'moodle',
'dbuser' => empty($distro->dbuser) ? 'root' : $distro->dbuser, // let distros set dbuser
'dbuser' => 'root',
'dbpass' => '',
'dbsocket' => false,
'prefix' => 'mdl_',
@@ -337,7 +325,9 @@ $CFG->httpswwwroot = $CFG->wwwroot;
//We need dataroot before lang download
$CFG->dataroot = $options['dataroot'];
if (!empty($options['dataroot'])) {
$CFG->dataroot = $options['dataroot'];
}
if ($interactive) {
cli_separator();
$i=0;
@@ -385,8 +375,6 @@ if ($interactive) {
cli_error(get_string('pathserrcreatedataroot', 'install', $a));
}
}
$CFG->tempdir = $CFG->dataroot.'/temp';
$CFG->cachedir = $CFG->dataroot.'/cache';
// download required lang packs
if ($CFG->lang !== 'en') {
@@ -528,9 +516,6 @@ if ($interactive) {
}
$CFG->dbpass = cli_input($prompt, $options['dbpass']);
if (function_exists('distro_pre_create_db')) { // Hook for distros needing to do something before DB creation
$distro = distro_pre_create_db($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix, array('dbpersist'=>0, 'dbsocket'=>$options['dbsocket']), $distro);
}
$hint_database = install_db_validate($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix, array('dbpersist'=>0, 'dbsocket'=>$options['dbsocket']));
} while ($hint_database !== '');
@@ -660,27 +645,6 @@ require($configfile);
$CFG->lang = $installlang;
$SESSION->lang = $CFG->lang;
require("$CFG->dirroot/version.php");
// Test environment first.
require_once($CFG->libdir . '/environmentlib.php');
list($envstatus, $environment_results) = check_moodle_environment(normalize_version($release), ENV_SELECT_RELEASE);
if (!$envstatus) {
$errors = environment_get_errors($environment_results);
cli_heading(get_string('environment', 'admin'));
foreach ($errors as $error) {
list($info, $report) = $error;
echo "!! $info !!\n$report\n\n";
}
exit(1);
}
// Test plugin dependencies.
require_once($CFG->libdir . '/pluginlib.php');
if (!plugin_manager::instance()->all_plugins_ok($version)) {
cli_error(get_string('pluginschecktodo', 'admin'));
}
install_cli_database($options, $interactive);
echo get_string('cliinstallfinished', 'install')."\n";
-20
View File
@@ -144,26 +144,6 @@ if ($CFG->lang !== 'en') {
$CFG->early_install_lang = false;
get_string_manager(true);
require("$CFG->dirroot/version.php");
// Test environment first.
require_once($CFG->libdir . '/environmentlib.php');
list($envstatus, $environment_results) = check_moodle_environment(normalize_version($release), ENV_SELECT_RELEASE);
if (!$envstatus) {
$errors = environment_get_errors($environment_results);
cli_heading(get_string('environment', 'admin'));
foreach ($errors as $error) {
list($info, $report) = $error;
echo "!! $info !!\n$report\n\n";
}
exit(1);
}
// Test plugin dependencies.
require_once($CFG->libdir . '/pluginlib.php');
if (!plugin_manager::instance()->all_plugins_ok($version)) {
cli_error(get_string('pluginschecktodo', 'admin'));
}
install_cli_database($options, true);
-211
View File
@@ -1,211 +0,0 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* MySQL collation conversion tool.
*
* @package core
* @copyright 2012 Petr Skoda (http://skodak.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('CLI_SCRIPT', true);
require(dirname(dirname(dirname(__FILE__))).'/config.php');
require_once($CFG->libdir.'/clilib.php'); // cli only functions
if ($DB->get_dbfamily() !== 'mysql') {
cli_error('This function is designed for MySQL databases only!');
}
// now get cli options
list($options, $unrecognized) = cli_get_params(array('help'=>false, 'list'=>false, 'collation'=>false, 'available'=>false),
array('h'=>'help', 'l'=>'list', 'a'=>'available'));
if ($unrecognized) {
$unrecognized = implode("\n ", $unrecognized);
cli_error(get_string('cliunknowoption', 'admin', $unrecognized));
}
$help =
"MySQL collation conversions script.
It is strongly recommended to stop the web server before the conversion.
This script may be executed before the main upgrade - 1.9.x data for example.
Options:
--collation=COLLATION Convert MySQL tables to different collation
-l, --list Show table and column information
-a, --available Show list of available collations
-h, --help Print out this help
Example:
\$ sudo -u www-data /usr/bin/php admin/cli/mysql_collation.php --collation=utf8_general_ci
";
if (!empty($options['collation'])) {
$collations = mysql_get_collations();
$collation = clean_param($options['collation'], PARAM_ALPHANUMEXT);
$collation = strtolower($collation);
if (!isset($collations[$collation])) {
cli_error("Error: collation '$collation' is not available on this server!");
}
echo "Converting tables and columns to '$collation' for $CFG->wwwroot:\n";
$prefix = $DB->get_prefix();
$prefix = str_replace('_', '\\_', $prefix);
$sql = "SHOW TABLE STATUS WHERE Name LIKE BINARY '$prefix%'";
$rs = $DB->get_recordset_sql($sql);
$converted = 0;
$skipped = 0;
$errors = 0;
foreach ($rs as $table) {
echo str_pad($table->name, 40). " - ";
if ($table->collation === $collation) {
echo "NO CHANGE\n";
$skipped++;
} else {
$DB->change_database_structure("ALTER TABLE $table->name DEFAULT COLLATE = $collation");
echo "CONVERTED\n";
$converted++;
}
$sql = "SHOW FULL COLUMNS FROM $table->name WHERE collation IS NOT NULL";
$rs2 = $DB->get_recordset_sql($sql);
foreach ($rs2 as $column) {
$column = (object)array_change_key_case((array)$column, CASE_LOWER);
echo ' '.str_pad($column->field, 36). " - ";
if ($column->collation === $collation) {
echo "NO CHANGE\n";
$skipped++;
continue;
}
if ($column->type === 'tinytext' or $column->type === 'mediumtext' or $column->type === 'text' or $column->type === 'longtext') {
$notnull = ($column->null === 'NO') ? 'NOT NULL' : 'NULL';
$default = (!is_null($column->default) and $column->default !== '') ? "DEFAULT '$column->default'" : '';
// primary, unique and inc are not supported for texts
$sql = "ALTER TABLE $table->name MODIFY COLUMN $column->field $column->type COLLATE $collation $notnull $default";
$DB->change_database_structure($sql);
} else if (strpos($column->type, 'varchar') === 0) {
$notnull = ($column->null === 'NO') ? 'NOT NULL' : 'NULL';
$default = !is_null($column->default) ? "DEFAULT '$column->default'" : '';
// primary, unique and inc are not supported for texts
$sql = "ALTER TABLE $table->name MODIFY COLUMN $column->field $column->type COLLATE $collation $notnull $default";
$DB->change_database_structure($sql);
} else {
echo "ERROR (unknown column type: $column->type)\n";
$error++;
continue;
}
echo "CONVERTED\n";
$converted++;
}
$rs2->close();
}
$rs->close();
echo "Converted: $converted, skipped: $skipped, errors: $errors\n";
exit(0); // success
} else if (!empty($options['list'])) {
echo "List of tables for $CFG->wwwroot:\n";
$prefix = $DB->get_prefix();
$prefix = str_replace('_', '\\_', $prefix);
$sql = "SHOW TABLE STATUS WHERE Name LIKE BINARY '$prefix%'";
$rs = $DB->get_recordset_sql($sql);
$counts = array();
foreach ($rs as $table) {
if (isset($counts[$table->collation])) {
$counts[$table->collation]++;
} else {
$counts[$table->collation] = 1;
}
echo str_pad($table->name, 40);
echo $table->collation. "\n";
$collations = mysql_get_column_collations($table->name);
foreach ($collations as $columname=>$collation) {
if (isset($counts[$collation])) {
$counts[$collation]++;
} else {
$counts[$collation] = 1;
}
echo ' ';
echo str_pad($columname, 36);
echo $collation. "\n";
}
}
$rs->close();
echo "\n";
echo "Table collations summary for $CFG->wwwroot:\n";
foreach ($counts as $collation => $count) {
echo "$collation: $count\n";
}
exit(0); // success
} else if (!empty($options['available'])) {
echo "List of available MySQL collations for $CFG->wwwroot:\n";
$collations = mysql_get_collations();
foreach ($collations as $collation) {
echo " $collation\n";
}
die;
} else {
echo $help;
die;
}
// ========== Some functions ==============
function mysql_get_collations() {
global $DB;
$collations = array();
$sql = "SHOW COLLATION WHERE Collation LIKE 'utf8\_%' AND Charset = 'utf8'";
$rs = $DB->get_recordset_sql($sql);
foreach ($rs as $collation) {
$collations[$collation->collation] = $collation->collation;
}
$rs->close();
$collation = $DB->get_dbcollation();
if (isset($collations[$collation])) {
$collations[$collation] .= ' (default)';
}
return $collations;
}
function mysql_get_column_collations($tablename) {
global $DB;
$collations = array();
$sql = "SELECT column_name, collation_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = DATABASE() AND table_name = ? AND collation_name IS NOT NULL";
$rs = $DB->get_recordset_sql($sql, array($tablename));
foreach($rs as $record) {
$collations[$record->column_name] = $record->collation_name;
}
$rs->close();
return $collations;
}
+1 -7
View File
@@ -76,13 +76,7 @@ if (!empty($options['engine'])) {
}
echo str_pad($table->name, 40). " - ";
try {
$DB->change_database_structure("ALTER TABLE {$table->name} ENGINE = $engine");
} catch (moodle_exception $e) {
echo $e->getMessage()."\n";
$skipped++;
continue;
}
$DB->change_database_structure("ALTER TABLE {$table->name} TYPE = $engine");
echo "DONE\n";
$converted++;
}
-53
View File
@@ -1,53 +0,0 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* @package core
* @subpackage cli
* @copyright 2011 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('CLI_SCRIPT', true);
require(dirname(dirname(dirname(__FILE__))).'/config.php');
require_once($CFG->libdir.'/clilib.php');
list($options, $unrecognized) = cli_get_params(array('help' => false), array('h' => 'help'));
if ($unrecognized) {
$unrecognized = implode("\n ", $unrecognized);
cli_error(get_string('cliunknowoption', 'admin', $unrecognized), 2);
}
if ($options['help']) {
$help =
"Invalidates all Moodle internal caches
Options:
-h, --help Print out this help
Example:
\$sudo -u www-data /usr/bin/php admin/cli/purge_caches.php
";
echo $help;
exit(0);
}
purge_all_caches();
exit(0);
+4 -13
View File
@@ -20,6 +20,7 @@
*
* This script is not intended for beginners!
* Potential problems:
* - environment check is not present yet
* - su to apache account or sudo before execution
* - not compatible with Windows platform
*
@@ -36,7 +37,7 @@ require_once($CFG->libdir.'/adminlib.php'); // various admin-only function
require_once($CFG->libdir.'/upgradelib.php'); // general upgrade/install related functions
require_once($CFG->libdir.'/clilib.php'); // cli only functions
require_once($CFG->libdir.'/environmentlib.php');
require_once($CFG->libdir.'/pluginlib.php');
// now get cli options
list($options, $unrecognized) = cli_get_params(
@@ -92,13 +93,8 @@ if ($version < $CFG->version) {
$oldversion = "$CFG->release ($CFG->version)";
$newversion = "$release ($version)";
if (!moodle_needs_upgrading()) {
cli_error(get_string('cliupgradenoneed', 'core_admin', $newversion), 0);
}
// Test environment first.
list($envstatus, $environment_results) = check_moodle_environment(normalize_version($release), ENV_SELECT_RELEASE);
if (!$envstatus) {
// test environment first
if (!check_moodle_environment(normalize_version($release), $environment_results, false, ENV_SELECT_RELEASE)) {
$errors = environment_get_errors($environment_results);
cli_heading(get_string('environment', 'admin'));
foreach ($errors as $error) {
@@ -108,11 +104,6 @@ if (!$envstatus) {
exit(1);
}
// Test plugin dependencies.
if (!plugin_manager::instance()->all_plugins_ok($version)) {
cli_error(get_string('pluginschecktodo', 'admin'));
}
if ($interactive) {
$a = new stdClass();
$a->oldversion = $oldversion;
+32
View File
@@ -0,0 +1,32 @@
<?PHP
// dbperformance.php - shows latest ADOdb stats for the current server
// disable moodle specific debug messages and any errors in output
define('NO_DEBUG_DISPLAY', true);
require_once('../config.php');
error('TODO: rewrite db perf code'); // TODO: rewrite
$topframe = optional_param('topframe', 0, PARAM_BOOL);
$bottomframe = optional_param('bottomframe', 0, PARAM_BOOL);
$do = optional_param('do', '', PARAM_ALPHA);
require_login();
require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
$strdatabaseperformance = get_string("databaseperformance");
$stradministration = get_string("administration");
$site = get_site();
if (!empty($topframe)) {
$PAGE->set_url('/admin/dbperformance.php');
$PAGE->navbar->add($stradministration, new moodle_url('/admin/index.php'));
$PAGE->navbar->add($strdatabaseperformance);
$PAGE->set_title("$site->shortname: $strdatabaseperformance");
$PAGE->set_heading($site->fullname);
echo $OUTPUT->header();
exit;
}
+19
View File
@@ -0,0 +1,19 @@
<?php
if (!defined('MOODLE_INTERNAL')) {
die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page
}
require_once $CFG->libdir.'/formslib.php';
class database_export_form extends moodleform {
function definition() {
$mform = $this->_form;
$mform->addElement('header', 'database', get_string('dbexport', 'dbtransfer'));
$mform->addElement('textarea', 'description', get_string('description'), array('rows'=>5, 'cols'=>60));
$this->add_action_buttons(false, get_string('exportdata', 'dbtransfer'));
}
}
@@ -1,29 +1,8 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Transfer form
*
* @package tool
* @subpackage dbtransfer
* @copyright 2008 Petr Skoda
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die;
if (!defined('MOODLE_INTERNAL')) {
die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page
}
require_once $CFG->libdir.'/formslib.php';
@@ -32,7 +11,7 @@ class database_transfer_form extends moodleform {
function definition() {
$mform = $this->_form;
$mform->addElement('header', 'database', get_string('dbtransfer', 'tool_dbtransfer'));
$mform->addElement('header', 'database', get_string('dbtransfer', 'dbtransfer'));
$supported = array (
'mysqli/native',
@@ -57,8 +36,6 @@ class database_transfer_form extends moodleform {
$mform->addElement('text', 'dbuser', get_string('user'));
$mform->addElement('text', 'dbpass', get_string('password'));
$mform->addElement('text', 'prefix', get_string('dbprefix', 'install'));
$mform->addElement('text', 'dbport', get_string('dbport', 'install'));
$mform->addElement('text', 'dbsocket', get_string('databasesocket', 'install'));
$mform->addRule('dbhost', get_string('required'), 'required', null);
$mform->addRule('dbname', get_string('required'), 'required', null);
@@ -66,6 +43,6 @@ class database_transfer_form extends moodleform {
$mform->addRule('dbpass', get_string('required'), 'required', null);
$mform->addRule('prefix', get_string('required'), 'required', null);
$this->add_action_buttons(false, get_string('transferdata', 'tool_dbtransfer'));
$this->add_action_buttons(false, get_string('transferdata', 'dbtransfer'));
}
}
+21
View File
@@ -0,0 +1,21 @@
<?php
require('../../config.php');
require_once('lib.php');
require_once('database_export_form.php');
require_login();
admin_externalpage_setup('dbexport');
//create form
$form = new database_export_form();
if ($data = $form->get_data()) {
dbtransfer_export_xml_database($data->description, $DB);
die;
}
echo $OUTPUT->header();
// TODO: add some more info here
$form->display();
echo $OUTPUT->footer();
+47
View File
@@ -0,0 +1,47 @@
<?php
require('../../config.php');
require_once('lib.php');
require_once('database_transfer_form.php');
require_login();
admin_externalpage_setup('dbtransfer');
// Create the form
$form = new database_transfer_form();
// If we have valid input.
if ($data = $form->get_data()) {
// Connect to the other database.
list($dbtype, $dblibrary) = explode('/', $data->driver);
$targetdb = moodle_database::get_driver_instance($dbtype, $dblibrary);
if (!$targetdb->connect($data->dbhost, $data->dbuser, $data->dbpass, $data->dbname, $data->prefix, null)) {
throw new dbtransfer_exception('notargetconectexception', null, "$CFG->wwwroot/$CFG->admin/dbtransfer/");
}
if ($targetdb->get_tables()) {
throw new dbtransfer_exception('targetdatabasenotempty', null, "$CFG->wwwroot/$CFG->admin/dbtransfer/");
}
// Start output.
echo $OUTPUT->header();
$data->dbtype = $dbtype;
echo $OUTPUT->heading(get_string('transferringdbto', 'dbtransfer', $data));
// Do the transfer.
$feedback = new html_list_progress_trace();
dbtransfer_transfer_database($DB, $targetdb, $feedback);
$feedback->finished();
// Finish up.
echo $OUTPUT->notification(get_string('success'), 'notifysuccess');
echo $OUTPUT->continue_button("$CFG->wwwroot/$CFG->admin/");
echo $OUTPUT->footer();
die;
}
// Otherwise display the settings form.
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('transferdbtoserver', 'dbtransfer'));
echo '<p>', get_string('transferdbintro', 'dbtransfer'), "</p>\n\n";
$form->display();
echo $OUTPUT->footer();
@@ -1,34 +1,10 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Export db content to file.
*
* @package tool
* @subpackage dbtransfer
* @copyright 2008 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die;
/*
TODO:
- exporting to server file >2GB fails in 32bit operating systems - needs warning
- we may run out of disk space exporting to server file - we must verify the file is not truncated; read from the end of file?
- we may run out of disk space exporting to srever file - we must verify the file is not truncated; read from the end of file?
- when sending file >4GB - FAT32 limit, Apache limit, browser limit - needs warning
- there must be some form of progress bar during export, transfer - new tracking class could be passed around
- command line operation - could work around some 2G/4G limits in PHP; useful for cron full backups
@@ -37,7 +13,7 @@ TODO:
(user would need file access to dataroot which might prevent various "accidents")
- implement "Export/import running" notification in lib/setup.php (similar to new upgrade flag in config table)
- gzip compression when storing xml file - the xml is very verbose and full of repeated tags (zip is not suitable here at all)
this could help us keep the files below 2G (expected ratio is > 10:1)
this could help us keep the files bellow 2G (expected ratio is > 10:1)
*/
+86
View File
@@ -0,0 +1,86 @@
<?php
// Deletes the moodledata directory, COMPLETELY!!
// BE VERY CAREFUL USING THIS!
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('purgemoodledata');
require_login();
$sure = optional_param('sure', 0, PARAM_BOOL);
$reallysure = optional_param('reallysure', 0, PARAM_BOOL);
require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
$deletedir = $CFG->dataroot; // The directory to delete!
echo $OUTPUT->header();
echo $OUTPUT->heading('Purge moodledata');
if (empty($sure)) {
$optionsyes = array('sure'=>'yes', 'sesskey'=>sesskey());
$formcontinue = new single_button(new moodle_url('delete.php', $optionsyes), get_string('yes'));
$formcancel = new single_button('index.php', get_string('no'), 'get');
echo $OUTPUT->confirm('Are you completely sure you want to delete everything inside the directory '. $deletedir .' ?', $formcontinue, $formcancel);
echo $OUTPUT->footer();
exit;
}
if (!data_submitted() or empty($reallysure)) {
$optionsyes = array('sure'=>'yes', 'sesskey'=>sesskey(), 'reallysure'=>'yes');
$formcontinue = new single_button(new moodle_url('delete.php', $optionsyes), get_string('yes'));
$formcancel = new single_button('index.php', get_string('no'), 'get');
echo $OUTPUT->confirm('Are you REALLY REALLY completely sure you want to delete everything inside the directory '.
$deletedir .' (this includes all user images, and any other course files that have been created) ?',
$formcontinue, $formcancel);
echo $OUTPUT->footer();
exit;
}
if (!confirm_sesskey()) {
print_error('wrongcall', 'error');
}
/// OK, here goes ...
delete_subdirectories($deletedir);
echo '<h1 align="center">Done!</h1>';
echo $OUTPUT->continue_button($CFG->wwwroot);
echo $OUTPUT->footer();
exit;
function delete_subdirectories($rootdir) {
$dir = opendir($rootdir);
while (false !== ($file = readdir($dir))) {
if ($file != '.' and $file != '..') {
$fullfile = $rootdir .'/'. $file;
if (filetype($fullfile) == 'dir') {
delete_subdirectories($fullfile);
echo 'Deleting '. $fullfile .' ... ';
if (rmdir($fullfile)) {
echo 'Done.<br />';
} else {
echo 'FAILED.<br />';
}
} else {
echo 'Deleting '. $fullfile .' ... ';
if (unlink($fullfile)) {
echo 'Done.<br />';
} else {
echo 'FAILED.<br />';
}
}
}
}
closedir($dir);
}
+1 -1
View File
@@ -14,7 +14,7 @@ require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
$returnurl = "$CFG->wwwroot/$CFG->admin/settings.php?section=manageeditors";
$action = optional_param('action', '', PARAM_ACTION);
$editor = optional_param('editor', '', PARAM_PLUGIN);
$editor = optional_param('editor', '', PARAM_SAFEDIR);
// get currently installed and enabled auth plugins
$available_editors = editors_get_available();
+1 -8
View File
@@ -27,11 +27,10 @@ require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
$action = required_param('action', PARAM_ACTION);
$enrol = required_param('enrol', PARAM_PLUGIN);
$enrol = required_param('enrol', PARAM_SAFEDIR);
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$PAGE->set_url('/admin/enrol.php');
$PAGE->set_context(context_system::instance());
require_login();
require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
@@ -42,13 +41,10 @@ $all = enrol_get_plugins(false);
$return = new moodle_url('/admin/settings.php', array('section'=>'manageenrols'));
$syscontext = context_system::instance();
switch ($action) {
case 'disable':
unset($enabled[$enrol]);
set_config('enrol_plugins_enabled', implode(',', array_keys($enabled)));
$syscontext->mark_dirty(); // resets all enrol caches
break;
case 'enable':
@@ -58,7 +54,6 @@ switch ($action) {
$enabled = array_keys($enabled);
$enabled[] = $enrol;
set_config('enrol_plugins_enabled', implode(',', $enabled));
$syscontext->mark_dirty(); // resets all enrol caches
break;
case 'up':
@@ -111,9 +106,7 @@ switch ($action) {
} else { // Delete everything!!
uninstall_plugin('enrol', $enrol);
$syscontext->mark_dirty(); // resets all enrol caches
$a = new stdClass();
$a->plugin = $strplugin;
$a->directory = "$CFG->dirroot/enrol/$enrol";
echo $OUTPUT->notification(get_string('uninstalldeletefiles', 'enrol', $a), 'notifysuccess');
+124 -96
View File
@@ -1,109 +1,137 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* This file is the admin frontend to execute all the checks available
* in the environment.xml file. It includes database, php and
* php_extensions. Also, it's possible to update the xml file
* from moodle.org be able to check more and more versions.
*
* @package core
* @subpackage admin
* @copyright 2006 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
///////////////////////////////////////////////////////////////////////////
// //
// NOTICE OF COPYRIGHT //
// //
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
// http://moodle.com //
// //
// Copyright (C) 1999 onwards Martin Dougiamas http://dougiamas.com //
// (C) 2001-3001 Eloy Lafuente (stronk7) http://contiento.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 //
// //
///////////////////////////////////////////////////////////////////////////
// This file is the admin frontend to execute all the checks available
// in the environment.xml file. It includes database, php and
// php_extensions. Also, it's possible to update the xml file
// from moodle.org be able to check more and more versions.
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/environmentlib.php');
require_once($CFG->libdir.'/componentlib.class.php');
admin_externalpage_setup('environment');
/// Parameters
$action = optional_param('action', '', PARAM_ACTION);
$version = optional_param('version', '', PARAM_FILE); //
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/environmentlib.php');
require_once($CFG->libdir.'/componentlib.class.php');
/// Get some strings
$stradmin = get_string('administration');
$stradminhelpenvironment = get_string("adminhelpenvironment");
$strenvironment = get_string('environment', 'admin');
$strerror = get_string('error');
$strmoodleversion = get_string('moodleversion');
$strupdate = get_string('updatecomponent', 'admin');
$strupwards = get_string('upwards', 'admin');
$strmisc = get_string('miscellaneous');
// Parameters
$action = optional_param('action', '', PARAM_ACTION);
$version = optional_param('version', '', PARAM_FILE); //
/// Print the header stuff
echo $OUTPUT->header();
$extraurlparams = array();
if ($version) {
$extraurlparams['version'] = $version;
}
admin_externalpage_setup('environment', '', $extraurlparams);
/// Print the component download link
echo '<div class="reportlink"><a href="environment.php?action=updatecomponent&amp;sesskey='.sesskey().'">'.$strupdate.'</a></div>';
// Handle the 'updatecomponent' action
if ($action == 'updatecomponent' && confirm_sesskey()) {
// Create component installer and execute it
if ($cd = new component_installer('http://download.moodle.org',
'environment',
'environment.zip')) {
$status = $cd->install(); //returns COMPONENT_(ERROR | UPTODATE | INSTALLED)
switch ($status) {
case COMPONENT_ERROR:
if ($cd->get_error() == 'remotedownloaderror') {
$a = new stdClass();
$a->url = 'http://download.moodle.org/environment/environment.zip';
$a->dest = $CFG->dataroot . '/';
print_error($cd->get_error(), 'error', $PAGE->url, $a);
die();
echo $OUTPUT->heading($strenvironment);
} else {
print_error($cd->get_error(), 'error', $PAGE->url);
die();
}
case COMPONENT_UPTODATE:
redirect($PAGE->url, get_string($cd->get_error(), 'error'));
die;
case COMPONENT_INSTALLED:
redirect($PAGE->url, get_string('componentinstalled', 'admin'));
die;
}
}
}
// Get current Moodle version
$current_version = $CFG->release;
// Calculate list of versions
$versions = array();
if ($contents = load_environment_xml()) {
if ($env_versions = get_list_of_environment_versions($contents)) {
// Set the current version at the beginning
$env_version = normalize_version($current_version); //We need this later (for the upwards)
$versions[$env_version] = $current_version;
// If no version has been previously selected, default to $current_version
if (empty($version)) {
$version = $env_version;
}
//Iterate over each version, adding bigger than current
foreach ($env_versions as $env_version) {
if (version_compare(normalize_version($current_version), $env_version, '<')) {
$versions[$env_version] = $env_version;
/// Handle the 'updatecomponent' action
if ($action == 'updatecomponent' && confirm_sesskey()) {
/// Create component installer and execute it
if ($cd = new component_installer('http://download.moodle.org',
'environment',
'environment.zip')) {
$status = $cd->install(); //returns COMPONENT_(ERROR | UPTODATE | INSTALLED)
switch ($status) {
case COMPONENT_ERROR:
if ($cd->get_error() == 'remotedownloaderror') {
$a = new stdClass();
$a->url = 'http://download.moodle.org/environment/environment.zip';
$a->dest= $CFG->dataroot.'/';
echo $OUTPUT->box(get_string($cd->get_error(), 'error', $a), 'errorbox');
} else {
echo $OUTPUT->box(get_string($cd->get_error(), 'error'), 'errorbox');
}
break;
case COMPONENT_UPTODATE:
echo $OUTPUT->box(get_string($cd->get_error(), 'error'));
break;
case COMPONENT_INSTALLED:
echo $OUTPUT->box(get_string('componentinstalled', 'admin'));
break;
}
}
// Add 'upwards' to the last element
$versions[$env_version] = $env_version.' '.get_string('upwards', 'admin');
} else {
$versions = array('error' => get_string('error'));
}
}
// Get the results of the environment check.
list($envstatus, $environment_results) = check_moodle_environment($version);
/// Start of main box
echo $OUTPUT->box_start();
echo "<div style=\"text-align:center\">".$stradminhelpenvironment."</div><br />";
/// Get current Moodle version
$current_version = $CFG->release;
/// Calculate list of versions
$versions = array();
if ($contents = load_environment_xml()) {
if ($env_versions = get_list_of_environment_versions($contents)) {
/// Set the current version at the beginning
$env_version = normalize_version($current_version); //We need this later (for the upwards)
$versions[$env_version] = $current_version;
/// If no version has been previously selected, default to $current_version
if (empty($version)) {
$version = $env_version;
}
///Iterate over each version, adding bigger than current
foreach ($env_versions as $env_version) {
if (version_compare(normalize_version($current_version), $env_version, '<')) {
$versions[$env_version] = $env_version;
}
}
/// Add 'upwards' to the last element
$versions[$env_version] = $env_version.' '.$strupwards;
} else {
$versions = array('error' => $strerror);
}
}
/// Print form and popup menu
echo '<div style="text-align:center"> ';
$select = new single_select(new moodle_url('/admin/environment.php'), 'version', $versions, $version, null);
$select->label = $strmoodleversion;
echo $OUTPUT->render($select);
echo '</div>';
/// End of main box
echo $OUTPUT->box_end();
/// Gather and show results
$status = check_moodle_environment($version, $environment_results);
/// Print footer
echo $OUTPUT->footer();
// Display the page.
$output = $PAGE->get_renderer('core', 'admin');
echo $output->environment_check_page($versions, $version, $envstatus, $environment_results);
+15 -225
View File
@@ -214,7 +214,11 @@
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mysql" version="5.0.25" />
<VENDOR name="mysql" version="5.0.25">
<FEEDBACK>
<ON_ERROR message="mysql416required" />
</FEEDBACK>
</VENDOR>
<VENDOR name="postgres" version="8.3" />
<VENDOR name="mssql" version="9.0" />
<VENDOR name="odbc_mssql" version="9.0" />
@@ -331,7 +335,11 @@
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mysql" version="5.0.25" />
<VENDOR name="mysql" version="5.0.25">
<FEEDBACK>
<ON_ERROR message="mysql416required" />
</FEEDBACK>
</VENDOR>
<VENDOR name="postgres" version="8.3" />
<VENDOR name="mssql" version="9.0" />
<VENDOR name="odbc_mssql" version="9.0" />
@@ -441,7 +449,11 @@
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mysql" version="5.0.25" />
<VENDOR name="mysql" version="5.0.25">
<FEEDBACK>
<ON_ERROR message="mysql416required" />
</FEEDBACK>
</VENDOR>
<VENDOR name="postgres" version="8.3" />
<VENDOR name="mssql" version="9.0" />
<VENDOR name="odbc_mssql" version="9.0" />
@@ -544,226 +556,4 @@
</PHP_SETTING>
</PHP_SETTINGS>
</MOODLE>
<MOODLE version="2.3" requires="2.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mysql" version="5.1.33" />
<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="10.2" />
<VENDOR name="sqlite" version="2.0" />
</DATABASE>
<PHP version="5.3.2" level="required">
</PHP>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_CHECK message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="optional">
<FEEDBACK>
<ON_CHECK message="mbstringrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_CHECK message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="optional">
<FEEDBACK>
<ON_CHECK message="opensslrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlrpc" level="optional">
<FEEDBACK>
<ON_CHECK message="xmlrpcrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<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_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_CHECK message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_CHECK message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="optional">
<FEEDBACK>
<ON_CHECK message="intlrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
</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>
</MOODLE>
<MOODLE version="2.4" requires="2.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mysql" version="5.1.33" />
<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="10.2" />
<VENDOR name="sqlite" version="2.0" />
</DATABASE>
<PHP version="5.3.2" level="required">
</PHP>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_CHECK message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="optional">
<FEEDBACK>
<ON_CHECK message="mbstringrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_CHECK message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="optional">
<FEEDBACK>
<ON_CHECK message="opensslrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlrpc" level="optional">
<FEEDBACK>
<ON_CHECK message="xmlrpcrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<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_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_CHECK message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_CHECK message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="optional">
<FEEDBACK>
<ON_CHECK message="intlrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
</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>
</MOODLE>
</COMPATIBILITY_MATRIX>
-2
View File
@@ -242,7 +242,6 @@ function get_table_row($filterinfo, $isfirstrow, $islastactive, $applytostrings)
// Disable/off/on
$select = new single_select(filters_action_url($filter, 'setstate'), 'newstate', $activechoices, $filterinfo->active, null, 'active' . basename($filter));
$select->set_label(get_string('isactive', 'filters'), array('class' => 'accesshide'));
$row[] = $OUTPUT->render($select);
// Re-order
@@ -264,7 +263,6 @@ function get_table_row($filterinfo, $isfirstrow, $islastactive, $applytostrings)
// Apply to strings.
$select = new single_select(filters_action_url($filter, 'setapplyto'), 'stringstoo', $applytochoices, $applytostrings, null, 'applyto' . basename($filter));
$select->set_label(get_string('applyto', 'filters'), array('class' => 'accesshide'));
$select->disabled = $filterinfo->active == TEXTFILTER_DISABLED;
$row[] = $OUTPUT->render($select);
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -17,14 +18,14 @@
/**
* Random course generator. By Nicolas Connault and friends.
*
* @package tool
* @subpackage generator
* @copyright 2009 Nicolas Connault
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* To use go to .../admin/generator.php?web_interface=1 in your browser.
*
* @package generator
* @copyright 2009 Nicolas Connault
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
require_once(dirname(__FILE__).'/../config.php');
require_once($CFG->libdir . '/formslib.php');
require_once($CFG->dirroot .'/course/lib.php');
require_once($CFG->libdir .'/filelib.php');
@@ -1119,7 +1120,7 @@ class generator_cli extends generator {
$help .= " -{$argument->short},$paddingstr1--{$argument->long}$equal$paddingstr2{$argument->help}\n";
}
$help .= "\nUse http://tracker.moodle.org for any suggestions or bug reports.\n";
$help .= "\nEmail nicolas@moodle.com for any suggestions or bug reports.\n";
if ($argc == 1 || in_array($settings[1], array('--help', '-help', '-h', '-?'))) {
echo $help;
@@ -1175,12 +1176,14 @@ class generator_cli extends generator {
echo "Invalid username or password!{$this->eolchar}";
die();
}
if (!is_siteadmin($user)) {//TODO: add some proper access control check here!!
complete_user_login($user);
$systemcontext = get_context_instance(CONTEXT_SYSTEM);
if (!is_siteadmin($user->id)) {//TODO: add some proper access control check here!!
echo "You do not have administration privileges on this Moodle site. "
."These are required for running the generation script.{$this->eolchar}";
die();
}
complete_user_login($user);
}
parent::generate_data();
@@ -1212,15 +1215,14 @@ class generator_web extends generator {
global $CFG;
$this->mform = new generator_form();
$this->do_generation = optional_param('do_generation', false, PARAM_BOOL);
if ($data = $this->mform->get_data(false)) {
$this->do_generation = optional_param('do_generation', false, PARAM_BOOL);
foreach ($this->settings as $setting) {
if (isset($data->{$setting->long})) {
$this->set($setting->long, $data->{$setting->long});
}
}
} else {
$this->do_generation = false;
}
}
@@ -1313,3 +1315,22 @@ class generator_form extends moodleform {
}
}
if (CLI_SCRIPT) {
$generator = new generator_cli($argv, $argc);
$generator->generate_data();
} elseif (strstr($_SERVER['REQUEST_URI'], 'generator.php')) {
require_login();
$systemcontext = get_context_instance(CONTEXT_SYSTEM);
require_capability('moodle/site:config', $systemcontext);
$PAGE->set_url('/admin/generator.php');
$PAGE->set_pagelayout('base');
$generator = new generator_web();
$generator->setup();
$generator->display();
$generator->generate_data();
$generator->complete();
} else {
$generator = new generator_silent();
}
@@ -1,42 +1,25 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Strings for component 'tool_health', language 'en', branch 'MOODLE_22_STABLE'
*
* @package tool
* @subpackage health
* @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
ob_start(); //for whitespace test
require('../../../config.php');
$extraws = ob_get_clean();
require_once('../config.php');
// extra whitespace test - intentionally breaks cookieless mode
$extraws = '';
while (ob_get_level()) {
$extraws .= ob_get_contents();
ob_end_clean();
}
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('toolhealth');
admin_externalpage_setup('healthcenter');
define('SEVERITY_NOTICE', 'notice');
define('SEVERITY_ANNOYANCE', 'annoyance');
define('SEVERITY_SIGNIFICANT', 'significant');
define('SEVERITY_CRITICAL', 'critical');
$solution = optional_param('solution', 0, PARAM_PLUGIN);
$solution = optional_param('solution', 0, PARAM_SAFEDIR); //in fact it is class name alhanumeric and _
require_login();
require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
@@ -45,6 +28,68 @@
echo $OUTPUT->header();
echo <<<STYLES
<style type="text/css">
div#healthnoproblemsfound {
width: 60%;
margin: auto;
padding: 1em;
border: 1px black solid;
-moz-border-radius: 6px;
}
dl.healthissues {
width: 60%;
margin: auto;
}
dl.critical dt, dl.critical dd {
background-color: #a71501;
}
dl.significant dt, dl.significant dd {
background-color: #d36707;
}
dl.annoyance dt, dl.annoyance dd {
background-color: #dba707;
}
dl.notice dt, dl.notice dd {
background-color: #e5db36;
}
dt.solution, dd.solution, div#healthnoproblemsfound {
background-color: #5BB83E !important;
}
dl.healthissues dt, dl.healthissues dd {
margin: 0px;
padding: 1em;
border: 1px black solid;
}
dl.healthissues dt {
font-weight: bold;
border-bottom: none;
padding-bottom: 0.5em;
}
dl.healthissues dd {
border-top: none;
padding-top: 0.5em;
margin-bottom: 10px;
}
dl.healthissues dd form {
margin-top: 0.5em;
text-align: right;
}
form#healthformreturn {
text-align: center;
margin: 2em;
}
dd.solution p {
padding: 0px;
margin: 1em 0px;
}
dd.solution li {
margin-top: 1em;
}
</style>
STYLES;
if(strpos($solution, 'problem_') === 0 && class_exists($solution)) {
health_print_solution($solution);
}
@@ -59,7 +104,7 @@
function health_find_problems() {
global $OUTPUT;
echo $OUTPUT->heading(get_string('pluginname', 'tool_health'));
echo $OUTPUT->heading(get_string('healthcenter'));
$issues = array(
SEVERITY_CRITICAL => array(),
@@ -72,10 +117,9 @@ function health_find_problems() {
for($i = 1; $i < 1000000; ++$i) {
$classname = sprintf('problem_%06d', $i);
if(!class_exists($classname)) {
continue;
break;
}
$problem = new $classname;
if($problem->exists()) {
$severity = $problem->severity();
$issues[$severity][$classname] = array(
@@ -90,11 +134,11 @@ function health_find_problems() {
if($problems == 0) {
echo '<div id="healthnoproblemsfound">';
echo get_string('healthnoproblemsfound', 'tool_health');
echo get_string('healthnoproblemsfound');
echo '</div>';
}
else {
echo $OUTPUT->heading(get_string('healthproblemsdetected', 'tool_health'));
echo $OUTPUT->heading(get_string('healthproblemsdetected'));
$severities = array(SEVERITY_CRITICAL, SEVERITY_SIGNIFICANT, SEVERITY_ANNOYANCE, SEVERITY_NOTICE);
foreach($severities as $severity) {
if(!empty($issues[$severity])) {
@@ -102,7 +146,7 @@ function health_find_problems() {
foreach($issues[$severity] as $classname => $data) {
echo '<dt id="'.$classname.'">'.$data['title'].'</dt>';
echo '<dd>'.$data['description'];
echo '<form action="index.php#solution" method="get">';
echo '<form action="health.php#solution" method="get">';
echo '<input type="hidden" name="solution" value="'.$classname.'" /><input type="submit" value="'.get_string('viewsolution').'" />';
echo '</form></dd>';
}
@@ -122,15 +166,15 @@ function health_print_solution($classname) {
'solution' => $problem->solution()
);
echo $OUTPUT->heading(get_string('pluginname', 'tool_health'));
echo $OUTPUT->heading(get_string('healthproblemsolution', 'tool_health'));
echo $OUTPUT->heading(get_string('healthcenter'));
echo $OUTPUT->heading(get_string('healthproblemsolution'));
echo '<dl class="healthissues '.$data['severity'].'">';
echo '<dt>'.$data['title'].'</dt>';
echo '<dd>'.$data['description'].'</dd>';
echo '<dt id="solution" class="solution">'.get_string('healthsolution', 'tool_health').'</dt>';
echo '<dt id="solution" class="solution">'.get_string('healthsolution').'</dt>';
echo '<dd class="solution">'.$data['solution'].'</dd></dl>';
echo '<form id="healthformreturn" action="index.php#'.$classname.'" method="get">';
echo '<input type="submit" value="'.get_string('healthreturntomain', 'tool_health').'" />';
echo '<form id="healthformreturn" action="health.php#'.$classname.'" method="get">';
echo '<input type="submit" value="'.get_string('healthreturntomain').'" />';
echo '</form>';
}
@@ -742,3 +786,5 @@ TODO:
detect unsupported characters in $CFG->wwwroot - see bug Bug #6091 - relative vs absolute path during backup/restore process
*/
+173 -75
View File
@@ -26,7 +26,7 @@
// Check that config.php exists, if not then call the install script
if (!file_exists('../config.php')) {
header('Location: ../install.php');
die();
die;
}
// Check that PHP is of a sufficient version as soon as possible
@@ -35,19 +35,7 @@ if (version_compare(phpversion(), '5.3.2') < 0) {
// do NOT localise - lang strings would not work here and we CAN NOT move it to later place
echo "Moodle 2.1 or later requires at least PHP 5.3.2 (currently using version $phpversion).<br />";
echo "Please upgrade your server software or install older Moodle version.";
die();
}
// make sure iconv is available and actually works
if (!function_exists('iconv')) {
// this should not happen, this must be very borked install
echo 'Moodle requires the iconv PHP extension. Please install or enable the iconv extension.';
die();
}
if (iconv('UTF-8', 'UTF-8//IGNORE', 'abc') !== 'abc') {
// known to be broken in mid-2011 MAMP installations
echo 'Broken iconv PHP extension detected, installation/upgrade can not continue.';
die();
die;
}
define('NO_OUTPUT_BUFFERING', true);
@@ -87,6 +75,9 @@ if (is_float_problem()) {
}
// Set some necessary variables during set-up to avoid PHP warnings later on this page
if (!isset($CFG->framename)) {
$CFG->framename = '_top';
}
if (!isset($CFG->release)) {
$CFG->release = '';
}
@@ -103,11 +94,6 @@ if (!$version or !$release) {
print_error('withoutversion', 'debug'); // without version, stop
}
if (!isset($maturity)) {
// Fallback for now. Should probably be removed in the future.
$maturity = MATURITY_STABLE;
}
// Turn off xmlstrictheaders during upgrade.
$origxmlstrictheaders = !empty($CFG->xmlstrictheaders);
$CFG->xmlstrictheaders = false;
@@ -126,43 +112,65 @@ if (!core_tables_exist()) {
if (empty($agreelicense)) {
$strlicense = get_string('license');
$PAGE->navbar->add($strlicense);
$PAGE->set_title($strinstallation.' - Moodle '.$CFG->target_release);
$PAGE->set_heading($strinstallation);
$PAGE->set_cacheable(false);
$output = $PAGE->get_renderer('core', 'admin');
echo $output->install_licence_page();
die();
echo $OUTPUT->header();
echo $OUTPUT->heading('<a href="http://moodle.org">Moodle</a> - Modular Object-Oriented Dynamic Learning Environment');
echo $OUTPUT->heading(get_string('copyrightnotice'));
$copyrightnotice = text_to_html(get_string('gpl3'));
$copyrightnotice = str_replace('target="_blank"', 'onclick="this.target=\'_blank\'"', $copyrightnotice); // extremely ugly validation hack
echo $OUTPUT->box($copyrightnotice, 'copyrightnotice');
echo '<br />';
$continue = new single_button(new moodle_url('/admin/index.php', array('lang'=>$CFG->lang, 'agreelicense'=>1)), get_string('continue'), 'get');
echo $OUTPUT->confirm(get_string('doyouagree'), $continue, "http://docs.moodle.org/dev/License");
echo $OUTPUT->footer();
die;
}
if (empty($confirmrelease)) {
require_once($CFG->libdir.'/environmentlib.php');
list($envstatus, $environment_results) = check_moodle_environment(normalize_version($release), ENV_SELECT_RELEASE);
$strcurrentrelease = get_string('currentrelease');
$PAGE->navbar->add($strcurrentrelease);
$PAGE->set_title($strinstallation);
$PAGE->set_heading($strinstallation . ' - Moodle ' . $CFG->target_release);
$PAGE->set_cacheable(false);
echo $OUTPUT->header();
echo $OUTPUT->heading("Moodle $release");
$output = $PAGE->get_renderer('core', 'admin');
echo $output->install_environment_page($maturity, $envstatus, $environment_results, $release);
die();
if (isset($maturity)) {
// main version.php declares moodle code maturity
if ($maturity < MATURITY_STABLE) {
$maturitylevel = get_string('maturity'.$maturity, 'admin');
echo $OUTPUT->box(
$OUTPUT->container(get_string('maturitycorewarning', 'admin', $maturitylevel)) .
$OUTPUT->container($OUTPUT->doc_link('admin/versions', get_string('morehelp'))),
'generalbox maturitywarning');
}
}
$releasenoteslink = get_string('releasenoteslink', 'admin', 'http://docs.moodle.org/dev/Releases');
$releasenoteslink = str_replace('target="_blank"', 'onclick="this.target=\'_blank\'"', $releasenoteslink); // extremely ugly validation hack
echo $OUTPUT->box($releasenoteslink, 'generalbox releasenoteslink');
require_once($CFG->libdir.'/environmentlib.php');
if (!check_moodle_environment(normalize_version($release), $environment_results, true, ENV_SELECT_RELEASE)) {
print_upgrade_reload("index.php?agreelicense=1&amp;lang=$CFG->lang");
} else {
echo $OUTPUT->notification(get_string('environmentok', 'admin'), 'notifysuccess');
echo $OUTPUT->continue_button(new moodle_url('/admin/index.php', array('agreelicense'=>1, 'confirmrelease'=>1, 'lang'=>$CFG->lang)));
}
echo $OUTPUT->footer();
die;
}
//TODO: add a page with list of non-standard plugins here
$strdatabasesetup = get_string('databasesetup');
upgrade_init_javascript();
$PAGE->navbar->add($strdatabasesetup);
$PAGE->set_title($strinstallation.' - Moodle '.$CFG->target_release);
$PAGE->set_heading($strinstallation);
$PAGE->set_cacheable(false);
$output = $PAGE->get_renderer('core', 'admin');
echo $output->header();
echo $OUTPUT->header();
if (!$DB->setup_is_unicodedb()) {
if (!$DB->change_db_encoding()) {
@@ -190,45 +198,78 @@ if ($version > $CFG->version) { // upgrade
$PAGE->set_pagelayout('maintenance');
$PAGE->set_popup_notification_allowed(false);
if (empty($confirmupgrade)) {
$a->oldversion = "$CFG->release ($CFG->version)";
$a->newversion = "$release ($version)";
$strdatabasechecking = get_string('databasechecking', '', $a);
$a->oldversion = "$CFG->release ($CFG->version)";
$a->newversion = "$release ($version)";
$strdatabasechecking = get_string('databasechecking', '', $a);
if (empty($confirmupgrade)) {
$PAGE->set_title($stradministration);
$PAGE->set_heading($strdatabasechecking);
$PAGE->set_cacheable(false);
$output = $PAGE->get_renderer('core', 'admin');
echo $output->upgrade_confirm_page($a->newversion, $maturity);
die();
echo $OUTPUT->header();
if (isset($maturity)) {
// main version.php declares moodle code maturity
if ($maturity < MATURITY_STABLE) {
$maturitylevel = get_string('maturity'.$maturity, 'admin');
echo $OUTPUT->box(
$OUTPUT->container(get_string('maturitycorewarning', 'admin', $maturitylevel)) .
$OUTPUT->container($OUTPUT->doc_link('admin/versions', get_string('morehelp'))),
'generalbox maturitywarning');
}
}
$continueurl = new moodle_url('index.php', array('confirmupgrade' => 1));
$cancelurl = new moodle_url('index.php');
echo $OUTPUT->confirm(get_string('upgradesure', 'admin', $a->newversion), $continueurl, $cancelurl);
echo $OUTPUT->footer();
exit;
} else if (empty($confirmrelease)){
require_once($CFG->libdir.'/environmentlib.php');
list($envstatus, $environment_results) = check_moodle_environment($release, ENV_SELECT_RELEASE);
$strcurrentrelease = get_string('currentrelease');
$PAGE->navbar->add($strcurrentrelease);
$PAGE->set_title($strcurrentrelease);
$PAGE->set_heading($strcurrentrelease);
$PAGE->set_cacheable(false);
echo $OUTPUT->header();
echo $OUTPUT->heading("Moodle $release");
$releasenoteslink = get_string('releasenoteslink', 'admin', 'http://docs.moodle.org/dev/Releases');
$releasenoteslink = str_replace('target="_blank"', 'onclick="this.target=\'_blank\'"', $releasenoteslink); // extremely ugly validation hack
echo $OUTPUT->box($releasenoteslink);
$output = $PAGE->get_renderer('core', 'admin');
echo $output->upgrade_environment_page($release, $envstatus, $environment_results);
die();
require_once($CFG->libdir.'/environmentlib.php');
if (!check_moodle_environment($release, $environment_results, true, ENV_SELECT_RELEASE)) {
print_upgrade_reload('index.php?confirmupgrade=1');
} else {
echo $OUTPUT->notification(get_string('environmentok', 'admin'), 'notifysuccess');
if (empty($CFG->skiplangupgrade)) {
echo $OUTPUT->box_start('generalbox', 'notice');
print_string('langpackwillbeupdated', 'admin');
echo $OUTPUT->box_end();
}
echo $OUTPUT->continue_button('index.php?confirmupgrade=1&confirmrelease=1');
}
} else if (empty($confirmplugins)) {
echo $OUTPUT->footer();
die;
} elseif (empty($confirmplugins)) {
$strplugincheck = get_string('plugincheck');
$PAGE->navbar->add($strplugincheck);
$PAGE->set_title($strplugincheck);
$PAGE->set_heading($strplugincheck);
$PAGE->set_cacheable(false);
$output = $PAGE->get_renderer('core', 'admin');
echo $output->upgrade_plugin_check_page(plugin_manager::instance(), $version, $showallplugins,
new moodle_url('/admin/index.php', array('confirmupgrade' => 1, 'confirmrelease' => 1)),
new moodle_url('/admin/index.php', array('confirmupgrade'=>1, 'confirmrelease'=>1, 'confirmplugincheck'=>1)));
$pluginman = plugin_manager::instance();
echo $output->header();
echo $output->box_start('generalbox');
echo $output->container(get_string('pluginchecknotice', 'core_plugin'), 'generalbox', 'notice');
echo $output->plugins_check($pluginman->get_plugins(), array('full' => $showallplugins));
echo $output->box_end();
print_upgrade_reload('index.php?confirmupgrade=1&amp;confirmrelease=1');
$button = new single_button(new moodle_url('index.php', array('confirmupgrade'=>1, 'confirmrelease'=>1, 'confirmplugincheck'=>1)), get_string('upgradestart', 'admin'), 'get');
$button->class = 'continuebutton';
echo $output->render($button);
echo $output->footer();
die();
} else {
@@ -249,19 +290,26 @@ if (moodle_needs_upgrading()) {
if (!$PAGE->headerprinted) {
// means core upgrade or installation was not already done
if (!$confirmplugins) {
$strplugincheck = get_string('plugincheck');
$PAGE->set_pagelayout('maintenance');
$PAGE->set_popup_notification_allowed(false);
$strplugincheck = get_string('plugincheck');
$PAGE->navbar->add($strplugincheck);
$PAGE->set_title($strplugincheck);
$PAGE->set_heading($strplugincheck);
$PAGE->set_cacheable(false);
$output = $PAGE->get_renderer('core', 'admin');
echo $output->upgrade_plugin_check_page(plugin_manager::instance(), $version, $showallplugins,
new moodle_url('/admin/index.php'),
new moodle_url('/admin/index.php', array('confirmplugincheck'=>1)));
$pluginman = plugin_manager::instance();
echo $output->header();
echo $output->box_start('generalbox');
echo $output->container(get_string('pluginchecknotice', 'core_plugin'), 'generalbox', 'notice');
echo $output->plugins_check($pluginman->get_plugins(), array('full' => $showallplugins));
echo $output->box_end();
print_upgrade_reload('index.php');
$button = new single_button(new moodle_url('index.php', array('confirmplugincheck'=>1)), get_string('upgradestart', 'admin'), 'get');
$button->class = 'continuebutton';
echo $output->render($button);
echo $output->footer();
die();
}
}
@@ -297,8 +345,8 @@ if (during_initial_install()) {
}
}
// at this stage there can be only one admin unless more were added by install - users may change username, so do not rely on that
$adminuser = get_complete_user_data('id', reset(explode(',', $CFG->siteadmins)));
// at this stage there can be only one admin - users may change username, so do not rely on that
$adminuser = get_complete_user_data('id', $CFG->siteadmins);
if ($adminuser->password === 'adminsetuppending') {
// prevent installation hijacking
@@ -307,7 +355,7 @@ if (during_initial_install()) {
}
// login user and let him set password and admin details
$adminuser->newadminuser = 1;
complete_user_login($adminuser);
complete_user_login($adminuser, false);
redirect("$CFG->wwwroot/user/editadvanced.php?id=$adminuser->id"); // Edit thyself
} else {
@@ -356,14 +404,64 @@ if (any_new_admin_settings($adminroot)){
// Everything should now be set up, and the user is an admin
// Print default admin page with notifications.
$errorsdisplayed = defined('WARN_DISPLAY_ERRORS_ENABLED');
$lastcron = $DB->get_field_sql('SELECT MAX(lastcron) FROM {modules}');
$cronoverdue = ($lastcron < time() - 3600 * 24);
$dbproblems = $DB->diagnose();
$maintenancemode = !empty($CFG->maintenance_enabled);
admin_externalpage_setup('adminnotifications');
$output = $PAGE->get_renderer('core', 'admin');
echo $output->admin_notifications_page($maturity, $insecuredataroot, $errorsdisplayed,
$cronoverdue, $dbproblems, $maintenancemode);
echo $OUTPUT->header();
// Unstable code warning
if (isset($maturity)) {
if ($maturity < MATURITY_STABLE) {
$maturitylevel = get_string('maturity'.$maturity, 'admin');
echo $OUTPUT->box(
get_string('maturitycoreinfo', 'admin', $maturitylevel) . ' ' .
$OUTPUT->doc_link('admin/versions', get_string('morehelp')),
'generalbox adminwarning maturityinfo');
}
}
if ($insecuredataroot == INSECURE_DATAROOT_WARNING) {
echo $OUTPUT->box(get_string('datarootsecuritywarning', 'admin', $CFG->dataroot), 'generalbox adminwarning');
} else if ($insecuredataroot == INSECURE_DATAROOT_ERROR) {
echo $OUTPUT->box(get_string('datarootsecurityerror', 'admin', $CFG->dataroot), 'generalbox adminerror');
}
if (defined('WARN_DISPLAY_ERRORS_ENABLED')) {
echo $OUTPUT->box(get_string('displayerrorswarning', 'admin'), 'generalbox adminwarning');
}
// If no recently cron run
$lastcron = $DB->get_field_sql('SELECT MAX(lastcron) FROM {modules}');
if (time() - $lastcron > 3600 * 24) {
$helpbutton = $OUTPUT->help_icon('cron', 'admin');
echo $OUTPUT->box(get_string('cronwarning', 'admin').'&nbsp;'.$helpbutton, 'generalbox adminwarning');
}
// Hidden bloglevel upgrade
$showbloglevelupgrade = ($CFG->bloglevel == BLOG_COURSE_LEVEL || $CFG->bloglevel == BLOG_GROUP_LEVEL) && empty($CFG->bloglevel_upgrade_complete);
if ($showbloglevelupgrade) {
echo $OUTPUT->box(get_string('bloglevelupgradenotice', 'admin'), 'generalbox adminwarning');
}
// diagnose DB, especially the sloppy MyISAM tables
$diagnose = $DB->diagnose();
if ($diagnose !== NULL) {
echo $OUTPUT->box($diagnose, 'generalbox adminwarning');
}
// Alert if we are currently in maintenance mode
if (!empty($CFG->maintenance_enabled)) {
echo $OUTPUT->box(get_string('sitemaintenancewarning2', 'admin', "$CFG->wwwroot/$CFG->admin/settings.php?section=maintenancemode"), 'generalbox adminwarning');
}
//////////////////////////////////////////////////////////////////////////////////////////////////
//// IT IS ILLEGAL AND A VIOLATION OF THE GPL TO HIDE, REMOVE OR MODIFY THIS COPYRIGHT NOTICE ///
$copyrighttext = '<a href="http://moodle.org/">Moodle</a> '.
'<a href="http://docs.moodle.org/dev/Releases" title="'.$CFG->version.'">'.$CFG->release.'</a><br />'.
'Copyright &copy; 1999 onwards, Martin Dougiamas<br />'.
'and <a href="http://docs.moodle.org/dev/Credits">many other contributors</a>.<br />'.
'<a href="http://docs.moodle.org/dev/License">GNU Public License</a>';
echo $OUTPUT->box($copyrighttext, 'copyright');
//////////////////////////////////////////////////////////////////////////////////////////////////
echo $OUTPUT->footer();
+45
View File
@@ -0,0 +1,45 @@
<?php
require_once('../config.php');
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('toinodb');
$confirm = optional_param('confirm', 0, PARAM_BOOL);
require_login();
require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
echo $OUTPUT->header();
echo $OUTPUT->heading('Convert all MySQL tables from MYISAM to InnoDB');
if ($DB->get_dbfamily() != 'mysql') {
notice('This function is for MySQL databases only!', 'index.php');
}
if (data_submitted() and $confirm and confirm_sesskey()) {
echo $OUTPUT->notification('Please be patient and wait for this to complete...', 'notifysuccess');
if ($tables = $DB->get_tables()) {
$DB->set_debug(true);
foreach ($tables as $table) {
$fulltable = $DB->get_prefix().$table;
$DB->change_database_structure("ALTER TABLE $fulltable TYPE=INNODB");
}
$DB->set_debug(false);
}
echo $OUTPUT->notification('... done.', 'notifysuccess');
echo $OUTPUT->continue_button('index.php');
echo $OUTPUT->footer();
} else {
$optionsyes = array('confirm'=>'1', 'sesskey'=>sesskey());
$formcontinue = new single_button(new moodle_url('/admin/innodb.php', $optionsyes), get_string('yes'));
$formcancel = new single_button(new moodle_url('/admin/index.php'), get_string('no'), 'get');
echo $OUTPUT->confirm('Are you sure you want convert all your tables to the InnoDB format?', $formcontinue, $formcancel);
echo $OUTPUT->footer();
}
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -22,43 +23,30 @@
* and meta info.
* Locally, language packs are saved into $CFG->dataroot/lang/
*
* @package tool
* @subpackage langimport
* @copyright 2005 Yu Zhang
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package core
* @copyright 2005 Yu Zhang
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require(dirname(dirname(dirname(dirname(__FILE__)))) . '/config.php');
require_once(dirname(dirname(__FILE__)).'/config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/filelib.php');
require_once($CFG->libdir.'/componentlib.class.php');
admin_externalpage_setup('toollangimport');
if (empty($CFG->langotherroot)) {
throw new moodle_exception('missingcfglangotherroot', 'tool_langimport');
}
$mode = optional_param('mode', 0, PARAM_INT); // action
$pack = optional_param_array('pack', array(), PARAM_SAFEDIR); // pack to install
$uninstalllang = optional_param('uninstalllang', '', PARAM_LANG); // installed pack to uninstall
$confirm = optional_param('confirm', 0, PARAM_BOOL); // uninstallation confirmation
$purgecaches = optional_param('purgecaches', false, PARAM_BOOL); // explicit caches reset
if ($purgecaches) {
require_sesskey();
get_string_manager()->reset_caches();
redirect($PAGE->url);
}
admin_externalpage_setup('langimport');
if (!empty($CFG->skiplangupgrade)) {
echo $OUTPUT->header();
echo $OUTPUT->box(get_string('langimportdisabled', 'tool_langimport'));
echo $OUTPUT->single_button(new moodle_url($PAGE->url, array('purgecaches' => 1)), get_string('purgestringcaches', 'tool_langimport'));
echo $OUTPUT->box(get_string('langimportdisabled', 'admin'));
echo $OUTPUT->footer();
die;
}
$mode = optional_param('mode', 0, PARAM_INT); // action
$pack = optional_param('pack', array(), PARAM_SAFEDIR); // pack to install
$uninstalllang = optional_param('uninstalllang', '', PARAM_LANG); // installed pack to uninstall
$confirm = optional_param('confirm', 0, PARAM_BOOL); // uninstallation confirmation
define('INSTALLATION_OF_SELECTED_LANG', 2);
define('DELETION_OF_SELECTED_LANG', 4);
define('UPDATE_ALL_LANG', 5);
@@ -70,7 +58,7 @@ $notice_error = array();
if (($mode == INSTALLATION_OF_SELECTED_LANG) and confirm_sesskey() and !empty($pack)) {
set_time_limit(0);
make_temp_directory('');
make_upload_directory('temp');
make_upload_directory('lang');
$installer = new lang_installer($pack);
@@ -81,13 +69,13 @@ if (($mode == INSTALLATION_OF_SELECTED_LANG) and confirm_sesskey() and !empty($p
$a = new stdClass();
$a->url = $installer->lang_pack_url($langcode);
$a->dest = $CFG->dataroot.'/lang';
print_error('remotedownloaderror', 'error', 'index.php', $a);
print_error('remotedownloaderror', 'error', 'langimport.php', $a);
break;
case lang_installer::RESULT_INSTALLED:
$notice_ok[] = get_string('langpackinstalled', 'tool_langimport', $langcode);
$notice_ok[] = get_string('langpackinstalled', 'admin', $langcode);
break;
case lang_installer::RESULT_UPTODATE:
$notice_ok[] = get_string('langpackuptodate', 'tool_langimport', $langcode);
$notice_ok[] = get_string('langpackuptodate', 'admin', $langcode);
break;
}
}
@@ -99,9 +87,9 @@ if ($mode == DELETION_OF_SELECTED_LANG and !empty($uninstalllang)) {
} else if (!$confirm and confirm_sesskey()) {
echo $OUTPUT->header();
echo $OUTPUT->confirm(get_string('uninstallconfirm', 'tool_langimport', $uninstalllang),
'index.php?mode='.DELETION_OF_SELECTED_LANG.'&uninstalllang='.$uninstalllang.'&confirm=1',
'index.php');
echo $OUTPUT->confirm(get_string('uninstallconfirm', 'admin', $uninstalllang),
'langimport.php?mode='.DELETION_OF_SELECTED_LANG.'&uninstalllang='.$uninstalllang.'&confirm=1',
'langimport.php');
echo $OUTPUT->footer();
die;
@@ -117,7 +105,7 @@ if ($mode == DELETION_OF_SELECTED_LANG and !empty($uninstalllang)) {
$rm2 = remove_dir($dest2);
}
if ($rm1 or $rm2) {
$notice_ok[] = get_string('langpackremoved', 'tool_langimport');
$notice_ok[] = get_string('langpackremoved','admin');
} else { //nothing deleted, possibly due to permission error
$notice_error[] = 'An error has occurred, language pack is not completely uninstalled, please check file permissions';
}
@@ -142,7 +130,7 @@ if ($mode == UPDATE_ALL_LANG) {
$updateablelangs = array();
foreach ($currentlangs as $clang) {
if (!array_key_exists($clang, $md5array)) {
$notice_ok[] = get_string('langpackupdateskipped', 'tool_langimport', $clang);
$notice_ok[] = get_string('langpackupdateskipped', 'admin', $clang);
continue;
}
$dest1 = $CFG->dataroot.'/lang/'.$clang;
@@ -161,7 +149,7 @@ if ($mode == UPDATE_ALL_LANG) {
}
}
make_temp_directory('');
make_upload_directory('temp');
make_upload_directory('lang');
// clean-up currently installed versions of the packs
@@ -201,22 +189,22 @@ if ($mode == UPDATE_ALL_LANG) {
$a = new stdClass();
$a->url = $installer->lang_pack_url($langcode);
$a->dest = $CFG->dataroot.'/lang';
print_error('remotedownloaderror', 'error', 'index.php', $a);
print_error('remotedownloaderror', 'error', 'langimport.php', $a);
break;
case lang_installer::RESULT_INSTALLED:
$updated = true;
$notice_ok[] = get_string('langpackinstalled', 'tool_langimport', $langcode);
$notice_ok[] = get_string('langpackinstalled', 'admin', $langcode);
break;
case lang_installer::RESULT_UPTODATE:
$notice_ok[] = get_string('langpackuptodate', 'tool_langimport', $langcode);
$notice_ok[] = get_string('langpackuptodate', 'admin', $langcode);
break;
}
}
if ($updated) {
$notice_ok[] = get_string('langupdatecomplete', 'tool_langimport');
$notice_ok[] = get_string('langupdatecomplete','admin');
} else {
$notice_ok[] = get_string('nolangupdateneeded', 'tool_langimport');
$notice_ok[] = get_string('nolangupdateneeded','admin');
}
unset($installer);
@@ -224,7 +212,7 @@ if ($mode == UPDATE_ALL_LANG) {
get_string_manager()->reset_caches();
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('langimport', 'tool_langimport'));
echo $OUTPUT->heading(get_string('langimport', 'admin'));
$installedlangs = get_string_manager()->get_list_of_translations(true);
@@ -247,7 +235,7 @@ if ($availablelangs = $installer->get_remote_list_of_languages()) {
$remote = false;
$availablelangs = array();
echo $OUTPUT->box_start();
print_string('remotelangnotavailable', 'tool_langimport', $CFG->dataroot.'/lang/');
print_string('remotelangnotavailable', 'admin', $CFG->dataroot.'/lang/');
echo $OUTPUT->box_end();
}
@@ -272,7 +260,7 @@ if ($missingparents) {
$a->parent = $alang[2].' ('.$shortlang.')';
}
}
$info = get_string('missinglangparent', 'tool_langimport', $a);
$info = get_string('missinglangparent', 'admin', $a);
echo $OUTPUT->notification($info, 'notifyproblem');
}
}
@@ -283,22 +271,22 @@ echo html_writer::start_tag('table');
echo html_writer::start_tag('tr');
// list of installed languages
$url = new moodle_url('/admin/tool/langimport/index.php', array('mode' => DELETION_OF_SELECTED_LANG));
$url = new moodle_url('/admin/langimport.php', array('mode' => DELETION_OF_SELECTED_LANG));
echo html_writer::start_tag('td', array('valign' => 'top'));
echo html_writer::start_tag('form', array('id' => 'uninstallform', 'action' => $url->out(), 'method' => 'post'));
echo html_writer::start_tag('fieldset');
echo html_writer::label(get_string('installedlangs', 'tool_langimport'), 'menuuninstalllang');
echo html_writer::label(get_string('installedlangs','admin'), 'uninstalllang');
echo html_writer::empty_tag('br');
echo html_writer::select($installedlangs, 'uninstalllang', '', false, array('size' => 15));
echo html_writer::empty_tag('input', array('type' => 'hidden', 'name' => 'sesskey', 'value' => sesskey()));
echo html_writer::empty_tag('br');
echo html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('uninstall', 'tool_langimport')));
echo html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('uninstall','admin')));
echo html_writer::end_tag('fieldset');
echo html_writer::end_tag('form');
if ($remote) {
$url = new moodle_url('/admin/tool/langimport/index.php', array('mode' => UPDATE_ALL_LANG));
$url = new moodle_url('/admin/langimport.php', array('mode' => UPDATE_ALL_LANG));
echo html_writer::start_tag('form', array('id' => 'updateform', 'action' => $url->out(), 'method' => 'post'));
echo html_writer::tag('fieldset', html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('updatelangs','tool_langimport'))));
echo html_writer::tag('fieldset', html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('updatelangs','admin'))));
echo html_writer::end_tag('form');
}
echo html_writer::end_tag('td');
@@ -312,15 +300,15 @@ foreach ($availablelangs as $alang) {
}
if (!empty($options)) {
echo html_writer::start_tag('td', array('valign' => 'top'));
$url = new moodle_url('/admin/tool/langimport/index.php', array('mode' => INSTALLATION_OF_SELECTED_LANG));
$url = new moodle_url('/admin/langimport.php', array('mode' => INSTALLATION_OF_SELECTED_LANG));
echo html_writer::start_tag('form', array('id' => 'installform', 'action' => $url->out(), 'method' => 'post'));
echo html_writer::start_tag('fieldset');
echo html_writer::label(get_string('availablelangs','install'), 'menupack');
echo html_writer::label(get_string('availablelangs','install'), 'pack');
echo html_writer::empty_tag('br');
echo html_writer::select($options, 'pack[]', '', false, array('size' => 15, 'multiple' => 'multiple'));
echo html_writer::empty_tag('input', array('type' => 'hidden', 'name' => 'sesskey', 'value' => sesskey()));
echo html_writer::empty_tag('br');
echo html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('install','tool_langimport')));
echo html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('install','admin')));
echo html_writer::end_tag('fieldset');
echo html_writer::end_tag('form');
echo html_writer::end_tag('td');
+1 -12
View File
@@ -35,16 +35,5 @@ function admin_page_type_list($pagetype, $parentcontext, $currentcontext) {
'admin-*' => get_string('page-admin-x', 'pagetype'),
$pagetype => get_string('page-admin-current', 'pagetype')
);
// Add the missing * (any page) option for them. MDL-30340
// TODO: These pages are really 'pagetype-varying' - MDL-30564 -
// and some day we should stop behaving that way, so proper pagetypes
// can be specified for it (like course-category-* or so).
// Luckly... the option we are introducing '*' is independent
// of that varying behavior, so will work.
if ($pagetype == 'admin-course-category') {
$array += array(
'*' => get_string('page-x', 'pagetype')
);
}
return $array;
}
}
+2 -2
View File
@@ -33,7 +33,7 @@ require_once($CFG->libdir.'/tablelib.php');
admin_externalpage_setup('managelocalplugins');
$delete = optional_param('delete', '', PARAM_PLUGIN);
$delete = optional_param('delete', '', PARAM_SAFEDIR);
$confirm = optional_param('confirm', '', PARAM_BOOL);
/// If data submitted, then process and store.
@@ -89,7 +89,7 @@ foreach (get_plugin_list('local') as $plugin => $plugindir) {
}
$plugins[$plugin] = $strpluginname;
}
collatorlib::asort($plugins);
textlib_get_instance()->asort($plugins);
foreach ($plugins as $plugin => $name) {
$delete = new moodle_url($PAGE->url, array('delete' => $plugin, 'sesskey' => sesskey()));
+3 -4
View File
@@ -203,18 +203,17 @@ echo get_string('username') . ":\n";
if (!empty($formerror['username'])) {
echo '<span class="error"> * </span>';
}
echo html_writer::label(get_string('username'), 'menuusername', false, array('class' => 'accesshide'));
echo '<input id="menuusername" type="text" name="username" size="20" maxlength="100" />';
echo '<input type="text" name="username" size="20" maxlength="100" />';
// choose a remote host
echo " " . html_writer::label(get_string('remotehost', 'mnet'), 'menumnet_host_id') . ":\n";
echo " " . get_string('remotehost', 'mnet') . ":\n";
if (!empty($formerror['mnet_host_id'])) {
echo '<span class="error"> * </span>';
}
echo html_writer::select($mnethosts, 'mnet_host_id');
// choose an access level
echo " " . html_writer::label(get_string('accesslevel', 'mnet'), 'menuaccessctrl') . ":\n";
echo " " . get_string('accesslevel', 'mnet') . ":\n";
if (!empty($formerror['accessctrl'])) {
echo '<span class="error"> * </span>';
}
+16 -25
View File
@@ -38,10 +38,9 @@ class mnet_simple_host_form extends moodleform {
$mform = $this->_form;
$mform->addElement('text', 'wwwroot', get_string('hostname', 'mnet'), array('maxlength' => 255, 'size' => 50));
$mform->addElement('text', 'wwwroot', get_string('hostname', 'mnet'));
$mform->setType('wwwroot', PARAM_URL);
$mform->addRule('wwwroot', null, 'required', null, 'client');
$mform->addRule('wwwroot', get_string('maximumchars', '', 255), 'maxlength', 255, 'client');
$mform->addElement('select', 'applicationid', get_string('applicationtype', 'mnet'),
$DB->get_records_menu('mnet_application', array(), 'id,display_name'));
@@ -50,7 +49,7 @@ class mnet_simple_host_form extends moodleform {
$this->add_action_buttons(false, get_string('addhost', 'mnet'));
}
function validation($data, $files) {
function validation($data) {
global $DB;
$wwwroot = $data['wwwroot'];
@@ -82,13 +81,11 @@ class mnet_review_host_form extends moodleform {
$mform->addElement('hidden', 'applicationid');
$mform->addElement('hidden', 'oldpublickey');
$mform->addElement('text', 'name', get_string('site'), array('maxlength' => 80, 'size' => 50));
$mform->addElement('text', 'name', get_string('site'));
$mform->setType('name', PARAM_NOTAGS);
$mform->addRule('name', get_string('maximumchars', '', 80), 'maxlength', 80, 'client');
$mform->addElement('text', 'wwwroot', get_string('hostname', 'mnet'), array('maxlength' => 255, 'size' => 50));
$mform->addElement('text', 'wwwroot', get_string('hostname', 'mnet'));
$mform->setType('wwwroot', PARAM_URL);
$mform->addRule('wwwroot', get_string('maximumchars', '', 255), 'maxlength', 255, 'client');
$themes = array('' => get_string('forceno'));
foreach (array_keys(get_plugin_list('theme')) as $themename) {
@@ -98,7 +95,15 @@ class mnet_review_host_form extends moodleform {
$mform->addElement('textarea', 'public_key', get_string('publickey', 'mnet'), array('rows' => 17, 'cols' => 100, 'class' => 'smalltext'));
$mform->setType('public_key', PARAM_PEM);
$mform->addRule('public_key', get_string('required'), 'required');
if ($mnet_peer && !empty($mnet_peer->deleted)) {
$radioarray = array();
$radioarray[] = MoodleQuickForm::createElement('radio', 'deleted', '', get_string('yes'), 1);
$radioarray[] = MoodleQuickForm::createElement('radio', 'deleted', '', get_string('no'), 0);
$mform->addGroup($radioarray, 'radioar', get_string('deleted'), array(' '), false);
} else {
$mform->addElement('hidden', 'deleted');
}
// finished with form controls, now the static informational stuff
if ($mnet_peer && !empty($mnet_peer->bootstrapped)) {
@@ -135,35 +140,21 @@ class mnet_review_host_form extends moodleform {
}
}
$mform->addElement('static', 'certdetails', get_string('certdetails', 'mnet'),
$OUTPUT->box('<pre>' . $credstr . '</pre>', 'generalbox certdetails'));
}
if ($mnet_peer && !empty($mnet_peer->deleted)) {
$radioarray = array();
$radioarray[] = MoodleQuickForm::createElement('static', 'deletedinfo', '',
$OUTPUT->container(get_string('deletedhostinfo', 'mnet'), 'deletedhostinfo'));
$radioarray[] = MoodleQuickForm::createElement('radio', 'deleted', '', get_string('yes'), 1);
$radioarray[] = MoodleQuickForm::createElement('radio', 'deleted', '', get_string('no'), 0);
$mform->addGroup($radioarray, 'radioar', get_string('deleted'), array(' ', ' '), false);
} else {
$mform->addElement('hidden', 'deleted');
$mform->addElement('static', 'certdetails', get_string('certdetails', 'mnet'), $OUTPUT->box('<pre>' . $credstr . '</pre>'));
}
// finished with static stuff, print save button
$this->add_action_buttons(false);
}
function validation($data, $files) {
function validation($data) {
$errors = array();
if ($data['oldpublickey'] == $data['public_key']) {
return;
}
$mnet_peer = new mnet_peer(); // idiotic api
$mnet_peer->wwwroot = $data['wwwroot']; // just hard-set this rather than bootstrap the object
if (empty($data['public_key'])) {
$errors['public_key'] = get_string('publickeyrequired', 'mnet');
} else if (!$credentials = $mnet_peer->check_credentials($data['public_key'])) {
if (!$credentials = $mnet_peer->check_credentials($data['public_key'])) {
$errmsg = '';
foreach ($mnet_peer->error as $err) {
$errmsg .= $err['code'] . ': ' . $err['text'].'<br />';
+5 -20
View File
@@ -30,7 +30,7 @@
require_once(dirname(dirname(dirname(__FILE__))) . '/config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->dirroot.'/mnet/lib.php');
require_once($CFG->dirroot.'/'.$CFG->admin.'/mnet/peer_forms.php');
require_once($CFG->dirroot.'/admin/mnet/peer_forms.php');
require_login();
@@ -190,7 +190,7 @@ if ($formdata = $reviewform->get_data()) {
// normal flow - just display all hosts with links
echo $OUTPUT->header();
$hosts = mnet_get_hosts(true);
$hosts = mnet_get_hosts();
// print the table to display the register all hosts setting
$table = new html_table();
@@ -231,43 +231,28 @@ $table->head = array(
);
$table->wrap = array('nowrap', 'nowrap', 'nowrap', 'nowrap');
$baseurl = new moodle_url('/admin/mnet/peers.php');
$deleted = array();
foreach($hosts as $host) {
$hosturl = new moodle_url($baseurl, array('hostid' => $host->id));
if (trim($host->name) === '') {
// should not happen but...
$host->name = '???';
}
// process all hosts first since it's the easiest
if ($host->id == $CFG->mnet_all_hosts_id) {
$table->data[] = array(html_writer::link($hosturl, get_string('allhosts', 'core_mnet')), '*', '', '');
continue;
}
// populate the list of deleted hosts
if ($host->deleted) {
$deleted[] = html_writer::link($hosturl, $host->name);
$table->data[] = array(html_writer::tag('a', $host->name, array('href'=>$hosturl)), '', '', '');
continue;
}
if ($host->last_connect_time == 0) {
$last_connect = get_string('never');
} else {
$last_connect = userdate($host->last_connect_time, get_string('strftimedatetime', 'core_langconfig'));
$last_connect = date('H:i:s d/m/Y', $host->last_connect_time);
}
$table->data[] = array(
html_writer::link($hosturl, $host->name),
html_writer::link($host->wwwroot, $host->wwwroot),
html_writer::link($hosturl, $host->wwwroot),
$last_connect,
$OUTPUT->single_button(new moodle_url('/admin/mnet/delete.php', array('hostid' => $host->id)), get_string('delete'))
);
}
echo html_writer::table($table);
if ($deleted) {
echo $OUTPUT->box(get_string('deletedhosts', 'core_mnet', join(', ', $deleted)), 'deletedhosts');
}
// finally, print the initial form to add a new host
echo $OUTPUT->box_start();
echo $OUTPUT->heading(get_string('addnewhost', 'mnet'), 3);
+2 -11
View File
@@ -39,15 +39,6 @@ class mnet_profile_form extends moodleform {
global $CFG;
$mform =& $this->_form;
$mnetprofileimportfields = '';
if (isset($CFG->mnetprofileimportfields)) {
$mnetprofileimportfields = str_replace(',', ', ', $CFG->mnetprofileimportfields);
}
$mnetprofileexportfields = '';
if (isset($CFG->mnetprofileexportfields)) {
$mnetprofileexportfields = str_replace(',', ', ', $CFG->mnetprofileexportfields);
}
$mform->addElement('hidden', 'hostid', $this->_customdata['hostid']);
$fields = mnet_profile_field_options();
@@ -58,7 +49,7 @@ class mnet_profile_form extends moodleform {
$select = $mform->addElement('select', 'importfields', get_string('importfields', 'mnet'), $fields['optional']);
$select->setMultiple(true);
$mform->addElement('checkbox', 'importdefault', get_string('leavedefault', 'mnet'), $mnetprofileimportfields);
$mform->addElement('checkbox', 'importdefault', get_string('leavedefault', 'mnet'), str_replace(',', ', ', $CFG->mnetprofileimportfields));
// Fields to export ----------------------------------------------------
$mform->addElement('header', 'export', get_string('exportfields', 'mnet'));
@@ -66,7 +57,7 @@ class mnet_profile_form extends moodleform {
$select = $mform->addElement('select', 'exportfields', get_string('exportfields', 'mnet'), $fields['optional']);
$select->setMultiple(true);
$mform->addElement('checkbox', 'exportdefault', get_string('leavedefault', 'mnet'), $mnetprofileexportfields);
$mform->addElement('checkbox', 'exportdefault', get_string('leavedefault', 'mnet'), str_replace(',', ', ', $CFG->mnetprofileexportfields));
$this->add_action_buttons();
}
+1 -1
View File
@@ -36,7 +36,7 @@ class mnet_services_form extends moodleform {
function definition() {
$mform =& $this->_form;
$mnet_peer =& $this->_customdata['peer'];
$myservices = mnet_get_service_info($mnet_peer);
$myservices =& mnet_get_service_info($mnet_peer);
$mform->addElement('hidden', 'hostid', $mnet_peer->id);
+1 -1
View File
@@ -38,7 +38,7 @@ $strmnetlog = get_string('mnetlog', 'mnet');
$strmnetedithost = get_string('reviewhostdetails', 'mnet');
$logurl = $CFG->wwwroot.
'/report/log/index.php?chooselog=1&amp;showusers=1&amp;showcourses=1&amp;host_course='.$mnet_peer->id.
'/course/report/log/index.php?chooselog=1&amp;showusers=1&amp;showcourses=1&amp;host_course='.$mnet_peer->id.
'%2F1&amp;user='.'0'.
'&amp;date=0'.
'&amp;modid=&amp;modaction=0&amp;logformat=showashtml';
+3 -4
View File
@@ -11,9 +11,9 @@
admin_externalpage_setup('managemodules');
$show = optional_param('show', '', PARAM_PLUGIN);
$hide = optional_param('hide', '', PARAM_PLUGIN);
$delete = optional_param('delete', '', PARAM_PLUGIN);
$show = optional_param('show', '', PARAM_SAFEDIR);
$hide = optional_param('hide', '', PARAM_SAFEDIR);
$delete = optional_param('delete', '', PARAM_SAFEDIR);
$confirm = optional_param('confirm', '', PARAM_BOOL);
@@ -92,7 +92,6 @@
}
uninstall_plugin('mod', $delete);
$a = new stdClass();
$a->module = $strmodulename;
$a->directory = "$CFG->dirroot/mod/$delete";
echo $OUTPUT->notification(get_string("moduledeletefiles", "", $a), 'notifysuccess');
@@ -1,51 +1,26 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Search and replace strings throughout all texts in the whole database.
*
* Unfortunately it was a bad idea to use spans for multilang because it
* can not support nesting. Hopefully this will get thrown away soon....
*
* @package tool
* @subpackage multilangupgrade
* @copyright 2006 Petr Skoda (http://skodak.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/// Search and replace strings throughout all texts in the whole database
define('NO_OUTPUT_BUFFERING', true);
require('../../../config.php');
require_once('../config.php');
require_once($CFG->dirroot.'/course/lib.php');
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('toolmultilangupgrade');
admin_externalpage_setup('multilangupgrade');
$go = optional_param('go', 0, PARAM_BOOL);
###################################################################
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('pluginname', 'tool_multilangupgrade'));
echo $OUTPUT->heading(get_string('multilangupgrade', 'admin'));
$strmultilangupgrade = get_String('multilangupgradeinfo', 'tool_multilangupgrade');
$strmultilangupgrade = get_String('multilangupgradeinfo', 'admin');
if (!$go or !data_submitted() or !confirm_sesskey()) { /// Print a form
$optionsyes = array('go'=>1, 'sesskey'=>sesskey());
echo $OUTPUT->confirm($strmultilangupgrade, new moodle_url('/admin/tool/multilangupgrade/index.php', $optionsyes), new moodle_url('/admin/'));
echo $OUTPUT->confirm($strmultilangupgrade, new moodle_url('multilangupgrade.php', $optionsyes), 'index.php');
echo $OUTPUT->footer();
die;
}
@@ -63,7 +38,7 @@ echo $OUTPUT->box_start();
echo '<strong>Progress:</strong>';
$i = 0;
$skiptables = array('config', 'block_instances', 'sessions'); // we can not process tables with serialised data here
$skiptables = array('config', 'user_students', 'user_teachers');
foreach ($tables as $table) {
if (strpos($table,'pma') === 0) { // Not our tables
@@ -124,7 +99,7 @@ echo $OUTPUT->notification('Rebuilding course cache...', 'notifysuccess');
rebuild_course_cache();
echo $OUTPUT->notification('...finished', 'notifysuccess');
echo $OUTPUT->continue_button(new moodle_url('/admin/'));
echo $OUTPUT->continue_button('index.php');
echo $OUTPUT->footer();
die;
+8 -1
View File
@@ -31,4 +31,11 @@ require_once($CFG->libdir . '/pluginlib.php');
require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
admin_externalpage_setup('pluginsoverview');
$output = $PAGE->get_renderer('core', 'admin');
echo $output->plugin_management_page(plugin_manager::instance());
$pluginman = plugin_manager::instance();
echo $output->header();
echo $output->heading(get_string('pluginsoverview', 'core_admin'));
echo $output->box_start('generalbox');
echo $output->plugins_control_panel($pluginman->get_plugins());
echo $output->box_end();
echo $output->footer();
-2
View File
@@ -197,7 +197,6 @@ if (($action == 'edit') || ($action == 'new')) {
$currentaction = 'hide';
}
$select = new single_select(portfolio_action_url($pluginid, 'pf'), 'action', $actionchoicesforexisting, $currentaction, null, 'applyto' . $pluginid);
$select->set_label(get_string('action'), array('class' => 'accesshide'));
$table->data[] = array($pluginname, $OUTPUT->render($select), $settings);
}
if (!in_array($plugin, $usedplugins)) {
@@ -219,7 +218,6 @@ if (($action == 'edit') || ($action == 'new')) {
$insaneplugins[] = $p;
} else {
$select = new single_select(portfolio_action_url($p, 'pf'), 'action', $actionchoicesfornew, 'delete', null, 'applyto' . $p);
$select->set_label(get_string('action'), array('class' => 'accesshide'));
$table->data[] = array(portfolio_static_function($p, 'get_name'), $OUTPUT->render($select), '');
}
}
+21 -21
View File
@@ -28,7 +28,6 @@
require_once(dirname(__FILE__) . '/../config.php');
require_once($CFG->libdir . '/questionlib.php');
require_once($CFG->libdir . '/adminlib.php');
require_once($CFG->libdir . '/pluginlib.php');
require_once($CFG->libdir . '/tablelib.php');
// Check permissions.
@@ -40,7 +39,6 @@ admin_externalpage_setup('manageqbehaviours');
$thispageurl = new moodle_url('/admin/qbehaviours.php');
$behaviours = get_plugin_list('qbehaviour');
$pluginmanager = plugin_manager::instance();
// Get some data we will need - question counts and which types are needed.
$counts = $DB->get_records_sql_menu("
@@ -52,16 +50,20 @@ foreach ($behaviours as $behaviour => $notused) {
if (!array_key_exists($behaviour, $counts)) {
$counts[$behaviour] = 0;
}
$needed[$behaviour] = ($counts[$behaviour] > 0) ||
$pluginmanager->other_plugins_that_require('qbehaviour_' . $behaviour);
$needed[$behaviour] = $counts[$behaviour] > 0;
$archetypal[$behaviour] = question_engine::is_behaviour_archetypal($behaviour);
}
foreach ($behaviours as $behaviour => $notused) {
foreach (question_engine::get_behaviour_required_behaviours($behaviour) as $reqbehaviour) {
$needed[$reqbehaviour] = true;
}
}
foreach ($counts as $behaviour => $count) {
if (!array_key_exists($behaviour, $behaviours)) {
$counts['missing'] += $count;
$counts['missingtype'] += $count;
}
}
$needed['missing'] = true;
// Work of the correct sort order.
$config = get_config('question');
@@ -83,7 +85,7 @@ if (!empty($config->disabledbehaviours)) {
// Process actions ============================================================
// Disable.
if (($disable = optional_param('disable', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (($disable = optional_param('disable', '', PARAM_SAFEDIR)) && confirm_sesskey()) {
if (!isset($behaviours[$disable])) {
print_error('unknownbehaviour', 'question', $thispageurl, $disable);
}
@@ -96,7 +98,7 @@ if (($disable = optional_param('disable', '', PARAM_PLUGIN)) && confirm_sesskey(
}
// Enable.
if (($enable = optional_param('enable', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (($enable = optional_param('enable', '', PARAM_SAFEDIR)) && confirm_sesskey()) {
if (!isset($behaviours[$enable])) {
print_error('unknownbehaviour', 'question', $thispageurl, $enable);
}
@@ -113,7 +115,7 @@ if (($enable = optional_param('enable', '', PARAM_PLUGIN)) && confirm_sesskey())
}
// Move up in order.
if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (($up = optional_param('up', '', PARAM_SAFEDIR)) && confirm_sesskey()) {
if (!isset($behaviours[$up])) {
print_error('unknownbehaviour', 'question', $thispageurl, $up);
}
@@ -125,7 +127,7 @@ if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) {
}
// Move down in order.
if (($down = optional_param('down', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (($down = optional_param('down', '', PARAM_SAFEDIR)) && confirm_sesskey()) {
if (!isset($behaviours[$down])) {
print_error('unknownbehaviour', 'question', $thispageurl, $down);
}
@@ -137,7 +139,7 @@ if (($down = optional_param('down', '', PARAM_PLUGIN)) && confirm_sesskey()) {
}
// Delete.
if (($delete = optional_param('delete', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (($delete = optional_param('delete', '', PARAM_SAFEDIR)) && confirm_sesskey()) {
// Check it is OK to delete this question type.
if ($delete == 'missing') {
print_error('cannotdeletemissingbehaviour', 'question', $thispageurl);
@@ -179,7 +181,7 @@ if (($delete = optional_param('delete', '', PARAM_PLUGIN)) && confirm_sesskey())
unset($disabledbehaviours[$key]);
set_config('disabledbehaviours', implode(',', $disabledbehaviours), 'question');
}
$behaviourorder = array_keys($sortedbehaviours);
$behaviourorder = explode(',', $config->behavioursortorder);
if (($key = array_search($delete, $behaviourorder)) !== false) {
unset($behaviourorder[$key]);
set_config('behavioursortorder', implode(',', $behaviourorder), 'question');
@@ -191,7 +193,6 @@ if (($delete = optional_param('delete', '', PARAM_PLUGIN)) && confirm_sesskey())
// Remove event handlers and dequeue pending events
events_uninstall('qbehaviour_' . $delete);
$a = new stdClass();
$a->behaviour = $behaviourname;
$a->directory = get_plugin_directory('qbehaviour', $delete);
echo $OUTPUT->box(get_string('qbehaviourdeletefiles', 'question', $a), 'generalbox', 'notice');
@@ -237,19 +238,18 @@ foreach ($sortedbehaviours as $behaviour => $behaviourname) {
}
// Other question types required by this one.
$plugin = $pluginmanager->get_plugin_info('qbehaviour_' . $behaviour);
$required = $plugin->get_other_required_plugins();
if (!empty($required)) {
$strrequired = array();
foreach ($required as $component => $notused) {
$strrequired[] = $pluginmanager->plugin_name($component);
$requiredbehaviours = question_engine::get_behaviour_required_behaviours($behaviour);
if (!empty($requiredbehaviours)) {
$strrequiredbehaviours = array();
foreach ($requiredbehaviours as $required) {
$strrequiredbehaviours[] = $sortedbehaviours[$required];
}
$row[] = implode(', ', $strrequired);
$row[] = implode(', ', $strrequiredbehaviours);
} else {
$row[] = '';
}
// Are people allowed to select this behaviour?
// Are people allowed to create new questions of this type?
$rowclass = '';
if ($archetypal[$behaviour]) {
$enabled = array_search($behaviour, $disabledbehaviours) === false;
+15 -15
View File
@@ -28,7 +28,6 @@
require_once(dirname(__FILE__) . '/../config.php');
require_once($CFG->libdir . '/questionlib.php');
require_once($CFG->libdir . '/adminlib.php');
require_once($CFG->libdir . '/pluginlib.php');
require_once($CFG->libdir . '/tablelib.php');
// Check permissions.
@@ -41,7 +40,6 @@ admin_externalpage_setup('manageqtypes');
$thispageurl = new moodle_url('/admin/qtypes.php');
$qtypes = question_bank::get_all_qtypes();
$pluginmanager = plugin_manager::instance();
// Get some data we will need - question counts and which types are needed.
$counts = $DB->get_records_sql("
@@ -54,11 +52,15 @@ foreach ($qtypes as $qtypename => $qtype) {
$counts[$qtypename]->numquestions = 0;
$counts[$qtypename]->numhidden = 0;
}
$needed[$qtypename] = $counts[$qtypename]->numquestions > 0 ||
$pluginmanager->other_plugins_that_require($qtype->plugin_name());
$needed[$qtypename] = $counts[$qtypename]->numquestions > 0;
$counts[$qtypename]->numquestions -= $counts[$qtypename]->numhidden;
}
$needed['missingtype'] = true; // The system needs the missing question type.
foreach ($qtypes as $qtypename => $qtype) {
foreach ($qtype->requires_qtypes() as $reqtype) {
$needed[$reqtype] = true;
}
}
foreach ($counts as $qtypename => $count) {
if (!isset($qtypes[$qtypename])) {
$counts['missingtype']->numquestions += $count->numquestions - $count->numhidden;
@@ -77,7 +79,7 @@ $sortedqtypes = question_bank::sort_qtype_array($sortedqtypes, $config);
// Process actions ============================================================
// Disable.
if (($disable = optional_param('disable', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (($disable = optional_param('disable', '', PARAM_SAFEDIR)) && confirm_sesskey()) {
if (!isset($qtypes[$disable])) {
print_error('unknownquestiontype', 'question', $thispageurl, $disable);
}
@@ -87,7 +89,7 @@ if (($disable = optional_param('disable', '', PARAM_PLUGIN)) && confirm_sesskey(
}
// Enable.
if (($enable = optional_param('enable', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (($enable = optional_param('enable', '', PARAM_SAFEDIR)) && confirm_sesskey()) {
if (!isset($qtypes[$enable])) {
print_error('unknownquestiontype', 'question', $thispageurl, $enable);
}
@@ -101,7 +103,7 @@ if (($enable = optional_param('enable', '', PARAM_PLUGIN)) && confirm_sesskey())
}
// Move up in order.
if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (($up = optional_param('up', '', PARAM_SAFEDIR)) && confirm_sesskey()) {
if (!isset($qtypes[$up])) {
print_error('unknownquestiontype', 'question', $thispageurl, $up);
}
@@ -112,7 +114,7 @@ if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) {
}
// Move down in order.
if (($down = optional_param('down', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (($down = optional_param('down', '', PARAM_SAFEDIR)) && confirm_sesskey()) {
if (!isset($qtypes[$down])) {
print_error('unknownquestiontype', 'question', $thispageurl, $down);
}
@@ -123,7 +125,7 @@ if (($down = optional_param('down', '', PARAM_PLUGIN)) && confirm_sesskey()) {
}
// Delete.
if (($delete = optional_param('delete', '', PARAM_PLUGIN)) && confirm_sesskey()) {
if (($delete = optional_param('delete', '', PARAM_SAFEDIR)) && confirm_sesskey()) {
// Check it is OK to delete this question type.
if ($delete == 'missingtype') {
print_error('cannotdeletemissingqtype', 'question', $thispageurl);
@@ -171,7 +173,6 @@ if (($delete = optional_param('delete', '', PARAM_PLUGIN)) && confirm_sesskey())
// Remove event handlers and dequeue pending events
events_uninstall('qtype_' . $delete);
$a = new stdClass();
$a->qtype = $qtypename;
$a->directory = $qtypes[$delete]->plugin_dir();
echo $OUTPUT->box(get_string('qtypedeletefiles', 'question', $a), 'generalbox', 'notice');
@@ -218,7 +219,7 @@ foreach ($sortedqtypes as $qtypename => $localname) {
$strcount = $counts[$qtypename]->numquestions;
}
if ($canviewreports) {
$row[] = html_writer::link(new moodle_url('/report/questioninstances/index.php',
$row[] = html_writer::link(new moodle_url('/admin/report/questioninstances/index.php',
array('qtype' => $qtypename)), $strcount, array('title' => get_string('showdetails', 'admin')));
} else {
$strcount;
@@ -236,12 +237,11 @@ foreach ($sortedqtypes as $qtypename => $localname) {
}
// Other question types required by this one.
$plugin = $pluginmanager->get_plugin_info($qtype->plugin_name());
$requiredtypes = $plugin->get_other_required_plugins();
$requiredtypes = $qtype->requires_qtypes();
$strtypes = array();
if (!empty($requiredtypes)) {
foreach ($requiredtypes as $required => $notused) {
$strtypes[] = $pluginmanager->plugin_name($required);
foreach ($requiredtypes as $required) {
$strtypes[] = $qtypes[$required]->local_name();
}
$row[] = implode(', ', $strtypes);
} else {
+3 -3
View File
@@ -136,8 +136,8 @@ class hub_selector_form extends moodleform {
$options = array();
foreach ($hubs as $hub) {
//to not display a name longer than 100 character (too big)
if (textlib::strlen($hub['name']) > 100) {
$hubname = textlib::substr($hub['name'], 0, 100);
if (strlen($hub['name']) > 100) {
$hubname = substr($hub['name'], 0, 100);
$hubname = $hubname . "...";
} else {
$hubname = $hub['name'];
@@ -283,7 +283,7 @@ class site_registration_form extends moodleform {
$mform->addHelpButton('urlstring', 'siteurl', 'hub');
$languages = get_string_manager()->get_list_of_languages();
collatorlib::asort($languages);
textlib_get_instance()->asort($languages);
$mform->addElement('select', 'language', get_string('sitelang', 'hub'),
$languages);
$mform->setType('language', PARAM_ALPHANUMEXT);
+11 -643
View File
@@ -32,394 +32,6 @@ require_once($CFG->libdir . '/pluginlib.php');
*/
class core_admin_renderer extends plugin_renderer_base {
/**
* Display the 'Do you acknowledge the terms of the GPL' page. The first page
* during install.
* @return string HTML to output.
*/
public function install_licence_page() {
global $CFG;
$output = '';
$copyrightnotice = text_to_html(get_string('gpl3'));
$copyrightnotice = str_replace('target="_blank"', 'onclick="this.target=\'_blank\'"', $copyrightnotice); // extremely ugly validation hack
$continue = new single_button(new moodle_url('/admin/index.php', array('lang'=>$CFG->lang, 'agreelicense'=>1)), get_string('continue'), 'get');
$output .= $this->header();
$output .= $this->heading('<a href="http://moodle.org">Moodle</a> - Modular Object-Oriented Dynamic Learning Environment');
$output .= $this->heading(get_string('copyrightnotice'));
$output .= $this->box($copyrightnotice, 'copyrightnotice');
$output .= html_writer::empty_tag('br');
$output .= $this->confirm(get_string('doyouagree'), $continue, "http://docs.moodle.org/dev/License");
$output .= $this->footer();
return $output;
}
/**
* Display the 'environment check' page that is displayed during install.
* @param int $maturity
* @param boolean $envstatus final result of the check (true/false)
* @param array $environment_results array of results gathered
* @param string $release moodle release
* @return string HTML to output.
*/
public function install_environment_page($maturity, $envstatus, $environment_results, $release) {
global $CFG;
$output = '';
$output .= $this->header();
$output .= $this->maturity_warning($maturity);
$output .= $this->heading("Moodle $release");
$output .= $this->release_notes_link();
$output .= $this->environment_check_table($envstatus, $environment_results);
if (!$envstatus) {
$output .= $this->upgrade_reload(new moodle_url('/admin/index.php', array('agreelicense' => 1, 'lang' => $CFG->lang)));
} else {
$output .= $this->notification(get_string('environmentok', 'admin'), 'notifysuccess');
$output .= $this->continue_button(new moodle_url('/admin/index.php', array('agreelicense'=>1, 'confirmrelease'=>1, 'lang'=>$CFG->lang)));
}
$output .= $this->footer();
return $output;
}
/**
* Display the 'You are about to upgrade Moodle' page. The first page
* during upgrade.
* @param string $strnewversion
* @param int $maturity
* @return string HTML to output.
*/
public function upgrade_confirm_page($strnewversion, $maturity) {
$output = '';
$continueurl = new moodle_url('index.php', array('confirmupgrade' => 1));
$cancelurl = new moodle_url('index.php');
$output .= $this->header();
$output .= $this->maturity_warning($maturity);
$output .= $this->confirm(get_string('upgradesure', 'admin', $strnewversion), $continueurl, $cancelurl);
$output .= $this->footer();
return $output;
}
/**
* Display the environment page during the upgrade process.
* @param string $release
* @param boolean $envstatus final result of env check (true/false)
* @param array $environment_results array of results gathered
* @return string HTML to output.
*/
public function upgrade_environment_page($release, $envstatus, $environment_results) {
global $CFG;
$output = '';
$output .= $this->header();
$output .= $this->heading("Moodle $release");
$output .= $this->release_notes_link();
$output .= $this->environment_check_table($envstatus, $environment_results);
if (!$envstatus) {
$output .= $this->upgrade_reload(new moodle_url('/admin/index.php'), array('confirmupgrade' => 1));
} else {
$output .= $this->notification(get_string('environmentok', 'admin'), 'notifysuccess');
if (empty($CFG->skiplangupgrade) and current_language() !== 'en') {
$output .= $this->box(get_string('langpackwillbeupdated', 'admin'), 'generalbox', 'notice');
}
$output .= $this->continue_button(new moodle_url('/admin/index.php', array('confirmupgrade' => 1, 'confirmrelease' => 1)));
}
$output .= $this->footer();
return $output;
}
/**
* Display the upgrade page that lists all the plugins that require attention.
* @param plugin_manager $pluginman provides information about the plugins.
* @param int $version the version of the Moodle code from version.php.
* @param bool $showallplugins
* @param moodle_url $reloadurl
* @param moodle_url $continueurl
* @return string HTML to output.
*/
public function upgrade_plugin_check_page(plugin_manager $pluginman, $version, $showallplugins, $reloadurl, $continueurl) {
$output = '';
$output .= $this->header();
$output .= $this->box_start('generalbox');
$output .= $this->container(get_string('pluginchecknotice', 'core_plugin'), 'generalbox', 'notice');
$output .= $this->plugins_check_table($pluginman, $version, array('full' => $showallplugins));
$output .= $this->box_end();
$output .= $this->upgrade_reload($reloadurl);
if ($pluginman->all_plugins_ok($version)) {
$button = new single_button($continueurl, get_string('upgradestart', 'admin'), 'get');
$button->class = 'continuebutton';
$output .= $this->render($button);
} else {
$output .= $this->box(get_string('pluginschecktodo', 'admin'), 'environmentbox errorbox');
}
$output .= $this->footer();
return $output;
}
/**
* Display the admin notifications page.
* @param int $maturity
* @param bool $insecuredataroot warn dataroot is invalid
* @param bool $errorsdisplayed warn invalid dispaly error setting
* @param bool $cronoverdue warn cron not running
* @param bool $dbproblems warn db has problems
* @param bool $maintenancemode warn in maintenance mode
* @return string HTML to output.
*/
public function admin_notifications_page($maturity, $insecuredataroot, $errorsdisplayed,
$cronoverdue, $dbproblems, $maintenancemode) {
$output = '';
$output .= $this->header();
$output .= $this->maturity_info($maturity);
$output .= $this->insecure_dataroot_warning($insecuredataroot);
$output .= $this->display_errors_warning($errorsdisplayed);
$output .= $this->cron_overdue_warning($cronoverdue);
$output .= $this->db_problems($dbproblems);
$output .= $this->maintenance_mode_warning($maintenancemode);
//////////////////////////////////////////////////////////////////////////////////////////////////
//// IT IS ILLEGAL AND A VIOLATION OF THE GPL TO HIDE, REMOVE OR MODIFY THIS COPYRIGHT NOTICE ///
$output .= $this->moodle_copyright();
//////////////////////////////////////////////////////////////////////////////////////////////////
$output .= $this->footer();
return $output;
}
/**
* Display the plugin management page (admin/plugins.php).
* @param plugin_manager $pluginman
* @return string HTML to output.
*/
public function plugin_management_page(plugin_manager $pluginman) {
$output = '';
$output .= $this->header();
$output .= $this->heading(get_string('pluginsoverview', 'core_admin'));
$output .= $this->box_start('generalbox');
$output .= $this->plugins_control_panel($pluginman);
$output .= $this->box_end();
$output .= $this->footer();
return $output;
}
/**
* Display the plugin management page (admin/environment.php).
* @param array $versions
* @param string $version
* @param boolean $envstatus final result of env check (true/false)
* @param array $environment_results array of results gathered
* @return string HTML to output.
*/
public function environment_check_page($versions, $version, $envstatus, $environment_results) {
$output = '';
$output .= $this->header();
// Print the component download link
$output .= html_writer::tag('div', html_writer::link(
new moodle_url('/admin/environment.php', array('action' => 'updatecomponent', 'sesskey' => sesskey())),
get_string('updatecomponent', 'admin')),
array('class' => 'reportlink'));
// Heading.
$output .= $this->heading(get_string('environment', 'admin'));
// Box with info and a menu to choose the version.
$output .= $this->box_start();
$output .= html_writer::tag('div', get_string('adminhelpenvironment'));
$select = new single_select(new moodle_url('/admin/environment.php'), 'version', $versions, $version, null);
$select->label = get_string('moodleversion');
$output .= $this->render($select);
$output .= $this->box_end();
// The results
$output .= $this->environment_check_table($envstatus, $environment_results);
$output .= $this->footer();
return $output;
}
/**
* Output a warning message, of the type that appears on the admin notifications page.
* @param string $message the message to display.
* @param string $type type class
* @return string HTML to output.
*/
protected function warning($message, $type = 'warning') {
return $this->box($message, 'generalbox admin' . $type);
}
/**
* Render an appropriate message if dataroot is insecure.
* @param bool $insecuredataroot
* @return string HTML to output.
*/
protected function insecure_dataroot_warning($insecuredataroot) {
global $CFG;
if ($insecuredataroot == INSECURE_DATAROOT_WARNING) {
return $this->warning(get_string('datarootsecuritywarning', 'admin', $CFG->dataroot));
} else if ($insecuredataroot == INSECURE_DATAROOT_ERROR) {
return $this->warning(get_string('datarootsecurityerror', 'admin', $CFG->dataroot), 'error');
} else {
return '';
}
}
/**
* Render an appropriate message if dataroot is insecure.
* @param bool $errorsdisplayed
* @return string HTML to output.
*/
protected function display_errors_warning($errorsdisplayed) {
if (!$errorsdisplayed) {
return '';
}
return $this->warning(get_string('displayerrorswarning', 'admin'));
}
/**
* Render an appropriate message if cron has not been run recently.
* @param bool $cronoverdue
* @return string HTML to output.
*/
public function cron_overdue_warning($cronoverdue) {
if (!$cronoverdue) {
return '';
}
return $this->warning(get_string('cronwarning', 'admin') . '&nbsp;' .
$this->help_icon('cron', 'admin'));
}
/**
* Render an appropriate message if there are any problems with the DB set-up.
* @param bool $dbproblems
* @return string HTML to output.
*/
public function db_problems($dbproblems) {
if (!$dbproblems) {
return '';
}
return $this->warning($dbproblems);
}
/**
* Render an appropriate message if the site in in maintenance mode.
* @param bool $maintenancemode
* @return string HTML to output.
*/
public function maintenance_mode_warning($maintenancemode) {
if (!$maintenancemode) {
return '';
}
$url = new moodle_url('/admin/settings.php', array('section' => 'maintenancemode'));
$url = $url->out(); // get_string() does not support objects in params
return $this->warning(get_string('sitemaintenancewarning2', 'admin', $url));
}
/**
* Display a warning about installing development code if necesary.
* @param int $maturity
* @return string HTML to output.
*/
protected function maturity_warning($maturity) {
if ($maturity == MATURITY_STABLE) {
return ''; // No worries.
}
$maturitylevel = get_string('maturity' . $maturity, 'admin');
return $this->box(
$this->container(get_string('maturitycorewarning', 'admin', $maturitylevel)) .
$this->container($this->doc_link('admin/versions', get_string('morehelp'))),
'generalbox maturitywarning');
}
/**
* Output the copyright notice.
* @return string HTML to output.
*/
protected function moodle_copyright() {
global $CFG;
//////////////////////////////////////////////////////////////////////////////////////////////////
//// IT IS ILLEGAL AND A VIOLATION OF THE GPL TO HIDE, REMOVE OR MODIFY THIS COPYRIGHT NOTICE ///
$copyrighttext = '<a href="http://moodle.org/">Moodle</a> '.
'<a href="http://docs.moodle.org/dev/Releases" title="'.$CFG->version.'">'.$CFG->release.'</a><br />'.
'Copyright &copy; 1999 onwards, Martin Dougiamas<br />'.
'and <a href="http://moodle.org/dev">many other contributors</a>.<br />'.
'<a href="http://docs.moodle.org/dev/License">GNU Public License</a>';
//////////////////////////////////////////////////////////////////////////////////////////////////
return $this->box($copyrighttext, 'copyright');
}
/**
* Display a warning about installing development code if necesary.
* @param int $maturity
* @return string HTML to output.
*/
protected function maturity_info($maturity) {
if ($maturity == MATURITY_STABLE) {
return ''; // No worries.
}
$maturitylevel = get_string('maturity' . $maturity, 'admin');
return $this->box(
get_string('maturitycoreinfo', 'admin', $maturitylevel) . ' ' .
$this->doc_link('admin/versions', get_string('morehelp')),
'generalbox adminwarning maturityinfo');
}
/**
* Display a link to the release notes.
* @return string HTML to output.
*/
protected function release_notes_link() {
$releasenoteslink = get_string('releasenoteslink', 'admin', 'http://docs.moodle.org/dev/Releases');
$releasenoteslink = str_replace('target="_blank"', 'onclick="this.target=\'_blank\'"', $releasenoteslink); // extremely ugly validation hack
return $this->box($releasenoteslink, 'generalbox releasenoteslink');
}
/**
* Display the reload link that appears on several upgrade/install pages.
* @return string HTML to output.
*/
function upgrade_reload($url) {
return html_writer::empty_tag('br') .
html_writer::tag('div',
html_writer::link($url, $this->pix_icon('i/reload', '') .
get_string('reload'), array('title' => get_string('reload'))),
array('class' => 'continuebutton')) . html_writer::empty_tag('br');
}
/**
* Displays all known plugins and information about their installation or upgrade
*
@@ -427,13 +39,11 @@ class core_admin_renderer extends plugin_renderer_base {
* options support:
* (bool)full = false: whether to display up-to-date plugins, too
*
* @param plugin_manager $pluginman provides information about the plugins.
* @param int $version the version of the Moodle code from version.php.
* @param array $plugininfo as returned by {@see plugin_manager::get_plugins()}
* @param array $options rendering options
* @return string HTML code
*/
public function plugins_check_table(plugin_manager $pluginman, $version, array $options = null) {
$plugininfo = $pluginman->get_plugins();
public function plugins_check(array $plugininfo, array $options = null) {
if (empty($plugininfo)) {
return '';
@@ -445,6 +55,8 @@ class core_admin_renderer extends plugin_renderer_base {
);
}
$pluginman = plugin_manager::instance();
$table = new html_table();
$table->id = 'plugins-check';
$table->head = array(
@@ -453,11 +65,10 @@ class core_admin_renderer extends plugin_renderer_base {
get_string('source', 'core_plugin'),
get_string('versiondb', 'core_plugin'),
get_string('versiondisk', 'core_plugin'),
get_string('requires', 'core_plugin'),
get_string('status', 'core_plugin'),
);
$table->colclasses = array(
'displayname', 'rootdir', 'source', 'versiondb', 'versiondisk', 'requires', 'status',
'displayname', 'rootdir', 'source', 'versiondb', 'versiondisk', 'status',
);
$table->data = array();
@@ -515,13 +126,7 @@ class core_admin_renderer extends plugin_renderer_base {
$status = new html_table_cell(get_string('status_' . $statuscode, 'core_plugin'));
$requires = new html_table_cell($this->required_column($plugin, $pluginman, $version));
$statusisboring = in_array($statuscode, array(
plugin_manager::PLUGIN_STATUS_NODB, plugin_manager::PLUGIN_STATUS_UPTODATE));
$dependenciesok = $pluginman->are_dependencies_satisfied(
$plugin->get_other_required_plugins());
if ($isstandard and $statusisboring and $dependenciesok) {
if ($isstandard and in_array($statuscode, array(plugin_manager::PLUGIN_STATUS_NODB, plugin_manager::PLUGIN_STATUS_UPTODATE))) {
if (empty($options['full'])) {
continue;
}
@@ -529,8 +134,7 @@ class core_admin_renderer extends plugin_renderer_base {
$numofhighlighted[$type]++;
}
$row->cells = array($displayname, $rootdir, $source,
$versiondb, $versiondisk, $requires, $status);
$row->cells = array($displayname, $rootdir, $source, $versiondb, $versiondisk, $status);
$plugintyperows[] = $row;
}
@@ -572,75 +176,22 @@ class core_admin_renderer extends plugin_renderer_base {
return $out;
}
/**
* Formats the information that needs to go in the 'Requires' column.
* @param plugin_information $plugin the plugin we are rendering the row for.
* @param plugin_manager $pluginman provides data on all the plugins.
* @param string $version
* @return string HTML code
*/
protected function required_column(plugin_information $plugin, plugin_manager $pluginman, $version) {
$requires = array();
if (!empty($plugin->versionrequires)) {
if ($plugin->versionrequires <= $version) {
$class = 'requires-ok';
} else {
$class = 'requires-failed';
}
$requires[] = html_writer::tag('li',
get_string('moodleversion', 'core_plugin', $plugin->versionrequires),
array('class' => $class));
}
foreach ($plugin->get_other_required_plugins() as $component => $requiredversion) {
$ok = true;
$otherplugin = $pluginman->get_plugin_info($component);
if (is_null($otherplugin)) {
$ok = false;
} else if ($requiredversion != ANY_VERSION and $otherplugin->versiondisk < $requiredversion) {
$ok = false;
}
if ($ok) {
$class = 'requires-ok';
} else {
$class = 'requires-failed';
}
if ($requiredversion != ANY_VERSION) {
$str = 'otherpluginversion';
} else {
$str = 'otherplugin';
}
$requires[] = html_writer::tag('li',
get_string($str, 'core_plugin',
array('component' => $component, 'version' => $requiredversion)),
array('class' => $class));
}
if (!$requires) {
return '';
}
return html_writer::tag('ul', implode("\n", $requires));
}
/**
* Displays all known plugins and links to manage them
*
* This default implementation renders all plugins into one big table.
*
* @param plugin_manager $pluginman provides information about the plugins.
* @param array $plugininfo as returned by {@see plugin_manager::get_plugins()}
* @return string HTML code
*/
public function plugins_control_panel(plugin_manager $pluginman) {
$plugininfo = $pluginman->get_plugins();
public function plugins_control_panel(array $plugininfo) {
if (empty($plugininfo)) {
return '';
}
$pluginman = plugin_manager::instance();
$table = new html_table();
$table->id = 'plugins-control-panel';
$table->head = array(
@@ -726,12 +277,8 @@ class core_admin_renderer extends plugin_renderer_base {
}
$uninstallurl = $plugin->get_uninstall_url();
$requriedby = $pluginman->other_plugins_that_require($plugin->component);
if (is_null($uninstallurl)) {
$uninstall = new html_table_cell('');
} else if ($requriedby) {
$uninstall = new html_table_cell(get_string('requiredby', 'core_plugin', implode(', ', $requriedby)));
$uninstall->attributes['class'] = 'requiredby';
} else {
$uninstall = html_writer::link($uninstallurl, get_string('uninstall', 'core_plugin'));
$uninstall = new html_table_cell($uninstall);
@@ -746,183 +293,4 @@ class core_admin_renderer extends plugin_renderer_base {
return html_writer::table($table);
}
/**
* This function will render one beautiful table with all the environmental
* configuration and how it suits Moodle needs.
*
* @param boolean $result final result of the check (true/false)
* @param array $environment_results array of results gathered
* @return string HTML to output.
*/
public function environment_check_table($result, $environment_results) {
global $CFG;
// Table headers
$servertable = new html_table();//table for server checks
$servertable->head = array(
get_string('name'),
get_string('info'),
get_string('report'),
get_string('status'),
);
$servertable->align = array('center', 'center', 'left', 'center');
$servertable->wrap = array('nowrap', '', '', 'nowrap');
$servertable->size = array('10', 10, '100%', '10');
$servertable->attributes['class'] = 'environmenttable generaltable';
$serverdata = array('ok'=>array(), 'warn'=>array(), 'error'=>array());
$othertable = new html_table();//table for custom checks
$othertable->head = array(
get_string('info'),
get_string('report'),
get_string('status'),
);
$othertable->align = array('center', 'left', 'center');
$othertable->wrap = array('', '', 'nowrap');
$othertable->size = array(10, '100%', '10');
$othertable->attributes['class'] = 'environmenttable generaltable';
$otherdata = array('ok'=>array(), 'warn'=>array(), 'error'=>array());
// Iterate over each environment_result
$continue = true;
foreach ($environment_results as $environment_result) {
$errorline = false;
$warningline = false;
$stringtouse = '';
if ($continue) {
$type = $environment_result->getPart();
$info = $environment_result->getInfo();
$status = $environment_result->getStatus();
$error_code = $environment_result->getErrorCode();
// Process Report field
$rec = new stdClass();
// Something has gone wrong at parsing time
if ($error_code) {
$stringtouse = 'environmentxmlerror';
$rec->error_code = $error_code;
$status = get_string('error');
$errorline = true;
$continue = false;
}
if ($continue) {
if ($rec->needed = $environment_result->getNeededVersion()) {
// We are comparing versions
$rec->current = $environment_result->getCurrentVersion();
if ($environment_result->getLevel() == 'required') {
$stringtouse = 'environmentrequireversion';
} else {
$stringtouse = 'environmentrecommendversion';
}
} else if ($environment_result->getPart() == 'custom_check') {
// We are checking installed & enabled things
if ($environment_result->getLevel() == 'required') {
$stringtouse = 'environmentrequirecustomcheck';
} else {
$stringtouse = 'environmentrecommendcustomcheck';
}
} else if ($environment_result->getPart() == 'php_setting') {
if ($status) {
$stringtouse = 'environmentsettingok';
} else if ($environment_result->getLevel() == 'required') {
$stringtouse = 'environmentmustfixsetting';
} else {
$stringtouse = 'environmentshouldfixsetting';
}
} else {
if ($environment_result->getLevel() == 'required') {
$stringtouse = 'environmentrequireinstall';
} else {
$stringtouse = 'environmentrecommendinstall';
}
}
// Calculate the status value
if ($environment_result->getBypassStr() != '') { //Handle bypassed result (warning)
$status = get_string('bypassed');
$warningline = true;
} else if ($environment_result->getRestrictStr() != '') { //Handle restricted result (error)
$status = get_string('restricted');
$errorline = true;
} else {
if ($status) { //Handle ok result (ok)
$status = get_string('ok');
} else {
if ($environment_result->getLevel() == 'optional') {//Handle check result (warning)
$status = get_string('check');
$warningline = true;
} else { //Handle error result (error)
$status = get_string('check');
$errorline = true;
}
}
}
}
// Build the text
$linkparts = array();
$linkparts[] = 'admin/environment';
$linkparts[] = $type;
if (!empty($info)){
$linkparts[] = $info;
}
if (empty($CFG->docroot)) {
$report = get_string($stringtouse, 'admin', $rec);
} else {
$report = $this->doc_link(join($linkparts, '/'), get_string($stringtouse, 'admin', $rec));
}
// Format error or warning line
if ($errorline || $warningline) {
$messagetype = $errorline? 'error':'warn';
} else {
$messagetype = 'ok';
}
$status = '<span class="'.$messagetype.'">'.$status.'</span>';
// Here we'll store all the feedback found
$feedbacktext = '';
// Append the feedback if there is some
$feedbacktext .= $environment_result->strToReport($environment_result->getFeedbackStr(), $messagetype);
//Append the bypass if there is some
$feedbacktext .= $environment_result->strToReport($environment_result->getBypassStr(), 'warn');
//Append the restrict if there is some
$feedbacktext .= $environment_result->strToReport($environment_result->getRestrictStr(), 'error');
$report .= $feedbacktext;
// Add the row to the table
if ($environment_result->getPart() == 'custom_check'){
$otherdata[$messagetype][] = array ($info, $report, $status);
} else {
$serverdata[$messagetype][] = array ($type, $info, $report, $status);
}
}
}
//put errors first in
$servertable->data = array_merge($serverdata['error'], $serverdata['warn'], $serverdata['ok']);
$othertable->data = array_merge($otherdata['error'], $otherdata['warn'], $otherdata['ok']);
// Print table
$output = '';
$output .= $this->heading(get_string('serverchecks', 'admin'));
$output .= html_writer::table($servertable);
if (count($othertable->data)){
$output .= $this->heading(get_string('customcheck', 'admin'));
$output .= html_writer::table($othertable);
}
// Finally, if any error has happened, print the summary box
if (!$result) {
$output .= $this->box(get_string('environmenterrortodo', 'admin'), 'environmentbox errorbox');
}
return $output;
}
}
@@ -1,35 +1,13 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Search and replace strings throughout all texts in the whole database
*
* @package tool
* @subpackage replace
* @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/// Search and replace strings throughout all texts in the whole database
define('NO_OUTPUT_BUFFERING', true);
require_once('../../../config.php');
require_once('../config.php');
require_once($CFG->dirroot.'/course/lib.php');
require_once($CFG->libdir.'/adminlib.php');
admin_externalpage_setup('toolreplace');
admin_externalpage_setup('replace');
$search = optional_param('search', '', PARAM_RAW);
$replace = optional_param('replace', '', PARAM_RAW);
@@ -52,7 +30,7 @@ if (!data_submitted() or !$search or !$replace or !confirm_sesskey() or !$sure)
echo $OUTPUT->box_start();
echo '<div class="mdl-align">';
echo '<form action="index.php" method="post"><div>';
echo '<form action="replace.php" method="post"><div>';
echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
echo '<div><label for="search">Search whole database for: </label><input id="search" type="text" name="search" size="40" /> (usually previous server URL)</div>';
echo '<div><label for="replace">Replace with this string: </label><input type="text" id="replace" name="replace" size="40" /> (usually new server URL)</div>';
@@ -74,7 +52,7 @@ echo $OUTPUT->notification('Rebuilding course cache...', 'notifysuccess');
rebuild_course_cache();
echo $OUTPUT->notification('...finished', 'notifysuccess');
echo $OUTPUT->continue_button(new moodle_url('/admin/index.php'));
echo $OUTPUT->continue_button('index.php');
echo $OUTPUT->footer();
+128
View File
@@ -0,0 +1,128 @@
<?php
// index.php - scheduled backup logs
require_once('../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->dirroot.'/backup/lib.php');
$courseid = optional_param('courseid', 0, PARAM_INT);
admin_externalpage_setup('reportbackups', '', null, '', array('pagelayout'=>'report'));
echo $OUTPUT->header();
/// Automated backups aren't active by the site admin
$backup_config = backup_get_config();
if (empty($backup_config->backup_auto_active)) {
echo $OUTPUT->notification(get_string('automatedbackupsinactive', 'backup'));
}
/// Get needed strings
$backuploglaststatus = get_string("backuploglaststatus");
$backuplogdetailed = get_string("backuplogdetailed");
$stradmin = get_string("administration");
$strconfiguration = get_string("configuration");
$strbackup = get_string("backup");
$strbackupdetails = get_string("backupdetails");
$strlogs = get_string("logs");
$strftimedatetime = get_string("strftimerecent");
$strftimetime = get_string("strftimetime").":%S";
$strerror = get_string("error");
$strok = get_string("ok");
$strunfinished = get_string("unfinished");
$strskipped = get_string("skipped");
$strcourse = get_string("course");
$strtimetaken = get_string("timetaken","quiz");
$strstatus = get_string("status");
$strnext = get_string("backupnext");
/// Decide when to show last execution logs or detailed logs
/// Lastlog view
if (!$courseid) {
echo $OUTPUT->heading($backuploglaststatus);
echo $OUTPUT->box_start();
/// Now, get every record from backup_courses
$courses = $DB->get_records("backup_courses");
if (!$courses) {
echo $OUTPUT->notification(get_string('nologsfound'));
} else {
echo "<table border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"3\">";
//Print table header
echo "<tr>";
echo "<td nowrap=\"nowrap\" align=\"center\"><font size=\"3\">$strcourse</font></td>";
echo "<td nowrap=\"nowrap\" align=\"center\" colspan=\"3\"><font size=\"3\">$strtimetaken</font></td>";
echo "<td nowrap=\"nowrap\" align=\"center\"><font size=\"3\">$strstatus</font></td>";
echo "<td nowrap=\"nowrap\" align=\"center\"><font size=\"3\">$strnext</font></td></tr>";
foreach ($courses as $course) {
/// Get the course shortname
$coursename = $DB->get_field ("course", "fullname", array("id"=>$course->courseid));
if ($coursename) {
echo "<tr>";
echo "<td nowrap=\"nowrap\"><font size=\"2\"><a href=\"index.php?courseid=$course->courseid\">".$coursename."</a></font></td>";
echo "<td nowrap=\"nowrap\"><font size=\"2\">".userdate($course->laststarttime,$strftimedatetime)."</font></td>";
echo "<td nowrap=\"nowrap\"><font size=\"2\"> - </font></td>";
echo "<td nowrap=\"nowrap\"><font size=\"2\">".userdate($course->lastendtime,$strftimedatetime)."</font></td>";
if ($course->laststatus == 1) {
echo "<td nowrap=\"nowrap\" align=\"center\"><font size=\"2\" color=\"green\">".$strok."</font></td>";
} else if ($course->laststatus == 2) {
echo "<td nowrap=\"nowrap\" align=\"center\"><font size=\"2\" color=\"red\">".$strunfinished."</font></td>";
} else if ($course->laststatus == 3) {
echo "<td nowrap=\"nowrap\" align=\"center\"><font size=\"2\" color=\"green\">".$strskipped."</font></td>";
} else {
echo "<td nowrap=\"nowrap\" align=\"center\"><font size=\"2\" color=\"red\">".$strerror."</font></td>";
}
echo "<td nowrap=\"nowrap\"><font size=\"2\">".userdate($course->nextstarttime,$strftimedatetime)."</font></td>";
echo "</tr>";
}
}
echo "</table>";
}
echo $OUTPUT->box_end();
/// Detailed View !!
} else {
echo $OUTPUT->heading($backuplogdetailed);
$coursename = $DB->get_field("course", "fullname", array("id"=>"$courseid"));
echo $OUTPUT->heading("$strcourse: $coursename");
echo $OUTPUT->box_start();
/// First, me get all the distinct backups for that course in backup_log
$executions = $DB->get_records_sql("SELECT DISTINCT laststarttime
FROM {backup_log}
WHERE courseid = ? AND backuptype = ?
ORDER BY laststarttime DESC", array($courseid,'scheduledbackup'));
/// Iterate over backup executions
if (!$executions) {
echo $OUTPUT->notification(get_string('nologsfound'));
} else {
echo "<table border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"3\">";
foreach($executions as $execution) {
echo "<tr>";
echo "<td nowrap=\"nowrap\" align=\"center\" colspan=\"3\">";
echo $OUTPUT->box(userdate($execution->laststarttime));
echo "</td>";
echo "</tr>";
$logs = $DB->get_records_sql("SELECT *
FROM {backup_log}
WHERE courseid = ? AND laststarttime = ? AND backuptype = ?
ORDER BY id", array($courseid, $execution->laststarttime,'scheduledbackup'));
if ($logs) {
foreach ($logs as $log) {
echo "<tr>";
echo "<td nowrap=\"nowrap\"><font size=\"2\">".userdate($log->time,$strftimetime)."</font></td>";
$log->info = str_replace("- ERROR!!","- <font color=\"red\">ERROR!!</font>",$log->info);
$log->info = str_replace("- OK","- <font color=\"green\">OK</font>",$log->info);
echo "<td nowrap=\"nowrap\"><font size=\"2\">".str_replace(" ","&nbsp;&nbsp;&nbsp;&nbsp;",$log->info)."</font></td>";
echo "</tr>";
}
}
}
echo "</table>";
}
echo $OUTPUT->box_end();
}
echo $OUTPUT->footer();
+5
View File
@@ -0,0 +1,5 @@
<?php
defined('MOODLE_INTERNAL') || die;
$ADMIN->add('reports', new admin_externalpage('reportbackups', get_string('backups', 'admin'), "$CFG->wwwroot/$CFG->admin/report/backups/index.php",'moodle/backup:backupcourse'));
@@ -1,30 +1,14 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* For a given capability, show what permission it has for every role, and
* everywhere that it is overridden.
*
* @package tool
* @subpackage capability
* @copyright 2008 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
* @package roles
*/
require_once(dirname(__FILE__) . '/../../../config.php');
/** */
require_once(dirname(__FILE__).'/../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
// Check permissions.
@@ -34,7 +18,7 @@ require_capability('moodle/role:manage', $systemcontext);
// Get URL parameters.
$capability = optional_param('capability', '', PARAM_CAPABILITY);
$roleids = optional_param_array('roles', array('0'), PARAM_INTEGER);
$roleids = optional_param('roles', array('0'), PARAM_INTEGER);
// Clean the passed in list of role ids. If 'All' selected as an option, or
// if none were selected, do all roles.
@@ -54,13 +38,13 @@ if (empty($cleanedroleids)) {
}
// Include the required JavaScript.
$PAGE->requires->js_init_call('M.tool_capability.init', array(get_string('search')));
$PAGE->requires->js_init_call('M.report_capability.init', array(get_string('search')));
// Log.
add_to_log(SITEID, "admin", "tool capability", "tool/capability/index.php?capability=$capability", $capability);
add_to_log(SITEID, "admin", "report capability", "report/capability/index.php?capability=$capability", $capability);
// Print the header.
admin_externalpage_setup('toolcapability');
admin_externalpage_setup('reportcapability');
echo $OUTPUT->header();
// Prepare the list of capabilities to choose from
@@ -84,14 +68,14 @@ if (count($cleanedroleids) == count($allroles)) {
// Print the settings form.
echo $OUTPUT->box_start('generalbox boxwidthwide boxaligncenter');
echo '<form method="get" action="" id="settingsform"><div>';
echo $OUTPUT->heading(get_string('reportsettings', 'tool_capability'));
echo '<p id="intro">', get_string('intro', 'tool_capability') , '</p>';
echo '<p><label for="menucapability"> ' . get_string('capabilitylabel', 'tool_capability') . '</label></p>';
echo '<form method="get" action="." id="settingsform"><div>';
echo $OUTPUT->heading(get_string('reportsettings', 'report_capability'));
echo '<p id="intro">', get_string('intro', 'report_capability') , '</p>';
echo '<p><label for="menucapability"> ' . get_string('capabilitylabel', 'report_capability') . '</label></p>';
echo html_writer::select($capabilitychoices, 'capability', $capability, array(''=>'choose'), array('size'=>10));
echo '<p><label for="menuroles"> ' . get_string('roleslabel', 'tool_capability') . '</label></p>';
echo '<p><label for="menuroles"> ' . get_string('roleslabel', 'report_capability') . '</label></p>';
echo html_writer::select($rolechoices, 'roles[]', $selectedroleids, false, array('size'=>10, 'multiple'=>'multiple'));
echo '<p><input type="submit" id="settingssubmit" value="' . get_string('getreport', 'tool_capability') . '" /></p>';
echo '<p><input type="submit" id="settingssubmit" value="' . get_string('getreport', 'report_capability') . '" /></p>';
echo '</div></form>';
echo $OUTPUT->box_end();
@@ -138,8 +122,7 @@ if ($capability) {
// Put the contexts into a tree structure.
foreach ($contexts as $conid => $con) {
$context = context::instance_by_id($conid);
$parentcontextid = get_parent_contextid($context);
$parentcontextid = get_parent_contextid($con);
if ($parentcontextid) {
$contexts[$parentcontextid]->children[] = $conid;
}
@@ -158,13 +141,13 @@ if ($capability) {
}
// Print the report heading.
echo $OUTPUT->heading(get_string('reportforcapability', 'tool_capability', get_capability_string($capability)), 2, 'main', 'report');
echo $OUTPUT->heading(get_string('reportforcapability', 'report_capability', get_capability_string($capability)), 2, 'main', 'report');
if (count($cleanedroleids) != count($allroles)) {
$rolenames = array();
foreach ($cleanedroleids as $roleid) {
$rolenames[] = $allroles[$roleid]->name;
}
echo '<p>', get_string('forroles', 'tool_capability', implode(', ', $rolenames)), '</p>';
echo '<p>', get_string('forroles', 'report_capability', implode(', ', $rolenames)), '</p>';
}
// Now, recursively print the contexts, and the role information.
@@ -192,13 +175,12 @@ function print_report_tree($contextid, $contexts, $allroles) {
// make changes.
if ($contextid == get_system_context()->id) {
$url = "$CFG->wwwroot/$CFG->admin/roles/manage.php";
$title = get_string('changeroles', 'tool_capability');
$title = get_string('changeroles', 'report_capability');
} else {
$url = "$CFG->wwwroot/$CFG->admin/roles/override.php?contextid=$contextid";
$title = get_string('changeoverrides', 'tool_capability');
$title = get_string('changeoverrides', 'report_capability');
}
$context = context::instance_by_id($contextid);
echo '<h3><a href="' . $url . '" title="' . $title . '">', $context->get_context_name(), '</a></h3>';
echo '<h3><a href="' . $url . '" title="' . $title . '">', print_context_name($contexts[$contextid]), '</a></h3>';
// If there are any role overrides here, print them.
if (!empty($contexts[$contextid]->rolecapabilities)) {
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,22 +16,21 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Strings for component 'tool_capability', language 'en', branch 'MOODLE_22_STABLE'
* Strings for component 'report_capability', language 'en', branch 'MOODLE_20_STABLE'
*
* @package tool
* @subpackage capability
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package report_capability
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['capabilitylabel'] = 'Capability:';
$string['capabilityreport'] = 'Capability overview';
$string['capabilityreport'] = 'Capability report';
$string['forroles'] = 'For roles {$a}';
$string['getreport'] = 'Get the overview';
$string['getreport'] = 'Get the report';
$string['changeoverrides'] = 'Change overrides in this context';
$string['changeroles'] = 'Change role definitions';
$string['intro'] = 'This report shows, for a particular capability, what permission that capability has in the definition of every role (or a selection of roles), and everywhere in the site where that capability is overridden.';
$string['pluginname'] = 'Capability overview';
$string['pluginname'] = 'Capability report';
$string['reportforcapability'] = 'Report for capability \'{$a}\'';
$string['reportsettings'] = 'Report settings';
$string['roleslabel'] = 'Roles:';
@@ -1,11 +1,11 @@
M.tool_capability = {
M.report_capability = {
select: null,
input: null,
button: null,
init: function(Y, strsearch) {
var context = M.tool_capability;
var context = M.report_capability;
// Find the form controls.
context.select = document.getElementById('menucapability');
@@ -37,7 +37,7 @@ M.tool_capability = {
},
typed: function() {
var context = M.tool_capability;
var context = M.report_capability;
var filtertext = context.input.value;
var options = context.select.options;
@@ -69,7 +69,7 @@ M.tool_capability = {
},
validate: function() {
var context = M.tool_capability;
var context = M.report_capability;
context.button.disabled = (context.select.value == '');
}
}
+5
View File
@@ -0,0 +1,5 @@
<?php
defined('MOODLE_INTERNAL') || die;
$ADMIN->add('roles', new admin_externalpage('reportcapability', get_string('pluginname', 'report_capability'), "$CFG->wwwroot/$CFG->admin/report/capability/index.php",'moodle/role:manage'));
@@ -1,29 +1,6 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Config changes report
*
* @package report
* @subpackage configlog
* @copyright 2009 Petr Skoda
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require(dirname(__FILE__).'/../../config.php');
require_once(dirname(__FILE__).'/../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
// page parameters
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -17,16 +18,14 @@
/**
* Strings for component 'report_configlog', language 'en', branch 'MOODLE_20_STABLE'
*
* @package report
* @subplugin configlog
* @copyright 2009 petr Skoda
* @package report_configlog
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['configlog'] = 'Config changes';
$string['oldvalue'] = 'Original value';
$string['plugin'] = 'Plugin';
$string['pluginname'] = 'Config changes';
$string['setting'] = 'Setting';
$string['timemodified'] = 'Date';
$string['value'] = 'New value';
+5
View File
@@ -0,0 +1,5 @@
<?php
defined('MOODLE_INTERNAL') || die;
$ADMIN->add('reports', new admin_externalpage('reportconfiglog', get_string('configlog', 'report_configlog'), "$CFG->wwwroot/$CFG->admin/report/configlog/index.php"));
+40
View File
@@ -0,0 +1,40 @@
<?php
///////////////////////////////////////////////////////////////////////////
// //
// 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 //
// //
///////////////////////////////////////////////////////////////////////////
$capabilities = array(
'report/courseoverview:view' => array(
'riskbitmask' => RISK_PERSONAL,
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/site:viewreports',
)
);
+122
View File
@@ -0,0 +1,122 @@
<?php
require_once('../../../config.php');
require_once($CFG->dirroot.'/lib/statslib.php');
require_once($CFG->libdir.'/adminlib.php');
$report = optional_param('report', STATS_REPORT_ACTIVE_COURSES, PARAM_INT);
$time = optional_param('time', 0, PARAM_INT);
$numcourses = optional_param('numcourses', 20, PARAM_INT);
if (empty($CFG->enablestats)) {
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 {
print_error('statsdisable');
}
}
admin_externalpage_setup('reportcourseoverview', '', null, '', array('pagelayout'=>'report'));
echo $OUTPUT->header();
$course = get_site();
stats_check_uptodate($course->id);
$strreports = get_string('reports');
$strcourseoverview = get_string('courseoverview');
$reportoptions = stats_get_report_options($course->id,STATS_MODE_RANKED);
$earliestday = $DB->get_field_sql('SELECT MIN(timeend) FROM {stats_daily}');
$earliestweek = $DB->get_field_sql('SELECT MIN(timeend) FROM {stats_weekly}');
$earliestmonth = $DB->get_field_sql('SELECT MIN(timeend) FROM {stats_monthly}');
if (empty($earliestday)) $earliestday = time();
if (empty($earliestweek)) $earliestweek = time();
if (empty($earliestmonth)) $earliestmonth = time();
$now = stats_get_base_daily();
$lastweekend = stats_get_base_weekly();
$lastmonthend = stats_get_base_monthly();
$timeoptions = stats_get_time_options($now,$lastweekend,$lastmonthend,$earliestday,$earliestweek,$earliestmonth);
if (empty($timeoptions)) {
print_error('nostatstodisplay', 'error', $CFG->wwwroot.'/course/view.php?id='.$course->id);
}
echo '<form action="index.php" method="post">'."\n";
echo '<div>';
$table = new html_table();
$table->width = '*';
$table->align = array('left','left','left','left','left','left');
$reporttypemenu = html_writer::select($reportoptions,'report',$report, false);
$timeoptionsmenu = html_writer::select($timeoptions,'time',$time, false);
$table->data[] = array(get_string('statsreporttype'),$reporttypemenu,
get_string('statstimeperiod'),$timeoptionsmenu,
'<input type="text" name="numcourses" size="3" maxlength="2" value="'.$numcourses.'" />',
'<input type="submit" value="'.get_string('view').'" />') ;
echo html_writer::table($table);
echo '</div>';
echo '</form>';
echo $OUTPUT->heading($reportoptions[$report]);
if (!empty($report) && !empty($time)) {
$param = stats_get_parameters($time,$report,SITEID,STATS_MODE_RANKED);
if (!empty($param->sql)) {
$sql = $param->sql;
} else {
$sql = "SELECT courseid,".$param->fields."
FROM {".'stats_'.$param->table."}
WHERE timeend >= $param->timeafter AND stattype = 'activity' AND roleid = 0
GROUP BY courseid
$param->extras
ORDER BY $param->orderby";
}
$courses = $DB->get_records_sql($sql, $param->params, 0, $numcourses);
if (empty($courses)) {
echo $OUTPUT->notification(get_string('statsnodata'));
echo '</td></tr></table>';
} else {
if (empty($CFG->gdversion)) {
echo '<div class="graph">(' . get_string("gdneed") .')</div>';
} else {
echo '<div class="graph"><img alt="'.get_string('courseoverviewgraph').'" src="'.$CFG->wwwroot.'/'.$CFG->admin.'/report/courseoverview/reportsgraph.php?time='.$time.'&report='.$report.'&numcourses='.$numcourses.'" /></div>';
}
$table = new html_table();
$table->align = array('left','center','center','center');
$table->head = array(get_string('course'),$param->line1);
if (!empty($param->line2)) {
$table->head[] = $param->line2;
}
if (!empty($param->line3)) {
$table->head[] = $param->line3;
}
foreach ($courses as $c) {
$a = array();
$a[] = '<a href="'.$CFG->wwwroot.'/course/view.php?id='.$c->courseid.'">'.$DB->get_field('course', 'shortname', array('id'=>$c->courseid)).'</a>';
$a[] = $c->line1;
if (isset($c->line2)) {
$a[] = $c->line2;
}
if (isset($c->line3)) {
$a[] = round($c->line3,2);
}
$table->data[] = $a;
}
echo html_writer::table($table);
}
}
echo $OUTPUT->footer();
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,12 +16,11 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Strings for component 'report_courseoverview'.
* Strings for component 'report_courseoverview', language 'en', branch 'MOODLE_20_STABLE'
*
* @package report
* @subpackage courseoverview
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package report_courseoverview
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['courseoverview:view'] = 'View course overview report';
@@ -0,0 +1,57 @@
<?php
require_once('../../../config.php');
require_once($CFG->dirroot.'/lib/statslib.php');
require_once($CFG->dirroot.'/lib/graphlib.php');
$report = required_param('report', PARAM_INT);
$time = required_param('time', PARAM_INT);
$numcourses = required_param('numcourses', PARAM_INT);
require_login();
require_capability('report/courseoverview:view', get_context_instance(CONTEXT_SYSTEM));
stats_check_uptodate();
$param = stats_get_parameters($time,$report,SITEID,STATS_MODE_RANKED);
if (!empty($param->sql)) {
$sql = $param->sql;
} else {
$sql = "SELECT courseid, $param->fields
FROM {".'stats_'.$param->table."}
WHERE timeend >= $param->timeafter AND stattype = 'activity' AND roleid = 0
GROUP BY courseid
$param->extras
ORDER BY $param->orderby";
}
$courses = $DB->get_records_sql($sql, $param->params, 0, $numcourses);
if (empty($courses)) {
$PAGE->set_url('/admin/report/courseoverview/index.php');
print_error('statsnodata', 'error', $PAGE->url->out());
}
$graph = new graph(750,400);
$graph->parameter['legend'] = 'outside-right';
$graph->parameter['legend_size'] = 10;
$graph->parameter['x_axis_angle'] = 90;
$graph->parameter['title'] = false; // moodle will do a nicer job.
$graph->y_tick_labels = null;
$graph->offset_relation = null;
if ($report != STATS_REPORT_ACTIVE_COURSES) {
$graph->parameter['y_decimal_left'] = 2;
}
foreach ($courses as $c) {
$graph->x_data[] = $DB->get_field('course', 'shortname', array('id'=>$c->courseid));
$graph->y_data['bar1'][] = $c->{$param->graphline};
}
$graph->y_order = array('bar1');
$graph->y_format['bar1'] = array('colour' => 'blue','bar' => 'fill','legend' => $param->{$param->graphline});
$graph->draw_stack();
+5
View File
@@ -0,0 +1,5 @@
<?php
defined('MOODLE_INTERNAL') || die;
$ADMIN->add('reports', new admin_externalpage('reportcourseoverview', get_string('pluginname', 'report_courseoverview'), "$CFG->wwwroot/$CFG->admin/report/courseoverview/index.php",'report/courseoverview:view'));
+27
View File
@@ -0,0 +1,27 @@
<?PHP
///////////////////////////////////////////////////////////////////////////
// //
// 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 = 2010090501;
$plugin->requires = 2010090501;
@@ -16,9 +16,9 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Defines the capabilities used by the Language customization admin tool
* Defines the capabilities used by the Language customization admin report
*
* @package tool
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die();
$capabilities = array(
/* allows the user to view the current language customization */
'tool/customlang:view' => array(
'report/customlang:view' => array(
'riskbitmask' => RISK_CONFIG,
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
@@ -39,7 +39,7 @@ $capabilities = array(
),
/* allows the user to edit the current language customization */
'tool/customlang:edit' => array(
'report/customlang:edit' => array(
'riskbitmask' => RISK_CONFIG | RISK_XSS,
'captype' => 'write',
'contextlevel' => CONTEXT_SYSTEM,
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<XMLDB PATH="admin/tool/customlang/db" VERSION="20110925" COMMENT="XMLDB file for Moodle admin/tool/customlang"
<XMLDB PATH="admin/report/customlang/db" VERSION="20110419" COMMENT="XMLDB file for Moodle admin/report/customlang"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../../lib/xmldb/xmldb.xsd"
>
<TABLES>
<TABLE NAME="tool_customlang" COMMENT="Contains the working checkout of all strings and their customization" NEXT="tool_customlang_components">
<TABLE NAME="report_customlang" COMMENT="Contains the working checkout of all strings and their customization" NEXT="report_customlang_components">
<FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="lang"/>
<FIELD NAME="lang" TYPE="char" LENGTH="20" NOTNULL="true" SEQUENCE="false" COMMENT="The code of the language this string belongs to. Like en, cs or es" PREVIOUS="id" NEXT="componentid"/>
@@ -20,13 +20,13 @@
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id" NEXT="fk_component"/>
<KEY NAME="fk_component" TYPE="foreign" FIELDS="componentid" REFTABLE="tool_customlang_components" REFFIELDS="id" PREVIOUS="primary"/>
<KEY NAME="fk_component" TYPE="foreign" FIELDS="componentid" REFTABLE="report_customlang_components" REFFIELDS="id" PREVIOUS="primary"/>
</KEYS>
<INDEXES>
<INDEX NAME="uq_lang_component_string" UNIQUE="true" FIELDS="lang, componentid, stringid" COMMENT="For a given language and component, string identifiers must be unique"/>
</INDEXES>
</TABLE>
<TABLE NAME="tool_customlang_components" COMMENT="Contains the list of all installed plugins that provide their own language pack" PREVIOUS="tool_customlang">
<TABLE NAME="report_customlang_components" COMMENT="Contains the list of all installed plugins that provide their own language pack" PREVIOUS="report_customlang">
<FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="name"/>
<FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" COMMENT="The normalized name of the plugin" PREVIOUS="id" NEXT="version"/>
+74
View File
@@ -0,0 +1,74 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Language customization report upgrades
*
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david.mudrak@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
function xmldb_report_customlang_upgrade($oldversion) {
global $CFG, $DB, $OUTPUT;
$dbman = $DB->get_manager();
$result = true;
/**
* Use proper plugin prefix for tables
*/
if ($oldversion < 2010111200) {
if ($dbman->table_exists('customlang')) {
$dbman->rename_table(new xmldb_table('customlang'), 'report_customlang');
}
if ($dbman->table_exists('customlang_components')) {
$dbman->rename_table(new xmldb_table('customlang_components'), 'report_customlang_components');
}
upgrade_plugin_savepoint(true, 2010111200, 'report', 'customlang');
}
/**
* Regenerate the foreign key after the tables rename
*/
if ($oldversion < 2010111500) {
$table = new xmldb_table('report_customlang');
$oldkey = new xmldb_key('fk_component', XMLDB_KEY_FOREIGN, array('componentid'), 'customlang_components', array('id'));
$newkey = new xmldb_key('fk_component', XMLDB_KEY_FOREIGN, array('componentid'), 'report_customlang_components', array('id'));
$dbman->drop_key($table, $oldkey);
$dbman->add_key($table, $newkey);
upgrade_plugin_savepoint(true, 2010111500, 'report', 'customlang');
}
/**
* Change the version field from integer to varchar
*/
if ($oldversion < 2011041900) {
$table = new xmldb_table('report_customlang_components');
$field = new xmldb_field('version', XMLDB_TYPE_CHAR, '255', null, null, null, null, 'name');
$dbman->change_field_type($table, $field);
upgrade_plugin_savepoint(true, 2011041900, 'report', 'customlang');
}
return $result;
}
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,29 +16,29 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* @package tool
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require(dirname(dirname(dirname(dirname(__FILE__)))) . '/config.php');
require_once($CFG->dirroot.'/'.$CFG->admin.'/tool/customlang/locallib.php');
require_once($CFG->dirroot.'/'.$CFG->admin.'/tool/customlang/filter_form.php');
require(dirname(dirname(dirname(dirname(__FILE__)))).'/config.php');
require_once($CFG->dirroot.'/'.$CFG->admin.'/report/customlang/locallib.php');
require_once($CFG->dirroot.'/'.$CFG->admin.'/report/customlang/filter_form.php');
require_login(SITEID, false);
require_capability('tool/customlang:edit', get_system_context());
require_capability('report/customlang:edit', get_system_context());
$lng = required_param('lng', PARAM_LANG);
$currentpage = optional_param('p', 0, PARAM_INT);
$translatorsubmitted = optional_param('translatorsubmitted', 0, PARAM_BOOL);
$PAGE->set_pagelayout('standard');
$PAGE->set_url('/admin/tool/customlang/edit.php', array('lng' => $lng));
navigation_node::override_active_url(new moodle_url('/admin/tool/customlang/index.php'));
$PAGE->set_title(get_string('pluginname', 'tool_customlang'));
$PAGE->set_heading(get_string('pluginname', 'tool_customlang'));
$PAGE->requires->js_init_call('M.tool_customlang.init_editor', array(), true);
$PAGE->set_url('/admin/report/customlang/edit.php', array('lng' => $lng));
navigation_node::override_active_url(new moodle_url('/admin/report/customlang/index.php'));
$PAGE->set_title(get_string('pluginname', 'report_customlang'));
$PAGE->set_heading(get_string('pluginname', 'report_customlang'));
$PAGE->requires->js_init_call('M.report_customlang.init_editor', array(), true);
if (empty($lng)) {
// PARAM_LANG validation failed
@@ -45,33 +46,33 @@ if (empty($lng)) {
}
// pre-output processing
$filter = new tool_customlang_filter_form($PAGE->url, null, 'post', '', array('class'=>'filterform'));
$filterdata = tool_customlang_utils::load_filter($USER);
$filter = new report_customlang_filter_form($PAGE->url, null, 'post', '', array('class'=>'filterform'));
$filterdata = report_customlang_utils::load_filter($USER);
$filter->set_data($filterdata);
if ($filter->is_cancelled()) {
redirect($PAGE->url);
} elseif ($submitted = $filter->get_data()) {
tool_customlang_utils::save_filter($submitted, $USER);
report_customlang_utils::save_filter($submitted, $USER);
redirect(new moodle_url($PAGE->url, array('p'=>0)));
}
if ($translatorsubmitted) {
$strings = optional_param_array('cust', array(), PARAM_RAW);
$updates = optional_param_array('updates', array(), PARAM_INT);
$strings = optional_param('cust', array(), PARAM_RAW);
$updates = optional_param('updates', array(), PARAM_INT);
$checkin = optional_param('savecheckin', false, PARAM_RAW);
if ($checkin === false) {
$nexturl = $PAGE->url;
} else {
$nexturl = new moodle_url('/admin/tool/customlang/index.php', array('action'=>'checkin', 'lng' => $lng, 'sesskey'=>sesskey()));
$nexturl = new moodle_url('/admin/report/customlang/index.php', array('action'=>'checkin', 'lng' => $lng, 'sesskey'=>sesskey()));
}
if (!is_array($strings)) {
$strings = array();
}
$current = $DB->get_records_list('tool_customlang', 'id', array_keys($strings));
$current = $DB->get_records_list('report_customlang', 'id', array_keys($strings));
$now = time();
foreach ($strings as $recordid => $customization) {
@@ -82,7 +83,7 @@ if ($translatorsubmitted) {
$current[$recordid]->modified = 1;
$current[$recordid]->outdated = 0;
$current[$recordid]->timecustomized = null;
$DB->update_record('tool_customlang', $current[$recordid]);
$DB->update_record('report_customlang', $current[$recordid]);
continue;
}
@@ -95,7 +96,7 @@ if ($translatorsubmitted) {
$current[$recordid]->modified = 1;
$current[$recordid]->outdated = 0;
$current[$recordid]->timecustomized = $now;
$DB->update_record('tool_customlang', $current[$recordid]);
$DB->update_record('report_customlang', $current[$recordid]);
continue;
}
}
@@ -105,17 +106,17 @@ if ($translatorsubmitted) {
}
if (!empty($updates)) {
list($sql, $params) = $DB->get_in_or_equal($updates);
$DB->set_field_select('tool_customlang', 'outdated', 0, "local IS NOT NULL AND id $sql", $params);
$DB->set_field_select('report_customlang', 'outdated', 0, "local IS NOT NULL AND id $sql", $params);
}
redirect($nexturl);
}
$translator = new tool_customlang_translator($PAGE->url, $lng, $filterdata, $currentpage);
$translator = new report_customlang_translator($PAGE->url, $lng, $filterdata, $currentpage);
// output starts here
$output = $PAGE->get_renderer('tool_customlang');
$paginator = $output->paging_bar($translator->numofrows, $currentpage, tool_customlang_translator::PERPAGE, $PAGE->url, 'p');
$output = $PAGE->get_renderer('report_customlang');
$paginator = $output->paging_bar($translator->numofrows, $currentpage, report_customlang_translator::PERPAGE, $PAGE->url, 'p');
echo $output->header();
$filter->display();
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,7 +16,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* @package tool
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -28,51 +29,51 @@ require_once($CFG->dirroot . '/lib/formslib.php');
/**
* Form for filtering the strings to customize
*/
class tool_customlang_filter_form extends moodleform {
class report_customlang_filter_form extends moodleform {
function definition() {
$mform = $this->_form;
$current = $this->_customdata['current'];
$mform->addElement('header', 'filtersettings', get_string('filter', 'tool_customlang'));
$mform->addElement('header', 'filtersettings', get_string('filter', 'report_customlang'));
// Component
$options = array();
foreach (tool_customlang_utils::list_components() as $component => $normalized) {
foreach (report_customlang_utils::list_components() as $component => $normalized) {
list($type, $plugin) = normalize_component($normalized);
if ($type == 'core' and is_null($plugin)) {
$plugin = 'moodle';
}
$options[$type][$normalized] = $component.'.php';
}
$mform->addElement('selectgroups', 'component', get_string('filtercomponent', 'tool_customlang'), $options,
$mform->addElement('selectgroups', 'component', get_string('filtercomponent', 'report_customlang'), $options,
array('multiple'=>'multiple', 'size'=>7));
// Customized only
$mform->addElement('advcheckbox', 'customized', get_string('filtercustomized', 'tool_customlang'));
$mform->addElement('advcheckbox', 'customized', get_string('filtercustomized', 'report_customlang'));
$mform->setType('customized', PARAM_BOOL);
$mform->setDefault('customized', 0);
// Only helps
$mform->addElement('advcheckbox', 'helps', get_string('filteronlyhelps', 'tool_customlang'));
$mform->addElement('advcheckbox', 'helps', get_string('filteronlyhelps', 'report_customlang'));
$mform->setType('helps', PARAM_BOOL);
$mform->setDefault('helps', 0);
// Modified only
$mform->addElement('advcheckbox', 'modified', get_string('filtermodified', 'tool_customlang'));
$mform->addElement('advcheckbox', 'modified', get_string('filtermodified', 'report_customlang'));
$mform->setType('filtermodified', PARAM_BOOL);
$mform->setDefault('filtermodified', 0);
// Substring
$mform->addElement('text', 'substring', get_string('filtersubstring', 'tool_customlang'));
$mform->addElement('text', 'substring', get_string('filtersubstring', 'report_customlang'));
$mform->setType('substring', PARAM_RAW);
// String identifier
$mform->addElement('text', 'stringid', get_string('filterstringid', 'tool_customlang'));
$mform->addElement('text', 'stringid', get_string('filterstringid', 'report_customlang'));
$mform->setType('stringid', PARAM_STRINGID);
// Show strings - submit button
$mform->addElement('submit', 'submit', get_string('filtershowstrings', 'tool_customlang'));
$mform->addElement('submit', 'submit', get_string('filtershowstrings', 'report_customlang'));
}
}
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -17,7 +18,7 @@
/**
* Performs checkout of the strings into the translation table
*
* @package tool
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -25,81 +26,81 @@
define('NO_OUTPUT_BUFFERING', true); // progress bar is used here
require(dirname(dirname(dirname(dirname(__FILE__)))) . '/config.php');
require_once($CFG->dirroot.'/'.$CFG->admin.'/tool/customlang/locallib.php');
require(dirname(dirname(dirname(dirname(__FILE__)))).'/config.php');
require_once($CFG->dirroot.'/'.$CFG->admin.'/report/customlang/locallib.php');
require_once($CFG->libdir.'/adminlib.php');
require_login(SITEID, false);
require_capability('tool/customlang:view', get_system_context());
require_capability('report/customlang:view', get_system_context());
$action = optional_param('action', '', PARAM_ALPHA);
$confirm = optional_param('confirm', false, PARAM_BOOL);
$lng = optional_param('lng', '', PARAM_LANG);
admin_externalpage_setup('toolcustomlang');
admin_externalpage_setup('reportcustomlang');
$langs = get_string_manager()->get_list_of_translations();
// pre-output actions
if ($action === 'checkout') {
require_sesskey();
require_capability('tool/customlang:edit', get_system_context());
require_capability('report/customlang:edit', get_system_context());
if (empty($lng)) {
print_error('missingparameter');
}
$PAGE->set_cacheable(false); // progress bar is used here
$output = $PAGE->get_renderer('tool_customlang');
$output = $PAGE->get_renderer('report_customlang');
echo $output->header();
echo $output->heading(get_string('pluginname', 'tool_customlang'));
echo $output->heading(get_string('pluginname', 'report_customlang'));
$progressbar = new progress_bar();
$progressbar->create(); // prints the HTML code of the progress bar
// we may need a bit of extra execution time and memory here
@set_time_limit(HOURSECS);
raise_memory_limit(MEMORY_EXTRA);
tool_customlang_utils::checkout($lng, $progressbar);
report_customlang_utils::checkout($lng, $progressbar);
echo $output->continue_button(new moodle_url('/admin/tool/customlang/edit.php', array('lng' => $lng)), 'get');
echo $output->continue_button(new moodle_url('/admin/report/customlang/edit.php', array('lng' => $lng)), 'get');
echo $output->footer();
exit;
}
if ($action === 'checkin') {
require_sesskey();
require_capability('tool/customlang:edit', get_system_context());
require_capability('report/customlang:edit', get_system_context());
if (empty($lng)) {
print_error('missingparameter');
}
if (!$confirm) {
$output = $PAGE->get_renderer('tool_customlang');
$output = $PAGE->get_renderer('report_customlang');
echo $output->header();
echo $output->heading(get_string('pluginname', 'tool_customlang'));
echo $output->heading(get_string('pluginname', 'report_customlang'));
echo $output->heading($langs[$lng], 3);
$numofmodified = tool_customlang_utils::get_count_of_modified($lng);
$numofmodified = report_customlang_utils::get_count_of_modified($lng);
if ($numofmodified != 0) {
echo $output->heading(get_string('modifiednum', 'tool_customlang', $numofmodified), 3);
echo $output->confirm(get_string('confirmcheckin', 'tool_customlang'),
echo $output->heading(get_string('modifiednum', 'report_customlang', $numofmodified), 3);
echo $output->confirm(get_string('confirmcheckin', 'report_customlang'),
new moodle_url($PAGE->url, array('action'=>'checkin', 'lng'=>$lng, 'confirm'=>1)),
new moodle_url($PAGE->url, array('lng'=>$lng)));
} else {
echo $output->heading(get_string('modifiedno', 'tool_customlang', $numofmodified), 3);
echo $output->heading(get_string('modifiedno', 'report_customlang', $numofmodified), 3);
echo $output->continue_button(new moodle_url($PAGE->url, array('lng' => $lng)));
}
echo $output->footer();
die();
} else {
tool_customlang_utils::checkin($lng);
report_customlang_utils::checkin($lng);
redirect($PAGE->url);
}
}
$output = $PAGE->get_renderer('tool_customlang');
$output = $PAGE->get_renderer('report_customlang');
// output starts here
echo $output->header();
echo $output->heading(get_string('pluginname', 'tool_customlang'));
echo $output->heading(get_string('pluginname', 'report_customlang'));
if (empty($lng)) {
$s = new single_select($PAGE->url, 'lng', $langs);
@@ -112,27 +113,27 @@ if (empty($lng)) {
echo $output->heading($langs[$lng], 3);
$numofmodified = tool_customlang_utils::get_count_of_modified($lng);
$numofmodified = report_customlang_utils::get_count_of_modified($lng);
if ($numofmodified != 0) {
echo $output->heading(get_string('modifiednum', 'tool_customlang', $numofmodified), 3);
echo $output->heading(get_string('modifiednum', 'report_customlang', $numofmodified), 3);
}
$menu = array();
if (has_capability('tool/customlang:edit', get_system_context())) {
if (has_capability('report/customlang:edit', get_system_context())) {
$menu['checkout'] = array(
'title' => get_string('checkout', 'tool_customlang'),
'title' => get_string('checkout', 'report_customlang'),
'url' => new moodle_url($PAGE->url, array('action' => 'checkout', 'lng' => $lng)),
'method' => 'post',
);
if ($numofmodified != 0) {
$menu['checkin'] = array(
'title' => get_string('checkin', 'tool_customlang'),
'title' => get_string('checkin', 'report_customlang'),
'url' => new moodle_url($PAGE->url, array('action' => 'checkin', 'lng' => $lng)),
'method' => 'post',
);
}
}
echo $output->render(new tool_customlang_menu($menu));
echo $output->render(new report_customlang_menu($menu));
echo $output->footer();
@@ -16,9 +16,9 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Strings for Language customisation admin tool
* Strings for Language customization admin report
*
* @package tool
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,36 +26,36 @@
defined('MOODLE_INTERNAL') || die();
$string['checkin'] = 'Save strings to language pack';
$string['checkout'] = 'Open language pack for editing';
$string['checkoutdone'] = 'Language pack loaded';
$string['checkoutinprogress'] = 'Loading language pack';
$string['confirmcheckin'] = 'You are about to save modifications to your local language pack. This will export the customised strings from the translator into you Moodle data directory and Moodle will start using the modified strings. Press \'Continue\' to proceed with saving.';
$string['checkin'] = 'Check in strings into disk';
$string['checkout'] = 'Check out strings into the translator';
$string['checkoutdone'] = 'Strings checked out successfully into the translator';
$string['checkoutinprogress'] = 'Checking out strings into the translator';
$string['confirmcheckin'] = 'You are about to check in modified strings into your local language pack. This will export the customized strings from the translator into the data directory and Moodle will start using the modified strings. Press \'Continue\' button to proceed check in.';
$string['customlang:edit'] = 'Edit local translation';
$string['customlang:view'] = 'View local translation';
$string['filter'] = 'Filter strings';
$string['filtercomponent'] = 'Show strings of these components';
$string['filtercustomized'] = 'Customised only';
$string['filtercustomized'] = 'Customized only';
$string['filtermodified'] = 'Modified only';
$string['filteronlyhelps'] = 'Help only';
$string['filtershowstrings'] = 'Show strings';
$string['filterstringid'] = 'String identifier';
$string['filtersubstring'] = 'Only strings containing';
$string['headingcomponent'] = 'Component';
$string['headinglocal'] = 'Local customisation';
$string['headinglocal'] = 'Local customization';
$string['headingstandard'] = 'Standard text';
$string['headingstringid'] = 'String';
$string['markinguptodate'] = 'Marking the customisation as up-to-date';
$string['markinguptodate_help'] = 'The customised translation may get outdated if either the English original or the master translation has modified since the string was customised on your site. Review the customised translation. If you find it up-to-date, click the checkbox. Edit it otherwise.';
$string['markinguptodate'] = 'Marking the customization as up-to-date';
$string['markinguptodate_help'] = 'The customized translation may get outdated if either the English original or the master translation has modified since the string was customized on your site. Review the customized translation. If you find it up-to-date, click the checkbox. Edit it otherwise.';
$string['markuptodate'] = 'mark as up-to-date';
$string['modifiedno'] = 'There are no modified strings to save.';
$string['modifiednum'] = 'There are {$a} modified strings. Do you wish to save these changes to your local language pack?';
$string['modifiedno'] = 'There are no modified strings to check in.';
$string['modifiednum'] = 'There are {$a} modified strings. You must check in them into disk to store them permanently.';
$string['nostringsfound'] = 'No strings found, please modify the filter settings';
$string['placeholder'] = 'Placeholders';
$string['placeholder_help'] = 'Placeholders are special statements like `{$a}` or `{$a->something}` within the string. They are replaced with a value when the string is actually printed.
It is important to copy them exactly as they are in the original string. Do not translate them nor change their left-to-right orientation.';
$string['placeholderwarning'] = 'string contains a placeholder';
$string['pluginname'] = 'Language customisation';
$string['savecheckin'] = 'Save changes to the language pack';
$string['savecontinue'] = 'Apply changes and continue editing';
$string['pluginname'] = 'Language customization';
$string['savecheckin'] = 'Save and check in strings into files';
$string['savecontinue'] = 'Save and continue editing';
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,7 +16,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* @package tool
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,9 +16,9 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Definition of classes used by language customization admin tool
* Definition of classes used by language customization admin report
*
* @package tool
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -30,7 +31,7 @@ defined('MOODLE_INTERNAL') || die();
*
* All the public methods here are static ones, this class can not be instantiated
*/
class tool_customlang_utils {
class report_customlang_utils {
/**
* Rough number of strings that are being processed during a full checkout.
@@ -94,7 +95,7 @@ class tool_customlang_utils {
global $DB;
// make sure that all components are registered
$current = $DB->get_records('tool_customlang_components', null, 'name', 'name,version,id');
$current = $DB->get_records('report_customlang_components', null, 'name', 'name,version,id');
foreach (self::list_components() as $component) {
if (empty($current[$component])) {
$record = new stdclass();
@@ -104,10 +105,10 @@ class tool_customlang_utils {
} else {
$record->version = $version;
}
$DB->insert_record('tool_customlang_components', $record);
$DB->insert_record('report_customlang_components', $record);
} elseif ($version = get_component_version($component)) {
if (is_null($current[$component]->version) or ($version > $current[$component]->version)) {
$DB->set_field('tool_customlang_components', 'version', $version, array('id' => $current[$component]->id));
$DB->set_field('report_customlang_components', 'version', $version, array('id' => $current[$component]->id));
}
}
}
@@ -115,14 +116,14 @@ class tool_customlang_utils {
// initialize the progress counter - stores the number of processed strings
$done = 0;
$strinprogress = get_string('checkoutinprogress', 'tool_customlang');
$strinprogress = get_string('checkoutinprogress', 'report_customlang');
// reload components and fetch their strings
$stringman = get_string_manager();
$components = $DB->get_records('tool_customlang_components');
$components = $DB->get_records('report_customlang_components');
foreach ($components as $component) {
$sql = "SELECT stringid, id, lang, componentid, original, master, local, timemodified, timecustomized, outdated, modified
FROM {tool_customlang} s
FROM {report_customlang} s
WHERE lang = ? AND componentid = ?
ORDER BY stringid";
$current = $DB->get_records_sql($sql, array($lang, $component->id));
@@ -166,7 +167,7 @@ class tool_customlang_utils {
}
if ($needsupdate) {
$DB->update_record('tool_customlang', $current[$stringid]);
$DB->update_record('report_customlang', $current[$stringid]);
continue;
}
@@ -187,13 +188,13 @@ class tool_customlang_utils {
$record->timecustomized = null;
}
$DB->insert_record('tool_customlang', $record);
$DB->insert_record('report_customlang', $record);
}
}
}
if (!is_null($progressbar)) {
$progressbar->update_full(100, get_string('checkoutdone', 'tool_customlang'));
$progressbar->update_full(100, get_string('checkoutdone', 'report_customlang'));
}
}
@@ -212,8 +213,8 @@ class tool_customlang_utils {
// get all customized strings from updated components
$sql = "SELECT s.*, c.name AS component
FROM {tool_customlang} s
JOIN {tool_customlang_components} c ON s.componentid = c.id
FROM {report_customlang} s
JOIN {report_customlang_components} c ON s.componentid = c.id
WHERE s.lang = ?
AND (s.local IS NOT NULL OR s.modified = 1)
ORDER BY componentid, stringid";
@@ -231,7 +232,7 @@ class tool_customlang_utils {
self::dump_strings($lang, $component, $strings);
}
$DB->set_field_select('tool_customlang', 'modified', 0, 'lang = ?', array($lang));
$DB->set_field_select('report_customlang', 'modified', 0, 'lang = ?', array($lang));
$sm = get_string_manager();
$sm->reset_caches();
}
@@ -261,7 +262,7 @@ class tool_customlang_utils {
debugging('Unable to dump local strings for non-installed language pack .'.s($lang));
return false;
}
if ($component !== clean_param($component, PARAM_COMPONENT)) {
if ($component !== clean_param($component, PARAM_SAFEDIR)) {
throw new coding_exception('Incorrect component name');
}
if (!$filename = self::get_component_filename($component)) {
@@ -358,7 +359,7 @@ EOF
public static function get_count_of_modified($lang) {
global $DB;
return $DB->count_records('tool_customlang', array('lang'=>$lang, 'modified'=>1));
return $DB->count_records('report_customlang', array('lang'=>$lang, 'modified'=>1));
}
/**
@@ -369,12 +370,12 @@ EOF
* @param stdclass $persistant storage object
*/
public static function save_filter(stdclass $data, stdclass $persistant) {
if (!isset($persistant->tool_customlang_filter)) {
$persistant->tool_customlang_filter = array();
if (!isset($persistant->report_customlang_filter)) {
$persistant->report_customlang_filter = array();
}
foreach ($data as $key => $value) {
if ($key !== 'submit') {
$persistant->tool_customlang_filter[$key] = serialize($value);
$persistant->report_customlang_filter[$key] = serialize($value);
}
}
}
@@ -388,8 +389,8 @@ EOF
*/
public static function load_filter(stdclass $persistant) {
$data = new stdclass();
if (isset($persistant->tool_customlang_filter)) {
foreach ($persistant->tool_customlang_filter as $key => $value) {
if (isset($persistant->report_customlang_filter)) {
foreach ($persistant->report_customlang_filter as $key => $value) {
$data->{$key} = unserialize($value);
}
}
@@ -398,9 +399,9 @@ EOF
}
/**
* Represents the action menu of the tool
* Represents the action menu of the report
*/
class tool_customlang_menu implements renderable {
class report_customlang_menu implements renderable {
/** @var menu items */
protected $items = array();
@@ -448,7 +449,7 @@ class tool_customlang_menu implements renderable {
/**
* Represents the translation tool
*/
class tool_customlang_translator implements renderable {
class report_customlang_translator implements renderable {
/** @const int number of rows per page */
const PERPAGE = 100;
@@ -488,9 +489,9 @@ class tool_customlang_translator implements renderable {
list($insql, $inparams) = $DB->get_in_or_equal($filter->component, SQL_PARAMS_NAMED);
$csql = "SELECT COUNT(*)";
$fsql = "SELECT s.*, c.name AS component";
$sql = " FROM {tool_customlang_components} c
JOIN {tool_customlang} s ON s.componentid = c.id
$fsql = "SELECT s.id, s.*, c.name AS component";
$sql = " FROM {report_customlang_components} c
JOIN {report_customlang} s ON s.componentid = c.id
WHERE s.lang = :lang
AND c.name $insql";
@@ -14,7 +14,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* @package tool
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -23,20 +23,20 @@
/**
* @namespace
*/
M.tool_customlang = M.tool_customlang || {};
M.report_customlang = M.report_customlang || {};
/**
* YUI instance holder
*/
M.tool_customlang.Y = {};
M.report_customlang.Y = {};
/**
* Initialize JS support for the edit.php
*
* @param {Object} Y YUI instance
*/
M.tool_customlang.init_editor = function(Y) {
M.tool_customlang.Y = Y;
M.report_customlang.init_editor = function(Y) {
M.report_customlang.Y = Y;
Y.all('#translator .local textarea').each(function (textarea) {
var cell = textarea.get('parentNode');
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,9 +16,9 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Output rendering of Language customization admin tool
* Output rendering of Language customization admin report
*
* @package tool
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,16 +27,16 @@
defined('MOODLE_INTERNAL') || die();
/**
* Rendering methods for the tool widgets
* Rendering methods for the report widgets
*/
class tool_customlang_renderer extends plugin_renderer_base {
class report_customlang_renderer extends plugin_renderer_base {
/**
* Renders customlang tool menu
* Renders customlang report menu
*
* @return string HTML
*/
protected function render_tool_customlang_menu(tool_customlang_menu $menu) {
protected function render_report_customlang_menu(report_customlang_menu $menu) {
$output = '';
foreach ($menu->get_items() as $item) {
$output .= $this->single_button($item->url, $item->title, $item->method);
@@ -46,23 +47,23 @@ class tool_customlang_renderer extends plugin_renderer_base {
/**
* Renders customlang translation table
*
* @param tool_customlang_translator $translator
* @param report_customlang_translator $translator
* @return string HTML
*/
protected function render_tool_customlang_translator(tool_customlang_translator $translator) {
protected function render_report_customlang_translator(report_customlang_translator $translator) {
$output = '';
if (empty($translator->strings)) {
return $this->heading(get_string('nostringsfound', 'tool_customlang'), 3);
return $this->heading(get_string('nostringsfound', 'report_customlang'), 3);
}
$table = new html_table();
$table->id = 'translator';
$table->head = array(
get_string('headingcomponent', 'tool_customlang'),
get_string('headingstringid', 'tool_customlang'),
get_string('headingstandard', 'tool_customlang'),
get_string('headinglocal', 'tool_customlang'),
get_string('headingcomponent', 'report_customlang'),
get_string('headingstringid', 'report_customlang'),
get_string('headingstandard', 'report_customlang'),
get_string('headinglocal', 'report_customlang'),
);
foreach ($translator->strings as $string) {
@@ -77,8 +78,8 @@ class tool_customlang_renderer extends plugin_renderer_base {
$master = html_writer::tag('div', s($string->master), array('class' => 'preformatted'));
$minheight = strlen($string->master) / 200;
if (preg_match('/\{\$a(->.+)?\}/', $string->master)) {
$master .= html_writer::tag('div', $this->help_icon('placeholder', 'tool_customlang',
get_string('placeholderwarning', 'tool_customlang')), array('class' => 'placeholderinfo'));
$master .= html_writer::tag('div', $this->help_icon('placeholder', 'report_customlang',
get_string('placeholderwarning', 'report_customlang')), array('class' => 'placeholderinfo'));
}
$cells[2] = new html_table_cell($master);
$cells[2]->attributes['class'] = 'standard master';
@@ -92,8 +93,8 @@ class tool_customlang_renderer extends plugin_renderer_base {
if (!is_null($string->local) and $string->outdated) {
$mark = html_writer::empty_tag('input', array('type' => 'checkbox', 'id' => 'update_' . $string->id,
'name' => 'updates[]', 'value' => $string->id));
$help = $this->help_icon('markinguptodate', 'tool_customlang');
$mark .= html_writer::tag('label', get_string('markuptodate', 'tool_customlang') . $help,
$help = $this->help_icon('markinguptodate', 'report_customlang');
$mark .= html_writer::tag('label', get_string('markuptodate', 'report_customlang') . $help,
array('for' => 'update_' . $string->id));
$mark = html_writer::tag('div', $mark, array('class' => 'uptodatewrapper'));
} else {
@@ -133,8 +134,8 @@ class tool_customlang_renderer extends plugin_renderer_base {
$output .= html_writer::start_tag('div');
$output .= html_writer::empty_tag('input', array('type'=>'hidden', 'name'=>'translatorsubmitted', 'value'=>1));
$output .= html_writer::empty_tag('input', array('type'=>'hidden', 'name'=>'sesskey', 'value'=>sesskey()));
$save1 = html_writer::empty_tag('input', array('type'=>'submit', 'name'=>'savecontinue', 'value'=>get_string('savecontinue', 'tool_customlang')));
$save2 = html_writer::empty_tag('input', array('type'=>'submit', 'name'=>'savecheckin', 'value'=>get_string('savecheckin', 'tool_customlang')));
$save1 = html_writer::empty_tag('input', array('type'=>'submit', 'name'=>'savecontinue', 'value'=>get_string('savecontinue', 'report_customlang')));
$save2 = html_writer::empty_tag('input', array('type'=>'submit', 'name'=>'savecheckin', 'value'=>get_string('savecheckin', 'report_customlang')));
$output .= html_writer::tag('fieldset', $save1.$save2, array('class'=>'buttonsbar'));
$output .= html_writer::table($table);
$output .= html_writer::tag('fieldset', $save1.$save2, array('class'=>'buttonsbar'));
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,7 +16,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* @package tool
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -23,4 +24,4 @@
defined('MOODLE_INTERNAL') || die();
$ADMIN->add('language', new admin_externalpage('toolcustomlang', get_string('pluginname', 'tool_customlang'), "$CFG->wwwroot/$CFG->admin/tool/customlang/index.php", 'tool/customlang:view'));
$ADMIN->add('language', new admin_externalpage('reportcustomlang', get_string('pluginname', 'report_customlang'), "$CFG->wwwroot/$CFG->admin/report/customlang/index.php", 'report/customlang:view'));
+69
View File
@@ -0,0 +1,69 @@
.path-admin-report-customlang .langselectorbox,
.path-admin-report-customlang fieldset.buttonsbar,
.path-admin-report-customlang .menu {
margin: 5px auto;
text-align: center;
}
.path-admin-report-customlang .menu .singlebutton,
.path-admin-report-customlang .menu .singlebutton form,
.path-admin-report-customlang .menu .singlebutton form div {
display: inline;
}
.path-admin-report-customlang .mform.filterform {
width: 70%;
margin-left: auto;
margin-right: auto;
}
.path-admin-report-customlang .mform.filterform .fitem .fitemtitle {
width: 30%;
}
.path-admin-report-customlang .mform.filterform .fitem .felement {
width: 60%;
margin-left: 31%;
}
.path-admin-report-customlang #translator {
width: 100%;
}
.path-admin-report-customlang #translator .standard,
.path-admin-report-customlang #translator .local {
min-width: 35%;
}
.path-admin-report-customlang #translator .customized {
background-color: #e7f1c3;
}
.path-admin-report-customlang #translator .customized.outdated {
background-color: #f3f2aa;
}
.path-admin-report-customlang #translator .modified {
background-color: #ffd3d9;
}
.path-admin-report-customlang #translator .customized.modified {
background-color: #d2ebff;
}
.path-admin-report-customlang #translator textarea {
width: 100%;
min-height: 4em;
}
.path-admin-report-customlang #translator .placeholderinfo {
text-align: center;
border: 1px dotted #ddd;
background-color: #f6f6f6;
margin-top: 0.5em;
}
#page-admin-report-customlang-index .continuebutton {
margin-top: 1em;
}
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,9 +16,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Version information
*
* @package tool
* @package report
* @subpackage customlang
* @copyright 2010 David Mudrak <david@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -25,6 +24,5 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2011092500;
$plugin->requires = 2011092100;
$plugin->component = 'tool_customlang'; // Full name of the plugin (used for diagnostics)
$plugin->version = 2011041900;
$plugin->requires = 2010120700;
+7
View File
@@ -0,0 +1,7 @@
<?php
defined('MOODLE_INTERNAL') || die;
// 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,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,9 +16,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Profiling tool.
*
* @package tool
* @package core
* @subpackage profiling
* @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -25,9 +24,7 @@
// TODO: Move all the DB stuff to profiling_db_xxxx() function in xhprof_moodle.php
// TODO: it is wrong when core lib references ANY plugin lang strings, maybe more login could be moved here (skodak)
require_once(dirname(__FILE__) . '/../../../config.php');
require_once(dirname(__FILE__).'/../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir . '/xhprof/xhprof_moodle.php');
@@ -44,11 +41,11 @@ $runcomment = optional_param('runcomment', null, PARAM_TEXT);
$dbfields = 'runid, url, totalexecutiontime, totalcputime, ' .
'totalcalls, totalmemory, runreference, runcomment, timecreated';
admin_externalpage_setup('toolprofiling');
admin_externalpage_setup('reportprofiling');
// Always add listurl if available
if ($listurl) {
$listurlnav = new moodle_url('/admin/tool/profiling/index.php', array('listurl' => $listurl));
$listurlnav = new moodle_url('/admin/report/profiling/index.php', array('listurl' => $listurl));
$PAGE->navbar->add($listurl, $listurlnav);
}
@@ -68,7 +65,7 @@ if (isset($script)) {
// No run found for script, warn and exit
if (!$run) {
notice(get_string('cannotfindanyrunforurl', 'tool_profiling', $script), 'index.php');
notice(get_string('cannotfindanyrunforurl', 'report_profiling', $script), 'index.php');
}
// Check if there is any previous run marked as reference one
@@ -78,7 +75,7 @@ if (isset($script)) {
'timecreated DESC', 'runid', 0, 1);
$prevrunid = $prevreferences ? reset($prevreferences)->runid : false;
echo $OUTPUT->box_start('generalbox boxwidthwide boxaligncenter');
$header = get_string('lastrunof', 'tool_profiling', $script);
$header = get_string('lastrunof', 'report_profiling', $script);
echo $OUTPUT->heading($header);
$table = profiling_print_run($run, $prevrunid);
echo $table;
@@ -96,7 +93,7 @@ if (isset($script)) {
$run2 = $runtemp;
}
echo $OUTPUT->box_start('generalbox boxwidthwide boxaligncenter');
$header = get_string('differencesbetween2runsof', 'tool_profiling', $run1->url);
$header = get_string('differencesbetween2runsof', 'report_profiling', $run1->url);
echo $OUTPUT->heading($header);
$table = profiling_print_rundiff($run1, $run2);
echo $table;
@@ -120,7 +117,7 @@ if (isset($script)) {
// No run found for runid, warn and exit
if (!$run) {
notice(get_string('cannotfindanyrunforrunid', 'tool_profiling', $runid), 'index.php');
notice(get_string('cannotfindanyrunforrunid', 'report_profiling', $runid), 'index.php');
}
// Check if there is any previous run marked as reference one
@@ -130,7 +127,7 @@ if (isset($script)) {
'timecreated DESC', 'runid', 0, 1);
$prevrunid = $prevreferences ? reset($prevreferences)->runid : false;
echo $OUTPUT->box_start('generalbox boxwidthwide boxaligncenter');
$header = get_string('summaryof', 'tool_profiling', $run->url);
$header = get_string('summaryof', 'report_profiling', $run->url);
echo $OUTPUT->heading($header);
$table = profiling_print_run($run, $prevrunid);
echo $table;
@@ -142,17 +139,17 @@ if (isset($script)) {
// The flexitable that will root listings
$table = new xhprof_table_sql('profiling-list-table');
$baseurl = $CFG->wwwroot . '/'.$CFG->admin.'/tool/profiling/index.php';
$baseurl = $CFG->wwwroot . '/admin/report/profiling/index.php';
// Check if we are listing all or some URL ones
$sqlconditions = '';
$sqlparams = array();
if (!isset($listurl)) {
$header = get_string('pluginname', 'tool_profiling');
$header = get_string('pluginname', 'report_profiling');
$sqlconditions = '1 = 1';
$table->set_listurlmode(false);
} else {
$header = get_string('profilingrunsfor', 'tool_profiling', $listurl);
$header = get_string('profilingrunsfor', 'report_profiling', $listurl);
$sqlconditions = 'url = :url';
$sqlparams['url'] = $listurl;
$table->set_listurlmode(true);
@@ -170,9 +167,9 @@ if (isset($script)) {
'url', 'timecreated', 'totalexecutiontime', 'totalcputime',
'totalcalls', 'totalmemory', 'runcomment');
$headers = array(
get_string('url'), get_string('date'), get_string('executiontime', 'tool_profiling'),
get_string('cputime', 'tool_profiling'), get_string('calls', 'tool_profiling'),
get_string('memory', 'tool_profiling'), get_string('comment', 'tool_profiling'));
get_string('url'), get_string('date'), get_string('executiontime', 'report_profiling'),
get_string('cputime', 'report_profiling'), get_string('calls', 'report_profiling'),
get_string('memory', 'report_profiling'), get_string('comment', 'report_profiling'));
$table->define_columns($columns);
$table->define_headers($headers);
$table->sortable(true, 'timecreated', SORT_DESC);
@@ -16,12 +16,11 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Strings for component 'tool_profiling', language 'en', branch 'MOODLE_22_STABLE'
* Strings for component 'report_profiling', language 'en', branch 'MOODLE_20_STABLE'
*
* @package tool
* @subpackage profiling
* @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package report_profiling
* @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['calls'] = 'Function calls';
+8
View File
@@ -0,0 +1,8 @@
<?php
defined('MOODLE_INTERNAL') || die;
// profiling report, added to development
if (extension_loaded('xhprof') && function_exists('xhprof_enable') && (!empty($CFG->profilingenabled) || !empty($CFG->earlyprofilingenabled))) {
$ADMIN->add('development', new admin_externalpage('reportprofiling', get_string('pluginname', 'report_profiling'), "$CFG->wwwroot/$CFG->admin/report/profiling/index.php", 'moodle/site:config'));
}
+25
View File
@@ -0,0 +1,25 @@
/* report_profiling styles */
.path-admin-report-profiling .profilingruntable .label {
font-weight: bold;
}
.path-admin-report-profiling .profiling_worse {
color: red;
}
.path-admin-report-profiling .profiling_better {
color: green;
}
.path-admin-report-profiling .profiling_same {
color: dimgrey;
}
.path-admin-report-profiling .profiling_important,
.path-admin-report-profiling .flexible .referencerun {
font-weight: bold;
}
.path-admin-report-profiling .flexible .r1 .cell {
background-color: whitesmoke;
}
.path-admin-report-profiling .flexible {
margin-left:auto;
margin-right:auto
}
@@ -0,0 +1,37 @@
<?php
///////////////////////////////////////////////////////////////////////////
// //
// 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 //
// //
///////////////////////////////////////////////////////////////////////////
$capabilities = array(
'report/questioninstances:view' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'manager' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/site:config',
)
);
@@ -1,29 +1,13 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* For a given question type, list the number of
*
* @package report
* @subpackage questioninstances
* @copyright 2008 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
* @package roles
*/
require(dirname(__FILE__).'/../../config.php');
/** */
require_once(dirname(__FILE__).'/../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/questionlib.php');
@@ -62,39 +46,32 @@ if ($requestedqtype) {
// Work out the bits needed for the SQL WHERE clauses.
if ($requestedqtype == 'missingtype') {
$title = get_string('reportformissingqtypes', 'report_questioninstances');
$othertypes = array_keys($qtypes);
$key = array_search('missingtype', $othertypes);
unset($othertypes[$key]);
list($sqlqtypetest, $params) = $DB->get_in_or_equal($othertypes, SQL_PARAMS_QM, '', false);
$sqlqtypetest = 'WHERE qtype ' . $sqlqtypetest;
$title = get_string('reportformissingqtypes', 'report_questioninstances');
} else if ($requestedqtype == '_all_') {
$title = get_string('reportforallqtypes', 'report_questioninstances');
$sqlqtypetest = '';
$params = array();
$title = get_string('reportforallqtypes', 'report_questioninstances');
} else {
$title = get_string('reportforqtype', 'report_questioninstances',
question_bank::get_qtype($requestedqtype)->local_name());
$sqlqtypetest = 'WHERE qtype = ?';
$params = array($requestedqtype);
$title = get_string('reportforqtype', 'report_questioninstances',
question_bank::get_qtype($requestedqtype)->local_name());
}
// Get the question counts, and all the context information, for each
// context. That is, rows of these results can be used as $context objects.
$ctxpreload = context_helper::get_preload_record_columns_sql('con');
$ctxgroupby = implode(',', array_keys(context_helper::get_preload_record_columns('con')));
$counts = $DB->get_records_sql("
SELECT qc.contextid, count(1) as numquestions, sum(hidden) as numhidden, $ctxpreload
SELECT qc.contextid, count(1) as numquestions, sum(hidden) as numhidden, con.id, con.contextlevel, con.instanceid, con.path, con.depth
FROM {question} q
JOIN {question_categories} qc ON q.category = qc.id
JOIN {context} con ON con.id = qc.contextid
$sqlqtypetest
GROUP BY qc.contextid, $ctxgroupby
GROUP BY contextid, con.id, con.contextlevel, con.instanceid, con.path, con.depth
ORDER BY numquestions DESC, numhidden ASC, con.contextlevel ASC, con.id ASC", $params);
// Print the report heading.
@@ -117,10 +94,8 @@ if ($requestedqtype) {
$totalhidden = 0;
foreach ($counts as $count) {
// Work out a link for editing questions in this context.
context_helper::preload_from_record($count);
$context = context::instance_by_id($count->contextid);
$contextname = $context->get_context_name();
$url = question_edit_url($context);
$contextname = print_context_name($count);
$url = question_edit_url($count);
if ($url) {
$contextname = '<a href="' . $url . '" title="' .
get_string('editquestionshere', 'report_questioninstances') .
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,12 +16,11 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* lang strings
* Strings for component 'report_questioninstances', language 'en', branch 'MOODLE_20_STABLE'
*
* @package report
* @subpackage questioninstances
* @copyright 2008 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package report_questioninstances
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['editquestionshere'] = 'Edit questions in this context';
@@ -0,0 +1,5 @@
<?php
defined('MOODLE_INTERNAL') || die;
$ADMIN->add('reports', new admin_externalpage('reportquestioninstances', get_string('pluginname', 'report_questioninstances'), "$CFG->wwwroot/$CFG->admin/report/questioninstances/index.php", 'report/questioninstances:view'));
@@ -0,0 +1,27 @@
<?PHP
///////////////////////////////////////////////////////////////////////////
// //
// 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 = 2010090501;
$plugin->requires = 2010090501;
+36
View File
@@ -0,0 +1,36 @@
<?php
///////////////////////////////////////////////////////////////////////////
// //
// 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 //
// //
///////////////////////////////////////////////////////////////////////////
$capabilities = array(
'report/security:view' => array(
'riskbitmask' => RISK_CONFIG,
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'manager' => CAP_ALLOW
),
)
);
@@ -1,32 +1,32 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Security overview report
*
* @package report
* @subpackage security
* @copyright 2008 petr Skoda
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
///////////////////////////////////////////////////////////////////////////
// //
// 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 //
// //
///////////////////////////////////////////////////////////////////////////
define('NO_OUTPUT_BUFFERING', true);
require('../../config.php');
require_once($CFG->dirroot.'/report/security/locallib.php');
require_once('../../../config.php');
require_once($CFG->dirroot.'/'.$CFG->admin.'/report/security/lib.php');
require_once($CFG->libdir.'/adminlib.php');
require_login();
@@ -69,7 +69,7 @@ $statusarr = array(REPORT_SECURITY_OK => $strok,
REPORT_SECURITY_SERIOUS => $strserious,
REPORT_SECURITY_CRITICAL => $strcritical);
$url = "$CFG->wwwroot/report/security/index.php";
$url = "$CFG->wwwroot/$CFG->admin/report/security/index.php";
if ($issue and ($result = $issue(true))) {
report_security_hide_timearning();
@@ -88,7 +88,7 @@ if ($issue and ($result = $issue(true))) {
$row[2] = $result->info;
$row[3] = is_null($result->link) ? '&nbsp;' : $result->link;
$PAGE->set_docs_path('report/security/' . $issue);
$PAGE->set_docs_path('admin/report/security/' . $issue);
$table->data[] = $row;
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,12 +16,11 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Lang strings
* Strings for component 'report_security', language 'en', branch 'MOODLE_20_STABLE'
*
* @package report
* @subpackage security
* @copyright 2008 petr Skoda
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package report_security
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['configuration'] = 'Configuration';
@@ -1,29 +1,29 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Lib functions
*
* @package report
* @subpackage security
* @copyright 2008 petr Skoda
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
///////////////////////////////////////////////////////////////////////////
// //
// 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 //
// //
///////////////////////////////////////////////////////////////////////////
defined('MOODLE_INTERNAL') || die;
require_once("$CFG->libdir/adminlib.php");
define('REPORT_SECURITY_OK', 'ok');
@@ -752,7 +752,7 @@ function report_security_check_riskadmin($detailed=false) {
$url = "$CFG->wwwroot/user/view.php?id=$user->id";
$admins[$uid] = '<li><a href="'.$url.'">'.fullname($user).' ('.$user->email.')</a></li>';
}
$admins = '<ul>'.implode('', $admins).'</ul>';
$admins = '<ul>'.implode($admins).'</ul>';
}
$result->status = REPORT_SECURITY_OK;
@@ -856,7 +856,7 @@ function report_security_check_riskbackup($detailed=false) {
$role->url = "$CFG->wwwroot/$CFG->admin/roles/override.php?contextid=$role->contextid&amp;roleid=$role->id";
$links[] = '<li>'.get_string('check_riskbackup_editoverride', 'report_security', $role).'</li>';
}
$links = '<ul>'.implode('', $links).'</ul>';
$links = '<ul>'.implode($links).'</ul>';
$result->details .= get_string('check_riskbackup_details_overriddenroles', 'report_security', $links);
}
@@ -874,7 +874,7 @@ function report_security_check_riskbackup($detailed=false) {
$users[] = '<li>'.get_string('check_riskbackup_unassign', 'report_security', $a).'</li>';
}
if (!empty($users)) {
$users = '<ul>'.implode('', $users).'</ul>';
$users = '<ul>'.implode($users).'</ul>';
$result->details .= get_string('check_riskbackup_details_users', 'report_security', $users);
}
}
+5
View File
@@ -0,0 +1,5 @@
<?php
defined('MOODLE_INTERNAL') || die;
$ADMIN->add('reports', new admin_externalpage('reportsecurity', get_string('pluginname', 'report_security'), "$CFG->wwwroot/$CFG->admin/report/security/index.php",'report/security:view'));
+27
View File
@@ -0,0 +1,27 @@
<?PHP
///////////////////////////////////////////////////////////////////////////
// //
// 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 = 2010090501;
$plugin->requires = 2010090501;
@@ -40,7 +40,7 @@ $reset = optional_param('reset', '', PARAM_RAW);
$id = optional_param('id', '', PARAM_INT);
require_login();
admin_externalpage_setup('toolspamcleaner');
admin_externalpage_setup('reportspamcleaner', '', null, '', array('pagelayout'=>'report'));
// Delete one user
if (!empty($del) && confirm_sesskey() && ($id != $USER->id)) {
@@ -79,14 +79,14 @@ if (!empty($ignore)) {
exit;
}
$PAGE->requires->js_init_call('M.tool_spamcleaner.init', array(me()), true);
$PAGE->requires->js_init_call('M.report_spamcleaner.init', array(me()), true);
$strings = Array('spaminvalidresult','spamdeleteallconfirm','spamcannotdelete','spamdeleteconfirm');
$PAGE->requires->strings_for_js($strings, 'tool_spamcleaner');
$PAGE->requires->strings_for_js($strings, 'report_spamcleaner');
echo $OUTPUT->header();
// Print headers and things
echo $OUTPUT->box(get_string('spamcleanerintro', 'tool_spamcleaner'));
echo $OUTPUT->box(get_string('spamcleanerintro', 'report_spamcleaner'));
echo $OUTPUT->box_start(); // The forms section at the top
@@ -96,19 +96,18 @@ echo $OUTPUT->box_start(); // The forms section at the top
<form method="post" action="index.php">
<div>
<label class="accesshide" for="keyword_el"><?php print_string('spamkeyword', 'tool_spamcleaner') ?></label>
<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', 'tool_spamcleaner')?>" />
<input type="submit" value="<?php echo get_string('spamsearch', 'report_spamcleaner')?>" />
</div>
</form>
<p><?php echo get_string('spameg', 'tool_spamcleaner');?></p>
<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', 'tool_spamcleaner');?>" />
<input type="submit" name="autodetect" value="<?php echo get_string('spamauto', 'report_spamcleaner');?>" />
</div>
</form>
@@ -158,54 +157,21 @@ function search_spammers($keywords) {
$params['descpat'.$i] = "%$keyword%";
$keywordfull2[] = $DB->sql_like('p.summary', ':sumpat'.$i, false);
$params['sumpat'.$i] = "%$keyword%";
$keywordfull3[] = $DB->sql_like('p.subject', ':subpat'.$i, false);
$params['subpat'.$i] = "%$keyword%";
$keywordfull4[] = $DB->sql_like('c.content', ':contpat'.$i, false);
$params['contpat'.$i] = "%$keyword%";
$keywordfull5[] = $DB->sql_like('m.fullmessage', ':msgpat'.$i, false);
$params['msgpat'.$i] = "%$keyword%";
$keywordfull6[] = $DB->sql_like('fp.message', ':forumpostpat'.$i, false);
$params['forumpostpat'.$i] = "%$keyword%";
$keywordfull7[] = $DB->sql_like('fp.subject', ':forumpostsubpat'.$i, false);
$params['forumpostsubpat'.$i] = "%$keyword%";
$i++;
}
$conditions = '( '.implode(' OR ', $keywordfull).' )';
$conditions2 = '( '.implode(' OR ', $keywordfull2).' )';
$conditions3 = '( '.implode(' OR ', $keywordfull3).' )';
$conditions4 = '( '.implode(' OR ', $keywordfull4).' )';
$conditions5 = '( '.implode(' OR ', $keywordfull5).' )';
$conditions6 = '( '.implode(' OR ', $keywordfull6).' )';
$conditions7 = '( '.implode(' OR ', $keywordfull7).' )';
$sql = "SELECT * FROM {user} WHERE deleted = 0 AND id <> :userid AND $conditions"; // Exclude oneself
$sql2 = "SELECT u.*, p.summary FROM {user} AS u, {post} AS p WHERE $conditions2 AND u.deleted = 0 AND u.id=p.userid AND u.id <> :userid";
$sql3 = "SELECT u.*, p.subject as postsubject FROM {user} AS u, {post} AS p WHERE $conditions3 AND u.deleted = 0 AND u.id=p.userid AND u.id <> :userid";
$sql4 = "SELECT u.*, c.content FROM {user} AS u, {comments} AS c WHERE $conditions4 AND u.deleted = 0 AND u.id=c.userid AND u.id <> :userid";
$sql5 = "SELECT u.*, m.fullmessage FROM {user} AS u, {message} AS m WHERE $conditions5 AND u.deleted = 0 AND u.id=m.useridfrom AND u.id <> :userid";
$sql6 = "SELECT u.*, fp.message FROM {user} AS u, {forum_posts} AS fp WHERE $conditions6 AND u.deleted = 0 AND u.id=fp.userid AND u.id <> :userid";
$sql7 = "SELECT u.*, fp.subject FROM {user} AS u, {forum_posts} AS fp WHERE $conditions7 AND u.deleted = 0 AND u.id=fp.userid AND u.id <> :userid";
$spamusers_desc = $DB->get_recordset_sql($sql, $params);
$spamusers_blog = $DB->get_recordset_sql($sql2, $params);
$spamusers_blogsub = $DB->get_recordset_sql($sql3, $params);
$spamusers_comment = $DB->get_recordset_sql($sql4, $params);
$spamusers_message = $DB->get_recordset_sql($sql5, $params);
$spamusers_forumpost = $DB->get_recordset_sql($sql6, $params);
$spamusers_forumpostsub = $DB->get_recordset_sql($sql7, $params);
$keywordlist = implode(', ', $keywords);
echo $OUTPUT->box(get_string('spamresult', 'tool_spamcleaner').s($keywordlist)).' ...';
echo $OUTPUT->box(get_string('spamresult', 'report_spamcleaner').s($keywordlist)).' ...';
print_user_list(array($spamusers_desc, $spamusers_blog), $keywords);
print_user_list(array($spamusers_desc,
$spamusers_blog,
$spamusers_blogsub,
$spamusers_comment,
$spamusers_message,
$spamusers_forumpost,
$spamusers_forumpostsub
),
$keywords);
}
@@ -220,7 +186,7 @@ function print_user_list($users_rs, $keywords) {
foreach ($users_rs as $rs){
foreach ($rs as $user) {
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', 'tool_spamcleaner').'</th><th>'.get_string('spamoperation', 'tool_spamcleaner').'</th></tr>';
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);
@@ -228,12 +194,12 @@ function print_user_list($users_rs, $keywords) {
}
if (!$count) {
echo get_string('spamcannotfinduser', 'tool_spamcleaner');
echo get_string('spamcannotfinduser', 'report_spamcleaner');
} else {
echo '</table>';
echo '<div class="mld-align">
<button id="removeall_btn">'.get_string('spamdeleteall', 'tool_spamcleaner').'</button>
<button id="removeall_btn">'.get_string('spamdeleteall', 'report_spamcleaner').'</button>
</div>';
}
}
@@ -244,25 +210,9 @@ function filter_user($user, $keywords, $count) {
$image_search = true;
}
if (isset($user->summary)) {
$user->description = '<h3>'.get_string('spamfromblog', 'tool_spamcleaner').'</h3>'.$user->summary;
$user->description = '<h3>'.get_string('spamfromblog', 'report_spamcleaner').'</h3>'.$user->summary;
unset($user->summary);
} else if (isset($user->postsubject)) {
$user->description = '<h3>'.get_string('spamfromblog', 'tool_spamcleaner').'</h3>'.$user->postsubject;
unset($user->postsubject);
} else if (isset($user->content)) {
$user->description = '<h3>'.get_string('spamfromcomments', 'tool_spamcleaner').'</h3>'.$user->content;
unset($user->content);
} else if (isset($user->fullmessage)) {
$user->description = '<h3>'.get_string('spamfrommessages', 'tool_spamcleaner').'</h3>'.$user->fullmessage;
unset($user->fullmessage);
} else if (isset($user->message)) {
$user->description = '<h3>'.get_string('spamfromforumpost', 'tool_spamcleaner').'</h3>'.$user->message;
unset($user->message);
} else if (isset($user->subject)) {
$user->description = '<h3>'.get_string('spamfromforumpost', 'tool_spamcleaner').'</h3>'.$user->subject;
unset($user->subject);
}
if (preg_match('#<img.*src=[\"\']('.$CFG->wwwroot.')#', $user->description, $matches)
&& $image_search) {
$result = false;
@@ -321,8 +271,8 @@ function print_user_entry($user, $keywords, $count) {
$html .= '<td align="left">'.format_text($user->description, $user->descriptionformat, array('overflowdiv'=>true)).'</td>';
$html .= '<td width="100px" align="center">';
$html .= '<button onclick="M.tool_spamcleaner.del_user(this,'.$user->id.')">'.get_string('deleteuser', 'admin').'</button><br />';
$html .= '<button onclick="M.tool_spamcleaner.ignore_user(this,'.$user->id.')">'.get_string('ignore', 'admin').'</button>';
$html .= '<button onclick="M.report_spamcleaner.del_user(this,'.$user->id.')">'.get_string('deleteuser', 'admin').'</button><br />';
$html .= '<button onclick="M.report_spamcleaner.ignore_user(this,'.$user->id.')">'.get_string('ignore', 'admin').'</button>';
$html .= '</td>';
$html .= '</tr>';
return $html;
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -15,12 +16,11 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Strings for component 'tool_spamcleaner', language 'en', branch 'MOODLE_22_STABLE'
* Strings for component 'report_spamcleaner', language 'en', branch 'MOODLE_20_STABLE'
*
* @package tool
* @subpackage spamcleaner
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package report_spamcleaner
* @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string['pluginname'] = 'Spam cleaner';
@@ -34,11 +34,7 @@ $string['spamdeleteconfirm'] = 'Are you sure you want to delete this entry? You
$string['spamdesc'] = 'Description';
$string['spameg'] = 'eg: casino, porn, xxx';
$string['spamfromblog'] = 'From blog post:';
$string['spamfromcomments'] = 'From comments:';
$string['spamfrommessages'] = 'From messages:';
$string['spamfromforumpost'] = 'From forum post:';
$string['spaminvalidresult'] = 'Unknown but invalid result';
$string['spamkeyword'] = 'Keyword';
$string['spamoperation'] = 'Operation';
$string['spamresult'] = 'Results of searching user profiles containing:';
$string['spamsearch'] = 'Search for these keywords';
@@ -1,12 +1,12 @@
M.tool_spamcleaner = {
M.report_spamcleaner = {
Y: null,
row: null,
me: null,
del_all: function() {
var context = M.tool_spamcleaner;
var context = M.report_spamcleaner;
var yes = confirm(M.str.tool_spamcleaner.spamdeleteallconfirm);
var yes = confirm(M.str.report_spamcleaner.spamdeleteallconfirm);
if (yes) {
var cfg = {
method: "POST",
@@ -15,7 +15,7 @@ M.tool_spamcleaner = {
try {
var resp = context.Y.JSON.parse(o.responseText);
} catch(e) {
alert(M.str.tool_spamcleaner.spaminvalidresult);
alert(M.str.report_spamcleaner.spaminvalidresult);
return;
}
if (resp == true) {
@@ -29,14 +29,14 @@ M.tool_spamcleaner = {
},
del_user: function(obj, id) {
var context = M.tool_spamcleaner;
var context = M.report_spamcleaner;
if (context.Y == null) {
// not initialised yet
return;
}
var yes = confirm(M.str.tool_spamcleaner.spamdeleteconfirm);
var yes = confirm(M.str.report_spamcleaner.spamdeleteconfirm);
if (yes) {
context.row = obj;
var cfg = {
@@ -46,7 +46,7 @@ M.tool_spamcleaner = {
try {
var resp = context.Y.JSON.parse(o.responseText);
} catch(e) {
alert(M.str.tool_spamcleaner.spaminvalidresult);
alert(M.str.report_spamcleaner.spaminvalidresult);
return;
}
if (context.row) {
@@ -57,7 +57,7 @@ M.tool_spamcleaner = {
context.row.parentNode.removeChild(context.row);
context.row = null;
} else {
alert(M.str.tool_spamcleaner.spamcannotdelete);
alert(M.str.report_spamcleaner.spamcannotdelete);
}
}
}
@@ -68,7 +68,7 @@ M.tool_spamcleaner = {
},
ignore_user: function(obj, id) {
var context = M.tool_spamcleaner;
var context = M.report_spamcleaner;
if (context.Y == null) {
// not initilised yet
@@ -83,7 +83,7 @@ M.tool_spamcleaner = {
try {
var resp = context.Y.JSON.parse(o.responseText);
} catch(e) {
alert(M.str.tool_spamcleaner.spaminvalidresult);
alert(M.str.report_spamcleaner.spaminvalidresult);
return;
}
if (context.row) {
@@ -102,9 +102,9 @@ M.tool_spamcleaner = {
},
init: function(Y, me) {
var context = M.tool_spamcleaner;
var context = M.report_spamcleaner;
Y.use('json', 'io-base', function (Y) {
Y.use('json', 'io', function (Y) {
context.Y = Y;
context.me = me;
if (Y.one("#removeall_btn")) {
+7
View File
@@ -0,0 +1,7 @@
<?php
defined('MOODLE_INTERNAL') || die;
// spam cleaner
$ADMIN->add('reports', new admin_externalpage('reportspamcleaner', get_string('pluginname', 'report_spamcleaner'), "$CFG->wwwroot/$CFG->admin/report/spamcleaner/index.php", 'moodle/site:config'));
+6
View File
@@ -0,0 +1,6 @@
<?php
defined('MOODLE_INTERNAL') || die;
// 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'));
@@ -1,4 +1,5 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -20,8 +21,8 @@
* Syntax: coveragefile.php/path/to/file/file.html
* coveragefile.php?file=path/to/file/file.html
*
* @package tool
* @subpackage unittest
* @package moodlecore
* @subpackage simpletestcoverage
* @copyright 2003 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
@@ -29,12 +30,12 @@
// disable moodle specific debug messages and any errors in output
define('NO_DEBUG_DISPLAY', true);
require(dirname(__FILE__) . '/../../../config.php');
require_once(dirname(__FILE__) . '/../../../config.php');
require_once($CFG->libdir . '/filelib.php');
// basic security, require login + require site config cap
require_login();
require_capability('tool/unittest:execute', get_context_instance(CONTEXT_SYSTEM));
require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
// get file requested
$relativepath = get_file_argument();
+38
View File
@@ -0,0 +1,38 @@
<?php
///////////////////////////////////////////////////////////////////////////
// //
// 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 //
// //
///////////////////////////////////////////////////////////////////////////
$capabilities = array(
'report/unittest:view' => array(
'riskbitmask' => RISK_DATALOSS,
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'manager' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/site:config',
)
);
@@ -1,43 +1,23 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Run database functional tests.
*
* @package tool
* @subpackage unittest
* @copyright 2008 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package SimpleTestEx
*/
define('NO_OUTPUT_BUFFERING', true);
require(dirname(__FILE__) . '/../../../config.php');
require_once(dirname(__FILE__).'/../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once('simpletestlib.php');
require_once('simpletestcoveragelib.php');
require_once($CFG->libdir.'/simpletestcoveragelib.php');
require_once('ex_simple_test.php');
require_once('ex_reporter.php');
$showpasses = optional_param('showpasses', false, PARAM_BOOL);
$codecoverage = optional_param('codecoverage', false, PARAM_BOOL);
$selected = optional_param_array('selected', array(), PARAM_INT);
$selected = optional_param('selected', array(), PARAM_INT);
// Print the header and check access.
admin_externalpage_setup('tooldbtest');
admin_externalpage_setup('reportdbtest');
echo $OUTPUT->header();
global $UNITTEST;
@@ -128,11 +108,11 @@ echo $OUTPUT->box_start('generalbox boxwidthwide boxaligncenter');
echo '<form method="post" action="dbtest.php">';
echo '<div>';
echo $OUTPUT->heading("Run functional database tests"); // TODO: localise
echo '<p>'.html_writer::checkbox('showpasses', 1, $showpasses, get_string('showpasses', 'tool_unittest')).'</p>';
echo '<p>'.html_writer::checkbox('showpasses', 1, $showpasses, get_string('showpasses', 'simpletest')).'</p>';
if (moodle_coverage_recorder::can_run_codecoverage()) {
echo '<p>'.html_writer::checkbox('codecoverage', 1, $codecoverage, get_string('codecoverageanalysis', 'tool_unittest')).'</p>';
echo '<p>'.html_writer::checkbox('codecoverage', 1, $codecoverage, get_string('codecoverageanalysis', 'simpletest')).'</p>';
} else {
echo '<p>'; print_string('codecoveragedisabled', 'tool_unittest'); echo '<input type="hidden" name="codecoverage" value="0" /></p>';
echo '<p>'; print_string('codecoveragedisabled', 'simpletest'); echo '<input type="hidden" name="codecoverage" value="0" /></p>';
}
echo '<p><strong>'."Databases:".'</strong></p>';
echo '<ul>';
@@ -154,7 +134,7 @@ $CFG->func_test_db_1 = array("native", "pgsql", "localhost", "moodleuser", "pass
$CFG->func_test_db_2 = array("native", "mssql", "localhost", "moodleuser", "password", "moodle", "test", null);
</pre>
<p>where order of parameters is: dblibrary, dbtype, dbhost, dbuser, dbpass, dbname, prefix, dboptions</p>';
echo '<p><input type="submit" value="' . get_string('runtests', 'tool_unittest') . '" /></p>';
echo '<p><input type="submit" value="' . get_string('runtests', 'simpletest') . '" /></p>';
echo '</div>';
echo '</form>';
echo $OUTPUT->box_end();
@@ -1,27 +1,11 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* A SimpleTest report format for Moodle.
*
* @package tool
* @subpackage unittest
* @copyright &copy; 2006 The Open University
* @author N.D.Freear@open.ac.uk, T.J.Hunt@open.ac.uk
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @copyright &copy; 2006 The Open University
* @author N.D.Freear@open.ac.uk, T.J.Hunt@open.ac.uk
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
* @package SimpleTestEx
*/
if (!defined('MOODLE_INTERNAL')) {
@@ -180,7 +164,7 @@ class ExHtmlReporter extends HtmlReporter {
foreach ($stacktrace as $frame) {
if (empty($frame['file']) || (strpos($frame['file'], 'simpletestlib') === false &&
strpos($frame['file'], 'simpletestcoveragelib') === false
&& strpos($frame['file'], 'tool/unittest') === false)) {
&& strpos($frame['file'], 'report/unittest') === false)) {
$filteredstacktrace[] = $frame;
$interestinglines += 1;
$dotsadded = false;
@@ -287,11 +271,6 @@ class ExHtmlReporter extends HtmlReporter {
* Look up a lang string in the appropriate file.
*/
function get_string($identifier, $a = NULL) {
return get_string($identifier, 'tool_unittest', $a);
}
function _htmlEntities($message) {
// Override subclass message that breaks UTF8.
return s($message);
return get_string($identifier, 'simpletest', $a);
}
}
@@ -1,28 +1,12 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* A SimpleTest GroupTest that automatically finds all the
* test files in a directory tree according to certain rules.
*
* @package tool
* @subpackage unittest
* @copyright &copy; 2006 The Open University
* @author N.D.Freear@open.ac.uk, T.J.Hunt@open.ac.uk
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @copyright &copy; 2006 The Open University
* @author N.D.Freear@open.ac.uk, T.J.Hunt@open.ac.uk
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
* @package SimpleTestEx
*/
if (!defined('MOODLE_INTERNAL')) {
@@ -1,35 +1,18 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle 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 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Run the unit tests.
*
* @package tool
* @subpackage unittest
* @copyright &copy; 2006 The Open University
* @author N.D.Freear@open.ac.uk, T.J.Hunt@open.ac.uk
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @copyright &copy; 2006 The Open University
* @author N.D.Freear@open.ac.uk, T.J.Hunt@open.ac.uk
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
* @package SimpleTestEx
*/
define('NO_OUTPUT_BUFFERING', true);
require(dirname(__FILE__) . '/../../../config.php');
require_once(dirname(__FILE__).'/../../../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once('simpletestlib.php');
require_once('simpletestcoveragelib.php');
require_once($CFG->libdir.'/simpletestcoveragelib.php');
require_once('ex_simple_test.php');
require_once('ex_reporter.php');
@@ -44,7 +27,7 @@ $showpasses = optional_param('showpasses', false, PARAM_BOOL);
$codecoverage = optional_param('codecoverage', false, PARAM_BOOL);
$showsearch = optional_param('showsearch', false, PARAM_BOOL);
admin_externalpage_setup('toolsimpletest', '', array('showpasses'=>$showpasses, 'showsearch'=>$showsearch));
admin_externalpage_setup('reportsimpletest', '', array('showpasses'=>$showpasses, 'showsearch'=>$showsearch));
$unittest = true;
@@ -58,7 +41,7 @@ $UNITTEST = new stdClass();
define('TIME_ALLOWED_PER_UNIT_TEST', 60);
// Print the header.
$strtitle = get_string('unittests', 'tool_unittest');
$strtitle = get_string('unittests', 'simpletest');
if (!is_null($path)) {
//trim so user doesn't get an error if they include a space on the end of the path (ie by pasting path)
@@ -102,68 +85,48 @@ if (!is_null($path)) {
} else if (is_dir($path)){
$test->findTestFiles($path);
} else {
echo $OUTPUT->box(get_string('pathdoesnotexist', 'tool_unittest', $path), 'errorbox');
echo $OUTPUT->box(get_string('pathdoesnotexist', 'simpletest', $path), 'errorbox');
$ok = false;
}
// If we have something to test, do it.
if ($ok) {
if ($path == $CFG->dirroot) {
$title = get_string('moodleunittests', 'tool_unittest', get_string('all', 'tool_unittest'));
$title = get_string('moodleunittests', 'simpletest', get_string('all', 'simpletest'));
} else {
$title = get_string('moodleunittests', 'tool_unittest', $displaypath);
$title = get_string('moodleunittests', 'simpletest', $displaypath);
}
echo $OUTPUT->heading($title);
$test->run($reporter);
}
$formheader = get_string('retest', 'tool_unittest');
$formheader = get_string('retest', 'simpletest');
} else {
$displaypath = '';
echo $OUTPUT->header();
$formheader = get_string('rununittests', 'tool_unittest');
$formheader = get_string('rununittests', 'simpletest');
}
// Print the form for adjusting options.
echo $OUTPUT->box_start('generalbox boxwidthwide boxaligncenter');
echo $OUTPUT->heading($formheader);
echo '<form method="get" action="index.php">';
echo '<fieldset class="invisiblefieldset">';
echo '<p>'.html_writer::checkbox('showpasses', 1, $showpasses, get_string('showpasses', 'tool_unittest')).'</p>';
echo '<p>'.html_writer::checkbox('showsearch', 1, $showsearch, get_string('showsearch', 'tool_unittest')).'</p>';
echo '<p>'.html_writer::checkbox('showpasses', 1, $showpasses, get_string('showpasses', 'simpletest')).'</p>';
echo '<p>'.html_writer::checkbox('showsearch', 1, $showsearch, get_string('showsearch', 'simpletest')).'</p>';
if (moodle_coverage_recorder::can_run_codecoverage()) {
echo '<p>'.html_writer::checkbox('codecoverage', 1, $codecoverage, get_string('codecoverageanalysis', 'tool_unittest')).'</p>';
echo '<p>'.html_writer::checkbox('codecoverage', 1, $codecoverage, get_string('codecoverageanalysis', 'simpletest')).'</p>';
} else {
echo '<p>'; print_string('codecoveragedisabled', 'tool_unittest'); echo '<input type="hidden" name="codecoverage" value="0" /></p>';
echo '<p>'; print_string('codecoveragedisabled', 'simpletest'); echo '<input type="hidden" name="codecoverage" value="0" /></p>';
}
echo '<p>';
echo '<label for="path">', get_string('onlytest', 'tool_unittest'), '</label> ';
echo '<label for="path">', get_string('onlytest', 'simpletest'), '</label> ';
echo '<input type="text" id="path" name="path" value="', $displaypath, '" size="40" />';
echo '</p>';
echo '<input type="submit" value="' . get_string('runtests', 'tool_unittest') . '" />';
echo '<input type="submit" value="' . get_string('runtests', 'simpletest') . '" />';
echo '</fieldset>';
echo '</form>';
echo $OUTPUT->box_end();
$otherpages = array();
$otherpages['PDF lib test'] = new moodle_url('/admin/tool/unittest/other/pdflibtestpage.php');
if (debugging('', DEBUG_DEVELOPER)) {
$otherpages['TODO checker'] = new moodle_url('/admin/tool/unittest/other/todochecker.php');
}
// print list of extra test pages that are not simpletests,
// not everything there is good enough to show to our users
if ($otherpages) {
echo $OUTPUT->box_start('generalbox boxwidthwide boxaligncenter');
echo $OUTPUT->heading(get_string('othertestpages', 'tool_unittest'));
echo '<ul>';
foreach ($otherpages as $name=>$url) {
echo '<li>'.html_writer::link($url, $name).'</li>';
}
echo '</ul>';
echo $OUTPUT->box_end();
}
// Print link to latest code coverage for this report type
if (is_null($path) || !$codecoverage) {
moodle_coverage_reporter::print_link_to_latest('unittest');

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