Compare commits

..

324 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) 687aad78bd Moodle release 3.1.9 2017-11-11 19:29:23 +01:00
Eloy Lafuente (stronk7) 21144b8419 Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-11-11 19:29:19 +01:00
AMOS bot 0372a0accb Automatically generated installer lang files 2017-11-11 00:06:07 +00:00
AMOS bot fea4000d5e Automatically generated installer lang files 2017-11-09 00:05:29 +00:00
AMOS bot 7105cb7684 Automatically generated installer lang files 2017-11-08 00:05:29 +00:00
AMOS bot d868aafa8e Automatically generated installer lang files 2017-11-05 00:07:15 +00:00
Sara Arjona 54bb01439e MDL-60550 user: Add more restrictions in keyword searches
Original patch provided by Tim Schroeder.
2017-10-31 11:55:28 +13:00
David Monllao 0b42937599 weekly release 3.1.8+ 2017-10-27 12:48:23 +02:00
David Monllao fab3e4fa3d Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-10-27 12:48:22 +02:00
Damyon Wiese 2393486db4 Merge branch 'MDL-60366_feedback_upgrade_31' of git://github.com/davosmith/moodle into MOODLE_31_STABLE 2017-10-26 16:05:16 +08:00
Andrew Nicols 853fbda447 Merge branch 'wip-MDL-60543-31' of git://github.com/marinaglancy/moodle into MOODLE_31_STABLE 2017-10-26 14:35:45 +08:00
AMOS bot 007edbdecb Automatically generated installer lang files 2017-10-25 00:06:28 +08:00
Davo Smith c614487d2d MDL-60366 mod_feedback: fix deletion of valid anonymous duplicates 2017-10-24 09:38:49 +01:00
Marina Glancy 58643c8b11 MDL-60543 env: Moodle 3.2 and 3.3 do no support PHP7.2 2017-10-23 14:25:43 +08:00
AMOS bot 9cdf50cb79 Automatically generated installer lang files 2017-10-14 00:09:00 +08:00
AMOS bot 03bfea8134 Automatically generated installer lang files 2017-10-10 00:12:39 +08:00
AMOS bot 9962df9eb3 Automatically generated installer lang files 2017-09-29 00:06:41 +08:00
AMOS bot 6f845655e5 Automatically generated installer lang files 2017-09-22 00:08:45 +08:00
AMOS bot 1ff9dccd8d Automatically generated installer lang files 2017-09-22 00:08:45 +08:00
AMOS bot 5fd13b5970 Automatically generated installer lang files 2017-09-21 00:06:44 +08:00
AMOS bot f79a3236ea Automatically generated installer lang files 2017-09-13 00:07:27 +08:00
Eloy Lafuente (stronk7) 25fd679aaf Moodle release 3.1.8 2017-09-09 22:48:00 +02:00
Eloy Lafuente (stronk7) 93cca9afbe Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-09-09 22:47:57 +02:00
David Mudrák 26663756fb MDL-59969 admin: Warn admins if a development libs directory exists
We can't really control the direct web access to directories in dirroot,
that is part of the server setup. So we at least warn admins as they may
not realize the risks of having directories like vendor or node_modules
exposed.

Credit goes to Petr Škoda for mentioning the PHPUnit issue CVE-2017-9841
to me.
2017-09-05 21:59:01 +08:00
Marina Glancy e404606458 MDL-59972 mod_feedback: escape subject when showing the contact form 2017-09-04 11:31:15 +08:00
Jake Dallimore 68b925e274 MDL-58953 user: additional test case for user_can_view_profile() 2017-08-30 10:35:51 +08:00
Jake Dallimore 0a8190569f MDL-58953 user: fix course checking logic in user_can_view_profile()
Make sure to check that $user in enrolled in $course before checking
whether the current user has capabilities in that course, and make sure
that we don't check user context caps when handling a specific course.
2017-08-30 10:35:51 +08:00
AMOS bot d95fb5245b Automatically generated installer lang files 2017-08-29 00:08:35 +08:00
AMOS bot fcea6de794 Automatically generated installer lang files 2017-08-28 00:10:01 +08:00
AMOS bot e5b89df732 Automatically generated installer lang files 2017-08-26 00:07:44 +08:00
AMOS bot 67ea841f41 Automatically generated installer lang files 2017-08-25 00:06:23 +08:00
AMOS bot a64872eb59 Automatically generated installer lang files 2017-08-25 00:06:23 +08:00
AMOS bot 5d20a3ed14 Automatically generated installer lang files 2017-08-17 00:09:03 +08:00
Simey Lameze 39aacd1dfe MDL-59776 core_calendar: unit tests of module events deletion 2017-08-15 11:34:25 +08:00
Simey Lameze bc312c648a MDL-59776 core_calendar: prevent deletion of module events 2017-08-15 11:34:25 +08:00
AMOS bot b545f830d0 Automatically generated installer lang files 2017-08-14 00:09:03 +08:00
AMOS bot 5325b4efe1 Automatically generated installer lang files 2017-07-31 00:10:57 +08:00
AMOS bot c6d38b89dc Automatically generated installer lang files 2017-07-29 00:11:21 +08:00
AMOS bot 73e0775d26 Automatically generated installer lang files 2017-07-26 00:08:17 +08:00
AMOS bot e4eb50ae15 Automatically generated installer lang files 2017-07-23 00:09:26 +08:00
AMOS bot 34e60f0dbf Automatically generated installer lang files 2017-07-22 00:08:38 +08:00
AMOS bot 5f2a1f0c36 Automatically generated installer lang files 2017-07-21 00:07:28 +08:00
Juan Leyva 1357976049 MDL-58762 core: Get full course objects on navigation
The course object passed as parameter to extend_navigation_user
callback contained only a few parameters, some parameters like
showgrades or showreports were missing.
The callback should receive a full course object.
2017-07-20 20:23:43 +08:00
Juan Leyva 9f7af133fd MDL-58762 report: Check group permissions in course user reports
Teachers were able to see any student report even with forced separated
groups and capability moodle/course:accessallgroups off.
2017-07-20 20:23:43 +08:00
Dan Poltawski 0faa1175fe weekly release 3.1.7+ 2017-07-20 13:21:01 +01:00
Dan Poltawski f3fe4f52e1 Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-07-20 13:21:00 +01:00
Andrew Nicols 45a405014e Merge branch 'wip-MDL-57649-31-fix2' of git://github.com/abgreeve/moodle into MOODLE_31_STABLE 2017-07-20 10:24:43 +08:00
Adrian Greeve b77e45119c MDL-57649 mod_lesson: Improvement to upgrade query.
We only need one record for each filearea that we
are removing.
2017-07-20 10:03:29 +08:00
AMOS bot 9a3855aa00 Automatically generated installer lang files 2017-07-20 00:07:29 +08:00
Dan Poltawski f06abbd040 Merge branch 'wip-MDL-57649-31-fix' of git://github.com/abgreeve/moodle into MOODLE_31_STABLE 2017-07-19 09:33:31 +01:00
Adrian Greeve 9e1375fac0 MDL-57649 mod_lesson: Additional refinement to upgrade script. 2017-07-19 15:48:59 +08:00
Dani Palou 62be5f6154 MDL-59068 lesson: Revert MDL-54849
MDL-54859 made the 'wrong jump' setting useless, since clicking 'No' always sends the user to the next page.
2017-07-17 10:10:22 +02:00
Dan Poltawski 5db085f0a7 Merge branch 'wip-MDL-57649-31' of git://github.com/abgreeve/moodle into MOODLE_31_STABLE 2017-07-17 09:01:12 +01:00
Adrian Greeve 734fb0f015 MDL-57649 mod_lesson: Delete answer files correctly.
The files associated with answers and responses were
not being deleted due to the fact that the wrong itemid
was being used.
2017-07-17 09:20:40 +08:00
AMOS bot 0fd90e2044 Automatically generated installer lang files 2017-07-17 00:07:23 +08:00
Dan Poltawski ab4afd711a weekly release 3.1.7+ 2017-07-14 11:46:55 +01:00
Dan Poltawski 4fc794b7ef Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-07-14 11:46:54 +01:00
Eloy Lafuente (stronk7) f883e31728 Merge branch 'MDL-57432-31' of git://github.com/danpoltawski/moodle into MOODLE_31_STABLE 2017-07-11 10:18:31 +02:00
AMOS bot c2e08a97c1 Automatically generated installer lang files 2017-07-11 00:07:01 +08:00
Dan Poltawski cd7cd469ae MDL-57432 environment: raise Moodle requirement
Due to Moodle 2.7 and Moodle 3.4 not having a common compatible php version
between them to upgrade from Moodle 3.4 from Moodle 2.7 you'll need to upgrade
to a higher version first or upgrade php at the same time as upgrade,
this encourages the former.
2017-07-10 09:22:51 +01:00
Dan Poltawski 43d1a8695c MDL-57432 environment: raise Moodle 3.4 requirements
1) PHP minimum version raised to 7.0.0
2) Intl extension raised from optional to required
2017-07-10 09:22:51 +01:00
Dan Poltawski 499e619868 MDL-57432 environment: 3.4 base information
This is a direct copy of the 3.3 branch to
have changes under control easier in next commits.
2017-07-10 09:22:51 +01:00
Eloy Lafuente (stronk7) 914ce2602e Moodle release 3.1.7 2017-07-08 20:43:29 +02:00
AMOS bot 43663a70af Automatically generated installer lang files 2017-07-08 00:16:44 +08:00
Jake Dallimore c072f462c6 weekly release 3.1.6+ 2017-07-07 12:10:24 +08:00
Jake Dallimore 99b4c8bb10 Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-07-07 12:10:22 +08:00
AMOS bot 6e1f0e9527 Automatically generated installer lang files 2017-07-07 00:06:52 +08:00
Simey Lameze bd83aa0cd6 MDL-59456 auth_cas: patch phpCAS auth bypass vulnerability 2017-07-06 09:36:17 +01:00
Marina Glancy c7a89d2009 MDL-59409 admin: set admin user in unittest 2017-07-04 11:05:41 +08:00
Ankit Agarwal 548c5fa21e MDL-56565: core_message\helper was not present in 3.1, remove it 2017-07-04 10:11:39 +08:00
Ankit Agarwal 106fa63926 MDL-56565 forum: Add sitename as heading when there is nothing to display 2017-07-04 10:11:39 +08:00
Ankit Agarwal 5176a91648 MDL-56565 forum: Make sure userfullname is not disclosed 2017-07-04 10:11:39 +08:00
Jake Dallimore 540a38d586 MDL-56565 navigation: fix for cap checks in nav and context header
Fix to:
- Make sure we properly check both user and course contexts in
the load_for_user function in navigation lib and user the
user_can_view_profile function for same-course access checks.
- Use user_can_view_profile in the renderer's context_header to
properly decide whether a user can view another user's picture
and messaging options in the page header.
2017-07-04 10:11:39 +08:00
Jake Dallimore 47f81ef27f MDL-56565 navigation: fix user details disclosure in nav tree
Fixes a bug in which a user's full name might be disclosed via the
nav tree. Nav generation now checks the current user's access to the
user before adding the node, else adds a dummy node.
2017-07-04 10:11:39 +08:00
Jake Dallimore d4fa90b0e9 MDL-56565 core: fix user details disclosure in page context header
Fixes a bug with context_header function in which user details were
displayed regardless of the current user's capabilities.
2017-07-04 10:11:39 +08:00
Marina Glancy 033429a51c MDL-59409 admin: check access to every setting in category 2017-07-04 10:06:01 +08:00
AMOS bot 3c8e25328c Automatically generated installer lang files 2017-06-26 00:12:32 +08:00
AMOS bot bd08b92fcb Automatically generated installer lang files 2017-06-23 00:08:21 +08:00
AMOS bot 13add2b85c Automatically generated installer lang files 2017-06-11 00:06:40 +08:00
AMOS bot e42fa42955 Automatically generated installer lang files 2017-06-04 00:07:40 +08:00
AMOS bot bbbaa37cc5 Automatically generated installer lang files 2017-06-04 00:07:40 +08:00
AMOS bot 7c26a6bd77 Automatically generated installer lang files 2017-06-03 00:08:20 +08:00
AMOS bot ebbf9851c8 Automatically generated installer lang files 2017-06-01 00:12:59 +08:00
AMOS bot 65cd459455 Automatically generated installer lang files 2017-05-23 00:06:03 +08:00
AMOS bot df91963a70 Automatically generated installer lang files 2017-05-18 00:07:35 +08:00
AMOS bot eb58b204ff Automatically generated installer lang files 2017-05-16 00:07:39 +08:00
AMOS bot 11106c1bcc Automatically generated installer lang files 2017-05-14 00:05:09 +08:00
AMOS bot 6e76ce1689 Automatically generated installer lang files 2017-05-13 00:04:59 +08:00
AMOS bot bbe6b470aa Automatically generated installer lang files 2017-05-11 00:05:01 +08:00
Eloy Lafuente (stronk7) 6d0649e537 Moodle release 3.1.6 2017-05-07 21:32:51 +02:00
AMOS bot b36b735a3b Automatically generated installer lang files 2017-05-07 00:06:27 +08:00
Eloy Lafuente (stronk7) 1df212a569 weekly release 3.1.5+ 2017-05-05 17:26:50 +02:00
Andrew Nicols 843fcc5fac Merge branch 'wip-MDL-50670-31-fix' of https://github.com/marinaglancy/moodle into MOODLE_31_STABLE 2017-05-05 15:10:15 +08:00
Marina Glancy 4d3595e7af MDL-50670 course: apply defaults when format was switched 2017-05-05 14:52:08 +08:00
Jun Pataleta c68568541f Merge branch 'MDL-58807-31' of https://github.com/junpataleta/moodle into MOODLE_31_STABLE 2017-05-05 14:45:00 +08:00
Luca Bösch dde166ba07 MDL-58807 block_activity_results: Use multilang in block title
The title passes format_string now.
2017-05-05 14:43:47 +08:00
Andrew Nicols 542536418d MDL-58259 mod_forum: Check if attachments allowed
If the current user is not allowed to submit attachments with a post,
and attachments are incldued, they are now dropped.
2017-05-05 10:29:45 +08:00
Andrew Nicols 603ba08d27 Merge branch 'MDL-55371-31' of git://github.com/jleyva/moodle into MOODLE_31_STABLE 2017-05-05 10:10:56 +08:00
Dan Poltawski 0dcab26cd9 Merge branch 'MDL-58709-31' of git://github.com/jleyva/moodle into MOODLE_31_STABLE 2017-05-04 15:15:06 +01:00
Juan Leyva 26c501f37e MDL-55371 mod_assign: Do not return empty users in get_participant WS
The WS was returning null users making the WS to fail.
2017-05-04 10:10:43 +02:00
Jun Pataleta 545174182a Merge branch 'MDL-58749-31-enfix' of git://github.com/mudrd8mz/moodle into MOODLE_31_STABLE 2017-05-04 14:51:07 +08:00
Andrew Nicols 5166e06e08 MDL-56675 cachestore_memcached: Check all connected servers for support 2017-05-04 13:35:00 +08:00
Andrew Nicols e7e9d4c0b5 Merge branch 'MDL-58707-31' of git://github.com/jleyva/moodle into MOODLE_31_STABLE 2017-05-04 11:45:55 +08:00
Andrew Nicols 2786be9622 Merge branch 'MDL-58431-31' of git://github.com/jleyva/moodle into MOODLE_31_STABLE 2017-05-04 11:03:44 +08:00
David Monllao 27442e8c01 Merge branch 'MDL-56675-31' of git://github.com/andrewnicols/moodle into MOODLE_31_STABLE 2017-05-04 10:57:04 +08:00
Helen Foster 5e2cd4637e MDL-58749 lang: Merge English strings from the en_fix language pack
Significant string change:

* errorinvalidbyhour,core_calendar - correcting number from 59 to 23
2017-05-03 22:07:50 +02:00
Eloy Lafuente (stronk7) 2588195fc0 Merge branch 'MDL-58754-31' of git://github.com/andrewnicols/moodle into MOODLE_31_STABLE 2017-05-03 20:53:56 +02:00
Eloy Lafuente (stronk7) 315214fd80 Merge branch 'MDL-58788-31' of git://github.com/danpoltawski/moodle into MOODLE_31_STABLE 2017-05-03 19:06:13 +02:00
Dan Poltawski 04f5ebb886 MDL-58788 behat: backport of course navigation with editing step 2017-05-03 17:34:43 +01:00
Dan Poltawski 08ff55dad7 Merge branch 'MDL-58772_31' of git://github.com/aolley/moodle into MOODLE_31_STABLE 2017-05-03 16:50:33 +01:00
Dan Poltawski 5c93b9a5ce Merge branch 'MDL-35913-31' of git://github.com/jleyva/moodle into MOODLE_31_STABLE 2017-05-03 14:13:22 +01:00
Dan Poltawski 4f14f2f491 Merge branch 'MDL-58434-31' of git://github.com/jleyva/moodle into MOODLE_31_STABLE 2017-05-03 14:03:11 +01:00
Marina Glancy 24db354737 MDL-50670 course: correctly apply defaults for format options 2017-05-03 13:31:04 +01:00
Dan Poltawski c0e9e7e0a0 MDL-58788 behat: backport of course navigation step
These got introduced in master on
3353cfd8c1 / MDL-58265

It will be useful for third party devs sharing feature files between
multiple branches.
2017-05-03 10:36:17 +01:00
Marina Glancy 900f974216 MDL-58740 block_course_overview: check session key
Thanks to Kukas Schmidt for initial patch
2017-05-03 10:47:27 +08:00
Marina Glancy 61f2bbbf36 MDL-58670 blog: respect capability to search entries 2017-05-03 10:47:27 +08:00
Marina Glancy e5bec10f56 MDL-58635 blogs: check edited blog belongs to current user 2017-05-03 10:47:27 +08:00
Andrew Hancox 9005f18486 MDL-58172 mod_choice: Make export choice respect id fields 2017-05-03 10:47:27 +08:00
David Monllao 29df554433 weekly release 3.1.5+ 2017-05-03 10:27:43 +08:00
Andrew Nicols b31860af40 MDL-56675 cachestore_memcached: Disable store if not purgeable
If the store is shared and the getAllKeys function is broken due to an
incompatability between libmemcached and memcached >= 1.4.23, then it is
not possible to purge the cache, and we cannot support the plugin.

This patch adjusts the isready check to additionally check if the
combination of libmemcached and memcached is affected by this issue.
2017-05-03 09:25:04 +08:00
Andrew Nicols 605cba073c MDL-58746 core: Simplify environment check 2017-05-03 08:33:02 +08:00
Juan Leyva 46573be04b MDL-58434 mod_lesson: Display invalid responses in detailed report
In the detailed statistics view for one user attempt, the user response
for numerical question types was not being displayed.
This was only happening for incorrect responses.
2017-05-02 19:59:55 +02:00
Andrew Nicols 6adcb47532 MDL-58754 competency: Change query for DISTINCT COUNT 2017-05-02 14:49:24 +08:00
Adam Olley 0fc3aba77e MDL-58772 mod_feedback: Dont overwrite anonymous entries
The feedback module lets you alternate between responses being anonymised and
not anonymised. When the module is in anonymous mode, its possible for a single
user to make multiple responses.

However when the activity is switched to non-anon mode, if a user leaves a
follow up feedback, one of their previously anonymous responses is used, so
their new response stays anonymous and their old anon response is lost.

This change lets them leave a new non-anonymised feedback entry and retains all
previous anonymous responses instead of incorrectly reusing one of their anon
ones at random.
2017-05-02 12:50:05 +09:30
Marina Glancy 29c2971468 MDL-55468 mod_feedback: revive export analysis to excel 2017-05-01 14:34:27 +01:00
Andrew Nicols 1536b56796 MDL-58746 core: Add environment check for finfo 2017-05-01 13:09:38 +08:00
Dan Poltawski 26713f79f4 weekly release 3.1.5+ 2017-04-28 12:35:50 +01:00
Dan Poltawski 1769ede142 Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-04-28 12:35:49 +01:00
Dan Poltawski e411b59f80 Merge branch 'MDL-58722-31-fix' of https://github.com/xow/moodle into MOODLE_31_STABLE 2017-04-28 07:50:29 +01:00
John Okely 21b902996a MDL-58722 mathjax: Fix httpsurl upgrade 2017-04-28 14:30:34 +08:00
Damyon Wiese 9c68807f6c MDL-54849 lesson: Fix backport
The backport branch was using undefined behat steps and functions.
2017-04-28 10:31:35 +08:00
Dan Poltawski c06dc57666 Merge branch 'wip-MDL-58689-31' of git://github.com/marinaglancy/moodle into MOODLE_31_STABLE 2017-04-27 18:35:30 +01:00
Juan Leyva e707c69cce MDL-58709 registration: Fix incorrect setType 2017-04-27 16:58:31 +02:00
Dan Poltawski d39fbc3e06 Merge branch 'MDL-58722-31' of git://github.com/damyon/moodle into MOODLE_31_STABLE 2017-04-27 14:36:25 +01:00
David Monllao 1d2368318a Merge branch 'MDL-58628-31' of git://github.com/jleyva/moodle into MOODLE_31_STABLE 2017-04-27 17:09:54 +08:00
Damyon Wiese 7dfa47b2dd MDL-58722 mathjax: Update to 2.7.1 and remove a11y
2.7.1 bundles the accessibility and mchem extensions so we no longer need to bundle them and apply custom config.
2017-04-27 16:56:14 +08:00
Juan Leyva 0c61a163ae MDL-58628 mod_quiz: Return missing fields in get_quizzes_by_courses
These fields must be returned always (even if the quiz is closed).
Those fields are required to display data to users that, for example,
finished a timed quiz.
2017-04-27 09:57:24 +02:00
Jake Dallimore 0af674082c Merge branch 'MDL-58701-31' of git://github.com/ankitagarwal/moodle into MOODLE_31_STABLE 2017-04-27 13:34:11 +08:00
Ankit Agarwal 927a6221aa MDL-58701 phpunit: Add tests for external_settings 2017-04-27 09:44:28 +05:30
Ankit Agarwal e63627f50e MDL-58701 libraries: Use pluginfile.php as rewrite url for web req. 2017-04-27 09:40:19 +05:30
David Monllao 77be0785fd Merge branch 'MDL-58698-31-strlang' of git://github.com/mudrd8mz/moodle into MOODLE_31_STABLE 2017-04-27 11:35:20 +08:00
David Monllao 9427e333c7 Merge branch 'wip-MDL-57807-31' of git://github.com/abgreeve/moodle into MOODLE_31_STABLE 2017-04-27 11:33:52 +08:00
David Monllao 506fd9545c Merge branch 'MDL-58372-31' of git://github.com/Dagefoerde/moodle into MOODLE_31_STABLE 2017-04-27 11:32:15 +08:00
Andrew Nicols a7ce01cc70 Merge branch 'MDL-58691-31' of git://github.com/ankitagarwal/moodle into MOODLE_31_STABLE 2017-04-27 11:27:23 +08:00
David Monllao de9af122db Merge branch 'MDL-54849-31' of git://github.com/damyon/moodle into MOODLE_31_STABLE 2017-04-27 11:20:38 +08:00
Marina Glancy 9b04032e45 MDL-58689 dml: prevent logging during setup 2017-04-27 10:06:12 +08:00
Adrian Greeve e42f41b81a MDL-57807 mod_data: Advanced search with menu item.
It is now possible to search other criteria without first
setting the menu items.

Thanks to Sergey Gorbatov for providing this patch.
2017-04-27 09:08:31 +08:00
AMOS bot 5b1b83101e Automatically generated installer lang files 2017-04-27 00:05:53 +08:00
Jan Dageförde 50e53bb6ea MDL-58372 repository_webdav: Explicitly pass some filename
Not passing anything triggers PHP 7.1 "Too few arguments" exception.
2017-04-26 11:28:52 +02:00
David Mudrák e025fd2123 MDL-58698 js: Fix the detection of the language in core_str module
This is the same problem that we had in MDL-52486. When the language
pack with multiple underscores (such as "en_us_k12") is selected, the
html root element's "lang" attribute is set to

    <html lang="en-us-12" ...>

which we then map back to the Moodle lang code using the JS function
replace().

What was missed in MDL-52486 was that when replacing a value (and not a
regular expression), only the first instance of the value is replaced.
So the value "en_us-k12" was sent as the lang parameter which is invalid
PARAM_LANG value and the exception was thrown.
2017-04-26 10:21:12 +02:00
Jake Dallimore 4b7b979d39 weekly release 3.1.5+ 2017-04-26 14:49:09 +08:00
Jake Dallimore e2180dbc89 Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-04-26 14:49:08 +08:00
Jun Pataleta 7b4ecf6fe2 Merge branch 'MDL-58668-31' of git://github.com/jleyva/moodle into MOODLE_31_STABLE 2017-04-26 11:03:09 +08:00
Juan Leyva 51134125fc MDL-58707 mod_assign: Fix param type for returned field
The ‘description’ field is populated via a get_string call, this means
that it may content html.
The component used for translation is also fixed in this commit.
2017-04-25 14:42:48 +02:00
Juan Leyva 4268f10674 MDL-58668 mod_lesson: Fix how multi answers are processed
The module was choosing as incorrect the first possible incorrect
answer instead the first student incorrect answer.
In the patch I also refactored the foreach loop to avoid code
duplication.
2017-04-24 13:33:30 +02:00
Dan Poltawski 6cbdb4c31c Merge branch 'MDL-58556-31' of git://github.com/damyon/moodle into MOODLE_31_STABLE 2017-04-24 11:05:19 +01:00
Ankit Agarwal 2bbd04781c MDL-58691 exporter: Filters should always apply for web pages
The variables AJAX_SCIRPT, CLI_SCRIPT, WS_SERVER are always defined (and set to false)
when webpages are rendered, hence the check of 'defined' is invalid
2017-04-24 13:46:07 +05:30
Jake Dallimore 454d532acb Merge branch 'MDL-57793-31' of git://github.com/junpataleta/moodle into MOODLE_31_STABLE 2017-04-24 15:18:13 +08:00
Damyon Wiese b30c0b6b68 MDL-58556 auth: better expired password
If the auth plugin is using a custom url to change password - don't rely on forcepasswordchange
user preference being reset.
2017-04-24 15:09:11 +08:00
Damyon Wiese afb659ff15 MDL-54849 lesson: Move on to next question
Move on to next question button takes you to the same question again.
2017-04-24 14:50:32 +08:00
Jun Pataleta a7457acc52 Merge branch 'MDL-58586-31' of git://github.com/damyon/moodle into MOODLE_31_STABLE 2017-04-24 09:33:55 +08:00
AMOS bot 34ed4e0e19 Automatically generated installer lang files 2017-04-23 00:04:43 +08:00
Dan Poltawski c7c84089f1 weekly release 3.1.5+ 2017-04-21 15:47:35 +01:00
Dan Poltawski 3b9df47dfe Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-04-21 15:47:32 +01:00
Damyon Wiese 79f0d69bca MDL-58586 css: add margin to userpictures
Boost has a right margin on the userpicture but this is missing in bootstrapbase (it is
added only on random pages).

Add a margin to bootstrapbase so it matches boost.
2017-04-21 11:44:20 +08:00
Jake Dallimore 89cd3cfc02 Merge branch 'MDL-58613-31-workshopfullname' of git://github.com/mudrd8mz/moodle into MOODLE_31_STABLE 2017-04-21 10:27:56 +08:00
David Monllao b57860bfbb Merge branch 'MDL-58590_31' of https://github.com/sk-unikent/moodle into MOODLE_31_STABLE 2017-04-21 10:05:43 +08:00
AMOS bot 740917fa43 Automatically generated installer lang files 2017-04-21 00:10:54 +08:00
Skylar Kelty 9c5c5e2ee6 MDL-58590 mobile: Cache mobile-supporting plugins 2017-04-20 09:37:12 +01:00
David Monllao e88bef20f5 Merge branch 'MDL-58278-31' of git://github.com/damyon/moodle into MOODLE_31_STABLE 2017-04-20 14:06:35 +08:00
Damyon Wiese 6785483b81 MDL-58278 mod_assign: Ignore send notify with mw
When marking workflow is on and the grade is not released we never send notifications anyway.
Instead of preventing the grading form from submitting (validation error) we silently ignore it.
2017-04-20 13:13:49 +08:00
AMOS bot 0923ed6bb8 Automatically generated installer lang files 2017-04-20 00:07:30 +08:00
Juan Leyva 42ee071ab5 MDL-58431 mod_lesson: Fix error in random jumps on first visit
Random jumps to content pages were not working when they were set in
the first page.
This was caused because the page where the jump was, was not being
marked as visited before calculating the jump.
2017-04-19 17:48:14 +02:00
David Mudrák a22951044f MDL-58613 workshop: Provide all data to display user name
Additional fields such as middlename, alternatename and others were not
passed to the fullname(), causing a debugging message.
2017-04-19 14:19:56 +02:00
David Monllao bd34549316 Merge branch 'MDL-54901_31' of git://github.com/stronk7/moodle into MOODLE_31_STABLE 2017-04-19 11:31:12 +08:00
David Monllao 3bef945fbe Merge branch 'MDL-58096-31' of git://github.com/StudiUM/moodle into MOODLE_31_STABLE 2017-04-19 05:18:40 +08:00
Gilles-Philippe Leblanc 4bd3c5766e MDL-58096 reports: Add SQL required by preload_from_record() 2017-04-18 15:41:48 -04:00
Dan Poltawski c6fa627a23 Merge branch 'MDL-58463-31' of git://github.com/junpataleta/moodle into MOODLE_31_STABLE 2017-04-18 18:54:02 +01:00
David Monllao 79d8b6f1bd Merge branch 'MDL-58116-31' of https://github.com/barrasroger/moodle-1 into MOODLE_31_STABLE 2017-04-19 00:50:16 +08:00
AMOS bot f5850997b4 Automatically generated installer lang files 2017-04-19 00:05:04 +08:00
Dan Poltawski df2b12bf1b Merge branch 'MDL-58374-31-ltierrorlog' of git://github.com/mudrd8mz/moodle into MOODLE_31_STABLE 2017-04-18 16:49:05 +01:00
Gilles-Philippe Leblanc e8d61c6f11 MDL-58096 reports: Optimize database request 2017-04-18 11:00:29 -04:00
Dan Poltawski 4a1f3cf807 weekly release 3.1.5+ 2017-04-18 12:34:04 +01:00
Dan Poltawski c075a898e1 Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-04-18 12:34:03 +01:00
barrasroger f181e3cf70 MDL-58116 core_enrol: fix handling of users on different methods 2017-04-18 11:00:31 +02:00
Jun Pataleta 6ef412801f MDL-57793 calendar: Additional edge-case tests
* Added leap year and 31th day of the month tests.
2017-04-18 13:57:53 +08:00
Jun Pataleta baf42679ab MDL-57793 calendar: Add recursion to satisfy COUNT rule
* Add recursion to the creation of recurring calendar events to satisfy
  the COUNT rule, if necessary.
2017-04-18 13:57:52 +08:00
Jun Pataleta 2c0857ba05 MDL-58463 mod_assign: Improve coverage of test_assign_refresh_events() 2017-04-18 13:24:18 +08:00
Jun Pataleta 781f643d95 MDL-58463 mod_assign: Use correct course ID for fetching assignment's CM 2017-04-18 13:24:18 +08:00
Andrew Nicols 520a528943 Merge branch 'MDL-58559-31' of git://github.com/lameze/moodle into MOODLE_31_STABLE 2017-04-18 09:48:00 +08:00
Andrew Nicols 7e95809a37 Merge branch 'MDL-58582-31' of https://github.com/Dagefoerde/moodle into MOODLE_31_STABLE 2017-04-18 09:33:29 +08:00
Andrew Nicols a3309be840 Merge branch 'MDL-58539_31' of https://github.com/dmonllao/moodle into MOODLE_31_STABLE 2017-04-18 09:05:53 +08:00
Simey Lameze 637b3ff3de MDL-58559 block_community: check if the course has subject 2017-04-18 08:57:27 +08:00
Eloy Lafuente (stronk7) 22983bd4da MDL-54901 environment: pg93, openssl, https & utf8mb4 2017-04-18 02:56:41 +02:00
Eloy Lafuente (stronk7) 3422a9148b MDL-54901 environment: 3.3 base information
This is a direct copy of the 3.2 branch to
have changes under control easier in next commits.
2017-04-18 02:54:13 +02:00
Ruslan Kabalin 231a80c010 MDL-58539 assignfeedback_editpdf: Fix group assignment fatal error.
This makes sure that $grade->attemptnumber is not NULL before using its
value.
2017-04-17 16:58:58 +02:00
Jan Dageförde a6c36884b3 MDL-58582 theme: Improve PHPDoc comment on SVG image resolution 2017-04-17 15:24:40 +02:00
Dan Poltawski 81292696c8 MDL-58486 userprefs: clarifying comment 2017-04-17 12:18:05 +01:00
Dan Poltawski 89e5f43109 Merge branch 'MDL-58486_31' of git://github.com/timhunt/moodle into MOODLE_31_STABLE 2017-04-17 12:17:53 +01:00
Dan Poltawski f6ae580fbb Merge branch 'MDL-58479-31-weblib-notice-phpdoc' of git://github.com/roperto/moodle into MOODLE_31_STABLE 2017-04-17 10:46:09 +01:00
Dan Poltawski d8928b4535 Merge branch 'MDL-58465-31' of git://github.com/ankitagarwal/moodle into MOODLE_31_STABLE 2017-04-17 10:41:19 +01:00
Dan Poltawski 23ba40cf63 Merge branch 'MDL-58393-31_filter-order' of https://github.com/roperto/moodle into MOODLE_31_STABLE 2017-04-17 10:30:39 +01:00
Dan Poltawski 09d7121146 Merge branch 'MDL-58593-31' of git://github.com/merrill-oakland/moodle into MOODLE_31_STABLE 2017-04-17 10:03:25 +01:00
Eric Merrill db370772bd MDL-58593 database: More efficiently track issued key names 2017-04-13 12:24:21 -04:00
Dan Poltawski 47abeb18f6 Merge branch 'MDL-32596_31' of https://github.com/rezaies/moodle into MOODLE_31_STABLE 2017-04-13 15:57:27 +01:00
David Monllao 8890feae27 Merge branch 'MDL-58512_31' of git://github.com/markn86/moodle into MOODLE_31_STABLE 2017-04-13 13:07:26 +02:00
David Monllao e1fffdbc27 Merge branch 'MDL-58244-31' of https://github.com/MartinGauk/moodle into MOODLE_31_STABLE 2017-04-13 13:00:48 +02:00
David Monllao f654011e0d Merge branch 'MDL-58171_31-report-role-format_text' of https://github.com/lucaboesch/moodle into MOODLE_31_STABLE 2017-04-13 12:40:18 +02:00
Martin Gauk 9de798de71 MDL-58244 shibboleth: handle users who are logged out
If the user is (already) logged out, do not access $USER->auth and redirect him to the return URL.
2017-04-13 10:07:29 +00:00
Tim Hunt 4d6d096336 MDL-58555 ajax: make ajax web service log entries more useful
It is not used for anything, but we put the method name(s) being called in the URL.
2017-04-13 08:31:57 +02:00
AMOS bot 65704ab9b3 Automatically generated installer lang files 2017-04-13 00:04:43 +08:00
Luca Bösch f3f513ec7b MDL-58171 report: role name passing format_text
Have the role name in h2 of the participation report passing filters
like multilang2 by having it call format_text.

Signed-off-by: Luca Bösch <luca.boesch@bfh.ch>
2017-04-12 15:32:16 +02:00
David Monllao f14510d944 weekly release 3.1.5+ 2017-04-12 09:32:33 +02:00
David Monllao 4d19341a0a Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-04-12 09:32:31 +02:00
Andrew Nicols 6df5fb575c Merge branch 'wip-MDL-57616-31' of git://github.com/marinaglancy/moodle into MOODLE_31_STABLE 2017-04-11 12:22:38 +08:00
Mathew Gancarz 1eee389afe MDL-58512 core: pre-load 'changesmadereallygoaway' string for JS 2017-04-11 12:06:42 +08:00
Andrew Nicols c2a65ab688 Merge branch 'MDL-58461-31' of git://github.com/damyon/moodle into MOODLE_31_STABLE 2017-04-11 11:35:50 +08:00
AMOS bot e02ebdc5fe Automatically generated installer lang files 2017-04-11 00:04:58 +08:00
David Monllao b702e5b44e Merge branch 'patch-26' of https://github.com/sk-unikent/moodle into MOODLE_31_STABLE 2017-04-10 16:59:56 +02:00
David Monllao b77027c57d Merge branch 'mdl-58489-m31' of https://github.com/Dagefoerde/moodle into MOODLE_31_STABLE 2017-04-10 16:56:33 +02:00
David Monllao 5acfcf8777 Merge branch 'mdl-58485-m31' of https://github.com/Dagefoerde/moodle into MOODLE_31_STABLE 2017-04-10 16:34:36 +02:00
David Monllao 201812e592 Merge branch 'wip-MDL-55950-31' of git://github.com/marinaglancy/moodle into MOODLE_31_STABLE 2017-04-10 16:12:18 +02:00
David Monllao 87562dbe24 Merge branch 'MDL-57858-31' of git://github.com/pavelsokolov/moodle into MOODLE_31_STABLE 2017-04-10 14:17:14 +02:00
David Monllao e5a5962d00 MDL-56370 mod_feedback: Note about undeprecation 2017-04-10 13:18:29 +02:00
David Monllao e9569a7fa3 Merge branch 'wip-MDL-56370-31' of git://github.com/marinaglancy/moodle into MOODLE_31_STABLE 2017-04-10 13:17:33 +02:00
David Monllao 76e50ea9e7 Merge branch 'wip-MDL-55939-31' of git://github.com/marinaglancy/moodle into MOODLE_31_STABLE 2017-04-10 12:58:01 +02:00
David Monllao 8b196aa53e Merge branch 'MDL-58104-31' of git://github.com/pavelsokolov/moodle into MOODLE_31_STABLE 2017-04-10 09:58:52 +02:00
Andrew Nicols f0be1f90da Merge branch 'wip-MDL-58180-31' of git://github.com/marinaglancy/moodle into MOODLE_31_STABLE 2017-04-10 13:41:33 +08:00
AMOS bot 42f9eb4c56 Automatically generated installer lang files 2017-04-08 00:06:21 +08:00
David Mudrák d3c4f13490 MDL-58374 lti: Log the error message of a failed message verification
Previously the exception message (which holds the actual explanation of
what went wrong) was thrown away so the user had no way to debug.
2017-04-07 11:29:37 +02:00
Jan Dageförde e8e2c512b8 MDL-58485 admin: Show all SVG plugin icons 2017-04-07 10:11:10 +02:00
Jan Dageförde 31d8260331 MDL-58489 core: Fix unreachable HTTP error handling 2017-04-07 10:09:52 +02:00
Jun Pataleta 6fd68f6967 weekly release 3.1.5+ 2017-04-07 12:45:51 +08:00
Jun Pataleta 11f3ea4f94 Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-04-07 12:45:50 +08:00
Marina Glancy 07e95f49fc MDL-56370 mod_feedback: behat for repeat completion 2017-04-07 08:23:30 +08:00
Skylar Kelty 0f7ed737fc MDL-58456 chat: Add missing new in throw 2017-04-06 09:48:14 +01:00
Shamim Rezaie f821c0a5e2 MDL-32596 tool_xmldb: Updated confirmcheckforeignkeys
Updated $string['confirmcheckforeignkeys']
2017-04-06 18:27:07 +10:00
Marina Glancy 2321c81d52 MDL-55950 mod_feedback: correct link to response in the email 2017-04-06 15:44:02 +08:00
Marina Glancy 94f61491de MDL-55939 course: no permission is needed to view frontpage 2017-04-06 14:52:44 +08:00
Damyon Wiese 913493048b MDL-58461 filter_mathjaxloader: Update defaults
Also included a version bump for Moodle in order to trigger a filter upgrade.
2017-04-06 13:58:58 +08:00
Damyon Wiese 8d82a20f4b MDL-58461 mathjax: Ship accessibility extensions
There are not mirrored on the new CDN so we need to ship them with moodle.
2017-04-06 13:58:53 +08:00
AMOS bot 1ea218b63e Automatically generated installer lang files 2017-04-06 00:07:51 +08:00
AMOS bot 75728ebe8d Automatically generated installer lang files 2017-04-06 00:07:51 +08:00
Marina Glancy af6a891144 MDL-56370 mod_feedback: allow to restore values from last attempt 2017-04-05 16:08:27 +08:00
Eloy Lafuente (stronk7) 2eda090ebe Merge branch 'MDL-58055-31' of git://github.com/andrewnicols/moodle into MOODLE_31_STABLE 2017-04-05 00:30:37 +02:00
Eloy Lafuente (stronk7) a239fdd2a0 Merge branch 'MDL-55326-31' of git://github.com/andrewnicols/moodle into MOODLE_31_STABLE 2017-04-04 19:26:48 +02:00
Eloy Lafuente (stronk7) 5f368c5dd7 Merge branch 'MDL-55499-31' of git://github.com/andrewnicols/moodle into MOODLE_31_STABLE 2017-04-04 18:24:11 +02:00
AMOS bot 37e25a19a8 Automatically generated installer lang files 2017-04-05 00:04:59 +08:00
Tim Hunt 7a27817f98 MDL-58486 user_prefs: always update $USER cache when applicable
set_user_preference and unset_user_preference let you pass the user to
set preferences for as an id. Previously, if you passed $USER->id there,
those methods did not update the Cache in $USER, which was surprising,
and not easy to debug.

Now, we always update the preference cache in $USER if the preference is
being changed for the current user.
2017-04-04 16:22:57 +01:00
Daniel Thee Roperto 6b00083d7f MDL-58479 documentation: fixed phpdoc for notice(). 2017-04-04 16:14:56 +10:00
Marina Glancy 5dc2aeda9a MDL-57616 label: allow to drag and drop video/audio files 2017-04-04 12:00:27 +08:00
Andrew Nicols 75cb3afa71 Merge branch 'wip-MDL-41809-31' of git://github.com/marinaglancy/moodle into MOODLE_31_STABLE 2017-04-04 10:56:20 +08:00
AMOS bot 4b98e2986c Automatically generated installer lang files 2017-04-04 00:06:02 +08:00
Damyon Wiese d77585c672 MDL-58461 filter_mathjaxloader: Change CDN url
The MathJax CDN url is going away - we need to switch to another mirror.
2017-04-03 12:48:35 +08:00
Daniel Thee Roperto dd82501911 MDL-58394 filters: Fixed order not being respected. 2017-04-03 14:47:00 +10:00
Ankit Agarwal acdf91203c MDL-58465 unittests: Fix invalid use of exception 2017-04-03 09:26:04 +05:30
Dan Poltawski 3f48012eb5 weekly release 3.1.5+ 2017-03-31 11:16:19 +01:00
David Monllao 31867bb1b4 MDL-58450 mod_forum: Force groups to be returned as they are created
Long history resumed: The test relies on the first group
being the first that is created, the first group is
actually the first one ordering by name. If  is
group-999 and  is group-1000  is returned
as the first group.
2017-03-31 11:14:20 +01:00
Pavel Sokolov 97baaf9a53 MDL-57858 mod_assign: fix submissions count for assign with scales 2017-03-31 12:00:41 +03:00
Dan Poltawski becf6318c2 weekly release 3.1.5+ 2017-03-31 09:16:35 +01:00
Dan Poltawski c7806282a8 Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-03-31 09:16:34 +01:00
Andrew Nicols 2f8db6a31e MDL-58055 theme_bootstrap: Change padding around unread link 2017-03-31 14:21:20 +08:00
Pavel Sokolov c26566f21b MDL-58104 mod_assign: Show attempt settings for the latest attempt 2017-03-30 11:10:04 +03:00
Andrew Nicols 0ae9094a96 MDL-55499 mod_forum: Use context when formatting e-mail text 2017-03-30 11:38:52 +08:00
Dan Poltawski 1a1cc84af1 Merge branch 'MDL-58264_31' of https://github.com/darrencocco/moodle into MOODLE_31_STABLE 2017-03-28 18:02:44 +01:00
AMOS bot 10fed49ab2 Automatically generated installer lang files 2017-03-29 00:06:01 +08:00
David Monllao e57beee8dc MDL-58079 enrol: Move new test to existing test case 2017-03-28 17:36:54 +02:00
David Monllao 2be51b7633 Merge branch 'MDL-58079_31' of https://github.com/kiklop74/moodle into MOODLE_31_STABLE 2017-03-28 17:36:10 +02:00
Juan Leyva 48d02c4437 MDL-35913 site home: Set the page layout before setting blocks
When the default home page is set by user preference the site home
blocks are gone.
This is caused because the page layout is not correctly set before
manipulating the navigation block (the base layout it is used instead).
2017-03-28 17:11:19 +02:00
Dan Poltawski b72615601b MDL-58227 mod_feedback: remove uncessary if 2017-03-28 16:00:42 +01:00
Dan Poltawski ac5f2bc552 Merge branch 'MDL-58227-31' of git://github.com/jleyva/moodle into MOODLE_31_STABLE 2017-03-28 16:00:25 +01:00
Dan Poltawski f569989db3 Merge branch 'MOODLE_31_STABLE' of https://github.com/fwsl/moodle into MOODLE_31_STABLE 2017-03-28 12:07:30 +01:00
Dan Poltawski af84c619a0 Merge branch 'MDL-58160_31' of git://github.com/aolley/moodle into MOODLE_31_STABLE 2017-03-28 11:34:41 +01:00
Dan Poltawski ce51586b24 Merge branch 'wip-MDL-58092-31' of git://github.com/marinaglancy/moodle into MOODLE_31_STABLE 2017-03-28 10:56:01 +01:00
Dan Poltawski b9866e9e71 Merge branch 'MDL-58257_M31' of https://github.com/ak4t0sh/moodle into MOODLE_31_STABLE 2017-03-28 10:51:01 +01:00
Andrew Nicols 45a4ebb697 MDL-55326 core_text: Correct typo3 file permissions 2017-03-27 15:09:00 +08:00
Luca Bösch 9574aee37c MDL-58180 lib: Role name pass format_text.
In function stats_get_report_options, the role names are returned after
having been processed through format_text which lets the filters work on them.

Signed-off-by: Luca Bösch <luca.boesch@bfh.ch>
2017-03-27 10:41:48 +08:00
Darren Cocco 229ffe02dc MDL-58264 quiz: removed additional = symbol
Removed superflous = symbol from SQL snippet
2017-03-27 11:09:20 +11:00
Grzegorz Ziółek 52f391ceab MDL-58325 config_log: Record changes in editor management to config_log. 2017-03-24 08:48:30 +01:00
Marina Glancy f494350d40 MDL-58092 gradingform_guide: behat to demonstrate double quote fix 2017-03-24 13:28:52 +08:00
gthomas2 ef79f05067 MDL-58092 grading methods: Fix double escape for freq used questions 2017-03-24 13:28:51 +08:00
Eloy Lafuente (stronk7) 3fc319c0c4 weekly release 3.1.5+ 2017-03-23 20:30:49 +01:00
Eloy Lafuente (stronk7) 57d9979b43 Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-03-23 20:30:47 +01:00
Marina Glancy 3cd85bbfae MDL-41809 course: do not rely on page context
page context may not be set, use the correct course context when calling format_string
2017-03-23 14:46:05 +08:00
Andrew Nicols 354d0f5e84 Merge branch 'MDL-57429-31-fix' of https://github.com/snake/moodle into MOODLE_31_STABLE 2017-03-23 11:54:49 +08:00
Jake Dallimore 42306af15e MDL-57429 badges: handle curl problems nicely during connection creation
- Properly validate the displayer API response before sending the
verification email.
- Properly validate the displayer API response before creating the
saved connection.
2017-03-23 11:39:45 +08:00
AMOS bot 9ffd2349a2 Automatically generated installer lang files 2017-03-22 00:04:37 +08:00
Juan Leyva 5efec4d5a3 MDL-58227 mod_feedback: Delete duplicated completions records
This commit also fixes the way the previous completion record was
fetched to avoid the creation of new duplicates.
2017-03-21 09:57:00 +01:00
Dan Poltawski 00a142859b Merge branch 'MDL-58317-31' of git://github.com/damyon/moodle into MOODLE_31_STABLE 2017-03-21 07:58:00 +00:00
John Okely 17b7ca5b2b MDL-37168 mod_lti: Fix rename behat 2017-03-21 10:25:03 +08:00
Eloy Lafuente (stronk7) e5edbe8ccd Merge branch 'MDL-57840-31-get_users_by_field' of https://github.com/roperto/moodle into MOODLE_31_STABLE 2017-03-21 01:06:07 +01:00
Dan Poltawski 258db34bfc Merge branch 'MDL-58273-31-ldapenrol' of git://github.com/mudrd8mz/moodle into MOODLE_31_STABLE 2017-03-20 11:09:41 +00:00
David Monllao c3c88e8673 Merge branch 'MDL-37168-31' of https://github.com/xow/moodle into MOODLE_31_STABLE 2017-03-20 10:19:01 +01:00
Dan Poltawski be12bb8ab8 Merge branch 'MDL-58285-m31' of https://github.com/NeillM/moodle into MOODLE_31_STABLE 2017-03-20 08:54:11 +00:00
John Okely 8da9781a25 MDL-37168 grade: Debugging if gradebook callbacks are not both present 2017-03-20 16:31:14 +08:00
John Okely 6f3be9d5ce MDL-37168 mod_lti: Add behat test to cover lti quick edit 2017-03-20 16:00:47 +08:00
Sam Chaffee 045a69fd3e MDL-37168 mod_lti: Fix LTI activity quick edit title 2017-03-20 16:00:47 +08:00
Darko Miletic 7bfa58873a MDL-58079 core_enrol: Fixed invalid category tag 2017-03-20 04:12:23 -03:00
Damyon Wiese 889a985b62 MDL-58317 templates: Fix async template render
There is an edge case where we do not wait for all promises before
rendering a template. This can generate "failed to pre-fetch the template" JS errors.
2017-03-20 13:37:41 +08:00
David Monllao 5f90019098 Merge branch 'MDL-58166-31' of git://github.com/pavelsokolov/moodle into MOODLE_31_STABLE 2017-03-20 05:12:09 +01:00
David Monllao c5ed804680 Merge branch 'MDL-58182-31' of https://github.com/snake/moodle into MOODLE_31_STABLE 2017-03-20 05:04:49 +01:00
Andrew Nicols 72536bd5a8 Merge branch 'MDL-57429-31' of https://github.com/snake/moodle into MOODLE_31_STABLE 2017-03-20 10:38:50 +08:00
AMOS bot 94ae0b7f7b Automatically generated installer lang files 2017-03-20 00:07:54 +08:00
AMOS bot 5d8822ff11 Automatically generated installer lang files 2017-03-18 00:09:47 +08:00
Pavel Sokolov ea8ce0c362 MDL-58166 mod_assign: markingworkflow breaks assign for non-graders 2017-03-17 17:53:09 +03:00
Arnaud Trouve afbb1b7fb5 MDL-58257 course: fix search containing a hyphen
In case a hyphen (-) was preceded and followed by spaces,
the pattern for the "not regex" was empty causing an empty response from the database
2017-03-17 08:29:49 +01:00
Jake Dallimore cd099d041f MDL-58182 javascript: Fix for buttons regression in core dialog.
Fixes a regression caused by MDL-56364, wherein the buttons were made
readOnly, meaning addButtons wouldn't work. This removes that change,
while maintaining the original dependency between the buttons and the
closeButton config options.
2017-03-17 09:07:26 +08:00
Darko Miletic 6e0b2cde30 MDL-58079 core_enrol: Implementing fix and unit test 2017-03-16 14:27:06 -03:00
Neill Magill 2c60b80795 MDL-58285 tool_mobile: Web service generates incorrect fileurl on IIS
The tool_mobile_get_plugins_supporting_mobile generated an incorrect
fileurl on IIS. The /mobile/filename.zip part was generated as
\mobile\filename.zip, this failed the PARAM_URL check.

This change stops the use of OS specific directory separators and uses
the linux/web separator. PHP file functions recognise this properly.
2017-03-16 12:12:34 +00:00
Dan Poltawski 6e0c45eab6 weekly release 3.1.5+ 2017-03-16 11:52:54 +00:00
Dan Poltawski 71a3196ddf Merge branch 'install_31_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_31_STABLE 2017-03-16 11:52:52 +00:00
Jake Dallimore 9ec7dbc419 MDL-57429 badges: add email verification for openbackpack connections
With the Persona provider now out of commission, no new connections to
the Mozilla openbackpack can be created. This patch adds an email
verification step to core to restore the openbackpack functionality.
2017-03-16 09:34:33 +08:00
David Mudrák b147cea65f MDL-58273 enrol_ldap: Fix the name of the capability
This capability controls who can hide/show the enrolment instance.
2017-03-15 18:39:58 +01:00
Andrew Nicols 0c9a5310f9 Merge branch 'MDL-57658-31-integration-fix-2' of git://github.com/junpataleta/moodle into MOODLE_31_STABLE 2017-03-15 15:15:22 +08:00
Jun Pataleta 67f8fc9419 MDL-57658 calendar: Remove BYDAY filtering dependence on NumberFormatter 2017-03-15 14:25:34 +08:00
Andrew Nicols aec0f344de Merge branch 'MDL-57658-31-integration-fix' of git://github.com/junpataleta/moodle into MOODLE_31_STABLE 2017-03-15 11:42:58 +08:00
Jun Pataleta baad350a71 MDL-57658 calendar: Set sort order for fetched DB records 2017-03-15 11:30:06 +08:00
Dan Poltawski 3a9570a37a Merge branch 'MDL-57658-31-3' of git://github.com/junpataleta/moodle into MOODLE_31_STABLE 2017-03-14 16:11:36 +00:00
David Monllao 3203027f54 Merge branch 'MDL-58114-31-excparams' of git://github.com/mudrd8mz/moodle into MOODLE_31_STABLE 2017-03-14 11:03:20 +01:00
AMOS bot f96f84cb19 Automatically generated installer lang files 2017-03-14 00:04:58 +08:00
Jun Pataleta e0a41273a6 MDL-57658 calendar: Fix rrulemanager and unit tests
Issues fixed:
* Additional rule validations.
* Rewrote recurrence logic.
* Additional unit tests, especially from the examples in the RFC.
* The date format "YmdThis" results into an incorrect date for the
  "UNTIL" parameter. The literal "T" should be escaped, and a literal
  "Z" is also needed at the end of the format string to indicate UTC.
* Implemented handling of negative modifier values for BYxxx rules.
* Implemented handling of BYWEEKNO, BYYEARDAY, BYSETPOS, BYHOUR,
  BYMINUTE, BYSECOND rules.
2017-03-09 16:15:47 +08:00
Adam Olley 471a306b44 MDL-58160 coursecat: Use set_many to populate category cache
When the course category cache needs to be repopulated, two entries are added
to the cache for each category. In core this is currently done in a for-loop,
resulting in N set calls to the cache (where N is twice the number of
categories in Moodle).

This change switches that code to using a single set_many cache call instead,
which makes this an O(1) operation instead of O(N).

For a site with say, 1000 categories, this results in only 1 set call to the
cachestore instead of 2000.
2017-03-06 12:06:51 +10:30
David Mudrák 967451e8ed MDL-58114 plugin manager: Fix exception parameters 2017-03-01 15:10:51 +01:00
Daniel Thee Roperto 4d2bd9a054 MDL-57840 libraries: Fixed missing fields in get_users_by_field(). 2017-02-22 16:05:49 +11:00
217 changed files with 6749 additions and 1498 deletions
+1 -1
View File
@@ -89,7 +89,7 @@ if ($PAGE->user_allowed_editing()) {
$savebutton = false;
$outputhtml = '';
foreach ($settingspage->children as $childpage) {
if ($childpage->is_hidden()) {
if ($childpage->is_hidden() || !$childpage->check_access()) {
continue;
}
if ($childpage instanceof admin_externalpage) {
+4
View File
@@ -47,6 +47,7 @@ switch ($action) {
// remove from enabled list
$key = array_search($editor, $active_editors);
unset($active_editors[$key]);
add_to_config_log('editor_visibility', '1', '0', $editor);
break;
case 'enable':
@@ -54,6 +55,7 @@ switch ($action) {
if (!in_array($editor, $active_editors)) {
$active_editors[] = $editor;
$active_editors = array_unique($active_editors);
add_to_config_log('editor_visibility', '0', '1', $editor);
}
break;
@@ -66,6 +68,7 @@ switch ($action) {
$fsave = $active_editors[$key];
$active_editors[$key] = $active_editors[$key + 1];
$active_editors[$key + 1] = $fsave;
add_to_config_log('editor_position', $key, $key + 1, $editor);
}
}
break;
@@ -79,6 +82,7 @@ switch ($action) {
$fsave = $active_editors[$key];
$active_editors[$key] = $active_editors[$key - 1];
$active_editors[$key - 1] = $fsave;
add_to_config_log('editor_position', $key, $key - 1, $editor);
}
}
break;
+354
View File
@@ -1754,6 +1754,7 @@
<VENDOR name="oracle" version="10.2" />
</DATABASE>
<PHP version="5.6.5" level="required">
<RESTRICT function="restrict_php_version_72" message="unsupportedphpversion72" />
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
@@ -1905,4 +1906,357 @@
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="3.3" requires="2.7">
<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.5.31" />
<VENDOR name="postgres" version="9.3" />
<VENDOR name="mssql" version="10.0" />
<VENDOR name="oracle" version="10.2" />
</DATABASE>
<PHP version="5.6.5" level="required">
<RESTRICT function="restrict_php_version_72" message="unsupportedphpversion72" />
</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="optional">
<FEEDBACK>
<ON_CHECK message="intlrecommended" />
</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_CHECKS>
</MOODLE>
<MOODLE version="3.4" requires="3.0">
<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.5.31" />
<VENDOR name="postgres" version="9.3" />
<VENDOR name="mssql" version="10.0" />
<VENDOR name="oracle" version="10.2" />
</DATABASE>
<PHP version="7.0.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_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+8 -1
View File
@@ -852,10 +852,17 @@ $cachewarnings = cache_helper::warnings();
// Check if there are events 1 API handlers.
$eventshandlers = $DB->get_records_sql('SELECT DISTINCT component FROM {events_handlers}');
// Check if a directory with development libraries exists.
if (is_dir($CFG->dirroot.'/vendor') || is_dir($CFG->dirroot.'/node_modules')) {
$devlibdir = true;
} else {
$devlibdir = false;
}
admin_externalpage_setup('adminnotifications');
$output = $PAGE->get_renderer('core', 'admin');
echo $output->admin_notifications_page($maturity, $insecuredataroot, $errorsdisplayed, $cronoverdue, $dbproblems,
$maintenancemode, $availableupdates, $availableupdatesfetch, $buggyiconvnomb,
$registered, $cachewarnings, $eventshandlers);
$registered, $cachewarnings, $eventshandlers, null, $devlibdir);
+2 -2
View File
@@ -421,12 +421,12 @@ class site_registration_form extends moodleform {
$mform->addElement('checkbox', 'badges', '',
" " . get_string('badgesnumber', 'hub', $badges));
$mform->setDefault('badges', $badgesnumber != -1);
$mform->setType('resources', PARAM_INT);
$mform->setType('badges', PARAM_INT);
$mform->addElement('checkbox', 'issuedbadges', '',
" " . get_string('issuedbadgesnumber', 'hub', $issuedbadges));
$mform->setDefault('issuedbadges', $issuedbadgesnumber != -1);
$mform->setType('resources', PARAM_INT);
$mform->setType('issuedbadges', PARAM_INT);
$mform->addElement('checkbox', 'participantnumberaverage', '',
" " . get_string('participantnumberaverage', 'hub', $participantnumberaverage));
+24 -2
View File
@@ -276,12 +276,15 @@ class core_admin_renderer extends plugin_renderer_base {
* @param int|null $availableupdatesfetch timestamp of the most recent updates fetch or null (unknown)
* @param string[] $cachewarnings An array containing warnings from the Cache API.
* @param array $eventshandlers Events 1 API handlers.
* @param bool $ignored Forward-compatible placeholder for the themedesignermode.
* @param bool $devlibdir Warn about development libs directory presence.
*
* @return string HTML to output.
*/
public function admin_notifications_page($maturity, $insecuredataroot, $errorsdisplayed,
$cronoverdue, $dbproblems, $maintenancemode, $availableupdates, $availableupdatesfetch,
$buggyiconvnomb, $registered, array $cachewarnings = array(), $eventshandlers = 0) {
$buggyiconvnomb, $registered, array $cachewarnings = array(), $eventshandlers = 0,
$ignored = false, $devlibdir = false) {
global $CFG;
$output = '';
@@ -290,6 +293,7 @@ class core_admin_renderer extends plugin_renderer_base {
$output .= $this->legacy_log_store_writing_error();
$output .= empty($CFG->disableupdatenotifications) ? $this->available_updates($availableupdates, $availableupdatesfetch) : '';
$output .= $this->insecure_dataroot_warning($insecuredataroot);
$output .= $this->development_libs_directories_warning($devlibdir);
$output .= $this->display_errors_warning($errorsdisplayed);
$output .= $this->buggy_iconv_warning($buggyiconvnomb);
$output .= $this->cron_overdue_warning($cronoverdue);
@@ -519,6 +523,24 @@ class core_admin_renderer extends plugin_renderer_base {
}
}
/**
* Render a warning that a directory with development libs is present.
*
* @param bool $devlibdir True if the warning should be displayed.
* @return string
*/
protected function development_libs_directories_warning($devlibdir) {
if ($devlibdir) {
$moreinfo = new moodle_url('/report/security/index.php');
$warning = get_string('devlibdirpresent', 'core_admin', ['moreinfourl' => $moreinfo->out()]);
return $this->warning($warning, 'error');
} else {
return '';
}
}
/**
* Render an appropriate message if dataroot is insecure.
* @param bool $errorsdisplayed
@@ -1598,7 +1620,7 @@ class core_admin_renderer extends plugin_renderer_base {
$row = new html_table_row();
$row->attributes['class'] = 'type-' . $plugin->type . ' name-' . $plugin->type . '_' . $plugin->name;
if ($this->page->theme->resolve_image_location('icon', $plugin->type . '_' . $plugin->name)) {
if ($this->page->theme->resolve_image_location('icon', $plugin->type . '_' . $plugin->name, null)) {
$icon = $this->output->pix_icon('icon', '', $plugin->type . '_' . $plugin->name, array('class' => 'icon pluginicon'));
} else {
$icon = $this->output->pix_icon('spacer', '', 'moodle', array('class' => 'icon pluginicon noicon'));
@@ -0,0 +1,42 @@
@tool @tool_behat
Feature: Backported behat step definitions
In order to provide feature file compatibility between multiple Moodle versions
As a developer
I need to be able to use backported steps from newer Moodle versiosn
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| student1 | Student | 1 | student1@example.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
And the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C101 | topics |
And the following "course enrolments" exist:
| user | course | role |
| student1 | C101 | student |
| teacher1 | C101 | editingteacher |
Scenario: I am on the course homepage
When I log in as "student1"
And I am on "Course 1" course homepage
Then I should see "Topic 1"
@javascript
Scenario: I am on the course homepage with JS
When I log in as "teacher1"
And I am on "Course 1" course homepage
Then I should see "Topic 1"
Scenario: I am on the course homepage with editing
When I log in as "teacher1"
And I am on "Course 1" course homepage with editing mode on
Then I should see "Topic 1"
And I should see "Add an activity or resource"
@javascript
Scenario: I am on the course homepage with editing and JS
When I log in as "teacher1"
And I am on "Course 1" course homepage with editing mode on
Then I should see "Topic 1"
And I should see "Add an activity or resource"
+12 -2
View File
@@ -45,6 +45,13 @@ class api {
global $CFG;
require_once($CFG->libdir . '/adminlib.php');
// Check if we can return this from cache.
$cache = \cache::make('tool_mobile', 'plugininfo');
$pluginsinfo = $cache->get('mobileplugins');
if ($pluginsinfo !== false) {
return (array)$pluginsinfo;
}
$pluginsinfo = [];
$plugintypes = core_component::get_plugin_types();
@@ -56,7 +63,7 @@ class api {
$component = $plugintype . '_' . $plugin;
$version = get_component_version($component);
require_once("$path/db/mobile.php");
require("$path/db/mobile.php");
foreach ($addons as $addonname => $addoninfo) {
$plugininfo = array(
'component' => $component,
@@ -69,7 +76,7 @@ class api {
);
// All the mobile packages must be under the plugin mobile directory.
$package = $path . DIRECTORY_SEPARATOR . 'mobile' . DIRECTORY_SEPARATOR . $addonname . '.zip';
$package = $path . '/mobile/' . $addonname . '.zip';
if (file_exists($package)) {
$plugininfo['fileurl'] = $CFG->wwwroot . '' . str_replace($CFG->dirroot, '', $package);
$plugininfo['filehash'] = sha1_file($package);
@@ -79,6 +86,9 @@ class api {
}
}
}
$cache->set('mobileplugins', $pluginsinfo);
return $pluginsinfo;
}
+34
View File
@@ -0,0 +1,34 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Mobile cache definitions.
*
* @package tool_mobile
* @copyright 2017 Skylar Kelty <S.Kelty@kent.ac.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die;
$definitions = array(
'plugininfo' => array(
'mode' => cache_store::MODE_APPLICATION,
'simplekeys' => true,
'staticacceleration' => true,
'staticaccelerationsize' => 1
)
);
@@ -23,3 +23,4 @@
*/
$string['pluginname'] = 'Moodle Mobile tools';
$string['cachedef_plugininfo'] = 'This stores the list of plugins with mobile addons';
+1 -1
View File
@@ -49,7 +49,7 @@ It\'s highly recommended to be running the latest (+ version) available of your
This functionality doesn\'t perform any action against the DB (just reads from it), so can be safely executed at any moment.';
$string['confirmcheckforeignkeys'] = 'This functionality will search for potential violations of the foreign keys defined in the install.xml definitions. (Moodle does not currently generate actual foreign key constraints in the database, which is why invalid data may be present.)
It\'s highly recommended to be running the latest (+ version) available of your Moodle release before executing the search of missing indexes.
It\'s highly recommended to be running the latest (+ version) available of your Moodle release before executing the search for potential violations of the foreign keys.
This functionality doesn\'t perform any action against the DB (just reads from it), so can be safely executed at any moment.';
$string['confirmcheckindexes'] = 'This functionality will search for potential missing indexes in your Moodle server, generating (but not executing!) automatically the needed SQL statements to keep everything updated.
+12 -12
View File
@@ -3187,6 +3187,18 @@ class CAS_Client
false/*$no_response*/, true/*$bad_response*/, $text_response
);
$result = false;
} else if ( $tree_response->getElementsByTagName("authenticationFailure")->length != 0) {
// authentication failed, extract the error code and message and throw exception
$auth_fail_list = $tree_response
->getElementsByTagName("authenticationFailure");
throw new CAS_AuthenticationException(
$this, 'Ticket not validated', $validate_url,
false/*$no_response*/, false/*$bad_response*/,
$text_response,
$auth_fail_list->item(0)->getAttribute('code')/*$err_code*/,
trim($auth_fail_list->item(0)->nodeValue)/*$err_msg*/
);
$result = false;
} else if ($tree_response->getElementsByTagName("authenticationSuccess")->length != 0) {
// authentication succeded, extract the user name
$success_elements = $tree_response
@@ -3227,18 +3239,6 @@ class CAS_Client
$result = true;
}
}
} else if ( $tree_response->getElementsByTagName("authenticationFailure")->length != 0) {
// authentication succeded, extract the error code and message
$auth_fail_list = $tree_response
->getElementsByTagName("authenticationFailure");
throw new CAS_AuthenticationException(
$this, 'Ticket not validated', $validate_url,
false/*$no_response*/, false/*$bad_response*/,
$text_response,
$auth_fail_list->item(0)->getAttribute('code')/*$err_code*/,
trim($auth_fail_list->item(0)->nodeValue)/*$err_msg*/
);
$result = false;
} else {
throw new CAS_AuthenticationException(
$this, 'Ticket not validated', $validate_url,
+1
View File
@@ -2,3 +2,4 @@ Description of phpCAS 1.3.4 library import
* downloaded from http://downloads.jasig.org/cas-clients/php/current/
* MDL-59456 phpCAS library has been patched because of an authentication bypass security vulnerability.
+5 -4
View File
@@ -26,13 +26,14 @@ if (!is_enabled_auth('shibboleth')) {
$inputstream = file_get_contents("php://input");
if ($action == 'logout' && !empty($redirect)) {
if ($USER->auth == 'shibboleth') {
// Logout out user from application.
if (isloggedin($USER) && $USER->auth == 'shibboleth') {
// Logout user from application.
require_logout();
// Finally, send user to the return URL.
redirect($redirect);
}
// Finally, send user to the return URL.
redirect($redirect);
} else if (!empty($inputstream)) {
// Back channel logout.
+42 -25
View File
@@ -46,23 +46,6 @@ class edit_backpack_form extends moodleform {
$mform->addElement('header', 'backpackheader', get_string('backpackconnection', 'badges'));
$mform->addHelpButton('backpackheader', 'backpackconnection', 'badges');
$mform->addElement('static', 'url', get_string('url'), BADGE_BACKPACKURL);
$status = html_writer::tag('span', get_string('notconnected', 'badges'),
array('class' => 'notconnected', 'id' => 'connection-status'));
$mform->addElement('static', 'status', get_string('status'), $status);
$nojs = html_writer::tag('noscript', get_string('error:personaneedsjs', 'badges'),
array('class' => 'notconnected'));
$personadiv = $OUTPUT->container($nojs, null, 'persona-container');
$mform->addElement('static', 'persona', '', $personadiv);
$mform->addHelpButton('persona', 'personaconnection', 'badges');
$PAGE->requires->js(new moodle_url('https://login.persona.org/include.js'));
$PAGE->requires->js('/badges/backpack.js');
$PAGE->requires->js_init_call('badges_init_persona_login_button', null, false);
$PAGE->requires->strings_for_js(array('error:backpackloginfailed', 'signinwithyouremail',
'error:noassertion', 'error:connectionunknownreason', 'error:badjson', 'connecting',
'notconnected'), 'badges');
$mform->addElement('hidden', 'userid', $USER->id);
$mform->setType('userid', PARAM_INT);
@@ -70,23 +53,57 @@ class edit_backpack_form extends moodleform {
$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
// email or cancel the verification process entirely and start over.
$status = html_writer::tag('span', get_string('backpackemailverificationpending', 'badges'),
array('class' => 'notconnected', 'id' => 'connection-status'));
$mform->addElement('static', 'status', get_string('status'), $status);
$mform->addElement('hidden', 'email', $this->_customdata['email']);
$mform->setType('email', PARAM_RAW_TRIMMED);
$mform->hardFreeze(['email']);
$status = html_writer::tag('span', $this->_customdata['email'], []);
$mform->addElement('static', 'emailverify', get_string('email'), $status);
$buttonarray = [];
$buttonarray[] = &$mform->createElement('submit', 'submitbutton',
get_string('backpackconnectionresendemail', 'badges'));
$buttonarray[] = &$mform->createElement('submit', 'revertbutton',
get_string('backpackconnectioncancelattempt', 'badges'));
$mform->addGroup($buttonarray, 'buttonar', '', [''], false);
$mform->closeHeaderBefore('buttonar');
} else {
// Email isn't present, so provide an input element to get it and a button to start the verification process.
$status = html_writer::tag('span', get_string('notconnected', 'badges'),
array('class' => 'notconnected', 'id' => 'connection-status'));
$mform->addElement('static', 'status', get_string('status'), $status);
$mform->addElement('text', 'email', get_string('email'), 'maxlength="100" size="30"');
$mform->addHelpButton('email', 'backpackemail', 'badges');
$mform->addRule('email', get_string('required'), 'required', null, 'client');
$mform->setType('email', PARAM_RAW_TRIMMED);
$this->add_action_buttons(false, get_string('backpackconnectionconnect', 'badges'));
}
}
/**
* Validates form data
*/
public function validation($data, $files) {
global $DB;
$errors = parent::validation($data, $files);
$check = new stdClass();
$check->backpackurl = $data['backpackurl'];
$check->email = $data['email'];
// 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->email = $data['email'];
$bp = new OpenBadgesBackpackHandler($check);
$request = $bp->curl_request('user');
if (isset($request->status) && $request->status == 'missing') {
$errors['email'] = get_string('error:nosuchuser', 'badges');
$bp = new OpenBadgesBackpackHandler($check);
$request = $bp->curl_request('user');
if (isset($request->status) && $request->status == 'missing') {
$errors['email'] = get_string('error:nosuchuser', 'badges');
} else if (!isset($request->status) || $request->status !== 'okay') {
$errors['email'] = get_string('backpackconnectionunexpectedresult', 'badges');
}
}
return $errors;
}
+78
View File
@@ -0,0 +1,78 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Endpoint for the verification email link.
*
* @package core
* @subpackage badges
* @copyright 2016 Jake Dallimore <jrhdallimore@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once(__DIR__ . '/../config.php');
require_once($CFG->libdir . '/badgeslib.php');
require_once(__DIR__ . '/lib/backpacklib.php');
$data = optional_param('data', '', PARAM_RAW);
require_login();
$PAGE->set_url('/badges/openbackpackemailverify.php');
$PAGE->set_context(context_user::instance($USER->id));
$redirect = '/badges/mybackpack.php';
// Confirm the secret and create the backpack connection.
$storedsecret = get_user_preferences('badges_email_verify_secret');
if (!is_null($storedsecret)) {
if ($data === $storedsecret) {
$storedemail = get_user_preferences('badges_email_verify_address');
$data = new stdClass();
$data->backpackurl = BADGE_BACKPACKURL;
$data->email = $storedemail;
$bp = new OpenBadgesBackpackHandler($data);
// Make sure we have all the required information before trying to save the connection.
$backpackuser = $bp->curl_request('user');
if (isset($backpackuser->status) && $backpackuser->status === 'okay' && isset($backpackuser->userId)) {
$backpackuid = $backpackuser->userId;
} else {
redirect(new moodle_url($redirect), get_string('backpackconnectionunexpectedresult', 'badges'),
null, \core\output\notification::NOTIFY_ERROR);
}
$obj = new stdClass();
$obj->userid = $USER->id;
$obj->email = $data->email;
$obj->backpackurl = $data->backpackurl;
$obj->backpackuid = $backpackuid;
$obj->autosync = 0;
$obj->password = '';
$DB->insert_record('badge_backpack', $obj);
// Remove the verification vars and redirect to the mypackpack page.
unset_user_preference('badges_email_verify_secret');
unset_user_preference('badges_email_verify_address');
redirect(new moodle_url($redirect), get_string('backpackemailverifysuccess', 'badges'),
null, \core\output\notification::NOTIFY_SUCCESS);
} else {
// Stored secret doesn't match the supplied secret. Take user back to the mybackpack page and present a warning message.
redirect(new moodle_url($redirect), get_string('backpackemailverifytokenmismatch', 'badges'),
null, \core\output\notification::NOTIFY_ERROR);
}
} else {
// Stored secret is null. Either the email address has already been verified, or there is no record of a verification attempt
// for the current user. Either way, just redirect to the mybackpack page.
redirect(new moodle_url($redirect));
}
+42
View File
@@ -117,3 +117,45 @@ class OpenBadgesBackpackHandler {
return $this->backpack;
}
}
/**
* Create and send a verification email to the email address supplied.
*
* Since we're not sending this email to a user, email_to_user can't be used
* but this function borrows largely the code from that process.
*
* @param string $email the email address to send the verification email to.
* @return true if the email was sent successfully, false otherwise.
*/
function send_verification_email($email) {
global $DB, $USER;
// Store a user secret (badges_email_verify_secret) and the address (badges_email_verify_address) as users prefs.
// The address will be used by edit_backpack_form for display during verification and to facilitate the resending
// of verification emails to said address.
$secret = random_string(15);
set_user_preference('badges_email_verify_secret', $secret);
set_user_preference('badges_email_verify_address', $email);
// To, from.
$tempuser = $DB->get_record('user', array('id' => $USER->id), '*', MUST_EXIST);
$tempuser->email = $email;
$noreplyuser = core_user::get_noreply_user();
// Generate the verification email body.
$verificationurl = '/badges/backpackemailverify.php';
$verificationurl = new moodle_url($verificationurl);
$verificationpath = $verificationurl->out(false);
$site = get_site();
$args = new stdClass();
$args->link = $verificationpath . '?data='. $secret;
$args->sitename = $site->fullname;
$args->admin = generate_email_signoff();
$messagesubject = get_string('backpackemailverifyemailsubject', 'badges', $site->fullname);
$messagetext = get_string('backpackemailverifyemailbody', 'badges', $args);
$messagehtml = text_to_html($messagetext, false, false, true);
return email_to_user($tempuser, $noreplyuser, $messagesubject, $messagetext, $messagehtml);
}
+29 -13
View File
@@ -110,23 +110,39 @@ if ($backpack) {
}
} else {
// If backpack is not connected, need to connect first.
$form = new edit_backpack_form();
// To create a new connection to the backpack, first we need to verify the user's email address:
// 1. User enters email and clicks 'Connect to backpack'.
// 2. After cross-checking the email address against the backpack provider, an email is sent to the specified address,
// and the email and secret are stored in user preferences. These will be cleared upon successful verification.
// 3. User clicks verification link in the email to confirm the backpack connection.
// 4. User redirected to the mybackpack page.
// While the verification process is pending, the edit_backpack_form form will present the user with options to resend the
// verification email, and to cancel the current verification attempt and start over.
// To pass through the current state of the verification attempt to the form.
$params['email'] = get_user_preferences('badges_email_verify_address');
$form = new edit_backpack_form(new moodle_url('/badges/mybackpack.php'), $params);
if ($form->is_cancelled()) {
redirect(new moodle_url('/badges/mybadges.php'));
} else if ($data = $form->get_data()) {
$bp = new OpenBadgesBackpackHandler($data);
$obj = new stdClass();
$obj->userid = $data->userid;
$obj->email = $data->email;
$obj->backpackurl = $data->backpackurl;
$obj->backpackuid = $bp->curl_request('user')->userId;
$obj->autosync = 0;
$obj->password = '';
$DB->insert_record('badge_backpack', $obj);
redirect(new moodle_url('/badges/mybackpack.php'));
// The form may have been submitted under one of the following circumstances:
// 1. After clicking 'Connect to backpack'. We'll have $data->email.
// 2. After clicking 'Resend verification email'. We'll have $data->email.
// 3. After clicking 'Connect using a different email' to cancel the verification process. We'll have $data->revertbutton.
if (isset($data->revertbutton)) {
unset_user_preference('badges_email_verify_secret');
unset_user_preference('badges_email_verify_address');
redirect(new moodle_url('/badges/mybackpack.php'));
} else if (isset($data->email)) {
if (send_verification_email($data->email)) {
redirect(new moodle_url('/badges/mybackpack.php'),
get_string('backpackemailverifypending', 'badges', $data->email),
null, \core\output\notification::NOTIFY_INFO);
} else {
print_error ('backpackcannotsendverification', 'badges');
}
}
}
}
@@ -673,7 +673,7 @@ class block_activity_results extends block_base {
$o = html_writer::start_tag('h3');
$o .= html_writer::link(new moodle_url('/mod/'.$activity->itemmodule.'/view.php',
array('id' => $cm->id)), $activity->itemname);
array('id' => $cm->id)), format_string(($activity->itemname), true, ['context' => context_module::instance($cm->id)]));
$o .= html_writer::end_tag('h3');
return $o;
}
@@ -690,4 +690,4 @@ class block_activity_results extends block_base {
return $scale;
}
}
}
+2 -1
View File
@@ -153,7 +153,8 @@ class block_community_renderer extends plugin_renderer_base {
array('class' => 'hubcourseuserinfo'));
//create course content related information html
$course->subject = get_string($course->subject, 'edufields');
$course->subject = (get_string_manager()->string_exists($course->subject, 'edufields')) ?
get_string($course->subject, 'edufields') : get_string('none');
$course->audience = get_string('audience' . $course->audience, 'hub');
$course->educationallevel = get_string('edulevel' . $course->educationallevel, 'hub');
$coursecontentinfo = '';
@@ -64,7 +64,7 @@ class block_course_overview extends block_base {
$content = array();
$updatemynumber = optional_param('mynumber', -1, PARAM_INT);
if ($updatemynumber >= 0) {
if ($updatemynumber >= 0 && optional_param('sesskey', '', PARAM_RAW) && confirm_sesskey()) {
block_course_overview_update_mynumber($updatemynumber);
}
+1 -1
View File
@@ -213,7 +213,7 @@ class block_course_overview_renderer extends plugin_renderer_base {
for ($i = 1; $i <= $max; $i++) {
$options[$i] = $i;
}
$url = new moodle_url('/my/index.php');
$url = new moodle_url('/my/index.php', ['sesskey' => sesskey()]);
$select = new single_select($url, 'mynumber', $options, block_course_overview_get_max_user_courses(), array());
$select->set_label(get_string('numtodisplay', 'block_course_overview'));
$output .= $this->output->render($select);
+5 -5
View File
@@ -52,11 +52,11 @@ $action = (empty($id)) ? 'add' : 'edit';
$external = new stdClass();
// Check that this id exists.
if (!empty($id) && !$DB->record_exists('blog_external', array('id' => $id))) {
print_error('wrongexternalid', 'blog');
} else if (!empty($id)) {
$external = $DB->get_record('blog_external', array('id' => $id));
// Retrieve the external blog record.
if (!empty($id)) {
if (!$external = $DB->get_record('blog_external', array('id' => $id, 'userid' => $USER->id))) {
print_error('wrongexternalid', 'blog');
}
$external->autotags = core_tag_tag::get_item_tags_array('core', 'blog_external', $id);
}
+1 -1
View File
@@ -872,7 +872,7 @@ function blog_get_headers($courseid=null, $groupid=null, $userid=null, $tagid=nu
}
// Append Search info.
if (!empty($search)) {
if (!empty($search) && has_capability('moodle/blog:search', $sitecontext)) {
$headers['filters']['search'] = $search;
$blogurl->param('search', $search);
$PAGE->navbar->add(get_string('searchterm', 'blog', $search), $blogurl->out());
+54 -2
View File
@@ -229,8 +229,60 @@ class cachestore_memcached extends cache_store implements cache_is_configurable
$version = phpversion('memcached');
$this->candeletemulti = ($version && version_compare($version, self::REQUIRED_VERSION, '>='));
// Test the connection to the main connection.
$this->isready = @$this->connection->set("ping", 'ping', 1);
$this->isready = $this->is_connection_ready();
}
/**
* Confirm whether the connection is ready and usable.
*
* @return boolean
*/
public function is_connection_ready() {
if (!@$this->connection->set("ping", 'ping', 1)) {
// Test the connection to the server.
return false;
}
if ($this->isshared) {
// There is a bug in libmemcached which means that it is not possible to purge the cache in a shared cache
// configuration.
// This issue currently affects:
// - memcached 1.4.23+ with php-memcached <= 2.2.0
// The following combinations are not affected:
// - memcached <= 1.4.22 with any version of php-memcached
// - any version of memcached with php-memcached >= 3.0.1
// This check is cheapest as it does not involve connecting to the server at all.
$safecombination = false;
$extension = new ReflectionExtension('memcached');
if ((version_compare($extension->getVersion(), '3.0.1') >= 0)) {
// This is php-memcached version >= 3.0.1 which is a safe combination.
$safecombination = true;
}
if (!$safecombination) {
$allsafe = true;
foreach ($this->connection->getVersion() as $version) {
$allsafe = $allsafe && (version_compare($version, '1.4.22') <= 0);
}
// All memcached servers connected are version <= 1.4.22 which is a safe combination.
$safecombination = $allsafe;
}
if (!$safecombination) {
// This is memcached 1.4.23+ and php-memcached < 3.0.1.
// The issue may have been resolved in a subsequent update to any of the three libraries.
// The only way to safely determine if the combination is safe is to call getAllKeys.
// A safe combination will return an array, whilst an affected combination will return false.
// This is the most expensive check.
if (!is_array($this->connection->getAllKeys())) {
return false;
}
}
}
return true;
}
/**
+4
View File
@@ -286,6 +286,10 @@ class cachestore_memcached_test extends cachestore_tests {
$definition = cache_definition::load_adhoc(cache_store::MODE_APPLICATION, 'cachestore_memcached', 'phpunit_test');
$cachestore = $this->create_test_cache_with_config($definition, array('isshared' => true));
if (!$cachestore->is_connection_ready()) {
$this->markTestSkipped('Could not test cachestore_memcached. Connection is not ready.');
}
$connection = new Memcached(crc32(__METHOD__));
$connection->addServers($this->get_servers(TEST_CACHESTORE_MEMCACHED_TESTSERVERS));
$connection->setOptions(array(
File diff suppressed because it is too large Load Diff
+4 -3
View File
@@ -58,9 +58,11 @@ if (!$course) {
$PAGE->set_context(context_system::instance()); //TODO: wrong
}
$title = get_string('deleteevent', 'calendar');
// Check the user has the required capabilities to edit an event
if (!calendar_edit_event_allowed($event)) {
print_error('nopermissions');
if (!calendar_edit_event_allowed($event) || !empty($event->modulename)) {
print_error('nopermissions', 'error', $PAGE->url, $title);
}
// Count the repeats, do we need to consider the possibility of deleting repeats
@@ -88,7 +90,6 @@ if ($confirm) {
}
// Prepare the page to show the confirmation form
$title = get_string('deleteevent', 'calendar');
$strcalendar = get_string('calendar', 'calendar');
$PAGE->navbar->add($strcalendar, $viewcalendarurl);
+3 -2
View File
@@ -81,8 +81,9 @@ class core_calendar_external extends external_api {
$eventobj = calendar_event::load($event['eventid']);
// Let's check if the user is allowed to delete an event.
if (!calendar_edit_event_allowed($eventobj)) {
throw new moodle_exception("nopermissions");
if (!empty($eventobj->modulename) || !calendar_edit_event_allowed($eventobj)) {
throw new moodle_exception("nopermissions", 'error', '',
get_string('deleteevent', 'calendar'));
}
// Time to do the magic.
$eventobj->delete($event['repeat']);
+23
View File
@@ -506,4 +506,27 @@ class core_calendar_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals(1, count($eventsret['events']));
$this->assertEquals(2, count($eventsret['warnings']));
}
/**
* Test for deleting module events.
*/
public function test_delete_calendar_events_for_modules() {
$this->resetAfterTest();
$this->setAdminUser();
$course = $this->getDataGenerator()->create_course();
$nexttime = time() + DAYSECS;
$this->getDataGenerator()->create_module('assign', ['course' => $course->id, 'duedate' => $nexttime]);
$events = calendar_get_events(time(), $nexttime, true, true, true);
$this->assertCount(1, $events);
$params = [];
foreach($events as $event) {
$params[] = [
'eventid' => $event->id,
'repeat' => false
];
}
$this->setExpectedException('moodle_exception');
core_calendar_external::delete_calendar_events($params);
}
}
File diff suppressed because it is too large Load Diff
-535
View File
@@ -1,535 +0,0 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Defines test class to test manage rrule during ical imports.
*
* @package core_calendar
* @category test
* @copyright 2014 onwards Ankit Agarwal <ankit.agrr@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_calendar_rrule_manager_testcase extends advanced_testcase {
/** @var stdClass a dummy event */
protected $event;
/**
* Set up method.
*/
protected function setUp() {
global $DB, $CFG;
$this->resetAfterTest();
$this->setTimezone('Australia/Perth');
$user = $this->getDataGenerator()->create_user();
$sub = new stdClass();
$sub->url = '';
$sub->courseid = 0;
$sub->groupid = 0;
$sub->userid = $user->id;
$sub->pollinterval = 0;
$subid = $DB->insert_record('event_subscriptions', $sub, true);
$event = new stdClass();
$event->name = 'Event name';
$event->description = '';
$event->timestart = 1385913700; // A 2013-12-2 Monday event.
$event->timeduration = 3600;
$event->uuid = 'uuid';
$event->subscriptionid = $subid;
$event->userid = $user->id;
$event->groupid = 0;
$event->courseid = 0;
$event->eventtype = 'user';
$eventobj = calendar_event::create($event, false);
$DB->set_field('event', 'repeatid', $eventobj->id, array('id' => $eventobj->id));
$eventobj->repeatid = $eventobj->id;
$this->event = $eventobj;
}
/**
* Test parse_rrule() method.
*/
public function test_parse_rrule() {
$rrule = "FREQ=DAILY;COUNT=3;INTERVAL=4;BYSECOND=20,40;BYMINUTE=2,30;BYHOUR=3,4;BYDAY=MO,TH;BYMONTHDAY=20,
30;BYYEARDAY=300,-20;BYWEEKNO=22,33;BYMONTH=3,4";
$mang = new core_tests_calendar_rrule_manager($rrule);
$mang->parse_rrule();
$this->assertEquals(\core_calendar\rrule_manager::FREQ_DAILY, $mang->freq);
$this->assertEquals(3, $mang->count);
$this->assertEquals(4, $mang->interval);
$this->assertEquals(array(20, 40), $mang->bysecond);
$this->assertEquals(array(2, 30), $mang->byminute);
$this->assertEquals(array(3, 4), $mang->byhour);
$this->assertEquals(array('MO', 'TH'), $mang->byday);
$this->assertEquals(array(20, 30), $mang->bymonthday);
$this->assertEquals(array(300, -20), $mang->byyearday);
$this->assertEquals(array(22, 33), $mang->byweekno);
$this->assertEquals(array(3, 4), $mang->bymonth);
}
/**
* Test exception is thrown for invalid property.
*/
public function test_parse_rrule_validation() {
$rrule = "RANDOM=PROPERTY;";
$this->setExpectedException('moodle_exception');
$mang = new core_tests_calendar_rrule_manager($rrule);
$mang->parse_rrule();
}
/**
* Test exception is thrown for invalid frequency.
*/
public function test_freq_validation() {
$rrule = "FREQ=RANDOMLY;";
$this->setExpectedException('moodle_exception');
$mang = new core_tests_calendar_rrule_manager($rrule);
$mang->parse_rrule();
}
/**
* Test recurrence rules for daily frequency.
*/
public function test_daily_events() {
global $DB;
$rrule = 'FREQ=DAILY;COUNT=3'; // This should generate 2 child events + 1 parent.
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(3, $count);
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($this->event->timestart + DAYSECS)));
$this->assertTrue($result);
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($this->event->timestart + 2 * DAYSECS)));
$this->assertTrue($result);
$until = $this->event->timestart + DAYSECS * 2;
$until = date('Y-m-d', $until);
$rrule = "FREQ=DAILY;UNTIL=$until"; // This should generate 1 child event + 1 parent,since by then until bound would be hit.
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(2, $count);
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($this->event->timestart + DAYSECS)));
$this->assertTrue($result);
$rrule = 'FREQ=DAILY;COUNT=3;INTERVAL=3'; // This should generate 2 child events + 1 parent, every 3rd day.
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(3, $count);
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($this->event->timestart + 3 * DAYSECS)));
$this->assertTrue($result);
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($this->event->timestart + 6 * DAYSECS)));
$this->assertTrue($result);
// Forever event. This should generate events for time() + 10 year period, every 300th day.
$rrule = 'FREQ=DAILY;INTERVAL=300';
$mang = new \core_calendar\rrule_manager($rrule);
$until = time() + (YEARSECS * $mang::TIME_UNLIMITED_YEARS);
$mang->parse_rrule();
$mang->create_events($this->event);
for ($i = 0, $time = $this->event->timestart; $time < $until; $i++, $time = $this->event->timestart + 300 * DAYSECS * $i) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($time)));
$this->assertTrue($result);
}
}
/**
* Test recurrence rules for weekly frequency.
*/
public function test_weekly_events() {
global $DB;
$rrule = 'FREQ=WEEKLY;COUNT=1'; // This should generate 7 events in total, one for each day.
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(7, $count);
for ($i = 0; $i < 7; $i++) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($this->event->timestart + $i * DAYSECS)));
$this->assertTrue($result);
}
// This should generate 4 child event + 1 parent, since by then until bound would be hit.
$until = $this->event->timestart + WEEKSECS * 4;
$until = date('YmdThis', $until);
$rrule = "FREQ=WEEKLY;BYDAY=MO;UNTIL=$until";
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(5, $count);
for ($i = 0; $i < 5; $i++) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($this->event->timestart + $i * WEEKSECS)));
$this->assertTrue($result);
}
// This should generate 4 events in total every monday and Wednesday of every 3rd week.
$rrule = 'FREQ=WEEKLY;INTERVAL=3;BYDAY=MO,WE;COUNT=2';
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(4, $count);
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($this->event->timestart + 3 * WEEKSECS))); // Monday event.
$this->assertTrue($result);
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($this->event->timestart + 2 * DAYSECS))); // Wednesday event.
$this->assertTrue($result);
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($this->event->timestart + 3 * WEEKSECS + 2 * DAYSECS))); // Wednesday event.
$this->assertTrue($result);
// Forever event. This should generate events over time() + 10 year period, every 50th monday.
$rrule = 'FREQ=WEEKLY;BYDAY=MO;INTERVAL=50';
$mang = new \core_calendar\rrule_manager($rrule);
$until = time() + (YEARSECS * $mang::TIME_UNLIMITED_YEARS);
$mang->parse_rrule();
$mang->create_events($this->event);
for ($i = 0, $time = $this->event->timestart; $time < $until; $i++, $time = $this->event->timestart + 50 * WEEKSECS * $i) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($time)));
$this->assertTrue($result);
}
}
/**
* Test recurrence rules for monthly frequency.
*/
public function test_monthly_events() {
global $DB;
$rrule = 'FREQ=MONTHLY;COUNT=3;BYMONTHDAY=2'; // This should generate 3 events in total.
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(3, $count);
for ($i = 0; $i < 3; $i++) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => (strtotime("+$i month", $this->event->timestart))));
$this->assertTrue($result);
}
// This much seconds after the start of the day.
$offset = $this->event->timestart - mktime(0, 0, 0, date("n", $this->event->timestart), date("j", $this->event->timestart),
date("Y", $this->event->timestart));
$monthstart = mktime(0, 0, 0, date("n", $this->event->timestart), 1, date("Y", $this->event->timestart));
$rrule = 'FREQ=MONTHLY;COUNT=3;BYDAY=1MO'; // This should generate 3 events in total, first monday of the month.
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(3, $count);
$time = strtotime('1 Monday', strtotime("+1 months", $monthstart)) + $offset;
$result = $DB->record_exists('event', array('repeatid' => $this->event->id, 'timestart' => $time));
$this->assertTrue($result);
$time = strtotime('1 Monday', strtotime("+2 months", $monthstart)) + $offset;
$result = $DB->record_exists('event', array('repeatid' => $this->event->id, 'timestart' => $time));
$this->assertTrue($result);
// This should generate 10 child event + 1 parent, since by then until bound would be hit.
$until = strtotime('+1 day +10 months', $this->event->timestart);
$until = date('YmdThis', $until);
$rrule = "FREQ=MONTHLY;BYMONTHDAY=2;UNTIL=$until";
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(11, $count);
for ($i = 0; $i < 11; $i++) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => (strtotime("+$i month", $this->event->timestart))));
$this->assertTrue($result);
}
// This should generate 10 child event + 1 parent, since by then until bound would be hit.
$until = strtotime('+1 day +10 months', $this->event->timestart);
$until = date('YmdThis', $until);
$rrule = "FREQ=MONTHLY;BYDAY=1MO;UNTIL=$until";
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(10, $count);
for ($i = 0; $i < 10; $i++) {
$time = strtotime('1 Monday', strtotime("+$i months", $monthstart)) + $offset;
$result = $DB->record_exists('event', array('repeatid' => $this->event->id, 'timestart' => $time));
$this->assertTrue($result);
}
// This should generate 11 child event + 1 parent, since by then until bound would be hit.
$until = strtotime('+10 day +10 months', $this->event->timestart); // 12 oct 2014.
$until = date('YmdThis', $until);
$rrule = "FREQ=MONTHLY;INTERVAL=2;BYMONTHDAY=2,5;UNTIL=$until";
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(12, $count);
for ($i = 0; $i < 6; $i++) {
$moffset = $i * 2;
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => (strtotime("+$moffset month", $this->event->timestart))));
$this->assertTrue($result);
// Event on the 5th of a month.
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => (strtotime("+3 days +$moffset month", $this->event->timestart))));
$this->assertTrue($result);
}
// This should generate 11 child event + 1 parent, since by then until bound would be hit.
$until = strtotime('+20 day +10 months', $this->event->timestart); // 22 oct 2014.
$until = date('YmdTHis', $until);
$rrule = "FREQ=MONTHLY;INTERVAL=2;BYDAY=1MO,3WE;UNTIL=$until";
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(12, $count);
for ($i = 0; $i < 6; $i++) {
$moffset = $i * 2;
$time = strtotime("+$moffset month", $monthstart);
$time2 = strtotime("+1 Monday", $time) + $offset;
$result = $DB->record_exists('event', array('repeatid' => $this->event->id, 'timestart' => $time2));
$this->assertTrue($result);
$time2 = strtotime("+3 Wednesday", $time) + $offset;
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => $time2)); // Event on the 5th of a month.
$this->assertTrue($result);
}
// Forever event. This should generate events over 10 year period, on 2nd of every 12th month.
$rrule = 'FREQ=MONTHLY;INTERVAL=12;BYMONTHDAY=2';
$mang = new \core_calendar\rrule_manager($rrule);
$until = time() + (YEARSECS * $mang::TIME_UNLIMITED_YEARS);
$mang->parse_rrule();
$mang->create_events($this->event);
for ($i = 0, $time = $this->event->timestart; $time < $until; $i++, $moffset = $i * 12,
$time = strtotime("+$moffset month", $this->event->timestart)) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($time)));
$this->assertTrue($result);
}
// Forever event. This should generate 10 child events + 1 parent over 10 year period, every 50th Monday.
$rrule = 'FREQ=MONTHLY;BYDAY=1MO;INTERVAL=12';
$mang = new \core_calendar\rrule_manager($rrule);
$until = time() + (YEARSECS * $mang::TIME_UNLIMITED_YEARS);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(11, $count);
for ($i = 0, $moffset = 0, $time = $this->event->timestart; $time < $until; $i++, $moffset = $i * 12) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id, 'timestart' => ($time)));
$this->assertTrue($result);
$time = strtotime("+$moffset month", $monthstart);
$time = strtotime("+1 Monday", $time) + $offset;
}
}
/**
* Test recurrence rules for yearly frequency.
*/
public function test_yearly_events() {
global $DB;
$rrule = 'FREQ=YEARLY;COUNT=3;BYMONTH=12'; // This should generate 3 events in total.
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(3, $count);
for ($i = 0, $time = $this->event->timestart; $i < 3; $i++, $time = strtotime("+$i years", $this->event->timestart)) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id, 'timestart' => $time));
$this->assertTrue($result);
}
// Create an event every december, until the time limit is hit.
$until = strtotime('+20 day +10 years', $this->event->timestart);
$until = date('YmdTHis', $until);
$rrule = "FREQ=YEARLY;BYMONTH=12;UNTIL=$until"; // Forever event.
$mang = new \core_calendar\rrule_manager($rrule);
$until = time() + (YEARSECS * $mang::TIME_UNLIMITED_YEARS);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(11, $count);
for ($i = 0, $time = $this->event->timestart; $time < $until; $i++, $yoffset = $i * 2,
$time = strtotime("+$yoffset years", $this->event->timestart)) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($time)));
$this->assertTrue($result);
}
// This should generate 5 events in total, every second year in the month of december.
$rrule = 'FREQ=YEARLY;BYMONTH=12;INTERVAL=2;COUNT=5';
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(5, $count);
for ($i = 0, $time = $this->event->timestart; $i < 5; $i++, $yoffset = $i * 2,
$time = strtotime("+$yoffset years", $this->event->timestart)) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($time)));
$this->assertTrue($result);
}
$rrule = 'FREQ=YEARLY;BYMONTH=12;INTERVAL=2'; // Forever event.
$mang = new \core_calendar\rrule_manager($rrule);
$until = time() + (YEARSECS * $mang::TIME_UNLIMITED_YEARS);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(6, $count);
for ($i = 0, $time = $this->event->timestart; $time < $until; $i++, $yoffset = $i * 2,
$time = strtotime("+$yoffset years", $this->event->timestart)) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($time)));
$this->assertTrue($result);
}
// This much seconds after the start of the day.
$offset = $this->event->timestart - mktime(0, 0, 0, date("n", $this->event->timestart), date("j", $this->event->timestart),
date("Y", $this->event->timestart));
$yearstart = mktime(0, 0, 0, 1, 1, date("Y", $this->event->timestart));
$rrule = 'FREQ=YEARLY;COUNT=3;BYMONTH=12;BYDAY=1MO'; // This should generate 3 events in total.
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(3, $count);
for ($i = 0; $i < 3; $i++) {
$time = strtotime("+11 months +$i years", $yearstart);
$time = strtotime("+1 Monday", $time) + $offset;
$result = $DB->record_exists('event', array('repeatid' => $this->event->id, 'timestart' => $time));
$this->assertTrue($result);
}
// Create an event every december, until the time limit is hit.
$until = strtotime('+20 day +10 years', $this->event->timestart);
$until = date('YmdTHis', $until);
$rrule = "FREQ=YEARLY;BYMONTH=12;UNTIL=$until;BYDAY=1MO";
$mang = new \core_calendar\rrule_manager($rrule);
$until = time() + (YEARSECS * $mang::TIME_UNLIMITED_YEARS);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(11, $count);
for ($i = 0, $time = $this->event->timestart; $time < $until; $i++) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($time)));
$this->assertTrue($result);
$time = strtotime("+11 months +$i years", $yearstart);
$time = strtotime("+1 Monday", $time) + $offset;
}
// This should generate 5 events in total, every second year in the month of december.
$rrule = 'FREQ=YEARLY;BYMONTH=12;INTERVAL=2;COUNT=5;BYDAY=1MO';
$mang = new \core_calendar\rrule_manager($rrule);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(5, $count);
for ($i = $yoffset = 0, $time = $this->event->timestart; $i < 5; $i++, $yoffset = $i * 2) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($time)));
$this->assertTrue($result);
$time = strtotime("+11 months +$yoffset years", $yearstart);
$time = strtotime("+1 Monday", $time) + $offset;
}
$rrule = 'FREQ=YEARLY;BYMONTH=12;INTERVAL=2;BYDAY=1MO'; // Forever event.
$mang = new \core_calendar\rrule_manager($rrule);
$until = time() + (YEARSECS * $mang::TIME_UNLIMITED_YEARS);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(6, $count);
for ($i = 0, $time = $this->event->timestart; $time < $until; $i++, $yoffset = $i * 2) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($time)));
$this->assertTrue($result);
$time = strtotime("+11 months +$yoffset years", $yearstart);
$time = strtotime("+1 Monday", $time) + $offset;
}
$rrule = 'FREQ=YEARLY;INTERVAL=2'; // Forever event.
$mang = new \core_calendar\rrule_manager($rrule);
$until = time() + (YEARSECS * $mang::TIME_UNLIMITED_YEARS);
$mang->parse_rrule();
$mang->create_events($this->event);
$count = $DB->count_records('event', array('repeatid' => $this->event->id));
$this->assertEquals(6, $count);
for ($i = 0, $time = $this->event->timestart; $time < $until; $i++, $yoffset = $i * 2) {
$result = $DB->record_exists('event', array('repeatid' => $this->event->id,
'timestart' => ($time)));
$this->assertTrue($result);
$time = strtotime("+11 months +$yoffset years", $yearstart);
$time = strtotime("+1 Monday", $time) + $offset;
}
}
}
/**
* Class core_calendar_test_rrule_manager
*
* Wrapper to access protected vars for testing.
*
* @package core_calendar
* @category test
* @copyright 2014 onwards Ankit Agarwal <ankit.agrr@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_tests_calendar_rrule_manager extends \core_calendar\rrule_manager{
/**
* Magic method to get properties.
*
* @param $prop string property
*
* @return mixed
* @throws coding_exception
*/
public function __get($prop) {
if (property_exists($this, $prop)) {
return $this->$prop;
}
throw new coding_exception('invalidproperty');
}
}
+2 -1
View File
@@ -676,7 +676,8 @@ class competency extends persistent {
public static function share_same_framework(array $ids) {
global $DB;
list($insql, $params) = $DB->get_in_or_equal($ids);
return $DB->count_records_select(self::TABLE, "id $insql", $params, "COUNT(DISTINCT(competencyframeworkid))") == 1;
$sql = "SELECT COUNT('x') FROM (SELECT DISTINCT(competencyframeworkid) FROM {" . self::TABLE . "} WHERE id {$insql}) f";
return $DB->count_records_sql($sql, $params) == 1;
}
/**
+3 -1
View File
@@ -427,7 +427,9 @@ class core_course_external extends external_api {
$exceptionparam->courseid = $course->id;
throw new moodle_exception('errorcoursecontextnotvalid', 'webservice', '', $exceptionparam);
}
require_capability('moodle/course:view', $context);
if ($course->id != SITEID) {
require_capability('moodle/course:view', $context);
}
$courseinfo = array();
$courseinfo['id'] = $course->id;
+3 -1
View File
@@ -678,7 +678,9 @@ abstract class format_base {
if (isset($option['type'])) {
$mform->setType($optionname, $option['type']);
}
if (is_null($mform->getElementValue($optionname)) && isset($option['default'])) {
if (isset($option['default']) && !array_key_exists($optionname, $mform->_defaultValues)) {
// Set defaults for the elements in the form.
// Since we call this method after set_data() make sure that we don't override what was already set.
$mform->setDefault($optionname, $option['default']);
}
}
+28 -2
View File
@@ -462,7 +462,7 @@ class core_course_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals($courseinfo->numsections, $course3options['numsections']);
$this->assertEquals($courseinfo->coursedisplay, $course3options['coursedisplay']);
} else {
throw moodle_exception('Unexpected shortname');
throw new moodle_exception('Unexpected shortname');
}
}
@@ -619,6 +619,32 @@ class core_course_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals($DB->count_records('course'), count($courses));
}
/**
* Test get_courses without capability
*/
public function test_get_courses_without_capability() {
$this->resetAfterTest(true);
$course1 = $this->getDataGenerator()->create_course();
$this->setUser($this->getDataGenerator()->create_user());
// No permissions are required to get the site course.
$courses = core_course_external::get_courses(array('ids' => [SITEID]));
$courses = external_api::clean_returnvalue(core_course_external::get_courses_returns(), $courses);
$this->assertEquals(1, count($courses));
$this->assertEquals('PHPUnit test site', $courses[0]['fullname']);
$this->assertEquals('site', $courses[0]['format']);
// Requesting course without being enrolled or capability to view it will throw an exception.
try {
core_course_external::get_courses(array('ids' => [$course1->id]));
$this->fail('Exception expected');
} catch (moodle_exception $e) {
$this->assertEquals(1, preg_match('/Course or activity not accessible. \(Not enrolled\)/', $e->getMessage()));
}
}
/**
* Test search_courses
*/
@@ -1100,7 +1126,7 @@ class core_course_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals(0, $courseinfo->newsitems);
$this->assertEquals(FORMAT_MOODLE, $courseinfo->summaryformat);
} else {
throw moodle_exception('Unexpected shortname');
throw new moodle_exception('Unexpected shortname');
}
}
+2 -2
View File
@@ -62,8 +62,8 @@ $string['course_summary'] = 'Optional: LDAP attribute to get the summary from';
$string['course_summary_key'] = 'Summary';
$string['course_summary_updateonsync'] = 'Update summary during synchronization script';
$string['course_summary_updateonsync_key'] = 'Update summary';
$string['createcourseextid'] = 'CREATE User enrolled to a nonexistant course \'{$a->courseextid}\'';
$string['createnotcourseextid'] = 'User enrolled to a nonexistant course \'{$a->courseextid}\'';
$string['createcourseextid'] = 'CREATE User enrolled to a non-existing course \'{$a->courseextid}\'';
$string['createnotcourseextid'] = 'User enrolled to a non-existing course \'{$a->courseextid}\'';
$string['creatingcourse'] = 'Creating course \'{$a}\'...';
$string['duplicateshortname'] = "Course creation failed. Duplicate short name. Skipping course with idnumber '{\$a->idnumber}'...";
$string['editlock'] = 'Lock value';
+1 -1
View File
@@ -132,7 +132,7 @@ class enrol_ldap_plugin extends enrol_plugin {
*/
public function can_hide_show_instance($instance) {
$context = context_course::instance($instance->courseid);
return has_capability('enrol/ldap:config', $context);
return has_capability('enrol/ldap:manage', $context);
}
/**
+110
View File
@@ -280,6 +280,62 @@ class core_enrollib_testcase extends advanced_testcase {
$this->assertEquals($sharedcourse->id, $course1->id);
}
public function test_enrol_get_shared_courses_different_methods() {
global $DB, $CFG;
require_once($CFG->dirroot . '/enrol/self/externallib.php');
$this->resetAfterTest();
$user1 = $this->getDataGenerator()->create_user();
$user2 = $this->getDataGenerator()->create_user();
$user3 = $this->getDataGenerator()->create_user();
$course1 = $this->getDataGenerator()->create_course();
// Enrol user1 and user2 in course1 with a different enrolment methode.
// Add self enrolment method for course1.
$selfplugin = enrol_get_plugin('self');
$this->assertNotEmpty($selfplugin);
$studentrole = $DB->get_record('role', array('shortname' => 'student'));
$this->assertNotEmpty($studentrole);
$instance1id = $selfplugin->add_instance($course1, array('status' => ENROL_INSTANCE_ENABLED,
'name' => 'Test instance 1',
'customint6' => 1,
'roleid' => $studentrole->id));
$instance1 = $DB->get_record('enrol', array('id' => $instance1id), '*', MUST_EXIST);
self::setUser($user2);
// Self enrol me (user2).
$result = enrol_self_external::enrol_user($course1->id);
// Enrol user1 manually.
$this->getDataGenerator()->enrol_user($user1->id, $course1->id, null, 'manual');
$course2 = $this->getDataGenerator()->create_course();
$this->getDataGenerator()->enrol_user($user1->id, $course2->id);
$course3 = $this->getDataGenerator()->create_course();
$this->getDataGenerator()->enrol_user($user2->id, $course3->id);
// Test that user1 and user2 have courses in common.
$this->assertTrue(enrol_get_shared_courses($user1, $user2, false, true));
// Test that user1 and user3 have no courses in common.
$this->assertFalse(enrol_get_shared_courses($user1, $user3, false, true));
// Test retrieving the courses in common.
$sharedcourses = enrol_get_shared_courses($user1, $user2, true);
// Only should be one shared course.
$this->assertCount(1, $sharedcourses);
$sharedcourse = array_shift($sharedcourses);
// It should be course 1.
$this->assertEquals($sharedcourse->id, $course1->id);
}
/**
* Test user enrolment created event.
*/
@@ -422,4 +478,58 @@ class core_enrollib_testcase extends advanced_testcase {
$this->assertEquals('self', $event->other['enrol']);
$this->assertEventContextNotUsed($event);
}
/**
* Confirms that timemodified field was updated after modification of user enrollment
*/
public function test_enrollment_update_timemodified() {
global $DB;
$this->resetAfterTest(true);
$datagen = $this->getDataGenerator();
/** @var enrol_manual_plugin $manualplugin */
$manualplugin = enrol_get_plugin('manual');
$this->assertNotNull($manualplugin);
$studentroleid = $DB->get_field('role', 'id', ['shortname' => 'student'], MUST_EXIST);
$course = $datagen->create_course();
$user = $datagen->create_user();
$instanceid = null;
$instances = enrol_get_instances($course->id, true);
foreach ($instances as $inst) {
if ($inst->enrol == 'manual') {
$instanceid = (int)$inst->id;
break;
}
}
if (empty($instanceid)) {
$instanceid = $manualplugin->add_default_instance($course);
if (empty($instanceid)) {
$instanceid = $manualplugin->add_instance($course);
}
}
$this->assertNotNull($instanceid);
$instance = $DB->get_record('enrol', ['id' => $instanceid], '*', MUST_EXIST);
$manualplugin->enrol_user($instance, $user->id, $studentroleid, 0, 0, ENROL_USER_ACTIVE);
$userenrolorig = (int)$DB->get_field(
'user_enrolments',
'timemodified',
['enrolid' => $instance->id, 'userid' => $user->id],
MUST_EXIST
);
$this->waitForSecond();
$this->waitForSecond();
$manualplugin->update_user_enrol($instance, $user->id, ENROL_USER_SUSPENDED);
$userenrolpost = (int)$DB->get_field(
'user_enrolments',
'timemodified',
['enrolid' => $instance->id, 'userid' => $user->id],
MUST_EXIST
);
$this->assertGreaterThan($userenrolorig, $userenrolpost);
}
}
+47
View File
@@ -33,6 +33,8 @@ function xmldb_filter_mathjaxloader_upgrade($oldversion) {
$dbman = $DB->get_manager();
require_once($CFG->dirroot . '/filter/mathjaxloader/db/upgradelib.php');
if ($oldversion < 2014081100) {
$sslcdnurl = get_config('filter_mathjaxloader', 'httpsurl');
@@ -131,5 +133,50 @@ MathJax.Hub.Config({
upgrade_plugin_savepoint(true, 2016032200, 'filter', 'mathjaxloader');
}
if ($oldversion < 2016052301) {
$httpurl = get_config('filter_mathjaxloader', 'httpurl');
$newcdnurl = filter_mathjaxloader_upgrade_cdn_cloudflare($httpurl, true);
set_config('httpurl', $newcdnurl, 'filter_mathjaxloader');
$httpsurl = get_config('filter_mathjaxloader', 'httpsurl');
$newcdnurl = filter_mathjaxloader_upgrade_cdn_cloudflare($httpsurl, false);
set_config('httpsurl', $newcdnurl, 'filter_mathjaxloader');
$mathjaxconfig = get_config('filter_mathjaxloader', 'mathjaxconfig');
if (strpos($mathjaxconfig, 'MathJax.Ajax.config.path') === false) {
$newconfig = 'MathJax.Ajax.config.path["Contrib"] = "{wwwroot}/filter/mathjaxloader/contrib";' . "\n";
$newconfig .= $mathjaxconfig;
set_config('mathjaxconfig', $newconfig, 'filter_mathjaxloader');
}
upgrade_plugin_savepoint(true, 2016052301, 'filter', 'mathjaxloader');
}
if ($oldversion < 2016052302) {
$httpurl = get_config('filter_mathjaxloader', 'httpurl');
if ($httpurl === "http://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js") {
set_config('httpurl', 'http://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js', 'filter_mathjaxloader');
}
$httpsurl = get_config('filter_mathjaxloader', 'httpsurl');
if ($httpsurl === "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js") {
set_config('httpsurl', 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js', 'filter_mathjaxloader');
}
$mathjaxconfig = get_config('filter_mathjaxloader', 'mathjaxconfig');
if (strpos($mathjaxconfig, 'MathJax.Ajax.config.path') !== false) {
// Now we need to remove this config again because mathjax 2.7.1 supports the extensions on the CDN.
$configtoremove = 'MathJax.Ajax.config.path["Contrib"] = "{wwwroot}/filter/mathjaxloader/contrib";';
$mathjaxconfig = str_replace($configtoremove, '', $mathjaxconfig);
set_config('mathjaxconfig', $mathjaxconfig, 'filter_mathjaxloader');
}
upgrade_plugin_savepoint(true, 2016052302, 'filter', 'mathjaxloader');
}
return true;
}
+66
View File
@@ -0,0 +1,66 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Random functions for mathjax upgrades.
*
* @package filter_mathjaxloader
* @copyright 2017 Damyon Wiese (damyon@moodle.com)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* This function takes an existing mathjax url and, if it was using the standard mathjax cdn,
* upgrades it to use the cloudflare matchjax cdn (because the standard one is shutting down).
* @param string $mathjaxurl - The current url.
* @param boolean $httponly - Use http instead of https - really only for 3.1 upgrades.
* @return string The new url.
*/
function filter_mathjaxloader_upgrade_cdn_cloudflare($mathjaxurl, $httponly = false) {
$newcdnurl = $mathjaxurl;
$cdnroot = 'https://cdn.mathjax.org/mathjax/';
if ($httponly) {
$cdnroot = 'http://cdn.mathjax.org/mathjax/';
}
$usingcdn = strpos($mathjaxurl, $cdnroot) === 0;
if ($usingcdn) {
$majorversion = substr($mathjaxurl, strlen($cdnroot), 3);
$latestversion = '2.7.0';
if ($majorversion == '2.6') {
$latestversion = '2.6.1';
} else if ($majorversion == '2.5') {
$latestversion = '2.5.3';
}
$offset = strpos($mathjaxurl, '/', strlen($cdnroot));
if ($offset === false) {
return $newcdnurl;
}
$endofurl = substr($mathjaxurl, $offset + 1);
$newcdnbase = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/';
if ($httponly) {
$newcdnbase = 'http://cdnjs.cloudflare.com/ajax/libs/mathjax/';
}
$newcdnurl = $newcdnbase . $latestversion . '/' . $endofurl;
}
return $newcdnurl;
}
+3
View File
@@ -115,6 +115,9 @@ class filter_mathjaxloader extends moodle_text_filter {
$page->requires->js_module($moduleconfig);
$config = get_config('filter_mathjaxloader', 'mathjaxconfig');
$wwwroot = new moodle_url('/');
$config = str_replace('{wwwroot}', $wwwroot->out(true), $config);
$params = array('mathjaxconfig' => $config, 'lang' => $lang);
+2 -2
View File
@@ -33,14 +33,14 @@ if ($ADMIN->fulltree) {
$item = new admin_setting_configtext('filter_mathjaxloader/httpurl',
new lang_string('httpurl', 'filter_mathjaxloader'),
new lang_string('httpurl_help', 'filter_mathjaxloader'),
'http://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js',
'http://cdnjs.cloudflare.com/ajax/libs/mathjax/2.6.1/MathJax.js',
PARAM_RAW);
$settings->add($item);
$item = new admin_setting_configtext('filter_mathjaxloader/httpsurl',
new lang_string('httpsurl', 'filter_mathjaxloader'),
new lang_string('httpsurl_help', 'filter_mathjaxloader'),
'https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js',
'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.6.1/MathJax.js',
PARAM_RAW);
$settings->add($item);
@@ -0,0 +1,91 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Unit test for the upgrade MathJax code.
*
* @package filter_mathjaxloader
* @copyright 2017 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/filter/mathjaxloader/db/upgradelib.php');
/**
* Unit test for the upgrade MathJax code.
*
* Test the functions in upgradelib.php
*
* @copyright 2017 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filter_mathjax_upgradelib_testcase extends advanced_testcase {
public function test_upgradelib() {
$current = 'https://cdn.mathjax.org/mathjax/2.7-latest/MathJax.js?...';
$expected = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?...';
$this->assertEquals($expected, filter_mathjaxloader_upgrade_cdn_cloudflare($current));
$current = 'http://cdn.mathjax.org/mathjax/2.7-latest/MathJax.js?...';
$expected = 'http://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?...';
$this->assertEquals($expected, filter_mathjaxloader_upgrade_cdn_cloudflare($current, true));
$current = 'http://cdn.mathjax.org/mathjax/2.7-latest/MathJax.js?...';
$expected = 'http://cdn.mathjax.org/mathjax/2.7-latest/MathJax.js?...';
$this->assertEquals($expected, filter_mathjaxloader_upgrade_cdn_cloudflare($current, false));
$current = 'https://cdn.mathjax.org/mathjax/2.7-latest/MathJax.js?...';
$expected = 'https://cdn.mathjax.org/mathjax/2.7-latest/MathJax.js?...';
$this->assertEquals($expected, filter_mathjaxloader_upgrade_cdn_cloudflare($current, true));
$current = 'https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?...';
$expected = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.6.1/MathJax.js?...';
$this->assertEquals($expected, filter_mathjaxloader_upgrade_cdn_cloudflare($current));
$current = 'https://cdn.mathjax.org/mathjax/2.5-latest/MathJax.js?...';
$expected = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.5.3/MathJax.js?...';
$this->assertEquals($expected, filter_mathjaxloader_upgrade_cdn_cloudflare($current));
// Dont touch non https links.
$current = 'http://cdn.mathjax.org/mathjax/2.5-latest/MathJax.js?...';
$expected = 'http://cdn.mathjax.org/mathjax/2.5-latest/MathJax.js?...';
$this->assertEquals($expected, filter_mathjaxloader_upgrade_cdn_cloudflare($current));
// Dont touch non local links.
$current = 'https://mylocalmirror/mathjax/2.7-latest/MathJax.js?...';
$expected = 'https://mylocalmirror/mathjax/2.7-latest/MathJax.js?...';
$this->assertEquals($expected, filter_mathjaxloader_upgrade_cdn_cloudflare($current));
// Try some unexpected things.
$current = '';
$expected = '';
$this->assertEquals($expected, filter_mathjaxloader_upgrade_cdn_cloudflare($current));
// Try some unexpected things.
$current = 'https://cdn.mathjax.org/mathjax/2.7-latest/MathJax.js';
$expected = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js';
$this->assertEquals($expected, filter_mathjaxloader_upgrade_cdn_cloudflare($current));
// Try some unexpected things.
$current = 'https://cdn.mathjax.org/mathjax/2.7-latest';
$expected = 'https://cdn.mathjax.org/mathjax/2.7-latest';
$this->assertEquals($expected, filter_mathjaxloader_upgrade_cdn_cloudflare($current));
}
}
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0"?>
<libraries>
<!-- Accessibility extensions for mathjax were briefly included - and then removed again -->
</libraries>
+1 -1
View File
@@ -24,6 +24,6 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2016052300;
$plugin->version = 2016052302;
$plugin->requires = 2016051900; // Requires this Moodle version.
$plugin->component= 'filter_mathjaxloader';
+1 -1
View File
@@ -249,7 +249,7 @@ class gradingform_guide_renderer extends plugin_renderer_base {
foreach ($comments as $id => $comment) {
$commentoption = new stdClass();
$commentoption->id = $id;
$commentoption->description = s($comment['description']);
$commentoption->description = $comment['description'];
$commentoptions[] = $commentoption;
}
@@ -37,7 +37,7 @@ Feature: Marking guides can be created and edited
| Comment 1 |
| Comment 2 |
| Comment 3 |
| Comment 4 |
| Comment "4" |
And I press "Save marking guide and make it ready"
Then I should see "Ready for use"
And I should see "Guide criterion A"
@@ -46,7 +46,7 @@ Feature: Marking guides can be created and edited
And I should see "Comment 1"
And I should see "Comment 2"
And I should see "Comment 3"
And I should see "Comment 4"
And I should see "Comment \"4\""
@javascript
Scenario: Deleting criterion and comment
@@ -66,7 +66,7 @@ Feature: Marking guides can be created and edited
And I press "Save"
Then I should see "Comment 1"
And I should see "Comment 2"
And I should see "Comment 4"
And I should see "Comment \"4\""
But I should not see "Comment 3"
@javascript
@@ -80,9 +80,9 @@ Feature: Marking guides can be created and edited
# Inserting frequently used comment.
And I click on "Insert frequently used comment" "button" in the "Guide criterion B" "table_row"
And I wait "1" seconds
And I press "Comment 4"
And I press "Comment \"4\""
And I wait "1" seconds
Then the field "Guide criterion B criterion remark" matches value "Comment 4"
Then the field "Guide criterion B criterion remark" matches value "Comment \"4\""
When I press "Save changes"
And I press "Ok"
And I follow "Edit settings"
@@ -98,7 +98,7 @@ Feature: Marking guides can be created and edited
And I should see "80" in the ".feedback" "css_element"
And I should see "Marking guide test description" in the ".feedback" "css_element"
And I should see "Very good"
And I should see "Comment 4"
And I should see "Comment \"4\""
And I should see "Nice!"
Scenario: I can use marking guides to grade and edit them later updating students grades with Javascript disabled
+1 -1
View File
@@ -39,6 +39,7 @@ if (!empty($CFG->defaulthomepage) && ($CFG->defaulthomepage == HOMEPAGE_MY) && o
}
$PAGE->set_url('/', $urlparams);
$PAGE->set_course($SITE);
$PAGE->set_pagelayout('frontpage');
$PAGE->set_other_editing_capability('moodle/course:update');
$PAGE->set_other_editing_capability('moodle/course:manageactivities');
$PAGE->set_other_editing_capability('moodle/course:activityvisibility');
@@ -104,7 +105,6 @@ if (file_exists($CFG->dirroot.'/local/hub/lib.php') and get_config('local_hub',
$PAGE->set_pagetype('site-index');
$PAGE->set_docs_path('');
$PAGE->set_pagelayout('frontpage');
$editing = $PAGE->user_is_editing();
$PAGE->set_title($SITE->fullname);
$PAGE->set_heading($SITE->fullname);
+34
View File
@@ -0,0 +1,34 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Automatically generated strings for Moodle installer
*
* Do not edit this file manually! It contains just a subset of strings
* needed during the very first steps of installation. This file was
* generated automatically by export-installer.php (which is part of AMOS
* {@link http://docs.moodle.org/dev/Languages/AMOS}) using the
* list of strings defined in /install/stringnames.txt.
*
* @package installer
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Bislama';
+1 -1
View File
@@ -30,7 +30,7 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>No és pot crear la base de dades.</p> <p>La base de dades especificada no existeix i l\'usuari que heu proporcionat no té permís per a crear-la.</p>
$string['cannotcreatedboninstall'] = '<p>No es pot crear la base de dades.</p> <p>La base de dades especificada no existeix i l\'usuari que heu proporcionat no té permís per a crear-la.</p>
<p>L\'administrador del lloc hauria de verificar la configuració de la base de dades.</p>';
$string['cannotcreatelangdir'] = 'No s\'ha pogut crear el directori d\'idiomes';
$string['cannotcreatetempdir'] = 'No s\'ha pogut crear el directori temporal';
+2 -3
View File
@@ -82,10 +82,9 @@ $string['pathsunsecuredataroot'] = 'Umístění datového adresáře není bezpe
$string['pathswrongadmindir'] = 'Adresář pro správu serveru (admin) neexistuje';
$string['phpextension'] = '{$a} PHP rozšíření';
$string['phpversion'] = 'Verze PHP';
$string['phpversionhelp'] = '<p>Moodle vyžaduje PHP alespoň verze 4.3.0 nebo 5.1.0 (PHP 5.0.x obsahuje množství chyb).</p>
$string['phpversionhelp'] = '<p>Moodle vyžaduje PHP alespoň verzi 5.4.4 (7.x má určitá omezení jádra).</p>
<p>Nyní používáte PHP verze {$a}.</p>
<p>Musíte PHP upgradovat, nebo přejít k hostiteli s vyšší verzí!<br />
(U PHP 5.0.x můžete také přejít na nižší verzi 4.4.x )</p>';
<p>Musíte PHP upgradovat, nebo přejít k hostiteli s vyšší verzí!</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'Podařilo se vám úspěšně nainstalovat a spustit balíček <strong>{$a->packname} {$a->packversion}</strong>. Gratulujeme!';
$string['welcomep30'] = 'Tato verze <strong>{$a->installername}</strong> obsahuje aplikace k vytvoření prostředí, ve kterém bude provozován váš <strong>Moodle</strong>. Jmenovitě se jedná o:';
+3 -5
View File
@@ -35,12 +35,10 @@ $string['cliansweryes'] = 'j';
$string['cliincorrectvalueerror'] = 'Fejl, "{$a->value}" er en forkert værdi for "{$a->option}"';
$string['cliincorrectvalueretry'] = 'Forkert værdi, prøv igen!';
$string['clitypevalue'] = 'tast værdi';
$string['clitypevaluedefault'] = 'tast værdi eller brug standardværdien ({$a}) ved at trykke Enter';
$string['cliunknowoption'] = 'Ukendte options:
$string['clitypevaluedefault'] = 'tast værdi, tryk på Enter for at bruge standardværdien ({$a})';
$string['cliunknowoption'] = 'Ukendte optioner:
{$a}
Brug venligst --help option.';
Brug optionen --help.';
$string['cliyesnoprompt'] = 'j (betyder ja) og n (betyder nej)';
$string['environmentrequireinstall'] = 'skal være installeret og aktiveret';
$string['environmentrequireversion'] = 'minimumskravet er version {$a->needed} og du kører {$a->current}';
+10 -18
View File
@@ -35,7 +35,7 @@ $string['availablelangs'] = 'Tilgængelige sprogpakker';
$string['chooselanguagehead'] = 'Vælg et sprog';
$string['chooselanguagesub'] = 'Vælg et sprog til brug under installationen. Dette sprog vil også blive brugt som standardsprog på webstedet, men det kan altid ændres til et andet sprog.';
$string['clialreadyconfigured'] = 'Konfigurationsfilen config.php eksisterer allerede. Benyt venigst admin/cli/install_database.php til at installere Moodle for dette site.';
$string['clialreadyinstalled'] = 'Filen config.php eksisterer allerede, brug venligst admin/cli/install_database.php hvis du ønsker at opgradere dette websted.';
$string['clialreadyinstalled'] = 'Filen config.php eksisterer allerede, brug admin/cli/install_database.php hvis du ønsker at opgradere dette websted.';
$string['cliinstallheader'] = 'Moodle {$a} kommandolinje-installationsprogram';
$string['databasehost'] = 'Databasevært';
$string['databasename'] = 'Databasenavn';
@@ -52,20 +52,15 @@ $string['installation'] = 'Installation';
$string['langdownloaderror'] = 'Sproget "{$a}" blev desværre ikke installeret. Installationen vil fortsætte på engelsk.';
$string['memorylimithelp'] = '<p>Den mængde hukommelse PHP kan bruge, er sat til {$a}.</p>
<p>Dette kan forårsage at der opstår problemer senere, især hvis du har mange moduler aktiveret eller mange brugere.</p>
<p>Det kan forårsage at der opstår problemer senere, især hvis du har mange moduler aktiveret eller mange brugere.</p>
<p>Vi anbefaler at du konfigurerer PHP med mere hukommelse, f.eks. 40M.
Der er flere måder hvorpå du kan rette det.</p>
<p>Vi anbefaler at du konfigurerer PHP med mere hukommelse, f.eks. 40M. Der er flere måder hvorpå du kan ændre det.</p>
<ol>
<li>Hvis du har mulighed for det, kan du rekompilere PHP med <i>--enable-memory-limit</i>.
Det vil tillade at Moodle selv kan definere hvor meget hukommelse der er brug for.</li>
<li>Hvis du har mulighed for det, kan du rekompilere PHP med <i>--enable-memory-limit</i>. Det vil tillade at Moodle selv kan definere hvor meget hukommelse der er brug for.</li>
<li>Hvis du har adgang til php.ini filen kan du ændre <b>memory_limit</b>-indstillingen til noget i retning af 40M. Hvis du ikke har direkte adgang til den kan du bede systemadministratoren om at gøre det for dig.</li>
<li>På nogle servere kan du oprette en \'.htaccess\'-fil og gemme den i moodle-mappen med linjen: <blockquote><div>php_value memory_limit 40M</div></blockquote>
<li>Hvis du har adgang til php.ini filen kan du ændre <b>memory_limit</b>-indstillingen til noget i retning af 40M.
Hvis du ikke har direkte adgang til den kan du bede systemadministratoren om at gøre det for dig.</li>
<li>På nogle servere kan du oprette en \'.htaccess\' fil og gemme den i moodle-mappen med linjen:
<blockquote><div>php_value memory_limit 40M</div></blockquote>
<p>Det kan dog på nogle servere forhindre <b>alle</b> PHP-siderne i at virke (du vil se fejl når du ser på siderne). I så fald kan du blive nødt til at fjerne \'.htaccess\' filen igen.</p></li> </ol>';
<p>Det kan dog på nogle servere forhindre <b>alle</b> PHP-siderne i at virke (du vil se fejl når du ser på siderne). I så fald kan du blive nødt til at fjerne \'.htaccess\'filen igen.</p></li> </ol>';
$string['paths'] = 'Stier';
$string['pathserrcreatedataroot'] = 'Datamappen ({$a->dataroot}) kan ikke oprettes af installationsprogrammet.';
$string['pathshead'] = 'Bekræft stier';
@@ -76,7 +71,7 @@ $string['pathssubdataroot'] = '<p>En mappe hvori Moodle kan gemme uploadede file
<p>Webserver-brugeren (som regel \'www-data\', \'nobody\', eller \'apache\') skal have læse- og skriveadgang til den.</p>
<p>Mappen må ikke være tilgængelig direkte fra internettet.</p>
<p>Hvis ikke den allerede eksisterer, vil Installationsprogrammet forsøge at oprette den</p>';
$string['pathssubdirroot'] = '<p>Den fulde sti mappen med til Moodlekoden.</p>';
$string['pathssubdirroot'] = '<p>Den fulde sti til mappen med Moodlekoden.</p>';
$string['pathssubwwwroot'] = '<p>Moodles fulde web-adresse, dvs. adressen som den skal stå i browserens adressefelt for at komme ind på Moodle.</p>
<p>Moodle kan ikke bruges fra flere adresser. Hvis dit websted kan tilgås fra flere adresser, skal du vælge den enkleste og opsætte permanent viderestilling for hver af de øvrige.</p>
<p>Hvis dit websted er tilgængeligt fra både internettet og et internt net (nogen gange kaldet intranet), skal du bruge den offentlige adresse her</p>
@@ -84,11 +79,8 @@ $string['pathssubwwwroot'] = '<p>Moodles fulde web-adresse, dvs. adressen som de
$string['pathsunsecuredataroot'] = 'Datamappen er ikke sikret';
$string['pathswrongadmindir'] = 'Adminmappe eksisterer ikke';
$string['phpextension'] = '{$a} PHP-extension';
$string['phpversion'] = 'PHP version';
$string['phpversionhelp'] = '<p>Moodle kræver mindst PHP version 4.3.0. eller 5.1.0 (5.0.x er behæftet med fejl).</p>
<p>Webserveren bruger i øjeblikket version {$a}</p>
<p>Du bliver nødt til at opdatere PHP eller flytte systemet over på en anden webserver der har en nyere version af PHP!</p>
(Har du ver. 5.0.x kan du også nedgradere til 4.4.x)</p>';
$string['phpversion'] = 'PHP-version';
$string['phpversionhelp'] = '<p>Moodle kræver mindst PHP version 5.4.4 (7.0.x har visse begrænsninger).</p> <p>Du bruger i øjeblikket version {$a}</p> <p>Du bliver nødt til at opgradere PHP eller flytte systemet over på en webserver med en nyere version af PHP!</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'Du ser denne side fordi du har installeret og åbnet pakken <strong>{$a->packname} {$a->packversion}</strong> på din computer.
Tillykke med det!';
+1
View File
@@ -30,5 +30,6 @@
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = '';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Dansk';
+5 -5
View File
@@ -31,13 +31,13 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Die Datenbank konnte nicht angelegt werden.</p><p>Die angegebene Datenbank existiert nicht und das genannten Nutzerkonto hat keine Rechte, die Datenbank neu anzulegen. Die Datenbank-Konfiguration muss überprüft werden.</p>';
$string['cannotcreatelangdir'] = 'Verzeichnis \'lang\' wurde nicht angelegt';
$string['cannotcreatetempdir'] = 'Das Verzeichnis \'temp\' wurde nicht angelegt';
$string['cannotcreatelangdir'] = 'Das Verzeichnis \'lang\' wurde nicht angelegt.';
$string['cannotcreatetempdir'] = 'Das Verzeichnis \'temp\' wurde nicht angelegt.';
$string['cannotdownloadcomponents'] = 'Einige Komponenten können nicht geladen werden.';
$string['cannotdownloadzipfile'] = 'ZIP-Datei kann nicht heruntergeladen werden.';
$string['cannotfindcomponent'] = 'Komponente wurde nicht gefunden';
$string['cannotsavemd5file'] = 'Die md5-Datei wurde nicht gespeichert';
$string['cannotsavezipfile'] = 'Die ZIP-Datei wurde nicht gespeichert';
$string['cannotfindcomponent'] = 'Die Komponente kann nicht gefunden werden.';
$string['cannotsavemd5file'] = 'Die md5-Datei wurde nicht gespeichert.';
$string['cannotsavezipfile'] = 'Die ZIP-Datei wurde nicht gespeichert.';
$string['cannotunzipfile'] = 'Die Datei kann nicht entpackt werden';
$string['componentisuptodate'] = 'Die Komponente ist aktuell.';
$string['dmlexceptiononinstall'] = '<p>Ein Datenbankfehler ist aufgetreten [{$a->errorcode}]. <br />{$a->debuginfo}</p>';
+4 -5
View File
@@ -36,7 +36,7 @@ $string['chooselanguagehead'] = 'Sprache wählen';
$string['chooselanguagesub'] = 'Wählen Sie eine Sprache, die Sie während der Installation verwenden wollen. Die ausgewählte Sprache wird nach der Installation als Standardsprache der Instanz benutzt, aber Sie dürfen die Sprache jederzeit ändern.';
$string['clialreadyconfigured'] = 'Die Datei config.php existiert bereits. Bitte benutzen Sie admin/cli/install_database.php, wenn Sie diese Site installieren möchten.';
$string['clialreadyinstalled'] = 'Die Datei config.php existiert bereits. Bitte benutzen Sie admin/cli/install_database.php, wenn Sie diese Site aktualisieren möchten.';
$string['cliinstallheader'] = 'Installation von Moodle {$a} über die Kommandozeile';
$string['cliinstallheader'] = 'Installation von Moodle {$a} über die Befehlszeile';
$string['databasehost'] = 'Datenbank-Server';
$string['databasename'] = 'Datenbank-Name';
$string['databasetypehead'] = 'Datenbank-Treiber wählen';
@@ -73,10 +73,9 @@ $string['pathsunsecuredataroot'] = 'Der Speicherort des Verzeichnisses \'dataroo
$string['pathswrongadmindir'] = 'Das Admin-Verzeichnis existiert nicht';
$string['phpextension'] = 'PHP-Extension {$a}';
$string['phpversion'] = 'PHP-Version';
$string['phpversionhelp'] = '<p>Moodle erwartet als PHP-Version mindestens 4.3.0/4.4.0 oder 5.1.0 (5.0.x weist eine Reihe bekannter Fehler auf).</p>
<p>Sie nutzen momentan die Version {$a}.</p>
<p>Sie müssen Ihre PHP-Version aktualisieren oder auf einen Rechner wechseln, der eine neuere Version von PHP nutzt.<br />
(Im Falle von 5.0.x könnten Sie auch zu einer Version 4.3.x/4.4.x downgraden)</p>';
$string['phpversionhelp'] = '<p>Moodle benötigt mindestens die PHP-Version 5.4.4 (7.0.x weist einige Einschränkungen auf).</p>
<p>Sie nutzen im Moment die Version {$a}.</p>
<p>Sie müssen Ihre PHP-Version aktualisieren oder auf einen Server mit einer neueren PHP-Version wechseln.<br />';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'Sie haben das Paket <strong>{$a->packname} {$a->packversion}</strong> erfolgreich auf Ihrem Computer installiert.';
$string['welcomep30'] = 'Diese Version von <strong>{$a->installername}</strong> enthält folgende Anwendungen, mit denen Sie <strong>Moodle</strong> ausführen können:';
+34
View File
@@ -0,0 +1,34 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Automatically generated strings for Moodle installer
*
* Do not edit this file manually! It contains just a subset of strings
* needed during the very first steps of installation. This file was
* generated automatically by export-installer.php (which is part of AMOS
* {@link http://docs.moodle.org/dev/Languages/AMOS}) using the
* list of strings defined in /install/stringnames.txt.
*
* @package installer
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = 'de';
$string['thislanguage'] = 'Dolnoserbski';
+1
View File
@@ -31,6 +31,7 @@
defined('MOODLE_INTERNAL') || die();
$string['language'] = 'Γλώσσα';
$string['moodlelogo'] = 'Λογότυπο Moodle';
$string['next'] = 'Επόμενο';
$string['previous'] = 'Προηγούμενο';
$string['reload'] = 'Eπαναφόρτωση';
+1 -1
View File
@@ -90,7 +90,7 @@ $string['pathsunsecuredataroot'] = 'Dataroot location is not secure';
$string['pathswrongadmindir'] = 'Admin directory does not exist';
$string['phpextension'] = '{$a} PHP extension';
$string['phpversion'] = 'PHP version';
$string['phpversionhelp'] = '<p>Moodle requires a PHP version of at least 5.4.4 (7.x has some engine limitations).</p>
$string['phpversionhelp'] = '<p>Moodle requires a PHP version of at least 5.4.4 (7.0.x has some engine limitations).</p>
<p>You are currently running version {$a}.</p>
<p>You must upgrade PHP or move to a host with a newer version of PHP.</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
+2 -2
View File
@@ -33,13 +33,13 @@ defined('MOODLE_INTERNAL') || die();
$string['clianswerno'] = 'n';
$string['cliansweryes'] = 's';
$string['cliincorrectvalueerror'] = 'Error, valor incorrecto "{$a->value}" para "{$a->option}"';
$string['cliincorrectvalueretry'] = 'Valor incorrecto, por favor, inténtelo de nuevo';
$string['cliincorrectvalueretry'] = 'Valor incorrecto, por favor, intente de nuevo';
$string['clitypevalue'] = 'valor del tipo';
$string['clitypevaluedefault'] = 'valor del tipo, pulse Enter para utilizar el valor por defecto ({$a})';
$string['cliunknowoption'] = 'Opciones no reconocidas:
{$a}
Por favor, utilice la opción Ayuda.';
$string['cliyesnoprompt'] = 'escriba s (sí) o n (no)';
$string['cliyesnoprompt'] = 'escriba s (para sí) o n (para no)';
$string['environmentrequireinstall'] = 'debe estar instalado/activado';
$string['environmentrequireversion'] = 'versión {$a->needed} es obligatoria y está ejecutando {$a->current}';
$string['upgradekeyset'] = 'Clave de actualización (dejar en blanco para no establecerla)';
+70
View File
@@ -0,0 +1,70 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Automatically generated strings for Moodle installer
*
* Do not edit this file manually! It contains just a subset of strings
* needed during the very first steps of installation. This file was
* generated automatically by export-installer.php (which is part of AMOS
* {@link http://docs.moodle.org/dev/Languages/AMOS}) using the
* list of strings defined in /install/stringnames.txt.
*
* @package installer
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$string['admindirname'] = 'Directorio Admin';
$string['availablelangs'] = 'Paquetes de idiomas disponibles';
$string['chooselanguagehead'] = 'Seleccionar el idioma';
$string['chooselanguagesub'] = 'Selecciona un idioma para el proceso de instalación. Este idioma se usará también como el idioma por defecto del sitio, aunque se puede cambiar más adelante.';
$string['clialreadyconfigured'] = 'Ya existe el archivo de configuración: config.php. Emplea admin/cli/install_database.php para instalar moodle en este sitio.';
$string['clialreadyinstalled'] = 'Ya existe el archivo de configuración: config.php. Emplea admin/cli/install_database.php para actualizar el moodle de este sitio.';
$string['cliinstallheader'] = 'Programa de instalación desde la linea de comandos de Moodle {$a}';
$string['databasehost'] = 'Servidor';
$string['databasename'] = 'Base de datos';
$string['databasetypehead'] = 'Controlador';
$string['dataroot'] = 'Directorio de Datos';
$string['datarootpermission'] = 'Permiso par EL directorios de datos';
$string['dbprefix'] = 'Prefijo para Tablas';
$string['dirroot'] = 'Directorio Moodle';
$string['environmenthead'] = 'Verificando tu entorno...';
$string['environmentsub2'] = 'Cada versión de Moodle tiene algunos requerimientos mínimos de la versión de PHP y un número de extensiones obligatorias de PHP.
La verificación completa del entorno se realiza antes de cada instalación y actualización. Ponte en contacto con el administrador del servidor si no sabes cómo instalar una nueva versión o habilitar las extensiones de PHP.';
$string['errorsinenvironment'] = '¡Falló la verificación del entrono!';
$string['installation'] = 'Instalación';
$string['langdownloaderror'] = 'Desafortunadamente el idioma "{$ a}" no pudo ser descargado. El proceso de instalación continuará en inglés.';
$string['paths'] = 'Rutas';
$string['pathserrcreatedataroot'] = 'El directorio de datos ({$a->dataroot}) no puede ser creado por el instalador.';
$string['pathshead'] = 'Confirma las rutas';
$string['pathsrodataroot'] = 'No se puede escribir en el directorio raíz';
$string['pathsroparentdataroot'] = 'No se puede escribir en el directorio base ({$a->parent}). El directorio de datos ({$a->dataroot}) no puede ser creado por el instalador.';
$string['pathssubdataroot'] = '<p>El directorio donde Moodle guardará los documentos subidos por los usuarios.</p>
<p>El directorio debe permitir LEER y ESCRIBIR al usuario del servidor web (<i>usualmente \'www-data\', \'nobody\' o \'apache\'</i>).</p>
<p>No debe ser accesible directamente desde la web.</p>
<p>Si el directorio no existe, el proceso de instalación tratará de crearlo.</p>';
$string['pathssubdirroot'] = '<p>La ruta completa del directorio que contiene el código de Moodle.</p>';
$string['pathssubwwwroot'] = '<p>La dirección web completa para acceder a Moodle (<i>la dirección que los usuarios escribirán en el navegador para acceder a Moodle</i>)</p>
<p>No es posible acceder a Moodle utilizando múltiples direcciones. Si tu sitio es accesible desde múltiples direcciones debes seleccionar la mas conveniente y redireccionar permanentemente a está las demás direcciones.</p>
<p>Si tu sitio web es accesible tanto desde internet como desde una red interna (<i>algunas veces llamada Intranet</i>), escribe aquí la dirección pública.</p>
<p>Si la dirección actual no es correcta, cambia la URL en el navegador y reinicia la instalación.</p>';
$string['pathsunsecuredataroot'] = 'La ubicación del directorio raíz no es segura';
$string['pathswrongadmindir'] = 'El directorio admin no existe';
$string['phpextension'] = '{$a} extensión PHP';
$string['phpversion'] = 'Versión PHP';
+34
View File
@@ -0,0 +1,34 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Automatically generated strings for Moodle installer
*
* Do not edit this file manually! It contains just a subset of strings
* needed during the very first steps of installation. This file was
* generated automatically by export-installer.php (which is part of AMOS
* {@link http://docs.moodle.org/dev/Languages/AMOS}) using the
* list of strings defined in /install/stringnames.txt.
*
* @package installer
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = 'es';
$string['thislanguage'] = 'Español Colombiano';
+2 -3
View File
@@ -85,10 +85,9 @@ $string['pathsunsecuredataroot'] = 'La ubicación de dataroot no es segura';
$string['pathswrongadmindir'] = 'El directorio admin no existe';
$string['phpextension'] = 'Extensión PHP {$a}';
$string['phpversion'] = 'Versión PHP';
$string['phpversionhelp'] = '<p>Moodle requiere al menos una versión de PHP 4.3.0 o 5.1.0 ((5.0.x tiene una serie de problemas conocidos).</p>
$string['phpversionhelp'] = '<p>Moodle requiere al menos una versión de PHP al menos de 5.4.4 (7.0.x tienealgunas limitaciones del motor.</p>
<p>En este momento está ejecutando la versión {$a}</p>
<p>¡Debe actualizar PHP o trasladarse a otro servidor con una versión más reciente de PHP!<br />
(En caso de 5.0.x podría también revertir a la versión 4.4.x)</p>';
<p>¡Debe actualizar PHP o trasladarse a otro servidor con una versión más reciente de PHP!</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'Si está viendo esta página es porque ha podido instalar y ejecutar exitosamente el paquete <strong>{$a->packname} {$a->packversion}</strong> en su computadora. !Enhorabuena!';
$string['welcomep30'] = 'Esta versión de <strong>{$a->installername}</strong> incluye las aplicaciones necesarias para que <strong>Moodle</strong> funcione en su computadora, principalmente:';
+1 -1
View File
@@ -31,4 +31,4 @@
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = 'es_mx';
$string['thislanguage'] = 'Español de México para niños';
$string['thislanguage'] = 'Español - México para niños';
+3 -2
View File
@@ -37,8 +37,9 @@ $string['cliincorrectvalueretry'] = 'Vale väärtus(value), palun proovige uuest
$string['clitypevalue'] = 'tüübi väärtus';
$string['clitypevaluedefault'] = 'sisesta väärtus, vajuta Enter kasutamaks vaikeväärtust ({$a})';
$string['cliunknowoption'] = 'Tundmatud valikud:
{$a}
Palun kasuta --help valikut.';
{$a}
Kasutage spikrivalikut.';
$string['cliyesnoprompt'] = 'kirjuta y (tähendab jah) või n (tähendab ei)';
$string['environmentrequireinstall'] = 'on nõutud, et oleks installeeritud ja võimaldatud';
$string['environmentrequireversion'] = 'versioon {$a->needed} on nõutud, Sinul on jooksmas versioon {$a->current}';
$string['upgradekeyset'] = 'Versioonitäienduse võti (jätke tühjaks, kui te ei soovi seda määrata)';
+17 -12
View File
@@ -30,19 +30,24 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatelangdir'] = 'Ei saa luua lang kataloogi';
$string['cannotcreatetempdir'] = 'Ei saa luua temp kataloogi';
$string['cannotdownloadcomponents'] = 'Ei saa alla tõmmata komponente.';
$string['cannotdownloadzipfile'] = 'Ei saa alla tõmmata ZIP faili.';
$string['cannotfindcomponent'] = 'Ei leia komponenti.';
$string['cannotsavemd5file'] = 'Ei saa salvestada md5 faili.';
$string['cannotsavezipfile'] = 'Ei saa salvestada ZIP faili.';
$string['cannotunzipfile'] = 'Ei saa lahti pakkida faili.';
$string['cannotcreatedboninstall'] = '<p>Andmebaasi ei saa luua.</p>
<p>Määratud andmebaasi pole ja antud kasutajal puudub õigus andmebaasi loomiseks.</p>
<p>Õpikeskkonna administraator peab kontrollima andmebaasi konfiguratsiooni</p>';
$string['cannotcreatelangdir'] = 'Keelekataloogi ei saa luua';
$string['cannotcreatetempdir'] = 'Ajutist kataloogi ei saa luua';
$string['cannotdownloadcomponents'] = 'Komponente ei saa alla laadida';
$string['cannotdownloadzipfile'] = 'ZIP-faili ei saa alla laadida';
$string['cannotfindcomponent'] = 'Ei leia komponenti';
$string['cannotsavemd5file'] = 'MD5-faili ei saa salvestada';
$string['cannotsavezipfile'] = 'ZIP-faili ei saa salvestada';
$string['cannotunzipfile'] = 'Faili ei saa lahti pakkida.';
$string['componentisuptodate'] = 'Komponent on ajakohane';
$string['downloadedfilecheckfailed'] = 'Alla laetud faili kontroll ebaõnnestus.';
$string['invalidmd5'] = 'Vigane md5';
$string['dmlexceptiononinstall'] = '<p>Ilmnes andmebaasitõrge [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Allalaaditud faili kontroll nurjus';
$string['invalidmd5'] = 'Kontrolli muutuja oli vale proovige uuesti';
$string['missingrequiredfield'] = 'Mõni nõutav väli on puudu';
$string['remotedownloaderror'] = 'Komponendi alla tõmbamine serverisse ebaõnnestus, palun kontrolli proksi seadeid, PHP cURL laiendus on tungivalt soovitatav.<br /><br />Sa pead tõmbama <a href="{$a->url}">{$a->url}</a> faili käsitsi, kopeerima selle "{$a->dest}" oma serveris ja pakkima lahti sinna.';
$string['remotedownloaderror'] = '<p>Komponendi teie serverisse allalaadimine nurjus. Kontrollige puhvri sätteid; PHP laiend cURL on tungivalt soovitatav.</p>
<p>Peate faili <a href="{$a->url}">{$a->url}</a> käsitsi alla laadima, kopeerima selle oma serveris asukohta „{$a->dest}“ ja seal lahti pakkima.</p>';
$string['wrongdestpath'] = 'Vale sihtkohatee';
$string['wrongsourcebase'] = 'Vale allika URL\'i baas.';
$string['wrongsourcebase'] = 'Vale allika URL-i baas';
$string['wrongzipfilename'] = 'Vale ZIP-faili nimi';
+49 -31
View File
@@ -30,49 +30,60 @@
defined('MOODLE_INTERNAL') || die();
$string['admindirname'] = 'Administreerimiskataloog';
$string['availablelangs'] = 'Saadaval keelte nimekiri';
$string['admindirname'] = 'Halduskataloog';
$string['availablelangs'] = 'Saadaolevad keelepaketid';
$string['chooselanguagehead'] = 'Valige keel';
$string['chooselanguagesub'] = 'Palun vali keel, mida kasutatakse AINULT installeerimise käigus. Hiljem saab valida õpikeskkonna ja kasutajate keelt.';
$string['clialreadyinstalled'] = 'Fail config.php juba eksisteerib, palun kasuta admin/cli/upgrade.php kui soovid uuendada oma saiti.';
$string['chooselanguagesub'] = 'Valige Moodlei keel. Valitud keelt kasutatakse õpikeskkonna vaikekeelena ja seda saab hiljem muuta.';
$string['clialreadyconfigured'] = 'Fail config.php“ on juba olemas. Kasutage sellele saidile Moodlei installimiseks faili „admin/cli/install_database.php“.';
$string['clialreadyinstalled'] = 'Konfiguratsioonifail config.php on juba olemas. Palun kasutage Moodlei selles õpikeskkonnas uuendamiseks faili admin/cli/install_database.php.';
$string['cliinstallheader'] = 'Moodlei {$a} käsureapõhine installiprogramm';
$string['databasehost'] = 'Andmebaasi host';
$string['databasename'] = 'Andmebaasi nimi';
$string['databasetypehead'] = 'Valige andmebaasi draiver';
$string['dataroot'] = 'Andmete kataloog';
$string['dataroot'] = 'Andmekataloog';
$string['datarootpermission'] = 'Andmekataloogide õigus';
$string['dbprefix'] = 'Tabeli eesliide';
$string['dirroot'] = 'Moodle kataloog';
$string['dirroot'] = 'Moodlei kataloog';
$string['environmenthead'] = 'Keskkonna kontrollimine...';
$string['environmentsub2'] = 'Iga Moodle väljalaskel on oma minimaalne PHP versiooni nõue ja kohustuslikud PHP laiendused.
Täielik keskkonna kontroll tehakse enne iga installeerimist ja uuendamist. Palun võta ühendust serveri administraatoriga, kui sa ei sa kuidas installeerida või võimaldada PHP laiendusi.';
$string['environmentsub2'] = 'Igal Moodlei väljaandel on oma minimaalne PHP versiooni nõue ja kohustuslikud PHP- laiendused.
Täielik keskkonnakontroll tehakse enne iga installi ja versiooniuuendust. Kui te ei tea, kuidas installida uus versioon või lubada PHP-laiendused, pöörduge administraatori poole.';
$string['errorsinenvironment'] = 'Keskkonna sobivuse kontroll nurjus.';
$string['installation'] = 'Installimine';
$string['langdownloaderror'] = 'Keelt "{$a}" ei saanud alla laadida. Installimine jätkub inglise keeles.';
$string['memorylimithelp'] = '<p>PHP mälu limiit sinu serveri jaoks on hetkel {$a}.</p>
<p>See võib hiljem tekitada Moodle\'il mäluprobleeme, eriti kui sul on palju mooduleid ja/või kasutajaid.
</p>
<p>Me soovitame, et sa konfigureeriksid PHP kõrgema limiidi peale, näiteks 16M. Selle tostamiseks on mitu viisi:</p>
$string['memorylimithelp'] = '<p>Teie serveri PHP mälulimiit on praegu {$a}.</p>
<p>See võib hiljem tekitada Moodleil mäluprobleeme,
eriti kui teil on palju kasutajaid ja/või lubatud palju mooduleid.</p>
<p>Soovitatav on võimaluse korral konfigureerida suurem PHP limiit, näiteks 16M.
Selle tegemiseks on mitu viisi.</p>
<ol>
<li>Kui võimalik, siis kompileeri PHP uuesti parameetriga <i>--enable-memory-limit</i>.
See lubab Moodle\'il ise mälu limiiti määrata.</li>
<li>Kui sul on juurdepääs oma php.ini failile, siis saad muuta seal <b>memory_limit</b> väärtuseks midagi 16M lähedast. Kui sul ei ole juurdepääsu, siis võiksid paluda administraatoril seda teha.</li>
<li>Mõnedes PHP serverites saad luua Moodle kataloogi .htaccess faili, mis sisaldab seda rida:<p><blockquote>php_value memory_limit 16M</blockquote></p>
<p>Kuigi mõnedes serverites tõkestab see <b>kõigi</b> PHP lehekülgede tööd (sa näed veateateid, kui vaatad lehti), nii et pead eemaldama .htaccess faili.</p></li>
<li>Kui võimalik, siis kompileerige PHP uuesti parameetriga <i>--enable-memory-limit</i>.
See lubab Moodleil ise mälulimiidi määrata.</li>
<li>Kui teil on juurdepääs teie php.ini failile, saate seal muuta sätte <b>memory_limit</b>
väärtuse näiteks väärtuseks 40M. Kui teil pole juurdepääsu,
saate paluda administraatoril seda teha.</li>
<li>Mõnes PHP-serveris saab luua Moodlei kataloogi faili .htaccess,
mis sisaldab seda rida:
<blockquote><div>php_value memory_limit 40M</div></blockquote>
<p>Kuigi mõnes serveris tõkestab see <b>kõigi</b> PHP-lehtede tööd
(kui vaatate lehti, näete tõrketeateid), nii et peate faili .htaccess eemaldama.</p></li>
</ol>';
$string['paths'] = 'Teed';
$string['pathserrcreatedataroot'] = 'Andmete kataloogi ({$a->dataroot}) ei saa installeerija luua.';
$string['pathserrcreatedataroot'] = 'Installiprogramm ei saanud andmete kataloogi ({$a->dataroot}) luua.';
$string['pathshead'] = 'Kinnita teed';
$string['pathsrodataroot'] = 'Andmete juurkataloog ei võimalda kirjutust.';
$string['pathsroparentdataroot'] = 'Ülemkataloog ({$a->parent}) ei võimalda kirjutust. Installiprogramm ei saanud andmete kataloogi ({$a->dataroot}) luua.';
$string['pathssubadmindir'] = 'Väga vähesed veebihostid kasutavad /admin spetsiaalse URL-na, et pääseda ligi kontrollpaneelile või millegile sarnasele. Kahjuks on see konfliktis Moodle administreerimislehtedega. Sa saad olukorda parandada, kui nimetad kataloogi admin ümber oma üaigalduses ning kirjutad selle uue nime siia. Näiteks: <em>moodleadmin</em>. See parandab administreerimisliidese lingid Moodle\'s.';
$string['pathssubdataroot'] = 'Sa pead näitama koha, kuhu Moodle saaks salvestada üles laetud failid. See kataloog peab olema loetav JA KIRJUTATAV veebiserveri kasutaja poolt (tavaliselt \'nobody\' or \'apache\'), samas see kataloog ei tohiks olla ligipääsetav otse veebi kaudu. Kui kataloogi ei eksisteeri, siis installeerija püüab selle ise luua.';
$string['pathssubdirroot'] = 'Täistee Moodle paigalduse kataloogile.';
$string['pathssubwwwroot'] = 'Täielik veebiaadress, kust kaudu Moodle\'le ligi pääsetakse.
Ei ole võimalik kasutada mitmest kohast kohast ligipääsu.
Kui Su sait omab mitut avalikku aadress, siis pead seadistama ümbersuunamised kõikidelt teistest aadressidelt.
Kui Su sait on ligipääsetav nii Internetist kui intranetist (sisevõrgust), siis kasuta Interneti ehk avalikku aadressi ja seadista DNS sellisellt, et intraneti kasutajad kasutaksid ka avalikku aadressi.
Kui aadress pole korrektne, siis palun muuda URL oma brauseris, et taasalustada installeerimist erineva väärtusega.';
$string['pathssubadmindir'] = 'Väga vähestes veebihostides on juhtpaneelile vm juurdepääsuks spetsiaalse URL-ina kasutusel „/admin“. Kahjuks ei vasta see Moodlei administreerimislehtede tavaasukohale. Saate olukorda parandada, kui nimetate kataloogi admin oma installis ümber ja sisestate uue nime siin. Näiteks: <em>moodleadmin</em>. See parandab Moodleis olevad administreerimisliidese lingid.';
$string['pathssubdataroot'] = '<p>Kataloog, kuhu Moodle salvestab kõigi kasutajate üleslaaditud failide sisu.</p>
<p>See kataloog peab olema veebiserveri kasutaja poolt (tavaliselt \'www-data\', \'nobody\' või \'apache\') nii loetav kui ka kirjutatav.</p>
<p>See ei tohi olla otse veebist juurdepääsetav.</p>
<p>Kui kataloogi pole praegu olemas, püüab installimisprotsess selle ise luua.</p>';
$string['pathssubdirroot'] = '<p>Moodlei koodi sisaldava kataloogi täielik tee.</p>';
$string['pathssubwwwroot'] = '<p>Täielik veebiaadress, kustkaudu Moodleile juurde pääsetakse, s.t see aadress, mille kasutajad Moodleile juurdepääsemiseks oma brauseri aadressiribale sisestavad.</p>
<p>Moodleile poole võimalik juurde pääseda mitme aadressi kaudu. Kui teie õpikeskkond on juurdepääsetav mitme aadressi kaudu, valige neist lihtsaim ja määrake kõigilt teistelt aadressidelt püsiv ümbersuunamine.</p>
<p>Kui teie õpikeskkond on juurdepääsetav nii Internetist kui ka sisevõrgust, kasutage siin avalikku aadressi.</p>
<p>Kui praegune aadress pole õige, siis muutke oma brauseri aadressiribal URL ja alustage installi uuesti.</p>';
$string['pathsunsecuredataroot'] = 'Andmete juurkataloogi asukoht pole turvaline';
$string['pathswrongadmindir'] = 'Halduskataloogi pole olemas';
$string['phpextension'] = '{$a} PHP-laiendus';
@@ -81,10 +92,17 @@ $string['phpversionhelp'] = '<p>Moodle vajab vähemalt PHP versiooni 4.1.0</p>
<p>Sinu jooksev versioon on {$a}</p>
<p>Sa pead oma PHP-d uuendama või kolima hosti, kus on uuem PHP versioon!</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'Sa näed seda lehte, sest oled edukalt installeerinud ja käivitanud <strong>{$a->packname} {$a->packversion}</strong> paketi Sinu arvutis. Õnnitleme!';
$string['welcomep30'] = 'See <strong>{$a->installername}</strong> väljalase rakendusi loomaks keskkonda, millel <strong>Moodle</strong> hakkab will operate, namely:';
$string['welcomep20'] = 'Teile kuvatakse see leht, kuna olete edukalt oma arvutisse installinud ja
käivitanud paketi <strong>{$a->packname} {$a->packversion}</strong>. Õnnitleme!';
$string['welcomep30'] = 'See <strong>{$a->installername}</strong> väljaanne hõlmab rakendusi, mille abil
saab luua <strong>Moodlei</strong> toimimiseks vajaliku keskkonna, nt:';
$string['welcomep40'] = 'Pakett sisaldab ka järgmist: <strong>Moodle {$a->moodlerelease} ({$a->moodleversion})</strong>.';
$string['welcomep50'] = 'Kasutamaks kõiki selle rakendusi selles paketis on kaetud nende vastavad litsentsid. Täielik <strong>{$a->installername}</strong> pakett on <a href="http://www.opensource.org/docs/definition_plain.html">avatud lähtekoodil</a> ja jaotatud <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> litsentsi alusel.';
$string['welcomep60'] = 'Järgnevatel lehtedel juhitakse sind läbi mõnede lihtsate sammude seadistamaks ja seadmaks üles <strong>Moodle</strong> oma arvutis. Sa võid nõustuda vaikeväärtustega või fakultatiivselt täiendada vastavalt oma vajadustele.';
$string['welcomep70'] = '<strong>Moodle\\i</strong> installi jätkamiseks klõpsake nuppu Edasi.';
$string['welcomep50'] = 'Kõigi selle paketi rakenduste kasutamise kohta kehtivad nende vastavad
litsentsid. Täielik <strong>{$a->installername}</strong> pakett on
<a href="http://www.opensource.org/docs/definition_plain.html">avatud lähtekoodiga</a> ja seda levitatakse
<a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> litsentsi alusel.';
$string['welcomep60'] = 'Järgmistel lehtedel toodud lihtsate juhiste abil saate konfigureerida ja
häälestada <strong>Moodle</strong>i oma arvutis. Võite nõustuda
vaikesätetega või muuta sätteid oma vajaduste järgi.';
$string['welcomep70'] = '<strong>Moodlei</strong> installi jätkamiseks klõpsake nuppu Edasi.';
$string['wwwroot'] = 'Veebiaadress';
+1 -1
View File
@@ -32,4 +32,4 @@ defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = '';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'inglise';
$string['thislanguage'] = 'eesti';
+2 -1
View File
@@ -31,6 +31,7 @@
defined('MOODLE_INTERNAL') || die();
$string['language'] = 'Keel';
$string['next'] = 'Järgmine';
$string['moodlelogo'] = 'Moodlei logo';
$string['next'] = 'Edasi';
$string['previous'] = 'Eelmine';
$string['reload'] = 'Laadi uuesti';
+3
View File
@@ -30,6 +30,9 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Ezin da datu-basea sortu.</p>
<p>Zehaztutako datu-basea ez da existitzen eta adierazitako erabiltzaileak ez du baimenik datu-basea sortzeko.</p>
<p>Guneko kudeatzaileak datu-basearen konfigurazioa egiaztatu behar du.</p>';
$string['cannotcreatelangdir'] = 'Ezin da hizkuntza-direktorioa sortu';
$string['cannotcreatetempdir'] = 'Ezin da temp direktorioa sortu';
$string['cannotdownloadcomponents'] = 'Ezin dira osagaiak jaitsi';
+4 -5
View File
@@ -67,10 +67,10 @@ Horrek Moodle-k berak memoria-muga ezartzea ahalbidetzen du.</li>
(orriak ikustean erroreak ere ikusiko dituzu). Kasu horretan, .htaccess fitxategia ezabatu beharko duzu.</p></li>
</ol>';
$string['paths'] = 'Bideak';
$string['pathserrcreatedataroot'] = 'Instalatzaileak ezin du datuen karpeta ({$a->dataroot}) sortu.';
$string['pathserrcreatedataroot'] = 'Instalatzaileak ezin du datu-karpeta ({$a->dataroot}) sortu.';
$string['pathshead'] = 'Egiaztatu bideak';
$string['pathsrodataroot'] = 'Dataroot direktorioa ez da idazteko modukoa.';
$string['pathsroparentdataroot'] = 'Goragoko direktorioan ({$a->parent}) ezin da idatzi. Instalatzaileak ezin du datuen karpeta ({$a->dataroot}) sortu.';
$string['pathsroparentdataroot'] = 'Goragoko karpeta ({$a->parent}) ez da idazteko modukoa. Instalatzaileak ezin du datu-karpeta ({$a->dataroot}) sortu.';
$string['pathssubadmindir'] = 'Web ostalari gutxi batzuk /admin URL berezi gisa erabiltzen dute kontrol-panel edo antzekora sarbidea emateko. Zoritxarrez, honek Moodle-ren kudeatze-orrien berezko kokapenarekin gatazka sortzen du. Hau konpondu dezakezu zure instalazioko admin karpeta berrizendatuz, eta izen berria hemen sartuta. Adibidez <em>moodleadmin</em>. Honek Moodle-ko admin estekak konponduko du.';
$string['pathssubdataroot'] = '<p>Moodle-k erabiltzaileek igotako fitxategien edukiak bilduko dituen direktorio bat.</p>
<p>Direktorio honetan web-zerbitzariaren erabiltzaileak irakurtzeko eta idazteko baimena izan beharko ditu (normalean \'www-data\', \'nobody\', edo \'apache\').</p>
@@ -85,10 +85,9 @@ $string['pathsunsecuredataroot'] = 'Dataroot-en kokapena ez da segurua';
$string['pathswrongadmindir'] = 'Admin direktorioa ez da existitzen';
$string['phpextension'] = '{$a} PHP luzapena';
$string['phpversion'] = 'PHP bertsioa';
$string['phpversionhelp'] = '<p>Moodle-k gutxienez PHP 4.3.0 edo 5.1.0 (5.0.x errore batzuk ditu). </p>
$string['phpversionhelp'] = '<p>Moodle-k gutxienez PHP 5.4.4 bertsioa behar du (7.x bertsioak muga batzuk ditu). </p>
<p>Zure bertsioa: {$a}</p>
<p>PHP eguneratu edo PHP bertsio berriagoa duen zerbitzari batera jo</p>
<p>5.0.x baduzu, nahi izanez gero, 4.4.x. bertsiora jaitsi dezakezu</p>';
<p>PHP eguneratu edo PHP bertsio berriagoa duen zerbitzari batera jo</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'Orri hau ikusten baduzu <strong>{$a->packname} {$a->packversion}</strong> paketea zure ordenagailuan arrakastaz instalatu ahal izan duzu. Zorionak!';
$string['welcomep30'] = '<strong>{$a->installername}</strong>ren bertsio honek <strong>Moodle</strong>k
+1
View File
@@ -42,3 +42,4 @@ $string['cliunknowoption'] = 'گزینه‌های شناخته نشده:
$string['cliyesnoprompt'] = 'یکی از گزینه‌های ب (به معنای بلی) یا خ (به نشانه خیر) را تایپ کنید';
$string['environmentrequireinstall'] = 'باید نصب و فعال باشد';
$string['environmentrequireversion'] = 'نسخهٔ {$a->needed} لازم است و شما نسخهٔ {$a->current} را دارید';
$string['upgradekeyset'] = 'کلید ارتقا (برای تعیین نکردن خالی بگذارید)';
+7
View File
@@ -43,4 +43,11 @@ $string['cannotsavezipfile'] = 'نمی‌توانم فایل ZIP را ذخیره
$string['cannotunzipfile'] = 'فایل نمی‌تواند unzip شود';
$string['componentisuptodate'] = 'کامپوننت به‌روز است';
$string['dmlexceptiononinstall'] = '<p>یک خطای پایگاه داده رخ داد [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'بررسی فایل دریافت‌شده ناموفق بود';
$string['invalidmd5'] = 'متغیر بررسی نادرست بود - دوباره تلاش کنید';
$string['missingrequiredfield'] = 'بعضی از فیلدهای ضروری خالی است';
$string['remotedownloaderror'] = '<p>دانلود کامپوننت بر روی کارگزار شما ناموفق بود. لطفا تنظیمات پروکسی را بررسی کنید؛ افزونهٔ پی‌اچ‌پی cURL بسیار توصیه می‌شود.</p>
<p>باید به‌صورت دستی فایل <a href="{$a->url}">{$a->url}</a> را دریافت کنید، آن را در «{$a->dest}» در کارگزار خود کپی کنید و آنجا از حالت فشرده خارج کنید.</p>';
$string['wrongdestpath'] = 'مسیر مقصد اشتباه';
$string['wrongsourcebase'] = 'آدرس اینترنتی پایهٔ اشتباه';
$string['wrongzipfilename'] = 'نام فایل ZIP اشتباه';
+33
View File
@@ -34,13 +34,24 @@ $string['admindirname'] = 'دایرکتوری مدیر';
$string['availablelangs'] = 'بسته‌های زبانی موجود';
$string['chooselanguagehead'] = 'انتخاب زبان';
$string['chooselanguagesub'] = 'لطفاً زبانی را به جهت استفاده در حین نصب انتخاب نمایید. زبانی که در این صفحه انتخاب می‌کنید به عنوان زبان پیش‌فرض سایت نیز مورد استفاده قرار خواهد گرفت. البته می‌توانید بعداً آن را تغییر دهید.<br />ترجمهٔ فارسی این نسخه با همکاری <a href="http://foodle.org" target="_blank">گروه فودل</a> آماده شده است.';
$string['clialreadyconfigured'] = '.ﺩﺭﺍﺩ ﺩﻮﺟﻭ config.php ﯼﺪﻨﺑﺮﮑﯿﭘ ﻞﯾﺎﻓ
ﺯﺍ ﺖﯾﺎﺳ ﻦﯾﺍ ﺭﺩ ﻝﺩﻮﻣ ﺐﺼﻧ ﯼﺍﺮﺑ ﺎﻔﻄﻟ
.ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ admin/cli/database_install.php';
$string['clialreadyinstalled'] = '.ﺩﺭﺍﺩ ﺩﻮﺟﻭ config.php ﯼﺪﻨﺑﺮﮑﯿﭘ ﻞﯾﺎﻓ
ﺯﺍ ﺖﯾﺎﺳ ﻦﯾﺍ ﺭﺩ ﻝﺩﻮﻣ ﯼﺎﻘﺗﺭﺍ ﯼﺍﺮﺑ ﺎﻔﻄﻟ
.ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ admin/cli/database_install.php';
$string['cliinstallheader'] = 'ﻥﺎﻣﺮﻓ ﻂﺧ ﻖﯾﺮﻃ ﺯﺍ {$a} ﻝﺩﻮﻣ ﺐﺼﻧ ﻪﻣﺎﻧﺮﺑ';
$string['databasehost'] = 'میزبان پایگاه داده';
$string['databasename'] = 'نام پایگاه داده';
$string['databasetypehead'] = 'راه‌انداز پایگاه داده را انتخاب کنید';
$string['dataroot'] = 'دایرکتوری داده';
$string['datarootpermission'] = 'ﺎﻫ‌ﻩﺩﺍﺩ ِﯼﺭﻮﺘﮐﺮﯾﺍﺩ ﺯﻮﺠﻣ';
$string['dbprefix'] = 'پیشوند جدول‌ها';
$string['dirroot'] = 'دایرکتوری مودل';
$string['environmenthead'] = 'بررسی محیط شما ...';
$string['environmentsub2'] = 'هر کدام از انتشارهای مودل حداقل نیازمندی مخصوص به خود را در مورد نسخهٔ PHP‌ و وجود داشتن برخی از افزونه‌های PHP دارد.
پیش از هر نصب و ارتقا، بررسی کامل محیط انجام می‌شود. اگر نمی‌دانید چطور نسخهٔ جدید PHP را نصب کنید یا افزونه‌های PHP را فعال کنید، لطفا با مسئول کارگزار خود تماس بگیرید.';
$string['errorsinenvironment'] = 'بررسی محیط ناموفق بود!';
$string['installation'] = 'در حال نصب';
$string['langdownloaderror'] = 'متأسفانه زبان «{$a}» نصب نشد. فرآیند نصب به زبان انگلیسی ادامه خواهد یافت.';
$string['memorylimithelp'] = '<p>حد حافظهٔ PHP کارگزار شما هم‌اکنون {$a} است.</p>
@@ -62,6 +73,28 @@ $string['memorylimithelp'] = '<p>حد حافظهٔ PHP کارگزار شما ه
<p>اگرچه، در برخی از کارگزارها انجام این کار موجب جلوگیری از کارکردن <b>همهٔ</b> صفحه‌های PHP خواهد شد
(هنگام مشاهدهٔ صفحه‌ها خطاهایی خواهید دید) و مجبور خواهید بود که فایل <span dir="ltr">.htaccess</span> را پاک کنید.</p></li>
</ol>';
$string['paths'] = 'مسیرها';
$string['pathserrcreatedataroot'] = 'دایرکتوری داده (<string dir="ltr" style="direction:ltr;display:inline-block;">{$a->dataroot}</span>) نمی‌تواند توسط برنامهٔ نصب ایجاد شود.';
$string['pathshead'] = 'تایید مسیرها';
$string['pathsrodataroot'] = 'دایرکتوری داده قابل نوشتن نیست.';
$string['pathsroparentdataroot'] = 'دایرکتوری مادر (<string dir="ltr" style="direction:ltr;display:inline-block;">{$a->parent}</span>) قابل نوشتن نیست. دایرکتوری داده (<string dir="ltr" style="direction:ltr;display:inline-block;">{$a->dataroot}</span>) نمی‌تواند توسط برنامهٔ نصب ایجاد شود.';
$string['pathssubadmindir'] = 'وب‌سایت‌های خیلی کمی از <span dir="ltr" style="display:inline-block;direction:ltr">/admin</span> به‌عنوان پیوند ویژه‌ای برای دستیابی به یک
control panel یا چیز دیگری استفاده می‌کنند. متأسفانه این مسئله با
محل استاندارد صفحه‌های مدیر در مودل تداخل دارد. این مشکل را می‌توانید
با تغییر نام دایرکتوری admin در فایل‌های نصب و قرار دادن
نام جدید در این قسمت برطرف نمائید. به‌عنوان مثال: <em>moodleadmin</em>. این کار پیوندهای مدیر در مودل را اصلاح خواهد کرد.';
$string['pathssubdataroot'] = '<p>دایرکتوری‌ای مودل تمام فایل‌هایی که توسط کاربران ارسال می‌شود را نگهداری می‌کند.</p>
<p>این دایرکتوری باید توسط کاربر کارگزار وب (معمولا www-data یا nobody یا apache) هم قابل خواندن و هم قابل نوشتن باشد.</p>
<p>این دایرکتوری نباید مستقیما بر روی وب قابل دسترسی باشد.</p>
<p>اگر دایرکتوری در حال حاضر وجود نداشته باشد، فرایند نصب سعی می‌کند که آن را بسازد.</p>';
$string['pathssubdirroot'] = '<p>مسیر کامل دایرکتوری‌ای که محتوی کد مودل است.</p>';
$string['pathssubwwwroot'] = '<p>آدرس کامل دسترسی به مودل؛ یعنی آدرسی که کاربران برای دسترسی به مودل در نوار آدرس مرورگرشان وارد می‌کنند.</p>
<p>دسترسی به مودل از طریق چند آدرس امکان‌پذیر نیست. اگر سایت شما توسط آدرس‌های مختلفی قابل دسترسی است آنگاه ساده‌ترین آنها را انتخاب کنید و تمام آدرس‌های دیگر را روی آن ریدایرکت کنید (permanent redirect).</p>
<p>اگر سایت شما هم از طریق اینترنت و هم از طریق شبکهٔ محلی (که گاهی به آن اینترانت هم می‌گویند) قابل دسترسی است، آنگاه آدرس عمومی را در این قسمت استفاده کنید.</p>
<p>اگر آدرس فعلی درست نیست، لطفا آدرس را در نوار آدرس مرورگر خود تغییر دهید و فرایند نصب را از اول شروع کنید.</p>';
$string['pathsunsecuredataroot'] = 'محل دایرکتوری داده امن نیست';
$string['pathswrongadmindir'] = 'دایرکتوری مدیر وجود ندارد';
$string['phpextension'] = 'افزونهٔ {$a} در PHP';
$string['phpversion'] = 'نسخهٔ PHP';
$string['phpversionhelp'] = '<p>مودل نیاز به PHP نسخهٔ حداقل 5.4.4 دارد (<span dir="ltr" style="direction: ltr; display: inline-block">7.x</span> محدودیت‌هایی در engine اش دارد).</p>
<p>شما در حال حاضر از نسخهٔ {$a} استفاده می‌کنید</p>
+34
View File
@@ -0,0 +1,34 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Automatically generated strings for Moodle installer
*
* Do not edit this file manually! It contains just a subset of strings
* needed during the very first steps of installation. This file was
* generated automatically by export-installer.php (which is part of AMOS
* {@link http://docs.moodle.org/dev/Languages/AMOS}) using the
* list of strings defined in /install/stringnames.txt.
*
* @package installer
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$string['clianswerno'] = '';
$string['cliansweryes'] = '';
+1
View File
@@ -31,3 +31,4 @@
defined('MOODLE_INTERNAL') || die();
$string['language'] = 'Tungumál';
$string['next'] = 'Næsta';
+2 -2
View File
@@ -66,7 +66,7 @@ $string['pathsrodataroot'] = 'Le dossier de données n\'est pas accessible en é
$string['pathsroparentdataroot'] = 'Le dossier parent ({$a->parent}) n\'est pas accessible en écriture. Le dossier de données ({$a->dataroot}) ne peut pas être créé par l\'installeur.';
$string['pathssubadmindir'] = 'Quelques rares hébergeurs utilisent « /admin » comme URL spéciale pour l\'accès à un tableau de bord ou d\'autres fonctionnalités. Malheureusement ceci entre en conflit avec l\'emplacement standard des pages d\'administration de Moodle. Vous pouvez corriger ceci en renommant le dossier admin de votre installation Moodle et en plaçant le nouveau nom choisi dans ce champ. Par exemple, <em>moodleadmin</em>. Ceci modifiera tous les liens de l\'administration de Moodle.';
$string['pathssubdataroot'] = '<p>Un dossier dans lequel Moodle stockera tous les fichiers qui seront déposés par les utilisateurs.</p>
<p>Ce dossier doit être accessible en lecture et en écriture par le serveur web (dénomé « nobody » ou « apache » ou encore « www-data »).</p>
<p>Ce dossier doit être accessible en lecture et en écriture par l\'utilisateur système du serveur web (habituellement nommé « www-data », « nobody » ou encore « apache »).</p>
<p>Il ne doit pas être accessible directement via le web.</p>
<p>Si ce dossier n\'existe pas encore, Moodle tentera de le créer au cours du processus d\'installation.</p>';
$string['pathssubdirroot'] = '<p>Le chemin d\'accès complet au dossier contenant le code source de Moodle.</p>';
@@ -78,7 +78,7 @@ $string['pathsunsecuredataroot'] = 'L\'emplacement du dossier de données n\'est
$string['pathswrongadmindir'] = 'Le dossier d\'administration n\'existe pas';
$string['phpextension'] = 'Extension PHP {$a}';
$string['phpversion'] = 'Version de PHP';
$string['phpversionhelp'] = '<p>Moodle nécessite au minimum la version 4.3.0 ou 5.1.0 (5.0.x a bon nombre de problèmes).</p><p>Vous utilisez actuellement la version {$a}.</p><p>Pour que Moodle fonctionne, vous devez mettre à jour PHP ou aller chez un hébergeur ayant une version récente de PHP.<br />(Si vous avez une version 5.0.x, vous pouvez aussi re-passer à la version 4.4.x)</p>';
$string['phpversionhelp'] = '<p>Moodle nécessite au minimum la version 5.4.4 de PHP (la version 7.0.x a quelques limitations avec certains moteurs).</p><p>Vous utilisez actuellement la version {$a}.</p><p>Vous devez mettre à jour PHP ou aller chez un hébergeur ayant une version plus récente de PHP.';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'Vous voyez cette page, car vous avez installé Moodle correctement et lancé le logiciel <b>{$a->packname} {$a->packversion}</b> sur votre ordinateur. Félicitations !';
$string['welcomep30'] = 'Cette version de <b>{$a->installername}</b> comprend des logiciels qui créent un environnement dans lequel <b>Moodle</b> va fonctionner, à savoir :';
+1 -1
View File
@@ -84,7 +84,7 @@ $string['pathssubdataroot'] = '<p>Necesitase un lugar no que Moodle poida gardar
<p>Se non existe o instalador tentará crealo.</p>';
$string['pathssubdirroot'] = '<p>Ruta completa do directorio de instalación de Moodle.</p>';
$string['pathssubwwwroot'] = 'Enderezo web completo para acceder a Moodle.
Non é posíbel acceder a Moodle empregando enderezos múltiplos.
Non é posíbel acceder a Moodle empregando enderezos múltiples.
Se o seu sitio ten varios enderezos públicos debe configurar encamiñamentos permanentes en todos eles, agás neste.
Se o seu sitio web é accesíbel tanto desde unha Intranet como desde Internet, escriba aquí o enderezo público e configure o DNS para que os usuarios da Intranet poidan empregar tamén o enderezo público.
Se o enderezo non é correcto, cambie o URL no seu navegador para reiniciar a instalación cun valor diferente.';
+1 -1
View File
@@ -42,4 +42,4 @@ $string['cliunknowoption'] = 'אפשרויות לא מוכרות :
אנא השתמש באפשרות העזרה.';
$string['cliyesnoprompt'] = 'רשום y (שפרושו כן) או n (שפרושו לא)';
$string['environmentrequireinstall'] = 'נדרש להתקין ולאפשר הרחבה זו';
$string['environmentrequireversion'] = ירסה {$a->needed} נדרשת אך הגירסה הנוכחית היא {$a->current}';
$string['environmentrequireversion'] = 'גרסה {$a->needed} נדרשת אך הגרסה הנוכחית היא {$a->current}';
+1
View File
@@ -31,6 +31,7 @@
defined('MOODLE_INTERNAL') || die();
$string['language'] = 'Jezik';
$string['moodlelogo'] = 'Moodle logo';
$string['next'] = 'Nastavi';
$string['previous'] = 'Prethodni';
$string['reload'] = 'Učitaj ponovno';
+4 -4
View File
@@ -68,10 +68,10 @@ $string['pathsunsecuredataroot'] = 'Az adatok gyökérkönyvtára nem biztonság
$string['pathswrongadmindir'] = 'Nem létezik az admin könyvtár.';
$string['phpextension'] = '{$a} PHP-bővítmény';
$string['phpversion'] = 'PHP-verzió';
$string['phpversionhelp'] = 'A Moodle használatához legalább a PHP 4.3.0 vagy 5.1.0 verziója szükséges
(az 5.0.x több ismert gond miatt nem ajánlott). Az Ön által használt
verzió {$a}. Frissítse a PHP-verziót, vagy térjen át újabb PHP-verziót
működtető gazdagépre! (5.0.x esetén visszatérhet a 4.4.x verzióhoz is)';
$string['phpversionhelp'] = 'A Moodle használatához legalább a PHP 5.4.4 verziója szükséges (a (7.x több ismert gond miatt nem ajánlott). </p>
<p>Az Ön által használt verzió: {$a}. </p>
<p>Frissítse a PHP-verziót, vagy térjen át újabb PHP-verziót
működtető gazdagépre!</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'Azért látja ezt az oldalt, mert sikeresen telepítette és futtatja az {$a->packname} {$a->packversion} csomagot számítógépén. Gratulálunk!';
$string['welcomep30'] = 'A {$a->installername} tartalmazza azokat az alkalmazásokat, amelyekkel a Moodle számára kialakítható a működési környezet, azaz:';
+1 -1
View File
@@ -46,7 +46,7 @@ $string['dmlexceptiononinstall'] = '<p>データベースエラーが発生し
$string['downloadedfilecheckfailed'] = 'ダウンロードファイルのチェックに失敗しました。';
$string['invalidmd5'] = 'チェック変数が正しくありません - 再度お試しください。';
$string['missingrequiredfield'] = 'いくつかの必須入力フィールドが入力されていません。';
$string['remotedownloaderror'] = '<p>あなたのサーバへのコンポーネントのダウンロードに失敗しました。プロシ設定を確認してください。PHP cURL拡張モジュールの使用を強くお勧めします。</p>
$string['remotedownloaderror'] = '<p>あなたのサーバへのコンポーネントのダウンロードに失敗しました。プロシ設定を確認してください。PHP cURL拡張モジュールの使用を強くお勧めします。</p>
<p><a href="{$a->url}">{$a->url}</a>ファイルを手動でダウンロードした後、あなたのサーバの「{$a->dest}」にコピーおよび展開してください。</p>';
$string['wrongdestpath'] = '宛先パスが正しくありません。';
$string['wrongsourcebase'] = 'ソースURLベースが正しくありません。';
+7 -9
View File
@@ -33,9 +33,9 @@ defined('MOODLE_INTERNAL') || die();
$string['admindirname'] = 'Adminディレクトリ';
$string['availablelangs'] = '利用可能な言語パック';
$string['chooselanguagehead'] = '言語を選択してください。';
$string['chooselanguagesub'] = 'インストールのみ使用する言語を選択してください。この言語はサイトのデフォルト言語としても使用されます。後でサイト言語を変更することができます。';
$string['chooselanguagesub'] = 'インストールのみ使用する言語を選択してください。この言語はサイトのデフォルト言語としても使用されます。後でサイト言語を変更することができます。';
$string['clialreadyconfigured'] = '設定ファイルconfig.phpはすでに登録されています。このサイトをインストールする場合、admin/cli/install_database.phpを使用してください。';
$string['clialreadyinstalled'] = '設定ファイルconfig.phpはすでに登録されています。このサイトをアップグレードする場合、admin/cli/upgrade.phpを使用してください。';
$string['clialreadyinstalled'] = '設定ファイルconfig.phpはすでに登録されています。このサイトをアップグレードする場合、admin/cli/upgrade.phpを使用してください。';
$string['cliinstallheader'] = 'Moodle {$a} コマンドラインインストールプログラム';
$string['databasehost'] = 'データベースホスト :';
$string['databasename'] = 'データベース名 :';
@@ -57,7 +57,7 @@ $string['memorylimithelp'] = '<p>現在、サーバのPHPメモリ制限が {$a}
<ol>
<li>あなたがリコンパイル可能な場合、PHPを<i>--enable-memory-limit</i>オプションでコンパイルしてください。これにより、Moodle自身がメモリ制限を設定することが可能になります。</li>
<li>あなたがphp.iniファイルにアクセスできる場合、<b>memory_limit</b>設定を40Mのように変更することができます。php.iniファイルにアクセスできない場合、管理者に変更を依頼してください。</li>
<li>いくつかのPHPサーバでは下記の行を含む.htaccessファイルをMoodleディレクトリに作成することができます:
<li>いくつかのPHPサーバでは下記の行を含む.htaccessファイルをMoodleディレクトリに作成することができます:
<blockquote><div>php_value memory_limit 40M</div></blockquote>
<p>しかし、この設定が<b>すべての</b>PHPページの動作を妨げる場合もあります。ページ閲覧中にエラーが表示される場合、.htaccessファイルを削除してください。</p></li>
</ol>';
@@ -84,16 +84,14 @@ $string['pathsunsecuredataroot'] = 'dataroot ロケーションが安全では
$string['pathswrongadmindir'] = 'adminディレクトリがありません。';
$string['phpextension'] = '{$a} PHP拡張モジュール';
$string['phpversion'] = 'PHPバージョン';
$string['phpversionhelp'] = '<p>Moodleには少なくとも4.3.0または5.1.0のPHPバージョンが必要です (5.0.x には既知の多数の問題があります)。</p>
<p>現在、バージョン {$a} 動作ています。</p>
<p>PHPをアップグレードするか新しいバージョンがインストールされているホストに移動してください!<br />
(5.0.x の場合、anataha
バージョン 4.4.x にダウングレードすることもできます。)</p>';
$string['phpversionhelp'] = '<p>Moodleには少なくとも5.4.4のPHPバージョンが必要です (7.x にはエンジンの制限があります)。</p>
<p>現在、あなたはバージョン {$a} 動作させています。</p>
<p>PHPをアップグレードするか新しいバージョンのPHPがインストールされているホストに移動する必要があります。</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'インストールが正常に完了して、あなたのコンピュータで <strong>{$a->packname} {$a->packversion}</strong> パッケージが起動されたため、このページが表示されています。おめでとうございます!';
$string['welcomep30'] = 'このリリース <strong>{$a->installername}</strong> には<strong>Moodle</strong>で環境を作成するアプリケーションが含まれています。すなわち:';
$string['welcomep40'] = 'パッケージには <strong>Moodle {$a->moodlerelease} ({$a->moodleversion})</strong> も含まれています。';
$string['welcomep50'] = 'このパッケージ内のすべてのアプリケーションの使用は個のライセンスによって規定されています。全体の<strong>{$a->installername}</strong>パッケージは<a href="http://www.opensource.org/docs/definition_plain.html">オープンソース</a>であり、<a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>ライセンスの下で配布されています。';
$string['welcomep50'] = 'このパッケージ内のすべてのアプリケーションの使用は個のライセンスによって規定されています。全体の<strong>{$a->installername}</strong>パッケージは<a href="http://www.opensource.org/docs/definition_plain.html">オープンソース</a>であり、<a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>ライセンスの下で配布されています。';
$string['welcomep60'] = '次からのページはあなたのコンピュータに<strong>Moodle</strong>を簡単に設定およびセットアップする手順にしたがって進みます。あなたはデフォルトの設定を使用することも、必要に応じて任意で設定を変更することもできます。';
$string['welcomep70'] = '<strong>Moodle</strong>のセットアップを続けるには「次へ」ボタンをクリックしてください。';
$string['wwwroot'] = 'ウェブアドレス';
+33
View File
@@ -0,0 +1,33 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Automatically generated strings for Moodle installer
*
* Do not edit this file manually! It contains just a subset of strings
* needed during the very first steps of installation. This file was
* generated automatically by export-installer.php (which is part of AMOS
* {@link http://docs.moodle.org/dev/Languages/AMOS}) using the
* list of strings defined in /install/stringnames.txt.
*
* @package installer
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$string['availablelangs'] = 'ಲಭ್ಯವಿರುವ ಭಾಷಾ ಪೊಟ್ಟಣಗಳು';
+1
View File
@@ -40,3 +40,4 @@ $string['cliunknowoption'] = 'Neatpažintos parinktys: {$a} naudokite --žinyno
$string['cliyesnoprompt'] = 'įveskite t (taip) arba n (ne)';
$string['environmentrequireinstall'] = 'turi būti įdiegta ir įjungta';
$string['environmentrequireversion'] = 'būtina naudoti versiją {$a->needed}, o jūs naudojate {$a->current}';
$string['upgradekeyset'] = 'Naujovinimo raktas (palikite tuščią, jei nenorite nustatyti)';
-1
View File
@@ -30,6 +30,5 @@
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = '';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Lietuvių';
+34
View File
@@ -0,0 +1,34 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Automatically generated strings for Moodle installer
*
* Do not edit this file manually! It contains just a subset of strings
* needed during the very first steps of installation. This file was
* generated automatically by export-installer.php (which is part of AMOS
* {@link http://docs.moodle.org/dev/Languages/AMOS}) using the
* list of strings defined in /install/stringnames.txt.
*
* @package installer
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Te Reo Māori';
+3
View File
@@ -37,6 +37,9 @@ $string['cliincorrectvalueerror'] = 'Грешка, погрешна вредно
$string['cliincorrectvalueretry'] = 'Неточни вредност, ве молиме обидете се повторно';
$string['clitypevalue'] = 'впишете вредност';
$string['clitypevaluedefault'] = 'впишете вредност, притиснете Enter за да го користите стандардната вредност ({$a})';
$string['cliunknowoption'] = 'Непрепознаена опција:
{$a}
Ве молиме употребете --help опција.';
$string['cliyesnoprompt'] = 'впишете y (значи да) или n (значи не)';
$string['environmentrequireinstall'] = 'потребно е да се инсталира/овозможи';
$string['environmentrequireversion'] = 'верзијата {$a->needed} е потребна, а вие извршувате {$a->current}';
+1 -1
View File
@@ -38,7 +38,7 @@ $string['clialreadyconfigured'] = 'Het configuratiebestand config.php bestaat al
$string['clialreadyinstalled'] = 'Het configuratiebestand config.php bestaat al. Maak aub gebruik van admin/cli/install_database.php als je Moodle voor deze site wenst te upgraden.';
$string['cliinstallheader'] = 'Moodle {$a} command line installatieprogramma';
$string['databasehost'] = 'Databank host:';
$string['databasename'] = 'Datanbanknaam:';
$string['databasename'] = 'Databanknaam:';
$string['databasetypehead'] = 'Kies databankdriver';
$string['dataroot'] = 'Gegevensmap';
$string['datarootpermission'] = 'Toestemming datamappen';
+3 -3
View File
@@ -66,9 +66,9 @@ $string['pathshead'] = 'Bekreft stier';
$string['pathsrodataroot'] = 'Dataroot katalog er ikke skrivbar.';
$string['pathsroparentdataroot'] = 'Overordnet katalog ({$a->parent}) er ikke skrivbar. Datakatalogen ({$a->dataroot}) kan ikke opprettes av installasjonsprogrammet.';
$string['pathssubadmindir'] = 'Noen ganske få webhoteller bruker /admin som en egen url for å få tilgang til et kontrollpanel. Dessverre kommer det i konflikt med standard lokalisering av Moodle sine admin-sider. Du kan fikse dette ved å endre navn på admin-mappen og deretter oppgi dette navnet her. F.eks. <em>moodleadmin</em>. Dette vil fikse adminlenkene i Moodle.';
$string['pathssubdataroot'] = '<p>En mappe der Moodle vil lagre alle filer lastet opp av brukerne.</p>
<p>Denne mappen må være med lese og skriverettigheter for webserver-brukeren (vanligvis \'www-data\', \'nobody\' eller \'apache\').</p>
<p>Denne mappen må IKKE være direkte tilgjengelig via web.</p> <p>Installasjonsprogrammet vil forsøke å opprette den om den ikke finnes fra før.</p>';
$string['pathssubdataroot'] = '<p>Du trenger et sted hvor Moodle kan lagre opplastede filer. </p>
<p>Denne mappen må være med lese og skriverettigheter for webserver-brukeren (veldig ofte \'nobody\' eller \'apache\'), men denne mappen må IKKE være direkte tilgjengelig via web.</p>
<p> Installasjonsprogrammet vil forsøke å opprette den om den ikke finnes fra før.</p>';
$string['pathssubdirroot'] = '<p>Full mappesti til moodleinstallasjonen.</p>';
$string['pathssubwwwroot'] = '<p>Full webadresse til der hvor Moodle skal vises, altså den addressen som brukere skriver inn i adresselinjen i nettlseren sin.</p>
<p>Det er ikke mulig å bruke Moodle med mer enn en adresse. Dersom portalen din har flere webadresser bør du oppgi den enkleste av de her, og bruke videresending for hver av de andre adressene.</p>
+3 -3
View File
@@ -35,11 +35,11 @@ $string['cliansweryes'] = 'y';
$string['cliincorrectvalueerror'] = 'Error, valor incorrècta « {$a->value} » pel paramètre « {$a->option} »';
$string['cliincorrectvalueretry'] = 'Valor incorrècta, ensajar tornamai';
$string['clitypevalue'] = 'tipe valor';
$string['clitypevaluedefault'] = 'tipe valor, tapez Entrée per utilizar la valor per defaut ({$a})';
$string['clitypevaluedefault'] = 'tipe valor, picatz Entrada per utilizar la valor per defaut ({$a})';
$string['cliunknowoption'] = 'Options non reconegudas :
{$a}.
Utilisez l\'option --help.';
Utilizatz l\'opcion --help.';
$string['cliyesnoprompt'] = 'Picatz y (per òc) o n (per non)';
$string['environmentrequireinstall'] = 'doit èsser installat e activat';
$string['environmentrequireinstall'] = 'deu èsser installat e activat';
$string['environmentrequireversion'] = 'la version {$a->needed} es requesida ; utilizatz actualament la version {$a->current}';
$string['upgradekeyset'] = 'Metre a jorn la clau (daissar void per la definir pas)';
+1 -1
View File
@@ -36,7 +36,7 @@ $string['cliincorrectvalueerror'] = 'Erro: o valor "{$a->value}" não é permiti
$string['cliincorrectvalueretry'] = 'Valor incorreto, por favor tente novamente';
$string['clitypevalue'] = 'introduza valor';
$string['clitypevaluedefault'] = 'introduza valor, pressione a tecla Enter para usar o valor predefinido ({$a})';
$string['cliunknowoption'] = 'Opções desconhecidas: {$a} Por favor use a opção --help';
$string['cliunknowoption'] = 'Opções desconhecidas: {$a}. Por favor use a opção --help';
$string['cliyesnoprompt'] = 'digite s (para sim) ou n (para não)';
$string['environmentrequireinstall'] = 'deve estar instalada e ativa';
$string['environmentrequireversion'] = 'é requerida a versão {$a->needed} e está a correr a versão {$a->current}';
+2 -2
View File
@@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
$string['admindirname'] = 'Pasta de administração';
$string['availablelangs'] = 'Pacotes linguísticos disponíveis';
$string['chooselanguagehead'] = 'Selecione um idioma';
$string['chooselanguagesub'] = 'Selecione o idioma a utilizar durante a instalação. Poderá depois selecionar um outro idioma para o site e para os utilizadores.';
$string['chooselanguagesub'] = 'Selecione o idioma a utilizar durante a instalação. Poderá depois selecionar outro(s) idioma(s) para o site e para os utilizadores.';
$string['clialreadyconfigured'] = 'O ficheiro config.php já existe, use admin/cli/install_database.php para instalar o Moodle para este site.';
$string['clialreadyinstalled'] = 'O ficheiro config.php já existe, use admin/cli/install_database.php para atualizar o Moodle para este site.';
$string['cliinstallheader'] = 'Programa para instalação do Moodle <b>{$a}</b> através da linha de comandos';
@@ -61,7 +61,7 @@ $string['pathssubdataroot'] = '<p>Uma diretoria em que o Moodle irá armazenar t
<p>Não deve ser diretamente acessível através da web.</p>
<p> Se a diretoria não existir atualmente, o processo de instalação tentará criá-la.</p>';
$string['pathssubdirroot'] = 'Caminho completo para a diretoria que contém o código Moodle.';
$string['pathssubwwwroot'] = 'Endereço web completo de acesso ao Moodle. Não é possível aceder ao Moodle usando mais do que um endereço. Se o site tiver mais do que um endereço público, devem ser configurados redirecionamentos permanentes em todos eles, à exceção deste. Se o site pode ser acedido a partir da Internet e de Intranet, então use o endereço público aqui. Se o endereço atual não está correto, então altere o endereço indicado na barra de endereço do seu navegador e reinicie a instalação.';
$string['pathssubwwwroot'] = 'Endereço web completo de acesso ao Moodle. Não é possível aceder ao Moodle usando mais do que um endereço. Se o site tiver mais do que um endereço público, devem ser configurados redirecionamentos permanentes em todos eles, à exceção deste. Se o site pode ser acedido a partir da Internet e de Intranet, então use o endereço público aqui. Se o endereço atual não está correto, altere o endereço indicado na barra de endereço do seu navegador e reinicie a instalação.';
$string['pathsunsecuredataroot'] = 'A localização da pasta de dados não é segura';
$string['pathswrongadmindir'] = 'A pasta <b>admin</b> não existe';
$string['phpextension'] = 'Extensão <b>{$a}</b> do PHP';
+1 -1
View File
@@ -46,7 +46,7 @@ $string['dmlexceptiononinstall'] = '<p> Ocorreu um erro no banco de dados [{$a->
$string['downloadedfilecheckfailed'] = 'A verificação do arquivo baixado falhou';
$string['invalidmd5'] = 'A variável de verificação estava errada - tente novamente';
$string['missingrequiredfield'] = 'Faltam informações obrigatórias';
$string['remotedownloaderror'] = '<p>O download do componente falhou, por favor verifique as configurações do proxy. A extensão cURL do PHP é altamente recomendada.<p/><p>Você precisar baixar o <a href="{$a->url}">arquivo</a> manualmente, copiar para "{$a->dest}" e descompactar lá.<p/>';
$string['remotedownloaderror'] = '<p>O download do componente falhou, por favor verifique as configurações do proxy. A extensão cURL do PHP é altamente recomendada.</p><p>Você precisar baixar o <a href="{$a->url}">arquivo</a> manualmente, copiar para "{$a->dest}" e descompactar lá.</p>';
$string['wrongdestpath'] = 'Caminho do destino errado';
$string['wrongsourcebase'] = 'URL do recurso errada';
$string['wrongzipfilename'] = 'Nome do arquivo ZIP errado';
+3 -3
View File
@@ -69,10 +69,10 @@ $string['pathshead'] = 'Confirme os caminhos';
$string['pathsrodataroot'] = 'O diretório de dados raiz não pode ser acessado para escrita.';
$string['pathsroparentdataroot'] = 'O diretório pai ({$a->parent}) não pode ser escrito. O diretório de dados ({$a->dataroot}) não pode ser criado pelo instalador.';
$string['pathssubadmindir'] = 'Alguns poucos webhosts usam /admin como um URL especial para acesso ao painel de controle ou outras coisas. Infelizmente isto conflita com a localizaçao padrão das páginas do administrador Moodle. Você pode corrigir isso renomeando a pasta admin na sua instalação, e colocando esse novo nome aqui. Por exemplo: <em>moodleadmin</em>. Isto irá corrigir os links das páginas do administrador Moodle.';
$string['pathssubdataroot'] = '<p>Um diretório em que Moodle pode armazenar todo o conteúdo de arquivos enviados pelos usuários. </p>
<p>Este diretório deve ser legível e gravável tanto pelo usuário do servidor web (geralmente "www-data \',\' nobody \', ou\' apache\'). </p>
$string['pathssubdataroot'] = '<p>Um diretório em que Moodle armazenará todo o conteúdo de arquivos enviados pelos usuários. </p>
<p>Este diretório deve ser legível e gravável pelo usuário do servidor web (geralmente "www-data \',\' nobody \', ou\' apache\'). </p>
<p>Não deve ser diretamente acessível através da web. </p>
<p>Se o diretório não existir atualmente, o processo de instalação irá tentar criá-la. </p>';
<p>Se o diretório não existir atualmente, o processo de instalação tentará criá-lo. </p>';
$string['pathssubdirroot'] = '<p>Caminho completo do diretório para instalação do Moddle.</p>';
$string['pathssubwwwroot'] = '<p>O endereço completo em que Moodle pode ser acessado ou seja, o endereço que os usuários vão digitar na barra de endereços do seu navegador para acessar Moodle. </p>
<p>Não é possível acessar Moodle usando múltiplos endereços. Se o seu site é acessível através de múltiplos endereços, em seguida, escolher o mais fácil e configurar um redirecionamento permanente para cada um dos outros endereços. </p>
+6
View File
@@ -71,5 +71,11 @@ $string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'Vedeți această pagină deoarece ați instalat și lansat cu succes pachetul <strong>{$a->packname} {$a->packversion}</strong> în computerul dumneavoastră. Felicitări!';
$string['welcomep30'] = 'Această versiune <strong>{$a->installername}</strong> include aplicații pentru a crea un mediu în care <strong>Moodle</strong> va funcționa, și anume:';
$string['welcomep40'] = 'Pachetul include și <strong>Moodle {$a->moodlerelease} ({$a->moodleversion})</strong>.';
$string['welcomep50'] = 'Utilizarea tuturor aplicațiilor din acest pachet este determinată de respectivele lor
licențe. Pachetul complet <strong>{$a->installername}</strong> este
<a href="http://www.opensource.org/docs/definition_plain.html">open source</a> și este distribuit sub licența <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>.';
$string['welcomep60'] = 'Următoarele pagini vă oferă pași ușor de urmat pentru a
configura și seta <strong>Moodle</strong> în computerul dumneavoastră. Puteți accepta setările implicite
sau, opțional, să le modificați pentru a corespunde nevoilor dumneavoastră.';
$string['welcomep70'] = 'Click pe butonul "Next" de mai jos pentru a continua setarea <strong>Moodle</strong>.';
$string['wwwroot'] = 'Adresă Web';
+1
View File
@@ -31,6 +31,7 @@
defined('MOODLE_INTERNAL') || die();
$string['language'] = 'Jazyk';
$string['moodlelogo'] = 'Moodle logo';
$string['next'] = 'Ďalší';
$string['previous'] = 'Predchádzajúci';
$string['reload'] = 'Reload';
+4
View File
@@ -30,6 +30,9 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Podatkovne zbirke ni bilo mogoče ustvariti.</p>
<p>Navedena podatkovna zbirka ne obstaja in navedeni uporabnik nima dovoljenja, da ustvari podatkovno zbirko.</p>
<p>Skrbnik spletnega mesta mora potrditi konfiguracijo podatkovne zbirke.</p>';
$string['cannotcreatelangdir'] = 'Imenika jezika ni možno ustvariti.';
$string['cannotcreatetempdir'] = 'Začasnega imenika ni možno ustvariti.';
$string['cannotdownloadcomponents'] = 'Komponent ni možno prenesti.';
@@ -39,6 +42,7 @@ $string['cannotsavemd5file'] = 'Datoteke MD5 ni možno shraniti.';
$string['cannotsavezipfile'] = 'Datoteke ZIP ni možno shraniti.';
$string['cannotunzipfile'] = 'Datoteke ni možno razširiti (unzip).';
$string['componentisuptodate'] = 'Komponenta je posodobljena.';
$string['dmlexceptiononinstall'] = '<p>Prišlo je do napake podatkovne zbirke [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Preverjanje prenesene datoteke je spodletelo.';
$string['invalidmd5'] = 'Neveljaven MD5';
$string['missingrequiredfield'] = 'Eno izmed zahtevanih polj manjka';
+5 -6
View File
@@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
$string['admindirname'] = 'Администраторски директоријум';
$string['availablelangs'] = 'Доступни језички пакети';
$string['chooselanguagehead'] = 'Изаберите језик';
$string['chooselanguagesub'] = 'Молимо изаберите језик који ће се користити током инсталације. Овај језик ће, такође, бити коришћен на нивоу сајта као подразумевани, мада то накнадно може бити промењено.';
$string['chooselanguagesub'] = 'Изаберите језик који ће се користити током инсталације. Овај језик ће, такође, бити коришћен на нивоу сајта као подразумевани, иако то накнадно може да се промени.';
$string['clialreadyconfigured'] = 'Датотека config.php већ постоји. Молимо, користите admin/cli/install_database.php ако желите да инсталирате Moodle на овом серверу.';
$string['clialreadyinstalled'] = 'Датотека config.php већ постоји. Молимо користите admin/cli/upgrade.php ако желите да надоградите Moodle на овом серверу.';
$string['cliinstallheader'] = 'Moodle {$a} програм за инсталацију из командне линије';
@@ -73,17 +73,16 @@ $string['pathssubdataroot'] = '<p>Директоријум где ће Moodle ч
<p>Уколико овај директоријум не постоји процес инсталације ће покушати да га креира.</p>';
$string['pathssubdirroot'] = '<p>Пуна путања до директоријума који садржи кôд Moodlea.</p>';
$string['pathssubwwwroot'] = '<p>Пуна адреса путем које ће се приступати Moodleu, тј. адреса коју ће корисници унети у адресну траку својих веб читача како би приступили Moodleu.</p>
<p>Није могуће приступати Moodleu коришћењем више адреса Ако се вашем сајту може приступити са више адреса, онда изаберите најлакшу, а за све остале адресе подесите перманентну редирекцију.</p>
<p>Ако се вашем сајту може приступити са интернета али и са унутрашње мреже (која се понекад назив интранет), онда овде употребите јавну адресу.</p>
<p>Није могуће приступати Moodleu коришћењем више адреса. Ако се вашем сајту може приступити са више адреса, онда изаберите најлакшу, а за све остале адресе подесите перманентну редирекцију.</p>
<p>Ако се вашем сајту може приступити како са интернета, тако и из интерне мреже (која се понекад назив интранет), онда овде употребите јавну адресу.</p>
<p>Ако је текућа адреса нетачна, молимо вас, промените URL адресу у адресној траци свог веб читача и поново покрените инсталацију.</p>';
$string['pathsunsecuredataroot'] = 'Dataroot локација није безбедна';
$string['pathswrongadmindir'] = 'Админ директоријум не постоји';
$string['phpextension'] = '{$a} PHP екстензија';
$string['phpversion'] = 'PHP верзија';
$string['phpversionhelp'] = '<p>Moodle захтева најмање PHP верзију 4.3.0 или 5.1.0 (5.0.x има бројне уочене проблеме).</p>
$string['phpversionhelp'] = '<p>Moodle захтева најмање PHP верзију 5.4.4 или 7.1 (7.0.x има нека ограничења).</p>
<p>Тренутно користите верзију {$a}</p>
<p>Морате надоградити PHP или преместити Moodle на веб сервер са новијом верзијом PHP-a!</br>
(У случају верзије 5.0.x можете, такође, да се вратите на 4.4.x верзију)</p>';
<p>Морате да надоградите PHP или да преместити Moodle на веб сервер са новијом верзијом PHP-a.</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'Ову страницу видите зато што сте успешно инсталирали и покренули <strong>{$a->packname} {$a->packversion}</strong> пакет на свом серверу. Честитамо!';
$string['welcomep30'] = 'Ово издање <strong>{$a->installername}</strong> укључује апликације за креирање окружења у којем ће <strong>Moodle</strong> успешно функционисати, конкретно:';

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