Compare commits

...

164 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) 68b59f336b Moodle release 3.6.2 2019-01-12 13:26:00 +01:00
Sara Arjona dfd605320e weekly release 3.6.1+ 2019-01-10 17:51:31 +01:00
Sara Arjona 8f6ba8afc4 Merge branch 'install_36_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_36_STABLE 2019-01-10 17:51:30 +01:00
Jake Dallimore b41a94128a Merge branch 'MDL-64004-36' of git://github.com/damyon/moodle into MOODLE_36_STABLE 2019-01-10 11:00:25 +08:00
AMOS bot 7365115cf3 Automatically generated installer lang files 2019-01-10 00:08:42 +00:00
Eloy Lafuente (stronk7) 5f85b35305 Merge branch 'MDL-64479_36' of https://github.com/timhunt/moodle into MOODLE_36_STABLE 2019-01-09 23:36:57 +01:00
Ryan Wyllie ea2f42bde4 MDL-64043 message: stop group conversation header re-rendering 2019-01-09 18:46:54 +01:00
Eloy Lafuente (stronk7) 3dd8792045 Merge branch 'MDL-63686-36' of git://github.com/andrewnicols/moodle into MOODLE_36_STABLE 2019-01-09 12:36:33 +01:00
Andrew Nicols a335f9c4c0 MDL-63686 core: recordset => records when fetching contexts 2019-01-09 19:08:08 +08:00
Tim Hunt 6873ac11a0 MDL-64479 dd-qtypes: fix questions with non-consecutive groups 2019-01-09 10:20:01 +00:00
Jake Dallimore a022611e09 Merge branch 'MDL-64375-36' of git://github.com/damyon/moodle into MOODLE_36_STABLE 2019-01-09 15:33:27 +08:00
Andrew Nicols 97a0132511 Merge branch 'MDL-62550-36-2' of https://github.com/snake/moodle into MOODLE_36_STABLE 2019-01-09 15:10:12 +08:00
Jake Dallimore 210429d952 Merge branch 'MDL-64345-36' of https://github.com/s-cenni/MDL-64345 into MOODLE_36_STABLE 2019-01-09 14:14:28 +08:00
Jake Dallimore aeb7c0026d MDL-62550 core_theme: remove unused #fgroup_ and #fitem_ rules
These ids didn't exists in form elements in Boost until now, so we'll
remove the rules to prevent them having any effect now.
2019-01-09 11:31:54 +08:00
Jake Dallimore 19c1651247 MDL-62550 core_form: bring back the form item unique ids to fix js fails
This id matches the id seen on the clean theme elements and is needed by
the forms js.
2019-01-09 11:31:52 +08:00
Jake Dallimore f369450561 Merge branch 'MDL-63761-36' of git://github.com/damyon/moodle into MOODLE_36_STABLE 2019-01-09 09:07:07 +08:00
Eloy Lafuente (stronk7) b60fa84aad Merge branch 'MDL-64285-36' of git://github.com/junpataleta/moodle into MOODLE_36_STABLE 2019-01-09 00:03:13 +01:00
Andrew Nicols 0c8852c98b Merge branch 'MDL-24951_36' of git://github.com/stronk7/moodle into MOODLE_36_STABLE 2019-01-09 06:43:45 +08:00
Andrew Nicols 0f44be2b7a Merge branch 'MDL-64426_36' of git://github.com/stronk7/moodle into MOODLE_36_STABLE 2019-01-09 06:38:34 +08:00
Eloy Lafuente (stronk7) db729d9510 MDL-64426 core_message: fix context::instance_by_id() wrong use 2019-01-08 23:07:22 +01:00
Eloy Lafuente (stronk7) e41fd189dd MDL-24951 mod_forum: Apply new string to related scenarios
Plus amend an scenario name that was clearly incorrect.
2019-01-08 16:51:21 +01:00
Michael Hawkins 279df86c7f MDL-64395 groups: Added XSS Risk to the manage groups capability 2019-01-08 16:26:48 +01:00
Michael Hawkins 2e057f082d MDL-64372 userpix: Escape fullname string on userpix index page 2019-01-08 16:26:48 +01:00
Sara Arjona 20c3619d77 MDL-64222 badge: Removed backpackurl from the edit_form 2019-01-08 16:26:48 +01:00
Eloy Lafuente (stronk7) d21c67114f Merge branch 'MDL-64509-36-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_36_STABLE 2019-01-08 16:18:31 +01:00
Andrew Nicols d55a0b81d6 Merge branch 'MDL-58596-36' of git://github.com/vmdef/moodle into MOODLE_36_STABLE 2019-01-08 16:15:34 +08:00
Andrew Nicols 987e822c5e Merge branch 'MDL-64426-36-2' of https://github.com/snake/moodle into MOODLE_36_STABLE 2019-01-08 16:10:06 +08:00
Leon Stringer 7ad3a22b79 MDL-58596 core_stats: fixed infinite loop cause by DST change 2019-01-08 08:08:14 +00:00
Jake Dallimore 0c638fda5c MDL-64426 core_message: fix filter support in api::get_conversations()
Conversation name and subname should support filters, so the data should
be passed through format_string, and advertised in the external params
as PARAM_TEXT.
2019-01-08 15:51:32 +08:00
Jake Dallimore caa2b2ce21 Merge branch 'MDL-63686-36' of git://github.com/andrewnicols/moodle into MOODLE_36_STABLE 2019-01-08 14:38:07 +08:00
Andrew Nicols afba820e1d MDL-63686 core: Preload parent contexts 2019-01-08 14:11:53 +08:00
Andrew Nicols 1e59e03e60 Merge branch 'MDL-24951-36' of git://github.com/Chocolate-lightning/moodle into MOODLE_36_STABLE 2019-01-08 13:52:35 +08:00
Andrew Nicols a155e8cb75 Merge branch 'MDL-64497-m36' of https://github.com/sammarshallou/moodle into MOODLE_36_STABLE 2019-01-08 12:28:56 +08:00
Andrew Nicols 6aa1364030 Merge branch 'MDL-63722-36' of git://github.com/rezaies/moodle into MOODLE_36_STABLE 2019-01-08 12:12:55 +08:00
Andrew Nicols 691a2997b8 Merge branch 'MDL-64400-36' of git://github.com/aanabit/moodle into MOODLE_36_STABLE 2019-01-08 08:28:21 +08:00
Andrew Nicols bd5464547a Merge branch 'MDL-63276_36' of https://github.com/stronk7/moodle into MOODLE_36_STABLE 2019-01-08 06:56:13 +08:00
Eloy Lafuente (stronk7) 90fc88b56d Merge branch 'MDL-63809-36-5' of git://github.com/rezaies/moodle into MOODLE_36_STABLE 2019-01-07 22:13:00 +01:00
Helen Foster bb7ebc0ee5 MDL-64509 lang: Import fixed English strings (en_fix)
Significant string change: enablerunnow_desc,tool_task - including
mention of pathtophp requirement
2019-01-07 20:09:48 +01:00
Sara Arjona 8555878283 Merge branch 'MDL-64419-36' of git://github.com/bmbrands/moodle into MOODLE_36_STABLE 2019-01-07 14:18:23 +01:00
Andrew Nicols 5a04efc1eb Merge branch 'MDL-57636_m36' of https://github.com/dasistwas/moodle into MOODLE_36_STABLE 2019-01-07 13:48:08 +08:00
David Bogner 352ddf9d42 MDL-57636 frontpage: Fix display enrolled courses 2019-01-04 11:00:25 +01:00
Damyon Wiese 20ad67d21d MDL-64375 gradingform_rubric: Styles for overflow
Allow people to define lots of levels, and make the scroll region just the rubric table,
not the entire content region.
2019-01-04 08:44:38 +08:00
sam marshall 6e7597f569 MDL-64497 GDPR: moodle_content_writer can cause endless loop
Fixes a buggy function by replacing it with a call to file_get_contents,
and adds error detection on a couple of file accesses.
2019-01-03 17:05:47 +00:00
Jake Dallimore 1f2934b656 Merge branch 'MDL-49651-36' of git://github.com/Chocolate-lightning/moodle into MOODLE_36_STABLE 2019-01-03 10:46:36 +08:00
Eloy Lafuente (stronk7) 7bdf798d6a MDL-63276 environment: PHP 7.1 and Moodle 3.2 required 2019-01-03 01:19:48 +01:00
Eloy Lafuente (stronk7) fd1fb3e6db MDL-63276 environment: 3.7 base information
This is a direct copy of the 3.6 branch to
have changes under control easier in next commits.
2019-01-03 01:19:48 +01:00
Damyon Wiese e607001e7e MDL-63761 grade: Performance fix for regrading
Don't use a separate variable to count the number of items in finalids.
2019-01-02 10:25:04 +08:00
Amaia Anabitarte 844a59c301 MDL-64400 core_messages: Mark notifications sent via email as read 2018-12-27 09:18:14 +01:00
Amaia Anabitarte f10c2934aa MDL-64400 core_messages: Allow cron to delete unread notifications too 2018-12-27 09:18:14 +01:00
Mathew efe7f18200 MDL-49651 mod_forum: Respect course visibility in cron
This checks the courses' current visibility and the users permissions.
If they have the permission to view the course when it is hidden they'll get messages.

We already have checks for the users enrolled & subscription status.
2018-12-24 09:35:38 +08:00
Mathew 0df8f503a3 MDL-24951 mod_forum: Check user capability to know what message to show.
If the user has the following capabilty: mod/forum:canposttomygroups then show them
the more technical of the strings. Otherwise we use something a bit easier for them to ask their
tutor or teacher about.
2018-12-24 09:14:39 +08:00
AMOS bot c4b911d645 Automatically generated installer lang files 2018-12-21 00:08:07 +00:00
Víctor Déniz Falcón 524e1fa64e MDL-58596 core_stats: unit test for stats_get_base_weekly 2018-12-20 13:59:34 +00:00
Adrian Greeve 7f234acc6e weekly release 3.6.1+ 2018-12-20 11:09:17 +01:00
Adrian Greeve 1003775c7c NOBUG: Fixed SVG browser compatibility 2018-12-20 11:09:17 +01:00
Adrian Greeve 025c532aa9 Merge branch 'install_36_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_36_STABLE 2018-12-20 11:09:16 +01:00
Andrew Nicols b1c50364d0 Merge branch 'MDL-64038-36' of git://github.com/bmbrands/moodle into MOODLE_36_STABLE 2018-12-20 13:56:45 +08:00
Andrew Nicols eac010fbb9 Merge branch 'MDL-63512-36' of git://github.com/peterRd/moodle into MOODLE_36_STABLE 2018-12-20 13:03:49 +08:00
Peter c556416385 MDL-63512 mod_lesson: Update the lesson css to exclude mediaplugin div 2018-12-20 12:51:04 +08:00
Peter 1f91c082c5 MDL-63512 mod_lesson: Fix video links provided in feedback 2018-12-20 12:51:04 +08:00
Adrian Greeve 421358bc47 Merge branch 'MDL-64392-36' of git://github.com/bmbrands/moodle into MOODLE_36_STABLE 2018-12-19 12:04:29 +01:00
Adrian Greeve 7b661b8d6f MDL-59954 course: Remove unused global. 2018-12-19 10:48:27 +01:00
Peter 74780ef62b MDL-59954 mod_course: Remove file size restriction on D&D on course page
Remove file size restrictions for teachers on course page.
Use user_max_upload_file_size instead of the max_file_size
2018-12-19 10:47:01 +01:00
Shamim Rezaie a9223b49a0 MDL-63722 javascript: misinterpret as outside click if DOM is modified 2018-12-19 16:06:38 +11:00
Jake Dallimore 50e3951acc Merge branch 'MDL-64229_36' of git://github.com/markn86/moodle into MOODLE_36_STABLE 2018-12-19 11:37:40 +08:00
Jake Dallimore e4cac445c2 Merge branch 'MDL-64216-m36' of https://github.com/micaherne/moodle into MOODLE_36_STABLE 2018-12-19 11:08:05 +08:00
Andrew Nicols 1dca8a6679 Merge branch 'MDL-63512-36' of git://github.com/peterRd/moodle into MOODLE_36_STABLE 2018-12-19 10:00:10 +08:00
AMOS bot 2f90c2a35d Automatically generated installer lang files 2018-12-19 00:09:03 +00:00
Adrian Greeve 30ff131e71 Merge branch 'MDL-64025-36' of https://github.com/christianwolters/moodle into MOODLE_36_STABLE 2018-12-18 16:00:47 +01:00
Shamim Rezaie 10c38b2e34 MDL-63809 question: handling bad questions in question_has_capability_on 2018-12-18 15:44:20 +11:00
Tim Hunt 636a752d11 MDL-63809 question bank: ensure question_has_capability_on can be called 2018-12-18 15:44:20 +11:00
Jake Dallimore 909b8fe981 Merge branch 'MDL-64309_36' of git://github.com/markn86/moodle into MOODLE_36_STABLE 2018-12-18 11:11:45 +08:00
Damyon Wiese 1e96000bb3 MDL-64004 webservice: Do not update accesstime
Do not update the automatically update the course access time when a
course is accessed via a webservice or ajax.
2018-12-18 09:08:17 +08:00
Bas Brands ceb92a3553 MDL-64419 core_message: fix user info in bootstrapbase message drawer
* updated the bootstrapbase template for the messaging conversation menu
info option to match the menu in
"/core_message/message_drawer_view_conversation_header_content_type_private.mustache"
2018-12-17 15:51:19 +01:00
Sara Cenni 9d235abdb4 MDL-64345 core: Make FB logo upgrade cross-DB compatible 2018-12-17 11:22:27 +01:00
Jun Pataleta c9e518f483 Merge branch 'MDL-59629-36' of git://github.com/peterRd/moodle into MOODLE_36_STABLE 2018-12-17 15:56:13 +08:00
Tomasz Muras c9f765452f MDL-52966 core: static cache fix for file types. 2018-12-17 15:40:39 +08:00
Andrew Nicols 6dea9ae21e Merge branch 'MDL-61633-36' of https://github.com/lucisgit/moodle into MOODLE_36_STABLE 2018-12-17 15:29:12 +08:00
Andrew Nicols b9ada50b92 Merge branch 'MDL-60518-36' of git://github.com/aanabit/moodle into MOODLE_36_STABLE 2018-12-17 14:59:39 +08:00
Jun Pataleta ff42789a76 Merge branch 'MDL-63260_36' of https://github.com/timhunt/moodle into MOODLE_36_STABLE 2018-12-17 14:10:12 +08:00
Jake Dallimore 4cb644cf24 Merge branch 'MDL-62756_MOODLE_36' of https://github.com/miotto/moodle into MOODLE_36_STABLE 2018-12-17 11:24:59 +08:00
Andrew Nicols 867a3147ad Merge branch 'MDL-64388-36' of git://github.com/bmbrands/moodle into MOODLE_36_STABLE 2018-12-17 09:14:36 +08:00
Christian Wolters 26640d3831 MDL-64025 admin_bookmarks: Enable bookmarking of admin categories 2018-12-16 15:48:12 +01:00
AMOS bot 24aa36db21 Automatically generated installer lang files 2018-12-15 00:09:15 +00:00
Bas Brands 0cd2c36605 MDL-64392 core_question: flexbox compatible separator for question types
* the br tag does not work well in a flexbox context, a 100% with div
works in both clean and boost.
2018-12-14 16:30:52 +01:00
Bas Brands ea6ae74019 MDL-64038 core_message: add default group image
add default group image to improve the alignment
of group names in the message drawer group messages section
2018-12-14 14:13:51 +01:00
Bas Brands 99440d3db7 MDL-64388 core_themes: update docs on new required output method
* Method standard_after_main_region_html was added to the core_renderer
used by the messaging ui to message drawer
2018-12-14 11:30:30 +01:00
Mirko Otto 89f8d4adde MDL-62756 form: Remove any click handler first.
The handler has the old state variable. Remove any click handler first.
2018-12-14 10:30:49 +01:00
Amaia Anabitarte 7b11b53d51 MDL-60518 core_competency: Set $USER global variable for tests 2018-12-14 10:25:44 +01:00
Frédéric Massart dd815d254f MDL-60518 core_user: A user with ID 0 is never a real user 2018-12-14 10:25:44 +01:00
Jun Pataleta aa0b2c74dd MDL-64285 core: Skip 64 bits check for 32-bit PHP versions in unit tests 2018-12-14 11:21:00 +08:00
Jun Pataleta 06b76ab9c8 MDL-64285 core: Fix environment check test
* Looping the environment results and skipping some items mean that
if a test gets skipped, the rest of the environment results won't be
tested. It's better to use a data provider for this in order to
individually test each environment result.
2018-12-14 11:21:00 +08:00
Peter 90ec922213 MDL-59629 mod_block: Set the default region in add_region
Check and update default region in add_region if none set.
2018-12-14 10:30:07 +08:00
Peter 54ff8c77bf MDL-63512 mod_lesson: Fix video links provided in feedback 2018-12-14 10:27:24 +08:00
Jake Dallimore 9c85ac5d89 weekly release 3.6.1+ 2018-12-14 07:51:49 +08:00
Jake Dallimore 4a087d2701 Merge branch 'install_36_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_36_STABLE 2018-12-14 07:51:48 +08:00
Tony Butler 79c7162899 MDL-61633 assignfeedback_editpdf: Scroll back to top when changing pages 2018-12-13 12:18:43 +00:00
Mark Nelson fd12e12d8c MDL-64229 core_message: ensure profile pic links to profile 2018-12-13 12:15:13 +08:00
Jake Dallimore 19a759649c Merge branch 'MDL-62624-36' of git://github.com/mihailges/moodle into MOODLE_36_STABLE 2018-12-12 16:13:44 +08:00
Jun Pataleta 39fbf414ad Merge branch 'MDL-41507-36' of git://github.com/rezaies/moodle into MOODLE_36_STABLE 2018-12-12 11:17:40 +08:00
Shamim Rezaie 6299c142c4 MDL-41507 core_group: Consistent default value for FEATURE_GROUPS 2018-12-12 14:04:47 +11:00
Jake Dallimore 17fccfc78b Merge branch 'MDL-64003-36' of https://github.com/aanabit/moodle into MOODLE_36_STABLE 2018-12-12 10:03:22 +08:00
Jake Dallimore 7c073af175 MDL-63887 auth_ldap: fix unclean exit from sync when users not found
We should return, not exit, and we should clean up before we do.
2018-12-12 09:43:04 +08:00
Jake Dallimore 3b114369bc Merge branch 'MDL-63887_36' of git://github.com/markn86/moodle into MOODLE_36_STABLE 2018-12-12 09:42:55 +08:00
Jake Dallimore 1641091ae7 Merge branch 'MDL-63150-36' of git://github.com/peterRd/moodle into MOODLE_36_STABLE 2018-12-12 08:32:35 +08:00
Jake Dallimore 6b391174e4 Merge branch 'MDL-63145-36' of git://github.com/peterRd/moodle into MOODLE_36_STABLE 2018-12-12 08:30:00 +08:00
Jake Dallimore 5c2cae3d9c Merge branch 'MDL-63147-36' of git://github.com/peterRd/moodle into MOODLE_36_STABLE 2018-12-12 08:25:28 +08:00
Peter 8eae354c0f MDL-63145 mod_page: Accept userid param as override
Accept a userid as an override in the lib function instead of
relying on $USER
2018-12-12 07:32:09 +08:00
Peter 8a1ebcf100 MDL-63150 mod_url: Accept a userid override in event action
Accept a userid in the event action instead of depending on $USER
2018-12-12 07:18:40 +08:00
Peter c8289ad180 MDL-63147 mod_resource: Accept userid in resource event_action 2018-12-12 07:08:25 +08:00
Tim Hunt a637d77826 MDL-63260 qtype_random: orphaned random questions should be deleted
This fix is based on some original code written by Bo Pierce.
2018-12-11 14:04:13 +00:00
Amaia Anabitarte 00302ce7a2 MDL-64003 core_message: Use sql_like_escape() in message_search_users 2018-12-11 11:41:52 +01:00
Jake Dallimore 9617c3a660 Merge branch 'MDL-64357_36' of git://github.com/markn86/moodle into MOODLE_36_STABLE 2018-12-11 17:44:27 +08:00
Mark Nelson 0ccc7a8a5c MDL-64357 ltiservice_gradebookservices: updated unit tests 2018-12-11 17:03:15 +08:00
Claude Vervoort 8d84ee97da MDL-64357 ltiservice_gradebookservices: fix cleanup deleting lineitems 2018-12-11 17:03:15 +08:00
Jake Dallimore c8de0b91a0 Merge branch 'MDL-62922-36' of git://github.com/junpataleta/moodle into MOODLE_36_STABLE 2018-12-11 12:50:36 +08:00
Jun Pataleta 841c9314ba Merge branch 'MDL-64280-36' of https://github.com/lucaboesch/moodle into MOODLE_36_STABLE 2018-12-11 09:53:51 +08:00
AMOS bot bcab22a63b Automatically generated installer lang files 2018-12-11 00:10:00 +00:00
Luca Bösch 3fba5b6826 MDL-64280 core_outcome: Add/remove outcome buttons style. 2018-12-10 17:56:13 +01:00
Ryan Wyllie 67db9af9db MDL-64275 message: fix update unread conversation counts 2018-12-10 15:07:22 +08:00
Jun Pataleta 6b34db6b00 Merge branch 'MDL-62061-36' of git://github.com/abgreeve/moodle into MOODLE_36_STABLE 2018-12-10 14:46:44 +08:00
Mihail Geshoski 36d683c805 MDL-62624 lesson: Fix alignment in matching questions in boost 2018-12-10 13:47:37 +08:00
Jun Pataleta 6fe370eef9 Merge branch 'MDL-64332_36' of https://github.com/timhunt/moodle into MOODLE_36_STABLE 2018-12-10 09:37:51 +08:00
Jake Dallimore 11d0c68d56 weekly release 3.6.1+ 2018-12-10 08:10:21 +08:00
Andrew Nicols 0cd5cf60de Merge branch 'MDL-46783-36-fix' of https://github.com/snake/moodle into MOODLE_36_STABLE 2018-12-10 08:09:09 +08:00
Jake Dallimore e8cabad431 MDL-46783 accesslib: add recordrtc cap check to match master branch 2018-12-10 08:04:54 +08:00
Tim Hunt 343f4e9d56 MDL-64332 questions: idnumber should not prevent easy duplication 2018-12-06 14:41:58 +00:00
Adrian Greeve 6ff8d9bb2c MDL-62061 core_privacy: Stop directories being created.
This stops directories being created in the root directory
while running unit tests.
2018-12-06 11:37:41 +01:00
papillon326 53949e65a7 MDL-63887 auth_ldap: avoid infinite loop when search limit is reached 2018-12-06 15:40:34 +08:00
papillon326 946bef37bf MDL-63887 auth_ldap: changed variable names to be conform to core 2018-12-06 15:40:34 +08:00
Jun Pataleta ed9ee5743d Merge branch 'MDL-64283-36' of git://github.com/damyon/moodle into MOODLE_36_STABLE 2018-12-06 14:57:41 +08:00
Damyon Wiese 115b696f30 MDL-64283 competency: Correct numbering in tests 2018-12-06 14:27:26 +08:00
Jake Dallimore 8f0bd4fb15 Merge branch 'MDL-63710-MOODLE_36' of https://github.com/ilya-catalyst/moodle into MOODLE_36_STABLE 2018-12-06 11:41:11 +08:00
Jake Dallimore 4071cbebf5 Merge branch 'MDL-46783_36' of https://github.com/timhunt/moodle into MOODLE_36_STABLE 2018-12-06 10:23:32 +08:00
Ilya Tregubov 3b9f40920a MDL-63710 repository: Delete orphaned file records. 2018-12-06 12:35:47 +11:00
Jun Pataleta 866de1e3ff Merge branch 'MOODLE_36_STABLE-MDL-64290-imscc-restore-temp-dir' of https://github.com/mspall/moodle into MOODLE_36_STABLE 2018-12-06 08:57:09 +08:00
Michael Spall 60c93464b5 MDL-64290 backup imscc: Use correct tempdir for imscc restore
Use configured temp directory $CFG->tempdir instead of hard coded
$CFG->dataroot . '/temp/backup/'
Remove unused variable, $CFG
2018-12-05 11:09:20 -07:00
Tim Hunt 0c081d2468 MDL-46783 accesslib: add tests for MDL-63818
MDL-46783 and MDL-63818 were originally coded on the
assumption that MDL-46783 would get integrated first. However it wasn't.
Therefore, it was not easy to add unit tests for MDL-63818
at the time, but it is now, so here they are.
2018-12-05 16:46:20 +00:00
Tim Hunt 550c4bdf6e MDL-46783 permissions: let some moodle/ caps be overriden in all mods
The capabilities changed ('contextlevel' => CONTEXT_COURSE changed to
'contextlevel' => CONTEXT_MODULE) are:

* moodle/site:accessallgroups
* moodle/site:viewfullnames
* moodle/site:trustcontent
* moodle/site:viewuseridentity

This list came from reviewing the _get_extra_capabilities functions in
all core activities. They were all somewhat inconsistent, but I think it
makes sense that these capabilities are consistently overridable in all
activities. E.g. moodle/site:accessallgroups affects conditional
availability even if there is no other user of groups, and
moodle/site:viewuseridentity and moodle/site:viewfullnames affect the
logs report, if nothing else.

As a result of this, several _get_extra_capabilities functions are no
longer needed, and all the rest have been simplified.
2018-12-05 16:46:15 +00:00
Mark Nelson 54fc0f1b28 MDL-64309 core_message: minor string changes to drawer 2018-12-05 19:34:12 +08:00
Jun Pataleta 6522f66dd7 MDL-62922 core_user: Check auth mechanism before validating password
* External authentication mechanisms (e.g. via oauth2, etc.) don't store
  password in the user table, so we shouldn't be requiring password in
  such case when creating users via the core_user_create_users WS
  function.
2018-12-05 15:32:09 +08:00
Ryan Wyllie e7691f15b9 MDL-64274 message: deleteMessages in message_repository return promise 2018-12-05 14:57:43 +08:00
Jake Dallimore fe1d7d118e Merge branch 'MDL-64198-36' of https://github.com/lucaboesch/moodle into MOODLE_36_STABLE 2018-12-05 14:30:43 +08:00
Damyon Wiese 7e2f393054 Merge branch 'MDL-60267-master' of https://github.com/rogerbaba/moodle into MOODLE_36_STABLE 2018-12-05 12:46:51 +08:00
Eloy Lafuente (stronk7) d09dc52b0a Moodle release 3.6.1 2018-12-04 17:42:58 +01:00
Luca Bösch c192c5e4e3 MDL-64198 course: set formatted modulename for togglecompletion js. 2018-12-04 14:33:34 +01:00
Michael Aherne 3ff4fc8e45 MDL-64216 privacy: Split query to use indexes. 2018-12-04 13:31:10 +00:00
Eloy Lafuente (stronk7) 6e19850f6e weekly release 3.6+ 2018-12-04 13:06:09 +01:00
Bas Brands 5d30474242 MDL-63223 theme_boost: flexbox for login pagin footer 2018-12-04 12:06:49 +08:00
Jun Pataleta 1b972c31ac Merge branch 'MDL-64307_36' of git://github.com/markn86/moodle into MOODLE_36_STABLE 2018-12-04 12:03:08 +08:00
Mark Nelson 29b6ac23e9 MDL-64307 core_message: do not include disabled conversations in count 2018-12-04 11:48:54 +08:00
Mark Nelson 44b6ffb68c MDL-64307 core: set all individual conversations to enabled 2018-12-04 11:44:59 +08:00
Jun Pataleta 79abbd9adc Merge branch 'MDL-64206_36' of git://github.com/markn86/moodle into MOODLE_36_STABLE 2018-12-04 11:13:37 +08:00
Tim Hunt 270524858e MDL-64286 qtype_gapselect: removed unneeded line of code
The extended Behat test show the qtype works fine without it.
2018-12-04 11:12:52 +08:00
Damyon Wiese 60f9a401a9 Merge branch 'MDL-64155-master' of git://github.com/vmdef/moodle into MOODLE_36_STABLE 2018-12-03 15:26:56 +08:00
Tim Hunt ac0b8201a9 MDL-63459 qtype_calculatedmulti: fix incorrect hint object type 2018-12-03 14:25:41 +08:00
Tim Hunt be27fc0fe3 MDL-63459 qtype_calculatedmulti: unit test should test this qtype
This also demonstrates the bug to be fixed
2018-12-03 14:25:17 +08:00
Mark Nelson ebd104448f MDL-64206 core: updated FB logo URL 2018-12-03 12:23:47 +08:00
Andrew Nicols c69f425a7a Merge branch 'MDL-64300_36' of git://github.com/stronk7/moodle into MOODLE_36_STABLE 2018-12-03 08:35:32 +08:00
Eloy Lafuente (stronk7) e38e718441 MDL-64300 upgrade: add 3.6.0 separation line to all upgrade scripts 2018-12-02 18:37:59 +01:00
Víctor Déniz Falcón 0eac5cf446 MDL-64155 block_recentlyaccessedcourses: considering enrolment status 2018-11-29 15:37:17 +00:00
Victor Deniz fdf2abf871 MDL-64155 core: get_recent_courses considers enrolment status 2018-11-29 15:37:17 +00:00
Víctor Déniz Falcón 87173da483 MDL-64155 core: use favourite API to generate SQL 2018-11-29 15:37:17 +00:00
Roger Barras 6959abc816 MDL-60267 user: Fix set default data for the user profile field 2018-11-02 20:09:04 +01:00
281 changed files with 2437 additions and 554 deletions
+181
View File
@@ -2618,4 +2618,185 @@
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="3.7" requires="3.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="5.5.31" />
<VENDOR name="mysql" version="5.6" />
<VENDOR name="postgres" version="9.4" />
<VENDOR name="mssql" version="10.0" />
<VENDOR name="oracle" version="11.2" />
</DATABASE>
<PHP version="7.1.0" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR 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_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="required">
<FEEDBACK>
<ON_ERROR message="opensslrequired" />
</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="zlib" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="required">
<FEEDBACK>
<ON_ERROR message="gdrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_ERROR 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="xmlreader" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="required">
<FEEDBACK>
<ON_ERROR message="intlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
<PHP_EXTENSION name="fileinfo" level="required"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="opcache.enable" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="opcacherecommended" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbstorageengine" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
<FEEDBACK>
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
<FEEDBACK>
<ON_CHECK message="unoconvwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
<FEEDBACK>
<ON_CHECK message="libcurlwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfileformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfilepertable" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddblargeprefix" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
<FEEDBACK>
<ON_CHECK message="ishttpswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
<FEEDBACK>
<ON_CHECK message="incompleteunicodesupport" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="optional">
<FEEDBACK>
<ON_CHECK message="sixtyfourbitswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+22 -2
View File
@@ -21,8 +21,28 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
0)
);
$options = array(DAYSECS=>new lang_string('secondstotime86400'), WEEKSECS=>new lang_string('secondstotime604800'), 2620800=>new lang_string('nummonths', 'moodle', 1), 15724800=>new lang_string('nummonths', 'moodle', 6),0=>new lang_string('never'));
$optionalsubsystems->add(new admin_setting_configselect('messagingdeletereadnotificationsdelay', new lang_string('messagingdeletereadnotificationsdelay', 'admin'), new lang_string('configmessagingdeletereadnotificationsdelay', 'admin'), 604800, $options));
$options = array(
DAYSECS => new lang_string('secondstotime86400'),
WEEKSECS => new lang_string('secondstotime604800'),
2620800 => new lang_string('nummonths', 'moodle', 1),
7862400 => new lang_string('nummonths', 'moodle', 3),
15724800 => new lang_string('nummonths', 'moodle', 6),
0 => new lang_string('never')
);
$optionalsubsystems->add(new admin_setting_configselect(
'messagingdeletereadnotificationsdelay',
new lang_string('messagingdeletereadnotificationsdelay', 'admin'),
new lang_string('configmessagingdeletereadnotificationsdelay', 'admin'),
604800,
$options)
);
$optionalsubsystems->add(new admin_setting_configselect(
'messagingdeleteallnotificationsdelay',
new lang_string('messagingdeleteallnotificationsdelay', 'admin'),
new lang_string('configmessagingdeleteallnotificationsdelay', 'admin'),
2620800,
$options)
);
$optionalsubsystems->add(new admin_setting_configcheckbox('messagingallowemailoverride', new lang_string('messagingallowemailoverride', 'admin'), new lang_string('configmessagingallowemailoverride','admin'), 0));
+3
View File
@@ -41,5 +41,8 @@ function xmldb_tool_customlang_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -313,5 +313,8 @@ function xmldb_tool_dataprivacy_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2018112500, 'tool', 'dataprivacy');
}
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -45,5 +45,8 @@ function xmldb_tool_log_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -39,5 +39,8 @@ function xmldb_logstore_database_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -39,5 +39,8 @@ function xmldb_logstore_standard_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -79,5 +79,8 @@ function xmldb_tool_monitor_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -60,5 +60,8 @@ function xmldb_tool_policy_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2018091800, 'tool', 'policy');
}
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+1 -1
View File
@@ -34,7 +34,7 @@ $string['disabled'] = 'Disabled';
$string['disabled_help'] = 'Disabled scheduled tasks are not executed from cron, however they can still be executed manually via the CLI tool.';
$string['edittaskschedule'] = 'Edit task schedule: {$a}';
$string['enablerunnow'] = 'Allow \'Run now\' for scheduled tasks';
$string['enablerunnow_desc'] = 'Allows administrators to run a single scheduled task immediately, rather than waiting for it to run as scheduled. The task runs on the web server, so some sites may wish to disable this feature to avoid potential performance issues.';
$string['enablerunnow_desc'] = 'Allows administrators to run a single scheduled task immediately, rather than waiting for it to run as scheduled. The feature requires \'Path to PHP CLI\' (pathtophp) to be set in System paths. The task runs on the web server, so you may wish to disable this feature to avoid potential performance issues.';
$string['faildelay'] = 'Fail delay';
$string['lastruntime'] = 'Last run';
$string['nextruntime'] = 'Next run';
+3
View File
@@ -54,5 +54,8 @@ function xmldb_tool_usertours_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2018113002, 'tool', 'usertours');
}
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+2 -2
View File
@@ -215,8 +215,8 @@ $string['yesmissingindexesfound'] = '<p>Some missing indexes have been found in
<p>After doing that, it\'s highly recommended to execute this utility again to check that no more missing indexes are found.</p>';
$string['yeswrongdefaultsfound'] = '<p>Some inconsistent defaults have been found in your DB. Here are their details and the needed SQL statements to be executed with your favourite SQL interface to fix them all. Remember to backup your data first!</p>
<p>After doing that, it\'s highly recommended to execute this utility again to check that no more inconsistent defaults are found.</p>';
$string['yeswrongintsfound'] = '<p>Some wrong integers have been found in your DB. Here are their details and the needed SQL statements to be executed with your favourite SQL interface to create all them. Remember to backup your data first!</p>
<p>After doing that, it\'s highly recommended to execute this utility again to check that no more wrong integers are found.</p>';
$string['yeswrongintsfound'] = '<p>Some wrong integers have been found in your DB. Here are their details and the needed SQL statements to be executed with your favourite SQL interface to fix them. Remember to backup your data first!</p>
<p>After fixing them, it is highly recommended to execute this utility again to check that no more wrong integers are found.</p>';
$string['yeswrongoraclesemanticsfound'] = '<p>Some Oracle columns using BYTE semantics have been found in your DB. Here are their details and the needed SQL statements to be executed with your favourite SQL interface to create all them. Remember to backup your data first!</p>
<p>After doing that, it\'s highly recommended to execute this utility again to check that no more wrong semantics are found.</p>';
$string['privacy:metadata'] = 'The XMLDB editor plugin does not store any personal data.';
+3
View File
@@ -51,5 +51,8 @@ function xmldb_auth_cas_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -51,5 +51,8 @@ function xmldb_auth_db_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -51,5 +51,8 @@ function xmldb_auth_email_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+21 -14
View File
@@ -698,8 +698,8 @@ class auth_plugin_ldap extends auth_plugin_base {
array_push($contexts, $this->config->create_context);
}
$ldap_pagedresults = ldap_paged_results_supported($this->config->ldap_version, $ldapconnection);
$ldap_cookie = '';
$ldappagedresults = ldap_paged_results_supported($this->config->ldap_version, $ldapconnection);
$ldapcookie = '';
foreach ($contexts as $context) {
$context = trim($context);
if (empty($context)) {
@@ -707,23 +707,28 @@ class auth_plugin_ldap extends auth_plugin_base {
}
do {
if ($ldap_pagedresults) {
ldap_control_paged_result($ldapconnection, $this->config->pagesize, true, $ldap_cookie);
if ($ldappagedresults) {
ldap_control_paged_result($ldapconnection, $this->config->pagesize, true, $ldapcookie);
}
if ($this->config->search_sub) {
// Use ldap_search to find first user from subtree.
$ldap_result = ldap_search($ldapconnection, $context, $filter, array($this->config->user_attribute));
$ldapresult = ldap_search($ldapconnection, $context, $filter, array($this->config->user_attribute));
} else {
// Search only in this context.
$ldap_result = ldap_list($ldapconnection, $context, $filter, array($this->config->user_attribute));
$ldapresult = ldap_list($ldapconnection, $context, $filter, array($this->config->user_attribute));
}
if(!$ldap_result) {
if (!$ldapresult) {
continue;
}
if ($ldap_pagedresults) {
ldap_control_paged_result_response($ldapconnection, $ldap_result, $ldap_cookie);
if ($ldappagedresults) {
$pagedresp = ldap_control_paged_result_response($ldapconnection, $ldapresult, $ldapcookie);
// Function ldap_control_paged_result_response() does not overwrite $ldapcookie if it fails, by
// setting this to null we avoid an infinite loop.
if ($pagedresp === false) {
$ldapcookie = null;
}
}
if ($entry = @ldap_first_entry($ldapconnection, $ldap_result)) {
if ($entry = @ldap_first_entry($ldapconnection, $ldapresult)) {
do {
$value = ldap_get_values_len($ldapconnection, $entry, $this->config->user_attribute);
$value = core_text::convert($value[0], $this->config->ldapencoding, 'utf-8');
@@ -731,13 +736,13 @@ class auth_plugin_ldap extends auth_plugin_base {
$this->ldap_bulk_insert($value);
} while ($entry = ldap_next_entry($ldapconnection, $entry));
}
unset($ldap_result); // Free mem.
} while ($ldap_pagedresults && $ldap_cookie !== null && $ldap_cookie != '');
unset($ldapresult); // Free mem.
} while ($ldappagedresults && $ldapcookie !== null && $ldapcookie != '');
}
// If LDAP paged results were used, the current connection must be completely
// closed and a new one created, to work without paged results from here on.
if ($ldap_pagedresults) {
if ($ldappagedresults) {
$this->ldap_close(true);
$ldapconnection = $this->ldap_connect();
}
@@ -748,7 +753,9 @@ class auth_plugin_ldap extends auth_plugin_base {
$count = $DB->count_records_sql('SELECT COUNT(username) AS count, 1 FROM {tmp_extuser}');
if ($count < 1) {
print_string('didntgetusersfromldap', 'auth_ldap');
exit;
$dbman->drop_table($table);
$this->ldap_close();
return false;
} else {
print_string('gotcountrecordsfromldap', 'auth_ldap', $count);
}
+3
View File
@@ -69,5 +69,8 @@ function xmldb_auth_ldap_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+5 -5
View File
@@ -48,16 +48,16 @@ $string['auth_ldap_expiration_warning_key'] = 'Expiry warning';
$string['auth_ldap_expireattr_desc'] = 'Optional: Overrides the LDAP attribute that stores password expiry time.';
$string['auth_ldap_expireattr_key'] = 'Expiry attribute';
$string['auth_ldapextrafields'] = 'These fields are optional. You can choose to pre-fill some Moodle user fields with information from the <b>LDAP fields</b> that you specify here. <p>If you leave these fields blank, then nothing will be transferred from LDAP and Moodle defaults will be used instead.</p><p>In either case, the user will be able to edit all of these fields after they log in.</p>';
$string['auth_ldap_graceattr_desc'] = 'Optional: Overrides gracelogin attribute';
$string['auth_ldap_graceattr_desc'] = 'Optional: Overrides grace login attribute';
$string['auth_ldap_gracelogin_key'] = 'Grace login attribute';
$string['auth_ldap_gracelogins_desc'] = 'Enable LDAP gracelogin support. After password has expired user can login until gracelogin count is 0. Enabling this setting displays grace login message if password is expired.';
$string['auth_ldap_gracelogins_desc'] = 'Enable LDAP grace login support. After password has expired, user can log in until grace login count is 0. Enabling this setting displays grace login message if password has expired.';
$string['auth_ldap_gracelogins_key'] = 'Grace logins';
$string['auth_ldap_groupecreators'] = 'List of groups or contexts whose members are allowed to create groups. Separate multiple groups with \';\'. Usually something like \'cn=teachers,ou=staff,o=myorg\'';
$string['auth_ldap_groupecreators_key'] = 'Group creators';
$string['auth_ldap_host_url'] = 'Specify LDAP host in URL-form like \'ldap://ldap.myorg.com/\' or \'ldaps://ldap.myorg.com/\'. Separate multiple servers with \';\' to get failover support.';
$string['auth_ldap_host_url_key'] = 'Host URL';
$string['auth_ldap_changepasswordurl_key'] = 'Password-change URL';
$string['auth_ldap_ldap_encoding'] = 'Specify encoding used by LDAP server. Most probably utf-8, MS AD v2 uses default platform encoding such as cp1252, cp1250, etc.';
$string['auth_ldap_ldap_encoding'] = 'Encoding used by the LDAP server, most likely utf-8. If LDAP v2 is selected, Active Directory uses its configured encoding, such as cp1252 or cp1250.';
$string['auth_ldap_ldap_encoding_key'] = 'LDAP encoding';
$string['auth_ldap_login_settings'] = 'Login settings';
$string['auth_ldap_memberattribute'] = 'Optional: Overrides user member attribute, when users belongs to a group. Usually \'member\'';
@@ -121,7 +121,7 @@ $string['didntfindexpiretime'] = 'password_expire() didn\'t find expiration time
$string['didntgetusersfromldap'] = "Did not get any users from LDAP -- error? -- exiting\n";
$string['gotcountrecordsfromldap'] = "Got {\$a} records from LDAP\n";
$string['ldapnotconfigured'] = 'The LDAP host url is currently not configured';
$string['morethanoneuser'] = 'Strange! More than one user record found in ldap. Only using the first one.';
$string['morethanoneuser'] = 'More than one user record found in LDAP. Using only the first one.';
$string['needbcmath'] = 'You need the BCMath extension to use expired password checking with Active Directory.';
$string['needmbstring'] = 'You need the mbstring extension to change passwords in Active Directory';
$string['nodnforusername'] = 'Error in user_update_password(). No DN for: {$a->username}';
@@ -152,7 +152,7 @@ $string['updateremfailamb'] = 'Failed to update LDAP with ambiguous field {$a->k
$string['updateremfailfield'] = 'Failed to update LDAP with non-existent field (\'{$a->ldapkey}\'). Key ({$a->key}) - old Moodle value: \'{$a->ouvalue}\' new value: \'{$a->nuvalue}\'';
$string['updatepasserror'] = 'Error in user_update_password(). Error code: {$a->errno}; Error string: {$a->errstring}';
$string['updatepasserrorexpire'] = 'Error in user_update_password() when reading password expiry time. Error code: {$a->errno}; Error string: {$a->errstring}';
$string['updatepasserrorexpiregrace'] = 'Error in user_update_password() when modifying expirationtime and/or gracelogins. Error code: {$a->errno}; Error string: {$a->errstring}';
$string['updatepasserrorexpiregrace'] = 'Error in user_update_password() when modifying expiry time and/or grace logins. Error code: {$a->errno}; Error string: {$a->errstring}';
$string['updateusernotfound'] = 'Could not find user while updating externally. Details follow: search base: \'{$a->userdn}\'; search filter: \'(objectClass=*)\'; search attributes: {$a->attribs}';
$string['user_activatenotsupportusertype'] = 'auth: ldap user_activate() does not support selected usertype: {$a}';
$string['user_disablenotsupportusertype'] = 'auth: ldap user_disable() does not support selected usertype: {$a}';
+3
View File
@@ -51,5 +51,8 @@ function xmldb_auth_manual_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -50,5 +50,8 @@ function xmldb_auth_mnet_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+2 -2
View File
@@ -91,11 +91,11 @@ $string['privacy:metadata:mnet_log:remoteid'] = 'Remote ID of the user who carri
$string['privacy:metadata:mnet_log:time'] = 'Time when the action occurred.';
$string['privacy:metadata:mnet_log:url'] = 'Remote system URL where the action occurred.';
$string['privacy:metadata:mnet_log:userid'] = 'Local ID of the user who carried out the action in the remote system.';
$string['privacy:metadata:mnet_session'] = 'The details of each MNet user session in a remote system is stored temporarily.';
$string['privacy:metadata:mnet_session'] = 'The details of each MNet user session in a remote system. The data is stored temporarily.';
$string['privacy:metadata:mnet_session:expires'] = 'Time when the session expires.';
$string['privacy:metadata:mnet_session:mnethostid'] = 'Remote system MNet ID.';
$string['privacy:metadata:mnet_session:token'] = 'Unique session identifier';
$string['privacy:metadata:mnet_session:useragent'] = 'String denoting the user agent being which is accessing the page.';
$string['privacy:metadata:mnet_session:useragent'] = 'User agent used to access the remote system';
$string['privacy:metadata:mnet_session:userid'] = 'ID of the user jumping to remote system.';
$string['privacy:metadata:mnet_session:username'] = 'Username of the user jumping to remote system.';
$string['unknownhost'] = 'Unknown host';
+3
View File
@@ -51,5 +51,8 @@ function xmldb_auth_none_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -47,5 +47,8 @@ function xmldb_auth_oauth2_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -51,5 +51,8 @@ function xmldb_auth_shibboleth_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+4 -3
View File
@@ -37,9 +37,10 @@ class imscc1_converter extends base_converter {
* @return null|string backup::FORMAT_IMSCC1 if the Common Cartridge 1.0 is detected, null otherwise
*/
public static function detect_format($tempdir) {
global $CFG;
$filepath = $CFG->dataroot . '/temp/backup/' . $tempdir;
$filepath = make_backup_temp_directory($tempdir, false);
if (!is_dir($filepath)) {
throw new convert_helper_exception('tmp_backup_directory_not_found', $filepath);
}
$manifest = cc2moodle::get_manifest($filepath);
if (!empty($manifest)) {
// Looks promising, lets load some information.
+4 -3
View File
@@ -38,9 +38,10 @@ class imscc11_converter extends base_converter {
* @return null|string backup::FORMAT_IMSCC11 if the Common Cartridge 1.1 is detected, null otherwise
*/
public static function detect_format($tempdir) {
global $CFG;
$filepath = $CFG->dataroot . '/temp/backup/' . $tempdir;
$filepath = make_backup_temp_directory($tempdir, false);
if (!is_dir($filepath)) {
throw new convert_helper_exception('tmp_backup_directory_not_found', $filepath);
}
$manifest = cc112moodle::get_manifest($filepath);
if (file_exists($manifest)) {
// Looks promising, lets load some information.
+6
View File
@@ -4518,6 +4518,12 @@ class restore_create_categories_and_questions extends restore_structure_step {
unset($data->idnumber);
}
if ($data->qtype === 'random') {
// Ensure that this newly created question is considered by
// \qtype_random\task\remove_unused_questions.
$data->hidden = 0;
}
$newitemid = $DB->insert_record('question', $data);
$this->set_mapping('question', $oldid, $newitemid);
// Also annotate them as question_created, we need
+1 -4
View File
@@ -50,9 +50,6 @@ class edit_backpack_form extends moodleform {
$mform->addElement('hidden', 'userid', $USER->id);
$mform->setType('userid', PARAM_INT);
$mform->addElement('hidden', 'backpackurl', BADGE_BACKPACKURL);
$mform->setType('backpackurl', PARAM_URL);
if (isset($this->_customdata['email'])) {
// Email will be passed in when we're in the process of verifying the user's email address,
// so set the connection status, lock the email field, and provide options to resend the verification
@@ -94,7 +91,7 @@ class edit_backpack_form extends moodleform {
// We don't need to verify the email address if we're clearing a pending email verification attempt.
if (!isset($data['revertbutton'])) {
$check = new stdClass();
$check->backpackurl = $data['backpackurl'];
$check->backpackurl = BADGE_BACKPACKURL;
$check->email = $data['email'];
$bp = new OpenBadgesBackpackHandler($check);
@@ -96,6 +96,10 @@ class block_admin_bookmarks extends block_base {
$contenturl = new moodle_url($temp->url);
$contentlink = html_writer::link($contenturl, $temp->visiblename);
$contents[] = html_writer::tag('li', $contentlink);
} else if ($temp instanceof admin_category) {
$contenturl = new moodle_url('/admin/category.php', array('category' => $bookmark));
$contentlink = html_writer::link($contenturl, $temp->visiblename);
$contents[] = html_writer::tag('li', $contentlink);
}
}
$this->content->text = html_writer::tag('ol', implode('', $contents), array('class' => 'list'));
+5 -1
View File
@@ -46,7 +46,7 @@ if ($section = optional_param('section', '', PARAM_SAFEDIR) and confirm_sesskey(
$temp = $adminroot->locate($section);
if ($temp instanceof admin_settingpage || $temp instanceof admin_externalpage) {
if ($temp instanceof admin_settingpage || $temp instanceof admin_externalpage || $temp instanceof admin_category) {
$bookmarks[] = $section;
$bookmarks = implode(',', $bookmarks);
set_user_preference('admin_bookmarks', $bookmarks);
@@ -61,6 +61,10 @@ if ($section = optional_param('section', '', PARAM_SAFEDIR) and confirm_sesskey(
} elseif ($temp instanceof admin_externalpage) {
redirect($temp->url);
} else if ($temp instanceof admin_category) {
redirect($CFG->wwwroot . '/' . $CFG->admin . '/category.php?category=' . $section);
}
} else {
+2
View File
@@ -54,6 +54,8 @@ if ($section = optional_param('section', '', PARAM_SAFEDIR) and confirm_sesskey(
redirect($temp->url, get_string('bookmarkdeleted','admin'));
} elseif ($temp instanceof admin_settingpage) {
redirect($CFG->wwwroot . '/' . $CFG->admin . '/settings.php?section=' . $section);
} else if ($temp instanceof admin_category) {
redirect($CFG->wwwroot . '/' . $CFG->admin . '/category.php?category=' . $section);
} else {
redirect($CFG->wwwroot);
}
+3
View File
@@ -57,5 +57,8 @@ function xmldb_block_badges_upgrade($oldversion, $block) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+2 -2
View File
@@ -26,6 +26,6 @@
$string['pluginname'] = 'Latest badges';
$string['numbadgestodisplay'] = 'Number of latest badges to display';
$string['nothingtodisplay'] = 'You have no badges to display';
$string['badges:addinstance'] = 'Add a new My latest badges block';
$string['badges:myaddinstance'] = 'Add a new My latest badges block to Dashboard';
$string['badges:addinstance'] = 'Add a new Latest badges block';
$string['badges:myaddinstance'] = 'Add a new Latest badges block to Dashboard';
$string['privacy:metadata'] = 'The Latest badges block only shows data stored in other locations.';
+3
View File
@@ -57,5 +57,8 @@ function xmldb_block_calendar_month_upgrade($oldversion, $block) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -57,5 +57,8 @@ function xmldb_block_calendar_upcoming_upgrade($oldversion, $block) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -58,5 +58,8 @@ function xmldb_block_community_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -60,5 +60,8 @@ function xmldb_block_completionstatus_upgrade($oldversion, $block) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -24,7 +24,7 @@
$string['adminview'] = 'Admin view';
$string['allcourses'] = 'Admin user sees all courses';
$string['configadminview'] = 'What should the admin see in the course list block?';
$string['configadminview'] = 'Whether to display all courses in the Courses block, or only courses that the admin is enrolled in.';
$string['confighideallcourseslink'] = 'Remove the \'All courses\' link under the list of courses. (This setting does not affect the admin view.)';
$string['course_list:addinstance'] = 'Add a new courses block';
$string['course_list:myaddinstance'] = 'Add a new courses block to Dashboard';
+3
View File
@@ -60,5 +60,8 @@ function xmldb_block_course_summary_upgrade($oldversion, $block) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -45,5 +45,8 @@ function xmldb_block_html_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -67,5 +67,8 @@ function xmldb_block_navigation_upgrade($oldversion, $block) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -57,5 +57,8 @@ function xmldb_block_quiz_results_upgrade($oldversion, $block) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -59,5 +59,8 @@ function xmldb_block_recent_activity_upgrade($oldversion, $block) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -68,6 +68,9 @@ class helper {
// Group by courses to reduce get_fast_modinfo requests.
foreach ($courses as $key => $items) {
$modinfo = get_fast_modinfo($key);
if (!can_access_course($modinfo->get_course(), null, '', true)) {
continue;
}
foreach ($items as $key => $item) {
// Exclude not visible items.
if (!$modinfo->cms[$item->cmid]->uservisible) {
+1 -1
View File
@@ -22,6 +22,6 @@
*/
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2018120300; // The current plugin version (Date: YYYYMMDDXX).
$plugin->version = 2018120301; // The current plugin version (Date: YYYYMMDDXX).
$plugin->requires = 2018112800; // Requires this Moodle version.
$plugin->component = 'block_recentlyaccesseditems'; // Full name of the plugin (used for diagnostics).
+3
View File
@@ -45,5 +45,8 @@ function xmldb_block_rss_client_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -78,7 +78,7 @@ $string['rss_client:createprivatefeeds'] = 'Create private RSS feeds';
$string['rss_client:createsharedfeeds'] = 'Create shared RSS feeds';
$string['rss_client:manageanyfeeds'] = 'Manage any RSS feeds';
$string['rss_client:manageownfeeds'] = 'Manage own RSS feeds';
$string['rss_client:myaddinstance'] = 'Add a new RSS feeds block to Dashboard';
$string['rss_client:myaddinstance'] = 'Add a new Remote RSS feeds block to Dashboard';
$string['seeallfeeds'] = 'See all feeds';
$string['sharedfeed'] = 'Shared feed';
$string['shownumentrieslabel'] = 'Max number entries to show per block.';
+3
View File
@@ -61,5 +61,8 @@ function xmldb_block_section_links_upgrade($oldversion, $block) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -60,5 +60,8 @@ function xmldb_block_selfcompletion_upgrade($oldversion, $block) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -67,5 +67,8 @@ function xmldb_block_settings_upgrade($oldversion, $block) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+1 -1
View File
@@ -77,7 +77,7 @@ servername:port:weight
If *Enable clustered servers* is enabled below, there must be only one server listed here. This would usually be a name that always resolves to the local machine, like 127.0.0.1 or localhost.';
$string['serversclusterinvalid'] = 'Exactly one server is required when clustering is enabled.';
$string['setservers'] = 'Set Servers';
$string['setservers_help'] = 'This is the list of servers that will updated when data is modified in the cache. Generally the fully qualified name of each server in the pool.
$string['setservers_help'] = 'This is the list of servers that will be updated when data is modified in the cache. Generally the fully qualified name of each server in the pool.
It **must** include the server listed in *Servers* above, even if by a different hostname.
Servers should be defined one per line and consist of a server address and optionally a port.
If no port is provided then the default port (11211) is used.
+4
View File
@@ -2501,6 +2501,10 @@ class core_competency_api_testcase extends advanced_testcase {
$this->resetAfterTest(true);
$dg = $this->getDataGenerator();
// Create and assign a current user.
$currentuser = $dg->create_user();
$this->setUser($currentuser);
// Create a course.
$course = $dg->create_course();
$record = array('courseid' => $course->id, 'pushratingstouserplans' => false);
+2 -2
View File
@@ -95,8 +95,8 @@ class core_competency_generator extends component_generator_base {
* @return competency
*/
public function create_competency($record = null) {
$this->frameworkcount++;
$i = $this->frameworkcount;
$this->competencycount++;
$i = $this->competencycount;
$record = (object) $record;
if (!isset($record->competencyframeworkid)) {
+1 -1
View File
@@ -744,7 +744,7 @@ M.course_dndupload = {
var xhr = new XMLHttpRequest();
var self = this;
if (file.size > this.maxbytes) {
if (this.maxbytes > 0 && file.size > this.maxbytes) {
new M.core.alert({message: M.util.get_string('namedfiletoolarge', 'moodle', {filename: file.name})});
return;
}
+2 -2
View File
@@ -73,7 +73,7 @@ function dndupload_add_to_course($course, $modnames) {
);
$vars = array(
array('courseid' => $course->id,
'maxbytes' => get_max_upload_file_size($CFG->maxbytes, $course->maxbytes),
'maxbytes' => get_user_max_upload_file_size($PAGE->context, $CFG->maxbytes, $course->maxbytes),
'handlers' => $handler->get_js_data(),
'showstatus' => $showstatus)
);
@@ -488,7 +488,7 @@ class dndupload_ajax_processor {
// Add the file to a draft file area.
$draftitemid = file_get_unused_draft_itemid();
$maxbytes = get_max_upload_file_size($CFG->maxbytes, $this->course->maxbytes);
$maxbytes = get_user_max_upload_file_size($this->context, $CFG->maxbytes, $this->course->maxbytes);
$types = $this->dnduploadhandler->get_handled_file_types($this->module->name);
$repo = repository::get_instances(array('type' => 'upload', 'currentcontext' => $this->context));
if (empty($repo)) {
+3
View File
@@ -62,5 +62,8 @@ function xmldb_format_topics_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -98,5 +98,8 @@ function xmldb_format_weeks_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+28 -9
View File
@@ -2003,7 +2003,7 @@ function course_get_cm_edit_actions(cm_info $mod, $indent = -1, $sr = null) {
// Groupmode.
if ($hasmanageactivities && !$mod->coursegroupmodeforce) {
if (plugin_supports('mod', $mod->modname, FEATURE_GROUPS, 0)) {
if (plugin_supports('mod', $mod->modname, FEATURE_GROUPS, false)) {
if ($mod->effectivegroupmode == SEPARATEGROUPS) {
$nextgroupmode = VISIBLEGROUPS;
$grouptitle = $str->groupsseparate;
@@ -4572,21 +4572,40 @@ function course_get_recent_courses(int $userid = null, int $limit = 0, int $offs
$coursefields = 'c.' .join(',', $basefields);
$sql = "SELECT $ctxfields, $coursefields
// Ask the favourites service to give us the join SQL for favourited courses,
// so we can include favourite information in the query.
$usercontext = \context_user::instance($userid);
$favservice = \core_favourites\service_factory::get_service_for_user_context($usercontext);
list($favsql, $favparams) = $favservice->get_join_sql_by_type('core_course', 'courses', 'fav', 'ul.courseid');
$sql = "SELECT $coursefields, $ctxfields
FROM {course} c
JOIN {context} ctx
ON ctx.contextlevel = :contextlevel
AND ctx.instanceid = c.id
JOIN {user_lastaccess} ul
ON ul.courseid = c.id
LEFT JOIN {favourite} f
ON f.component = 'core_course'
AND f.itemtype = 'courses'
AND f.userid = ul.userid
AND f.itemid = ul.courseid
$favsql
WHERE ul.userid = :userid
$orderby";
$params = ['userid' => $userid, 'contextlevel' => CONTEXT_COURSE];
AND c.visible = :visible
AND EXISTS (SELECT e.id
FROM {enrol} e
LEFT JOIN {user_enrolments} ue ON ue.enrolid = e.id
WHERE e.courseid = c.id
AND e.status = :statusenrol
AND ((ue.status = :status
AND ue.userid = ul.userid
AND ue.timestart < :now1
AND (ue.timeend = 0 OR ue.timeend > :now2)
)
OR e.enrol = :guestenrol
)
)
$orderby";
$now = round(time(), -2); // Improves db caching.
$params = ['userid' => $userid, 'contextlevel' => CONTEXT_COURSE, 'visible' => 1, 'status' => ENROL_USER_ACTIVE,
'statusenrol' => ENROL_INSTANCE_ENABLED, 'guestenrol' => 'guest', 'now1' => $now, 'now2' => $now] + $favparams;
$recentcourses = $DB->get_records_sql($sql, $params, $offset, $limit);
+1 -1
View File
@@ -170,7 +170,7 @@ abstract class moodleform_mod extends moodleform {
global $CFG;
$this->_features = new stdClass();
$this->_features->groups = plugin_supports('mod', $this->_modname, FEATURE_GROUPS, true);
$this->_features->groups = plugin_supports('mod', $this->_modname, FEATURE_GROUPS, false);
$this->_features->groupings = plugin_supports('mod', $this->_modname, FEATURE_GROUPINGS, false);
$this->_features->outcomes = (!empty($CFG->enableoutcomes) and plugin_supports('mod', $this->_modname, FEATURE_GRADE_OUTCOMES, true));
$this->_features->hasgrades = plugin_supports('mod', $this->_modname, FEATURE_GRADE_HAS_GRADE, false);
+10 -4
View File
@@ -457,7 +457,7 @@ class core_course_renderer extends plugin_renderer_base {
}
}
if ($completionicon) {
$formattedname = $mod->get_formatted_name();
$formattedname = html_entity_decode($mod->get_formatted_name(), ENT_QUOTES, 'UTF-8');
if ($completiondata->overrideby) {
$args = new stdClass();
$args->modname = $formattedname;
@@ -498,7 +498,7 @@ class core_course_renderer extends plugin_renderer_base {
$output .= html_writer::empty_tag('input', array(
'type' => 'hidden', 'name' => 'sesskey', 'value' => sesskey()));
$output .= html_writer::empty_tag('input', array(
'type' => 'hidden', 'name' => 'modulename', 'value' => $mod->name));
'type' => 'hidden', 'name' => 'modulename', 'value' => $formattedname));
$output .= html_writer::empty_tag('input', array(
'type' => 'hidden', 'name' => 'completionstate', 'value' => $newstate));
$output .= html_writer::tag('button',
@@ -2404,7 +2404,8 @@ class core_course_renderer extends plugin_renderer_base {
$frontpagelayout = $CFG->frontpage;
}
foreach (explode(',', $frontpagelayout) as $v) {
$frontpageoptions = explode(',', $frontpagelayout);
foreach ($frontpageoptions as $v) {
switch ($v) {
// Display the main part of the front page.
case FRONTPAGENEWS:
@@ -2426,6 +2427,12 @@ class core_course_renderer extends plugin_renderer_base {
$output .= $this->frontpage_part('skipmycourses', 'frontpage-course-list',
get_string('mycourses'), $mycourseshtml);
break;
} else {
// Temp fix/fallback in order to display available courses when enrolled courses should be shown,
// but user is not enrolled in any course.
if (array_search(FRONTPAGEALLCOURSELIST, $frontpageoptions)) {
break;
}
}
// No "break" here. If there are no enrolled courses - continue to 'Available courses'.
@@ -2454,7 +2461,6 @@ class core_course_renderer extends plugin_renderer_base {
}
$output .= '<br />';
}
return $output;
}
}
+69
View File
@@ -4980,4 +4980,73 @@ class core_course_courselib_testcase extends advanced_testcase {
$this->assertEquals($course->startdate, $min[0]);
$this->assertNull($max);
}
/**
* Test the course_get_recent_courses function.
*/
public function test_course_get_recent_courses() {
$this->resetAfterTest();
$generator = $this->getDataGenerator();
$courses = array();
for ($i = 1; $i < 4; $i++) {
$courses[] = $generator->create_course();
};
$student = $generator->create_user();
foreach ($courses as $course) {
$generator->enrol_user($student->id, $course->id, 'student');
}
$this->setUser($student);
$result = course_get_recent_courses($student->id);
// No course accessed.
$this->assertCount(0, $result);
foreach ($courses as $course) {
$context = context_course::instance($course->id);
course_view($context);
}
// Every course accessed.
$result = course_get_recent_courses($student->id);
$this->assertCount(3, $result);
// Every course accessed, result limited to 2 courses.
$result = course_get_recent_courses($student->id, 2);
$this->assertCount(2, $result);
// Every course accessed, with limit and offset. Should return only the last created course ($course[2]).
$result = course_get_recent_courses($student->id, 3, 2);
$this->assertCount(1, $result);
$this->assertArrayHasKey($courses[2]->id, $result);
// Every course accessed, order by shortname DESC. The last create course ($course[2]) should have the greater shortname.
$result = course_get_recent_courses($student->id, 0, 0, 'shortname DESC');
$this->assertCount(3, $result);
$this->assertEquals($courses[2]->id, array_shift($result)->id);
$guestcourse = $generator->create_course(
(object)array('shortname' => 'guestcourse',
'enrol_guest_status_0' => ENROL_INSTANCE_ENABLED,
'enrol_guest_password_0' => ''));
$context = context_course::instance($guestcourse->id);
course_view($context);
// Every course accessed, even the not enrolled one.
$result = course_get_recent_courses($student->id);
$this->assertCount(4, $result);
// Suspended student.
$this->getDataGenerator()->enrol_user($student->id, $courses[0]->id, 'student', 'manual', 0, 0, ENROL_USER_SUSPENDED);
// The course with suspended enrolment is not returned by the function.
$result = course_get_recent_courses($student->id);
$this->assertCount(3, $result);
$this->assertArrayNotHasKey($courses[0]->id, $result);
}
}
+3
View File
@@ -39,5 +39,8 @@ function xmldb_enrol_database_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -39,5 +39,8 @@ function xmldb_enrol_flatfile_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -39,5 +39,8 @@ function xmldb_enrol_guest_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -45,5 +45,8 @@ function xmldb_enrol_imsenterprise_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+1 -1
View File
@@ -103,7 +103,7 @@ $string['phpldap_noextension'] = '<em>The PHP LDAP module does not seem to be pr
$string['pluginname'] = 'LDAP enrolments';
$string['pluginname_desc'] = '<p>You can use an LDAP server to control your enrolments. It is assumed your LDAP tree contains groups that map to the courses, and that each of those groups/courses will have membership entries to map to students.</p><p>It is assumed that courses are defined as groups in LDAP, with each group having multiple membership fields (<em>member</em> or <em>memberUid</em>) that contain a uniqueidentification of the user.</p><p>To use LDAP enrolment, your users <strong>must</strong> to have a valid idnumber field. The LDAP groups must have that idnumber in the member fields for a user to be enrolled in the course. This will usually work well if you are already using LDAP Authentication.</p><p>Enrolments will be updated when the user logs in. You can also run a script to keep enrolments in synch. Look in <em>enrol/ldap/cli/sync.php</em>.</p><p>This plugin can also be set to automatically create new courses when new groups appear in LDAP.</p>';
$string['pluginnotenabled'] = 'Plugin not enabled!';
$string['role_mapping'] = '<p>For each role that you want to assign from LDAP, you need to specify the list of contexts where the role courses\'s groups are located. Separate different contexts with \';\'.</p><p>You also need to specify the attribute your LDAP server uses to hold the members of a group. Usually \'member\' or \'memberUid\'</p>';
$string['role_mapping'] = '<p>For each role, you need to specify all LDAP contexts where the groups that represent the courses are located. Separate different contexts with a semicolon (;).</p><p>You also need to specify the attribute your LDAP server uses to hold the members of a group. This is usually \'member\' or \'memberUid\'.</p>';
$string['role_mapping_attribute'] = 'LDAP member attribute for {$a}';
$string['role_mapping_context'] = 'LDAP contexts for {$a}';
$string['role_mapping_key'] = 'Map roles from LDAP ';
+3
View File
@@ -267,5 +267,8 @@ function xmldb_enrol_lti_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -39,5 +39,8 @@ function xmldb_enrol_manual_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -39,5 +39,8 @@ function xmldb_enrol_mnet_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -138,5 +138,8 @@ function xmldb_enrol_paypal_upgrade($oldversion) {
upgrade_plugin_savepoint(true, 2018062503, 'enrol', 'paypal');
}
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -54,5 +54,8 @@ function xmldb_enrol_self_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
@@ -33,7 +33,7 @@ $string['test_unoconvdoesnotexist'] = 'The unoconv path does not point to the un
$string['test_unoconvdownload'] = 'Download the converted pdf test file.';
$string['test_unoconvempty'] = 'The unoconv path is not set. Please review your path settings.';
$string['test_unoconvisdir'] = 'The unoconv path points to a folder, please include the unoconv program in the path you specify';
$string['test_unoconvnotestfile'] = 'The test document to be coverted into a PDF is missing';
$string['test_unoconvnotestfile'] = 'The test document to be converted to PDF is missing.';
$string['test_unoconvnotexecutable'] = 'The unoconv path points to a file that is not executable';
$string['test_unoconvok'] = 'The unoconv path appears to be properly configured.';
$string['test_unoconvversionnotsupported'] = 'The version of unoconv you have installed is not supported.';
+3
View File
@@ -186,5 +186,8 @@ MathJax.Hub.Config({
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -44,5 +44,8 @@ function xmldb_filter_mediaplugin_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -44,5 +44,8 @@ function xmldb_filter_tex_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+20 -13
View File
@@ -213,25 +213,32 @@ class provider implements
JOIN {context} ctx
ON ctx.instanceid = gi.courseid
AND ctx.contextlevel = :courselevel
LEFT JOIN {grade_grades} gg
JOIN {grade_grades} gg
ON gg.itemid = gi.id
AND (gg.userid = :userid1 OR gg.usermodified = :userid2)
LEFT JOIN {grade_grades_history} ggh
WHERE gg.userid = :userid1 OR gg.usermodified = :userid2";
$params = [
'courselevel' => CONTEXT_COURSE,
'userid1' => $userid,
'userid2' => $userid
];
$contextlist->add_from_sql($sql, $params);
$sql = "
SELECT DISTINCT ctx.id
FROM {grade_items} gi
JOIN {context} ctx
ON ctx.instanceid = gi.courseid
AND ctx.contextlevel = :courselevel
JOIN {grade_grades_history} ggh
ON ggh.itemid = gi.id
AND (
ggh.userid = :userid3
OR ggh.loggeduser = :userid4
OR ggh.usermodified = :userid5
)
WHERE gg.id IS NOT NULL
OR ggh.id IS NOT NULL";
WHERE ggh.userid = :userid1
OR ggh.loggeduser = :userid2
OR ggh.usermodified = :userid3";
$params = [
'courselevel' => CONTEXT_COURSE,
'userid1' => $userid,
'userid2' => $userid,
'userid3' => $userid,
'userid4' => $userid,
'userid5' => $userid,
'userid3' => $userid
];
$contextlist->add_from_sql($sql, $params);
+7 -5
View File
@@ -7,7 +7,7 @@
<td>
<label for="removeoutcomes"><?php print_string('outcomescourse', 'grades'); ?></label>
<br />
<select id="removeoutcomes" size="20" name="removeoutcomes[]" multiple="multiple">
<select id="removeoutcomes" size="20" name="removeoutcomes[]" multiple="multiple" class="form-control input-block-level">
<?php
if ($co_standard_notused) {
echo '<optgroup label="'.get_string('outcomescoursenotused', 'grades').'">';
@@ -36,18 +36,20 @@
<?php
if (has_capability('moodle/grade:manageoutcomes', $context)) {
?>
<td>
<td class="p-l-1 p-r-1">
<p class="arrow_button">
<input name="add" id="add" type="submit" value="<?php echo '&nbsp; '.$OUTPUT->larrow().' &nbsp; &nbsp; '.get_string('add'); ?>" title="<?php print_string('add'); ?>" />
<input name="add" class="btn btn_secondary" id="add" type="submit" value="<?php echo '&nbsp; ' . $OUTPUT->larrow() . ' &nbsp; &nbsp; ' .
get_string('add'); ?>" title="<?php print_string('add'); ?>" />
<br />
<input name="remove" id="remove" type="submit" value="<?php echo '&nbsp;'.$OUTPUT->rarrow().' &nbsp; &nbsp; '.get_string('remove'); ?>" title="<?php print_string('remove'); ?>" />
<input name="remove" class="btn btn_secondary" id="remove" type="submit" value="<?php echo '&nbsp;' . get_string('remove') . ' &nbsp; &nbsp; ' .
$OUTPUT->rarrow(); ?>" title="<?php print_string('remove'); ?>" />
</p>
</td>
<?php } ?>
<td>
<label for="addoutcomes"><?php print_string('outcomesstandardavailable', 'grades'); ?></label>
<br />
<select id="addoutcomes" size="20" name="addoutcomes[]" multiple="multiple">
<select id="addoutcomes" size="20" name="addoutcomes[]" multiple="multiple" class="form-control input-block-level">
<?php
foreach ($standardoutcomes as $outcome) {
+3
View File
@@ -49,5 +49,8 @@ function xmldb_gradingform_guide_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -45,5 +45,8 @@ function xmldb_gradingform_rubric_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+4 -4
View File
@@ -64,10 +64,7 @@
}
.gradingform_rubric {
overflow: auto;
padding-bottom: 1.5em;
max-width: 720px;
position: relative;
}
.gradingform_rubric.editor .criterion .controls,
@@ -89,6 +86,9 @@
.gradingform_rubric .criteria {
height: 100%;
display: flex;
width: 100%;
overflow: auto;
}
.gradingform_rubric .criterion {
@@ -307,4 +307,4 @@
margin: 0;
position: relative;
float: right;
}
}
+3
View File
@@ -51,5 +51,8 @@ function xmldb_gradereport_overview_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+3
View File
@@ -41,5 +41,8 @@ function xmldb_gradereport_user_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+1 -1
View File
@@ -38,7 +38,7 @@ $string['clitypevalue'] = 'πληκτρολογήστε μια τιμή';
$string['clitypevaluedefault'] = 'πληκτρολογήστε μια τιμή· πατήστε Enter για να χρησιμοποιήσετε τηνπροεπιλεγμένη τιμή ({$a})';
$string['cliunknowoption'] = 'Μη αναγνωρίσιμες επιλογές: {$a}<br />
Παρακαλούμε χρησιμοποιήστε την επιλογή --βοήθεια';
$string['cliyesnoprompt'] = 'πατώντας ν (σημαίνει ναι) αλλιώς πατώντας ο (σημαίνει όχι)';
$string['cliyesnoprompt'] = 'πατώντας y (σημαίνει yes=ναι) αλλιώς πατώντας n (σημαίνει no=όχι)';
$string['environmentrequireinstall'] = 'απαιτείται να εγκατασταθεί/ ενεργοποιηθεί';
$string['environmentrequireversion'] = 'απαιτείται η έκδοση {$a->needed} ενώ εσείς έχετε την {$a->current}';
$string['upgradekeyset'] = 'Κλειδί αναβάθμισης (αφήστε κενό για να μην το ορίσετε)';
+7 -6
View File
@@ -32,12 +32,13 @@ defined('MOODLE_INTERNAL') || die();
$string['clianswerno'] = 'e';
$string['cliansweryes'] = 'b';
$string['cliincorrectvalueerror'] = 'Errorea, "{$a->value}" balorea ez da egokia "{$a->option}"-rako';
$string['cliincorrectvalueretry'] = 'Balore ezegokia, mesedez saiatu berriz';
$string['clitypevalue'] = 'Sartu balorea';
$string['clitypevaluedefault'] = 'sartu balorea, sakatu Enter-i berezko balorea erabiltzeko ({$a})';
$string['cliunknowoption'] = 'Aukera ezezagunak:{$a}
Mesedez, erabili --laguntza aukera.';
$string['cliincorrectvalueerror'] = 'Errorea, "{$a->value}" balioa ez da egokia "{$a->option}"-rako';
$string['cliincorrectvalueretry'] = 'Balio ezegokia, mesedez saiatu berriz';
$string['clitypevalue'] = 'Sartu balioa';
$string['clitypevaluedefault'] = 'sartu balioa, sakatu Enter-i berezko balioa erabiltzeko ({$a})';
$string['cliunknowoption'] = 'Aukera ezezagunak:
{$a}
Mesedez, erabili --help aukera.';
$string['cliyesnoprompt'] = 'idatzi b (bai esateko) edo e (ez esateko)';
$string['environmentrequireinstall'] = 'derrigorrezkoa da instalatuta eta gaituta izatea';
$string['environmentrequireversion'] = '{$a->needed} bertsioa beharrezkoa da eta zu {$a->current} ari zara egikaritzen';
+1 -1
View File
@@ -43,7 +43,7 @@ $string['cannotsavezipfile'] = 'Ezin da ZIP fitxategia gorde';
$string['cannotunzipfile'] = 'Ezin da fitxategia deskonprimatu';
$string['componentisuptodate'] = 'Osagaia eguneratu da';
$string['dmlexceptiononinstall'] = '<p>Datu-basearen errorea gertatu da [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Jaitsitako fitxategiaren konprobazioak kale egin du.';
$string['downloadedfilecheckfailed'] = 'Jaitsitako fitxategiaren egiaztatzeak huts egin du.';
$string['invalidmd5'] = 'Kontrolerako aldagaia gaizki zegoen - saiatu berriz ere';
$string['missingrequiredfield'] = 'Beharrezko eremuren bat falta da.';
$string['remotedownloaderror'] = '<p>Errorea osagaia zure zerbitzarian jaistean, mesedez egiaztatu proxy-ezarpenak, PHP cURL luzapena erabat gomendatzen da.</p>
+2 -2
View File
@@ -98,6 +98,6 @@ $string['welcomep50'] = 'Paketeko aplikazio guztien erabilpena dagozkien lizentz
arautzen dute. <strong>{$a->installername}</strong> aplikazioak
<a href="http://www.opensource.org/docs/definition_plain.html">kode irekia</a> dauka eta
<a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> lizentziapean banatzen da.';
$string['welcomep60'] = 'Datozen orriek urrats erraz batzuen bidez gidatuko zaituzte <strong>Moodle</strong> zure ordenagailuan instalatu eta konfiguratzeko. Aholkatzen diren lehentsitako baloreak mantendu edo, nahi izanez gero, alda ditzakezu zure beharrei erantzun diezaieten.';
$string['welcomep70'] = '"Hurrengoa" botoia sakatu <strong>Moodle</strong>ren konfigurazioarekin jarraitzeko.';
$string['welcomep60'] = 'Datozen orriek urrats erraz batzuen bidez gidatuko zaituzte <strong>Moodle</strong> zure ordenagailuan instalatu eta konfiguratzeko. Aholkatzen diren lehenetsitako balioak mantendu edo, nahi izanez gero, alda ditzakezu zure beharrei erantzun diezaieten.';
$string['welcomep70'] = 'Egin klik "Hurrengoa" botoian <strong>Moodle</strong>ren konfigurazioarekin jarraitzeko.';
$string['wwwroot'] = 'Web helbidea';
+3
View File
@@ -30,6 +30,9 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Ne mogu stvoriti bazu podataka.</p>
<p>Navedena baza podataka ne postoji i korisnik nema prava stvaranja baze podataka.</p>
<p>Administrator treba provjeriti postavke baze podataka.</p>';
$string['cannotcreatelangdir'] = 'Nije moguće stvoriti lang mapu';
$string['cannotcreatetempdir'] = 'Nije moguće stvoriti privremenu (TEMP) mapu';
$string['cannotdownloadcomponents'] = 'Nije moguće preuzimanje komponenti';
+1 -1
View File
@@ -41,7 +41,7 @@ $string['cannotunzipfile'] = 'មិនអាចពន្លាឯកសារ
$string['componentisuptodate'] = 'សមាសភាគគឺទាន់សម័យ ។';
$string['downloadedfilecheckfailed'] = 'បានបរាជ័យក្នុងការពិនិត្យឯកសារដែលបានទាញយក ។';
$string['invalidmd5'] = 'md5 មិនត្រឹមត្រូវ';
$string['missingrequiredfield'] = 'បាត់វាលដែលត្រូវារមួយចំនួន';
$string['missingrequiredfield'] = 'បាត់ប្រអប់ទិន្នន័យដែលត្រូវទាមទារមួយចំនួន';
$string['remotedownloaderror'] = 'បរាជ័យក្នុងការទាញយកសមាសភាគទៅម៉ាស៊ីនបម្រើរបស់អ្នក សូមផ្ទៀងផ្ទាត់ប្រូកស៊ី ផ្នែកបន្ថែម PHP cURL ត្រូវបានផ្ដល់អនុសាសន៍ ។<br /><br />អ្នកត្រូវតែទាញយកឯកសារ <a href="{$a->url}">{$a->url}</a> ដោយដៃ ចម្លងវាទៅ "{$a->dest}" ក្នុងម៉ាស៊ីនបម្រើរបស់អ្នក និងពន្លាវានៅទីនោះ ។';
$string['wrongdestpath'] = 'ផ្លូវទិសដៅមិនត្រឹមត្រូវ ។';
$string['wrongsourcebase'] = 'មូលដ្ឋាន URL ប្រភពមិនត្រឹមត្រូវ ។';
+1 -1
View File
@@ -33,5 +33,5 @@ defined('MOODLE_INTERNAL') || die();
$string['language'] = 'Język';
$string['moodlelogo'] = 'Logo Moodle';
$string['next'] = 'Dalej';
$string['previous'] = 'Poprzedni';
$string['previous'] = 'Wstecz';
$string['reload'] = 'Odśwież';
+2
View File
@@ -280,6 +280,7 @@ $string['configmaxevents'] = 'Events to Lookahead';
$string['configmessaging'] = 'If enabled, users can send messages to other users on the site.';
$string['configmessagingallowemailoverride'] = 'Allow users to have email message notifications sent to an email address other than the email address in their profile';
$string['configmessagingdeletereadnotificationsdelay'] = 'Read notifications can be deleted to save space. How long after a notification is read can it be deleted?';
$string['configmessagingdeleteallnotificationsdelay'] = 'Read and unread notifications can be deleted to save space. How long after a notification is created can it be deleted?';
$string['configmessagingallusers'] = 'If enabled, users can view the list of all users on the site when selecting someone to message, and their message preferences include the option to accept messages from anyone on the site. If disabled, users can only view the list of users in their courses, and they have just two options in message preferences - to accept messages from their contacts only, or their contacts and anyone in their courses.';
$string['configminpassworddigits'] = 'Passwords must have at least these many digits.';
$string['configminpasswordlength'] = 'Passwords must be at least these many characters long.';
@@ -769,6 +770,7 @@ $string['messaging'] = 'Enable messaging system';
$string['messagingallowemailoverride'] = 'Notification email override';
$string['messagingallusers'] = 'Allow site-wide messaging';
$string['messagingdeletereadnotificationsdelay'] = 'Delete read notifications';
$string['messagingdeleteallnotificationsdelay'] = 'Delete all notifications';
$string['minpassworddigits'] = 'Digits';
$string['minpasswordlength'] = 'Password length';
$string['minpasswordlower'] = 'Lowercase letters';
+5 -3
View File
@@ -77,9 +77,10 @@ $string['forced'] = 'Locked';
$string['guestnoeditmessage'] = 'Guest user can not edit messaging options';
$string['guestnoeditmessageother'] = 'Guest user can not edit other user messaging options';
$string['groupinfo'] = 'Group info';
$string['groupmessages'] = 'Group messages';
$string['groupconversations'] = 'Group';
$string['hidemessagewindow'] = 'Hide message window';
$string['hidenotificationwindow'] = 'Hide notification window';
$string['individualconversations'] = 'Private';
$string['info'] = 'Info';
$string['isnotinyourcontacts'] = '{$a} is not in your contacts';
$string['loadmore'] = 'Load more';
@@ -109,13 +110,14 @@ $string['messagingdatahasnotbeenmigrated'] = 'Your messages are temporarily unav
$string['newonlymsg'] = 'Show only new';
$string['newmessage'] = 'New message';
$string['newmessagesearch'] = 'Select or search for a contact to send a new message.';
$string['nofavourites'] = 'No starred messages';
$string['nofavourites'] = 'No starred conversations';
$string['noframesjs'] = 'Use more accessible interface';
$string['nocontactrequests'] = 'No contact requests';
$string['nocontacts'] = 'No contacts';
$string['nocontactsgetstarted'] = 'No contacts';
$string['nogroupmessages'] = 'No group messages';
$string['nogroupconversations'] = 'No group conversations';
$string['nomessages'] = 'No messages';
$string['noindividualconversations'] = 'No private conversations';
$string['nomessagesfound'] = 'No messages were found';
$string['noreply'] = 'Do not reply to this message';
$string['noncontacts'] = 'Non-contacts';
+31
View File
@@ -5434,6 +5434,9 @@ abstract class context extends stdClass implements IteratorAggregate {
return array();
}
// Preload the contexts to reduce DB calls.
context_helper::preload_contexts_by_id($contextids);
$result = array();
foreach ($contextids as $contextid) {
$parent = context::instance_by_id($contextid, MUST_EXIST);
@@ -5870,6 +5873,34 @@ class context_helper extends context {
context::preload_from_record($rec);
}
/**
* Preload a set of contexts using their contextid.
*
* @param array $contextids
*/
public static function preload_contexts_by_id(array $contextids) {
global $DB;
// Determine which contexts are not already cached.
$tofetch = [];
foreach ($contextids as $contextid) {
if (!self::cache_get_by_id($contextid)) {
$tofetch[] = $contextid;
}
}
if (count($tofetch) > 1) {
// There are at least two to fetch.
// There is no point only fetching a single context as this would be no more efficient than calling the existing code.
list($insql, $inparams) = $DB->get_in_or_equal($tofetch, SQL_PARAMS_NAMED);
$ctxs = $DB->get_records_select('context', "id {$insql}", $inparams, '',
\context_helper::get_preload_record_columns_sql('{context}'));
foreach ($ctxs as $ctx) {
self::preload_from_record($ctx);
}
}
}
/**
* Preload all contexts instances from course.
*
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+2
View File
@@ -683,6 +683,8 @@ define(['jquery', 'core/log', 'core/str', 'core/templates', 'core/notification']
}
var suggestionsElement = $(document.getElementById(state.suggestionsId));
// Remove any click handler first.
suggestionsElement.parent().prop("onclick", null).off("click");
suggestionsElement.parent().on('click', '[role=option]', function(e) {
var pendingKey = 'form-autocomplete-parent';
M.util.js_pending(pendingKey);
+6 -1
View File
@@ -723,7 +723,12 @@ define(['jquery', 'core/templates', 'core/notification', 'core/key_codes',
// If the click wasn't inside the modal element then we should
// hide the modal.
if (!$(e.target).closest(SELECTORS.MODAL).length) {
this.hide();
// The check above fails to detect the click was inside the modal when the DOM tree is already changed.
// So, we check if we can still find the container element or not. If not, then the DOM tree is changed.
// It's best not to hide the modal in that case.
if ($(e.target).closest(SELECTORS.CONTAINER).length) {
this.hide();
}
}
}.bind(this));
+3
View File
@@ -60,5 +60,8 @@ function xmldb_antivirus_clamav_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
// Automatically generated Moodle v3.6.0 release upgrade line.
// Put any upgrade step following this.
return true;
}
+5
View File
@@ -519,6 +519,11 @@ class block_manager {
}
}
$this->regions[$region] = 1;
// Checking the actual property instead of calling get_default_region as it ends up in a recursive call.
if (empty($this->defaultregion)) {
$this->set_default_region($region);
}
}
/**
+2 -5
View File
@@ -337,16 +337,13 @@ abstract class core_filetypes {
// Get defaults.
$mimetypes = self::get_default_types();
// If there are no custom types, just return.
// Get custom file types.
$custom = self::get_custom_types();
if (empty($custom)) {
return $mimetypes;
}
// Check value is an array.
if (!is_array($custom)) {
debugging('Invalid $CFG->customfiletypes (not array)', DEBUG_DEVELOPER);
return $mimetypes;
$custom = array();
}
foreach ($custom as $customentry) {
+1 -1
View File
@@ -86,7 +86,7 @@ class api {
// Facebook is a custom setup.
$record = (object) [
'name' => 'Facebook',
'image' => 'https://facebookbrand.com/wp-content/themes/fb-branding/prj-fb-branding/assets/images/fb-art.png',
'image' => 'https://facebookbrand.com/wp-content/uploads/2016/05/flogo_rgb_hex-brc-site-250.png',
'baseurl' => '',
'loginscopes' => 'public_profile email',
'loginscopesoffline' => 'public_profile email',

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