Compare commits

..

306 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) 928f14b3cc Moodle release 2.4.11 2014-07-12 19:10:21 +02:00
AMOS bot e417377e89 Merge branch 'MOODLE_24_STABLE' into install_24_STABLE 2014-07-11 00:44:37 +00:00
Ankit Agarwal c110815236 MDL-46148 qtype_calculated: low-level defence against bad formulas
This catches things like:
 * Malicious equations coming from backup files.
 * Malicious equations in old questions in the database.
2014-07-10 17:54:28 +08:00
Damyon Wiese bc4fd27768 MDL-46148 questions: Added missing allow_commit for transaction 2014-07-10 11:38:29 +08:00
Tim Hunt 2576939e4d MDL-46148 qtype_calculatedsimple: fix notice
... when adding a dataset with a formula error.
2014-07-09 14:42:35 +01:00
Tim Hunt c8beaf6d70 MDL-46148 qtype_calculated: fix validation when importing.
In order to do this in a sane way, I cleaned up a lot of old mess,
inclduing:

1. Previously, qtype_calcuated used ->answeres when importing, and
->answer when saving the form. This was crazy, so I fixed it, and
stripped out the code that made the alternative variable name work.

2. Similarly, it could handle ->answer being either an array, such as
you would get form the HTML editor, or a simple string, which is what
you get form the form. I simplified that too.

3. Finally, I made import use a transaction around saving each
question, so we don't get half questions in the database when an error
occurs.
2014-07-09 14:42:24 +01:00
Tim Hunt 64d9b08a99 MDL-46148 qtype_calculated: removed unused method. 2014-07-09 14:38:14 +01:00
David Mudrák b5dacb5488 MDL-46223 Fix frequently used comments in the marking guide
When the frequently used comment contains a character like >, re-use it
directly instead of its HTML entitiy.
2014-07-09 16:45:35 +08:00
David Mudrák 8380722bb1 MDL-46223 Improve the display of marking guide validation message 2014-07-09 16:45:32 +08:00
Frederic Massart a1ae35173b MDL-45471 javascript: Escape content of exception dialogs 2014-07-08 14:12:40 +01:00
Marina Glancy a99ad20d94 MDL-43948 forms: setting types to filemanager and editor elements 2014-07-08 10:47:40 +01:00
David Mudrák 470a466d7f MDL-46223 Improve the marking guide output 2014-07-08 13:26:25 +08:00
David Mudrák f25f472be4 MDL-46223 Improve the rubric output 2014-07-08 13:26:25 +08:00
Marina Glancy 8f7d596058 MDL-45760 make sure to check permission before setting header 2014-07-07 15:06:57 +01:00
Tim Hunt a2bf5412a7 MDL-46148 qtype_calculated: fix formula validation. 2014-07-07 14:34:19 +01:00
Frederic Massart 9b60a086cf MDL-45417 mod_imscp: Prevent entity injections from package content 2014-07-07 13:03:11 +01:00
Frederic Massart 3b68d1b23a MDL-45463 mod_lti: Prevent XML entity injections from provider 2014-07-07 13:00:30 +01:00
Marina Glancy 5c4ef26c39 MDL-45616 repositories: use json encoding instead of serialization 2014-07-07 14:57:35 +08:00
Marina Glancy cb2b42aed8 MDL-45616 repositories: more clearly distinguish when we use source and when reference
Function repository::get_moodle_file() should always be called on packed reference and not on the source received from user.
Also added phpdocs to some other methods that were confusing source and reference
2014-07-07 14:57:33 +08:00
Rex Lorenzo a5abafcde2 MDL-45485 auth_shibboleth: User taking over other user's session
Replacing code with call to complete_user_login() since it calls session_regenerate_id().
2014-07-07 13:57:55 +08:00
Dan Poltawski 33bd0be19d MDL-43848 messages: do not display message content in popups
The user is not in control of when these popups show up and it
may not be appropiate to have part of this content display whilst
in the presence of other users.
2014-07-07 13:48:58 +08:00
AMOS bot dadf5df9a1 Automatically generated installer lang files 2014-07-04 00:44:43 +00:00
AMOS bot 67ed4cf0db Automatically generated installer lang files 2014-07-02 00:45:02 +00:00
AMOS bot c02a7aa383 Automatically generated installer lang files 2014-06-29 00:43:15 +00:00
AMOS bot a66d3cf108 Automatically generated installer lang files 2014-06-25 00:45:49 +00:00
AMOS bot a4cbbf1513 Automatically generated installer lang files 2014-06-25 00:45:49 +00:00
AMOS bot 693b574a7e Automatically generated installer lang files 2014-06-21 00:43:57 +00:00
AMOS bot e6ec9e634a Automatically generated installer lang files 2014-06-19 00:43:12 +00:00
AMOS bot 89f0eef044 Automatically generated installer lang files 2014-06-18 00:42:48 +00:00
AMOS bot 7f1c9be2b0 Automatically generated installer lang files 2014-06-15 00:43:07 +00:00
AMOS bot bab839a451 Automatically generated installer lang files 2014-06-12 00:43:56 +00:00
AMOS bot a06829f8ac Automatically generated installer lang files 2014-05-30 01:24:59 +00:00
AMOS bot 2776e08311 Automatically generated installer lang files 2014-05-30 01:24:59 +00:00
AMOS bot 1315b34bff Automatically generated installer lang files 2014-05-23 00:53:12 +00:00
AMOS bot c3a5b90bf5 Automatically generated installer lang files 2014-05-22 01:08:33 +00:00
Eloy Lafuente (stronk7) c348d41703 Moodle release 2.4.10 2014-05-10 18:30:28 +02:00
AMOS bot 9bf48960a3 Merge branch 'MOODLE_24_STABLE' into install_24_STABLE 2014-05-09 00:41:12 +00:00
Frederic Massart 729783c4ba MDL-45332 repository_url: URL parameter is using PARAM_URL 2014-05-08 15:36:20 +08:00
Damyon Wiese 42367c0f27 MDL-44750 Assign: Do not reveal student identities to screen readers 2014-05-07 16:51:01 +08:00
Marina Glancy ec22de0a5e MDL-45126 do not allow guests see name and summary of hidden course 2014-05-07 16:22:25 +08:00
Juan Leyva 437240b5aa MDL-43119 Add valid until dates for tokens created by login/token.php
3 months were decided

Conflicts:
	login/token.php
2014-05-07 16:16:24 +08:00
Frederic Massart 40ad22fdd0 MDL-43877 blocks: Files from blocks in my/ were accessible to the world 2014-05-07 14:27:34 +08:00
Damyon Wiese a57eacc114 MDL-44606 Assign: Some grading functions are missing sesskey protection 2014-05-07 12:37:22 +08:00
AMOS bot 5c8dd04a6c Automatically generated installer lang files 2014-05-02 00:39:26 +00:00
AMOS bot e893e0bf51 Automatically generated installer lang files 2014-04-23 00:38:22 +00:00
AMOS bot 5bcd9913b9 Automatically generated installer lang files 2014-04-22 11:15:24 +00:00
AMOS bot 7e69ec54cc Automatically generated installer lang files 2014-04-10 22:38:54 +00:00
AMOS bot 55399b5964 Automatically generated installer lang files 2014-04-07 22:40:03 +00:00
AMOS bot 1199892ebd Automatically generated installer lang files 2014-04-03 09:28:26 +00:00
AMOS bot c24fc9707c Automatically generated installer lang files 2014-03-27 00:48:36 +00:00
Eloy Lafuente (stronk7) 8ec057ca45 Moodle release 2.4.9 2014-03-07 18:51:34 +01:00
AMOS bot fbc50fb699 Merge branch 'MOODLE_24_STABLE' into install_24_STABLE 2014-03-07 00:54:52 +00:00
AMOS bot b0ec2d8cb5 Automatically generated installer lang files 2014-03-05 00:54:50 +00:00
Dan Poltawski eee61675f0 MDL-43146 enrol_imsenterprise: missing sesskey protection 2014-03-04 12:28:11 +08:00
Frederic Massart 4bc5dd3217 MDL-29409 repository_alfresco: Drop support for URL/link
The current solution has two major issues. Firstly, it is using the
session key in the file URL, allowing anyone with the link to steal
the identify of the poster. Secondly, the links are not presistent
and become broken as soon as the server is restarted. Let's not
support this any more until a proper solution is found in MDL-26454.
2014-03-04 11:35:03 +08:00
Marina Glancy d9596365e5 MDL-39990 wiki: more detailed validation of view/edit access 2014-03-03 14:45:17 +08:00
Andrew Davis 7748e17207 MDL-44082 mod_chat: added a security check for users already in the chat activity 2014-03-03 12:16:54 +08:00
Tomasz Muras aea324963d MDL-43656 mod_feedback: availablity date logic incorrect 2014-03-03 11:24:44 +08:00
Tim Hunt fd4b7f5739 MDL-43690 quiz_question_tostring missing s().
This meant that the edit quiz page sometimes had invalid HTML.
2014-03-03 11:00:33 +08:00
Maria Torres ae0ec61180 MDL-43916 - Email addresses incorrectly displayed
When capabilities and settings do not allow it.
2014-03-03 10:37:29 +08:00
Dan Poltawski b97e5658ea Merge branch 'w06_MDL-43344_m24_flow' of https://github.com/skodak/moodle into MOODLE_24_STABLE 2014-03-03 10:07:30 +08:00
AMOS bot c3083344ec Automatically generated installer lang files 2014-03-01 00:56:08 +00:00
AMOS bot b186033382 Automatically generated installer lang files 2014-02-21 00:45:34 +00:00
Eloy Lafuente (stronk7) a3edb5252a weekly release 2.4.8+ 2014-02-20 12:43:14 +01:00
Eloy Lafuente (stronk7) b268d4a05c Merge branch 'install_24_STABLE' of git://git.moodle.org/moodle-install into MOODLE_24_STABLE 2014-02-20 12:43:10 +01:00
Damyon Wiese e50a4e2386 Merge branch 'MDL-44018_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2014-02-19 10:25:00 +08:00
Tim Hunt 9b19a46099 MDL-44118 new environment check are all quiz attempts upgraded.
In Moodle 2.1, there was a major DB upgrade relating to questions, and
it was possible to delay some of that upgrade. Now, those DB tables are
changing again, and the time has come to insist that all the updata has
been upgraded (or deleted).
2014-02-18 12:06:15 +00:00
AMOS bot 77f8c68f44 Automatically generated installer lang files 2014-02-15 00:43:55 +00:00
AMOS bot 798b7b04af Automatically generated installer lang files 2014-02-12 00:42:56 +00:00
AMOS bot 88c96fd2f3 Automatically generated installer lang files 2014-02-11 00:42:15 +00:00
Tim Hunt 16ae4b809d MDL-44018 quesiton variant was not backed up or restored. 2014-02-06 09:53:45 +00:00
AMOS bot 35f6017d21 Automatically generated installer lang files 2014-02-02 00:42:21 +00:00
AMOS bot 085abbb371 Automatically generated installer lang files 2014-01-31 00:43:06 +00:00
Petr Skoda c3cd5e1db9 MDL-43344 upgrade to latest Flowplayer 2014-01-30 10:33:40 +08:00
AMOS bot 1f771e4103 Automatically generated installer lang files 2014-01-22 00:55:32 +00:00
AMOS bot cc18262792 Automatically generated installer lang files 2014-01-21 00:41:41 +00:00
AMOS bot ba7340108e Automatically generated installer lang files 2014-01-20 00:41:25 +00:00
AMOS bot 9dadea2557 Automatically generated installer lang files 2014-01-19 00:41:59 +00:00
AMOS bot 832d5b682d Automatically generated installer lang files 2014-01-16 00:43:20 +00:00
AMOS bot a2c9045867 Automatically generated installer lang files 2014-01-14 00:45:42 +00:00
Eloy Lafuente (stronk7) 76b9a9407f Moodle release 2.4.8 2014-01-11 15:57:17 +01:00
Damyon Wiese 532df04583 weekly release 2.4.7+ 2014-01-10 14:19:59 +08:00
Damyon Wiese f8d0e9ad5b Merge branch 'install_24_STABLE' of git://git.moodle.org/moodle-install into MOODLE_24_STABLE 2014-01-10 14:19:55 +08:00
Eloy Lafuente (stronk7) a4a01b4b96 MDL-36721 make upgrade queries cross-db 2014-01-10 11:24:52 +08:00
AMOS bot 93d224f333 Automatically generated installer lang files 2014-01-09 00:42:16 +00:00
Eloy Lafuente (stronk7) 09aa9e90b9 Merge branch 'wip-MDL-42310-24' of git://github.com/abgreeve/moodle into MOODLE_24_STABLE 2014-01-08 01:52:58 +01:00
Eloy Lafuente (stronk7) 143dc29e0d Merge branch 'm24_MDL-43508_Invalid_String_Identifier' of https://github.com/scara/moodle into MOODLE_24_STABLE 2014-01-08 00:46:31 +01:00
Dan Poltawski cf51a722c7 Merge branch 'm24_MDL-43482_Lot_Of_Passed_By_Reference_Messages' of https://github.com/scara/moodle into MOODLE_24_STABLE 2014-01-07 17:20:57 +08:00
Andrew Nicols 076792a3f1 MDL-43411 JavaScript: Correct checks for section support to use helper function 2014-01-07 12:51:01 +08:00
Dan Poltawski 32d89e0c0d Merge branch 'm24_MDL-40379_Prevent_Some_Mobile_Network_Providers_From_Modifying_Content' of https://github.com/scara/moodle into MOODLE_24_STABLE 2014-01-07 12:43:34 +08:00
Rajesh Taneja 8b2dca7427 MDL-42643 course: Member in same group should only loginas
If course groupmode is set to SEPARATEGROUPS, and user doesn't have
site:accessallgroups capability than only allow user to loginas if
current user is in same group as loginas user
2014-01-07 11:05:45 +08:00
Tony Butler a4720e016e MDL-43373 core_enrol: Display enrolments dimmed if outside of start or end times 2014-01-07 10:44:39 +08:00
Damyon Wiese f8acb4a7de Merge branch 'MDL-43448_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2014-01-07 09:15:08 +08:00
Tim Hunt 31a70002d3 MDL-43448 Links to the gradebook not fixed on restore.
Note we can only fix certain generic links, we can't handle ones like
/grade/report/{reportname}/index.php, but fortunately, we were only
using the generic ones.

I added a couple of other likely things too (badges and participants
list).
2014-01-06 12:31:28 +00:00
Damyon Wiese 506bae6791 Merge branch 'w01_MDL-36721_m24_passlog' of https://github.com/skodak/moodle into MOODLE_24_STABLE 2014-01-06 14:49:39 +08:00
Dan Poltawski e9576ab6b4 Merge branch '43349-24' of git://github.com/samhemelryk/moodle into MOODLE_24_STABLE 2014-01-06 14:21:50 +08:00
Rajesh Taneja a902db80d6 MDL-42883 Administration: Check sessionkey before taking action on user profile fields 2014-01-06 13:59:12 +08:00
Sam Hemelryk b8ac884f9d Merge branch 'MDL-37962_beep_24' of https://github.com/andyjdavis/moodle into MOODLE_24_STABLE 2014-01-06 11:17:47 +13:00
Sam Hemelryk 6e2745d238 Merge branch 'MDL-42212-24' of git://github.com/FMCorz/moodle into MOODLE_24_STABLE 2014-01-06 10:29:55 +13:00
Michael Milette b9bdec3f35 MDL-42310 feedback mod - Enable filtering of multichoice and multichoice rated controls
Conflicts:
	mod/feedback/item/multichoice/lib.php
	mod/feedback/item/multichoicerated/lib.php

Signed-off-by: Michael Milette <michael.milette@instruxmedia.com>
2014-01-03 10:35:41 +08:00
Sam Hemelryk 87f62d8e09 MDL-43349 cache: init now checks store requirements are met 2014-01-02 09:22:28 +13:00
AMOS bot 76f354d196 Automatically generated installer lang files 2013-12-30 00:43:27 +00:00
AMOS bot fb327938c9 Automatically generated installer lang files 2013-12-29 00:43:28 +00:00
Matteo Scaramuccia 6cafb62b1e MDL-40379 Files Prevent mobile network providers from modifying content. 2013-12-28 14:07:28 +01:00
Matteo Scaramuccia 73c8dc3692 MDL-43508 Quiz Invalid get_string() identifier. 2013-12-28 11:32:55 +01:00
Petr Škoda 6537f3525e MDL-36721 do not store passwords in config logs 2013-12-27 11:39:07 +08:00
AMOS bot 199ca97486 Automatically generated installer lang files 2013-12-25 00:42:53 +00:00
Matteo Scaramuccia adf8e5ce6e MDL-43482 Chat Lot of "Only variables should be passed by reference". 2013-12-24 11:12:17 +01:00
Sam Hemelryk 14d1f4e42e weekly release 2.4.7+ 2013-12-24 17:17:36 +13:00
Sam Hemelryk 52c4f06af3 Merge branch 'install_24_STABLE' of git://git.moodle.org/moodle-install into MOODLE_24_STABLE 2013-12-24 17:17:34 +13:00
Sam Hemelryk 27b1ba527a Merge branch 'MDL-41246-moodle24' of git://github.com/StudiUM/moodle into MOODLE_24_STABLE 2013-12-24 11:41:15 +13:00
Sam Hemelryk 085c2fd228 Merge branch 'MDL-43438-24' of git://github.com/FMCorz/moodle into MOODLE_24_STABLE 2013-12-24 11:22:37 +13:00
Sam Hemelryk 235b5a0c1d Merge branch 'MDL-43250-24' of git://github.com/damyon/moodle into MOODLE_24_STABLE 2013-12-24 11:03:51 +13:00
AMOS bot 04d6be9bb2 Automatically generated installer lang files 2013-12-23 12:40:16 +00:00
AMOS bot f66f661ce0 Automatically generated installer lang files 2013-12-23 12:26:30 +00:00
Sam Hemelryk 7f4fa839fe Merge branch 'MDL-35032-24' of git://github.com/FMCorz/moodle into MOODLE_24_STABLE 2013-12-23 15:57:25 +13:00
Sam Hemelryk faf4e51da9 Merge branch 'MDL-30195-24' of git://github.com/FMCorz/moodle into MOODLE_24_STABLE 2013-12-23 14:35:24 +13:00
Sam Hemelryk a7dae3ef8e Merge branch 'w52_MDL-43367_m24_contextpath' of https://github.com/skodak/moodle into MOODLE_24_STABLE 2013-12-23 14:31:18 +13:00
Sam Hemelryk a35428cf86 Merge branch 'MDL-34182-24' of git://github.com/andrewnicols/moodle into MOODLE_24_STABLE 2013-12-23 08:15:48 +13:00
Petr Škoda f06d89b2b5 MDL-43367 stop returning of bogus context children when path unknown
This also prevents deletion of system context.
2013-12-22 16:01:25 +08:00
Damyon Wiese 346ef562dc weekly release 2.4.7+ 2013-12-20 11:57:15 +08:00
Damyon Wiese 2718718464 Merge branch 'install_24_STABLE' of git://git.moodle.org/moodle-install into MOODLE_24_STABLE 2013-12-20 11:57:12 +08:00
Andrew Nicols 05c42f7539 MDL-34182 Repositories: Check for and warn on invalid output in the file picker 2013-12-19 10:29:56 +08:00
Andrew Nicols 05ca6dadf8 MDL-34182: Add functions to warn of output in AJAX scripts
We need to be able to capture output when including contributed code as it
may add additional content which makes makes the json we output invalid.

We only warn of these errors if the site is in debugdeveloper, otherwise
we silently drop them.
2013-12-19 10:29:56 +08:00
Eloy Lafuente (stronk7) 4226a54d53 Revert "MDL-43306 restore: fix grade item sortorder restoration"
This reverts commit bea3c273a3.
2013-12-19 02:15:51 +01:00
AMOS bot 02d052026c Automatically generated installer lang files 2013-12-19 00:44:18 +00:00
Jean-Philippe Gaudreau 19ef016778 MDL-41246 cache: Fix PHP notice of non well formed numeric values for the memcache store 2013-12-18 08:53:41 -05:00
Frederic Massart 5e64cff4f1 MDL-43438 mod_assignment: Prevent double inclusion of plugin files 2013-12-18 09:17:00 +01:00
Dan Poltawski e575b2f6d1 Merge branch 'MDL-41198-24' of https://github.com/mr-russ/moodle into MOODLE_24_STABLE 2013-12-18 15:00:11 +08:00
Russell Smith 3cc1d4b9fe MDL-41198 lib: Add comment about the changes to srand on adodb 2013-12-18 17:05:48 +11:00
Russell Smith a7b9ce4caf MDL-41198 lib: Allow PHP to generate random seed on script start
Most srand instances are removed to allow PHP to do the work.

srand was left for group randomization due to the method used.

Conflicts:

	lib/tests/accesslib_test.php
2013-12-18 17:05:09 +11:00
Russell Smith 17d617dc66 MDL-41198 lib: Allow PHP to generate random seed on script start
All mt_srand instances are removed to allow PHP to do the work.
2013-12-18 17:04:11 +11:00
Sam Hemelryk ceb23943ee Revert "MDL-42104: trap tab focus within dialog modal,"
This reverts commit 172321d7d8.
2013-12-18 15:54:21 +13:00
Russell Smith 44eaae9610 MDL-41292 cache: only update identifiers if they change 2013-12-18 02:23:55 +01:00
Sam Hemelryk 47358bdaa5 Merge branch 'MDL-42104_m24' of git://github.com/rwijaya/moodle into MOODLE_24_STABLE 2013-12-18 11:59:28 +13:00
Sam Hemelryk a39ff69d58 Merge branch 'MDL-38698-24' of git://github.com/FMCorz/moodle into MOODLE_24_STABLE 2013-12-18 09:21:10 +13:00
Eloy Lafuente (stronk7) c70955dfa9 Merge branch 'MDL-43306-24' of git://github.com/danpoltawski/moodle into MOODLE_24_STABLE 2013-12-17 10:29:51 +01:00
Frederic Massart 8187097dc0 MDL-38698 filter_urltolink: Remove performance test in Unit Test 2013-12-17 07:04:56 +01:00
Frederic Massart 3d947610a0 MDL-38698 filter_urltolink: Do not link the URL property of CSS 2013-12-17 07:04:56 +01:00
Marina Glancy 003638cb8d Merge branch 'MDL-37679-24' of git://github.com/phalacee/moodle into MOODLE_24_STABLE 2013-12-17 16:44:36 +11:00
Mark Nielsen c30533cfed MDL-37679 Course: Adding section to page title on section only pages 2013-12-17 11:43:14 +08:00
Marina Glancy 6af74e102c Merge branch 'MDL-41075-24' of git://github.com/mouneyrac/moodle into MOODLE_24_STABLE 2013-12-17 11:24:46 +11:00
Russell Smith 18559a0df6 MDL-39725 database: Add statistics collection functions
Conflicts:
	lib/dml/moodle_database.php
2013-12-17 10:29:32 +13:00
Russell Smith eb17e8ecd5 MDL-39725 database: Include stats collections in unit tests
Conflicts:
	lib/ddl/tests/ddl_test.php
2013-12-17 10:29:29 +13:00
Russell Smith 96e60a978e MDL-39725 database: Apply database statistics update to daily stats 2013-12-17 10:29:25 +13:00
Sam Hemelryk 1b5fea23bd Merge branch 'MDL-25473-24' of git://github.com/phalacee/moodle into MOODLE_24_STABLE 2013-12-17 08:53:38 +13:00
Sam Hemelryk 00621ce929 Merge branch 'MDL-34321-24' of git://github.com/phalacee/moodle into MOODLE_24_STABLE 2013-12-17 08:47:26 +13:00
Frederic Massart 1ed22de511 MDL-30195 portfolio_googledocs: Allow export of rich HTML 2013-12-16 11:05:46 +01:00
Frederic Massart 48ffd4c677 MDL-42212 mod_lesson: Localise area names 2013-12-16 06:50:02 +01:00
Frederic Massart 4a59b3b555 MDL-42212 mod_lesson: Fix callbacks retrieving activity files 2013-12-16 06:50:01 +01:00
Jerome Mouneyrac 00f2669025 MDL-41075 Remove "Choose..." option from participants page. 2013-12-16 12:09:01 +08:00
Sam Hemelryk 4d3ee68536 Merge branch 'wip-mdl-21180-m24' of https://github.com/rajeshtaneja/moodle into MOODLE_24_STABLE 2013-12-16 15:43:12 +13:00
Rajesh Taneja 0034080028 MDL-21180 Gradebook: Consistent handling of change in aggregation
Change from/to GRADE_AGGREGATE_WEIGHTED_MEAN and GRADE_AGGREGATE_EXTRACREDIT_MEAN was only
handled prior to this patch. GRADE_AGGREGATE_SUM and GRADE_AGGREGATE_WEIGHTED_MEAN2 also
behave similar and should be handled same way
2013-12-16 09:59:46 +08:00
Andrew Davis c8d061208d MDL-43188 core_message:reimplemented the beep on new message functionality from 1.9 2013-12-16 09:41:20 +08:00
Marina Glancy 5df656cadd Merge branch 'MDL-37972-24' of git://github.com/phalacee/moodle into MOODLE_24_STABLE 2013-12-16 12:29:19 +11:00
Sam Hemelryk 6a68b92cff Merge branch 'MDL-40096-24' of git://github.com/damyon/moodle into MOODLE_24_STABLE 2013-12-16 13:50:44 +13:00
Sam Hemelryk 1ce52ce8db Merge branch 'MDL-40436-24' of git://github.com/FMCorz/moodle into MOODLE_24_STABLE 2013-12-16 11:30:14 +13:00
Sam Hemelryk 7d07632f7a Merge branch 'w51_MDL-42931_m24_env27' of https://github.com/skodak/moodle into MOODLE_24_STABLE 2013-12-16 11:17:19 +13:00
Sam Hemelryk 34965b0d31 Merge branch 'MDL-42085-24' of git://github.com/mouneyrac/moodle into MOODLE_24_STABLE 2013-12-16 11:11:05 +13:00
AMOS bot 7105ca55cb Automatically generated installer lang files 2013-12-14 00:45:09 +00:00
Frederic Massart 0d3e293c5c MDL-35032 mod_book: 1.9 backup restore convertis files to book area 2013-12-13 10:26:26 +01:00
Petr Škoda f4776ae40a MDL-42931 set new requirements for 2.7 2013-12-13 14:08:21 +08:00
Sam Hemelryk c9a3d370c4 weekly release 2.4.7+ 2013-12-13 16:59:18 +13:00
Sam Hemelryk ebe7179a88 Merge branch 'install_24_STABLE' of git://git.moodle.org/moodle-install into MOODLE_24_STABLE 2013-12-13 16:59:16 +13:00
AMOS bot aec655131b Automatically generated installer lang files 2013-12-13 00:42:16 +00:00
Frederic Massart 0291a8b492 MDL-40436 block_course_list: Fix bad context resolution
We were trying to get the course context of a remote course
from a completely unrelated ID. It would sometimes work if the
ID was matching the one of a local course. In other places
we are not trying to find a context for the remote course, we
simply use the $PAGE context in format_string. So the usage
of the context has been removed here too.
2013-12-12 09:09:29 +01:00
Jerome Mouneyrac fca50b95ef MDL-42085 Enrol: Always apply enrolment duration.
Before the fix, the startdates and duration fields were integrated to HTML code only
when the user clicked on the collapsible region to see them.
It was wrong because their values were not sent by the form
if ever the user didn't expand this Enrolment options region.
2013-12-12 16:08:06 +08:00
Damyon Wiese 5506f0482c MDL-43250 Assign: separate groups mode fix
When in separate groups mode, only get graders in a group that is in the course module grouping.

Conflicts:

	mod/assign/locallib.php
	mod/assign/tests/locallib_test.php
2013-12-12 13:33:10 +08:00
Jason Fowler 410fff85d0 MDL-34321 Assignment2.2 - Fixing submission count 2013-12-12 10:36:07 +08:00
Eloy Lafuente (stronk7) 9a5af14929 MDL-31410 paypal: fix problem on notifications
This commit fixes a PHP warning about using a
unititialised variable and also the problems when
notifications are enabled and there is not yet a
teacher in the course, defaulting to admin for student
notifications and preventing teacher notifications to happen.
2013-12-12 02:03:41 +01:00
Eloy Lafuente (stronk7) a847569195 Merge branch 'w50_MDL-31410_m24_paypalipn' of https://github.com/skodak/moodle into MOODLE_24_STABLE 2013-12-12 01:17:53 +01:00
Marina Glancy 7cbba9b175 MDL-43218 blog: prepare the blog navigation only when needed 2013-12-11 15:38:07 +13:00
Simon Coggins c21708e5e4 MDL-43218 navigation: Remove link to blogs when they are disabled 2013-12-11 15:38:01 +13:00
Sam Hemelryk 133870d759 Merge branch 'wip-MDL-43279-m24' of git://github.com/marinaglancy/moodle into MOODLE_24_STABLE 2013-12-11 10:57:46 +13:00
Eloy Lafuente (stronk7) 690c28e94a Merge branch '24STABLE-wip-MDL-43135' of https://github.com/jennymgray/moodle into MOODLE_24_STABLE 2013-12-10 19:47:21 +01:00
Jenny Gray 82882a9034 MDL-43135 Guest Enrol: new language string for with key icon
AMOS BEGIN
CPY [pluginname,enrol_guest], [guestaccess_withpassword,enrol_guest]
CPY [pluginname,enrol_guest], [guestaccess_withoutpassword,enrol_guest]
AMOS END
2013-12-10 11:13:52 +00:00
rwijaya 172321d7d8 MDL-42104: trap tab focus within dialog modal,
for filepicker and filemanager
2013-12-10 15:48:48 +08:00
Sam Chaffee bf139ab2c2 MDL-37972 Assignment: fixing settings link for upload single submissions 2013-12-10 14:09:15 +08:00
Dan Poltawski bea3c273a3 MDL-43306 restore: fix grade item sortorder restoration
Previously, restore was blindly inserting the old sort order into the
database, causing duplicate sortorders which lead to unpredicatble
sorting results.

Now we will use the api function to add it after the original sortorder,
this means if a duplicate exists in the original location, this item
will appear after it.
2013-12-10 12:33:52 +08:00
Marina Glancy 143c8e7489 Merge branch 'm24_MDL-43082_IE9_Compat_View_SVG_Say_No' of https://github.com/scara/moodle into MOODLE_24_STABLE 2013-12-10 14:48:25 +11:00
Marina Glancy 10f476e3a5 Merge branch 'MDL-43131_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2013-12-10 14:13:30 +11:00
Jason Fowler de1982ca05 MDL-25473 mediaplayer - prevent embedded videos from looping 2013-12-10 10:42:41 +08:00
Marina Glancy 79205746bc MDL-43279 block_blog_recent: fixed undefined property notice 2013-12-10 09:30:41 +11:00
Sam Hemelryk 71e7d2552b Merge branch 'm24_MDL-43019' of git://github.com/danmarsden/moodle into MOODLE_24_STABLE 2013-12-10 08:28:35 +13:00
Eloy Lafuente (stronk7) 2c4120360a Merge branch 'MDL-40003-24' of git://github.com/FMCorz/moodle into MOODLE_24_STABLE 2013-12-09 16:24:53 +01:00
Sam Chaffee 780a21f62a MDL-40003 mod_assign: Fixed submission comments not being restored 2013-12-09 11:04:02 +01:00
Damyon Wiese 9b378f3dc5 MDL-40096 assign: Prevent js error because uniqid() is not unique.
Use html_writer::random_id instead because it incorporates a static counter.
2013-12-09 10:27:34 +08:00
Marina Glancy ada23f968a Merge branch 'MDL-39618-24' of git://github.com/danpoltawski/moodle into MOODLE_24_STABLE 2013-12-09 11:03:30 +11:00
Petr Škoda 1da6855d1c MDL-31410 always send 200 in PayPal IPN response and hide all errors 2013-12-06 10:06:20 +08:00
Matteo Scaramuccia 3f007ca625 MDL-43082 Themes IE 9 Compatibility View doesn't support SVG. 2013-12-05 16:03:19 +01:00
Tim Hunt 71660782eb MDL-43131 qbank: Fix show question text when first viewing.
When you followed the link to the question bank, the checkbox for the
"Show question text in the question list" option correctly reflected the
user's preference, but what was actually shown in the question bank did
not.
2013-12-05 11:13:50 +00:00
Sam Hemelryk 8c5ca6531b MDL-39575 install: better handling of database creation error.
Implemented better handling of DML exceptions.
Added translation for cannotcreatedb exception.
2013-12-05 16:20:00 +08:00
Dan Poltawski 98f4a31ce0 weekly release 2.4.7+ 2013-12-05 15:09:59 +08:00
Dan Poltawski 9aeef50434 Merge branch 'install_24_STABLE' of git://git.moodle.org/moodle-install into MOODLE_24_STABLE 2013-12-05 15:09:56 +08:00
Dan Poltawski a6a85dc49b Merge branch 'MDL-43068_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2013-12-05 09:34:04 +08:00
Dan Marsden f2858a669a MDL-43019 SCORM: always use iframe instead of object - backported from 2.6 - fixes issue with IE 11 SCORM packages not loading 2013-12-05 13:15:04 +13:00
Tim Hunt 2c7a4204e7 MDL-43068 course&gradebook: fix use of new API in old branches. 2013-12-04 15:40:00 +00:00
AMOS bot 8ecbc00c77 Automatically generated installer lang files 2013-12-04 00:43:17 +00:00
Eloy Lafuente (stronk7) 45c03504ad Merge branch 'MDL-41446-m24' of git://github.com/sammarshallou/moodle into MOODLE_24_STABLE 2013-12-03 23:56:02 +01:00
Mark Nelson e7698992b7 MDL-43142 mnet: fixed typo in variable passed to get_string 2013-12-03 23:42:04 +01:00
Mark Nelson 309481dde0 MDL-43140 mnet: display header after redirects to avoid warning 2013-12-03 23:26:11 +01:00
Eloy Lafuente (stronk7) 532a6ba83c Merge branch 'moodle24-mdl33971' of https://github.com/tlock/moodle into MOODLE_24_STABLE 2013-12-03 17:37:15 +01:00
James Pratt 5267a05191 MDL-43079 quiz statistics : fix stats graph when all grades zero 2013-12-03 17:07:22 +01:00
Damyon Wiese 7183b0f995 Merge branch 'wip-mdl-43048-m24' of https://github.com/rajeshtaneja/moodle into MOODLE_24_STABLE 2013-12-03 11:44:28 +08:00
Damyon Wiese 16d88af2ab MDL-42904: Self enrol. Fix sloppy version numbers 2013-12-03 11:21:40 +08:00
Damyon Wiese cf569389ab Merge branch 'wip-mdl-42904-m24' of https://github.com/rajeshtaneja/moodle into MOODLE_24_STABLE 2013-12-03 11:20:47 +08:00
Sam Hemelryk dc76ce70b2 Merge branch 'w48_MDL-41819_m24_maxinputvars' of https://github.com/skodak/moodle into MOODLE_24_STABLE 2013-12-03 09:57:03 +13:00
Damyon Wiese 4818244d27 Merge branch 'm24_MDL-43039_SessionDiskFull_False_Positive' of https://github.com/scara/moodle into MOODLE_24_STABLE 2013-12-02 14:35:53 +08:00
Dan Poltawski 838a2120fb Merge branch 'wip-MDL-40191-m24' of git://github.com/marinaglancy/moodle into MOODLE_24_STABLE 2013-12-02 11:19:49 +08:00
Dan Poltawski d8d43cdc18 Merge branch 'MDL-43068_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2013-12-02 11:11:12 +08:00
AMOS bot e623b9afcc Automatically generated installer lang files 2013-12-02 00:42:58 +00:00
Petr Škoda db217f006c MDL-41819 try to work around max_input_vars restriction 2013-12-02 08:30:47 +08:00
Marina Glancy 60aae880a4 MDL-40191 navigation: do not throw an error if activity is not visible
navigationlib is not the place to check it, let the page itself decide what to do in this case
2013-12-02 10:50:20 +11:00
David Mudrák 22bf788f6b MDL-40191 MDLSITE-2455 Do not throw coding exception when the activity is not found
Under certain conditions, coding exception is thrown when fetching items from
the navigation bar. The patch prevents them. See more details in the tracker.
2013-12-02 10:50:20 +11:00
Sam Hemelryk 7842d36f71 MDL-43033 cache: added stats logging to set_many methods 2013-12-02 09:29:32 +13:00
Sam Hemelryk fc9a82669f MDL-43033 pix: backport warning icon 2013-12-02 09:29:32 +13:00
Sam Hemelryk e88938d9cc MDL-43033 cache: fixed display of definition stores in admin interface 2013-12-02 09:29:31 +13:00
Sam Hemelryk d7b0846147 MDL-43033 cache: added a warning icon for mappings
We now show a warning icon with an explanatory alt if the user
has mapped a store as a mode default that doesn't not fulfill the
requirements of every known definition.
2013-12-02 09:29:31 +13:00
Sam Hemelryk 95b732848e MDL-43033 cache: fixed mode map event invalidation scenario 2013-12-02 09:29:31 +13:00
Sam Hemelryk afab006332 MDL-43033 cache: added stats logging to get_many methods 2013-12-02 09:29:31 +13:00
Matteo Scaramuccia 71d414b090 MDL-43039 Libraries "The session partition is full." false positive. 2013-11-30 14:32:24 +01:00
Dan Poltawski 828aff67d9 weekly release 2.4.7+ 2013-11-29 12:52:44 +08:00
Dan Poltawski 83f506da1e Merge branch 'install_24_STABLE' of git://git.moodle.org/moodle-install into MOODLE_24_STABLE 2013-11-29 12:52:42 +08:00
Tim Hunt 553672355c MDL-43068 course&gradebook: show/hide cm & CONTROLS_GRADE_VISIBILITY
Making a quiz visible on the course page, of via the settings form,
could cause the grade item to become visible in the gradebook, even
though the quiz supports FEATURE_CONTROLS_GRADE_VISIBILITY to ensure
that when the grades are hidden in the quiz settings, they do not appear
in the gradebook.

Now, if a module supports FEATURE_CONTROLS_GRADE_VISIBILITY, then
set_coursemodule_visible calls the _grade_item_update callback to update
the grade item(s).

In addition, there was a bug when saving the quiz form, where it used
the value of $cm->visible from the database, which was wrong if the
value of cm->visible had just been changed on the setting form.
2013-11-28 10:03:56 +00:00
AMOS bot eaccc920db Automatically generated installer lang files 2013-11-28 09:12:45 +00:00
Tim Lock 416d7a94be MDL-33971: When viewing course log entries for Quiz View Summary a number is displayed not the quiz name 2013-11-28 07:50:42 +10:30
Rajesh Taneja 70f62d8944 MDL-43048 block_tags: Initalised content->text for tags block 2013-11-27 14:38:07 +08:00
Dan Poltawski c96069566a Merge branch 'wip-mdl-41635-m24' of git://github.com/rajeshtaneja/moodle into MOODLE_24_STABLE 2013-11-27 11:14:52 +08:00
Rajesh Taneja da568835a5 MDL-41635 Report: Added string to action link for display 2013-11-27 09:56:34 +08:00
Tim Lock 9bd1ba9ee6 MDL-42998: Fix user selection search options autoselectunique. 2013-11-27 09:09:52 +08:00
AMOS bot f0cfc08699 Automatically generated installer lang files 2013-11-27 00:48:27 +00:00
Eloy Lafuente (stronk7) 62daeecc11 Merge branch 'm24_MDL-43045' of git://github.com/totara/moodle into MOODLE_24_STABLE 2013-11-26 21:30:46 +01:00
Dan Poltawski 7d784e4ade Merge branch 'MDL-43000_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2013-11-26 15:06:41 +08:00
Dan Poltawski e5ca507c6e Merge branch 'wip-mdl-41635-m24' of git://github.com/rajeshtaneja/moodle into MOODLE_24_STABLE 2013-11-26 10:25:05 +08:00
Sam Hemelryk 10123d02f6 Merge branch 'MDL-43005-24' of git://github.com/ankitagarwal/moodle into MOODLE_24_STABLE 2013-11-26 08:41:48 +13:00
Simon Coggins 3476a15b0f MDL-43045 report: Fix missing role name in security overview report 2013-11-26 08:24:09 +13:00
Damyon Wiese 689c45e54e Merge branch 'wip-MDL-41257-24' of git://github.com/abgreeve/moodle into MOODLE_24_STABLE 2013-11-25 13:47:10 +08:00
Dan Poltawski 117c147757 Merge branch 'w48_MDL-37016_m24_sloppymysql' of https://github.com/skodak/moodle into MOODLE_24_STABLE 2013-11-25 13:41:00 +08:00
Damyon Wiese 45d9d6d710 Merge branch 'wip-mdl-42924-m24' of https://github.com/rajeshtaneja/moodle into MOODLE_24_STABLE 2013-11-25 13:17:13 +08:00
Dan Poltawski 717612c7aa Merge branch 'MDL-42547_m24' of https://github.com/markn86/moodle into MOODLE_24_STABLE 2013-11-25 10:37:40 +08:00
Rajesh Taneja ccdfa44df0 MDL-42904 self_enrol: Set customint1 if it's null 2013-11-25 10:10:48 +08:00
Eloy Lafuente (stronk7) 0ecaebd487 Merge branch 'wip-MDL-29071-m24' of git://github.com/marinaglancy/moodle into MOODLE_24_STABLE 2013-11-24 16:51:37 +01:00
Petr Škoda 709752225c MDL-37016 fix sloppy mysql nulls in event.uuid 2013-11-24 15:13:27 +08:00
Tim Hunt 70127f1f3c MDL-43000 shortanswer qtype: handle patterns with many *s
Teachers were typing patterns like
********************************<em>****************************</em>
which translates into a pattern like .*.*.*.*, which is very inefficient
to try to match, althought it is equivalent ot a single .*. At a certain
point preg was just giving up.

Since people actually do this, we should simplify the regex by treating
runs of * like a single *.
2013-11-22 11:34:38 +00:00
Eloy Lafuente (stronk7) a61d4eff50 weekly release 2.4.7+ 2013-11-21 19:33:30 +01:00
Eloy Lafuente (stronk7) 9c3bfbfa3f Merge branch 'install_24_STABLE' of git://git.moodle.org/moodle-install into MOODLE_24_STABLE 2013-11-21 19:33:25 +01:00
Ankit Agarwal 9e46c17505 MDL-43005 blogs: Fix issues with blog tags 2013-11-21 13:39:43 +08:00
Marina Glancy 6cf0f60c7d MDL-29071 ddl: unittest for objects name length 2013-11-21 12:41:03 +11:00
Marina Glancy f0a9fb36a3 MDL-29071 ddl: make sure object name never exceeds max length
Many thanks to Ray Bon for finding the problem
2013-11-21 12:40:58 +11:00
Mark Nelson 8fb24d2b43 MDL-42547 tool_uploaduser: trim values before uploading users 2013-11-20 00:38:14 -08:00
FilipBenco 7da998aee8 MDL-41635 Reports: Added missing string in loglive reports
Under course administration navigation log live doesn't appear
or appear with empty string (in some themes), this is happening
because text passed is empty.
2013-11-20 11:29:23 +08:00
Marina Glancy c577657600 Merge branch 'MDL-42767-24' of git://github.com/ankitagarwal/moodle into MOODLE_24_STABLE 2013-11-20 13:24:29 +11:00
Michael Milette 4dba407997 MDL-41257 calendar: Day and Upcoming-Events view not processed through text_filters() function
This fix adds text filtering to the Calendar Day view and Upcoming Events view, specifically the event name and event description.

Signed-off-by: Michael Milette <michael.milette@instruxmedia.com>
2013-11-20 10:18:20 +08:00
Rajesh Taneja 183c7cb3f5 MDL-42924 Administration: use normalize_component to extract plugin name and type 2013-11-19 12:02:16 +08:00
Sam Hemelryk 5ba78ea1ff MDL-42060 block_course_list: fixed sorting of mycourses 2013-11-19 10:42:20 +08:00
Dan Poltawski b6ebf8d770 Merge branch 'MDL-42181_24' of git://github.com/mkassaei/moodle into MOODLE_24_STABLE 2013-11-19 10:07:09 +08:00
Damyon Wiese 199e6445f8 Merge branch 'm24_MDL-40223' of git://github.com/danmarsden/moodle into MOODLE_24_STABLE 2013-11-19 09:51:53 +08:00
AMOS bot 3cf10869b6 Automatically generated installer lang files 2013-11-19 00:40:30 +00:00
Dan Marsden 2e0a4ca447 MDL-40223 SCORM: pass limit into function instead of hardcoding to allow cross-db 2013-11-19 13:31:33 +13:00
Sam Hemelryk 12bba6cc09 Merge branch 'MDL-41316-24' of git://github.com/ankitagarwal/moodle into MOODLE_24_STABLE 2013-11-19 12:27:45 +13:00
Sam Hemelryk c53ee31d46 Merge branch 'MDL-42863_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2013-11-19 12:03:14 +13:00
Sam Hemelryk 7bfd342445 Merge branch 'MDL-42865_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2013-11-19 11:50:23 +13:00
Sam Hemelryk 7d181fd82d Merge branch 'MDL-42853-24' of git://github.com/FMCorz/moodle into MOODLE_24_STABLE 2013-11-19 10:07:49 +13:00
Ankit Agarwal 34f1a739f1 MDL-42767 notes: Delete notes on a course delete 2013-11-18 16:09:16 +08:00
Dan Poltawski f7a061c2c1 Merge branch 'MDL-42880b_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2013-11-18 15:38:50 +08:00
Damyon Wiese 67c0ced049 Merge branch 'm24_MDL-41695' of git://github.com/danmarsden/moodle into MOODLE_24_STABLE 2013-11-18 15:21:37 +08:00
Dan Marsden 0b0e98d794 MDL-41695 SCORM: allow unlimited decimal places in CMIDecimal 2013-11-18 10:30:15 +13:00
Dan Marsden e0a4008f4e MDL-40223 SCORM: update scorm->launch param after restore - also check that scorm->launch is valid. 2013-11-18 09:54:39 +13:00
Tim Hunt cade07b451 MDL-42880 quiz settings: remove unnecessary disabledif rules.
These rules were causing problems in the case where the form was
sumitted with validation errors. In that case, the During the attempt ->
The attempt checkbox was becoming unset, and hence the other During the
attmept checkboxes became disabled, and the values were not saved.

Thanks to Sam Marshall for suggesting this fix.
2013-11-15 19:20:20 +00:00
M Kassaei 00d737bbe8 MDL-42181 quiz nav: highight all buttons when all Qs on one page 2013-11-15 16:33:45 +00:00
Tim Hunt 24e3e96a78 MDL-42865 Make XMLDB foreign key check more robust.
Otherwise, installing one bad add-on can completely break this report.
2013-11-15 14:57:30 +00:00
Tim Hunt 6c6ae7361c MDL-42863 make capabilities overview more fault-tolerant. 2013-11-15 14:57:18 +00:00
Eloy Lafuente (stronk7) 9f887be6a6 weekly release 2.4.7+ 2013-11-15 11:14:49 +01:00
Eloy Lafuente (stronk7) c250a0d330 Merge branch 'install_24_STABLE' of git://git.moodle.org/moodle-install into MOODLE_24_STABLE 2013-11-15 11:14:44 +01:00
Frederic Massart 546a27cb50 MDL-42912 mod_glossary: Fix typo and call to core_text 2013-11-15 09:43:44 +01:00
Eloy Lafuente (stronk7) edab808254 Merge branch 'wip-MDL-42912-m24' of git://github.com/marinaglancy/moodle into MOODLE_24_STABLE 2013-11-15 02:07:01 +01:00
Marina Glancy 3d4c212f85 MDL-42912 glossary: oracle-compatibility of SQL queries 2013-11-15 11:54:44 +11:00
Frederic Massart 48488ae1d7 MDL-42853 theme: Fix incorrect CSS select and place right rules 2013-11-14 09:46:53 +08:00
AMOS bot dd031e7462 Automatically generated installer lang files 2013-11-14 00:45:23 +00:00
Damyon Wiese 28177a0a07 Merge branch 'MDL-42598_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2013-11-13 14:35:20 +08:00
Damyon Wiese 2847f9c8fc Merge branch 'MDL-33536-24' of git://github.com/damyon/moodle into MOODLE_24_STABLE 2013-11-13 13:12:19 +08:00
Ankit Agarwal a761cef6df MDL-41316 tool_spamcleaner: AS keyword is not allowed in sql qeries for table alias as Oracle doesn't support it 2013-11-13 11:32:18 +08:00
Damyon Wiese 3699331396 MDL-33536 Navigation: Add missing require_once for safety. 2013-11-13 10:05:37 +08:00
AMOS bot 1ef6b2298e Automatically generated installer lang files 2013-11-13 00:47:35 +00:00
Eloy Lafuente (stronk7) f77c1d2098 Merge branch 'MDL-42839-m24' of git://github.com/sammarshallou/moodle into MOODLE_24_STABLE 2013-11-13 01:10:39 +01:00
Marina Glancy 61a9dd5cd9 Merge branch 'MDL-38574_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2013-11-13 11:06:38 +11:00
Eloy Lafuente (stronk7) e39e0243b2 Merge branch 'wip_24_mdl-42723' of https://github.com/iarenaza/moodle into MOODLE_24_STABLE 2013-11-13 00:53:23 +01:00
Eloy Lafuente (stronk7) ef2a27eac1 Merge branch 'wip-MDL-42672-m24' of git://github.com/marinaglancy/moodle into MOODLE_24_STABLE 2013-11-12 20:07:22 +01:00
sam marshall 903c5bf341 MDL-42839 MUC: Memcache server configuration too sensitive to whitespace 2013-11-12 12:40:09 +00:00
Marina Glancy 32ef8734a9 Merge branch 'MDL-42540_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2013-11-12 14:50:08 +11:00
Damyon Wiese e87d98d541 Merge branch '42806-24' of git://github.com/samhemelryk/moodle into MOODLE_24_STABLE 2013-11-12 10:05:18 +08:00
AMOS bot eba496e2ae Automatically generated installer lang files 2013-11-12 00:53:15 +00:00
Eloy Lafuente (stronk7) 715cd44d3a Merge branch 'MDL-40481_24' of git://github.com/timhunt/moodle into MOODLE_24_STABLE 2013-11-12 00:41:46 +01:00
Tim Hunt 50a946f5bb MDL-42598 quiz variant randomisation not random enough.
A student would get the same question variants (for example for a
calculated question) on their first attempt at both copies of a
duplicated quiz.
2013-11-11 14:15:36 +00:00
Tim Hunt 50e9f0e048 MDL-42540 quiz manual grading should have setType 2013-11-11 14:15:25 +00:00
Tim Hunt bf2324ef15 MDL-40481 quiz responses report needs cols need text_sorting 2013-11-11 14:15:14 +00:00
Tim Hunt 53d3cd568c MDL-38574 qtype chooser: quick fix to make it fit on-screen.
MDL-32729 will provide a better fix for this, but we may as well apply
this quick fix on stable branches.
2013-11-11 14:15:02 +00:00
Marina Glancy 49202ec3e6 NOBUG: convert tabs to whitespaces 2013-11-11 21:27:08 +11:00
Marina Glancy 42d72f3297 Merge branch 'MDL-42043-24' of git://github.com/FMCorz/moodle into MOODLE_24_STABLE 2013-11-11 21:11:29 +11:00
Sam Hemelryk be56d390b7 MDL-42806 block_mentees: can only be docked if it has a valid title set. 2013-11-11 17:23:51 +08:00
Frederic Massart 2f5768b983 MDL-42043 theme: Use $theme instead of $OUTPUT for pix_url()
Conflicts:

	theme/afterburner/lib.php
2013-11-11 13:20:19 +08:00
Renaat Debleu 65930a0593 MDL-42795 course: fixed param course in sql
course_sections has course field and not courseid, hence replaced it with course.
2013-11-11 10:49:39 +08:00
Marina Glancy 62b41d8dda MDL-42672 blocks: warnings on /mod/xxx/index.php for frontpage course 2013-11-06 12:32:17 +11:00
Iñaki Arenaza bcad5fa2de MDL-42723: Hide and handle LDAP error when user not in context being checked
MDL-41304 only fixed the case when 'Search subcontext' is enabled. We need to
fix the case when it's not enabled too.

While silencing errors with an @ should be avoided if possible, there's no
other way to prevent the warnings in this case.
2013-11-05 17:13:16 +01:00
Sam Hemelryk 5b09d5e8cf MDL-33536 navigation: hide hidden categories from the navbar
Conflicts:
	lib/navigationlib.php
2013-10-31 17:13:44 +08:00
sam marshall 2d124e8f4e MDL-41446 Completion: Incorrectly marks complete when grade data present with no actual grade 2013-09-06 13:03:28 +01:00
303 changed files with 4533 additions and 1147 deletions
+123
View File
@@ -1007,4 +1007,127 @@
</PHP_SETTING>
</PHP_SETTINGS>
</MOODLE>
<MOODLE version="2.7" requires="2.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="5.5.31" />
<VENDOR name="mysql" version="5.5.31" />
<VENDOR name="postgres" version="9.1" />
<VENDOR name="mssql" version="10.0" />
<VENDOR name="oracle" version="10.2" />
</DATABASE>
<PHP version="5.4.4" 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="optional">
<FEEDBACK>
<ON_CHECK message="opensslrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlrpc" level="optional">
<FEEDBACK>
<ON_CHECK message="xmlrpcrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="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="intl" level="optional">
<FEEDBACK>
<ON_CHECK message="intlrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="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="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
<FEEDBACK>
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+7 -5
View File
@@ -16,8 +16,6 @@ require_login();
admin_externalpage_setup('ssoaccesscontrol');
echo $OUTPUT->header();
if (!extension_loaded('openssl')) {
print_error('requiresopenssl', 'mnet');
}
@@ -65,9 +63,11 @@ if (!empty($action) and confirm_sesskey()) {
if (mnet_update_sso_access_control($idrec->username, $idrec->mnet_host_id, $accessctrl)) {
if ($accessctrl == 'allow') {
redirect('access_control.php', get_string('ssl_acl_allow','mnet', array('uset'=>$idrec->username, 'host'=>$mnethosts[$idrec->mnet_host_id])));
} elseif ($accessctrl == 'deny') {
redirect('access_control.php', get_string('ssl_acl_deny','mnet', array('user'=>$idrec->username, 'host'=>$mnethosts[$idrec->mnet_host_id])));
redirect('access_control.php', get_string('ssl_acl_allow','mnet', array('user' => $idrec->username,
'host' => $mnethosts[$idrec->mnet_host_id])));
} else if ($accessctrl == 'deny') {
redirect('access_control.php', get_string('ssl_acl_deny','mnet', array('user' => $idrec->username,
'host' => $mnethosts[$idrec->mnet_host_id])));
}
}
break;
@@ -118,6 +118,8 @@ if ($form = data_submitted() and confirm_sesskey()) {
exit;
}
echo $OUTPUT->header();
// Explain
echo $OUTPUT->box(get_string('ssoacldescr','mnet'));
// Are the needed bits enabled?
+9 -3
View File
@@ -139,9 +139,15 @@ if ($capability) {
// Put the contexts into a tree structure.
foreach ($contexts as $conid => $con) {
$context = context::instance_by_id($conid);
$parentcontextid = get_parent_contextid($context);
if ($parentcontextid) {
$contexts[$parentcontextid]->children[] = $conid;
try {
$parentcontext = $context->get_parent_context();
if ($parentcontext) { // Will be false if $context is the system context.
$contexts[$parentcontext->id]->children[] = $conid;
}
} catch (dml_missing_record_exception $e) {
// Ignore corrupt context tree structure here. Don't let it break
// showing the rest of the report.
continue;
}
}
@@ -46,7 +46,7 @@ class tool_qeupgradehelper_extract_options_form extends moodleform {
$qtypes = get_plugin_list('qtype');
foreach ($qtypes as $qtype => $notused) {
$qtypes[$qtype] = get_string($qtype, 'qtype_' . $qtype);
$qtypes[$qtype] = get_string('pluginname', 'qtype_' . $qtype);
}
$mform->addElement('header', 'h1', 'Either extract a specific question_session');
+6 -6
View File
@@ -179,12 +179,12 @@ function search_spammers($keywords) {
$conditions7 = '( '.implode(' OR ', $keywordfull7).' )';
$sql = "SELECT * FROM {user} WHERE deleted = 0 AND id <> :userid AND $conditions"; // Exclude oneself
$sql2 = "SELECT u.*, p.summary FROM {user} AS u, {post} AS p WHERE $conditions2 AND u.deleted = 0 AND u.id=p.userid AND u.id <> :userid";
$sql3 = "SELECT u.*, p.subject as postsubject FROM {user} AS u, {post} AS p WHERE $conditions3 AND u.deleted = 0 AND u.id=p.userid AND u.id <> :userid";
$sql4 = "SELECT u.*, c.content FROM {user} AS u, {comments} AS c WHERE $conditions4 AND u.deleted = 0 AND u.id=c.userid AND u.id <> :userid";
$sql5 = "SELECT u.*, m.fullmessage FROM {user} AS u, {message} AS m WHERE $conditions5 AND u.deleted = 0 AND u.id=m.useridfrom AND u.id <> :userid";
$sql6 = "SELECT u.*, fp.message FROM {user} AS u, {forum_posts} AS fp WHERE $conditions6 AND u.deleted = 0 AND u.id=fp.userid AND u.id <> :userid";
$sql7 = "SELECT u.*, fp.subject FROM {user} AS u, {forum_posts} AS fp WHERE $conditions7 AND u.deleted = 0 AND u.id=fp.userid AND u.id <> :userid";
$sql2 = "SELECT u.*, p.summary FROM {user} u, {post} p WHERE $conditions2 AND u.deleted = 0 AND u.id=p.userid AND u.id <> :userid";
$sql3 = "SELECT u.*, p.subject as postsubject FROM {user} u, {post} p WHERE $conditions3 AND u.deleted = 0 AND u.id=p.userid AND u.id <> :userid";
$sql4 = "SELECT u.*, c.content FROM {user} u, {comments} c WHERE $conditions4 AND u.deleted = 0 AND u.id=c.userid AND u.id <> :userid";
$sql5 = "SELECT u.*, m.fullmessage FROM {user} u, {message} m WHERE $conditions5 AND u.deleted = 0 AND u.id=m.useridfrom AND u.id <> :userid";
$sql6 = "SELECT u.*, fp.message FROM {user} u, {forum_posts} fp WHERE $conditions6 AND u.deleted = 0 AND u.id=fp.userid AND u.id <> :userid";
$sql7 = "SELECT u.*, fp.subject FROM {user} u, {forum_posts} fp WHERE $conditions7 AND u.deleted = 0 AND u.id=fp.userid AND u.id <> :userid";
$spamusers_desc = $DB->get_recordset_sql($sql, $params);
$spamusers_blog = $DB->get_recordset_sql($sql2, $params);
+5 -4
View File
@@ -231,10 +231,10 @@ if ($formdata = $mform2->is_cancelled()) {
$user->$key['text'] = $value;
$user->$key['format'] = FORMAT_MOODLE;
} else {
$user->$key = $value;
$user->$key = trim($value);
}
} else {
$user->$key = $value;
$user->$key = trim($value);
}
if (in_array($key, $upt->columns)) {
@@ -870,6 +870,7 @@ if ($formdata = $mform2->is_cancelled()) {
if ($rid) {
// find duration
$timeend = 0;
if (!empty($user->{'enrolperiod'.$i})) {
$duration = (int)$user->{'enrolperiod'.$i} * 60*60*24; // convert days to seconds
if ($duration > 0) { // sanity check
@@ -1001,7 +1002,7 @@ while ($linenum <= $previewrows and $fields = $cir->next()) {
$rowcols = array();
$rowcols['line'] = $linenum;
foreach($fields as $key => $field) {
$rowcols[$filecolumns[$key]] = s($field);
$rowcols[$filecolumns[$key]] = s(trim($field));
}
$rowcols['status'] = array();
@@ -1027,7 +1028,7 @@ while ($linenum <= $previewrows and $fields = $cir->next()) {
}
if (isset($rowcols['city'])) {
$rowcols['city'] = trim($rowcols['city']);
$rowcols['city'] = $rowcols['city'];
if (empty($rowcols['city'])) {
$rowcols['status'][] = get_string('fieldrequired', 'error', 'city');
}
@@ -53,6 +53,8 @@ class check_foreign_keys extends XMLDBCheckAction {
'noviolatedforeignkeysfound' => 'tool_xmldb',
'violatedforeignkeysfound' => 'tool_xmldb',
'violations' => 'tool_xmldb',
'unknowntable' => 'tool_xmldb',
'unknownfield' => 'tool_xmldb',
));
}
@@ -75,6 +77,19 @@ class check_foreign_keys extends XMLDBCheckAction {
}
$o.=' <li>' . $this->str['key'] . ': ' . $xmldb_key->readableInfo() . ' ';
$reftable = $xmldb_key->getRefTable();
if (!$dbman->table_exists($reftable)) {
$o.='<font color="red">' . $this->str['unknowntable'] . '</font>';
// Add the missing index to the list
$violation = new stdClass();
$violation->string = 'fkunknowntable';
$violation->table = $xmldb_table;
$violation->key = $xmldb_key;
$violation->reftable = $reftable;
$violatedkeys[] = $violation;
continue;
}
// Work out the SQL to find key violations.
$keyfields = $xmldb_key->getFields();
$reffields = $xmldb_key->getRefFields();
@@ -82,6 +97,19 @@ class check_foreign_keys extends XMLDBCheckAction {
$nullnessconditions = array();
$params = array();
foreach ($keyfields as $i => $field) {
if (!$dbman->field_exists($reftable, $reffields[$i])) {
$o.='<font color="red">' . $this->str['unknownfield'] . '</font>';
// Add the missing index to the list
$violation = new stdClass();
$violation->string = 'fkunknownfield';
$violation->table = $xmldb_table;
$violation->key = $xmldb_key;
$violation->reftable = $reftable;
$violation->reffield = $reffields[$i];
$violatedkeys[] = $violation;
continue 2;
}
$joinconditions[] = 't1.' . $field . ' = t2.' . $reffields[$i];
$xmldb_field = $xmldb_table->getField($field);
$default = $xmldb_field->getDefault();
@@ -97,7 +125,7 @@ class check_foreign_keys extends XMLDBCheckAction {
}
$nullnessconditions[] = 't2.id IS NULL';
$sql = 'SELECT count(1) FROM {' . $xmldb_table->getName() .
'} t1 LEFT JOIN {' . $xmldb_key->getRefTable() . '} t2 ON ' .
'} t1 LEFT JOIN {' . $reftable . '} t2 ON ' .
implode(' AND ', $joinconditions) . ' WHERE ' .
implode(' AND ', $nullnessconditions);
@@ -109,6 +137,7 @@ class check_foreign_keys extends XMLDBCheckAction {
$o.='<font color="red">' . $this->str['violations'] . '</font>';
// Add the missing index to the list
$violation = new stdClass;
$violation->string = 'fkviolationdetails';
$violation->table = $xmldb_table;
$violation->key = $xmldb_key;
$violation->numviolations = $violations;
@@ -145,8 +174,11 @@ class check_foreign_keys extends XMLDBCheckAction {
$violation->tablename = $violation->table->getName();
$violation->keyname = $violation->key->getName();
$r.= ' <li>' .get_string('fkviolationdetails', 'tool_xmldb', $violation) .
'<pre>' . s($violation->sql) . '; ' . s($violation->sqlparams) . '</pre></li>';
$r.= ' <li>' .get_string($violation->string, 'tool_xmldb', $violation);
if (!empty($violation->sql)) {
$r.= '<pre>' . s($violation->sql) . '; ' . s($violation->sqlparams) . '</pre>';
}
$r.= '</li>';
}
$r.= ' </ul>';
} else {
+4
View File
@@ -106,6 +106,8 @@ $string['fieldsusedinindex'] = 'This field is used as index';
$string['fieldsusedinkey'] = 'This field is used as key.';
$string['filemodifiedoutfromeditor'] = 'Warning: File locally modified while using the XMLDB Editor. Saving will overwrite local changes.';
$string['filenotwriteable'] = 'File not writeable';
$string['fkunknownfield'] = 'Foreign key {$a->keyname} on table {$a->tablename} points to a non-existent field {$a->reffield} in referenced table {$a->reftable}.';
$string['fkunknowntable'] = 'Foreign key {$a->keyname} on table {$a->tablename} points to a non-existent table {$a->reftable}.';
$string['fkviolationdetails'] = 'Foreign key {$a->keyname} on table {$a->tablename} is violated by {$a->numviolations} out of {$a->numrows} rows.';
$string['floatincorrectdecimals'] = 'Incorrect number of decimals for float field';
$string['floatincorrectlength'] = 'Incorrect length for float field';
@@ -183,6 +185,8 @@ $string['selecttable'] = 'Select table:';
$string['table'] = 'Table';
$string['tablenameempty'] = 'The table name cannot be empty';
$string['tables'] = 'Tables';
$string['unknownfield'] = 'Refers to an unknown field';
$string['unknowntable'] = 'Refers to an unknown table';
$string['unload'] = 'Unload';
$string['up'] = 'Up';
$string['view'] = 'View';
-1
View File
@@ -941,7 +941,6 @@ class auth_plugin_mnet extends auth_plugin_base {
// run the keepalive client
$this->keepalive_client();
// admin/cron.php should have run srand for us
$random100 = rand(0,100);
if ($random100 < 10) { // Approximately 10% of the time.
// nuke olden sessions
+1 -15
View File
@@ -47,21 +47,7 @@
if ($shibbolethauth->user_login($frm->username, $frm->password)
&& $user = authenticate_user_login($frm->username, $frm->password)) {
enrol_check_plugins($user);
session_set_user($user);
$USER->loggedin = true;
$USER->site = $CFG->wwwroot; // for added security, store the site in the
update_user_login_times();
// Don't show previous shibboleth username on login page
set_login_session_preferences();
unset($SESSION->lang);
$SESSION->justloggedin = true;
complete_user_login($user);
add_to_log(SITEID, 'user', 'login', "view.php?id=$USER->id&course=".SITEID, $USER->id, 0, $USER->id);
if (user_not_fully_set_up($USER)) {
-1
View File
@@ -309,7 +309,6 @@ class entities {
$source = str_split($source, 1);
for ($i = 1; $i <= $length; $i++) {
mt_srand((double) microtime() * 1000000);
$num = mt_rand(1, count($source));
$response .= $source[$num - 1];
}
+23 -6
View File
@@ -129,20 +129,37 @@ class backup_course_task extends backup_task {
/**
* Code the transformations to perform in the course in
* order to get transportable (encoded) links
* @param string $content content in which to encode links.
* @return string content with links encoded.
*/
static public function encode_content_links($content) {
global $CFG;
$base = preg_quote($CFG->wwwroot, '/');
// Link to the course main page (it also covers "&topic=xx" and "&week=xx"
// because they don't become transformed (section number) in backup/restore
$search = '/(' . $base . '\/course\/view.php\?id\=)([0-9]+)/';
$content= preg_replace($search, '$@COURSEVIEWBYID*$2@$', $content);
// because they don't become transformed (section number) in backup/restore.
$content = self::encode_links_helper($content, 'COURSEVIEWBYID', '/course/view.php?id=');
// A few other key course links.
$content = self::encode_links_helper($content, 'GRADEINDEXBYID', '/grade/index.php?id=');
$content = self::encode_links_helper($content, 'GRADEREPORTINDEXBYID', '/grade/report/index.php?id=');
$content = self::encode_links_helper($content, 'USERINDEXVIEWBYID', '/user/index.php?id=');
return $content;
}
/**
* Helper method, used by encode_content_links.
* @param string $content content in which to encode links.
* @param unknown_type $name the name of this type of encoded link.
* @param unknown_type $path the path that identifies this type of link, up
* to the ?paramname= bit.
* @return string content with one type of link encoded.
*/
static private function encode_links_helper($content, $name, $path) {
global $CFG;
$base = preg_quote($CFG->wwwroot . $path, '/');
return preg_replace('/(' . $base . ')([0-9]+)/', '$@' . $name . '*$2@$', $content);
}
// Protected API starts here
/**
+1 -1
View File
@@ -210,7 +210,7 @@ abstract class backup_questions_activity_structure_step extends backup_activity_
$qas = new backup_nested_element($nameprefix . 'question_attempts');
$qa = new backup_nested_element($nameprefix . 'question_attempt', array('id'), array(
'slot', 'behaviour', 'questionid', 'maxmark', 'minfraction',
'slot', 'behaviour', 'questionid', 'variant', 'maxmark', 'minfraction',
'flagged', 'questionsummary', 'rightanswer', 'responsesummary',
'timemodified'));
+8 -2
View File
@@ -135,10 +135,16 @@ class restore_course_task extends restore_task {
static public function define_decode_rules() {
$rules = array();
$rules[] = new restore_decode_rule('COURSEVIEWBYID', '/course/view.php?id=$1', 'course');
// Link to the course main page (it also covers "&topic=xx" and "&week=xx"
// because they don't become transformed (section number) in backup/restore.
$rules[] = new restore_decode_rule('COURSEVIEWBYID', '/course/view.php?id=$1', 'course');
// A few other key course links.
$rules[] = new restore_decode_rule('GRADEINDEXBYID', '/grade/index.php?id=$1', 'course');
$rules[] = new restore_decode_rule('GRADEREPORTINDEXBYID', '/grade/report/index.php?id=$1', 'course');
$rules[] = new restore_decode_rule('USERINDEXVIEWBYID', '/user/index.php?id=$1', 'course');
return $rules;
}
// Protected API starts here
+3
View File
@@ -3837,6 +3837,9 @@ abstract class restore_questions_activity_structure_step extends restore_activit
$data->questionusageid = $this->get_new_parentid($nameprefix . 'question_usage');
$data->questionid = $question->newitemid;
if (!property_exists($data, 'variant')) {
$data->variant = 1;
}
$data->timemodified = $this->apply_date_offset($data->timemodified);
$newitemid = $DB->insert_record('question_attempts', $data);
@@ -0,0 +1,55 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* @package core_backup
* @category phpunit
* @copyright 2013 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/backup/util/includes/backup_includes.php');
require_once($CFG->dirroot . '/backup/moodle2/backup_course_task.class.php');
/**
* Tests for encoding content links in backup_course_task.
*
* The code that this tests is acutally in backup/moodle2/backup_course_task.class.php,
* but there is no place for unit tests near there, and perhaps one day it will
* be refactored so it becomes more generic.
*/
class backup_course_task_testcase extends basic_testcase {
/**
* Test the encode_content_links method for course.
*/
public function test_course_encode_content_links() {
global $CFG;
$encoded = backup_course_task::encode_content_links(
$CFG->wwwroot . '/course/view.php?id=123, ' .
$CFG->wwwroot . '/grade/index.php?id=123, ' .
$CFG->wwwroot . '/grade/report/index.php?id=123 and ' .
$CFG->wwwroot . '/user/index.php?id=123.');
$this->assertEquals('$@COURSEVIEWBYID*123@$, $@GRADEINDEXBYID*123@$, ' .
'$@GRADEREPORTINDEXBYID*123@$ and $@USERINDEXVIEWBYID*123@$.', $encoded);
}
}
+5
View File
@@ -73,6 +73,11 @@ abstract class base_moodleform extends moodleform {
*/
function __construct(base_ui_stage $uistage, $action=null, $customdata=null, $method='post', $target='', $attributes=null, $editable=true) {
$this->uistage = $uistage;
$attributes = (array)$attributes;
if (!isset($attributes['enctype'])) {
$attributes['enctype'] = 'application/x-www-form-urlencoded'; // Enforce compatibility with our max_input_vars hack.
}
parent::__construct($action, $customdata, $method, $target, $attributes, $editable);
}
/**
@@ -697,6 +697,7 @@ class restore_ui_stage_process extends restore_ui_stage {
$html .= html_writer::start_tag('form', array(
'action' => $url->out_omit_querystring(),
'class' => 'backup-restore',
'enctype' => 'application/x-www-form-urlencoded', // Enforce compatibility with our max_input_vars hack.
'method' => 'post'));
foreach ($url->params() as $name => $value) {
$html .= html_writer::empty_tag('input', array(
+1
View File
@@ -83,6 +83,7 @@ class block_blog_recent extends block_base {
$this->content = new stdClass();
$this->content->footer = '';
$this->content->text = '';
$context = $this->page->context;
+9 -3
View File
@@ -34,7 +34,14 @@ class block_course_list extends block_list {
if (empty($CFG->disablemycourses) and isloggedin() and !isguestuser() and
!(has_capability('moodle/course:update', context_system::instance()) and $adminseesall)) { // Just print My Courses
if ($courses = enrol_get_my_courses(NULL, 'visible DESC, fullname ASC')) {
// As this is producing navigation sort order should default to $CFG->navsortmycoursessort instead
// of using the default.
if (!empty($CFG->navsortmycoursessort)) {
$sortorder = 'visible DESC, ' . $CFG->navsortmycoursessort . ' ASC';
} else {
$sortorder = 'visible DESC, sortorder ASC';
}
if ($courses = enrol_get_my_courses(NULL, $sortorder)) {
foreach ($courses as $course) {
$coursecontext = context_course::instance($course->id);
$linkcss = $course->visible ? "" : " class=\"dimmed\" ";
@@ -120,8 +127,7 @@ class block_course_list extends block_list {
$this->content->items[] = get_string('remotecourses','mnet');
$this->content->icons[] = '';
foreach ($courses as $course) {
$coursecontext = context_course::instance($course->id);
$this->content->items[]="<a title=\"" . format_string($course->shortname, true, array('context' => $coursecontext)) . "\" ".
$this->content->items[]="<a title=\"" . format_string($course->shortname, true) . "\" ".
"href=\"{$CFG->wwwroot}/auth/mnet/jump.php?hostid={$course->hostid}&amp;wantsurl=/course/view.php?id={$course->remoteid}\">"
.$icon. format_string($course->fullname) . "</a>";
}
+5 -2
View File
@@ -33,7 +33,7 @@
* @todo MDL-36050 improve capability check on stick blocks, so we can check user capability before sending images.
*/
function block_html_pluginfile($course, $birecord_or_cm, $context, $filearea, $args, $forcedownload, array $options=array()) {
global $DB, $CFG;
global $DB, $CFG, $USER;
if ($context->contextlevel != CONTEXT_BLOCK) {
send_file_not_found();
@@ -53,8 +53,11 @@ function block_html_pluginfile($course, $birecord_or_cm, $context, $filearea, $a
if (!$category->visible) {
require_capability('moodle/category:viewhiddencategories', $parentcontext);
}
} else if ($parentcontext->contextlevel === CONTEXT_USER && $parentcontext->instanceid != $USER->id) {
// The block is in the context of a user, it is only visible to the user who it belongs to.
send_file_not_found();
}
// At this point there is no way to check SYSTEM or USER context, so ignoring it.
// At this point there is no way to check SYSTEM context, so ignoring it.
}
if ($filearea !== 'content') {
+9
View File
@@ -46,5 +46,14 @@ class block_mentees extends block_base {
return $this->content;
}
/**
* Returns true if the block can be docked.
* The mentees block can only be docked if it has a non-empty title.
* @return bool
*/
public function instance_can_be_docked() {
return parent::instance_can_be_docked() && isset($this->config->title) && !empty($this->config->title);
}
}
+1
View File
@@ -81,6 +81,7 @@ class block_tags extends block_base {
}
$this->content = new stdClass;
$this->content->text = '';
$this->content->footer = '';
// Get a list of tags.
+1 -1
View File
@@ -40,7 +40,7 @@ if (empty($CFG->enableblogs)) {
//correct tagid if a text tag is provided as a param
if (!empty($tag)) {
if ($tagrec = $DB->get_record_sql("SELECT * FROM {tag} WHERE ". $DB->sql_like('name', '?', false), array("%$tag%"))) {
if ($tagrec = $DB->get_record('tag', array('name' => $tag))) {
$tagid = $tagrec->id;
} else {
unset($tagid);
+6 -2
View File
@@ -957,8 +957,12 @@ function blog_get_headers($courseid=null, $groupid=null, $userid=null, $tagid=nu
$tagrec = $DB->get_record('tag', array('id'=>$tagid));
$PAGE->navbar->add($tagrec->name, $blogurl);
} elseif (!empty($tag)) {
$blogurl->param('tag', $tag);
$PAGE->navbar->add(get_string('tagparam', 'blog', $tag), $blogurl);
if ($tagrec = $DB->get_record('tag', array('name' => $tag))) {
$tagid = $tagrec->id;
$headers['filters']['tag'] = $tagid;
$blogurl->param('tag', $tag);
$PAGE->navbar->add(get_string('tagparam', 'blog', $tag), $blogurl);
}
}
// Append Search info
+1
View File
@@ -177,6 +177,7 @@ if (!empty($action) && confirm_sesskey()) {
$PAGE->set_title($title);
$PAGE->set_heading($SITE->fullname);
/* @var core_cache_renderer $renderer */
$renderer = $PAGE->get_renderer('core_cache');
echo $renderer->header();
+43 -2
View File
@@ -256,7 +256,7 @@ class cache_definition {
* An array of identifiers provided to this cache when it was initialised.
* @var array
*/
protected $identifiers = array();
protected $identifiers = null;
/**
* Key prefix for use with single key cache stores
@@ -582,6 +582,9 @@ class cache_definition {
* @return array
*/
public function get_identifiers() {
if (!isset($this->identifiers)) {
return array();
}
return $this->identifiers;
}
@@ -694,11 +697,22 @@ class cache_definition {
* @throws coding_exception
*/
public function set_identifiers(array $identifiers = array()) {
// If we are setting the exact same identifiers then just return as nothing really changed.
// We don't care about order as cache::make will use the same definition order all the time.
if ($identifiers === $this->identifiers) {
return;
}
foreach ($this->requireidentifiers as $identifier) {
if (!array_key_exists($identifier, $identifiers)) {
throw new coding_exception('Identifier required for cache has not been provided: '.$identifier);
}
}
if ($this->identifiers === null) {
// Initialize identifiers if they have not been.
$this->identifiers = array();
}
foreach ($identifiers as $name => $value) {
$this->identifiers[$name] = (string)$value;
}
@@ -820,7 +834,7 @@ class cache_definition {
'area' => $this->area,
'siteidentifier' => $this->get_cache_identifier()
);
if (!empty($this->identifiers)) {
if (isset($this->identifiers) && !empty($this->identifiers)) {
$identifiers = array();
foreach ($this->identifiers as $key => $value) {
$identifiers[] = htmlentities($key, ENT_QUOTES, 'UTF-8').'='.htmlentities($value, ENT_QUOTES, 'UTF-8');
@@ -867,4 +881,31 @@ class cache_definition {
protected function get_cache_identifier() {
return cache_helper::get_site_identifier();
}
/**
* Returns the possible sharing options that can be used with this defintion.
*
* @return int
*/
public function get_sharing_options() {
return $this->sharingoptions;
}
/**
* Returns the user entered sharing key for this definition.
*
* @return string
*/
public function get_user_input_sharing_key() {
return $this->userinputsharingkey;
}
/**
* Returns the user selected sharing option for this definition.
*
* @return int
*/
public function get_selected_sharing_option() {
return $this->selectedsharingoption;
}
}
+9 -8
View File
@@ -235,14 +235,14 @@ class cache_factory {
*/
public function create_cache(cache_definition $definition) {
$class = $definition->get_cache_class();
if ($this->is_initialising()) {
// Do nothing we just want the dummy store.
$stores = array();
} else {
$stores = cache_helper::get_cache_stores($definition);
$stores = cache_helper::get_stores_suitable_for_definition($definition);
foreach ($stores as $key => $store) {
if (!$store::are_requirements_met()) {
unset($stores[$key]);
}
}
if (count($stores) === 0) {
// Hmm no stores, better provide a dummy store to mimick functionality. The dev will be none the wiser.
// Hmm still no stores, better provide a dummy store to mimic functionality. The dev will be none the wiser.
$stores[] = $this->create_dummy_store($definition);
}
$loader = null;
@@ -258,7 +258,7 @@ class cache_factory {
/**
* Creates a store instance given its name and configuration.
*
* If the store has already been instantiated then the original objetc will be returned. (reused)
* If the store has already been instantiated then the original object will be returned. (reused)
*
* @param string $name The name of the store (must be unique remember)
* @param array $details
@@ -272,8 +272,9 @@ class cache_factory {
$store = new $class($details['name'], $details['configuration']);
$this->stores[$name] = $store;
}
/* @var cache_store $store */
$store = $this->stores[$name];
if (!$store->is_ready() || !$store->is_supported_mode($definition->get_mode())) {
if (!$store::are_requirements_met() || !$store->is_ready() || !$store->is_supported_mode($definition->get_mode())) {
return false;
}
// We always create a clone of the original store.
+70 -8
View File
@@ -143,7 +143,7 @@ class cache_helper {
*
* @param array $stores
* @param cache_definition $definition
* @return array
* @return cache_store[]
*/
protected static function initialise_cachestore_instances(array $stores, cache_definition $definition) {
$return = array();
@@ -377,34 +377,40 @@ class cache_helper {
/**
* Record a cache hit in the stats for the given store and definition.
*
* @internal
* @param string $store
* @param string $definition
* @param int $hits The number of hits to record (by default 1)
*/
public static function record_cache_hit($store, $definition) {
public static function record_cache_hit($store, $definition, $hits = 1) {
self::ensure_ready_for_stats($store, $definition);
self::$stats[$definition][$store]['hits']++;
self::$stats[$definition][$store]['hits'] += $hits;
}
/**
* Record a cache miss in the stats for the given store and definition.
*
* @internal
* @param string $store
* @param string $definition
* @param int $misses The number of misses to record (by default 1)
*/
public static function record_cache_miss($store, $definition) {
public static function record_cache_miss($store, $definition, $misses = 1) {
self::ensure_ready_for_stats($store, $definition);
self::$stats[$definition][$store]['misses']++;
self::$stats[$definition][$store]['misses'] += $misses;
}
/**
* Record a cache set in the stats for the given store and definition.
*
* @internal
* @param string $store
* @param string $definition
* @param int $sets The number of sets to record (by default 1)
*/
public static function record_cache_set($store, $definition) {
public static function record_cache_set($store, $definition, $sets = 1) {
self::ensure_ready_for_stats($store, $definition);
self::$stats[$definition][$store]['sets']++;
self::$stats[$definition][$store]['sets'] += $sets;
}
/**
@@ -449,8 +455,9 @@ class cache_helper {
$class = $store['class'];
// Found the store: is it ready?
/* @var cache_store $instance */
$instance = new $class($store['name'], $store['configuration']);
if (!$instance->is_ready()) {
if (!$instance::are_requirements_met() || !$instance->is_ready()) {
unset($instance);
return false;
}
@@ -638,4 +645,59 @@ class cache_helper {
}
}
}
/**
* Returns an array of stores that would meet the requirements for every definition.
*
* These stores would be 100% suitable to map as defaults for cache modes.
*
* @return array[] An array of stores, keys are the store names.
*/
public static function get_stores_suitable_for_mode_default() {
$factory = cache_factory::instance();
$config = $factory->create_config_instance();
$requirements = 0;
foreach ($config->get_definitions() as $definition) {
$definition = cache_definition::load($definition['component'].'/'.$definition['area'], $definition);
$requirements = $requirements | $definition->get_requirements_bin();
}
$stores = array();
foreach ($config->get_all_stores() as $name => $store) {
if (!empty($store['features']) && ($store['features'] & $requirements)) {
$stores[$name] = $store;
}
}
return $stores;
}
/**
* Returns stores suitable for use with a given definition.
*
* @param cache_definition $definition
* @return cache_store[]
*/
public static function get_stores_suitable_for_definition(cache_definition $definition) {
$factory = cache_factory::instance();
$stores = array();
if ($factory->is_initialising() || $factory->stores_disabled()) {
// No suitable stores here.
return $stores;
} else {
$stores = self::get_cache_stores($definition);
if (count($stores) === 0) {
// No suitable stores we found for the definition. We need to come up with a sensible default.
// If this has happened we can be sure that the user has mapped custom stores to either the
// mode of the definition. The first alternative to try is the system default for the mode.
// e.g. the default file store instance for application definitions.
$config = $factory->create_config_instance();
foreach ($config->get_stores($definition->get_mode()) as $name => $details) {
if (!empty($details['default'])) {
$stores[] = $factory->create_store_from_config($name, $details, $definition);
break;
}
}
}
}
return $stores;
}
}
+35 -7
View File
@@ -463,6 +463,20 @@ class cache implements cache_loader {
}
}
if ($this->perfdebug) {
$hits = 0;
$misses = 0;
foreach ($fullresult as $value) {
if ($value === false) {
$misses++;
} else {
$hits++;
}
}
cache_helper::record_cache_hit($this->storetype, $this->definition->get_id(), $hits);
cache_helper::record_cache_miss($this->storetype, $this->definition->get_id(), $misses);
}
// Return the result. Phew!
return $fullresult;
}
@@ -633,10 +647,11 @@ class cache implements cache_loader {
$this->set_in_persist_cache($data[$key]['key'], $value);
}
}
if ($this->perfdebug) {
cache_helper::record_cache_set($this->storetype, $this->definition->get_id());
$successfullyset = $this->store->set_many($data);
if ($this->perfdebug && $successfullyset) {
cache_helper::record_cache_set($this->storetype, $this->definition->get_id(), $successfullyset);
}
return $this->store->set_many($data);
return $successfullyset;
}
/**
@@ -1872,7 +1887,19 @@ class cache_session extends cache {
if ($hasmissingkeys && $strictness === MUST_EXIST) {
throw new coding_exception('Requested key did not exist in any cache stores and could not be loaded.');
}
if ($this->perfdebug) {
$hits = 0;
$misses = 0;
foreach ($return as $value) {
if ($value === false) {
$misses++;
} else {
$hits++;
}
}
cache_helper::record_cache_hit($this->storetype, $this->get_definition()->get_id(), $hits);
cache_helper::record_cache_miss($this->storetype, $this->get_definition()->get_id(), $misses);
}
return $return;
}
@@ -1946,10 +1973,11 @@ class cache_session extends cache {
'value' => $value
);
}
if ($this->perfdebug) {
cache_helper::record_cache_set($this->storetype, $definitionid);
$successfullyset = $this->get_store()->set_many($data);
if ($this->perfdebug && $successfullyset) {
cache_helper::record_cache_set($this->storetype, $definitionid, $successfullyset);
}
return $this->get_store()->set_many($data);
return $successfullyset;
}
/**
+20 -41
View File
@@ -672,59 +672,32 @@ abstract class cache_administration_helper extends cache_helper {
* @return array
*/
public static function get_definition_summaries() {
$instance = cache_config::instance();
$definitions = $instance->get_definitions();
$factory = cache_factory::instance();
$config = $factory->create_config_instance();
$storenames = array();
foreach ($instance->get_all_stores() as $key => $store) {
foreach ($config->get_all_stores() as $key => $store) {
if (!empty($store['default'])) {
$storenames[$key] = new lang_string('store_'.$key, 'cache');
}
}
$modemappings = array();
foreach ($instance->get_mode_mappings() as $mapping) {
$mode = $mapping['mode'];
if (!array_key_exists($mode, $modemappings)) {
$modemappings[$mode] = array();
}
if (array_key_exists($mapping['store'], $storenames)) {
$modemappings[$mode][] = $storenames[$mapping['store']];
} else {
$modemappings[$mode][] = $mapping['store'];
$storenames[$store['name']] = $store['name'];
}
}
$definitionmappings = array();
foreach ($instance->get_definition_mappings() as $mapping) {
$definition = $mapping['definition'];
if (!array_key_exists($definition, $definitionmappings)) {
$definitionmappings[$definition] = array();
}
if (array_key_exists($mapping['store'], $storenames)) {
$definitionmappings[$definition][] = $storenames[$mapping['store']];
} else {
$definitionmappings[$definition][] = $mapping['store'];
}
/* @var cache_definition[] $definitions */
$definitions = array();
foreach ($config->get_definitions() as $key => $definition) {
$definitions[$key] = cache_definition::load($definition['component'].'/'.$definition['area'], $definition);
}
$return = array();
foreach ($definitions as $id => $definition) {
$mappings = array();
if (array_key_exists($id, $definitionmappings)) {
$mappings = $definitionmappings[$id];
} else if (empty($definition['mappingsonly'])) {
$mappings = $modemappings[$definition['mode']];
foreach (cache_helper::get_stores_suitable_for_definition($definition) as $store) {
$mappings[] = $storenames[$store->my_name()];
}
$return[$id] = array(
'id' => $id,
'name' => cache_helper::get_definition_name($definition),
'mode' => $definition['mode'],
'component' => $definition['component'],
'area' => $definition['area'],
'name' => $definition->get_name(),
'mode' => $definition->get_mode(),
'component' => $definition->get_component(),
'area' => $definition->get_area(),
'mappings' => $mappings
);
}
@@ -976,7 +949,10 @@ abstract class cache_administration_helper extends cache_helper {
* @return array An array containing sub-arrays, one for each mode.
*/
public static function get_default_mode_stores() {
global $OUTPUT;
$instance = cache_config::instance();
$adequatestores = cache_helper::get_stores_suitable_for_mode_default();
$icon = new pix_icon('i/warning', new lang_string('inadequatestoreformapping', 'cache'));
$storenames = array();
foreach ($instance->get_all_stores() as $key => $store) {
if (!empty($store['default'])) {
@@ -999,6 +975,9 @@ abstract class cache_administration_helper extends cache_helper {
} else {
$modemappings[$mode][$mapping['store']] = $mapping['store'];
}
if (!array_key_exists($mapping['store'], $adequatestores)) {
$modemappings[$mode][$mapping['store']] = $modemappings[$mode][$mapping['store']].' '.$OUTPUT->render($icon);
}
}
return $modemappings;
}
+7 -2
View File
@@ -131,7 +131,7 @@ class cachestore_memcache extends cache_store implements cache_is_configurable {
$this->connection = new Memcache;
foreach ($this->servers as $server) {
$this->connection->addServer($server[0], $server[1], true, $server[2]);
$this->connection->addServer($server[0], (int) $server[1], true, (int) $server[2]);
}
// Test the connection to the pool of servers.
$this->isready = @$this->connection->set($this->parse_key('ping'), 'ping', MEMCACHE_COMPRESSED, 1);
@@ -350,7 +350,12 @@ class cachestore_memcache extends cache_store implements cache_is_configurable {
$lines = explode("\n", $data->servers);
$servers = array();
foreach ($lines as $line) {
$line = trim($line, ':');
// Trim surrounding colons and default whitespace.
$line = trim(trim($line), ":");
// Skip blank lines.
if ($line === '') {
continue;
}
$servers[] = explode(':', $line, 3);
}
return array(
+6 -1
View File
@@ -374,7 +374,12 @@ class cachestore_memcached extends cache_store implements cache_is_configurable
$lines = explode("\n", $data->servers);
$servers = array();
foreach ($lines as $line) {
$line = trim($line, ':');
// Trim surrounding colons and default whitespace.
$line = trim(trim($line), ":");
// Skip blank lines.
if ($line === '') {
continue;
}
$servers[] = explode(':', $line, 3);
}
return array(
+3 -2
View File
@@ -280,6 +280,7 @@ class core_calendar_renderer extends plugin_renderer_base {
*/
public function event(calendar_event $event, $showactions=true) {
$event = calendar_add_event_metadata($event);
$context = $event->context;
$anchor = html_writer::tag('a', '', array('name'=>'event_'.$event->id));
@@ -302,7 +303,7 @@ class core_calendar_renderer extends plugin_renderer_base {
if (!empty($event->referer)) {
$table->data[0]->cells[1]->text .= html_writer::tag('div', $event->referer, array('class'=>'referer'));
} else {
$table->data[0]->cells[1]->text .= html_writer::tag('div', $event->name, array('class'=>'name'));
$table->data[0]->cells[1]->text .= html_writer::tag('div', format_string($event->name, false, array('context' => $context)), array('class'=>'name'));
}
if (!empty($event->courselink)) {
$table->data[0]->cells[1]->text .= html_writer::tag('div', $event->courselink, array('class'=>'course'));
@@ -316,7 +317,7 @@ class core_calendar_renderer extends plugin_renderer_base {
$table->data[1]->cells[0] = new html_table_cell('&nbsp;');
$table->data[1]->cells[0]->attributes['class'] .= 'side';
$table->data[1]->cells[1] = new html_table_cell($event->description);
$table->data[1]->cells[1] = new html_table_cell(format_text($event->description, $event->format, array('context' => $context)));
$table->data[1]->cells[1]->attributes['class'] .= ' description';
if (isset($event->cssclass)) {
$table->data[1]->cells[1]->attributes['class'] .= ' '.$event->cssclass;
+1 -1
View File
@@ -554,7 +554,7 @@ abstract class format_base {
$sectionid = $section->id;
} else if ($this->courseid && is_int($section) &&
($sectionobj = $DB->get_record('course_sections',
array('section' => $section, 'courseid' => $this->courseid), 'id'))) {
array('section' => $section, 'course' => $this->courseid), 'id'))) {
// course section format options will be returned
$sectionid = $sectionobj->id;
} else {
+22 -11
View File
@@ -2917,14 +2917,6 @@ function set_coursemodule_visible($id, $visible) {
}
}
// Hide the associated grade items so the teacher doesn't also have to go to the gradebook and hide them there.
$grade_items = grade_item::fetch_all(array('itemtype'=>'mod', 'itemmodule'=>$modulename, 'iteminstance'=>$cm->instance, 'courseid'=>$cm->course));
if ($grade_items) {
foreach ($grade_items as $grade_item) {
$grade_item->set_hidden(!$visible);
}
}
// Updating visible and visibleold to keep them in sync. Only changing a section visibility will
// affect visibleold to allow for an original visibility restore. See set_section_visible().
$cminfo = new stdClass();
@@ -2933,6 +2925,25 @@ function set_coursemodule_visible($id, $visible) {
$cminfo->visibleold = $visible;
$DB->update_record('course_modules', $cminfo);
require_once($CFG->dirroot . '/mod/' . $modulename . '/lib.php');
$functionname = $modulename . '_grade_item_update';
// Hide the associated grade items so the teacher doesn't also have to go to the gradebook and hide them there.
// Note that this must be done after updating the row in course_modules, in case
// the modules grade_item_update function needs to access $cm->visible.
if (plugin_supports('mod', $modulename, FEATURE_CONTROLS_GRADE_VISIBILITY) &&
function_exists($functionname)) {
$instance = $DB->get_record($modulename, array('id' => $cm->instance), '*', MUST_EXIST);
$functionname($instance);
} else {
$grade_items = grade_item::fetch_all(array('itemtype'=>'mod', 'itemmodule'=>$modulename, 'iteminstance'=>$cm->instance, 'courseid'=>$cm->course));
if ($grade_items) {
foreach ($grade_items as $grade_item) {
$grade_item->set_hidden(!$visible);
}
}
}
rebuild_course_cache($cm->course, true);
return true;
}
@@ -4558,7 +4569,7 @@ function include_course_ajax($course, $usedmodules = array(), $enabledmodules =
);
// Include course dragdrop
if ($course->id != $SITE->id) {
if (course_format_uses_sections($course->format)) {
$PAGE->requires->yui_module('moodle-course-dragdrop', 'M.course.init_section_dragdrop',
array(array(
'courseid' => $course->id,
@@ -4603,8 +4614,8 @@ function include_course_ajax($course, $usedmodules = array(), $enabledmodules =
'movesection',
), 'moodle');
// Include format-specific strings
if ($course->id != $SITE->id) {
// Include section-specific strings for formats which support sections.
if (course_format_uses_sections($course->format)) {
$PAGE->requires->strings_for_js(array(
'showfromothers',
'hidefromothers',
+17
View File
@@ -60,6 +60,23 @@ if (has_capability('moodle/user:loginas', $systemcontext)) {
print_error('usernotincourse');
}
$context = $coursecontext;
// Check if course has SEPARATEGROUPS and user is part of that group.
if (groups_get_course_groupmode($course) == SEPARATEGROUPS &&
!has_capability('moodle/site:accessallgroups', $context)) {
$samegroup = false;
if ($groups = groups_get_all_groups($course->id, $USER->id)) {
foreach ($groups as $group) {
if (groups_is_member($group->id, $userid)) {
$samegroup = true;
break;
}
}
}
if (!$samegroup) {
print_error('nologinas');
}
}
}
/// Login as this user and return to course home page.
+1 -1
View File
@@ -52,7 +52,6 @@ foreach ($allmodules as $key=>$module) {
}
$strresources = get_string('resources');
$strsectionname = get_string('sectionname', 'format_'.$course->format);
$strname = get_string('name');
$strintro = get_string('moduleintro');
$strlastmodified = get_string('lastmodified');
@@ -100,6 +99,7 @@ $table = new html_table();
$table->attributes['class'] = 'generaltable mod_index';
if ($usesections) {
$strsectionname = get_string('sectionname', 'format_'.$course->format);
$table->head = array ($strsectionname, $strname, $strintro);
$table->align = array ('center', 'left', 'left');
} else {
+8
View File
@@ -239,6 +239,14 @@
}
$PAGE->set_title(get_string('course') . ': ' . $course->fullname);
// If viewing a section, make the title more specific
if ($section and $section > 0 and course_format_uses_sections($course->format)) {
// Get section details and check it exists.
$newtitle = $PAGE->title.', '.get_string('sectionname', "format_$course->format").': '.
get_section_name($course, $section);
$PAGE->set_title($newtitle);
}
$PAGE->set_heading($course->fullname);
echo $OUTPUT->header();
+2
View File
@@ -26,6 +26,8 @@
$string['allowguests'] = 'This course allows guest users to enter';
$string['guest:config'] = 'Configure guest access instances';
$string['guestaccess_withpassword'] = 'Guest access requires password';
$string['guestaccess_withoutpassword'] = 'Guest access';
$string['password'] = 'Password';
$string['password_help'] = 'A password allows guest access to the course to be restricted to only those who know the password. Guests will be required to supply the password each time they access the course.';
$string['passwordinvalid'] = 'Incorrect access password, please try again';
+2 -2
View File
@@ -45,9 +45,9 @@ class enrol_guest_plugin extends enrol_plugin {
public function get_info_icons(array $instances) {
foreach ($instances as $instance) {
if ($instance->password !== '') {
return array(new pix_icon('withpassword', get_string('pluginname', 'enrol_guest'), 'enrol_guest'));
return array(new pix_icon('withpassword', get_string('guestaccess_withpassword', 'enrol_guest'), 'enrol_guest'));
} else {
return array(new pix_icon('withoutpassword', get_string('pluginname', 'enrol_guest'), 'enrol_guest'));
return array(new pix_icon('withoutpassword', get_string('guestaccess_withoutpassword', 'enrol_guest'), 'enrol_guest'));
}
}
}
+1
View File
@@ -2,6 +2,7 @@
require_once(dirname(dirname(dirname(__FILE__))) . '/config.php');
require_login(0, false);
require_capability('moodle/site:config', context_system::instance());
require_sesskey();
$site = get_site();
+3 -1
View File
@@ -83,6 +83,8 @@ if ($ADMIN->fulltree) {
$settings->add(new admin_setting_configcheckbox('enrol_imsenterprise/imscapitafix', get_string('usecapitafix', 'enrol_imsenterprise'), get_string('usecapitafix_desc', 'enrol_imsenterprise'), 0));
$importnowstring = get_string('aftersaving...', 'enrol_imsenterprise').' <a href="../enrol/imsenterprise/importnow.php">'.get_string('doitnow', 'enrol_imsenterprise').'</a>';
$importurl = new moodle_url('/enrol/imsenterprise/importnow.php', array('sesskey' => sesskey()));
$importnowstring = get_string('aftersaving...', 'enrol_imsenterprise').' '.
html_writer::link($importurl, get_string('doitnow', 'enrol_imsenterprise'));
$settings->add(new admin_setting_heading('enrol_imsenterprise_doitnowmessage', '', $importnowstring));
}
+4
View File
@@ -43,6 +43,10 @@ if ($course->id == SITEID) {
redirect("$CFG->wwwroot/");
}
if (!$course->visible && !has_capability('moodle/course:viewhiddencourses', context_course::instance($course->id))) {
print_error('coursehidden');
}
$PAGE->set_course($course);
$PAGE->set_pagelayout('course');
$PAGE->set_url('/enrol/index.php', array('id'=>$course->id));
+1 -1
View File
@@ -915,7 +915,7 @@ class course_enrolment_manager {
continue;
} else if ($ue->timestart and $ue->timeend) {
$period = get_string('periodstartend', 'enrol', array('start'=>userdate($ue->timestart), 'end'=>userdate($ue->timeend)));
$periodoutside = ($ue->timestart && $ue->timeend && $now < $ue->timestart && $now > $ue->timeend);
$periodoutside = ($ue->timestart && $ue->timeend && ($now < $ue->timestart || $now > $ue->timeend));
} else if ($ue->timestart) {
$period = get_string('periodstart', 'enrol', userdate($ue->timestart));
$periodoutside = ($ue->timestart && $now < $ue->timestart);
+2 -5
View File
@@ -156,11 +156,8 @@ YUI.add('moodle-enrol_manual-quickenrolment', function(Y) {
}
this.get(UEP.BASE).one('.'+CSS.SEARCHOPTIONS+' .'+CSS.COLLAPSIBLEHEADING).one('img').setAttribute('src', M.util.image_url(collapsedimage, 'moodle'));
this.get(UEP.BASE).one('.'+CSS.SEARCHOPTIONS+' .'+CSS.COLLAPSIBLEHEADING).once('click', function() {
// We want to do this just once, the first time the controls are shown.
this.populateStartDates();
this.populateDuration();
}, this);
this.populateStartDates();
this.populateDuration();
this.get(UEP.BASE).one('.'+CSS.SEARCHOPTIONS+' .'+CSS.COLLAPSIBLEHEADING).on('click', function(){
this.get(UEP.BASE).one('.'+CSS.SEARCHOPTIONS+' .'+CSS.COLLAPSIBLEHEADING).toggleClass(CSS.ACTIVE);
this.get(UEP.BASE).one('.'+CSS.SEARCHOPTIONS+' .'+CSS.COLLAPSIBLEAREA).toggleClass(CSS.HIDDEN);
+25 -2
View File
@@ -29,6 +29,9 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// Disable moodle specific debug messages and any errors in output,
// comment out when debugging or better look into error log!
define('NO_DEBUG_DISPLAY', true);
require("../../config.php");
require_once("lib.php");
@@ -36,6 +39,9 @@ require_once($CFG->libdir.'/eventslib.php');
require_once($CFG->libdir.'/enrollib.php');
require_once($CFG->libdir . '/filelib.php');
// PayPal does not like when we return error messages here,
// the custom handler just logs exceptions and stops.
set_exception_handler('enrol_paypal_ipn_exception_handler');
/// Keep out casual intruders
if (empty($_POST) or !empty($_GET)) {
@@ -236,6 +242,7 @@ if (strlen($result) > 0) {
if (!empty($mailstudents)) {
$a = new stdClass();
$a->coursename = format_string($course->fullname, true, array('context' => $coursecontext));
$a->profileurl = "$CFG->wwwroot/user/view.php?id=$user->id";
@@ -243,7 +250,7 @@ if (strlen($result) > 0) {
$eventdata->modulename = 'moodle';
$eventdata->component = 'enrol_paypal';
$eventdata->name = 'paypal_enrolment';
$eventdata->userfrom = $teacher;
$eventdata->userfrom = empty($teacher) ? get_admin() : $teacher;
$eventdata->userto = $user;
$eventdata->subject = get_string("enrolmentnew", 'enrol', $shortname);
$eventdata->fullmessage = get_string('welcometocoursetext', '', $a);
@@ -254,7 +261,7 @@ if (strlen($result) > 0) {
}
if (!empty($mailteachers)) {
if (!empty($mailteachers) && !empty($teacher)) {
$a->course = format_string($course->fullname, true, array('context' => $coursecontext));
$a->user = fullname($user);
@@ -329,4 +336,20 @@ function message_paypal_error_to_admin($subject, $data) {
message_send($eventdata);
}
/**
* Silent exception handler.
*
* @param Exception $ex
* @return void - does not return. Terminates execution!
*/
function enrol_paypal_ipn_exception_handler($ex) {
$info = get_exception_info($ex);
$logerrmsg = "enrol_paypal IPN exception handler: ".$info->message;
if (debugging('', DEBUG_NORMAL)) {
$logerrmsg .= ' Debug: '.$info->debuginfo."\n".format_backtrace($info->backtrace, true);
}
error_log($logerrmsg);
exit(0);
}
+5 -1
View File
@@ -41,7 +41,11 @@ function xmldb_enrol_self_upgrade($oldversion) {
// Moodle v2.4.0 release upgrade line
// Put any upgrade step following this
if ($oldversion < 2012112901) {
// Set customint1 (group enrolment key) to 0 if it was not set (null).
$DB->execute("UPDATE {enrol} SET customint1 = 0 WHERE enrol = 'self' AND customint1 IS NULL");
upgrade_plugin_savepoint(true, 2012112901, 'enrol', 'self');
}
return true;
}
+1 -1
View File
@@ -24,7 +24,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2012112900; // The current plugin version (Date: YYYYMMDDXX)
$plugin->version = 2012112901; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2012112900; // Requires this Moodle version
$plugin->component = 'enrol_self'; // Full name of the plugin (used for diagnostics)
$plugin->cron = 600;
+7 -2
View File
@@ -132,8 +132,13 @@ class filter_urltolink extends moodle_text_filter {
$querystring = '(?:\?(?:[\pL0-9\.!$&\'\(\)*+,;=_~:@/?-]|%[a-fA-F0-9]{2})*)';
$fragment = '(?:\#(?:[\pL0-9\.!$&\'\(\)*+,;=_~:@/?-]|%[a-fA-F0-9]{2})*)';
$regex = "(?<!=[\"'])$urlstart((?:$domainsegment\.)+$domainsegment|$numericip)" .
"($port?$path$querystring?$fragment?)(?<![]),.;])";
// Lookbehind assertions.
// Is not HTML attribute or CSS URL property. Unfortunately legit text like "url(http://...)" will not be a link.
$lookbehindstart = "(?<!=[\"']|\burl\([\"' ]|\burl\()";
$lookbehindend = "(?<![]),.;])";
$regex = "$lookbehindstart$urlstart((?:$domainsegment\.)+$domainsegment|$numericip)" .
"($port?$path$querystring?$fragment?)$lookbehindend";
if ($unicoderegexp) {
$regex = '#' . $regex . '#ui';
} else {
+5 -39
View File
@@ -31,19 +31,6 @@ require_once($CFG->dirroot . '/filter/urltolink/filter.php'); // Include the cod
class filter_urltolink_testcase extends basic_testcase {
/**
* Helper function that represents the legacy implementation
* of convert_urls_into_links()
*/
protected function old_convert_urls_into_links(&$text) {
/// Make lone URLs into links. eg http://moodle.com/
$text = preg_replace("%([[:space:]]|^|\(|\[)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])%i",
'$1<a href="$2://$3$4" target="_blank">$2://$3$4</a>', $text);
/// eg www.moodle.com
$text = preg_replace("%([[:space:]]|^|\(|\[)www\.([^[:space:]]*)([[:alnum:]#?/&=])%i",
'$1<a href="http://www.$2$3" target="_blank">www.$2$3</a>', $text);
}
function get_convert_urls_into_links_test_cases() {
$texts = array (
//just a url
@@ -144,6 +131,11 @@ class filter_urltolink_testcase extends basic_testcase {
'<td background="www.moodle.org">&nbsp;</td>' => '<td background="www.moodle.org">&nbsp;</td>',
'<form name="input" action="http://moodle.org/submit.asp" method="get">'=>'<form name="input" action="http://moodle.org/submit.asp" method="get">',
'<td background="https://www.moodle.org">&nbsp;</td>' => '<td background="https://www.moodle.org">&nbsp;</td>',
// CSS URLs.
'<table style="background-image: url(\'http://moodle.org/pic.jpg\');">' => '<table style="background-image: url(\'http://moodle.org/pic.jpg\');">',
'<table style="background-image: url(http://moodle.org/pic.jpg);">' => '<table style="background-image: url(http://moodle.org/pic.jpg);">',
'<table style="background-image: url("http://moodle.org/pic.jpg");">' => '<table style="background-image: url("http://moodle.org/pic.jpg");">',
'<table style="background-image: url( http://moodle.org/pic.jpg );">' => '<table style="background-image: url( http://moodle.org/pic.jpg );">',
//partially escaped img tag
'partially escaped img tag &lt;img src="http://moodle.org/logo/logo-240x60.gif" />' => 'partially escaped img tag &lt;img src="http://moodle.org/logo/logo-240x60.gif" />',
//fully escaped img tag. Commented out as part of MDL-21183
@@ -181,32 +173,6 @@ class filter_urltolink_testcase extends basic_testcase {
$this->assertEquals($correctresult, $text);
}
function test_convert_urls_into_links_performance() {
$testablefilter = new testable_filter_urltolink();
$reps = 1000;
$text = file_get_contents(__DIR__ . '/fixtures/sample.txt');
$time_start = microtime(true);
for($i=0;$i<$reps;$i++) {
$testablefilter->convert_urls_into_links($text);
}
$time_end = microtime(true);
$new_time = $time_end - $time_start;
$time_start = microtime(true);
for($i=0;$i<$reps;$i++) {
$this->old_convert_urls_into_links($text);
}
$time_end = microtime(true);
$old_time = $time_end - $time_start;
$fast_enough = false;
if( $new_time < $old_time ) {
$fast_enough = true;
}
$this->assertEquals($fast_enough, true, 'Timing test: ' . $new_time . 'secs (new) < ' . $old_time . 'secs (old)');
}
}
+1
View File
@@ -100,6 +100,7 @@ class moodlequickform_guideeditor extends HTML_QuickForm_input {
$mode = gradingform_guide_controller::DISPLAY_EDIT_FULL;
$module = array('name'=>'gradingform_guideeditor',
'fullpath'=>'/grade/grading/form/guide/js/guideeditor.js',
'requires' => array('base', 'dom', 'event', 'event-touch', 'escape'),
'strings' => array(
array('confirmdeletecriterion', 'gradingform_guide'),
array('clicktoedit', 'gradingform_guide'),
+1 -1
View File
@@ -10,7 +10,7 @@ M.gradingform_guide.init = function(Y, options) {
currentfocus = e.currentTarget;
});
Y.all('.markingguidecomment').on('click', function(e) {
currentfocus.set('value', currentfocus.get('value') + '\n' + e.currentTarget.get('innerHTML'));
currentfocus.set('value', currentfocus.get('value') + '\n' + e.currentTarget.get('text'));
currentfocus.focus();
});
+2 -2
View File
@@ -111,9 +111,9 @@ M.gradingform_guideeditor.editmode = function(el, editmode) {
value = M.str.gradingform_guide.clicktoedit
taplain.addClass('empty')
}
taplain.one('.textvalue').set('innerHTML', value)
taplain.one('.textvalue').set('innerHTML', Y.Escape.html(value))
if (tb) {
tbplain.one('.textvalue').set('innerHTML', tb.get('value'))
tbplain.one('.textvalue').set('innerHTML', Y.Escape.html(tb.get('value')))
}
// hide/display textarea, textbox and plaintexts
taplain.removeClass('hiddenelement')
+1 -1
View File
@@ -845,7 +845,7 @@ class gradingform_guide_instance extends gradingform_instance {
if (!empty($this->validationerrors)) {
foreach ($this->validationerrors as $id => $err) {
$a = new stdClass();
$a->criterianame = $criteria[$id]['shortname'];
$a->criterianame = s($criteria[$id]['shortname']);
$a->maxscore = $criteria[$id]['maxscore'];
$html .= html_writer::tag('div', get_string('err_scoreinvalid', 'gradingform_guide', $a),
array('class' => 'gradingform_guide-error'));
+15 -15
View File
@@ -93,20 +93,20 @@ class gradingform_guide_renderer extends plugin_renderer_base {
'name' => '{NAME}[criteria][{CRITERION-id}][sortorder]', 'value' => $criterion['sortorder']));
$shortname = html_writer::empty_tag('input', array('type'=> 'text',
'name' => '{NAME}[criteria][{CRITERION-id}][shortname]', 'value' => htmlspecialchars($criterion['shortname']),
'name' => '{NAME}[criteria][{CRITERION-id}][shortname]', 'value' => $criterion['shortname'],
'id ' => '{NAME}[criteria][{CRITERION-id}][shortname]'));
$shortname = html_writer::tag('div', $shortname, array('class'=>'criterionname'));
$description = html_writer::tag('textarea', htmlspecialchars($criterion['description']),
$description = html_writer::tag('textarea', s($criterion['description']),
array('name' => '{NAME}[criteria][{CRITERION-id}][description]', 'cols' => '65', 'rows' => '5'));
$description = html_writer::tag('div', $description, array('class'=>'criteriondesc'));
$descriptionmarkers = html_writer::tag('textarea', htmlspecialchars($criterion['descriptionmarkers']),
$descriptionmarkers = html_writer::tag('textarea', s($criterion['descriptionmarkers']),
array('name' => '{NAME}[criteria][{CRITERION-id}][descriptionmarkers]', 'cols' => '65', 'rows' => '5'));
$descriptionmarkers = html_writer::tag('div', $descriptionmarkers, array('class'=>'criteriondescmarkers'));
$maxscore = html_writer::empty_tag('input', array('type'=> 'text',
'name' => '{NAME}[criteria][{CRITERION-id}][maxscore]', 'size' => '3',
'value' => htmlspecialchars($criterion['maxscore']),
'value' => $criterion['maxscore'],
'id' => '{NAME}[criteria][{CRITERION-id}][maxscore]'));
$maxscore = html_writer::tag('div', $maxscore, array('class'=>'criterionmaxscore'));
} else {
@@ -125,7 +125,7 @@ class gradingform_guide_renderer extends plugin_renderer_base {
$mode == gradingform_guide_controller::DISPLAY_VIEW) {
$descriptionclass = 'descriptionreadonly';
}
$shortname = html_writer::tag('div', $criterion['shortname'],
$shortname = html_writer::tag('div', s($criterion['shortname']),
array('class'=>'criterionshortname', 'name' => '{NAME}[criteria][{CRITERION-id}][shortname]'));
$descmarkerclass = '';
$descstudentclass = '';
@@ -137,13 +137,13 @@ class gradingform_guide_renderer extends plugin_renderer_base {
$descstudentclass = ' hide';
}
}
$description = html_writer::tag('div', $criterion['description'],
$description = html_writer::tag('div', s($criterion['description']),
array('class'=>'criteriondescription'.$descstudentclass,
'name' => '{NAME}[criteria][{CRITERION-id}][descriptionmarkers]'));
$descriptionmarkers = html_writer::tag('div', $criterion['descriptionmarkers'],
$descriptionmarkers = html_writer::tag('div', s($criterion['descriptionmarkers']),
array('class'=>'criteriondescriptionmarkers'.$descmarkerclass,
'name' => '{NAME}[criteria][{CRITERION-id}][descriptionmarkers]'));
$maxscore = html_writer::tag('div', $criterion['maxscore'],
$maxscore = html_writer::tag('div', s($criterion['maxscore']),
array('class'=>'criteriondescriptionscore', 'name' => '{NAME}[criteria][{CRITERION-id}][maxscore]'));
}
@@ -188,7 +188,7 @@ class gradingform_guide_renderer extends plugin_renderer_base {
$scoreclass = 'error';
$currentscore = $validationerrors[$criterion['id']]['score']; // Show invalid score in form.
}
$input = html_writer::tag('textarea', htmlspecialchars($currentremark),
$input = html_writer::tag('textarea', s($currentremark),
array('name' => '{NAME}[criteria][{CRITERION-id}][remark]', 'cols' => '65', 'rows' => '5',
'class' => 'markingguideremark'));
$criteriontemplate .= html_writer::tag('td', $input, array('class' => 'remark'));
@@ -197,7 +197,7 @@ class gradingform_guide_renderer extends plugin_renderer_base {
$score .= html_writer::empty_tag('input', array('type'=> 'text',
'name' => '{NAME}[criteria][{CRITERION-id}][score]', 'class' => $scoreclass,
'id' => '{NAME}[criteria][{CRITERION-id}][score]',
'size' => '3', 'value' => htmlspecialchars($currentscore)));
'size' => '3', 'value' => $currentscore));
$score .= '/'.$maxscore;
$criteriontemplate .= html_writer::tag('td', $score, array('class' => 'score'));
@@ -206,9 +206,9 @@ class gradingform_guide_renderer extends plugin_renderer_base {
'name' => '{NAME}[criteria][{CRITERION-id}][remark]', 'value' => $currentremark));
} else if ($mode == gradingform_guide_controller::DISPLAY_REVIEW ||
$mode == gradingform_guide_controller::DISPLAY_VIEW) {
$criteriontemplate .= html_writer::tag('td', $currentremark, array('class' => 'remark'));
$criteriontemplate .= html_writer::tag('td', s($currentremark), array('class' => 'remark'));
if (!empty($options['showmarkspercriterionstudents'])) {
$criteriontemplate .= html_writer::tag('td', htmlspecialchars($currentscore). ' / '.$maxscore,
$criteriontemplate .= html_writer::tag('td', s($currentscore). ' / '.$maxscore,
array('class' => 'score'));
}
}
@@ -267,7 +267,7 @@ class gradingform_guide_renderer extends plugin_renderer_base {
$criteriontemplate .= html_writer::end_tag('td'); // Controls.
$criteriontemplate .= html_writer::empty_tag('input', array('type' => 'hidden',
'name' => '{NAME}[comments][{COMMENT-id}][sortorder]', 'value' => $comment['sortorder']));
$description = html_writer::tag('textarea', htmlspecialchars($comment['description']),
$description = html_writer::tag('textarea', s($comment['description']),
array('name' => '{NAME}[comments][{COMMENT-id}][description]', 'cols' => '65', 'rows' => '5'));
$description = html_writer::tag('div', $description, array('class'=>'criteriondesc'));
} else {
@@ -278,12 +278,12 @@ class gradingform_guide_renderer extends plugin_renderer_base {
'name' => '{NAME}[comments][{COMMENT-id}][description]', 'value' => $comment['description']));
}
if ($mode == gradingform_guide_controller::DISPLAY_EVAL) {
$description = html_writer::tag('span', htmlspecialchars($comment['description']),
$description = html_writer::tag('span', s($comment['description']),
array('name' => '{NAME}[comments][{COMMENT-id}][description]',
'title' => get_string('clicktocopy', 'gradingform_guide'),
'id' => '{NAME}[comments][{COMMENT-id}]', 'class'=>'markingguidecomment'));
} else {
$description = $comment['description'];
$description = s($comment['description']);
}
}
$descriptionclass = 'description';
+2 -2
View File
@@ -93,8 +93,8 @@ M.gradingform_rubriceditor.editmode = function(el, editmode, focustb) {
value = (el.hasClass('level')) ? M.str.gradingform_rubric.levelempty : M.str.gradingform_rubric.criterionempty
taplain.addClass('empty')
}
taplain.one('.textvalue').set('innerHTML', value)
if (tb) tbplain.one('.textvalue').set('innerHTML', tb.get('value'))
taplain.one('.textvalue').set('innerHTML', Y.Escape.html(value));
if (tb) tbplain.one('.textvalue').set('innerHTML', Y.Escape.html(tb.get('value')));
// hide/display textarea, textbox and plaintexts
taplain.removeClass('hiddenelement')
ta.addClass('hiddenelement')
+6 -6
View File
@@ -74,13 +74,13 @@ class gradingform_rubric_renderer extends plugin_renderer_base {
}
$criteriontemplate .= html_writer::end_tag('td'); // .controls
$criteriontemplate .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => '{NAME}[criteria][{CRITERION-id}][sortorder]', 'value' => $criterion['sortorder']));
$description = html_writer::tag('textarea', htmlspecialchars($criterion['description']), array('name' => '{NAME}[criteria][{CRITERION-id}][description]', 'cols' => '10', 'rows' => '5'));
$description = html_writer::tag('textarea', s($criterion['description']), array('name' => '{NAME}[criteria][{CRITERION-id}][description]', 'cols' => '10', 'rows' => '5'));
} else {
if ($mode == gradingform_rubric_controller::DISPLAY_EDIT_FROZEN) {
$criteriontemplate .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => '{NAME}[criteria][{CRITERION-id}][sortorder]', 'value' => $criterion['sortorder']));
$criteriontemplate .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => '{NAME}[criteria][{CRITERION-id}][description]', 'value' => $criterion['description']));
}
$description = $criterion['description'];
$description = s($criterion['description']);
}
$descriptionclass = 'description';
if (isset($criterion['error_description'])) {
@@ -106,12 +106,12 @@ class gradingform_rubric_renderer extends plugin_renderer_base {
$currentremark = $value['remark'];
}
if ($mode == gradingform_rubric_controller::DISPLAY_EVAL) {
$input = html_writer::tag('textarea', htmlspecialchars($currentremark), array('name' => '{NAME}[criteria][{CRITERION-id}][remark]', 'cols' => '10', 'rows' => '5'));
$input = html_writer::tag('textarea', s($currentremark), array('name' => '{NAME}[criteria][{CRITERION-id}][remark]', 'cols' => '10', 'rows' => '5'));
$criteriontemplate .= html_writer::tag('td', $input, array('class' => 'remark'));
} else if ($mode == gradingform_rubric_controller::DISPLAY_EVAL_FROZEN) {
$criteriontemplate .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => '{NAME}[criteria][{CRITERION-id}][remark]', 'value' => $currentremark));
}else if ($mode == gradingform_rubric_controller::DISPLAY_REVIEW || $mode == gradingform_rubric_controller::DISPLAY_VIEW) {
$criteriontemplate .= html_writer::tag('td', $currentremark, array('class' => 'remark')); // TODO maybe some prefix here like 'Teacher remark:'
$criteriontemplate .= html_writer::tag('td', s($currentremark), array('class' => 'remark'));
}
}
$criteriontemplate .= html_writer::end_tag('tr'); // .criterion
@@ -163,7 +163,7 @@ class gradingform_rubric_renderer extends plugin_renderer_base {
$leveltemplate = html_writer::start_tag('td', $tdattributes);
$leveltemplate .= html_writer::start_tag('div', array('class' => 'level-wrapper'));
if ($mode == gradingform_rubric_controller::DISPLAY_EDIT_FULL) {
$definition = html_writer::tag('textarea', htmlspecialchars($level['definition']), array('name' => '{NAME}[criteria][{CRITERION-id}][levels][{LEVEL-id}][definition]', 'cols' => '10', 'rows' => '4'));
$definition = html_writer::tag('textarea', s($level['definition']), array('name' => '{NAME}[criteria][{CRITERION-id}][levels][{LEVEL-id}][definition]', 'cols' => '10', 'rows' => '4'));
$score = html_writer::label(get_string('criterionempty', 'gradingform_rubric'), '{NAME}criteria{CRITERION-id}levels{LEVEL-id}', false, array('class' => 'accesshide'));
$score .= html_writer::empty_tag('input', array('type' => 'text','id' => '{NAME}criteria{CRITERION-id}levels{LEVEL-id}', 'name' => '{NAME}[criteria][{CRITERION-id}][levels][{LEVEL-id}][score]', 'size' => '3', 'value' => $level['score']));
} else {
@@ -171,7 +171,7 @@ class gradingform_rubric_renderer extends plugin_renderer_base {
$leveltemplate .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => '{NAME}[criteria][{CRITERION-id}][levels][{LEVEL-id}][definition]', 'value' => $level['definition']));
$leveltemplate .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => '{NAME}[criteria][{CRITERION-id}][levels][{LEVEL-id}][score]', 'value' => $level['score']));
}
$definition = $level['definition'];
$definition = s($level['definition']);
$score = $level['score'];
}
if ($mode == gradingform_rubric_controller::DISPLAY_EVAL) {
@@ -85,6 +85,7 @@ class MoodleQuickForm_rubriceditor extends HTML_QuickForm_input {
if (!$this->_flagFrozen) {
$mode = gradingform_rubric_controller::DISPLAY_EDIT_FULL;
$module = array('name'=>'gradingform_rubriceditor', 'fullpath'=>'/grade/grading/form/rubric/js/rubriceditor.js',
'requires' => array('base', 'dom', 'event', 'event-touch', 'escape'),
'strings' => array(array('confirmdeletecriterion', 'gradingform_rubric'), array('confirmdeletelevel', 'gradingform_rubric'),
array('criterionempty', 'gradingform_rubric'), array('levelempty', 'gradingform_rubric')
));
+1 -1
View File
@@ -156,7 +156,7 @@ $reporthtml = $report->get_grade_table();
// print submit button
if ($USER->gradeediting[$course->id] && ($report->get_pref('showquickfeedback') || $report->get_pref('quickgrading'))) {
echo '<form action="index.php" method="post">';
echo '<form action="index.php" enctype="application/x-www-form-urlencoded" method="post">'; // Enforce compatibility with our max_input_vars hack.
echo '<div>';
echo '<input type="hidden" value="'.s($courseid).'" name="id" />';
echo '<input type="hidden" value="'.sesskey().'" name="sesskey" />';
+1 -42
View File
@@ -1734,51 +1734,10 @@ class grade_report_grader extends grade_report {
/**
* Returns the maximum number of students to be displayed on each page
*
* Takes into account the 'studentsperpage' user preference and the 'max_input_vars'
* PHP setting. Too many fields is only a problem when submitting grades but
* we respect 'max_input_vars' even when viewing grades to prevent students disappearing
* when toggling editing on and off.
*
* @return int The maximum number of students to display per page
*/
public function get_students_per_page() {
global $USER;
static $studentsperpage = null;
if ($studentsperpage === null) {
$originalstudentsperpage = $studentsperpage = $this->get_pref('studentsperpage');
// Will this number of students result in more fields that we are allowed?
$maxinputvars = ini_get('max_input_vars');
if ($maxinputvars !== false) {
// We can't do anything about there being more grade items than max_input_vars,
// but we can decrease number of students per page if there are >= max_input_vars
$fieldsperstudent = 0; // The number of fields output per student
if ($this->get_pref('quickgrading') || $this->get_pref('showquickfeedback')) {
// Each array (grade, feedback) will gain one element
$fieldsperstudent ++;
}
$fieldsrequired = $studentsperpage * $fieldsperstudent;
if ($fieldsrequired >= $maxinputvars) {
$studentsperpage = $maxinputvars - 1; // Subtract one to be on the safe side
if ($studentsperpage<1) {
// Make sure students per page doesn't fall below 1, though if your
// max_input_vars is only 1 you've got bigger problems!
$studentsperpage = 1;
}
$a = new stdClass();
$a->originalstudentsperpage = $originalstudentsperpage;
$a->studentsperpage = $studentsperpage;
$a->maxinputvars = $maxinputvars;
debugging(get_string('studentsperpagereduced', 'grades', $a));
}
}
}
return $studentsperpage;
return $this->get_pref('studentsperpage');
}
}
@@ -30,6 +30,5 @@
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = 'es';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Español - España';
$string['thislanguage'] = 'Aragonés';
+5 -3
View File
@@ -30,17 +30,19 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Nije moguće kreirati bazu podataka.</p> <p>Određena baza podataka ne postoji i dati korisnik nema dozvolu da kreira bazu podataka.</p> <p>Site administrator bi trebao verificirati postavke baze podataka.</p>';
$string['cannotcreatelangdir'] = 'Nije moguće kreirati direktorij jezika';
$string['cannotcreatetempdir'] = 'Nije moguće kreirati privremeni direktorij';
$string['cannotdownloadcomponents'] = 'Nije moguće preuzeti komponente.';
$string['cannotdownloadzipfile'] = 'Nije moguće preuzeti arhivu';
$string['cannotdownloadcomponents'] = 'Nije moguće preuzeti komponente';
$string['cannotdownloadzipfile'] = 'Nije moguće preuzeti ZIP arhivu';
$string['cannotfindcomponent'] = 'Nije moguće pronaći komponentu.';
$string['cannotsavemd5file'] = 'Nije moguće sačuvati md5 datoteku.';
$string['cannotsavezipfile'] = 'Nije moguće sačuvati ZIP arhivu.';
$string['cannotunzipfile'] = 'Nije moguće raspakovati ZIP datoteku.';
$string['componentisuptodate'] = 'Komponenta je dostupna u svojoj najnovijoj verziji';
$string['dmlexceptiononinstall'] = '<p>Nastala je greška u bazi podataka: [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Nije uspjela provjera preuzete datoteke';
$string['invalidmd5'] = 'Neispravna md5 datoteka';
$string['invalidmd5'] = 'Provjerena varijabla (md5 datoteka) je pogrešna - pokušajte ponovo';
$string['missingrequiredfield'] = 'Nedostaje neko obavezno polje';
$string['remotedownloaderror'] = 'Preuzimanje komponente na Vaš server nije uspjelo. Provjerite podešavanja proksi servera. PHP cURL ekstenzija se preporučuje.<br /><br />Morate da preuzmete <a href="{$a->url}">{$a->url}</a> datoteku ručno, kopirate je u direktorij "{$a->dest}" na svom sereveru i tamo je raspakovati.';
$string['wrongdestpath'] = 'Pogrešna odredišna putanja';
+1 -1
View File
@@ -40,5 +40,5 @@ $string['cliunknowoption'] = 'Opcions invàlides:
{$a}
L\'opció --help us orientarà.';
$string['cliyesnoprompt'] = 'Escriu y (significa Sí) o n (significa No)';
$string['environmentrequireinstall'] = 'es requereix instal·lar/habilitar';
$string['environmentrequireinstall'] = 'cal instal·lar-lo i habilitar-lo';
$string['environmentrequireversion'] = 'esteu executant la versió {$a->current} i es requereix la {$a->needed}';
+3
View File
@@ -30,6 +30,8 @@
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 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';
$string['cannotdownloadcomponents'] = 'No s\'han pogut baixar components';
@@ -39,6 +41,7 @@ $string['cannotsavemd5file'] = 'No s\'ha pogut desar el fitxer md5';
$string['cannotsavezipfile'] = 'No s\'ha pogut desar el fitxer zip';
$string['cannotunzipfile'] = 'No s\'ha pogut descomprimir el fitxer';
$string['componentisuptodate'] = 'El component està al dia';
$string['dmlexceptiononinstall'] = '<p>S\'ha produït un error de la base de dades [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Ha fallat la comprovació del fitxer baixat';
$string['invalidmd5'] = 'L\'md5 no és vàlid. Torneu-ho a provar';
$string['missingrequiredfield'] = 'Falta algun camp necessari';
+53
View File
@@ -0,0 +1,53 @@
<?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['cannotcreatedboninstall'] = '<p>ناتوانرێت داتابەیس دروست بکرێت.</p>
<p>داتابەیستی دیاری کراو بوونی نییەو بەکارهێنەری دراو مۆڵەتی دروست کردنی داتابەیسی نییە.</p>
<p>پێویستە سەرپەرشتیاری ماڵپەڕ سازاندنی داتابەیس پەسەند بکات.</p>';
$string['cannotcreatelangdir'] = 'ناتوانریت ڕابەرنامەی زمان دروست بکرێت';
$string['cannotcreatetempdir'] = 'ناتوانرێت ڕابەرنامەی کاتیی دروست بکرێت';
$string['cannotdownloadcomponents'] = 'ناتوانرێت پێکهێنەرەکان داببەزێنرێن';
$string['cannotdownloadzipfile'] = 'ناتوانریت فایلی زیپ داببەزێنرێت';
$string['cannotfindcomponent'] = 'تانتوانرێت پێکهێنەر بدۆزرێتەوە';
$string['cannotsavemd5file'] = 'ناتوانرێت فایلی md5 پاشەکەوت بکرێت';
$string['cannotsavezipfile'] = 'ناتوانرێت فایلی زیپ پاشەکەوت بکرێت';
$string['cannotunzipfile'] = 'ناتوانرێت فایلەکە لە زیپ بهێنرێتە دەرەوە';
$string['componentisuptodate'] = 'سەرنجەکە تەواو نوێیە';
$string['dmlexceptiononinstall'] = '<p>هەڵە ڕویدا لە داتابەیس [{$a->errorcode}]. <br />{$a->debuginfo}</p>.
<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'پشکنینی دابەزاندنی فایل سەرکەوتوو نەبوو';
$string['invalidmd5'] = 'پشکنینی گۆڕاو هەڵە بو - دووبارە بکەوە';
$string['missingrequiredfield'] = 'هەندێ بواری داواکراو دیاری نەکراون';
$string['wrongdestpath'] = 'ڕێڕەوی ئامانج هەڵەیە';
$string['wrongsourcebase'] = 'بنچینەی URLی سەرچاوە هەڵەیە';
$string['wrongzipfilename'] = 'ناوی فایلی زیپ هەڵەیە';
+2
View File
@@ -31,4 +31,6 @@
defined('MOODLE_INTERNAL') || die();
$string['language'] = 'زمان';
$string['next'] = 'دواتر';
$string['previous'] = 'پێشوو';
$string['reload'] = 'بارکردنەوە';
+4
View File
@@ -30,6 +30,9 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Nelze vytvořit databázi.</p>
<p>Určená databáze neexistuje a uživatel nemá oprávnění k vytvoření databáze.</p>
<p>Správce stránek by měl ověřit konfiguraci databáze.</p>';
$string['cannotcreatelangdir'] = 'Nelze vytvořit adresář pro jazykové soubory';
$string['cannotcreatetempdir'] = 'Nelze vytvořit dočasný adresář';
$string['cannotdownloadcomponents'] = 'Nelze stáhnout komponenty';
@@ -39,6 +42,7 @@ $string['cannotsavemd5file'] = 'Nelze uložit soubor MD5';
$string['cannotsavezipfile'] = 'Nelze uložit soubor ZIP';
$string['cannotunzipfile'] = 'Nelze dekomprimovat soubor';
$string['componentisuptodate'] = 'Komponenta je aktuální';
$string['dmlexceptiononinstall'] = '<p>Došlo k chybě databáze [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Selhala kontrola staženého souboru';
$string['invalidmd5'] = 'Ověření selhalo - zkuste to znovu';
$string['missingrequiredfield'] = 'Chybí některé z povinných polí';
+2
View File
@@ -30,6 +30,7 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Methu creu y gronfa ddata.</p> <p>Dydyr gronfa ddata benodedig ddim yn bodoli a does gan y defnyddiwr dan sylw ddim hawl i greu cronfa ddata.</p> <p>Dylai gweinyddwr y safle wirio ffurfweddu cronfeydd data.</p>';
$string['cannotcreatelangdir'] = 'Does dim modd creu cyfeiriadur iaith';
$string['cannotcreatetempdir'] = 'Does dim modd creu cyfeiriadur dros dro';
$string['cannotdownloadcomponents'] = 'Does dim modd llwytho cydrannau i lawr';
@@ -39,6 +40,7 @@ $string['cannotsavemd5file'] = 'Does dim modd cadw ffeil md5';
$string['cannotsavezipfile'] = 'Does dim modd cadw ffeil ZIP';
$string['cannotunzipfile'] = 'Does dim modd dadzipio\'r ffeil';
$string['componentisuptodate'] = 'Mae\'r gydran wedi\'i diweddaru';
$string['dmlexceptiononinstall'] = '<p>Roed gwall cronfa ddata [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Heb lwyddo i wirio\'r ffeil a lwythwyd i lawr';
$string['invalidmd5'] = 'Roedd y newidyn gwirio yn anghywir - rhowch gynnig arall arni';
$string['missingrequiredfield'] = 'Mae maes gofynnol ar goll';
+2 -2
View File
@@ -38,7 +38,7 @@ $string['clitypevalue'] = 'Wert eingeben';
$string['clitypevaluedefault'] = 'Wert eingeben oder Standardwert benutzen ({$a})';
$string['cliunknowoption'] = 'Nicht erkannte Optionen:
{$a}
Hilfe wird über die Option -help angezeigt.';
Hilfe wird über die Option --help angezeigt.';
$string['cliyesnoprompt'] = 'y (yes=ja) oder n (no=nein) eingeben';
$string['environmentrequireinstall'] = 'muss installiert und aktiviert sein';
$string['environmentrequireversion'] = 'Version {$a->needed} ist erforderlich - aktuell ist {$a->current} installiert.';
$string['environmentrequireversion'] = 'notwendig: {$a->needed} - installiert: {$a->current}';
+2
View File
@@ -30,6 +30,7 @@
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['cannotdownloadcomponents'] = 'Einige Komponenten können nicht geladen werden.';
@@ -39,6 +40,7 @@ $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>';
$string['downloadedfilecheckfailed'] = 'Die Überprüfung der heruntergeladenen Datei ist gescheitert';
$string['invalidmd5'] = 'Der Prüfwert ist ungültig. Versuchen Sie es bitte nochmal!';
$string['missingrequiredfield'] = 'Einige erforderliche Felder sind nicht ausgefüllt.';
+1 -1
View File
@@ -83,6 +83,6 @@ $string['welcomep30'] = 'Diese Version von <strong>{$a->installername}</strong>
$string['welcomep40'] = 'Das Paket enthält: <strong>Moodle {$a->moodlerelease} ({$a->moodleversion})</strong>.';
$string['welcomep50'] = 'Die Nutzung dieser Anwendungen ist lizenzrechtlich geprüft. Alle Anwendungen von <strong>{$a->installername}</strong> sind
<a href="http://www.opensource.org/docs/definition_plain.html"> Open Source </a> und unterliegen der <a href="http://www.gnu.org/copyleft/gpl.html"> GPL</a> Lizenz.';
$string['welcomep60'] = 'Die folgenden Webseiten führen Sie in einfachen Schritten durch die Konfiguration und Installation von <strong>Moodle</strong> auf Ihrem Computer. Sie können die vorgeschlagenen Einstellungen übernehmen oder an Ihre Bedürfnisse anpassen.';
$string['welcomep60'] = 'Die folgenden Webseiten führen Sie in einfachen Schritten durch die Installation von <strong>Moodle</strong> auf Ihrem Computer. Sie können die vorgeschlagenen Einstellungen übernehmen oder an eigene Bedürfnisse anpassen.';
$string['welcomep70'] = 'Klicken Sie auf die Taste \'Weiter\', um mit der Installation von Moodle fortzufahren.';
$string['wwwroot'] = 'Webadresse';
+2
View File
@@ -30,6 +30,7 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = 'གཞི་གྲངས་མཛོད་<p>བཟོ་མི་བཏུབ། བཀོད་མི་གཞི་གྲངས་མཛོད་</p> <p>དེ་མེད་པའི་ཁར་ ལག་ལེན་པ་ལུ་ གཞི་གྲངས་མཛོད་བཟོ་ནི་གི་གནང་བ་མེད།གནས་ཁོངས་བདག་སྐྱོང་པ་ </p> <p>་གིས་གཞི་གྲངས་མཛོད་དེ་གི་སྡེབ་སྒྲིག་</p>གཏན་འབེབས་འབད་དགོ';
$string['cannotcreatelangdir'] = 'སྐད་ཡིག་སྣོད་ཐོ་ གསར་བསྐྲུན་འབད་མི་བཏུབ།';
$string['cannotcreatetempdir'] = 'གནས་སྐབས་ཀྱི་སྣོད་ཐོ་ གསར་བསྐྲུན་འབད་མི་བཏུབ།';
$string['cannotdownloadcomponents'] = 'ཆ་ཤས་ཚུ་ཕབ་ལེན་འབད་མི་བཏུབ།';
@@ -39,6 +40,7 @@ $string['cannotsavemd5file'] = 'md5 ཡིག་སྣོད་ སྲུངས
$string['cannotsavezipfile'] = 'ZIP ཡིག་སྣོད་ སྲུངས་མི་བཏུབ།';
$string['cannotunzipfile'] = 'ཡིག་སྣོད་ unzip འབད་མི་བཏུབ།';
$string['componentisuptodate'] = 'ཆ་ཤས་འདི་ དུས་མཐུན་སྦེ་ཡོད།';
$string['dmlexceptiononinstall'] = 'p>གཞི་གྲངས་མཛོད་ཀྱི་འཛོལ་བཅིག་འཐོན་ནུག [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'ཕབ་ལེན་འབད་ཡོད་པའི་ཡིག་སྣོད་ཞིབ་དཔྱད་འཐུས་ཤོར་བྱུང་ཡོདཔ།';
$string['invalidmd5'] = 'check འགྱུར་ཅནའདི་ཕྱི་འགྱུར་ཨིན་མས་ - ལོག་འབད་གནང་།';
$string['missingrequiredfield'] = 'དགོ་པའི་ས་སྒོ་འདི་མིན་འདུག';
+4
View File
@@ -30,6 +30,9 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Cannot create the database.</p>
<p>The specified database does not exist and the given user does not have permission to create the database.</p>
<p>The site administrator should verify database configuration.</p>';
$string['cannotcreatelangdir'] = 'Cannot create lang directory';
$string['cannotcreatetempdir'] = 'Cannot create temp directory';
$string['cannotdownloadcomponents'] = 'Cannot download components';
@@ -39,6 +42,7 @@ $string['cannotsavemd5file'] = 'Cannot save md5 file';
$string['cannotsavezipfile'] = 'Cannot save ZIP file';
$string['cannotunzipfile'] = 'Cannot unzip file';
$string['componentisuptodate'] = 'Component is up-to-date';
$string['dmlexceptiononinstall'] = '<p>A database error has occurred [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Downloaded file check failed';
$string['invalidmd5'] = 'The check variable was wrong - try again';
$string['missingrequiredfield'] = 'Some required field is missing';
+35
View File
@@ -0,0 +1,35 @@
<?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['cliunknowoption'] = 'Unrecognized options:
{$a}
Please use --help option.';
@@ -30,5 +30,4 @@
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = 'es';
$string['thislanguage'] = 'Español - Argentina';
$string['thislanguage'] = 'Esperanto';
+2
View File
@@ -30,6 +30,7 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p> No se puede crear la base de datos. </p><p> La base de datos especificada no existe y el usuario indicado no tiene permiso para crear la base de datos. </p><p> El administrador del sitio debe comprobar la configuración de base de datos. </p>';
$string['cannotcreatelangdir'] = 'No se puede crear el directorio de idioma.';
$string['cannotcreatetempdir'] = 'No se puede crear el directorio temp.';
$string['cannotdownloadcomponents'] = 'No se puede descargar componentes';
@@ -39,6 +40,7 @@ $string['cannotsavemd5file'] = 'No se puede guardar el archivo md5';
$string['cannotsavezipfile'] = 'No se puede guardar el archivo ZIP';
$string['cannotunzipfile'] = 'No se puede descomprimir el archivo';
$string['componentisuptodate'] = 'El componente está actualizado';
$string['dmlexceptiononinstall'] = '<p>Se ha producido un error de base de datos [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Ha fallado la comprobación del archivo descargado';
$string['invalidmd5'] = 'La variable de verificación MD5 es incorrecta no es valida - trate nuevamente';
$string['missingrequiredfield'] = 'Falta algún campo necesario';
+1
View File
@@ -30,5 +30,6 @@
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = '';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Español - Internacional';
+2
View File
@@ -30,6 +30,7 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>No puede crearse la BasedeDatos.</p> <p>La BasedeDatos especificada no existe y el usuario dado no tiene permiso para crear la BasedeDatos.</p> <p>El administrador del sitio debería verificar la configuración de la BasedeDatos.</p>';
$string['cannotcreatelangdir'] = 'No se puede crear el directorio de idioma.';
$string['cannotcreatetempdir'] = 'No se puede crear el directorio temp.';
$string['cannotdownloadcomponents'] = 'No se puede descargar componentes';
@@ -39,6 +40,7 @@ $string['cannotsavemd5file'] = 'No se puede guardar el archivo md5';
$string['cannotsavezipfile'] = 'No se puede guardar el archivo ZIP';
$string['cannotunzipfile'] = 'No se puede descomprimir el archivo';
$string['componentisuptodate'] = 'El componente está actualizado';
$string['dmlexceptiononinstall'] = '<p>Ocurrió un error en la BasedeDatos[{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Ha fallado la comprobación del archivo descargado';
$string['invalidmd5'] = 'La variable de verificación MD5 es incorrecta no es valida - trate nuevamente';
$string['missingrequiredfield'] = 'Falta algún campo necesario';
+4
View File
@@ -30,6 +30,9 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Impossible de créer la base de données.</p>
<p>La base de données indiquées n\'existe pas et l\'utilisateur spécifié n\'a pas les autorisations permettant de créer une base de données.</p>.
<p>L\'administrateur du site doit revoir la configuration de la base de données.</p>';
$string['cannotcreatelangdir'] = 'Création du dossier lang impossible';
$string['cannotcreatetempdir'] = 'Création du dossier temp impossible';
$string['cannotdownloadcomponents'] = 'Téléchargement des composants impossible';
@@ -39,6 +42,7 @@ $string['cannotsavemd5file'] = 'Enregistrement du fichier md5 impossible';
$string['cannotsavezipfile'] = 'Enregistrement du fichier ZIP impossible';
$string['cannotunzipfile'] = 'Décompression du fichier ZIP impossible';
$string['componentisuptodate'] = 'Le composant est à jour';
$string['dmlexceptiononinstall'] = '<p>Une erreur de base de données est survenue [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'La vérification du fichier téléchargé à échoué';
$string['invalidmd5'] = 'Le code de contrôle md5 n\'est pas valide';
$string['missingrequiredfield'] = 'Un champ obligatoire n\'est pas renseigné';
+2
View File
@@ -32,4 +32,6 @@ defined('MOODLE_INTERNAL') || die();
$string['clianswerno'] = 'एन';
$string['cliansweryes'] = 'वाई';
$string['cliincorrectvalueretry'] = 'ग़लत मान, कृपया पुनः प्रयास करें';
$string['clitypevalue'] = 'टाइप मूल्य';
$string['cliyesnoprompt'] = 'टाइप Y (का मतलब है हाँ) या N (का मतलब है नहीं )';
+2
View File
@@ -30,6 +30,7 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Az adatbázis nem hozható létre.</p> <p>A megadott adatbázis nem létezik, a felhasználó pedig nem jogosult létrehozni egyet.</p> <p>A portál rendszergazdájának ellenőrizni kell az adatbázis-beállításokat.</p>';
$string['cannotcreatelangdir'] = 'Nem hozható létre a lang könyvtár.';
$string['cannotcreatetempdir'] = 'Nem hozható létre a temp könyvtár.';
$string['cannotdownloadcomponents'] = 'Az összetevőket nem lehet letölteni.';
@@ -39,6 +40,7 @@ $string['cannotsavemd5file'] = 'Az md5 állományt nem lehet elmenteni.';
$string['cannotsavezipfile'] = 'A tömörített állományt nem lehet elmenteni.';
$string['cannotunzipfile'] = 'A tömörített állományt nem lehet kicsomagolni.';
$string['componentisuptodate'] = 'Az összetevő a legújabb.';
$string['dmlexceptiononinstall'] = '<p>Adatbázishiba történt [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'A letöltött állomány ellenőrzése nem sikerült.';
$string['invalidmd5'] = 'Az ellenőrző változó hibás volt próbálkozzék ismét';
$string['missingrequiredfield'] = 'Egy szükséges mező hiányzik.';
+1 -1
View File
@@ -55,7 +55,7 @@ $string['paths'] = 'Útvonalak';
$string['pathserrcreatedataroot'] = 'A telepítő nem tudja létrehozni az adatkönyvtárat ({$a->dataroot}).';
$string['pathshead'] = 'Útvonalak megerősítése';
$string['pathsrodataroot'] = 'Az adatok gyökérkönyvtára nem írható.';
$string['pathsroparentdataroot'] = 'A felettes könyvtás ({$a->parent}) nem írható. A telepítő nem tudja létrehozni az adatkönyvtárat ({$a->dataroot}).';
$string['pathsroparentdataroot'] = 'A felettes könyvtár ({$a->parent}) nem írható. A telepítő nem tudja létrehozni az adatkönyvtárat ({$a->dataroot}).';
$string['pathssubadmindir'] = 'Egy pár webes gazdagép esetén az /admin speciális URL pl. a vezérlőpanel eléréséhez. Ez ütközik a Moodle admin oldalainak standard helyével. Javítás: a telepítésben nevezze át a rendszergazda könyvtárát, az új nevet pedig írja be ide. Például: <em>moodleadmin</em>. Ezzel helyrehozhatók a Moodle rendszergazdai ugrópontjai.';
$string['pathssubdataroot'] = 'Szüksége van egy helyre, ahol a Moodle mentheti a feltöltött állományokat. Ez a könyvtár a webszerver felhasználója (általában \'nobody\' vagy \'apache\') számára legyen mind olvasható, MIND ÍRHATÓ. Ha nem létezik, a telepítő megpróbálja létrehozni.';
$string['pathssubdirroot'] = 'Teljes útvonal a Moodle telepítéséhez. ';
+1
View File
@@ -30,5 +30,6 @@
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = '';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'magyar';
+2
View File
@@ -30,5 +30,7 @@
defined('MOODLE_INTERNAL') || die();
$string['clianswerno'] = 'ոչ';
$string['cliansweryes'] = 'այո';
$string['environmentrequireinstall'] = 'անհրաժեշտ է, որպեսզի տեղակայված և թույլատրված լինի';
$string['environmentrequireversion'] = 'պահանջվում է {$a->needed} տարբերակը, դուք գործարկում եք՝ {$a->current}';
+3
View File
@@ -30,6 +30,8 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Non è possibile creare il database </p> <p>Il database non esiste e l\'utente fornito non è autorizzato a crearlo.</p>
<p>E\' necessario che l\'amministratore del sito verifichi la configurazione del database.</p>';
$string['cannotcreatelangdir'] = 'Non è possibile creare la cartella lang';
$string['cannotcreatetempdir'] = 'Non è possibile creare la cartella temp';
$string['cannotdownloadcomponents'] = 'Non è possibile scaricare componenti.';
@@ -39,6 +41,7 @@ $string['cannotsavemd5file'] = 'Non è possibile salvare il file md5';
$string['cannotsavezipfile'] = 'Non è possibile salvare il file ZIP';
$string['cannotunzipfile'] = 'Non è possibile decomprimere il file.';
$string['componentisuptodate'] = 'Il componente è aggiornato.';
$string['dmlexceptiononinstall'] = '<p>Si è verificato un errore nel database: [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Il controllo del file scaricato non è andato a buon fine.';
$string['invalidmd5'] = 'La variabile di controllo era errata - prova di nuovo';
$string['missingrequiredfield'] = 'Mancano alcuni campi richiesti';
+3 -3
View File
@@ -46,7 +46,7 @@ $string['dbprefix'] = 'Prefisso tabelle';
$string['dirroot'] = 'Cartella di Moodle';
$string['environmenthead'] = 'Verifica dell\'ambiente...';
$string['environmentsub2'] = 'Ciascuna release di Moodle prevede come requisito minimo una data versione del PHP ed una serie di estensioni. Prima di una installazione o di un aggiornamento viene eseguita la verifica dei requisiti minimi. Se non sai come installare nuove versioni del PHP o le sue estensioni, contatta l\'amministratore del tuo server.';
$string['errorsinenvironment'] = 'Ci sono problemi nel vostro ambiente';
$string['errorsinenvironment'] = 'Sono stati riscontarti problemi nel tuo ambiente';
$string['installation'] = 'Installazione';
$string['langdownloaderror'] = 'Purtroppo non è stato possibile scaricare la lingua "{$a}". L\'installazione proseguirà in lingua Inglese.';
$string['memorylimithelp'] = '<p>Il limite di memoria assegnata al PHP attualmente è {$a}.</p>
@@ -57,10 +57,10 @@ $string['memorylimithelp'] = '<p>Il limite di memoria assegnata al PHP attualmen
<ol>
<li>Se possibile, ricompila il PHP con l\'opzione <i>--enable-memory-limit</i>.
Questo consentirà a Moodle di impostare in autonomia il limite di memoria.</li>
<li>Se hai accesso al file php.ini, è possibile modificare la variabile <b>memory_limit</b> a un valore più alto, ad esempio 40M. Se non hai accesso, potete chiedere al vostro amministratore di sistema di farlo.</li>
<li>Se hai accesso al file php.ini, è possibile modificare la variabile <b>memory_limit</b> a un valore più alto, ad esempio 40M. Se non hai accesso, puoi chiedere all\'amministratore di sistema di farlo.</li>
<li>Su alcuni server con il PHP è possibile creare un file .htaccess nella cartella di Moodle contenente questa linea:
<blockquote>php_value memory_limit 40M</blockquote>
<p>Tuttavia, su alcuni server la direttiva potrebbe impedire a <b>tutte</b> le pagine PHP di funzionare (apapriranno degli erorri durante la visualizzazione delle pagine), in tal caso dovrai rimuovere il file .htaccess.</li></ol>';
<p>Tuttavia, su alcuni server la direttiva potrebbe impedire a <b>tutte</b> le pagine PHP di funzionare (appariranno degli errori durante la visualizzazione delle pagine), in tal caso dovrai rimuovere il file .htaccess.</li></ol>';
$string['paths'] = 'Percorsi';
$string['pathserrcreatedataroot'] = 'Lo script di installazione non ha potuto creare la Cartella dei dati ({$a->dataroot}).';
$string['pathshead'] = 'Conferma percorsi';
+5 -1
View File
@@ -30,6 +30,9 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>データベースを作成できません。</p>
<p>指定されたデータベースは存在しません。また、ユーザにはデータベースを作成するパーミッションがありません。</p>
<p>サイト管理者はデータベース設定を確認してください。</p>';
$string['cannotcreatelangdir'] = 'langディレクトリを作成できません。';
$string['cannotcreatetempdir'] = 'tempディレクトリを作成できません。';
$string['cannotdownloadcomponents'] = 'コンポーネットをダウンロードできません。';
@@ -39,10 +42,11 @@ $string['cannotsavemd5file'] = 'mp5ファイルを保存できません。';
$string['cannotsavezipfile'] = 'ZIPファイルを保存できません。';
$string['cannotunzipfile'] = 'ZIPファイルを解凍できません。';
$string['componentisuptodate'] = 'コンポーネントは最新です。';
$string['dmlexceptiononinstall'] = '<p>データベースエラーが発生しました: [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'ダウンロードファイルのチェックに失敗しました。';
$string['invalidmd5'] = 'チェック変数が正しくありません - 再度お試しください。';
$string['missingrequiredfield'] = 'いくつかの必須入力フィールドが入力されていません。';
$string['remotedownloaderror'] = 'あなたのサーバへのコンポーネントのダウンロードに失敗しました。プロクシ設定を確認してください。PHP cURL拡張モジュールの使用を強くお勧めします。<br /><br /><a href="{$a->url}">{$a->url}</a>ファイルを手動でダウンロードした後、あなたのサーバの「{$a->dest}」にコピーおよび解凍してください。';
$string['wrongdestpath'] = '宛先パスが正しくありません。';
$string['wrongsourcebase'] = 'ソースURIベースが正しくありません。';
$string['wrongsourcebase'] = 'ソースURLベースが正しくありません。';
$string['wrongzipfilename'] = 'ZIPファイル名が正しくありません。';
+2 -2
View File
@@ -66,10 +66,10 @@ $string['pathserrcreatedataroot'] = 'データディレクトリ ({$a->dataroot}
$string['pathshead'] = 'パスを確認する';
$string['pathsrodataroot'] = 'datarootディレクトリに書き込み権がありません。';
$string['pathsroparentdataroot'] = '親ディレクトリ ({$a->parent}) に書き込み権がありません。データディレクトリ ({$a->dataroot}) は、インストーラーで作成できません。';
$string['pathssubadmindir'] = '極わずかですが、あなたがコントロールパネル等にアクセスするため、特別なURIとして/adminを使用するウェブホストがあります。残念なことに、これはMoodle管理ページの標準的なローケーションと競合してしまいます。ここに新しいディレクトリ名を入力することで、あなたのMoodleのadminディレクトリを修正することができます。例えば、<em>moodleadmin</em>です。これにより、Moodleのadminリンクが修正されます。';
$string['pathssubadmindir'] = '極わずかですが、あなたがコントロールパネル等にアクセスするため、特別なURLとして/adminを使用するウェブホストがあります。残念なことに、これはMoodle管理ページの標準的なローケーションと競合してしまいます。ここに新しいディレクトリ名を入力することで、あなたのMoodleのadminディレクトリを修正することができます。例えば、<em>moodleadmin</em>です。これにより、Moodleのadminリンクが修正されます。';
$string['pathssubdataroot'] = 'あなたには、Moodleがファイルをアップロードすることのできる場所が必要です。このディレクトリは、ウェブサーバユーザ (通常「nobody」または「apache」) から読み込みおよび「書き込み」できる必要があります。しかし、ウェブからは直接アクセスできないようにしてください。データディレクトリがない場合、インストーラーは作成を試みます。';
$string['pathssubdirroot'] = 'Moodleインストールに関するフルディレクトリパスです。';
$string['pathssubwwwroot'] = 'Moodleにアクセスすることのできるフルウェブアドレスです。複数アドレスを使用して、Moodleにアクセスすることはできません。あなたのサイトに複数のパブリックアドレスがある場合、このアドレスを除く、すべてのアドレスにパーマネントリダイレクトを設定してください。あなたのサイトにイントラネットおよびインターネットからアクセスできる場合、ここにはパブリックアドレスを入力してください。また、イントラネットユーザもパブリックアドレスを利用できるよう、DNSを設定してください。アドレスが正しくない場合、あなたのブラウザのURIを変更して、異なる値でインストールを再開してください。';
$string['pathssubwwwroot'] = 'Moodleにアクセスすることのできるフルウェブアドレスです。複数アドレスを使用して、Moodleにアクセスすることはできません。あなたのサイトに複数のパブリックアドレスがある場合、このアドレスを除く、すべてのアドレスにパーマネントリダイレクトを設定してください。あなたのサイトにイントラネットおよびインターネットからアクセスできる場合、ここにはパブリックアドレスを入力してください。また、イントラネットユーザもパブリックアドレスを利用できるよう、DNSを設定してください。アドレスが正しくない場合、あなたのブラウザのURLを変更して、異なる値でインストールを再開してください。';
$string['pathsunsecuredataroot'] = 'dirrootロケーションが安全ではありません。';
$string['pathswrongadmindir'] = 'adminディレクトリがありません。';
$string['phpextension'] = '{$a} 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['language'] = 'Oqaaseq';
$string['next'] = 'Tullia';
+36
View File
@@ -0,0 +1,36 @@
<?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['cannotcreatelangdir'] = 'Negalima sukurti kalbos katalogo';
$string['cannotcreatetempdir'] = 'Negalima sukurti laikinojo katalogo';
$string['cannotdownloadcomponents'] = 'Negalima atsisiųsti komponentų';
$string['cannotdownloadzipfile'] = 'Negalima atsisiųsti ZIP failo';
+5
View File
@@ -30,8 +30,13 @@
defined('MOODLE_INTERNAL') || die();
$string['clianswerno'] = 'n';
$string['cliansweryes'] = 't';
$string['cliincorrectvalueerror'] = 'Klaida, klaidinga "{$a->option}" reikšmė "{$a->value}"';
$string['cliincorrectvalueretry'] = 'Klaidinga reikšmė, bandykite dar kartą';
$string['clitypevalue'] = 'tipo reikšmė';
$string['clitypevaluedefault'] = 'tipo reikšmė, paspauskite „Enter“, jei norite naudoti numatytąją reikšmę ({$a})';
$string['cliunknowoption'] = 'Neatpažintos parinktys: {$a} naudokite --žinyno parinktį.';
$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}';
+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['thislanguage'] = 'Mongolian';
+4
View File
@@ -30,6 +30,9 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Kan databank niet maken.</p>
<p>De opgegeven databank bestaat niet en de opgegeven gebruiker heeft onvoldoende rechten om de databank te maken.</p>
<p>De site-beheerder moet de databankconfiguratie controleren.</p>';
$string['cannotcreatelangdir'] = 'Kan lang map niet maken';
$string['cannotcreatetempdir'] = 'Kan tijdelijke map niet maken.';
$string['cannotdownloadcomponents'] = 'Kan componenten niet downloaden.';
@@ -39,6 +42,7 @@ $string['cannotsavemd5file'] = 'Kan md5-bestand niet bewaren.';
$string['cannotsavezipfile'] = 'Kan ZIP-bestand niet bewaren.';
$string['cannotunzipfile'] = 'Kon bestand niet unzippen';
$string['componentisuptodate'] = 'Component is up-to-date';
$string['dmlexceptiononinstall'] = '<p>Databankfout [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Controle van het gedownloade bestand mislukt';
$string['invalidmd5'] = 'De controlevariable was fout - probeer nog eens';
$string['missingrequiredfield'] = 'Vereist veld ontbreekt';
+4
View File
@@ -30,6 +30,9 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotcreatedboninstall'] = '<p>Kan ikke opprette databasen.</p>
<p>Den angitte databasen eksisterer ikke og oppgitt bruker har ikke rettigheter til å opprette databasen.</p>
<p>Portaladministratoren derfor verifisere databaseoppsettet.</p>';
$string['cannotcreatelangdir'] = 'Kan ikke opprette mappen \'lang\'.';
$string['cannotcreatetempdir'] = 'Kan ikke opprette mappen \'temp';
$string['cannotdownloadcomponents'] = 'Kan ikke laste ned komponentene.';
@@ -39,6 +42,7 @@ $string['cannotsavemd5file'] = 'Kan ikke lagre md5-fil.';
$string['cannotsavezipfile'] = 'Kan ikke lagre ZIP-fil.';
$string['cannotunzipfile'] = 'Kan ikke pakke opp filen.';
$string['componentisuptodate'] = 'Komponenten er oppdatert';
$string['dmlexceptiononinstall'] = '<p>Det oppstod en databasefeil [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'Sjekk av nedlastet fil mislykkes.';
$string['invalidmd5'] = 'Ugyldig md5, prøv igjen';
$string['missingrequiredfield'] = 'Noen påkrevde felt mangler';
+1
View File
@@ -30,5 +30,6 @@
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = '';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Norsk - bokmål';
+44
View File
@@ -0,0 +1,44 @@
<?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'] = 'n';
$string['cliansweryes'] = 'y';
$string['cliincorrectvalueerror'] = 'Error, valor incorrecte « {$a->value} » per lo paramètre « {$a->option} »';
$string['cliincorrectvalueretry'] = 'Valor incorrecte, veuillez réessayer';
$string['clitypevalue'] = 'tipe valor';
$string['clitypevaluedefault'] = 'tipe valor, tapez Entrée per utilizar la valor per defaut ({$a})';
$string['cliunknowoption'] = 'Options non reconnues :
{$a}.
Utilisez l\'option --help.';
$string['cliyesnoprompt'] = 'Tapez y (pour oui) o n (pour non)';
$string['environmentrequireinstall'] = 'doit être installé e activé';
$string['environmentrequireversion'] = 'la version {$a->needed} es requise ; vous utilisez actualament la version {$a->current}';
+51
View File
@@ -0,0 +1,51 @@
<?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['cannotcreatedboninstall'] = '<p>Impossible de crear la banca de donadas.</p>
<p>La banca de donadas indicada existís pas e l\'utilizaire especificat a pas las autorizacions que permeton de crear una banca de donadas.</p>.
<p>L\'administrator del site deu repassar la configuracion de la banca de donadas.</p>';
$string['cannotcreatelangdir'] = 'Creacion del dorsièr lang impossible';
$string['cannotcreatetempdir'] = 'Creacion del dorsièr temp impossibla';
$string['cannotdownloadcomponents'] = 'Telecargament dels components impossible';
$string['cannotdownloadzipfile'] = 'Telecargament del fichièr ZIP impossible';
$string['cannotfindcomponent'] = 'Component introbable';
$string['cannotsavemd5file'] = 'Enregistrament del fichièr md5 impossible';
$string['cannotsavezipfile'] = 'Enregistrament del fichièr ZIP impossible';
$string['cannotunzipfile'] = 'Descompression del fichièr ZIP impossibla';
$string['componentisuptodate'] = 'Lo component es a jorn';
$string['dmlexceptiononinstall'] = '<p>Una error de banca de donadas s\'es produsida [{$a->errorcode}].<br />{$a->debuginfo}</p>';
$string['downloadedfilecheckfailed'] = 'La verificacion del fichièr telecargat a fracassat';
$string['invalidmd5'] = 'Lo còde de contraròtle md5 es pas valid';
$string['missingrequiredfield'] = 'Un camp obligatòri es pas completat';
$string['wrongdestpath'] = 'Camin de destinacion incorrècte';
$string['wrongsourcebase'] = 'Adreça URL de basa de la font incorrècta';
$string['wrongzipfilename'] = 'Nom de fichièr ZIP incorrècte';
+35
View File
@@ -0,0 +1,35 @@
<?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'] = 'fr';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Lengadocian';
+36
View File
@@ -0,0 +1,36 @@
<?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['language'] = 'Langue';
$string['next'] = 'Seguent';
$string['previous'] = 'Précédent';
$string['reload'] = 'Actualiser';

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