Compare commits

..

602 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) cbb12cf972 Moodle release 2.3.11 2014-01-11 15:57:08 +01:00
Eloy Lafuente (stronk7) 86290203d9 Merge branch 'install_23_STABLE' of git://git.moodle.org/moodle-install into MOODLE_23_STABLE 2014-01-11 15:57:04 +01:00
AMOS bot c82c32ccaf Automatically generated installer lang files 2014-01-09 00:42:17 +00:00
Rajesh Taneja c49b7392a8 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:52 +08:00
Rajesh Taneja 87cf7ea783 MDL-42883 Administration: Check sessionkey before taking action on user profile fields 2014-01-06 13:59:23 +08:00
AMOS bot 7b1750734c Automatically generated installer lang files 2013-12-30 00:43:29 +00:00
AMOS bot 356e2b500f Automatically generated installer lang files 2013-12-29 00:43:30 +00:00
AMOS bot 3a0fe18ddf Automatically generated installer lang files 2013-12-23 12:40:18 +00:00
AMOS bot eb103862bb Automatically generated installer lang files 2013-12-13 00:42:20 +00:00
AMOS bot de23ec6438 Automatically generated installer lang files 2013-12-04 00:43:20 +00:00
AMOS bot 32bfcdd502 Automatically generated installer lang files 2013-12-02 00:43:00 +00:00
AMOS bot edec209469 Automatically generated installer lang files 2013-11-28 09:12:47 +00:00
AMOS bot 3fb1177ff6 Automatically generated installer lang files 2013-11-27 00:48:29 +00:00
Eloy Lafuente (stronk7) 88b51a719e weekly release 2.3.10+ 2013-11-21 19:33:23 +01:00
AMOS bot 1c72f3bd84 Automatically generated installer lang files 2013-11-19 00:40:32 +00:00
Eloy Lafuente (stronk7) 4f55378528 NOBUG: Fix version comment to stable correct alt 2013-11-15 11:31:31 +01:00
Eloy Lafuente (stronk7) a8100d24a6 weekly release 2.3.10+ 2013-11-15 11:14:39 +01:00
AMOS bot 3d1559fe23 Automatically generated installer lang files 2013-11-14 00:45:26 +00:00
AMOS bot e350963c83 Automatically generated installer lang files 2013-11-13 00:47:36 +00:00
AMOS bot 0d1dbd6967 Automatically generated installer lang files 2013-11-12 00:53:17 +00:00
Eloy Lafuente (stronk7) 36da7ed5df Moodle release 2.3.10 2013-11-10 01:58:33 +01:00
Damyon Wiese 7b9e0cd78c MDL-42780 Disable swf files in YUI2.
These swf files are attack vectors for XSS attacks and upstream no longer maintains them.
2013-11-08 17:35:00 +08:00
Petr Škoda 2474203e2b MDL-42780 remove YUI2 uploader 2013-11-08 09:44:22 +01:00
Damyon Wiese 18fd289e63 weekly release 2.3.9+ 2013-11-08 12:48:08 +08:00
Damyon Wiese 9f213270f6 Merge branch 'install_23_STABLE' of git://git.moodle.org/moodle-install into MOODLE_23_STABLE 2013-11-08 12:48:04 +08:00
AMOS bot 0b60fbac61 Automatically generated installer lang files 2013-11-08 00:43:11 +00:00
Petr Škoda fc7c554de6 MDL-38743 add private cache headers 2013-11-06 13:59:21 +08:00
Frederic Massart 759ad16cc7 MDL-41807 repository_filesystem: Prevent access to parent directories 2013-11-04 13:30:48 +08:00
Petr Škoda b95c8cc1d4 MDL-41941 clean message text 2013-11-04 11:43:50 +08:00
Tim Hunt aecb3a8a78 MDL-41820 XSS in the quiz responses report.
Thanks to Michael Hess for finding this bug and reporting it to us.
2013-11-04 11:06:14 +08:00
Dan Poltawski b1db14efe1 weekly release 2.3.9+ 2013-11-01 15:47:39 +08:00
Dan Poltawski 54c236dff8 Merge branch 'install_23_STABLE' of git://git.moodle.org/moodle-install into MOODLE_23_STABLE 2013-11-01 15:47:37 +08:00
Damyon Wiese b40036ac66 Merge branch 'MDL-36818-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-10-28 10:59:59 +08:00
AMOS bot 1ac5b0ad16 Automatically generated installer lang files 2013-10-28 00:46:48 +00:00
Eloy Lafuente (stronk7) 8e2b2206f4 weekly release 2.3.9+ 2013-10-25 13:03:22 +02:00
AMOS bot 55abae4375 Automatically generated installer lang files 2013-10-22 00:45:46 +00:00
AMOS bot 0ba77acca6 Automatically generated installer lang files 2013-10-19 00:47:38 +00:00
Dan Poltawski e1dd8c529c weekly release 2.3.9+ 2013-10-18 16:16:30 +08:00
Thijs Kinkhorst 2093a0c3c3 MDL-36818 cas: improve SSL validation 2013-10-14 10:13:14 +08:00
Eloy Lafuente (stronk7) 079364c25f weekly release 2.3.9+ 2013-10-11 13:20:48 +02:00
Sam Hemelryk 887b6d9599 weekly release 2.3.9+ 2013-10-04 15:43:36 +13:00
Marina Glancy fa6b2edf7b weekly release 2.3.9+ 2013-09-27 14:42:14 +10:00
AMOS bot 962f036b0f Automatically generated installer lang files 2013-09-24 00:42:04 +00:00
AMOS bot cd8f20d26a Automatically generated installer lang files 2013-09-19 00:44:14 +00:00
AMOS bot 854159f747 Automatically generated installer lang files 2013-09-16 00:40:30 +00:00
AMOS bot 77cb09867c Merge branch 'MOODLE_23_STABLE' into install_23_STABLE 2013-09-08 00:43:15 +00:00
Eloy Lafuente (stronk7) 7529b398a7 Moodle release 2.3.9 2013-09-07 14:23:01 +02:00
Dan Poltawski 3a986edd89 MDL-41623 rss: clean output rss content 2013-09-07 11:18:18 +08:00
Eloy Lafuente (stronk7) 090a5f635d MDL-41623 ensure all links are valid urls
For 23 and 24 we are modifying the default Sanitizer. Note that
for 24 and upwards we are doing the same with our extended
Sanitizer. So this is just an interim hack for those old versions.
2013-09-07 04:06:57 +02:00
AMOS bot 22c1afc8f9 Merge branch 'MOODLE_23_STABLE' into install_23_STABLE 2013-09-06 00:47:52 +00:00
Dan Poltawski 29d5e81473 Merge branch 'install_23_STABLE' of git://git.moodle.org/moodle-install into MOODLE_23_STABLE 2013-09-05 14:43:53 +08:00
Dan Poltawski fadb971dde weekly release 2.3.8+ 2013-09-05 13:35:03 +08:00
Dan Poltawski c65b3a048e MDL-40676 tests: fix null byte test. 2013-09-02 13:59:37 +08:00
Petr Škoda d756385a0c MDL-40676 ignore null bytes 2013-09-02 12:28:29 +08:00
AMOS bot ca2e480fb1 Automatically generated installer lang files 2013-08-30 00:41:52 +00:00
AMOS bot 902f5d70a7 Automatically generated installer lang files 2013-08-21 00:43:43 +00:00
AMOS bot 0be9bb55c4 Automatically generated installer lang files 2013-08-20 00:42:30 +00:00
AMOS bot c209ffaef3 Automatically generated installer lang files 2013-08-19 00:42:40 +00:00
AMOS bot f3f09491c8 Automatically generated installer lang files 2013-08-16 00:43:00 +00:00
Dan Poltawski cd829c9077 weekly release 2.3.8+ 2013-08-15 16:40:02 +08:00
AMOS bot cab5304902 Automatically generated installer lang files 2013-08-15 00:54:47 +00:00
Sam Hemelryk 99df9ea8ad weekly release 2.3.8+ 2013-08-08 16:26:30 +12:00
Sam Hemelryk 9ce818b6d7 Merge branch 'install_23_STABLE' of git://git.moodle.org/moodle-install into MOODLE_23_STABLE 2013-08-08 16:19:55 +12:00
AMOS bot 6209efbb2c Automatically generated installer lang files 2013-08-07 00:43:04 +00:00
Petr Škoda ef7c73d5d8 MDL-40889 prevent 304 when minimising JS 2013-08-02 16:31:30 +02:00
AMOS bot f7ef99e59e Automatically generated installer lang files 2013-08-02 00:38:35 +00:00
Sam Hemelryk b87b72955f weekly release 2.3.8+ 2013-08-02 08:23:03 +12:00
Sam Hemelryk 8dbc9cf753 Merge branch 'install_23_STABLE' of git://git.moodle.org/moodle-install into MOODLE_23_STABLE 2013-08-02 08:12:00 +12:00
Frederic Massart c5cb333a38 MDL-40615 Repository: Updated Amazon S3 library
Fixed insecure use of CURLOPT_SSL_VERIFYHOST
2013-07-30 09:05:18 +12:00
AMOS bot d4ce5e6e2d Automatically generated installer lang files 2013-07-28 00:42:34 +00:00
AMOS bot b47ef00098 Merge branch 'MOODLE_23_STABLE' into install_23_STABLE 2013-07-27 00:43:15 +00:00
Damyon Wiese 863d00ca29 weekly release 2.3.8+ 2013-07-26 11:29:03 +08:00
AMOS bot 7fe7fd5da7 Automatically generated installer lang files 2013-07-23 00:39:27 +00:00
Damyon Wiese 02e539c462 weekly release 2.3.8+ 2013-07-19 09:49:00 +08:00
Damyon Wiese 6d1ebb59dd Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-07-19 09:22:18 +08:00
AMOS bot d2f7fe83bd Automatically generated installer lang files 2013-07-15 00:44:30 +00:00
Tim Hunt 9bf7f10834 MDL-40633 filter_urltolink breaking some image links.
This was a regression caused by MDL-22390. HTML like
<img src="http://www.example.com/logo.gif" />
was being broken.
2013-07-12 13:06:09 +01:00
Damyon Wiese f830a2d729 weekly release 2.3.8+ 2013-07-12 09:51:39 +08:00
Damyon Wiese e670f3e8c2 Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-07-12 09:42:35 +08:00
AMOS bot 8ddf23ed3b Automatically generated installer lang files 2013-07-12 00:46:04 +00:00
Marina Glancy 8d296ea5e4 Merge branch 'm23_MDL-39832_Fix_Chrome_Issues_ETag_XSendfile_2ndRound' of https://github.com/scara/moodle into MOODLE_23_STABLE 2013-07-10 12:05:16 +10:00
Raymond Wijaya 17e37c57e4 MDL-40093 mod/assign: Remove count of drafts in offline assignment's grading summary screen 2013-07-10 11:40:55 +10:00
Tony Levi 94e36bc01f MDL-40035: Avoid rebuild_course_cache always for empty course 2013-07-09 13:56:30 +10:00
Tim Lock ffbb1a21c3 MDL-40436: auth_ldap: Fixed warning when adding new LDAP users 2013-07-08 23:03:41 +08:00
Matteo Scaramuccia 0ba744205e MDL-39832 Files: Fixed ETag format according with RFC2616.
ETag must be double quoted,
http://tools.ietf.org/html/rfc2616#section-3.11:

      entity-tag = [ weak ] opaque-tag
      weak       = "W/"
      opaque-tag = quoted-string
2013-07-07 09:21:37 +02:00
Matteo Scaramuccia 627dc76546 MDL-39832 Files: Revert MDL-39688 commit, 6ce0c9ce42
MDL-39688 has been successful in providing a solution for the issue but further
investigations done in MDL-39832 have got the evidence that the given solution
is more likely a workaround.
2013-07-07 09:21:35 +02:00
Eloy Lafuente (stronk7) 1a07c564c8 Moodle release 2.3.8 2013-07-06 17:53:38 +02:00
Damyon Wiese 0a7afb8746 weekly release 2.3.7+ 2013-07-04 15:32:32 +08:00
Damyon Wiese 392c581c45 MDL-40308: Fix javascript for lti mod_form
It was toggling the state of the hidden input - not the checkbox.
2013-07-04 13:47:53 +08:00
Michael Aherne 77182cd299 MDL-40275 core Improve documentation for block_base::has_config() 2013-07-02 21:55:45 +02:00
Damyon Wiese a251526d72 Merge branch 'wip-MDL-40353-m23' of git://github.com/marinaglancy/moodle into MOODLE_23_STABLE 2013-07-02 14:29:46 +08:00
Andreas Grabs a5a4a5ea1e MDL-39570 mod_feedback - Missing privilege check 2013-07-02 13:35:34 +08:00
Petr Škoda 7d2b47d265 MDL-40266 improve emulate_bound_params() for mssql driver
Looping over large numbers of items with array_shift() is expensive.
Reverse the array and fetch items from the top of the pile.

Credit goes to Martin Langhoff for original mysqli fix.
2013-07-02 13:33:38 +08:00
Petr Škoda 6d8558ed06 MDL-40266 improve emulate_bound_params() for sqlsrv driver
Looping over large numbers of items with array_shift() is expensive.
Reverse the array and fetch items from the top of the pile.

Credit goes to Martin Langhoff for original mysqli fix.
2013-07-02 13:33:38 +08:00
Dan Marsden c76c989420 MDL-39628 Chat: check mod/chat:chat capability when using daemon.
Thanks to Francois Gauthier for report/fix.
2013-07-02 12:23:31 +08:00
Jason Fowler 1adad7f783 MDL-37818 - RSS - Prevent access to blocks while RSS context errors are displayed 2013-07-02 10:10:26 +08:00
Martin Langhoff e13acecad7 MDL-40266 improve emulate_bound_params() for mysqli
Looping over large numbers of items with array_shift() is expensive.
Reverse the array and fetch items from the top of the pile.
2013-07-02 09:56:17 +08:00
Eloy Lafuente (stronk7) 490bf4e84f Merge branch 'get_users_by_capability_fix_m23' of http://github.com/timgus/moodle into MOODLE_23_STABLE 2013-07-02 00:47:00 +02:00
Rossiani Wijaya 919a40f31c MDL-39546 Lesson module: removed duplicate to decode special characters 2013-07-02 09:35:40 +12:00
Rossiani Wijaya de42137285 MDL-39546 Lesson module: fixed matching question issues 2013-07-02 09:35:29 +12:00
Eloy Lafuente (stronk7) 16b73cf30d Merge branch 'w27_MDL-39754_m23_evn26' of https://github.com/skodak/moodle into MOODLE_23_STABLE 2013-07-01 23:14:26 +02:00
Petr Škoda fcbba30ad4 MDL-39754 copy 2.5 requirements to Moodle 2.6
Optional features and warnings may be added later,
but we need at least required environment for 2.5.1

This includes database family cleanup and more realistic memory requirement.
2013-07-01 10:04:31 +02:00
Mark Nielsen 4e286e58a3 MDL-40308: Privacy settings do not change
Update LTI mod form so checkboxes always submit their value.
2013-07-01 11:27:22 +08:00
Sam Hemelryk fb17d60fde MDL-40344 navigation: expandable branch id is now properly unique 2013-06-28 09:59:04 +12:00
Eloy Lafuente (stronk7) 0b8f6159b2 weekly release 2.3.7+ 2013-06-27 20:11:07 +02:00
Eloy Lafuente (stronk7) 2624a2edf4 Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-06-27 20:05:44 +02:00
Marina Glancy 1d5932bf44 MDL-40353 fixed wrong redirection on course group page 2013-06-27 13:54:43 +10:00
AMOS bot d89ca90ca6 Automatically generated installer lang files 2013-06-27 00:40:27 +00:00
Eloy Lafuente (stronk7) 2928ac025c Merge branch 'MDL-40264-m23-essay-zero' of git://github.com/ktemkin/moodle into MOODLE_23_STABLE 2013-06-24 21:22:06 +02:00
Eloy Lafuente (stronk7) b19d21e26b Merge branch 'MDL-34610_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-06-24 20:21:55 +02:00
Eloy Lafuente (stronk7) c55a7ac5b0 Merge branch 'MDL-40255_M23' of git://github.com/lazydaisy/moodle into MOODLE_23_STABLE 2013-06-24 19:26:49 +02:00
Matteo Scaramuccia d158acc4ff MDL-40200 Administration: Return the invalid user message and stop there
To avoid adding duplicate code, 'invalid user' and 'user deleted' checks
have been merged together.

Conflicts:
	user/profile.php
2013-06-24 19:03:29 +02:00
Sam Chaffee 4010b22051 MDL-40258: Fixed invalid json string error in file-picker 2013-06-24 18:57:22 +02:00
Ankit Agarwal d306f96750 MDL-40250 phpunit: Add unit tests for core_files_external::upload() 2013-06-24 18:11:56 +02:00
Sam Hemelryk 410899e3b2 Merge branch 'MDL-39760-MOODLE_23_STABLE' of https://github.com/lucisgit/moodle into MOODLE_23_STABLE
Conflicts:
	mod/assign/locallib.php
2013-06-24 14:25:54 +12:00
Sam Hemelryk 6005edc60f MDL-38347 fixed whitespace 2013-06-24 11:29:45 +12:00
Sam Hemelryk a2e47d596a Merge branch 'wip-MDL-38347-stable23' of git://github.com/phalacee/moodle into MOODLE_23_STABLE 2013-06-24 11:20:27 +12:00
Sam Hemelryk c209e59206 Merge branch 'MDL-28124_M23' of git://github.com/lazydaisy/moodle into MOODLE_23_STABLE 2013-06-24 10:28:46 +12:00
Mary Evans d80a7da7c1 MDL-40255 theme_boxxie/theme_formfactor: Added block-region class to layout files to enable dnd file uploader to work. 2013-06-22 21:27:55 +01:00
Tim Hunt 80178c1c9e MDL-34610 remove legacy IE CSS. It breaks form layout 2013-06-21 21:57:51 +01:00
Kyle Temkin 3553982d6d MDL-40264 fix essay handling of zero-string response
Fixes an inappropriate behavior of the is_complete_response() function
for the Essay question type, which caused the string "0" to be
inappropriately marked as an incomplete response.

Also adds a set of unit tests for the Essay question type's
is_complete_response.
2013-06-21 03:39:23 -04:00
Dan Poltawski 6420fea64b weekly release 2.3.7+ 2013-06-21 13:27:50 +08:00
Tim Gus 66d0022594 MDL-40259 - For SCORM reports limit fields returned from
get_users_by_capability to user ID to decrease memory utilization
2013-06-20 15:57:27 -04:00
Ruslan Kabalin 78fa55b23e MDL-39760: mod_assign: Add few more callback methods.
Adds lock, unlock and release_to_draft. All of them accept single parameter -
an assign_submission record.
2013-06-19 15:38:34 +01:00
Ruslan Kabalin 7aec80dd9e MDL-39760: mod_assign: Make submit_for_grading accept submission as parameter 2013-06-19 15:38:34 +01:00
Marina Glancy 319b329367 Merge branch 'MDL-40207-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-06-18 15:41:36 +10:00
Marina Glancy 3ad26c86eb Merge branch 'MDL-39650-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-06-18 14:11:54 +10:00
Ruslan Kabalin d71021f601 MDL-33546: course: Fix current week hightlighting after dragging the section 2013-06-18 13:06:11 +10:00
Marina Glancy ade9bbc32e Merge branch 'MDL-40165-m23' of git://github.com/andrewnicols/moodle into MOODLE_23_STABLE 2013-06-18 12:54:40 +10:00
Marina Glancy 30b38ce4fa Merge branch 'MDL-38079_23' of git://github.com/mr-russ/moodle into MOODLE_23_STABLE 2013-06-18 11:15:54 +10:00
Eloy Lafuente (stronk7) f49cd5fcd8 Merge branch 'MDL-33562-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE
Conflicts:
	version.php
2013-06-18 00:48:50 +02:00
Sam Hemelryk 62c4ccef0e Merge branch 'MDL-30132_M23' of git://github.com/lazydaisy/moodle into MOODLE_23_STABLE 2013-06-18 10:26:10 +12:00
Sam Hemelryk df86b97f1a Merge branch 'wip-MDL-40159-m23' of git://github.com/marinaglancy/moodle into MOODLE_23_STABLE 2013-06-18 09:03:54 +12:00
Russell Smith 35c70d0425 MDL-38079 mod_feedback - Hide "add question to activity" button 2013-06-17 20:02:38 +10:00
Marina Glancy 7fb1afbb38 MDL-40159 Fixing bug with empty variable, regression from MDL-21097 2013-06-17 14:33:59 +10:00
Sam Hemelryk 4dac72bcc8 Merge branch 'm23_MDL-40095_Completion_locked_Error_on_save' of https://github.com/scara/moodle into MOODLE_23_STABLE 2013-06-17 16:09:36 +12:00
Sam Hemelryk 0b79440ddf Merge branch 'MDL-21933_23' of https://github.com/mr-russ/moodle into MOODLE_23_STABLE 2013-06-17 15:44:58 +12:00
Sam Hemelryk a971dd3992 Merge branch 'wip-MDL-40091-MOODLE_23_STABLE' of git://github.com/satrun77/moodle into MOODLE_23_STABLE 2013-06-17 15:42:55 +12:00
Dan Poltawski 5d447145ba MDL-40207 simplepie: reduce false failures in unit tests
The simplepie tests time out too quickly due to a low connect timeout,
to fix this, I converted the unit tests to use a high timeout value.
2013-06-17 10:56:27 +08:00
Sam Hemelryk 1691794cb1 Merge branch 'MDL-39761-MOODLE_23_STABLE' of https://github.com/lucisgit/moodle into MOODLE_23_STABLE 2013-06-17 14:24:37 +12:00
Sam Hemelryk 5838cbd4ff MDL-40142 navigation: fixed chainable issue with navigation JS 2013-06-17 09:15:51 +12:00
Mary Evans d63b6cf619 MDL-28124 admin/tool/customlang: Changed page layout from 'standard' to 'report'. 2013-06-15 00:13:53 +01:00
Mohamed Alsharaf dc7d68880a MDL-40091 book: revision must be incremented after editing a chapter 2013-06-14 21:25:33 +12:00
Marina Glancy eabe1d3b6b weekly release 2.3.7+ 2013-06-14 13:34:42 +10:00
Andrew Nicols 4ea0abedb0 MDL-40165 Backup: Split out test classes into multiple files 2013-06-13 08:58:30 +01:00
Dan Poltawski c5338156c5 Revert "MDL-39832 Files: Revert MDL-39688 commit, 6ce0c9ce42fa7849e67d7611a628ece51c336c5f"
This reverts commit 1cb1157809.
2013-06-13 13:58:00 +08:00
Dan Poltawski db1a0b53c5 Revert "MDL-39832 Files: Fixed ETag format according with RFC2616."
This reverts commit bf4a95e6a3.
2013-06-13 13:57:58 +08:00
Russell Smith e456edf9b7 MDL-21933 course: Allow users to search participants course permission
Capability checks are performed at the top of the page and do not need
to be completed again.

Search is an expected feature for users and it was confusion to only
appear after 3 pages.  This has been changed to enable search when
there are more records than are visible on the screen.  If users
are unable to use browser search, they will be able to use Moodle's
search.
2013-06-13 12:44:36 +10:00
Mary Evans eb38cf2d7a MDL-30312 User: Changed page layout from mydashboard to mypublic in user/profile.php 2013-06-12 21:18:44 +01:00
Sam Hemelryk 1d26199125 Merge branch 'MDL-25901-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-06-12 08:59:32 +12:00
Sam Hemelryk 3a2ad025e1 Merge branch 'MDL-26925-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-06-11 17:30:58 +12:00
Sam Hemelryk f3358600e7 Merge branch 'MDL-39505-migrate-file-backport_23' of git://github.com/mudrd8mz/moodle into MOODLE_23_STABLE 2013-06-11 17:15:47 +12:00
Sam Hemelryk 3343cd5d92 Merge branch 'MDL-22390_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-06-11 17:08:21 +12:00
Dan Poltawski 610f07c288 Merge branch 'm23_MDL-40002_ETag_value_must_be_a_quoted-string' of https://github.com/scara/moodle into MOODLE_23_STABLE 2013-06-11 12:54:59 +08:00
Marina Glancy d5bba86435 Merge branch 'MDL-39412_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-06-11 12:12:36 +10:00
Matteo Scaramuccia da297e7390 MDL-40095 SCORM: Trivial comments tidy up 2013-06-10 21:10:22 +02:00
Matteo Scaramuccia 0ec8a329bc MDL-40095 SCORM: Fixed DML error when saving with completion options locked
Regression caused by MDL-38315.
2013-06-10 21:10:07 +02:00
Dan Poltawski bb059c31ad Merge branch 'MDL-39947_23' of https://github.com/aolley/moodle into MOODLE_23_STABLE 2013-06-10 16:20:56 +08:00
Dan Poltawski 61603bb034 Merge branch 'm23_MDL-39832_Fix_Chrome_Issues_ETag_XSendfile' of https://github.com/scara/moodle into MOODLE_23_STABLE 2013-06-10 15:43:25 +08:00
Dan Poltawski 885c3f5824 Merge branch 'MDL-40018_M23' of git://github.com/lazydaisy/moodle into MOODLE_23_STABLE 2013-06-10 15:00:39 +08:00
David Mudrák 0a4dcf2ad7 MDL-40080 Remove unused strings from the core_hub subsystem 2013-06-10 14:42:25 +08:00
Dan Poltawski 1735fbc1ef Merge branch 'MDL-39667-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-06-10 12:51:51 +08:00
Sam Hemelryk 94be2b5074 Merge branch 'MDL-40009_m23' of https://github.com/markn86/moodle into MOODLE_23_STABLE 2013-06-10 15:54:34 +12:00
Sam Hemelryk 628e0528e8 Merge branch 'w24_MDL-39549_m23_cohortsearch' of git://github.com/skodak/moodle into MOODLE_23_STABLE 2013-06-10 15:47:38 +12:00
Sam Hemelryk b87dc0e925 Merge branch 'MDL-39971_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-06-10 15:09:22 +12:00
Sam Hemelryk f83cd734f9 Merge branch 'w24_MDL-32480_m23_imscp' of git://github.com/skodak/moodle into MOODLE_23_STABLE 2013-06-10 14:39:54 +12:00
Sam Hemelryk ad6976aae5 Merge branch 'MDL-36090_log2_23' of git://github.com/andyjdavis/moodle into MOODLE_23_STABLE 2013-06-10 12:30:24 +12:00
Matteo Scaramuccia 16b143ef22 MDL-40002 Files: ETag value must be a quoted-string.
ETag value must be double quoted, http://tools.ietf.org/html/rfc2616#section-3.11.
More details about potential impacts in MDL-39832: shortly, at least when using
HTTP Partial GET Requests (HTTP Status: 206) plus X-Sendfile HTTP Header.
In this commit, the impact is to be RFC2616 compliant when using the ETag Header.
2013-06-09 10:38:59 +02:00
Tim Hunt 206db13c8e MDL-22390 autolink filter: handle URLs in brackets better.
This breaks some legitimate URLs like
http://en.wikipedia.org/wiki/Slash_(punctuation).
This is a necessary trade-off. Many other web systems do not handle that
case correctly either. The work-around it so escape the ) as %29.

This commit also improves the way the unit tests for this work.

It also fixes a couple of other tricky cases that were spotted in
the forums while this was being discussed. See the new test cases.
2013-06-08 16:56:53 +01:00
Petr Škoda 92df65aedd MDL-39549 fix cohort search in course categories 2013-06-07 22:09:55 +02:00
Petr Škoda f296df5125 MDL-37780 fix 1.9 restore on windows 2013-06-07 10:23:41 +02:00
Petr Škoda 663e3ce8b2 MDL-32480 allow external https links in IMSCP too 2013-06-07 10:00:52 +02:00
Nicolas Dunand f3369f1607 MDL-32480 fix display of IMS content packages with external links 2013-06-07 10:00:52 +02:00
Matteo Scaramuccia bf4a95e6a3 MDL-39832 Files: Fixed ETag format according with RFC2616.
ETag must be double quoted,
http://tools.ietf.org/html/rfc2616#section-3.11:

      entity-tag = [ weak ] opaque-tag
      weak       = "W/"
      opaque-tag = quoted-string
2013-06-06 23:06:04 +02:00
Matteo Scaramuccia 1cb1157809 MDL-39832 Files: Revert MDL-39688 commit, 6ce0c9ce42
MDL-39688 has been successful in providing a solution for the issue but further
investigations done in MDL-39832 have got the evidence that the given solution
is more likely a workaround.
2013-06-06 23:06:02 +02:00
Dan Poltawski 4908daf0c1 MDL-26925 User selector: Set label when no results
Thanks to Jonathon Fowler for the fix!
2013-06-06 14:10:21 +08:00
Dan Poltawski 969e5b51a0 weekly release 2.3.7+ 2013-06-06 12:00:05 +08:00
Dan Poltawski 4abc48ac46 Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-06-06 11:55:56 +08:00
Dan Poltawski 7e05737fb4 MDL-25901 rss: do not copyright html tag
They copyright field does not permit html, it should be plain text
2013-06-06 11:31:13 +08:00
Eloy Lafuente (stronk7) a07b82a9bb Merge branch 'wip-MDL-21097-m23' of git://github.com/marinaglancy/moodle into MOODLE_23_STABLE
Conflicts:
	index.php
2013-06-05 10:45:19 +02:00
Marina Glancy a6ce14dfb5 MDL-21097 Correctly check capabilities for frontpage editing mode 2013-06-05 18:06:56 +10:00
Marina Glancy 3ffbbeea7c MDL-21097 corrected course editing roles 2013-06-05 16:42:47 +10:00
Marina Glancy 5e8de26794 MDL-21097 Correctly check capabilities for course settings items
- Make sure that items in course settings (and frontpage settings) are shown depending on user capabilities
- Make sure user is able to turn editing on on the page even if he has only limited number of seciton/modules capabilities
2013-06-05 16:42:47 +10:00
Dan Poltawski 330ae1764f Merge branch 'wip-MDL-21097-m23' of git://github.com/marinaglancy/moodle into MOODLE_23_STABLE 2013-06-05 13:11:58 +08:00
Marina Glancy 7072c3cdc6 MDL-21097 corrected course editing roles 2013-06-05 14:00:11 +10:00
Andrew Davis f2f5e4dd44 MDL-36090 core_grade: added logging of overriding of student grades 2013-06-05 08:58:26 +08:00
Eloy Lafuente (stronk7) f21e4e5b5f Merge branch 'w23_MDL-39416_m23_pagelog' of git://github.com/skodak/moodle into MOODLE_23_STABLE 2013-06-05 02:44:11 +02:00
Eloy Lafuente (stronk7) 03cfbefbff Merge branch 'MDL-38731-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-06-05 02:31:10 +02:00
Eloy Lafuente (stronk7) c47cd3442f Merge branch 'MDL-37332-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-06-05 02:27:49 +02:00
Eloy Lafuente (stronk7) 92b8d952f1 Merge branch 'wip-MDL-21097-m23' of git://github.com/marinaglancy/moodle into MOODLE_23_STABLE 2013-06-05 01:43:34 +02:00
Mary Evans 62f0d51b4f MDL-40018 theme_sky_high: Fixed footer in admin pages. 2013-06-05 00:23:18 +01:00
Mark Nelson e5c2e2cfab MDL-40009 notes: corrected the form element names passed to setType 2013-06-04 18:11:12 +08:00
Tim Hunt 22be561eb6 MDL-39945 qtype multichoice was not comparing blank responses correctly. 2013-06-04 15:54:44 +08:00
Mary Evans 94572e5c93 MDL-39835 theme_sky_high: Fix for footer to display correctly in higher resolutions. 2013-06-04 14:45:34 +08:00
Dan Poltawski 7b21fa1712 Merge branch 'MDL-39536-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-06-04 13:25:38 +08:00
Frederic Massart 3454eea93e MDL-39536 completion: Unit tests for get_activities and has_activities 2013-06-04 12:57:42 +08:00
Frederic Massart 5f83d3d3d6 MDL-39536 completion: Prevent DB call when fetching activities 2013-06-04 12:57:41 +08:00
David Mudrák db70e53773 MDL-39939 Fix the basic SCORM report plugin name 2013-06-04 12:28:00 +08:00
Dan Poltawski 6bc6ddd29d Merge branch 'MDL-39317-23' of git://github.com/damyon/moodle into MOODLE_23_STABLE 2013-06-04 11:26:53 +08:00
Dan Poltawski 5f7c57ef85 Merge branch 'wip_23_mdl-34085' of https://github.com/iarenaza/moodle into MOODLE_23_STABLE 2013-06-04 10:43:28 +08:00
AMOS bot 09773eca4e Automatically generated installer lang files 2013-06-04 00:46:38 +00:00
Marina Glancy 4f8af9cbdf MDL-39801 navigation_node::remove does not allow to insert nodes afterwards 2013-06-04 02:06:09 +02:00
Marina Glancy 337c63aac4 MDL-39801 navigation_node::remove fails if first child does not have a key 2013-06-04 02:06:02 +02:00
Eloy Lafuente (stronk7) 266a68e840 MDL-39764 style: phpdoc changed to inline comments 2013-06-04 01:47:14 +02:00
Eloy Lafuente (stronk7) 7b78c24ba0 Merge branch 'wip-MDL-39764_M23_3' of git://github.com/gjb2048/moodle into MOODLE_23_STABLE 2013-06-04 01:44:57 +02:00
Gareth J Barnard d49e53b39f MDL-39764 course_format: Allow courses to have numsections > maxsections. 2013-06-04 00:07:46 +01:00
Eloy Lafuente (stronk7) 459b4e96a1 MDL-39465 Show env. info instead of part twice. 2013-06-04 00:51:18 +02:00
Eloy Lafuente (stronk7) db728b8e59 Merge branch 'w23_MDL-39465_m23_environment' of git://github.com/skodak/moodle into MOODLE_23_STABLE 2013-06-04 00:01:24 +02:00
Eloy Lafuente (stronk7) b34fdf7d1f Merge branch 'MDL-39166-m23' of https://github.com/jfilip/moodle into MOODLE_23_STABLE 2013-06-03 23:55:54 +02:00
Eloy Lafuente (stronk7) 83165bec0b Merge branch 'MDL-39932_23' of git://github.com/grabs/moodle into MOODLE_23_STABLE 2013-06-03 19:11:03 +02:00
Eloy Lafuente (stronk7) 00e4ad0d17 Merge branch 'MDL-39487_23' of https://github.com/IOC/moodle into MOODLE_23_STABLE 2013-06-03 19:03:48 +02:00
Petr Škoda a3ccd8e86e MDL-39416 do not try to get detailed perflog info before PAGE int 2013-06-02 13:33:20 +02:00
Petr Škoda 2fd690e4b8 MDL-39465 detect environment problems in tests
This should help explain why something else fails.
2013-05-31 22:05:05 +02:00
Tim Hunt 1a3e7ab0d3 MDL-39971 each attempt builds on last broken for previews. 2013-05-31 20:34:17 +01:00
Dan Poltawski 417dbe3840 MDL-38731 course: split course group settings header
Allow translators to translate the heading differently.

AMOS BEGIN
  CPY [groups,group],[groupsettingsheader,group]
AMOS END

Conflicts:
	course/edit_form.php
2013-05-31 12:15:37 +08:00
Dan Poltawski dbe006d468 MDL-37332 portfolio: don't add double slashes
get_filepath() always returns trailing slash.

This breaks windows export - thanks to Jason Platts
2013-05-31 11:52:10 +08:00
Marina Glancy 39d0fe3693 MDL-21097 Correctly check capabilities for course settings items
- Make sure that items in course settings (and frontpage settings) are shown depending on user capabilities
- Make sure user is able to turn editing on on the page even if he has only limited number of seciton/modules capabilities
2013-05-31 13:21:56 +10:00
Frederic Massart e4b771cf0d MDL-39650 form: Type can be set on repeated elements in a group 2013-05-31 11:06:12 +08:00
Dan Poltawski 8feae80284 MDL-33562 lib: remove deleted user tokens 2013-05-31 10:31:42 +08:00
Dan Poltawski 9b61ac3fdc MDL-33562 lib: remove private keys when user deleted 2013-05-31 10:29:39 +08:00
AMOS bot 449f2f9b18 Automatically generated installer lang files 2013-05-31 00:43:11 +00:00
Adam Olley 8d148dd866 MDL-39947 mod_forum: Add safety check to variable assignment when counting unread posts 2013-05-31 09:51:24 +09:30
Andreas Grabs 3db65127c3 MDL-39932 mod_feedback - Mapping Feedback when Course is Deleted - thx to David N. Johnson 2013-05-30 23:25:24 +02:00
Iñaki Arenaza 689ba48b00 MDL-34085 Fix the backup options names in core_course_duplicate_course
Fix the option names to match those used by the backup subsystem.
2013-05-30 17:50:22 +02:00
Damyon Wiese ee2e56ee9e weekly release 2.3.7+ 2013-05-30 12:08:55 +08:00
Damyon Wiese c5fd8a39f2 Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-05-30 11:27:00 +08:00
AMOS bot 323af23325 Automatically generated installer lang files 2013-05-30 00:38:26 +00:00
Damyon Wiese cf697e3406 MDL-39317 assign: Fix for submitted filter on grading table.
Some old upgraded assignments have no timecreated column so use
a different one to check for a valid submission.
2013-05-29 14:51:23 +08:00
AMOS bot 8deed6fdc5 Automatically generated installer lang files 2013-05-29 00:39:25 +00:00
Jason Fowler ce7e354ae5 MDL-38347 - Calendar - Fixing arrow output on Android devices 2013-05-28 15:28:30 +08:00
Damyon Wiese 25534fde40 Merge branch 'w22_MDL-39802_m23_deletedusers' of git://github.com/skodak/moodle into MOODLE_23_STABLE 2013-05-28 09:55:41 +08:00
AMOS bot 85b320becb Automatically generated installer lang files 2013-05-28 00:38:18 +00:00
Damyon Wiese ec928e8c14 Merge branch 'MDL-39640-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-05-27 16:17:19 +08:00
Dan Poltawski be5a3e6117 Merge branch 'MDL-38239-moodle23' of git://github.com/StudiUM/moodle into MOODLE_23_STABLE 2013-05-27 14:14:03 +08:00
Dan Poltawski 4aa5c142a1 Merge branch 'w22_MDL-39688_m23_etag' of git://github.com/skodak/moodle into MOODLE_23_STABLE 2013-05-27 13:43:55 +08:00
Petr Škoda b2bcd0ff35 MDL-38408 validate PayPal dates and costs always 2013-05-25 22:19:28 +02:00
Petr Škoda 6ce0c9ce42 MDL-39688 do not set Etag when sending http ranges 2013-05-25 09:13:39 +02:00
Petr Škoda 5c713da067 MDL-39802 fix sloppy user deleting and creating in imsenterprise plugin 2013-05-24 21:20:45 +02:00
Petr Škoda f7da02f3b0 MDL-39802 add cli script for fixing of all deleted users
Use this script if something just set the user.deleted flag instead of calling the delete_user() method.
2013-05-24 21:20:19 +02:00
Damyon Wiese 7621b70368 weekly release 2.3.7+ 2013-05-24 13:24:03 +08:00
Damyon Wiese dc3d236a4b Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-05-24 13:11:32 +08:00
Eloy Lafuente (stronk7) 4a19404d65 Merge branch 'wip-MDL-39177-m23' of git://github.com/marinaglancy/moodle into MOODLE_23_STABLE 2013-05-23 16:00:33 +02:00
Marina Glancy 06535ae415 MDL-39177 make sure we don't remove existing directories when cleaning up unzip 2013-05-23 19:20:38 +10:00
AMOS bot c36e4e6ed8 Automatically generated installer lang files 2013-05-22 08:26:06 +00:00
Eloy Lafuente (stronk7) 748524f1b6 MDL-36482 Fix slipped error, thanks Petr! 2013-05-22 04:13:28 +02:00
Eloy Lafuente (stronk7) f23331836d Merge branch 'wip-MDL-39177-m23' of git://github.com/marinaglancy/moodle into MOODLE_23_STABLE 2013-05-22 02:13:27 +02:00
Gilles-Philippe Leblanc 96b821e126 MDL-38239 gradebook: Importing grades from a .txt file with commas for decimals causes an error 2013-05-21 14:18:35 -04:00
Marina Glancy 6d5bcdebf1 MDL-39177 Updating userid when file is overwritten 2013-05-21 10:57:44 +10:00
Eloy Lafuente (stronk7) 5724b42c03 Merge branch 'MDL-36482_23' of https://github.com/mr-russ/moodle into MOODLE_23_STABLE 2013-05-21 02:28:34 +02:00
Eloy Lafuente (stronk7) 0a18bd17cc Merge branch 'MDL-26120_23' of https://github.com/jacks92/moodle into MOODLE_23_STABLE 2013-05-21 00:55:42 +02:00
Eloy Lafuente (stronk7) 1b0528adf0 Merge branch 'MDL-31209-23' of git://github.com/mouneyrac/moodle into MOODLE_23_STABLE 2013-05-20 19:05:59 +02:00
Ruslan Kabalin 7e8514c5fd MDL-39761: mod_assign: Always check submission plugin status and visibility. 2013-05-20 16:39:57 +01:00
Damyon Wiese 95f982b0ac MDL-39412 Prevent developer warnings on upgrade from 24 to master 2013-05-20 12:42:52 +01:00
Tim Hunt 342dc2025c MDL-39412 disabling manual graded behaviour refinements
1. Change behaviour admin settings so you can only select enabled
behaviours.
2. During the upgrade, change admin settings that might be currently set
to manual graded, so that instead they are set to deferredfeedback (if
that is available. If not, we just take the first alphabetically.)
2013-05-20 12:42:19 +01:00
Tim Hunt 612dc9f648 MDL-39412 question behaviours: hide manual graded option
The ability to set all your quiz questions to require manual grading is
an interesting possibility, but practically almost useless.

If you set that accidentally, then you are badly stuck. There is no way
to fix it after the students have answered the quiz.

Therefore, we should set the config option to hide that option from the
UI. We do this for all Moodle sites as part of the upgrade, not just for
new installs.

If any admin wants to re-enable this, they can later.
2013-05-20 12:26:05 +01:00
Petr Škoda 98a0a2faaa MDL-39374 log only real folder edits
Credit goes to Florian Zillner, thanks.
2013-05-20 17:59:04 +08:00
Dan Poltawski 2b6e9bd10a Merge branch 'MDL-35859_idnumber_23' of https://github.com/andyjdavis/moodle into MOODLE_23_STABLE 2013-05-20 16:39:12 +08:00
Dan Poltawski 2d0669e775 Merge branch 'MDL-27748_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-05-20 15:49:09 +08:00
Dan Poltawski aaea60dea0 Merge branch 'MDL-39728_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-05-20 15:29:21 +08:00
Troy Lee 4126c81e32 MDL-36020 overview/report: fix quiz regrade session lock 2013-05-20 12:42:55 +08:00
Damyon Wiese 166e25fec7 Merge branch 'MDL-39363-m23' of git://github.com/ankitagarwal/moodle into MOODLE_23_STABLE 2013-05-20 12:17:19 +08:00
Kordan edcb7a0bc6 MDL-39198 theme_formal_white: resized and relocated the "Add..." drop down menu of the "Add a block" pseudo block 2013-05-20 11:49:24 +08:00
Dan Poltawski aa108f6125 Merge branch 'MDL-38369-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-05-20 10:26:14 +08:00
Tim Hunt 7f943085cd MDL-27748 question: grade options should be localised.
question_bank::fraction_options should use format_float to display
decimal pionts correctly.
2013-05-19 23:46:20 +01:00
Tim Hunt 8210b61ff7 MDL-39728 List all the classes in question/type/questionbase.php
This should make it easier for people to understand the type hierarchy.
2013-05-18 09:25:39 +01:00
AMOS bot 1318bf1bff Automatically generated installer lang files 2013-05-18 00:41:38 +00:00
Damyon Wiese d981c4b0fa Merge branch 'MDL-28250-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-05-17 12:12:01 +08:00
Petr Škoda cb3ab31fde MDL-39678 fix YUI 20130515 vulnerability 2013-05-15 22:03:50 +02:00
Dan Poltawski 6062d3f0bc MDL-28250 license: upgrade old versions of cc-nc
The url was incorectly defined in previous versions

Conflicts:
	version.php
    lib/db/upgrade.php
2013-05-15 11:28:02 +01:00
Wojciech Galiszek 81fe100cf8 MDL-28250 license: Correct cc-nc url 2013-05-15 11:26:44 +01:00
AMOS bot 23dc9305c7 Automatically generated installer lang files 2013-05-15 00:39:26 +00:00
Frederic Massart d35705102c MDL-39667 repository: Correct check for uniqueness of the name 2013-05-14 16:30:10 +08:00
Jerome Mouneyrac ad28e1b6a3 MDL-31209 web service error message: Indication about the service not containg the web service function is confusing 2013-05-14 15:47:56 +08:00
Marina Glancy 239eb7e230 MDL-39177 More comments about confusing files.source field 2013-05-14 17:07:55 +10:00
Marina Glancy 10fcc48782 MDL-39177 Ensure files are overwritten correctly on unzip 2013-05-14 17:07:54 +10:00
Marina Glancy 02890b991a MDL-39177 Perform all checks on draftfile area before saving the files 2013-05-14 17:07:54 +10:00
Marina Glancy 7627b9999c MDL-39177 Remove code duplication 2013-05-14 17:07:54 +10:00
Marina Glancy 77947f22ff MDL-39177 Update file in filearea only if original is present
Now when file was deleted in filemanager and new file with the same file was uploaded the references will be converted to copies exactly like UI warns in filemanager.
Also do not delete original information from draftfiles.
2013-05-14 17:07:54 +10:00
Marina Glancy 832db2f18f MDL-39177 Discard file origin when moving/renaming a file in filemanager
Created one function that handles file update to be used from both JS and nonJS filepicker
2013-05-14 17:07:54 +10:00
Marina Glancy ae55874269 MDL-39177 Original info is not preserved when overwriting a file in filemanager
original file location is used by filemanager to indicate that file is a source of reference and file the list of referencing files
2013-05-14 17:07:53 +10:00
Marina Glancy 73c6550ddb MDL-39177 File reference is not updated when overwriting the file 2013-05-14 17:07:53 +10:00
Marina Glancy 93cbd15ec8 MDL-33719 When overwriting a file the filemanager is not refreshed 2013-05-14 17:03:41 +10:00
AMOS bot fb46297f52 Automatically generated installer lang files 2013-05-14 00:37:47 +00:00
Eloy Lafuente (stronk7) f0d8c53ae0 Moodle release 2.3.7 2013-05-13 12:37:12 +02:00
Eloy Lafuente (stronk7) f26acbbf5b Merge branch 'MDL-39642-en_fix-23' of git://github.com/mudrd8mz/moodle into MOODLE_23_STABLE 2013-05-13 11:53:25 +02:00
Helen Foster 25dba50b9d MDL-39642 Merge English strings from the en_fix language pack 2013-05-13 11:34:34 +02:00
Frederic Massart 63e314128b MDL-39640 repository: Prevent notice when editing an instance 2013-05-13 17:31:12 +08:00
Ankit Agarwal 56e69c6188 MDL-39363 scorm: Accept 0 as a valid score 2013-05-13 11:48:54 +08:00
Andrew Davis 6250057612 MDL-35859 core_grade:fixed an optional parameter call to use the array version 2013-05-13 09:53:32 +08:00
Eloy Lafuente (stronk7) c9827a9135 weekly release 2.3.6+ 2013-05-10 17:33:28 +02:00
Eloy Lafuente (stronk7) 13a322f4b6 Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-05-10 17:18:12 +02:00
Eloy Lafuente (stronk7) 2e97c22310 Merge branch 'MDL-39518-23' of git://github.com/damyon/moodle into MOODLE_23_STABLE 2013-05-10 13:18:18 +02:00
Damyon Wiese 05933e48dc MDL-39518: Change hardcoded string MOOCH to Moodle.net 2013-05-10 14:26:10 +08:00
Sam Hemelryk a2d06016f4 Merge branch 'MDL-39488_m23' of git://github.com/rwijaya/moodle into MOODLE_23_STABLE 2013-05-10 16:30:29 +12:00
Rossiani Wijaya c0f177f19c MDL-39488: Lesson Module: Fixed the potential variable overwritting for answers 2013-05-10 11:17:46 +08:00
Damyon Wiese 4a727367e7 Merge branch 'MDL-39535_m23' of https://github.com/markn86/moodle into MOODLE_23_STABLE 2013-05-10 10:38:37 +08:00
Eloy Lafuente (stronk7) f6735ae534 Merge branch 'MDL-38885-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-05-10 03:17:55 +02:00
Eloy Lafuente (stronk7) 48265a6549 Merge branch 'MDL-29758_23' of git://github.com/jmvedrine/moodle into MOODLE_23_STABLE 2013-05-10 02:54:33 +02:00
Frederic Massart e4e1bd900a MDL-38885 form: Fix comments and stricter unit test 2013-05-10 08:38:02 +08:00
Eloy Lafuente (stronk7) 6185fa79e7 Merge branch 'MDL-39488_m23' of git://github.com/rwijaya/moodle into MOODLE_23_STABLE 2013-05-09 15:49:33 +02:00
Jean-Michel Vedrine ccc0b20a8f MDL-29758 make Cloze question feedback display more informative
as it was in Moodle 1.9
2013-05-09 09:06:15 +02:00
Frederic Massart ee87608e1a MDL-38885 form: Unit tests for data cleaning 2013-05-09 14:10:56 +08:00
Frederic Massart cc2fb80742 MDL-38885 form: Recursively clean parameters based on right type 2013-05-09 14:10:55 +08:00
AMOS bot 50269914ce Automatically generated installer lang files 2013-05-09 00:37:31 +00:00
Jerome Mouneyrac be6281e2cb MDL-37822 fix checkboxes that were always set to on by default 2013-05-09 02:09:04 +02:00
Jerome Mouneyrac 1fc34e37fd MDL-37822 move the default code above the set_config to not make the code less confusing 2013-05-09 02:09:04 +02:00
Jerome Mouneyrac 667eaec4d2 MDL-37822 Moodle send site information to a hub even though it's unchecked 2013-05-09 02:09:04 +02:00
Russell Smith 9dc1f6856e MDL-36482 activities block: Allow mod display without intro's 2013-05-09 10:00:34 +10:00
Eloy Lafuente (stronk7) 7f8cc6f777 Merge branch 'MDL-38487_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-05-09 00:55:28 +02:00
Jayesh Anandani 926e6170ce MDL-26120_23 mod_forum: use correct object 2013-05-09 00:52:41 +05:30
Damyon Wiese ce3fa5931d Merge branch 'MDL-31193-23' of git://github.com/mouneyrac/moodle into MOODLE_23_STABLE 2013-05-08 15:28:24 +08:00
Rajesh Taneja 8aa12adcf2 MDL-37245 Blog: Bloglevel is used for checking if blog is enabled 2013-05-08 14:54:27 +08:00
Rossiani Wijaya b26066bf68 MDL-39488 Lesson Module: Improve code performance 2013-05-08 13:49:41 +08:00
Rossiani Wijaya 9705bfa84f MDL-39488 Lesson Module: Fixed PHP error matching question,
if one or more options have not been selected.
2013-05-08 13:49:41 +08:00
Joseph Rézeau 152a040acd MDL-39488 Lesson Module: Fix for "Match question throws PHP error if one or more options have not been selected "
Signed-off-by: Joseph Rézeau <moodle@rezeau.org>
2013-05-08 13:49:30 +08:00
Damyon Wiese 6f9e83e892 Merge branch 'MDL-37552-23' of git://github.com/mouneyrac/moodle into MOODLE_23_STABLE 2013-05-08 12:44:46 +08:00
Andrew Davis bf5f227817 MDL-37475 core_grade:fixed the handling of show totals 2013-05-08 10:35:25 +12:00
Mark Nielsen 700b5b679e MDL-32301: Allow instructor custom parameters for LTI tools 2013-05-07 21:59:49 +02:00
Eloy Lafuente (stronk7) c6b1ff865f Merge branch 'MDL-34275-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-05-07 19:14:19 +02:00
Dan Poltawski 0edd01e943 Merge branch 'MDL-36223-23' of git://github.com/damyon/moodle into MOODLE_23_STABLE 2013-05-07 15:28:42 +01:00
Rajesh Taneja 4b5dcd72d5 MDL-37245 Blog: Fixed comments.
Conflicts:

	blog/lib.php

Signed-off-by: Rajesh Taneja <rajesh@moodle.com>

Conflicts:

	blog/lib.php
2013-05-07 14:58:34 +01:00
Rajesh Taneja 28772fb9e7 MDL-37245 Blog: Added permission check for blog comments
Conflicts:

	blog/index.php

Signed-off-by: Rajesh Taneja <rajesh@moodle.com>
2013-05-07 14:58:34 +01:00
Dan Poltawski 14b536dd6f Merge branch 'MDL-38500-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-05-07 11:54:32 +01:00
Jerome Mouneyrac d270524855 MDL-37552 external_format_text: missing require_once filelib.php (shared credits to Adam Fredericks for report and patch proposal) 2013-05-07 17:59:07 +08:00
Rex Lorenzo ee439acb1e MDL-34275 - Use default copyright license when restoring files 2013-05-07 09:10:23 +01:00
Damyon Wiese b8401ee7ac Merge branch 'MDL-31713_override_23' of git://github.com/andyjdavis/moodle into MOODLE_23_STABLE 2013-05-07 15:31:41 +08:00
Mark Nelson 955a081e3a MDL-39535 grade: only display grade errors once 2013-05-07 15:14:36 +08:00
Andrew Davis a035b96fd5 MDL-31713 core_grade: added updating of grade min and max to update_final_grade() 2013-05-07 12:27:39 +08:00
Maria Torres 55157bfc2e MDL-39169: Now the question's tags are added in backup/restore options 2013-05-06 15:44:18 +01:00
Damyon Wiese fc282e4ab3 Merge branch 'MDL-38315-m23' of git://github.com/sammarshallou/moodle into MOODLE_23_STABLE 2013-05-06 22:06:01 +08:00
Dan Poltawski 3565867b4f Merge branch 'MDL-39446_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-05-06 14:48:23 +01:00
Dan Poltawski 100da2dcfb Merge branch 'MDL-39491-workshop-media_23' of git://github.com/mudrd8mz/moodle into MOODLE_23_STABLE 2013-05-06 13:12:23 +01:00
Damyon Wiese b4eeee49cd MDL-38443 Assignment: Missing permissions check on downloadall submissions 2013-05-06 10:21:18 +01:00
Damyon Wiese ed8772d0f5 Merge branch 'MDL-39445_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-05-06 15:17:00 +08:00
AMOS bot 6679bfdbd3 Automatically generated installer lang files 2013-05-06 00:40:38 +00:00
Dan Poltawski 6d28ff14f0 Merge branch 'brokencalc_23' of git://github.com/andyjdavis/moodle into MOODLE_23_STABLE 2013-05-05 11:30:40 +01:00
AMOS bot b67bb742a0 Automatically generated installer lang files 2013-05-04 00:40:13 +00:00
David Mudrák b908e2fcd9 MDL-39491 Fix order of Workshop submission text processing
The order of format_text() and file_rewrite_pluginfile_urls() is
important to make filters work correctly.
2013-05-03 12:01:18 +02:00
Albert Gasset ec6ca49767 MDL-39487 mod/assign: fixed ID number of grade item changing 2013-05-03 11:07:56 +02:00
Jerome Mouneyrac fc9fedb375 MDL-31193 display the correct and translated token valid until date 2013-05-03 14:17:15 +08:00
Tim Hunt c8c3599cf4 MDL-39446 calculated qtype: make answer formula input bigger
This makes it easier for teachers editing questions.
2013-05-02 15:47:44 +01:00
Tim Hunt 0fabc84119 MDL-39445 get_plugin_list clean_param use is slow
get_plugin_list was calling clean_param($pluginname, PARAM_PLUGIN) a
lot (600+ times per page), and that is much slower than you would guess.
A specific function for this case, (which we then also use from
clean_param) is a performance win.
2013-05-02 15:47:08 +01:00
Tim Hunt c5602897c1 MDL-38487 qtype match restore: problem with blank ids.
As it happens, this field is useless, and has been removed from the DB
in 2.5. Therefore, we only need a work-around for stable branches.
2013-05-02 15:46:46 +01:00
Dan Poltawski 70d7e35499 weekly release 2.3.6+ 2013-05-02 14:36:56 +01:00
Dan Poltawski 76645b7e6c Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-05-02 14:32:32 +01:00
Damyon Wiese 6f0a4b8f24 Merge branch 'MDL-30775-23' of git://github.com/mouneyrac/moodle into MOODLE_23_STABLE 2013-05-02 16:22:48 +08:00
Damyon Wiese 53095b7ebe MDL-36223 Assign: User outline report grade display
Use str_long_grade for user outline report because it handles scales and
no grade.

Thanks to Jean-Daniel Descoteaux for suggesting this fix.
2013-05-02 15:48:09 +08:00
Frederic Massart 2d1fd9e244 MDL-38369 repository: Remove output before redirect 2013-05-02 12:03:38 +08:00
Andrew Davis abd110f8f9 MDL-32913 core_grade:made it more obvious when the gradebook is broken due to a broken calculation 2013-05-02 09:23:36 +08:00
AMOS bot ff198ea740 Automatically generated installer lang files 2013-05-02 00:38:16 +00:00
Eloy Lafuente (stronk7) c738cc946f Merge branch 'MDL-39444_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-05-01 16:54:06 +02:00
Tim Hunt 6137bc9ca2 MDL-39444 get_string: remove unnecessary clean_param
This clean_param was added as part of MDL-22015. It is a good idea when
developer debug is turned on, but it showed up as a surprisingly
expensive cost in our profiling.

This change:

1. Removes the check during string_extist. This will not change
behaviour, the method returns false if the string does not exist.

2. In get_string, it only does the check if debugging is set to
DEVELOPER level.
2013-05-01 10:18:24 +01:00
Frederic Massart 81c19f4d1f MDL-38500 repository: Instance names must be unique 2013-05-01 16:14:15 +08:00
AMOS bot f89ca0ea6e Automatically generated installer lang files 2013-05-01 00:39:27 +00:00
Eloy Lafuente (stronk7) 48c8137388 Merge branch 'wip-MDL-39432-m23' of git://github.com/samhemelryk/moodle into MOODLE_23_STABLE 2013-05-01 01:35:24 +02:00
Sam Hemelryk b6bfe3b35c Merge branch 'MDL-39422-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-05-01 11:14:12 +12:00
Sam Hemelryk 55d2126310 Merge branch 'wip-MDL-39099_M23' of git://github.com/gjb2048/moodle into MOODLE_23_STABLE 2013-05-01 11:04:33 +12:00
Sam Hemelryk 8617a082bb Merge branch 'MDL-39414-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-05-01 11:01:54 +12:00
Sam Hemelryk c9b3e9eb23 MDL-39432 course: converted closures to lambda functions 2013-05-01 10:41:53 +12:00
Sam Hemelryk c1163a13fe Merge branch 'MDL-36060-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-05-01 10:13:51 +12:00
Mark Nielsen 7281117d6e MDL-36060: Remove anonymous functions in mod/lti
This was breaking eaccelerator because it doesn't
support anonymous functions.
2013-04-30 17:50:36 +01:00
Dan Poltawski 10abf35eac MDL-39422 mod_forms: prevent long coruse module names
To prevent ugly DB errors.
2013-04-30 17:42:10 +01:00
Dan Poltawski 6b8f82e412 MDL-39422 course: prevent module names longer 255 chars
To prevent ugly DB errors.
2013-04-30 17:42:10 +01:00
Gareth J Barnard c594709cf4 MDL-39099 course_format: Allow section_summary() to be overridden. 2013-04-30 17:05:44 +01:00
Dan Poltawski cfbf324052 Merge branch 'MDL-35385_chat_23' of git://github.com/andyjdavis/moodle into MOODLE_23_STABLE 2013-04-30 14:08:32 +01:00
Dan Poltawski ff01692765 MDL-39414 portfolio: don't queue google portfolio exports
This is a bit of an ugly way of saying 'I dont support queued exports'.

The google plugins need a valid user session in order to export to the
google services, thereforce we are forcing the export to be interactive
and not queued through cron, as this wont work in the current
implmenetation.

It's possible we could add offline access to the plugins, but I don't
believe it is worth the benefit for the additional complexity.
2013-04-30 10:38:00 +01:00
Damyon Wiese ff6479d21c Merge branch 'MDL-39354_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-04-30 16:27:04 +08:00
Jerome Mouneyrac 46295524d7 MDL-30775 get_course_contents: remove warnings when the section is empty 2013-04-30 14:13:53 +08:00
Andrew Davis 12091f27cf MDL-31713 core_grade:added a unit test to replicate a raw grade max bug 2013-04-30 09:37:49 +08:00
Andrew Davis fa15dda773 MDL-35385 mod_chat: made sure no message popups display within the chat window 2013-04-30 09:10:11 +08:00
AMOS bot 8cee951622 Automatically generated installer lang files 2013-04-30 00:43:52 +00:00
Sam Hemelryk 503630ed47 Merge branch 'w17_MDL-39344_m23_lists' of git://github.com/skodak/moodle into MOODLE_23_STABLE 2013-04-30 10:11:46 +12:00
Sam Hemelryk de0917ef7f Merge branch 'MDL-39303_m23' of https://github.com/markn86/moodle into MOODLE_23_STABLE 2013-04-30 09:59:32 +12:00
Sam Hemelryk b748564398 Merge branch 'MDL-39365-m23' of git://github.com/ankitagarwal/moodle into MOODLE_23_STABLE 2013-04-30 09:36:25 +12:00
Sam Hemelryk d0fc4cf539 Merge branch 'MDL-39398-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-04-30 09:31:31 +12:00
Tim Hunt 5ddfd45539 MDL-39354 put back a bit of margin on checkboxes. 2013-04-29 19:16:51 +01:00
Dan Poltawski e46515bd83 Merge branch 'MDL-39378_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-04-29 17:01:12 +01:00
Tim Hunt e47a7b904c MDL-39378 Improve s() performance.
These changes give about a 10% speed-up in this function. The significant changes are:
1. Simplify the if logic to remove unnecssary cases.
2. Dont pass default argument values to htmlspecialchars, just using the
   defaults is faster.
3. I can confirm that /i regex is faster than the equivalent regex without the i.

I also added more unit tests to test the edge cases.
2013-04-29 12:32:29 +01:00
Tim Hunt dc67a0e9b6 MDL-39378 s(): fix bad hex regex 2013-04-29 12:32:26 +01:00
Frederic Massart 81d6802709 MDL-39398 message: Prevent notice when sending Jabber messages
Not tracking the presence prevents a notice to be displayed during disconnect(),
where the the jabber server attempts to subscribe to $CFG->jabberusername presence.
As the server name does not include a resource identifier (stillwit@jabber.org/resource),
an explode('/') fails.
2013-04-29 19:17:47 +08:00
Dan Poltawski d3c575bd6f Merge branch 'MDL-27071_23' of git://github.com/stronk7/moodle into MOODLE_23_STABLE 2013-04-29 10:27:52 +01:00
Eloy Lafuente (stronk7) 08a1a195b4 MDL-27071 Add big IN() unit tests
Let's verify how all databases perform with a big
number of parameters (10000) using IN() SQL clauses.
Both using QM and NAMED parameters.

Ideally only Oracle fails, and only it will need fixing.
2013-04-29 10:03:53 +02:00
Eloy Lafuente (stronk7) e206f3ffcb MDL-27071 Allow Oracle IN() to use > 1000 items
By using a pivoting strategy, we modify the list
of params (QM and NAMED supported) into a
subquery, so the 1000 limit in Oracle (ORA-01795)
is not thrown anymore.

Conflicts:
	lib/dml/oci_native_moodle_database.php
2013-04-29 10:03:39 +02:00
Damyon Wiese 5402f64623 Merge branch 'MDL-39342_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-04-29 15:36:30 +08:00
Damyon Wiese 70f7ea9327 Merge branch 'MDL-30940-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-04-29 14:04:26 +08:00
Ankit Agarwal e1aaddef66 MDL-39365 scorm reports: Return correct track count 2013-04-29 13:22:58 +08:00
Damyon Wiese 018e8a9ad4 Merge branch 'MDL-37845_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-04-29 11:47:02 +08:00
Sam Hemelryk 2a6c9c1536 Merge branch 'MDL-39192_m23' of https://github.com/markn86/moodle into MOODLE_23_STABLE 2013-04-29 10:53:33 +12:00
Tim Hunt 50590afe38 MDL-37845 multichoice qtype: Fix some display issues.
1. Better handling of multi-line choices in the correct answer display.
2. Remove dangerous CSS that is no longer needed.
2013-04-25 17:20:46 +01:00
Dan Poltawski 092f45148a Merge branch 'MDL-34403-MOODLE_23_STABLE' of https://github.com/mpetrowi/moodle into MOODLE_23_STABLE 2013-04-25 12:59:31 +01:00
Jason Platts d9c557099c MDL-39342 stop users entering too long matching answers.
Since they lead to an ugly DB error.
2013-04-25 11:59:56 +01:00
Dan Poltawski 161f4e0d79 Merge branch 'MDL-29258_23' of git://github.com/dmonllao/moodle into MOODLE_23_STABLE 2013-04-25 10:32:28 +01:00
Petr Škoda 3c9175acb2 MDL-39344 revert enabling of broken lists plugin from MDL-38329 2013-04-25 09:06:40 +02:00
AMOS bot c464052692 Automatically generated installer lang files 2013-04-25 00:38:10 +00:00
Eloy Lafuente (stronk7) 5e00b9a6e7 weekly release 2.3.6+ 2013-04-25 01:09:23 +02:00
Eloy Lafuente (stronk7) 4b9ae9e997 Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-04-25 01:03:22 +02:00
Eloy Lafuente (stronk7) cddf19fccd Merge branch 'MDL-35364_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-04-24 23:37:17 +02:00
Justin Filip 9a6230c822 MDL-39166 auth_ldap Add triggers for user created/updated events. 2013-04-24 16:16:28 -04:00
Matt Petro c8b33aa772 MDL-34403 mod quiz: fix error during enrolment 2013-04-24 15:05:36 -04:00
Dan Poltawski f8028c2f30 Merge branch 'MDL-39283_23' of git://github.com/jmvedrine/moodle into MOODLE_23_STABLE 2013-04-24 14:36:26 +01:00
Ruslan Kabalin 6b59b89a1b MDL-34939: Fix clamdscan permissions-related issues
Use --fdpass parameter that passes the file descriptor permissions to clamd,
which allows to scan given file irrespective of directory and file
permissions. Changing file permissions is not required.
2013-04-24 15:00:00 +08:00
Mark Nelson b5163c5132 MDL-39303 mod_forum: prevent user from submitting when post threshold reached 2013-04-24 14:02:19 +08:00
Mark Nelson b4eb152f69 MDL-39192 mod_forum: do not need to check the posting threshold when editing a post 2013-04-24 12:32:08 +08:00
Jean-Michel Vedrine 5312d1fbeb MDL-39283 GIFT and XML question export broken for unsupported qtypes
Do no write any data to the export for unsupported qtypes
2013-04-23 09:59:31 +02:00
Damyon Wiese 3c719fafc5 Merge branch 'MDL-34933_23_STABLE' of https://github.com/mchurchward/moodle into MOODLE_23_STABLE
Conflicts:
	lib/db/upgrade.php
	version.php
2013-04-23 12:02:30 +08:00
David Monllao c7f7ad249d MDL-29258 core_portfolio: Fixing broken default breadcrumb 2013-04-23 11:24:22 +08:00
Tim Hunt 9d34eba78d MDL-35364 shorten text: don't return invalid HTML.
I also broke the unit tests into more, smaller, named tests, so that
when things start failing, more tests are run, and it is clearer what
the problem is.

In a couple of cases, I adjusted the $ideal lenght in the test. A
careful counting of the characters in the test input (added as comments)
suggests that the new values make for better tests.
2013-04-22 19:24:58 +01:00
Alex Leontiev 7d7824b0c1 MDL-37514 module.js: fix .js for auto quiz submission in preview mode
The issue: when we attempt the quiz as teacher/admin and timer is up,
quiz is not submitted, even though "Open attempts are submitted
automatically" is set. I've changed the javascript for a timer,
responsible for submission, removing the special behaviour in case of
preview mode. Note, that when the admin/teacher is taking a quiz, the
"preview" mode is automatically switched on.

It is a bit strange, since in the javascript there was clearly no
expressed intention to really submit quiz in preview, even when timer
hits. It does not really seem like a accidental bug, rather it looks
like some misunderstanding. Worse still, it may happen that I did not
understand the intentions of previous editor and ruined some
functionality. Because of this, and the fact that this is my first bug,
I would like to ask about the peer review! Please, see my comments in
bug discussion for the testing steps.
2013-04-22 14:05:47 +01:00
Mike Churchward 54f03faba2 MDL-34933 core_message: Adding index to improve database access on message_working table. 2013-04-22 08:35:44 -04:00
Jason Platts ced8b30bd5 MDL-37942 Images with non-alphanumeric chars in file name won't export 2013-04-22 12:44:16 +01:00
Damyon Wiese 42f64a01c7 MDL-39050 quiz access rules: $module->is_enabled() not available for 23 2013-04-22 10:37:44 +08:00
Damyon Wiese cf473c2189 Merge branch 'MDL-39050_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-04-22 10:31:30 +08:00
AMOS bot 5c728f6303 Automatically generated installer lang files 2013-04-22 00:38:30 +00:00
Sam Hemelryk cbf837ce04 Merge branch 'MDL-39172_23' of git://github.com/jmvedrine/moodle into MOODLE_23_STABLE 2013-04-22 11:01:42 +12:00
Dan Poltawski 18646a683b Merge branch 'MDL-38361_23' of https://github.com/prateeksachan/moodle into MOODLE_23_STABLE 2013-04-19 15:12:00 +01:00
Tim Hunt d519be4dab MDL-39050 quiz access rules: settings.php files should work. 2013-04-19 11:52:56 +01:00
Damyon Wiese 472ec72b2a Merge branch 'MDL-39084-moodle23' of github.com:StudiUM/moodle into MOODLE_23_STABLE 2013-04-19 14:07:38 +08:00
Damyon Wiese 8f6894b5f1 Merge branch 'MDL-39167_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-04-19 13:29:41 +08:00
Frederic Massart 50a40aed52 MDL-30940 form: Mutiple select work correctly without any selection 2013-04-19 11:06:12 +08:00
Sam Hemelryk 8be4f7da65 Merge branch 'MDL-39185_m23' of https://github.com/markn86/moodle into MOODLE_23_STABLE 2013-04-19 13:53:19 +12:00
Jean-Michel Vedrine d56837de60 MDL-39172 Import of .dat files is broken in blackboard_six import format 2013-04-18 17:54:02 +02:00
Dan Poltawski dd8e2dde96 weekly release 2.3.6+ 2013-04-18 12:48:44 +01:00
Dan Poltawski cd8dbd11a2 Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-04-18 12:43:54 +01:00
Dan Poltawski a5ce56011a Merge branch 'MDL-39203-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-04-18 08:36:32 +01:00
Frederic Massart ce51cb98a6 MDL-39203 repository: Fixed authentication errors with Dropbox 2013-04-18 14:50:47 +08:00
Dan Poltawski 32f2cceecc Merge branch 'MDL-38824-m23' of git://github.com/sammarshallou/moodle into MOODLE_23_STABLE 2013-04-17 14:38:18 +01:00
Tim Hunt ef8d4d590c MDL-39167 quiz access rules: need to validate their settings.
We were missing the hook in the form validation method. We had them
everywhere else they were needed.
2013-04-17 14:26:22 +01:00
Mark Nelson 534707ff8d MDL-39185 mod_forum: declare new object before creating member variables to prevent Strict Standards warning 2013-04-17 15:22:15 +08:00
Jean-Philippe Gaudreau ec934409e6 MDL-39084 grade: Capability checks are incoherent for the Course grade settings section 2013-04-16 09:30:19 -04:00
Dan Poltawski 387dc90072 Merge branch 'MDL-39080_M23' of git://github.com/kordan/moodle into MOODLE_23_STABLE 2013-04-16 12:45:14 +01:00
Daniel Neis Araujo 17c980cc80 MDL-38136: fix user_get_user_details doesn't return idnumber (thanks to Antonio Carlos Mariani) 2013-04-16 15:41:19 +08:00
Damyon Wiese 35c4301b2c Merge branch 'wip-MDL-38055-m23' of git://github.com/samhemelryk/moodle into MOODLE_23_STABLE 2013-04-16 15:14:19 +08:00
Dan Poltawski 770e8c02db Merge branch 'MDL-38880_23' of git://github.com/jmvedrine/moodle into MOODLE_23_STABLE 2013-04-15 16:25:30 +01:00
Dan Poltawski fd33a80fa1 Merge branch 'MDL-39000-m23' of git://github.com/sammarshallou/moodle into MOODLE_23_STABLE 2013-04-15 08:30:32 +01:00
Damyon Wiese f7f4494fb7 Merge branch 'MDL-39068_23' of git://github.com/stronk7/moodle into MOODLE_23_STABLE 2013-04-15 14:24:26 +08:00
Eloy Lafuente (stronk7) c7ed914077 Merge branch 'MDL-39089_23' of git://github.com/dmonllao/moodle into MOODLE_23_STABLE 2013-04-15 01:58:01 +02:00
Eloy Lafuente (stronk7) d84477702d MDL-39068 use cross-db text column ORDER BY
Credit goes to Valerii Kuznetsov, thanks!
2013-04-14 16:10:26 +02:00
AMOS bot 7f96a4dffe Automatically generated installer lang files 2013-04-13 00:37:26 +00:00
David Monllao 1b08751cfa MDL-38089 mod_wiki: Fix incorrect links 2013-04-12 13:18:56 +08:00
Damyon Wiese 38b18a142c MDL-29877 Grades - Remove hardcoded prefix from upgrade step. 2013-04-12 11:52:34 +08:00
Damyon Wiese 726e41abaa MDL-29877 Grades - version bump for upgrade step.
And whitespace...
2013-04-12 11:40:00 +08:00
Damyon Wiese d3b880b578 Merge branch 'MDL-29877_bad_grade_item_23' of git://github.com/andyjdavis/moodle into MOODLE_23_STABLE
Conflicts:
	version.php
2013-04-12 11:37:48 +08:00
Jayesh Anandani 7bfe54c41c MDL-39054 quiz statistics: move hard-coded text to lang file 2013-04-12 11:09:33 +08:00
Dan Poltawski 595ef991ee Merge branch 'MDL-37537-23' of git://github.com/srynot4sale/moodle into MOODLE_23_STABLE 2013-04-12 10:26:57 +08:00
Jean-Michel Vedrine 0b4c2c04f9 MDL-38880 Imported Cloze questions lose embedded images or other media 2013-04-11 22:12:57 +02:00
Jean-Philippe Gaudreau d110758759 MDL-38637 CAS Authentication: Undefined index: QUERY_STRING when executing cron 2013-04-11 10:52:56 -04:00
Aaron Barnes dce8cb0576 MDL-37537 completion: Fix incorrect lang string reference in block 2013-04-12 01:54:49 +12:00
Eloy Lafuente (stronk7) 7b9df2353c weekly release 2.3.6+ 2013-04-11 12:42:56 +02:00
Eloy Lafuente (stronk7) 2a564dc2bf Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-04-11 12:33:06 +02:00
Kordan bec7d18248 MDL-39080 theme_formal_white: modified "Main menu" block look to resemble the "Navigation" one 2013-04-11 11:03:10 +02:00
Dan Poltawski bf944109f0 Revert "MDL-38254 Assignment Module: add avaialble message to all assignment types"
This reverts commit 079a76bb37.
2013-04-11 16:53:33 +08:00
Damyon Wiese 932d87f841 MDL-35144 Categories - Allow editing by custom roles
Users with category:manage or course:create should be able to edit
the course/category.php page.
2013-04-11 14:10:29 +08:00
Eloy Lafuente (stronk7) f3d49933b0 Merge branch 'MDL-38525-23' of https://github.com/damyon/moodle into MOODLE_23_STABLE 2013-04-11 00:57:23 +02:00
Damyon Wiese 557383cd94 MDL-38525: Assignment upgrade - Error with comments for unenrolled students.
Students with comments on 'upload' assignments cause errors for the upgrade
tool if they are no longer enrolled. The solution is to allow siteadmin to
see student submissions even if the student is not currently enrolled (you
must be siteadmin to run the upgrade tool).
2013-04-10 16:18:35 +08:00
Ryan Panning 3b89216c24 MDL-38525: Assignment - print exception message when assignment upgrade fails.
Change to use getMessage() from the Exception class will prevent "{$a}" when
$e->error is null.
2013-04-10 16:18:31 +08:00
Dan Poltawski b3e792b946 Merge branch 'MDL-19072_23' of git://github.com/jmvedrine/moodle into MOODLE_23_STABLE 2013-04-10 14:11:03 +08:00
Howard Miller ea6ef858f5 MDL-35144 adding editing capabiltities to page 2013-04-10 12:24:08 +08:00
Dan Poltawski c01f9e8bc1 Merge branch 'wip-mdl-35883-m23' of git://github.com/rajeshtaneja/moodle into MOODLE_23_STABLE 2013-04-10 12:16:58 +08:00
Dan Poltawski 7d042f6734 Merge branch 'MDL-38254_m23' of git://github.com/rwijaya/moodle into MOODLE_23_STABLE 2013-04-10 12:13:51 +08:00
Dan Poltawski 2967681e64 Merge branch 'MDL-38999_23' of git://github.com/stronk7/moodle into MOODLE_23_STABLE 2013-04-10 10:36:00 +08:00
Andrew Davis aeacefdb19 MDL-29877 core_grade:add some upgrade code to fix broken grade items introduced by bad restores 2013-04-10 08:34:04 +08:00
Petr Škoda b93ca5a53d MDL-38912 fix incorrect timeout reset 2013-04-10 00:07:51 +02:00
sam marshall 70c3c66943 MDL-39000 Conditional activities: Section condition restore errors 2013-04-09 17:40:55 +01:00
Jean-Michel Vedrine 59b50da6e9 MDL-19072 XHTML export for match questions fix for distractors 2013-04-09 11:49:18 +02:00
Dan Poltawski 650e0141fe Merge branch 'wip-MDL-38442-m23' of git://github.com/samhemelryk/moodle into MOODLE_23_STABLE 2013-04-09 15:40:38 +08:00
Dan Poltawski 112bb36c24 Merge branch 'MDL-38766/MOODLE_23_STABLE' of github.com:kemitix/moodle into MOODLE_23_STABLE 2013-04-09 10:38:22 +08:00
Dan Poltawski e37db6dc17 Merge branch 'wip-MDL-38541-m23' of git://github.com/marinaglancy/moodle into MOODLE_23_STABLE 2013-04-09 09:48:27 +08:00
Marina Glancy 1d05ecfd3e MDL-38541 Restrict calling rebuild_course_cache() from upgrade process
only plugins upgrade scripts can call rebuild_course_cache() and for clearing cache only.
2013-04-09 11:17:47 +10:00
AMOS bot fcb47c06b0 Automatically generated installer lang files 2013-04-09 00:37:52 +00:00
Eloy Lafuente (stronk7) 679620265a Merge branch 'w14_MDL-38753_m23_ocicount' of git://github.com/skodak/moodle into MOODLE_23_STABLE 2013-04-09 02:25:54 +02:00
Petr Škoda 3848b9c8d5 MDL-39028 fix sqlsrv concat type conversion 2013-04-09 02:18:46 +02:00
Sam Hemelryk 0f16db943c MDL-38442 navigation: set_expansion_limit now only hides structural nodes 2013-04-09 12:08:59 +12:00
Petr Škoda 0992cee1de MDL-39024 fix MSSQL seek past the end of recordset 2013-04-09 02:00:04 +02:00
Petr Škoda 7cfccbb148 MDL-39022 fix MSSQL concat type conversion 2013-04-09 01:57:09 +02:00
Eloy Lafuente (stronk7) f3da6ac7aa Merge branch 'MDL-38912_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-04-09 01:40:06 +02:00
Eloy Lafuente (stronk7) 1b9d0b9e3e Merge branch 'MDL-39023-parentlang_23' of git://github.com/mudrd8mz/moodle into MOODLE_23_STABLE 2013-04-08 16:58:03 +02:00
Eloy Lafuente (stronk7) f80b096a5e MDL-38999 timezones: add some TZ/stamps know to be problematic to tests. 2013-04-08 16:33:01 +02:00
Eloy Lafuente (stronk7) 75899ed480 MDL-38999 timezones: fixed timezone information. 2013-04-08 16:32:53 +02:00
sam marshall 39525889eb MDL-38824 Activity completion: Automatic completion quotes not escaped 2013-04-08 14:55:51 +01:00
David Mudrák a82871d4f7 MDL-39023 Make get_language_dependencies() aware of circular dependency risk
The patch reimplements the core_string_manager::get_language_dependencies()
so that potentially mis-configured language packs with circular
dependencies or self dependency do not make the site unavailable.
Unit tests for the expected behaviour are added.
2013-04-08 15:02:59 +02:00
Petr Škoda 0dec339211 MDL-38753 tweak count SQL to make stupid Oracle happy 2013-04-08 12:35:33 +02:00
Damyon Wiese 2b705fc409 Merge branch 'MDL-38452-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-04-08 14:08:52 +08:00
Dan Poltawski c2217f57d0 Merge branch 'MDL-37676_23_STABLE' of git://github.com/appalachianstate/moodle into MOODLE_23_STABLE 2013-04-08 14:07:10 +08:00
Tim Lock 7dc59651b0 MDL-35868: quiz: Use correct attemptnumber when a last attempt exists. 2013-04-08 11:10:08 +08:00
AMOS bot ad20106a0b Automatically generated installer lang files 2013-04-08 00:36:07 +00:00
AMOS bot 68d6206d85 Automatically generated installer lang files 2013-04-07 00:37:27 +00:00
Tim Hunt d4aac8e4f6 MDL-38912 prevent time-outs during unit tests. 2013-04-05 18:39:25 +01:00
Dan Poltawski 7d253e0977 weekly release 2.3.6+ 2013-04-05 18:00:55 +08:00
Dan Poltawski 8318d25d49 Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-04-05 17:53:03 +08:00
Paul Campbell 927b7c29c8 MDL-38766 wiki2.0: fix redirects
Signed-off-by: Paul Campbell <pcampbell@carnegiecollege.ac.uk>
2013-04-05 09:38:05 +01:00
Rossiani Wijaya 3cee2ad262 MDL-38254 Assignment Module: add avaialble message to all assignment types 2013-04-04 11:13:31 +08:00
AMOS bot 3f8a77fb21 Automatically generated installer lang files 2013-04-04 00:36:11 +00:00
Eloy Lafuente (stronk7) a88b558c83 Merge branch 'MDL-38112-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-04-04 00:58:39 +02:00
Dan Poltawski f24fb2fec4 Merge branch 'MDL-38657_M23' of git://github.com/lazydaisy/moodle into MOODLE_23_STABLE 2013-04-03 16:51:39 +08:00
Aparup Banerjee 45d7974cc9 Merge branch 'MDL-38809_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-04-03 16:33:45 +08:00
AMOS bot 17dfe60da0 Automatically generated installer lang files 2013-04-03 00:35:47 +00:00
Rajesh Taneja 8cea78f500 MDL-35883 Accessibility: Added title for login as user link in header and footer for accessibility 2013-04-02 16:07:29 +08:00
Rajesh Taneja d82cef65c6 MDL-35883 Accessibility: Added title for user link in header and footer for accessibility
Conflicts:

	lib/outputrenderers.php
2013-04-02 16:07:29 +08:00
Dan Poltawski d6868e54b8 MDL-35603 backup: fix coding style issues
Conflicts:
	backup/util/ui/restore_ui_components.php
2013-04-02 14:34:15 +08:00
Dan Poltawski e53be83e10 Merge branch 'MDL-35603_23' of git://github.com/rlorenzo/moodle into MOODLE_23_STABLE 2013-04-02 14:27:39 +08:00
Damyon Wiese 772e6ab1bf Merge branch 'MDL-38713-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-04-02 13:24:19 +08:00
Damyon Wiese 2dc4d19f79 Merge branch 'MDL-38703-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-04-02 13:05:28 +08:00
Damyon Wiese 482823f2b6 Merge branch 'MDL-38700-23' of git://github.com/danpoltawski/moodle into MOODLE_23_STABLE 2013-04-02 12:31:52 +08:00
Dan Poltawski 8132e0f899 Merge branch 'MDL-38702_M23' of git://github.com/lazydaisy/moodle into MOODLE_23_STABLE 2013-04-02 10:04:56 +08:00
Mary Evans c74325d17a MDL-38657 theme_base: fixes misalignment issue in User Report page. 2013-03-31 02:25:47 +01:00
prateeksachan b4dcb723ff MDL-38361: Fixed typos in mod/assign/locallib.php 2013-03-31 00:29:18 +05:30
Tim Hunt ccf46ba2d9 MDL-38809 quiz manual grading: delete expensive unnecssary code. 2013-03-30 17:27:41 +00:00
Rex Lorenzo 13c708233e MDL-35603 - Backup - Course import/restore max results
* Unified UI for import and restore course search
2013-03-28 15:24:14 -07:00
Damyon Wiese 5a2c3ece38 weekly release 2.3.6+ 2013-03-28 14:47:18 +08:00
Damyon Wiese f6d596dd5d Merge branch 'MDL-25631_m23' of git://github.com/merrill-oakland/moodle into MOODLE_23_STABLE 2013-03-28 10:42:18 +08:00
Aparup Banerjee 9efd33dc61 Merge branch 'MDL-38659_23' of git://github.com/stronk7/moodle into MOODLE_23_STABLE 2013-03-27 10:39:10 +08:00
Eloy Lafuente (stronk7) 4984697c12 Merge branch 'MDL-38557_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-03-26 23:42:11 +01:00
Eloy Lafuente (stronk7) e721f2dec8 Merge branch 'MDL-38647_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-03-26 23:24:00 +01:00
Eric Merrill 4c31a15261 MDL-25631 backup Decoupling legacy files from course config settigs. If they are present, they will be restored. 2013-03-26 17:05:05 -04:00
Petr Škoda aca26e0641 MDL-37782 reset DB after each failed database test
Conflicts:
	lib/phpunit/classes/database_driver_testcase.php
2013-03-26 16:14:01 +01:00
Eloy Lafuente (stronk7) 9821beacb6 MDL-38659 environment: fix incorrect feedback messages 2013-03-26 15:37:36 +01:00
Dan Poltawski 642cbeec6b MDL-38713 course: correctly set visibleold on mod creation
Remove uncessary set of visibleold in the form
2013-03-26 16:19:47 +08:00
Dan Poltawski 47b17f9123 MDL-38703 course: backport visibility tests from MDL-36417 2013-03-26 15:58:58 +08:00
Dan Poltawski 470730c86b MDL-38703 course: moving a hidden course module unhides it
When moving to a non-hidden section because visibleold was not
being correctly set. visibleold should only be differnet from visible
when a CM is changed by section visibility
2013-03-26 15:48:28 +08:00
Damyon Wiese 2ec0ba91b8 MDL-38468 Filelib: Fix ordering of new mimetypes and upgrade step 2013-03-26 15:30:24 +08:00
Matteo Scaramuccia 4c1689ba52 MDL-38468 Files API: fixed the support for MTHML (MIME HTML: web page archive) files
Conflicts:

	version.php
2013-03-26 15:28:21 +08:00
Charles Fulton ba7c052171 MDL-38700 course: only change visibility if a module moves to a different section 2013-03-26 15:10:44 +08:00
Dan Poltawski 1a5d5334bf MDL-38700 course: add tests for moveto_module()
* Test visibility when moving around hidden sections
* Test for visiblity changes when moving around in the same sections.
2013-03-26 15:10:44 +08:00
Damyon Wiese 7e53f1a231 Merge branch 'wip-MDL-35875-stable23' of git://github.com/phalacee/moodle into MOODLE_23_STABLE 2013-03-26 14:48:10 +08:00
Damyon Wiese c50107c847 Merge branch 'MDL-30438_b_m23' of git://github.com/rwijaya/moodle into MOODLE_23_STABLE 2013-03-26 14:38:06 +08:00
Damyon Wiese 97707318c3 Merge branch 'MDL-38380_M23' of git://github.com/lazydaisy/moodle into MOODLE_23_STABLE 2013-03-26 13:25:16 +08:00
Dan Poltawski 1947345e42 MDL-38112 - update to the ISO list of countries
According to ISO 3166-1
2013-03-26 10:49:26 +08:00
Damyon Wiese 4523bbba8f Merge branch 'wip-mdl-36882-m23' of git://github.com/rajeshtaneja/moodle into MOODLE_23_STABLE 2013-03-26 10:43:32 +08:00
Rajesh Taneja 44ee5acee4 MDL-36882 course: Added aria-live for manual completion
This is required so that assistive technologies can notify user about change on completion status
2013-03-26 10:28:27 +08:00
Damyon Wiese 25e348d6aa Merge branch 'wip-mdl-36125-m23' of git://github.com/rajeshtaneja/moodle into MOODLE_23_STABLE 2013-03-26 10:15:08 +08:00
Mary Evans 3d2ec04484 MDL-38702 theme_mymobile: Replaced missing theme setting to disable CSS Optimiser.
The missing setting was a regression casued by MDL-33357.
2013-03-26 01:01:25 +00:00
Damyon Wiese 8a95402f94 Merge branch 'MDL-38668_23' of git://github.com/stronk7/moodle into MOODLE_23_STABLE 2013-03-25 15:51:56 +08:00
Jason Fowler e8eb6a1d50 MDL-35875 - Accessibility - Remove empty summary attribute for user information table in view user's profile 2013-03-25 11:16:40 +08:00
Damyon Wiese d196b17587 MDL-37033 Environment - Fix indenting in XML 2013-03-25 09:38:30 +08:00
Damyon Wiese 5320a265ab Merge branch 'MDL-37033_23' of git://github.com/stronk7/moodle into MOODLE_23_STABLE 2013-03-25 09:37:07 +08:00
Andrew Robert Nicols 12b6eebf37 MDL-38658 JavaScript: Correct fullpath for dndupload definition 2013-03-24 23:44:38 +01:00
Eloy Lafuente (stronk7) eea80d257c Merge branch 'MDL-36927-m23' of git://github.com/ankitagarwal/moodle into MOODLE_23_STABLE 2013-03-24 23:39:42 +01:00
Eloy Lafuente (stronk7) f54579f72a MDL-38668 timezones: update to tzdata 2013b 2013-03-24 10:46:33 +01:00
Eloy Lafuente (stronk7) e848bf1153 MDL-37033 environment: add 2.5 brach details 2013-03-22 18:42:15 +01:00
Fred Woolard 2e83fee85c MDL-37676 Use course grade category if mapping fails for manual grade items 2013-03-22 08:41:15 -04:00
Tim Hunt f466f71902 MDL-38647 quiz review question issue
Page URL should contain 'step=0' if necessary, but not 'step='.
2013-03-22 11:31:53 +00:00
Tim Hunt 23149b2e13 MDL-38557 quiz manual grading should check mod/quiz:grade 2013-03-22 10:19:53 +00:00
Damyon Wiese 8bb0c27f1b weekly release 2.3.6+ 2013-03-22 13:52:38 +08:00
Damyon Wiese 7c5fa92210 Merge branch 'install_23_STABLE' of git://git.moodle.cz/moodle-install into MOODLE_23_STABLE 2013-03-22 13:35:42 +08:00
Rajesh Taneja 8dc10e915e MDL-36125 course: Added aria-describedby for editing activity title 2013-03-22 12:42:48 +08:00
Eloy Lafuente (stronk7) 3ea063fe7d Merge branch 'MDL-37664-23-int' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE 2013-03-21 10:56:31 +01:00
Frederic Massart 4174fc1176 MDL-37664 blocks: Unexisting function for RTL in drag & drop 2013-03-21 17:46:28 +08:00
AMOS bot 1fde603819 Automatically generated installer lang files 2013-03-21 00:37:32 +00:00
David Monllao 4f47ee6476 MDL-38364 phpunit: PHPUnit autoload uses capital A 2013-03-20 16:06:50 +08:00
Ankit Agarwal 63308668d6 MDL-36927 Reports: Page layout is not defined in course/recent.php 2013-03-20 14:13:09 +08:00
Damyon Wiese 4b226f3b37 MDL-38373 Auth - Additional strict warning fix for radius authentication 2013-03-20 12:41:39 +08:00
Damyon Wiese d3a9460d57 Merge branch 'MDL-38373_23' of git://github.com/stronk7/moodle into MOODLE_23_STABLE 2013-03-20 12:40:01 +08:00
Frederic Massart e004354787 MDL-38452 repositories: User logged in as have access to non-private repositories 2013-03-20 12:39:58 +08:00
Sam Hemelryk 4688b27ab3 MDL-38055 course: fixed double encoding of title properties
Conflicts:
	lib/navigationlib.php

Conflicts:
	blocks/course_overview/renderer.php
	lib/navigationlib.php
2013-03-20 17:35:24 +13:00
Eloy Lafuente (stronk7) 417c261001 Revert "MDL-38515 JavaScript: Correct module dependencies for core_filepicker"
This reverts commit e40c3f7cc4.
2013-03-20 00:58:04 +01:00
Eloy Lafuente (stronk7) e815163162 Merge branch 'MDL-38490_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-03-20 00:43:49 +01:00
Eloy Lafuente (stronk7) 665f13c50c Merge branch 'MDL-38370-m23' of git://github.com/ankitagarwal/moodle into MOODLE_23_STABLE 2013-03-20 00:32:09 +01:00
Eloy Lafuente (stronk7) 601054daca Merge branch 'w12_MDL-38364_m23_phpunitloading' of git://github.com/skodak/moodle into MOODLE_23_STABLE 2013-03-20 00:21:58 +01:00
Eloy Lafuente (stronk7) a3a6b68ae9 Merge branch 'MDL-37664-MOODLE_23_STABLE' of https://github.com/lucisgit/moodle into MOODLE_23_STABLE 2013-03-19 23:37:49 +01:00
Eloy Lafuente (stronk7) c2879b7db8 Merge branch 'MDL-38424_m23' of git://github.com/kordan/moodle into MOODLE_23_STABLE 2013-03-19 23:18:59 +01:00
Eloy Lafuente (stronk7) 9146ab295d Merge branch 'MDL-38395_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-03-19 23:13:16 +01:00
Eloy Lafuente (stronk7) 14742ceb73 Merge branch 'MDL-38460_M23' of git://github.com/lazydaisy/moodle into MOODLE_23_STABLE 2013-03-19 21:17:19 +01:00
Eloy Lafuente (stronk7) 7a4605ae62 Merge branch 'wip-MDL-38422_M23' of git://github.com/gjb2048/moodle into MOODLE_23_STABLE 2013-03-19 21:13:22 +01:00
Eloy Lafuente (stronk7) e250e9ae29 Merge branch 'MDL-38363_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-03-19 21:07:29 +01:00
Eloy Lafuente (stronk7) a0b12848a4 Merge branch 'MDL-38355_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-03-19 21:01:24 +01:00
Eloy Lafuente (stronk7) 07c65a6029 Merge branch 'MDL-38388_23' of git://github.com/jonof/moodle into MOODLE_23_STABLE 2013-03-19 19:03:37 +01:00
Eloy Lafuente (stronk7) 7849c44376 Merge branch 'MDL-38412_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-03-19 18:23:04 +01:00
Eloy Lafuente (stronk7) e2c7333c2e Merge branch 'w12_MDL-38329_m23_webkit' of git://github.com/skodak/moodle into MOODLE_23_STABLE 2013-03-19 18:18:05 +01:00
Petr Škoda ecd68bf7b6 MDL-38202 fix loginas logout redirection 2013-03-19 16:54:20 +01:00
Eloy Lafuente (stronk7) b2b512671d Merge branch 'MDL-38542_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-03-19 16:49:45 +01:00
Eloy Lafuente (stronk7) 6211a05866 Merge branch 'MDL-38444_23' of https://github.com/ppichet/moodle into MOODLE_23_STABLE 2013-03-19 16:35:41 +01:00
Tim Hunt e24cb35c18 MDL-38542 shortanswer qtype: was broken for responses of '0'.
This was a regression caused by MDL-37157 & MDL-37746.
2013-03-19 13:55:48 +00:00
Eloy Lafuente (stronk7) dd8ec00067 Merge branch 'MDL-38515-m23' of git://github.com/andrewnicols/moodle into MOODLE_23_STABLE 2013-03-19 12:58:42 +01:00
Eloy Lafuente (stronk7) a3db3bfac0 Merge branch 'MDL-38397_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE 2013-03-19 12:29:01 +01:00
Eloy Lafuente (stronk7) cf9b57d181 Merge branch 'wip-mdl-38431-m23' of git://github.com/rajeshtaneja/moodle into MOODLE_23_STABLE 2013-03-19 10:24:45 +01:00
Eloy Lafuente (stronk7) 28896f12f7 Merge branch 'MDL-36872-m23' of git://github.com/ankitagarwal/moodle into MOODLE_23_STABLE 2013-03-19 09:37:31 +01:00
Damyon Wiese b100f948cb Merge branch 'MDL-38215-workshop-oracle_23' of git://github.com/mudrd8mz/moodle into MOODLE_23_STABLE 2013-03-18 11:46:15 +08:00
Petr Škoda 2de3def418 MDL-38329 use proper plugin name for the webkit lists workaround
Credit goes to Mauno Korpelainen, thanks.
2013-03-17 21:05:27 +01:00
Petr Škoda 5a3ebd5ea6 MDL-38364 rework PHPUnit autoloading
This is related to BC incompatibility introduced in https://github.com/sebastianbergmann/phpunit/issues/848
2013-03-17 19:57:37 +01:00
Andrew Robert Nicols e40c3f7cc4 MDL-38515 JavaScript: Correct module dependencies for core_filepicker 2013-03-17 16:56:18 +00:00
ppichet 475ba4478d MDL-38444 Saving datasets from edit_calculatedsimple_form.php
Bypassing the 3 steps savequestion() of calculated.
2013-03-16 22:39:52 -04:00
Eloy Lafuente (stronk7) 532c3d8803 MDL-25655 glossary: non full searches now working.
In the process of updting the module from 1.9 to
2.0 the (non) full search feature was lost without notice.

This restitutes it with the same behavior present in 1.9:

- fullsearch disabled: look into concepts and aliases.
- fullsearch enabled (default): look also into definitions.
2013-03-16 18:09:40 +01:00
Eloy Lafuente (stronk7) d312ce89e2 MDL-38373 Use correct PEAR->loadExtension()
Current use is wrong (static) and leads to strict standards notice.
2013-03-16 11:43:51 +01:00
Mary Evans 52a19fac1e MDL-38380 theme_magazine: Fixed typo in style/core.css. 2013-03-16 01:50:52 +00:00
Tim Hunt 682b737316 MDL-38412 fix quiz reports group mode weirdness.
Moodle currently selected group uses the session. This can cause weird
effects when you have two tabs open. This is particularly weird in the
quiz reports, where some actions like delete attempt are checked against
the currently selected group.

The solution is to put the currently selected group into the URL for all
actions like delete/regrade attempt, regrade all attempts, download and
sort table.
2013-03-15 12:02:31 +00:00
Tim Hunt b433c4cedf MDL-38363 qtype_calculated. Fix warnings. 2013-03-15 11:23:39 +00:00
Tim Hunt 340cba5b22 MDL-38395 question categories: wrong URLs after editing.
The problem was that array1 + array2 takes the values from
array1 when a key appears in both places.

While working on this area, I updated it to use html_writer.
2013-03-15 08:15:23 +00:00
Jonathon Fowler 2ffd3701f5 MDL-38388 qformat_blackboard_six: fix question image import
This works on the expectation that the returned array from readdata()
is opaque and will be fed directly into readquestions() since
filebase is different per file and needs to be set up appropriately
before each parse.
2013-03-15 09:09:27 +10:00
Tim Hunt e421b1524f MDL-38355 qtype_multianswer: input boxes too big in Russian.
... and any other language where the characters take multiple
bytes in UTF-8.

This fix was worked out by Dušan Ristić. I am just committing it.
2013-03-14 22:27:48 +00:00
Tim Hunt 0147d3da53 MDL-38397 question editing: only validate default mark if present.
Most qtypes have that field, but not all. multianswer is an example in core.
Also some contrib qtypes.
2013-03-14 22:13:56 +00:00
Tim Hunt d8a20b8828 MDL-38490 question preview, variant is attempt (not display) option 2013-03-14 17:22:37 +00:00
Ankit Agarwal 77df5b724d MDL-36872 reports: Fixing incorrect sorting of recent activites by timestamp 2013-03-14 14:45:11 +08:00
Mary Evans 951a9fcc67 MDL-38460 theme_mymobile: Fixes resources folders to show properly on first access. 2013-03-14 01:27:19 +00:00
David Mudrák 95c7d1d076 MDL-38215 Fix cross-db support in workshop SQL queries
The $sql used in these methods may contain multiple parts glued
together by the UNION operator. Simply appending the ORDER BY statement
to the end of the query does not work in all DBs (failure reported at
Oracle). Following the pattern already applied in MDL-30051, we wrap the
SQL into yet another SELECT statement and perform ordering there.

Credit goes to Sara Cenni for suggesting the fix.
2013-03-13 15:17:42 +01:00
Shamim Rezaie 831ecc9af3 MDL-37664 course: Fix drag & drop RTL mode issue 2013-03-12 15:49:35 +00:00
Kordan 42a42bcd46 MDL-38424 theme_formal_white: added suggestions to css custom styles description 2013-03-12 13:50:24 +01:00
Rossiani Wijaya 1d19d5c219 MDL-30438 Lesson Module: fixed input text editable capability after checking/unchecking unmask option for all browsers except IE8 or lower 2013-03-12 12:44:06 +08:00
Rajesh Taneja 14d6c90f81 MDL-38431 comment: profile url should be escaped, as it's used in html 2013-03-12 12:31:29 +08:00
Ankit Agarwal c1607b5378 MDL-38370 scorm: Fixing strict standard errors in outline report 2013-03-12 11:44:09 +08:00
Gareth J Barnard b5ef760c57 MDL-38422 theme_mymobile: TinyMCE editor difficulties. 2013-03-11 17:51:57 +00:00
Rossiani Wijaya f1192522c8 MDL-30438 Lesson Module: improve password field to disabled when password protect is set to no. 2013-03-11 14:48:45 +08:00
sam marshall 276d1134e2 MDL-38315 Completion: Bugs with 'locked' status in activity form 2013-03-05 16:40:18 +00:00
407 changed files with 8885 additions and 3995 deletions
+91
View File
@@ -0,0 +1,91 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* This script fixed incorrectly deleted users.
*
* @package core
* @subpackage cli
* @copyright 2013 Petr Skoda (http://skodak.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('CLI_SCRIPT', true);
require(__DIR__.'/../../config.php');
require_once($CFG->libdir.'/clilib.php');
// Now get cli options.
list($options, $unrecognized) = cli_get_params(array('help'=>false),
array('h'=>'help'));
if ($unrecognized) {
$unrecognized = implode("\n ", $unrecognized);
cli_error(get_string('cliunknowoption', 'admin', $unrecognized));
}
if ($options['help']) {
$help =
"Fix incorrectly deleted users.
This scripts detects users that are marked as deleted instead
of calling delete_user().
Deleted users do not have original username, idnumber or email,
we must also delete all roles, enrolments, group memberships, etc.
Please note this script does not delete any public information
such as forum posts.
Options:
-h, --help Print out this help
Example:
\$sudo -u www-data /usr/bin/php admin/cli/fix_deleted_users.php
";
echo $help;
die;
}
cli_heading('Looking for sloppy user deletes');
// Look for sloppy deleted users where somebody only flipped the deleted flag.
$sql = "SELECT *
FROM {user}
WHERE deleted = 1 AND email LIKE '%@%' AND username NOT LIKE '%@%'";
$rs = $DB->get_recordset_sql($sql);
foreach ($rs as $user) {
echo "Redeleting user $user->id: $user->username ($user->email)\n";
delete_user($user);
}
cli_heading('Deleting all leftovers');
$DB->set_field('user', 'idnumber', '', array('deleted'=>1));
$DB->delete_records_select('role_assignments', "userid IN (SELECT id FROM {user} WHERE deleted = 1)");
$DB->delete_records_select('cohort_members', "userid IN (SELECT id FROM {user} WHERE deleted = 1)");
$DB->delete_records_select('groups_members', "userid IN (SELECT id FROM {user} WHERE deleted = 1)");
$DB->delete_records_select('user_enrolments', "userid IN (SELECT id FROM {user} WHERE deleted = 1)");
$DB->delete_records_select('user_preferences', "userid IN (SELECT id FROM {user} WHERE deleted = 1)");
$DB->delete_records_select('user_info_data', "userid IN (SELECT id FROM {user} WHERE deleted = 1)");
$DB->delete_records_select('user_lastaccess', "userid IN (SELECT id FROM {user} WHERE deleted = 1)");
$DB->delete_records_select('external_tokens', "userid IN (SELECT id FROM {user} WHERE deleted = 1)");
$DB->delete_records_select('external_services_users', "userid IN (SELECT id FROM {user} WHERE deleted = 1)");
exit(0);
+249 -20
View File
@@ -227,7 +227,7 @@
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_CHECK message="iconvrequired" />
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="optional">
@@ -237,7 +237,7 @@
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_CHECK message="curlrequired" />
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="optional">
@@ -277,12 +277,12 @@
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_CHECK message="simplexmlrequired" />
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_CHECK message="splrequired" />
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
@@ -344,7 +344,7 @@
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_CHECK message="iconvrequired" />
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="optional">
@@ -354,7 +354,7 @@
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_CHECK message="curlrequired" />
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="optional">
@@ -394,12 +394,12 @@
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_CHECK message="simplexmlrequired" />
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_CHECK message="splrequired" />
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
@@ -454,7 +454,7 @@
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_CHECK message="iconvrequired" />
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="optional">
@@ -464,7 +464,7 @@
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_CHECK message="curlrequired" />
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="optional">
@@ -504,12 +504,12 @@
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_CHECK message="simplexmlrequired" />
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_CHECK message="splrequired" />
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
@@ -569,7 +569,7 @@
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_CHECK message="iconvrequired" />
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="optional">
@@ -579,7 +579,7 @@
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_CHECK message="curlrequired" />
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="optional">
@@ -619,12 +619,12 @@
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_CHECK message="simplexmlrequired" />
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_CHECK message="splrequired" />
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
@@ -685,7 +685,7 @@
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_CHECK message="iconvrequired" />
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="optional">
@@ -695,7 +695,7 @@
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_CHECK message="curlrequired" />
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="optional">
@@ -735,12 +735,12 @@
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_CHECK message="simplexmlrequired" />
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_CHECK message="splrequired" />
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
@@ -776,4 +776,233 @@
</PHP_SETTING>
</PHP_SETTINGS>
</MOODLE>
<MOODLE version="2.5" requires="2.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mysql" version="5.1.33" />
<VENDOR name="postgres" version="8.3" />
<VENDOR name="mssql" version="9.0" />
<VENDOR name="odbc_mssql" version="9.0" />
<VENDOR name="mssql_n" version="9.0" />
<VENDOR name="oracle" version="10.2" />
<VENDOR name="sqlite" version="2.0" />
</DATABASE>
<PHP version="5.3.3" 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="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="40M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="safe_mode" value="0" level="optional">
<FEEDBACK>
<ON_CHECK message="settingsafemode" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
</MOODLE>
<MOODLE version="2.6" requires="2.2">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mysql" version="5.1.33" />
<VENDOR name="postgres" version="8.3" />
<VENDOR name="mssql" version="9.0" />
<VENDOR name="oracle" version="10.2" />
</DATABASE>
<PHP version="5.3.3" 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="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="64M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="safe_mode" value="0" level="optional">
<FEEDBACK>
<ON_CHECK message="settingsafemode" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+10 -8
View File
@@ -244,6 +244,8 @@ class site_registration_form extends moodleform {
$questionsnumber = get_config('hub', 'site_questionsnumber_' . $cleanhuburl);
$resourcesnumber = get_config('hub', 'site_resourcesnumber_' . $cleanhuburl);
$mediancoursesize = get_config('hub', 'site_mediancoursesize_' . $cleanhuburl);
$participantnumberaveragecfg = get_config('hub', 'site_participantnumberaverage_' . $cleanhuburl);
$modulenumberaveragecfg = get_config('hub', 'site_modulenumberaverage_' . $cleanhuburl);
//hidden parameters
$mform->addElement('hidden', 'huburl', $huburl);
@@ -376,36 +378,36 @@ class site_registration_form extends moodleform {
if (HUB_MOODLEORGHUBURL != $huburl) {
$mform->addElement('checkbox', 'courses', get_string('sendfollowinginfo', 'hub'),
" " . get_string('coursesnumber', 'hub', $coursecount));
$mform->setDefault('courses', true);
$mform->setDefault('courses', $coursesnumber != -1);
$mform->addHelpButton('courses', 'sendfollowinginfo', 'hub');
$mform->addElement('checkbox', 'users', '',
" " . get_string('usersnumber', 'hub', $usercount));
$mform->setDefault('users', true);
$mform->setDefault('users', $usersnumber != -1);
$mform->addElement('checkbox', 'roleassignments', '',
" " . get_string('roleassignmentsnumber', 'hub', $roleassigncount));
$mform->setDefault('roleassignments', true);
$mform->setDefault('roleassignments', $roleassignmentsnumber != -1);
$mform->addElement('checkbox', 'posts', '',
" " . get_string('postsnumber', 'hub', $postcount));
$mform->setDefault('posts', true);
$mform->setDefault('posts', $postsnumber != -1);
$mform->addElement('checkbox', 'questions', '',
" " . get_string('questionsnumber', 'hub', $questioncount));
$mform->setDefault('questions', true);
$mform->setDefault('questions', $questionsnumber != -1);
$mform->addElement('checkbox', 'resources', '',
" " . get_string('resourcesnumber', 'hub', $resourcecount));
$mform->setDefault('resources', true);
$mform->setDefault('resources', $resourcesnumber != -1);
$mform->addElement('checkbox', 'participantnumberaverage', '',
" " . get_string('participantnumberaverage', 'hub', $participantnumberaverage));
$mform->setDefault('participantnumberaverage', true);
$mform->setDefault('participantnumberaverage', $participantnumberaveragecfg != -1);
$mform->addElement('checkbox', 'modulenumberaverage', '',
" " . get_string('modulenumberaverage', 'hub', $modulenumberaverage));
$mform->setDefault('modulenumberaverage', true);
$mform->setDefault('modulenumberaverage', $modulenumberaveragecfg != -1);
} else {
$mform->addElement('static', 'courseslabel', get_string('sendfollowinginfo', 'hub'),
" " . get_string('coursesnumber', 'hub', $coursecount));
+25 -1
View File
@@ -62,7 +62,18 @@ $siteregistrationform = new site_registration_form('',
$fromform = $siteregistrationform->get_data();
if (!empty($fromform) and confirm_sesskey()) {
//save the settings
// Set to -1 all optional data marked as "don't send" by the admin.
// The function get_site_info() will not calculate the optional data if config is set to -1.
$inputnames = array('courses', 'users', 'roleassignments', 'posts', 'questions', 'resources',
'modulenumberaverage', 'participantnumberaverage');
foreach ($inputnames as $inputname) {
if (empty($fromform->{$inputname})) {
$fromform->{$inputname} = -1;
}
}
// Save the settings.
$cleanhuburl = clean_param($huburl, PARAM_ALPHANUMEXT);
set_config('site_name_' . $cleanhuburl, $fromform->name, 'hub');
set_config('site_description_' . $cleanhuburl, $fromform->description, 'hub');
@@ -113,6 +124,19 @@ if ($update and confirm_sesskey()) {
if (!empty($fromform) and empty($update) and confirm_sesskey()) {
if (!empty($fromform) and confirm_sesskey()) { // if the register button has been clicked
// Retrieve the optional info (specially course number, user number, module number average...).
$siteinfo = $registrationmanager->get_site_info($huburl);
$fromform->courses = $siteinfo['courses'];
$fromform->users = $siteinfo['users'];
$fromform->enrolments = $siteinfo['enrolments'];
$fromform->posts = $siteinfo['posts'];
$fromform->questions = $siteinfo['questions'];
$fromform->resources = $siteinfo['resources'];
$fromform->modulenumberaverage = $siteinfo['modulenumberaverage'];
$fromform->participantnumberaverage = $siteinfo['participantnumberaverage'];
$fromform->street = $siteinfo['street'];
$params = (array) $fromform; //we are using the form input as the redirection parameters (token, url and name)
$unconfirmedhub = $registrationmanager->get_unconfirmedhub($huburl);
+2 -2
View File
@@ -38,7 +38,7 @@ class core_register_renderer extends plugin_renderer_base {
public function moodleorg_registration_message() {
$moodleorgurl = html_writer::link('http://moodle.org', 'Moodle.org');
$moodleorgstatsurl = html_writer::link('http://moodle.org/stats', get_string('statsmoodleorg', 'admin'));
$moochurl = html_writer::link(HUB_MOODLEORGHUBURL, 'MOOCH');
$moochurl = html_writer::link(HUB_MOODLEORGHUBURL, 'Moodle.net');
$moodleorgregmsg = get_string('registermoodleorg', 'admin', $moodleorgurl);
$items = array(get_string('registermoodleorgli1', 'admin'),
get_string('registermoodleorgli2', 'admin', $moodleorgstatsurl),
@@ -92,4 +92,4 @@ class core_register_renderer extends plugin_renderer_base {
return html_writer::table($table);
}
}
}
+1 -1
View File
@@ -32,7 +32,7 @@ $lng = required_param('lng', PARAM_LANG);
$currentpage = optional_param('p', 0, PARAM_INT);
$translatorsubmitted = optional_param('translatorsubmitted', 0, PARAM_BOOL);
$PAGE->set_pagelayout('standard');
$PAGE->set_pagelayout('report'); // Allows for wide page contents.
$PAGE->set_url('/admin/tool/customlang/edit.php', array('lng' => $lng));
navigation_node::override_active_url(new moodle_url('/admin/tool/customlang/index.php'));
$PAGE->set_title(get_string('pluginname', 'tool_customlang'));
+7 -5
View File
@@ -47,14 +47,16 @@ list($options, $unrecognized) = cli_get_params(
)
);
if (file_exists(__DIR__.'/../../../../vendor/autoload.php')) {
if (file_exists(__DIR__.'/../../../../vendor/phpunit/phpunit/PHPUnit/Autoload.php')) {
// Composer packages present.
require_once(__DIR__.'/../../../../vendor/autoload.php');
}
require_once(__DIR__.'/../../../../vendor/phpunit/phpunit/PHPUnit/Autoload.php');
// Verify PHPUnit libs can be loaded.
if (!include_once('PHPUnit/Autoload.php')) {
phpunit_bootstrap_error(PHPUNIT_EXITCODE_PHPUNITMISSING);
} else {
// Verify PHPUnit PEAR libs can be loaded.
if (!include('PHPUnit/Autoload.php')) {
phpunit_bootstrap_error(PHPUNIT_EXITCODE_PHPUNITMISSING);
}
}
if ($options['run']) {
@@ -69,7 +69,7 @@ $string['showsearch'] = 'Show the search for test files.';
$string['skip'] = 'Skip';
$string['stacktrace'] = 'Stack trace:';
$string['summary'] = '{$a->run}/{$a->total} test cases complete: <strong>{$a->passes}</strong> passes, <strong>{$a->fails}</strong> fails and <strong>{$a->exceptions}</strong> exceptions.';
$string['tablesnotsetup'] = 'Unit test tables are not yet built. Do you want to build them now?.';
$string['tablesnotsetup'] = 'Unit test tables are not yet built. Do you want to build them now?';
$string['testdboperations'] = 'Test database operations';
$string['testtablescsvfileunwritable'] = 'The test tables CSV file is not writable ({$a->filename})';
$string['testtablesneedupgrade'] = 'The test DB tables need to be upgraded. Do you wish to proceed with the upgrade now?';
+3 -2
View File
@@ -32,8 +32,9 @@
//
// hack by Vangelis Haniotakis to handle the absence of $_SERVER['REQUEST_URI'] in IIS
//
if (!isset($_SERVER['REQUEST_URI'])) {
$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . '?' . $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
if (isset($_SERVER['QUERY_STRING'])) {
$_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
}
//
+2 -2
View File
@@ -2160,7 +2160,7 @@ class CASClient
if ($this->_cas_server_cert != '' && $this->_cas_server_ca_cert != '') {
// This branch added by IDMS. Seems phpCAS implementor got a bit confused about the curl options CURLOPT_SSLCERT and CURLOPT_CAINFO
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSLCERT, $this->_cas_server_cert);
curl_setopt($ch, CURLOPT_CAINFO, $this->_cas_server_ca_cert);
curl_setopt($ch, CURLOPT_VERBOSE, '1');
@@ -2172,7 +2172,7 @@ class CASClient
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_CAINFO, $this->_cas_server_ca_cert);
} else {
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
}
+12
View File
@@ -549,6 +549,8 @@ class auth_plugin_ldap extends auth_plugin_base {
if ($user->firstaccess == 0) {
$DB->set_field('user', 'firstaccess', time(), array('id'=>$user->id));
}
$euser = $DB->get_record('user', array('id' => $user->id));
events_trigger('user_updated', $euser);
return AUTH_CONFIRM_OK;
}
} else {
@@ -710,6 +712,8 @@ class auth_plugin_ldap extends auth_plugin_base {
$updateuser->auth = 'nologin';
$DB->update_record('user', $updateuser);
echo "\t"; print_string('auth_dbsuspenduser', 'auth_db', array('name'=>$user->username, 'id'=>$user->id)); echo "\n";
$euser = $DB->get_record('user', array('id' => $user->id));
events_trigger('user_updated', $euser);
}
}
} else {
@@ -735,6 +739,8 @@ class auth_plugin_ldap extends auth_plugin_base {
$updateuser->auth = $this->authtype;
$DB->update_record('user', $updateuser);
echo "\t"; print_string('auth_dbreviveduser', 'auth_db', array('name'=>$user->username, 'id'=>$user->id)); echo "\n";
$euser = $DB->get_record('user', array('id' => $user->id));
events_trigger('user_updated', $euser);
}
} else {
print_string('nouserentriestorevive', 'auth_ldap');
@@ -848,6 +854,8 @@ class auth_plugin_ldap extends auth_plugin_base {
$id = $DB->insert_record('user', $user);
echo "\t"; print_string('auth_dbinsertuser', 'auth_db', array('name'=>$user->username, 'id'=>$id)); echo "\n";
$euser = $DB->get_record('user', array('id' => $id));
events_trigger('user_created', $euser);
if (!empty($this->config->forcechangepassword)) {
set_user_preference('auth_forcepasswordchange', 1, $id);
}
@@ -918,6 +926,10 @@ class auth_plugin_ldap extends auth_plugin_base {
}
}
}
if (!empty($updatekeys)) {
$euser = $DB->get_record('user', array('id' => $userid));
events_trigger('user_updated', $euser);
}
} else {
return false;
}
+1 -1
View File
@@ -105,7 +105,7 @@ class auth_plugin_radius extends auth_plugin_base {
}
$result = $rauth->send();
if (PEAR::isError($result)) {
if ($rauth->isError($result)) {
printf("Radius send failed: %s<br/>\n", $result->getMessage());
exit;
} else if ($result === true) {
+7 -3
View File
@@ -1209,12 +1209,16 @@ class moodle1_file_manager implements loggable {
*/
public function migrate_file($sourcepath, $filepath = '/', $filename = null, $sortorder = 0, $timecreated = null, $timemodified = null) {
$sourcefullpath = $this->basepath.'/'.$sourcepath;
// Normalise Windows paths a bit.
$sourcepath = str_replace('\\', '/', $sourcepath);
if ($sourcefullpath !== clean_param($sourcefullpath, PARAM_PATH)) {
throw new moodle1_convert_exception('file_invalid_path', $sourcefullpath);
// PARAM_PATH must not be used on full OS path!
if ($sourcepath !== clean_param($sourcepath, PARAM_PATH)) {
throw new moodle1_convert_exception('file_invalid_path', $sourcepath);
}
$sourcefullpath = $this->basepath.'/'.$sourcepath;
if (!is_readable($sourcefullpath)) {
throw new moodle1_convert_exception('file_not_readable', $sourcefullpath);
}
+13
View File
@@ -1764,6 +1764,10 @@ class backup_questions_structure_step extends backup_structure_step {
$qhint = new backup_nested_element('question_hint', array('id'), array(
'hint', 'hintformat', 'shownumcorrect', 'clearwrong', 'options'));
$tags = new backup_nested_element('tags');
$tag = new backup_nested_element('tag', array('id'), array('name', 'rawname'));
// Build the tree
$qcategories->add_child($qcategory);
@@ -1772,6 +1776,9 @@ class backup_questions_structure_step extends backup_structure_step {
$question->add_child($qhints);
$qhints->add_child($qhint);
$question->add_child($tags);
$tags->add_child($tag);
// Define the sources
$qcategory->set_source_sql("
@@ -1791,6 +1798,12 @@ class backup_questions_structure_step extends backup_structure_step {
ORDER BY id',
array('questionid' => backup::VAR_PARENTID));
$tag->set_source_sql("SELECT t.id, t.name, t.rawname
FROM {tag} t
JOIN {tag_instance} ti ON ti.tagid = t.id
WHERE ti.itemid = ?
AND ti.itemtype = 'question'", array(backup::VAR_PARENTID));
// don't need to annotate ids nor files
// (already done by {@link backup_annotate_all_question_files}
@@ -74,6 +74,8 @@ class restore_course_task extends restore_task {
// Restore course role assignments and overrides (internally will observe the role_assignments setting)
$this->add_step(new restore_ras_and_caps_structure_step('course_ras_and_caps', 'roles.xml'));
$this->add_step(new restore_course_legacy_files_step('legacy_files'));
// Restore course enrolments (plugins and membership). Conditionally prevented for any IMPORT/HUB operation
if ($this->plan->get_mode() != backup::MODE_IMPORT && $this->plan->get_mode() != backup::MODE_HUB) {
$this->add_step(new restore_enrolments_structure_step('course_enrolments', 'enrolments.xml'));
@@ -143,6 +143,9 @@ class restore_final_task extends restore_task {
$rules[] = new restore_log_rule('course', 'report stats', 'report/stats/index.php?id={course}', '{course}');
$rules[] = new restore_log_rule('course', 'view section', 'view.php?id={course}&sectionid={course_section}', '{course_section}');
// module 'grade' rules
$rules[] = new restore_log_rule('grade', 'update', 'report/grader/index.php?id={course}', null);
// module 'user' rules
$rules[] = new restore_log_rule('user', 'view', 'view.php?id={user}&course={course}', '{user}');
$rules[] = new restore_log_rule('user', 'change password', 'view.php?id={user}&course={course}', '{user}');
+62 -4
View File
@@ -150,6 +150,11 @@ class restore_gradebook_structure_step extends restore_structure_step {
if ($data->itemtype=='manual') {
// manual grade items store category id in categoryid
$data->categoryid = $this->get_mappingid('grade_category', $data->categoryid, NULL);
// if mapping failed put in course's grade category
if (NULL == $data->categoryid) {
$coursecat = grade_category::fetch_course_category($this->get_courseid());
$data->categoryid = $coursecat->id;
}
} else if ($data->itemtype=='course') {
// course grade item stores their category id in iteminstance
$coursecat = grade_category::fetch_course_category($this->get_courseid());
@@ -1166,7 +1171,7 @@ class restore_section_structure_step extends restore_structure_step {
// Otherwise, when you restore to an existing course, it will mess up
// existing section availability entries.
if (!$this->get_mappingid('course_sections_availability', $data->id, false)) {
return;
continue;
}
// Update source cmid / grade id to new value.
@@ -1179,7 +1184,12 @@ class restore_section_structure_step extends restore_structure_step {
$data->gradeitemid = null;
}
$DB->update_record('course_sections_availability', $data);
// Delete the record if the condition wasn't found, otherwise update it.
if ($data->sourcecmid === null && $data->gradeitemid === null) {
$DB->delete_records('course_sections_availability', array('id' => $data->id));
} else {
$DB->update_record('course_sections_availability', $data);
}
}
}
}
@@ -1340,7 +1350,6 @@ class restore_course_structure_step extends restore_structure_step {
// Add course related files, without itemid to match
$this->add_related_files('course', 'summary', null);
$this->add_related_files('course', 'legacy', null);
// Deal with legacy allowed modules.
if ($this->legacyrestrictmodules) {
@@ -1367,6 +1376,29 @@ class restore_course_structure_step extends restore_structure_step {
}
}
/**
* Execution step that will migrate legacy files if present.
*/
class restore_course_legacy_files_step extends restore_execution_step {
public function define_execution() {
global $DB;
// Do a check for legacy files and skip if there are none.
$sql = 'SELECT count(*)
FROM {backup_files_temp}
WHERE backupid = ?
AND contextid = ?
AND component = ?
AND filearea = ?';
$params = array($this->get_restoreid(), $this->task->get_old_contextid(), 'course', 'legacy');
if ($DB->count_records_sql($sql, $params)) {
$DB->set_field('course', 'legacyfiles', 2, array('id' => $this->get_courseid()));
restore_dbops::send_files_to_pool($this->get_basepath(), $this->get_restoreid(), 'course',
'legacy', $this->task->get_old_contextid(), $this->task->get_userid());
}
}
}
/*
* Structure step that will read the roles.xml file (at course/activity/block levels)
@@ -2843,10 +2875,13 @@ class restore_create_categories_and_questions extends restore_structure_step {
$hint = new restore_path_element('question_hint',
'/question_categories/question_category/questions/question/question_hints/question_hint');
$tag = new restore_path_element('tag',
'/question_categories/question_category/questions/question/tags/tag');
// Apply for 'qtype' plugins optional paths at question level
$this->add_plugin_structure('qtype', $question);
return array($category, $question, $hint);
return array($category, $question, $hint, $tag);
}
protected function process_question_category($data) {
@@ -2993,6 +3028,29 @@ class restore_create_categories_and_questions extends restore_structure_step {
$this->set_mapping('question_hint', $oldid, $newitemid);
}
protected function process_tag($data) {
global $CFG, $DB;
$data = (object)$data;
$newquestion = $this->get_new_parentid('question');
if (!empty($CFG->usetags)) { // if enabled in server
// TODO: This is highly inneficient. Each time we add one tag
// we fetch all the existing because tag_set() deletes them
// so everything must be reinserted on each call
$tags = array();
$existingtags = tag_get_tags('question', $newquestion);
// Re-add all the existitng tags
foreach ($existingtags as $existingtag) {
$tags[] = $existingtag->rawname;
}
// Add the one being restored
$tags[] = $data->rawname;
// Send all the tags back to the question
tag_set('question', $newquestion, $tags);
}
}
protected function after_execute() {
global $DB;
+7 -1
View File
@@ -822,7 +822,7 @@ abstract class restore_dbops {
* @return array of result object
*/
public static function send_files_to_pool($basepath, $restoreid, $component, $filearea, $oldcontextid, $dfltuserid, $itemname = null, $olditemid = null, $forcenewcontextid = null, $skipparentitemidctxmatch = false) {
global $DB;
global $DB, $CFG;
$results = array();
@@ -917,6 +917,12 @@ abstract class restore_dbops {
// create the file in the filepool if it does not exist yet
if (!$fs->file_exists($newcontextid, $component, $filearea, $rec->newitemid, $file->filepath, $file->filename)) {
// If no license found, use default.
if ($file->license == null){
$file->license = $CFG->sitedefaultlicense;
}
$file_record = array(
'contextid' => $newcontextid,
'component' => $component,
@@ -26,101 +26,6 @@ defined('MOODLE_INTERNAL') || die();
// Include all the needed stuff
global $CFG;
require_once($CFG->dirroot . '/backup/util/includes/backup_includes.php');
require_once($CFG->dirroot . '/backup/util/includes/restore_includes.php');
/**
* Restore dbops tests (all).
*/
class restore_dbops_testcase extends advanced_testcase {
/**
* Verify the xxx_ids_cached (in-memory backup_ids cache) stuff works as expected.
*
* Note that those private implementations are tested here by using the public
* backup_ids API and later performing low-level tests.
*/
public function test_backup_ids_cached() {
global $DB;
$dbman = $DB->get_manager(); // We are going to use database_manager services.
$this->resetAfterTest(true); // Playing with temp tables, better reset once finished.
// Some variables and objects for testing.
$restoreid = 'testrestoreid';
$mapping = new stdClass();
$mapping->itemname = 'user';
$mapping->itemid = 1;
$mapping->newitemid = 2;
$mapping->parentitemid = 3;
$mapping->info = 'info';
// Create the backup_ids temp tables used by restore.
restore_controller_dbops::create_restore_temp_tables($restoreid);
// Send one mapping using the public api with defaults.
restore_dbops::set_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
// Get that mapping and verify everything is returned as expected.
$result = restore_dbops::get_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
$this->assertSame($mapping->itemname, $result->itemname);
$this->assertSame($mapping->itemid, $result->itemid);
$this->assertSame(0, $result->newitemid);
$this->assertSame(null, $result->parentitemid);
$this->assertSame(null, $result->info);
// Drop the backup_xxx_temp temptables manually, so memory cache won't be invalidated.
$dbman->drop_table(new xmldb_table('backup_ids_temp'));
$dbman->drop_table(new xmldb_table('backup_files_temp'));
// Verify the mapping continues returning the same info,
// now from cache (the table does not exist).
$result = restore_dbops::get_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
$this->assertSame($mapping->itemname, $result->itemname);
$this->assertSame($mapping->itemid, $result->itemid);
$this->assertSame(0, $result->newitemid);
$this->assertSame(null, $result->parentitemid);
$this->assertSame(null, $result->info);
// Recreate the temp table, just to drop it using the restore API in
// order to check that, then, the cache becomes invalid for the same request.
restore_controller_dbops::create_restore_temp_tables($restoreid);
restore_controller_dbops::drop_restore_temp_tables($restoreid);
// No cached info anymore, so the mapping request will arrive to
// DB leading to error (temp table does not exist).
try {
$result = restore_dbops::get_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
$this->fail('Expecting an exception, none occurred');
} catch (Exception $e) {
$this->assertTrue($e instanceof dml_exception);
$this->assertSame('Table "backup_ids_temp" does not exist', $e->getMessage());
}
// Create the backup_ids temp tables once more.
restore_controller_dbops::create_restore_temp_tables($restoreid);
// Send one mapping using the public api with complete values.
restore_dbops::set_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid,
$mapping->newitemid, $mapping->parentitemid, $mapping->info);
// Get that mapping and verify everything is returned as expected.
$result = restore_dbops::get_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
$this->assertSame($mapping->itemname, $result->itemname);
$this->assertSame($mapping->itemid, $result->itemid);
$this->assertSame($mapping->newitemid, $result->newitemid);
$this->assertSame($mapping->parentitemid, $result->parentitemid);
$this->assertSame($mapping->info, $result->info);
// Finally, drop the temp tables properly and get the DB error again (memory caches empty).
restore_controller_dbops::drop_restore_temp_tables($restoreid);
try {
$result = restore_dbops::get_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
$this->fail('Expecting an exception, none occurred');
} catch (Exception $e) {
$this->assertTrue($e instanceof dml_exception);
$this->assertSame('Table "backup_ids_temp" does not exist', $e->getMessage());
}
}
}
/**
* Backup dbops tests (all).
@@ -0,0 +1,122 @@
<?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 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
// Include all the needed stuff
global $CFG;
require_once($CFG->dirroot . '/backup/util/includes/restore_includes.php');
/**
* Restore dbops tests (all).
*/
class restore_dbops_testcase extends advanced_testcase {
/**
* Verify the xxx_ids_cached (in-memory backup_ids cache) stuff works as expected.
*
* Note that those private implementations are tested here by using the public
* backup_ids API and later performing low-level tests.
*/
public function test_backup_ids_cached() {
global $DB;
$dbman = $DB->get_manager(); // We are going to use database_manager services.
$this->resetAfterTest(true); // Playing with temp tables, better reset once finished.
// Some variables and objects for testing.
$restoreid = 'testrestoreid';
$mapping = new stdClass();
$mapping->itemname = 'user';
$mapping->itemid = 1;
$mapping->newitemid = 2;
$mapping->parentitemid = 3;
$mapping->info = 'info';
// Create the backup_ids temp tables used by restore.
restore_controller_dbops::create_restore_temp_tables($restoreid);
// Send one mapping using the public api with defaults.
restore_dbops::set_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
// Get that mapping and verify everything is returned as expected.
$result = restore_dbops::get_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
$this->assertSame($mapping->itemname, $result->itemname);
$this->assertSame($mapping->itemid, $result->itemid);
$this->assertSame(0, $result->newitemid);
$this->assertSame(null, $result->parentitemid);
$this->assertSame(null, $result->info);
// Drop the backup_xxx_temp temptables manually, so memory cache won't be invalidated.
$dbman->drop_table(new xmldb_table('backup_ids_temp'));
$dbman->drop_table(new xmldb_table('backup_files_temp'));
// Verify the mapping continues returning the same info,
// now from cache (the table does not exist).
$result = restore_dbops::get_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
$this->assertSame($mapping->itemname, $result->itemname);
$this->assertSame($mapping->itemid, $result->itemid);
$this->assertSame(0, $result->newitemid);
$this->assertSame(null, $result->parentitemid);
$this->assertSame(null, $result->info);
// Recreate the temp table, just to drop it using the restore API in
// order to check that, then, the cache becomes invalid for the same request.
restore_controller_dbops::create_restore_temp_tables($restoreid);
restore_controller_dbops::drop_restore_temp_tables($restoreid);
// No cached info anymore, so the mapping request will arrive to
// DB leading to error (temp table does not exist).
try {
$result = restore_dbops::get_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
$this->fail('Expecting an exception, none occurred');
} catch (Exception $e) {
$this->assertTrue($e instanceof dml_exception);
$this->assertSame('Table "backup_ids_temp" does not exist', $e->getMessage());
}
// Create the backup_ids temp tables once more.
restore_controller_dbops::create_restore_temp_tables($restoreid);
// Send one mapping using the public api with complete values.
restore_dbops::set_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid,
$mapping->newitemid, $mapping->parentitemid, $mapping->info);
// Get that mapping and verify everything is returned as expected.
$result = restore_dbops::get_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
$this->assertSame($mapping->itemname, $result->itemname);
$this->assertSame($mapping->itemid, $result->itemid);
$this->assertSame($mapping->newitemid, $result->newitemid);
$this->assertSame($mapping->parentitemid, $result->parentitemid);
$this->assertSame($mapping->info, $result->info);
// Finally, drop the temp tables properly and get the DB error again (memory caches empty).
restore_controller_dbops::drop_restore_temp_tables($restoreid);
try {
$result = restore_dbops::get_backup_ids_record($restoreid, $mapping->itemname, $mapping->itemid);
$this->fail('Expecting an exception, none occurred');
} catch (Exception $e) {
$this->assertTrue($e instanceof dml_exception);
$this->assertSame('Table "backup_ids_temp" does not exist', $e->getMessage());
}
}
}
+24 -1
View File
@@ -521,6 +521,15 @@ class core_backup_renderer extends plugin_renderer_base {
$url = $component->get_url();
$output = html_writer::start_tag('div', array('class' => 'restore-course-search'));
$countstr = '';
if ($component->has_more_results()) {
$countstr = get_string('morecoursesearchresults', 'backup', $component->get_count());
} else {
$countstr = get_string('totalcoursesearchresults', 'backup', $component->get_count());
}
$output .= html_writer::tag('div', $countstr, array('class'=>'rcs-totalresults'));
$output .= html_writer::start_tag('div', array('class' => 'rcs-results'));
$table = new html_table();
@@ -590,8 +599,14 @@ class core_backup_renderer extends plugin_renderer_base {
return $output;
}
$output .= html_writer::tag('div', get_string('totalcoursesearchresults', 'backup', $component->get_count()), array('class'=>'ics-totalresults'));
$countstr = '';
if ($component->has_more_results()) {
$countstr = get_string('morecoursesearchresults', 'backup', $component->get_count());
} else {
$countstr = get_string('totalcoursesearchresults', 'backup', $component->get_count());
}
$output .= html_writer::tag('div', $countstr, array('class'=>'ics-totalresults'));
$output .= html_writer::start_tag('div', array('class' => 'ics-results'));
$table = new html_table();
@@ -610,6 +625,14 @@ class core_backup_renderer extends plugin_renderer_base {
);
$table->data[] = $row;
}
if ($component->has_more_results()) {
$cell = new html_table_cell(get_string('moreresults', 'backup'));
$cell->colspan = 3;
$cell->attributes['class'] = 'notifyproblem';
$row = new html_table_row(array($cell));
$row->attributes['class'] = 'rcs-course';
$table->data[] = $row;
}
$output .= html_writer::table($table);
$output .= html_writer::end_tag('div');
+16 -5
View File
@@ -65,6 +65,11 @@ abstract class restore_search_base implements renderable {
* @var array
*/
private $requiredcapabilities = array();
/**
* Indicates if we have more than maxresults found.
* @var boolean
*/
private $hasmoreresults = false;
/**
* Constructor
@@ -177,7 +182,7 @@ abstract class restore_search_base implements renderable {
foreach ($this->requiredcapabilities as $cap) {
$requiredcaps[] = $cap['capability'];
}
// Iterate while we have records and haven't reached MAXRESULTS
// Iterate while we have records and haven't reached $this->maxresults.
while ($totalcourses > $offs and $this->totalcount < self::$MAXRESULTS) {
$resultset = $DB->get_records_sql($sql, $params, $offs, $blocksz);
foreach ($resultset as $result) {
@@ -188,11 +193,14 @@ abstract class restore_search_base implements renderable {
continue;
}
}
$this->results[$result->id] = $result;
$this->totalcount++;
if ($this->totalcount >= self::$MAXRESULTS) {
// Check if we are over the limit.
if ($this->totalcount+1 > self::$MAXRESULTS) {
$this->hasmoreresults = true;
break;
}
// If not, then continue.
$this->totalcount++;
$this->results[$result->id] = $result;
}
$offs += $blocksz;
}
@@ -201,7 +209,10 @@ abstract class restore_search_base implements renderable {
}
final public function has_more_results() {
return $this->get_count() >= self::$MAXRESULTS;
if ($this->results === null) {
$this->search();
}
return $this->hasmoreresults;
}
/**
+2 -2
View File
@@ -216,9 +216,9 @@ if (empty($completions)) {
echo '(<i>';
if ($agg == COMPLETION_AGGREGATION_ALL) {
echo strtolower(get_string('aggregateall', 'completion'));
echo strtolower(get_string('all', 'completion'));
} else {
echo strtolower(get_string('aggregateany', 'completion'));
echo strtolower(get_string('any', 'completion'));
}
echo '</i> '.strtolower(get_string('required')).')';
+1 -1
View File
@@ -329,7 +329,7 @@ class block_base {
/**
* Subclasses should override this and return true if the
* subclass block has a config_global.html file.
* subclass block has a settings.php file.
*
* @return boolean
*/
+5 -1
View File
@@ -340,11 +340,15 @@ BRANCH.prototype = {
},
/**
* Attaches required events to the branch structure.
*
* @chainable
* @method wire
* @return {BRANCH} This function is chainable, it always returns itself.
*/
wire : function() {
this.node = this.node || Y.one('#'+this.get('id'));
if (!this.node) {
return false;
return this;
}
if (this.get('expandable')) {
this.event_ajaxload = this.node.on('ajaxload|click', this.ajaxLoad, this);
+4 -3
View File
@@ -84,15 +84,16 @@ if (!empty($rssrecord->preferredtitle)) {
$feedtitle = $rss->get_title();
}
echo '<table align="center" width="50%" cellspacing="1">'."\n";
echo '<tr><td colspan="2"><strong>'. $feedtitle .'</strong></td></tr>'."\n";
echo '<tr><td colspan="2"><strong>'. s($feedtitle) .'</strong></td></tr>'."\n";
foreach ($rss->get_items() as $item) {
echo '<tr><td valign="middle">'."\n";
echo '<a href="'. $item->get_link() .'" target="_blank"><strong>'. $item->get_title();
echo '<a href="'.$item->get_link().'" target="_blank"><strong>';
echo s($item->get_title());
echo '</strong></a>'."\n";
echo '</td>'."\n";
echo '</tr>'."\n";
echo '<tr><td colspan="2"><small>';
echo $item->get_description() .'</small></td></tr>'."\n";
echo format_text($item->get_description(), FORMAT_HTML) .'</small></td></tr>'."\n";
}
echo '</table>'."\n";
+1 -7
View File
@@ -183,13 +183,7 @@ if (!empty($userid)) {
print_error('donothaveblog', 'blog');
}
} else {
$personalcontext = get_context_instance(CONTEXT_USER, $userid);
if (!has_capability('moodle/blog:view', $sitecontext) && !has_capability('moodle/user:readuserblogs', $personalcontext)) {
print_error('cannotviewuserblog', 'blog');
}
if (!blog_user_can_view_user_entry($userid)) {
if (!has_capability('moodle/blog:view', $sitecontext) || !blog_user_can_view_user_entry($userid)) {
print_error('cannotviewcourseblog', 'blog');
}
+38 -15
View File
@@ -65,35 +65,36 @@ function blog_user_can_view_user_entry($targetuserid, $blogentry=null) {
global $CFG, $USER, $DB;
if (empty($CFG->bloglevel)) {
return false; // blog system disabled
return false; // Blog system disabled.
}
if (isloggedin() && $USER->id == $targetuserid) {
return true; // can view own entries in any case
return true; // Can view own entries in any case.
}
$sitecontext = get_context_instance(CONTEXT_SYSTEM);
if (has_capability('moodle/blog:manageentries', $sitecontext)) {
return true; // can manage all entries
return true; // Can manage all entries.
}
// coming for 1 entry, make sure it's not a draft
// If blog is in draft state, then make sure user have proper capability.
if ($blogentry && $blogentry->publishstate == 'draft' && !has_capability('moodle/blog:viewdrafts', $sitecontext)) {
return false; // can not view draft of others
return false; // Can not view draft of others.
}
// coming for 0 entry, make sure user is logged in, if not a public blog
// If blog entry is not public, make sure user is logged in.
if ($blogentry && $blogentry->publishstate != 'public' && !isloggedin()) {
return false;
}
// If blogentry is not passed or all above checks pass, then check capability based on system config.
switch ($CFG->bloglevel) {
case BLOG_GLOBAL_LEVEL:
return true;
break;
case BLOG_SITE_LEVEL:
if (isloggedin()) { // not logged in viewers forbidden
if (isloggedin()) { // Not logged in viewers forbidden.
return true;
}
return false;
@@ -101,6 +102,7 @@ function blog_user_can_view_user_entry($targetuserid, $blogentry=null) {
case BLOG_USER_LEVEL:
default:
// If user is viewing other user blog, then user should have user:readuserblogs capability.
$personalcontext = get_context_instance(CONTEXT_USER, $targetuserid);
return has_capability('moodle/user:readuserblogs', $personalcontext);
break;
@@ -1001,6 +1003,8 @@ function blog_get_associated_count($courseid, $cmid=null) {
* may have switch to turn on/off comments option, this callback will
* affect UI display, not like pluginname_comment_validate only throw
* exceptions.
* blog_comment_validate will be called before viewing/adding/deleting
* comment, so don't repeat checks.
* Capability check has been done in comment->check_permissions(), we
* don't need to do it again here.
*
@@ -1017,7 +1021,17 @@ function blog_get_associated_count($courseid, $cmid=null) {
* @return array
*/
function blog_comment_permissions($comment_param) {
return array('post'=>true, 'view'=>true);
global $DB;
// If blog is public and current usre is guest, then don't let him post comments.
$blogentry = $DB->get_record('post', array('id' => $comment_param->itemid), 'publishstate', MUST_EXIST);
if ($blogentry->publishstate != 'public') {
if (!isloggedin() || isguestuser()) {
return array('post' => false, 'view' => true);
}
}
return array('post' => true, 'view' => true);
}
/**
@@ -1036,16 +1050,21 @@ function blog_comment_permissions($comment_param) {
* @return boolean
*/
function blog_comment_validate($comment_param) {
global $DB;
// validate comment itemid
if (!$entry = $DB->get_record('post', array('id'=>$comment_param->itemid))) {
throw new comment_exception('invalidcommentitemid');
global $CFG, $DB, $USER;
// Check if blogs are enabled user can comment.
if (empty($CFG->bloglevel) || empty($CFG->blogusecomments)) {
throw new comment_exception('nopermissiontocomment');
}
// validate comment area
// Validate comment area.
if ($comment_param->commentarea != 'format_blog') {
throw new comment_exception('invalidcommentarea');
}
// validation for comment deletion
$blogentry = $DB->get_record('post', array('id' => $comment_param->itemid), '*', MUST_EXIST);
// Validation for comment deletion.
if (!empty($comment_param->commentid)) {
if ($record = $DB->get_record('comments', array('id'=>$comment_param->commentid))) {
if ($record->commentarea != 'format_blog') {
@@ -1061,7 +1080,11 @@ function blog_comment_validate($comment_param) {
throw new comment_exception('invalidcommentid');
}
}
return true;
// Validate if user has blog view permission.
$sitecontext = context_system::instance();
return has_capability('moodle/blog:view', $sitecontext) &&
blog_user_can_view_user_entry($blogentry->userid, $blogentry);
}
/**
+7 -4
View File
@@ -214,11 +214,14 @@ class blog_entry {
$contentcell->text .= $template['body'];
$contentcell->text .= $attachedimages;
// Uniquehash is used as a link to an external blog
if (!empty($this->uniquehash)) {
$contentcell->text .= $OUTPUT->container_start('externalblog');
$contentcell->text .= html_writer::link($this->uniquehash, get_string('linktooriginalentry', 'blog'));
$contentcell->text .= $OUTPUT->container_end();
// Uniquehash is used as a link to an external blog
$url = clean_param($this->uniquehash, PARAM_URL);
if (!empty($url)) {
$contentcell->text .= $OUTPUT->container_start('externalblog');
$contentcell->text .= html_writer::link($url, get_string('linktooriginalentry', 'blog'));
$contentcell->text .= $OUTPUT->container_end();
}
}
// Links to tags
+2 -1
View File
@@ -77,6 +77,7 @@ $search .= html_writer::start_tag('div');
$search .= html_writer::label(get_string('searchcohort', 'cohort').':', 'cohort_search_q');
$search .= html_writer::empty_tag('input', array('id'=>'cohort_search_q', 'type'=>'text', 'name'=>'search', 'value'=>$searchquery));
$search .= html_writer::empty_tag('input', array('type'=>'submit', 'value'=>get_string('search', 'cohort')));
$search .= html_writer::empty_tag('input', array('type'=>'hidden', 'name'=>'contextid', 'value'=>$contextid));
$search .= html_writer::end_tag('div');
$search .= html_writer::end_tag('form');
echo $search;
@@ -137,4 +138,4 @@ if ($manager) {
echo $OUTPUT->single_button(new moodle_url('/cohort/edit.php', array('contextid'=>$context->id)), get_string('add'));
}
echo $OUTPUT->footer();
echo $OUTPUT->footer();
+1 -1
View File
@@ -520,7 +520,7 @@ class comment {
$c->format = $u->cformat;
$c->timecreated = $u->ctimecreated;
$url = new moodle_url('/user/view.php', array('id'=>$u->id, 'course'=>$this->courseid));
$c->profileurl = $url->out(false);
$c->profileurl = $url->out(true);
$c->fullname = fullname($u);
$c->time = userdate($c->timecreated, get_string('strftimerecent', 'langconfig'));
$c->content = format_text($c->content, $c->format, $formatoptions);
+6
View File
@@ -61,6 +61,12 @@ $context = $PAGE->context;
// And the object has been loaded for us no need for another DB call
$category = $PAGE->category;
// This needs to match caps checked in can_edit_in_category below.
$PAGE->set_other_editing_capability(array(
'moodle/category:manage',
'moodle/course:create'
));
$canedit = can_edit_in_category($category->id);
if ($canedit) {
if ($categoryedit !== -1) {
+1 -1
View File
@@ -51,7 +51,7 @@ function dndupload_add_to_course($course, $modnames) {
// Add the javascript to the page.
$jsmodule = array(
'name' => 'coursedndupload',
'fullpath' => new moodle_url('/course/dndupload.js'),
'fullpath' => '/course/dndupload.js',
'strings' => array(
array('addfilehere', 'moodle'),
array('dndworkingfiletextlink', 'moodle'),
+10 -1
View File
@@ -130,6 +130,15 @@ class course_edit_form extends moodleform {
if (!isset($max) || !is_numeric($max)) {
$max = 52;
}
// Increase the number of sections combo box values if the user has increased the number of sections
// using the icon on the course page beyond course 'maxsections' or course 'maxsections' has been
// reduced below the number of sections already set for the course on the site administration course
// defaults page. This is so that the number of sections is not reduced leaving unintended orphaned
// activities / resources.
if (isset($course->numsections) && $course->numsections > $max) {
$max = $course->numsections;
}
for ($i = 0; $i <= $max; $i++) {
$sectionmenu[$i] = "$i";
}
@@ -201,7 +210,7 @@ class course_edit_form extends moodleform {
enrol_course_edit_form($mform, $course, $context);
//--------------------------------------------------------------------------------
$mform->addElement('header','', get_string('groups', 'group'));
$mform->addElement('header', '', get_string('groupsettingsheader', 'group'));
$choices = array();
$choices[NOGROUPS] = get_string('groupsnone', 'group');
+60 -57
View File
@@ -108,6 +108,7 @@ class core_course_external extends external_api {
$sections = get_all_sections($course->id);
//for each sections (first displayed to last displayed)
$modinfosections = $modinfo->get_sections();
foreach ($sections as $key => $section) {
$showsection = (has_capability('moodle/course:viewhiddensections', $context) or $section->visible or !$course->hiddensections);
@@ -126,62 +127,64 @@ class core_course_external extends external_api {
$sectioncontents = array();
//for each module of the section
foreach ($modinfo->sections[$section->section] as $cmid) { //matching /course/lib.php:print_section() logic
$cm = $modinfo->cms[$cmid];
if (!empty($modinfosections[$section->section])) {
foreach ($modinfosections[$section->section] as $cmid) {
$cm = $modinfo->cms[$cmid];
// stop here if the module is not visible to the user
if (!$cm->uservisible) {
continue;
}
$module = array();
//common info (for people being able to see the module or availability dates)
$module['id'] = $cm->id;
$module['name'] = format_string($cm->name, true);
$module['modname'] = $cm->modname;
$module['modplural'] = $cm->modplural;
$module['modicon'] = $cm->get_icon_url()->out(false);
$module['indent'] = $cm->indent;
$modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
if (!empty($cm->showdescription)) {
$module['description'] = $cm->get_content();
}
//url of the module
$url = $cm->get_url();
if ($url) { //labels don't have url
$module['url'] = $cm->get_url()->out();
}
$canviewhidden = has_capability('moodle/course:viewhiddenactivities',
get_context_instance(CONTEXT_MODULE, $cm->id));
//user that can view hidden module should know about the visibility
$module['visible'] = $cm->visible;
//availability date (also send to user who can see hidden module when the showavailabilyt is ON)
if ($canupdatecourse or ($CFG->enableavailability && $canviewhidden && $cm->showavailability)) {
$module['availablefrom'] = $cm->availablefrom;
$module['availableuntil'] = $cm->availableuntil;
}
$baseurl = 'webservice/pluginfile.php';
//call $modulename_export_contents
//(each module callback take care about checking the capabilities)
require_once($CFG->dirroot . '/mod/' . $cm->modname . '/lib.php');
$getcontentfunction = $cm->modname.'_export_contents';
if (function_exists($getcontentfunction)) {
if ($contents = $getcontentfunction($cm, $baseurl)) {
$module['contents'] = $contents;
// stop here if the module is not visible to the user
if (!$cm->uservisible) {
continue;
}
$module = array();
//common info (for people being able to see the module or availability dates)
$module['id'] = $cm->id;
$module['name'] = format_string($cm->name, true);
$module['modname'] = $cm->modname;
$module['modplural'] = $cm->modplural;
$module['modicon'] = $cm->get_icon_url()->out(false);
$module['indent'] = $cm->indent;
$modcontext = context_module::instance($cm->id);
if (!empty($cm->showdescription)) {
$module['description'] = $cm->get_content();
}
//url of the module
$url = $cm->get_url();
if ($url) { //labels don't have url
$module['url'] = $cm->get_url()->out();
}
$canviewhidden = has_capability('moodle/course:viewhiddenactivities',
context_module::instance($cm->id));
//user that can view hidden module should know about the visibility
$module['visible'] = $cm->visible;
//availability date (also send to user who can see hidden module when the showavailabilyt is ON)
if ($canupdatecourse or ($CFG->enableavailability && $canviewhidden && $cm->showavailability)) {
$module['availablefrom'] = $cm->availablefrom;
$module['availableuntil'] = $cm->availableuntil;
}
$baseurl = 'webservice/pluginfile.php';
//call $modulename_export_contents
//(each module callback take care about checking the capabilities)
require_once($CFG->dirroot . '/mod/' . $cm->modname . '/lib.php');
$getcontentfunction = $cm->modname.'_export_contents';
if (function_exists($getcontentfunction)) {
if ($contents = $getcontentfunction($cm, $baseurl)) {
$module['contents'] = $contents;
}
}
//assign result to $sectioncontents
$sectioncontents[] = $module;
}
//assign result to $sectioncontents
$sectioncontents[] = $module;
}
$sectionvalues['modules'] = $sectioncontents;
@@ -675,9 +678,9 @@ class core_course_external extends external_api {
"users" (int) Include users (default to 0 that is equal to no),
"role_assignments" (int) Include role assignments (default to 0 that is equal to no),
"comments" (int) Include user comments (default to 0 that is equal to no),
"completion_information" (int) Include user course completion information (default to 0 that is equal to no),
"userscompletion" (int) Include user course completion information (default to 0 that is equal to no),
"logs" (int) Include course logs (default to 0 that is equal to no),
"histories" (int) Include histories (default to 0 that is equal to no)'
"grade_histories" (int) Include histories (default to 0 that is equal to no)'
),
'value' => new external_value(PARAM_RAW, 'the value for the option 1 (yes) or 0 (no)'
)
@@ -739,9 +742,9 @@ class core_course_external extends external_api {
'users' => 0,
'role_assignments' => 0,
'comments' => 0,
'completion_information' => 0,
'userscompletion' => 0,
'logs' => 0,
'histories' => 0
'grade_histories' => 0
);
$backupsettings = array();
+1 -1
View File
@@ -324,7 +324,7 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
* @param array $mods course modules indexed by id (from get_all_mods)
* @return string HTML to output.
*/
private function section_activity_summary($section, $course, $mods) {
protected function section_activity_summary($section, $course, $mods) {
if (empty($section->sequence)) {
return '';
}
+8
View File
@@ -42,6 +42,14 @@ M.course.format.swap_sections = function(Y, node1, node2) {
var sectionlist = Y.Node.all('.'+CSS.COURSECONTENT+' '+M.course.format.get_section_selector(Y));
// Swap menus.
sectionlist.item(node1).one('.'+CSS.SECTIONADDMENUS).swap(sectionlist.item(node2).one('.'+CSS.SECTIONADDMENUS));
if (sectionlist.item(node1).hasClass('current')) {
sectionlist.item(node1).removeClass('current');
sectionlist.item(node2).addClass('current');
} else if (sectionlist.item(node2).hasClass('current')) {
sectionlist.item(node2).removeClass('current');
sectionlist.item(node1).addClass('current');
}
}
/**
+6
View File
@@ -44,6 +44,12 @@ $PAGE->set_url('/course/index.php');
$PAGE->set_context($systemcontext);
$PAGE->set_pagelayout('admin');
// This needs to match caps checked in can_edit_in_category below.
$PAGE->set_other_editing_capability(array(
'moodle/category:manage',
'moodle/course:create'
));
if (can_edit_in_category()) {
if ($categoryedit !== -1) {
$USER->editing = $categoryedit;
+36 -20
View File
@@ -94,6 +94,9 @@ function make_log_url($module, $url) {
case 'role':
$url = '/'.$url;
break;
case 'grade':
$url = "/grade/$url";
break;
default:
$url = "/mod/$module/$url";
break;
@@ -857,7 +860,9 @@ function print_overview($courses, array $remote_courses=array()) {
foreach ($courses as $course) {
$fullname = format_string($course->fullname, true, array('context' => get_context_instance(CONTEXT_COURSE, $course->id)));
echo $OUTPUT->box_start('coursebox');
$attributes = array('title' => s($fullname));
// decode &amp;'s. format_string above will have encoded them and html_writer will encode again when it processed the title
// attribute leading to double encoding.
$attributes = array('title' => str_replace('&amp;', '&', $fullname));
if (empty($course->visible)) {
$attributes['class'] = 'dimmed';
}
@@ -1727,13 +1732,15 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false,
'type' => 'hidden', 'name' => 'completionstate',
'value' => $newstate));
echo html_writer::empty_tag('input', array(
'type' => 'image', 'src' => $imgsrc, 'alt' => $imgalt, 'title' => $imgtitle));
'type' => 'image', 'src' => $imgsrc, 'alt' => $imgalt, 'title' => $imgtitle,
'aria-live' => 'polite'));
echo html_writer::end_tag('div');
echo html_writer::end_tag('form');
} else {
// In auto mode, or when editing, the icon is just an image
echo "<span class='autocompletion'>";
echo "<img src='$imgsrc' alt='$imgalt' title='$imgalt' /></span>";
// In auto mode, or when editing, the icon is just an image.
echo html_writer::tag('span', html_writer::empty_tag('img', array(
'src' => $imgsrc, 'alt' => $imgalt, 'title' => $imgalt)),
array('class' => 'autocompletion'));
}
}
}
@@ -2916,16 +2923,23 @@ function set_coursemodule_visible($id, $visible, $prevstateoverrides=false) {
}
}
$cminfo = new stdClass();
$cminfo->id = $id;
$cminfo->visible = $visible;
if ($prevstateoverrides) {
if ($visible == '0') {
// Remember the current visible state so we can toggle this back.
$DB->set_field('course_modules', 'visibleold', $cm->visible, array('id'=>$id));
// If we making whole section visiblility change..
if ($visible == 0) {
// Retain previous visibility state.
$cminfo->visibleold = $cm->visible;
} else {
// Get the previous saved visible states.
return $DB->set_field('course_modules', 'visible', $cm->visibleold, array('id'=>$id));
// Restore previous visibility state.
$cminfo->visible = $cm->visibleold;
}
} else {
$cminfo->visibleold = $visible;
}
return $DB->set_field("course_modules", "visible", $visible, array("id"=>$id));
return $DB->update_record('course_modules', $cminfo);
}
/**
@@ -3166,15 +3180,17 @@ function moveto_module($mod, $section, $beforemod=NULL) {
/// Update module itself if necessary
// If moving to a hidden section then hide module.
if (!$section->visible && $mod->visible) {
// Set this in the object because it is sent as a response to ajax calls.
set_coursemodule_visible($mod->id, 0, true);
$mod->visible = 0;
}
if ($section->visible && !$mod->visible) {
set_coursemodule_visible($mod->id, 1, true);
// Set this in the object because it is sent as a response to ajax calls.
$mod->visible = $mod->visibleold;
if ($mod->section != $section->id) {
if (!$section->visible && $mod->visible) {
// Set this in the object because it is sent as a response to ajax calls.
set_coursemodule_visible($mod->id, 0, true);
$mod->visible = 0;
}
if ($section->visible && !$mod->visible) {
set_coursemodule_visible($mod->id, 1, true);
// Set this in the object because it is sent as a response to ajax calls.
$mod->visible = $mod->visibleold;
}
}
/// Add the module into the new section
+27 -7
View File
@@ -4,13 +4,22 @@
require_once('../config.php');
require_once('lib.php');
$id = optional_param('id', SITEID, PARAM_INT); // course id
$id = optional_param('id', SITEID, PARAM_INT); // course id
$redirect = optional_param('redirect', 0, PARAM_BOOL);
$url = new moodle_url('/course/loginas.php', array('id'=>$id));
$PAGE->set_url($url);
/// Reset user back to their real self if needed, for security reasons you need to log out and log in again
if (session_is_loggedinas()) {
require_sesskey();
require_logout();
// We can not set wanted URL here because the session is closed.
redirect(new moodle_url($url, array('redirect'=>1)));
}
if ($redirect) {
if ($id and $id != SITEID) {
$SESSION->wantsurl = "$CFG->wwwroot/course/view.php?id=".$id;
} else {
@@ -25,12 +34,6 @@ if (session_is_loggedinas()) {
$userid = required_param('user', PARAM_INT); // login as this user
$url = new moodle_url('/course/loginas.php', array('user'=>$userid, 'sesskey'=>sesskey()));
if ($id !== SITEID) {
$url->param('id', $id);
}
$PAGE->set_url($url);
require_sesskey();
$course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST);
@@ -57,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.
+2 -2
View File
@@ -335,7 +335,7 @@ if ($mform->is_cancelled()) {
$cm->groupmembersonly = $fromform->groupmembersonly;
$completion = new completion_info($course);
if ($completion->is_enabled()) {
if ($completion->is_enabled() && !empty($fromform->completionunlocked)) {
// Update completion settings
$cm->completion = $fromform->completion;
$cm->completiongradeitemnumber = $fromform->completiongradeitemnumber;
@@ -412,6 +412,7 @@ if ($mform->is_cancelled()) {
$newcm->module = $fromform->module;
$newcm->instance = 0; // not known yet, will be updated later (this is similar to restore code)
$newcm->visible = $fromform->visible;
$newcm->visibleold = $fromform->visible;
$newcm->groupmode = $fromform->groupmode;
$newcm->groupingid = $fromform->groupingid;
$newcm->groupmembersonly = $fromform->groupmembersonly;
@@ -481,7 +482,6 @@ if ($mform->is_cancelled()) {
// make sure visibility is set correctly (in particular in calendar)
// note: allow them to set it even without moodle/course:activityvisibility
set_coursemodule_visible($fromform->coursemodule, $fromform->visible);
$DB->set_field('course_modules', 'visibleold', 1, array('id' => $fromform->coursemodule));
if (isset($fromform->cmidnumber)) { //label
// set cm idnumber - uniqueness is already verified by form validation
+5 -2
View File
@@ -303,8 +303,11 @@ abstract class moodleform_mod extends moodleform {
}
// Completion: Don't let them choose automatic completion without turning
// on some conditions
if (array_key_exists('completion', $data) && $data['completion']==COMPLETION_TRACKING_AUTOMATIC) {
// on some conditions. Ignore this check when completion settings are
// locked, as the options are then disabled.
if (array_key_exists('completion', $data) &&
$data['completion'] == COMPLETION_TRACKING_AUTOMATIC &&
!empty($data['completionunlocked'])) {
if (empty($data['completionview']) && empty($data['completionusegrade']) &&
!$this->completion_rule_enabled($data)) {
$errors['completion'] = get_string('badautocompletion', 'completion');
+23 -6
View File
@@ -30,6 +30,7 @@ require_once('recent_form.php');
$id = required_param('id', PARAM_INT);
$PAGE->set_url('/course/recent.php', array('id'=>$id));
$PAGE->set_pagelayout('report');
if (!$course = $DB->get_record('course', array('id'=>$id))) {
print_error("That's an invalid course id");
@@ -280,21 +281,37 @@ echo $OUTPUT->footer();
function compare_activities_by_time_desc($a, $b) {
// make sure the activities actually have a timestamp property
if ((!array_key_exists('timestamp', $a)) or (!array_key_exists('timestamp', $b))) {
return 0;
}
if ($a->timestamp == $b->timestamp)
if ((!array_key_exists('timestamp', $a)) && (!array_key_exists('timestamp', $b))) {
return 0;
}
// We treat instances without timestamp as if they have a timestamp of 0.
if ((!array_key_exists('timestamp', $a)) && (array_key_exists('timestamp', $b))) {
return 1;
}
if ((array_key_exists('timestamp', $a)) && (!array_key_exists('timestamp', $b))) {
return -1;
}
if ($a->timestamp == $b->timestamp) {
return 0;
}
return ($a->timestamp > $b->timestamp) ? -1 : 1;
}
function compare_activities_by_time_asc($a, $b) {
// make sure the activities actually have a timestamp property
if ((!array_key_exists('timestamp', $a)) or (!array_key_exists('timestamp', $b))) {
if ((!array_key_exists('timestamp', $a)) && (!array_key_exists('timestamp', $b))) {
return 0;
}
if ($a->timestamp == $b->timestamp)
// We treat instances without timestamp as if they have a timestamp of 0.
if ((!array_key_exists('timestamp', $a)) && (array_key_exists('timestamp', $b))) {
return -1;
}
if ((array_key_exists('timestamp', $a)) && (!array_key_exists('timestamp', $b))) {
return 1;
}
if ($a->timestamp == $b->timestamp) {
return 0;
}
return ($a->timestamp < $b->timestamp) ? -1 : 1;
}
+2 -6
View File
@@ -191,18 +191,14 @@ class core_course_renderer extends plugin_renderer_base {
$formcontent .= html_writer::start_tag('div', array('class' => 'alloptions'));
// Activities
$activities = array_filter($modules, function($mod) {
return ($mod->archetype !== MOD_ARCHETYPE_RESOURCE && $mod->archetype !== MOD_ARCHETYPE_SYSTEM);
});
$activities = array_filter($modules, create_function('$mod', 'return ($mod->archetype !== MOD_ARCHETYPE_RESOURCE && $mod->archetype !== MOD_ARCHETYPE_SYSTEM);'));
if (count($activities)) {
$formcontent .= $this->course_modchooser_title('activities');
$formcontent .= $this->course_modchooser_module_types($activities);
}
// Resources
$resources = array_filter($modules, function($mod) {
return ($mod->archetype === MOD_ARCHETYPE_RESOURCE);
});
$resources = array_filter($modules, create_function('$mod', 'return ($mod->archetype === MOD_ARCHETYPE_RESOURCE);'));
if (count($resources)) {
$formcontent .= $this->course_modchooser_title('resources');
$formcontent .= $this->course_modchooser_module_types($resources);
+13 -5
View File
@@ -87,7 +87,11 @@ foreach ($modinfo->cms as $cm) {
// preload instances
foreach ($resources as $modname=>$instances) {
$resources[$modname] = $DB->get_records_list($modname, 'id', $instances, 'id', 'id,name,intro,introformat,timemodified');
$additionalfields = '';
if (plugin_supports('mod', $modname, FEATURE_MOD_INTRO)) {
$additionalfields = ',intro,introformat';
}
$resources[$modname] = $DB->get_records_list($modname, 'id', $instances, 'id', 'id,name'.$additionalfields);
}
if (!$cms) {
@@ -112,8 +116,8 @@ foreach ($cms as $cm) {
continue;
}
$resource = $resources[$cm->modname][$cm->instance];
$printsection = '';
if ($usesections) {
$printsection = '';
if ($cm->sectionnum !== $currentsection) {
if ($cm->sectionnum) {
$printsection = get_section_name($course, $sections[$cm->sectionnum]);
@@ -123,8 +127,6 @@ foreach ($cms as $cm) {
}
$currentsection = $cm->sectionnum;
}
} else {
$printsection = '<span class="smallinfo">'.userdate($resource->timemodified)."</span>";
}
$extra = empty($cm->extra) ? '' : $cm->extra;
@@ -134,11 +136,17 @@ foreach ($cms as $cm) {
$icon = '<img src="'.$OUTPUT->pix_url('icon', $cm->modname).'" class="activityicon" alt="'.get_string('modulename', $cm->modname).'" /> ';
}
if (isset($resource->intro) && isset($resource->introformat)) {
$intro = format_module_intro('resource', $resource, $cm->id);
} else {
$intro = '';
}
$class = $cm->visible ? '' : 'class="dimmed"'; // hidden modules are dimmed
$table->data[] = array (
$printsection,
"<a $class $extra href=\"$CFG->wwwroot/mod/$cm->modname/view.php?id=$cm->id\">".$icon.format_string($resource->name)."</a>",
format_module_intro('resource', $resource, $cm->id));
$intro);
}
echo html_writer::table($table);
+261
View File
@@ -290,4 +290,265 @@ class courselib_testcase extends advanced_testcase {
// Check that the section number has been changed in the cm
$this->assertEquals($newsection->id, $cm->section);
}
public function test_module_visibility() {
$this->setAdminUser();
$this->resetAfterTest(true);
// Create course and modules.
$course = $this->getDataGenerator()->create_course(array('numsections' => 5));
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$page = $this->getDataGenerator()->create_module('page', array('duedate' => time(), 'course' => $course->id));
$modules = compact('forum', 'page');
// Hiding the modules.
foreach ($modules as $mod) {
set_coursemodule_visible($mod->cmid, 0);
$this->check_module_visibility($mod, 0, 0);
}
// Showing the modules.
foreach ($modules as $mod) {
set_coursemodule_visible($mod->cmid, 1);
$this->check_module_visibility($mod, 1, 1);
}
}
public function test_section_visibility() {
$this->setAdminUser();
$this->resetAfterTest(true);
// Create course.
$course = $this->getDataGenerator()->create_course(array('numsections' => 3), array('createsections' => true));
// Testing an empty section.
$sectionnumber = 1;
set_section_visible($course->id, $sectionnumber, 0);
$section_info = get_fast_modinfo($course)->get_section_info($sectionnumber);
$this->assertEquals($section_info->visible, 0);
set_section_visible($course->id, $sectionnumber, 1);
$section_info = get_fast_modinfo($course)->get_section_info($sectionnumber);
$this->assertEquals($section_info->visible, 1);
// Testing a section with visible modules.
$sectionnumber = 2;
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id),
array('section' => $sectionnumber));
$page= $this->getDataGenerator()->create_module('page', array('duedate' => time(),
'course' => $course->id), array('section' => $sectionnumber));
$modules = compact('forum', 'page');
set_section_visible($course->id, $sectionnumber, 0);
$section_info = get_fast_modinfo($course)->get_section_info($sectionnumber);
$this->assertEquals($section_info->visible, 0);
foreach ($modules as $mod) {
$this->check_module_visibility($mod, 0, 1);
}
set_section_visible($course->id, $sectionnumber, 1);
$section_info = get_fast_modinfo($course)->get_section_info($sectionnumber);
$this->assertEquals($section_info->visible, 1);
foreach ($modules as $mod) {
$this->check_module_visibility($mod, 1, 1);
}
// Testing a section with hidden modules, which should stay hidden.
$sectionnumber = 3;
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id),
array('section' => $sectionnumber));
$page = $this->getDataGenerator()->create_module('page', array('duedate' => time(),
'course' => $course->id), array('section' => $sectionnumber));
$modules = compact('forum', 'page');
foreach ($modules as $mod) {
set_coursemodule_visible($mod->cmid, 0);
$this->check_module_visibility($mod, 0, 0);
}
set_section_visible($course->id, $sectionnumber, 0);
$section_info = get_fast_modinfo($course)->get_section_info($sectionnumber);
$this->assertEquals($section_info->visible, 0);
foreach ($modules as $mod) {
$this->check_module_visibility($mod, 0, 0);
}
set_section_visible($course->id, $sectionnumber, 1);
$section_info = get_fast_modinfo($course)->get_section_info($sectionnumber);
$this->assertEquals($section_info->visible, 1);
foreach ($modules as $mod) {
$this->check_module_visibility($mod, 0, 0);
}
}
/**
* Helper function to assert that a module has correctly been made visible, or hidden.
*
* @param stdClass $mod module information
* @param int $visibility the current state of the module
* @param int $visibleold the current state of the visibleold property
* @return void
*/
public function check_module_visibility($mod, $visibility, $visibleold) {
global $DB;
rebuild_course_cache($mod->course);
$course = $DB->get_record('course', array('id' => $mod->course));
$cm = get_fast_modinfo($course)->get_cm($mod->cmid);
$this->assertEquals($visibility, $cm->visible);
$this->assertEquals($visibleold, $cm->visibleold);
// Check the module grade items.
$grade_items = grade_item::fetch_all(array('itemtype' => 'mod', 'itemmodule' => $cm->modname,
'iteminstance' => $cm->instance, 'courseid' => $cm->course));
if ($grade_items) {
foreach ($grade_items as $grade_item) {
if ($visibility) {
$this->assertFalse($grade_item->is_hidden(), "$cm->modname grade_item not visible");
} else {
$this->assertTrue($grade_item->is_hidden(), "$cm->modname grade_item not hidden");
}
}
}
// Check the events visibility.
if ($events = $DB->get_records('event', array('instance' => $cm->instance, 'modulename' => $cm->modname))) {
foreach ($events as $event) {
$calevent = new calendar_event($event);
$this->assertEquals($visibility, $calevent->visible, "$cm->modname calendar_event visibility");
}
}
}
/**
* Tests moving a module between hidden/visible sections and
* verifies that the course/module visiblity seettings are
* retained.
*/
public function test_moveto_module_between_hidden_sections() {
global $DB;
$this->resetAfterTest(true);
$course = $this->getDataGenerator()->create_course(array('numsections' => 4), array('createsections' => true));
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$page = $this->getDataGenerator()->create_module('page', array('course' => $course->id));
$quiz= $this->getDataGenerator()->create_module('quiz', array('course' => $course->id));
// Set the page as hidden
set_coursemodule_visible($page->cmid, 0);
// Set sections 3 as hidden.
set_section_visible($course->id, 3, 0);
$modinfo = get_fast_modinfo($course);
$hiddensection = $modinfo->get_section_info(3);
// New section is definitely not visible:
$this->assertEquals($hiddensection->visible, 0);
$forumcm = $modinfo->cms[$forum->cmid];
$pagecm = $modinfo->cms[$page->cmid];
// Move the forum and the page to a hidden section.
moveto_module($forumcm, $hiddensection);
moveto_module($pagecm, $hiddensection);
// Reset modinfo cache.
$reset = 'reset';
get_fast_modinfo($reset);
$modinfo = get_fast_modinfo($course);
// Verify that forum and page have been moved to the hidden section and quiz has not.
$this->assertContains($forum->cmid, $modinfo->sections[3]);
$this->assertContains($page->cmid, $modinfo->sections[3]);
$this->assertNotContains($quiz->cmid, $modinfo->sections[3]);
// Verify that forum has been made invisible.
$forumcm = $modinfo->cms[$forum->cmid];
$this->assertEquals($forumcm->visible, 0);
// Verify that old state has been retained.
$this->assertEquals($forumcm->visibleold, 1);
// Verify that page has stayed invisible.
$pagecm = $modinfo->cms[$page->cmid];
$this->assertEquals($pagecm->visible, 0);
// Verify that old state has been retained.
$this->assertEquals($pagecm->visibleold, 0);
// Verify that quiz has been unaffected.
$quizcm = $modinfo->cms[$quiz->cmid];
$this->assertEquals($quizcm->visible, 1);
// Move forum and page back to visible section.
$visiblesection = $modinfo->get_section_info(2);
moveto_module($forumcm, $visiblesection);
moveto_module($pagecm, $visiblesection);
// Reset modinfo cache.
$reset = 'reset';
get_fast_modinfo($reset);
$modinfo = get_fast_modinfo($course);
// Verify that forum has been made visible.
$forumcm = $modinfo->cms[$forum->cmid];
$this->assertEquals($forumcm->visible, 1);
// Verify that page has stayed invisible.
$pagecm = $modinfo->cms[$page->cmid];
$this->assertEquals($pagecm->visible, 0);
// Move the page in the same section (this is what mod duplicate does_
moveto_module($pagecm, $visiblesection, $forumcm);
// Reset modinfo cache.
$reset = 'reset';
get_fast_modinfo($reset);
// Verify that the the page is still hidden
$modinfo = get_fast_modinfo($course);
$pagecm = $modinfo->cms[$page->cmid];
$this->assertEquals($pagecm->visible, 0);
}
/**
* Tests moving a module around in the same section. moveto_module()
* is called this way in modduplicate.
*/
public function test_moveto_module_in_same_section() {
global $DB;
$this->resetAfterTest(true);
$course = $this->getDataGenerator()->create_course(array('numsections' => 3), array('createsections' => true));
$page = $this->getDataGenerator()->create_module('page', array('course' => $course->id));
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
// Simulate inconsistent visible/visibleold values (MDL-38713).
$cm = $DB->get_record('course_modules', array('id' => $page->cmid), '*', MUST_EXIST);
$cm->visible = 0;
$cm->visibleold = 1;
$DB->update_record('course_modules', $cm);
$modinfo = get_fast_modinfo($course);
$forumcm = $modinfo->cms[$forum->cmid];
$pagecm = $modinfo->cms[$page->cmid];
// Verify that page is hidden.
$this->assertEquals($pagecm->visible, 0);
// Verify section 0 is where all mods added.
$section = $modinfo->get_section_info(0);
$this->assertEquals($section->id, $forumcm->section);
$this->assertEquals($section->id, $pagecm->section);
// Move the forum and the page to a hidden section.
moveto_module($pagecm, $section, $forumcm);
// Reset modinfo cache.
$reset = 'reset';
get_fast_modinfo($reset);
// Verify that the the page is still hidden
$modinfo = get_fast_modinfo($course);
$pagecm = $modinfo->cms[$page->cmid];
$this->assertEquals($pagecm->visible, 0);
}
}
+5
View File
@@ -124,7 +124,12 @@
$PAGE->set_pagelayout('course');
$PAGE->set_pagetype('course-view-' . $course->format);
$PAGE->set_other_editing_capability('moodle/course:update');
$PAGE->set_other_editing_capability('moodle/course:manageactivities');
$PAGE->set_other_editing_capability('moodle/course:activityvisibility');
if (course_format_uses_sections($course->format)) {
$PAGE->set_other_editing_capability('moodle/course:sectionvisibility');
}
if ($reset_user_allowed_editing) {
// ugly hack
+4 -1
View File
@@ -508,7 +508,9 @@ YUI.add('moodle-course-toolboxes', function(Y) {
.setAttrs({
'name' : 'title',
'value' : titletext,
'autocomplete' : 'off'
'autocomplete' : 'off',
'aria-describedby' : 'id_editinstructions',
'maxLength' : '255'
})
.addClass('titleeditor');
var editform = Y.Node.create('<form />')
@@ -518,6 +520,7 @@ YUI.add('moodle-course-toolboxes', function(Y) {
var editinstructions = Y.Node.create('<span />')
.addClass('editinstructions')
.setAttrs({'id' : 'id_editinstructions'})
.set('innerHTML', M.util.get_string('edittitleinstructions', 'moodle'));
// Clear the existing content and put the editor in
+1 -1
View File
@@ -87,7 +87,7 @@ class core_enrol_external extends external_api {
}
list($enrolledsqlselect, $enrolledparams) = get_enrolled_sql($context);
$enrolledsql = "SELECT COUNT(*) FROM ($enrolledsqlselect) AS enrolleduserids";
$enrolledsql = "SELECT COUNT('x') FROM ($enrolledsqlselect) enrolleduserids";
$enrolledusercount = $DB->count_records_sql($enrolledsql, $enrolledparams);
$result[] = array('id'=>$course->id, 'shortname'=>$course->shortname, 'fullname'=>$course->fullname, 'idnumber'=>$course->idnumber,'visible'=>$course->visible, 'enrolledusercount'=>$enrolledusercount);
+16 -8
View File
@@ -514,13 +514,19 @@ function process_person_tag($tagcontents){
// Now if the recstatus is 3, we should delete the user if-and-only-if the setting for delete users is turned on
// In the "users" table we can do this by setting deleted=1
if($recstatus==3){
if($imsdeleteusers){ // If we're allowed to delete user records
// Make sure their "deleted" field is set to one
$DB->set_field('user', 'deleted', 1, array('username'=>$person->username));
$this->log_line("Marked user record for user '$person->username' (ID number $person->idnumber) as deleted.");
// Do not dare to hack the user.deleted field directly in database!!!
if ($user = $DB->get_record('user', array('username'=>$person->username, 'mnethostid'=>$CFG->mnet_localhost_id, 'deleted'=>0))) {
if (delete_user($user)) {
$this->log_line("Deleted user '$person->username' (ID number $person->idnumber).");
} else {
$this->log_line("Error deleting '$person->username' (ID number $person->idnumber).");
}
} else {
$this->log_line("Can not delete user '$person->username' (ID number $person->idnumber) - user does not exist.");
}
}else{
$this->log_line("Ignoring deletion request for user '$person->username' (ID number $person->idnumber).");
}
@@ -539,8 +545,10 @@ function process_person_tag($tagcontents){
} else {
// If they don't exist and they have a defined username, and $createnewusers == true, we create them.
$person->lang = 'manual'; //TODO: this needs more work due tu multiauth changes
$person->auth = $CFG->auth;
$person->lang = $CFG->lang;
$auth = explode(',', $CFG->auth); //TODO: this needs more work due tu multiauth changes, use first auth for now
$auth = reset($auth);
$person->auth = $auth;
$person->confirmed = 1;
$person->timemodified = time();
$person->mnethostid = $CFG->mnet_localhost_id;
@@ -568,8 +576,8 @@ function process_person_tag($tagcontents){
} elseif ($createnewusers) {
$this->log_line("User record already exists for user '$person->username' (ID number $person->idnumber).");
// Make sure their "deleted" field is set to zero.
$DB->set_field('user', 'deleted', 0, array('idnumber'=>$person->idnumber));
// It is totally wrong to mess with deleted users flag directly in database!!!
// There is no official way to undelete user, sorry..
}else{
$this->log_line("No user record found for '$person->username' (ID number $person->idnumber).");
}
+5 -7
View File
@@ -93,15 +93,13 @@ class enrol_paypal_edit_form extends moodleform {
list($instance, $plugin, $context) = $this->_customdata;
if ($data['status'] == ENROL_INSTANCE_ENABLED) {
if (!empty($data['enrolenddate']) and $data['enrolenddate'] < $data['enrolstartdate']) {
$errors['enrolenddate'] = get_string('enrolenddaterror', 'enrol_paypal');
}
if (!empty($data['enrolenddate']) and $data['enrolenddate'] < $data['enrolstartdate']) {
$errors['enrolenddate'] = get_string('enrolenddaterror', 'enrol_paypal');
}
if (!is_numeric($data['cost'])) {
$errors['cost'] = get_string('costerror', 'enrol_paypal');
if (!is_numeric($data['cost'])) {
$errors['cost'] = get_string('costerror', 'enrol_paypal');
}
}
return $errors;
+127
View File
@@ -0,0 +1,127 @@
<?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/>.
/**
* PHPunit tests for external files API.
*
* @package core_files
* @category external
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.6
*/
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/files/externallib.php');
class test_external_files extends advanced_testcase {
/*
* Test core_files_external::upload().
*/
public function test_upload() {
global $USER;
$this->resetAfterTest();
$this->setAdminUser();
$context = context_user::instance($USER->id);
$contextid = $context->id;
$component = "user";
$filearea = "private";
$itemid = 0;
$filepath = "/";
$filename = "Simple.txt";
$filecontent = base64_encode("Let us create a nice simple file");
$browser = get_file_browser();
// Make sure no file exists.
$file = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename);
$this->assertEmpty($file);
// Call the api to create a file.
core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent);
// Make sure the file was created.
$file = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename);
$this->assertNotEmpty($file);
// Make sure no file exists.
$itemid = 2;
$filename = "Simple2.txt";
$file = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename);
$this->assertEmpty($file);
// Call the api to create a file.
$fileinfo = core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent);
// Make sure itemid is always set to 0.
$this->assertEquals(0, $fileinfo['itemid']);
// Make sure the same file cannot be created again.
$this->setExpectedException("moodle_exception");
core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent);
}
/*
* Make sure only user component is allowed in core_files_external::upload().
*/
public function test_upload_param_component() {
global $USER;
$this->resetAfterTest();
$this->setAdminUser();
$context = context_user::instance($USER->id);
$contextid = $context->id;
$component = "backup";
$filearea = "private";
$itemid = 0;
$filepath = "/";
$filename = "Simple3.txt";
$filecontent = base64_encode("Let us create a nice simple file");
// Make sure exception is thrown.
$this->setExpectedException("coding_exception");
core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent);
}
/*
* Make sure only private area is allowed in core_files_external::upload().
*/
public function test_upload_param_area() {
global $USER;
$this->resetAfterTest();
$this->setAdminUser();
$context = context_user::instance($USER->id);
$contextid = $context->id;
$component = "user";
$filearea = "draft";
$itemid = 0;
$filepath = "/";
$filename = "Simple4.txt";
$filecontent = base64_encode("Let us create a nice simple file");
// Make sure exception is thrown.
$this->setExpectedException("coding_exception");
core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent);
}
}
+18 -11
View File
@@ -122,19 +122,26 @@ class filter_urltolink extends moodle_text_filter {
$unicoderegexp = @preg_match('/\pL/u', 'a'); // This will fail silently, returning false,
}
//todo: MDL-21296 - use of unicode modifiers may cause a timeout
if ($unicoderegexp) { //We can use unicode modifiers
$text = preg_replace('#(?<!=["\'])(((http(s?))://)(((([\pLl0-9]([\pLl0-9]|-)*[\pLl0-9]|[\pLl0-9])\.)+([\pLl]([\pLl0-9]|-)*[\pLl0-9]|[\pLl]))|(([0-9]{1,3}\.){3}[0-9]{1,3}))(:[\pL0-9]*)?(/([\pLl0-9\.!$&\'\(\)*+,;=_~:@-]|%[a-fA-F0-9]{2})*)*(\?([\pLl0-9\.!$&\'\(\)*+,;=_~:@/?-]|%[a-fA-F0-9]{2})*)?(\#[\pLl0-9\.!$&\'\(\)*+,;=_~:@/?-]*)?)(?<![,.;])#iu',
'<a href="\\1" class="_blanktarget">\\1</a>', $text);
$text = preg_replace('#(?<!=["\']|//)((www\.([\pLl0-9]([\pLl0-9]|-)*[\pLl0-9]|[\pLl0-9])\.)+([\pLl]([\pLl0-9]|-)*[\pLl0-9]|[\pLl])(:[\pL0-9]*)?(/([\pLl0-9\.!$&\'\(\)*+,;=_~:@-]|%[a-fA-F0-9]{2})*)*(\?([\pLl0-9\.!$&\'\(\)*+,;=_~:@/?-]|%[a-fA-F0-9]{2})*)?(\#[\pLl0-9\.!$&\'\(\)*+,;=_~:@/?-]*)?)(?<![,.;])#iu',
'<a href="http://\\1" class="_blanktarget">\\1</a>', $text);
} else { //We cannot use unicode modifiers
$text = preg_replace('#(?<!=["\'])(((http(s?))://)(((([a-z0-9]([a-z0-9]|-)*[a-z0-9]|[a-z0-9])\.)+([a-z]([a-z0-9]|-)*[a-z0-9]|[a-z]))|(([0-9]{1,3}\.){3}[0-9]{1,3}))(:[a-zA-Z0-9]*)?(/([a-z0-9\.!$&\'\(\)*+,;=_~:@-]|%[a-f0-9]{2})*)*(\?([a-z0-9\.!$&\'\(\)*+,;=_~:@/?-]|%[a-fA-F0-9]{2})*)?(\#[a-z0-9\.!$&\'\(\)*+,;=_~:@/?-]*)?)(?<![,.;])#i',
'<a href="\\1" class="_blanktarget">\\1</a>', $text);
$text = preg_replace('#(?<!=["\']|//)((www\.([a-z0-9]([a-z0-9]|-)*[a-z0-9]|[a-z0-9])\.)+([a-z]([a-z0-9]|-)*[a-z0-9]|[a-z])(:[a-zA-Z0-9]*)?(/([a-z0-9\.!$&\'\(\)*+,;=_~:@-]|%[a-f0-9]{2})*)*(\?([a-z0-9\.!$&\'\(\)*+,;=_~:@/?-]|%[a-fA-F0-9]{2})*)?(\#[a-z0-9\.!$&\'\(\)*+,;=_~:@/?-]*)?)(?<![,.;])#i',
'<a href="http://\\1" class="_blanktarget">\\1</a>', $text);
// TODO MDL-21296 - use of unicode modifiers may cause a timeout
$urlstart = '(?:http(s)?://|(?<!://)(www\.))';
$domainsegment = '(?:[\pLl0-9][\pLl0-9-]*[\pLl0-9]|[\pLl0-9])';
$numericip = '(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})';
$port = '(?::\d*)';
$pathchar = '(?:[\pL0-9\.!$&\'\(\)*+,;=_~:@-]|%[a-f0-9]{2})';
$path = "(?:/$pathchar*)*";
$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?)(?<![]),.;])";
if ($unicoderegexp) {
$regex = '#' . $regex . '#ui';
} else {
$regex = '#' . preg_replace(array('\pLl', '\PL'), 'a-z', $regex) . '#i';
}
$text = preg_replace($regex, '<a href="http$1://$2$3$4" class="_blanktarget">$0</a>', $text);
if (!empty($ignoretags)) {
$ignoretags = array_reverse($ignoretags); /// Reversed so "progressive" str_replace() will solve some nesting problems.
$text = str_replace(array_keys($ignoretags),$ignoretags,$text);
+39 -17
View File
@@ -44,7 +44,7 @@ class filter_urltolink_testcase extends basic_testcase {
'$1<a href="http://www.$2$3" target="_blank">www.$2$3</a>', $text);
}
function test_convert_urls_into_links() {
function get_convert_urls_into_links_test_cases() {
$texts = array (
//just a url
'http://moodle.org - URL' => '<a href="http://moodle.org" class="_blanktarget">http://moodle.org</a> - URL',
@@ -57,13 +57,26 @@ class filter_urltolink_testcase extends basic_testcase {
'URL: https://moodle.org/s/i=1&j=2' => 'URL: <a href="https://moodle.org/s/i=1&j=2" class="_blanktarget">https://moodle.org/s/i=1&j=2</a>',
//url with port and params
'URL: http://moodle.org:8080/s/i=1' => 'URL: <a href="http://moodle.org:8080/s/i=1" class="_blanktarget">http://moodle.org:8080/s/i=1</a>',
//url in brackets
// URL with complex fragment.
'Most voted issues: https://tracker.moodle.org/browse/MDL#selectedTab=com.atlassian.jira.plugin.system.project%3Apopularissues-panel' => 'Most voted issues: <a href="https://tracker.moodle.org/browse/MDL#selectedTab=com.atlassian.jira.plugin.system.project%3Apopularissues-panel" class="_blanktarget">https://tracker.moodle.org/browse/MDL#selectedTab=com.atlassian.jira.plugin.system.project%3Apopularissues-panel</a>',
// Domain with more parts
'URL: www.bbc.co.uk.' => 'URL: <a href="http://www.bbc.co.uk" class="_blanktarget">www.bbc.co.uk</a>.',
// URL in brackets.
'(http://moodle.org) - URL' => '(<a href="http://moodle.org" class="_blanktarget">http://moodle.org</a>) - URL',
'(www.moodle.org) - URL' => '(<a href="http://www.moodle.org" class="_blanktarget">www.moodle.org</a>) - URL',
//url in square brackets
// URL in brackets with a path.
'(http://example.com/index.html) - URL' => '(<a href="http://example.com/index.html" class="_blanktarget">http://example.com/index.html</a>) - URL',
'(www.example.com/index.html) - URL' => '(<a href="http://www.example.com/index.html" class="_blanktarget">www.example.com/index.html</a>) - URL',
// URL in brackets with anchor.
'(http://moodle.org/main#anchor) - URL' => '(<a href="http://moodle.org/main#anchor" class="_blanktarget">http://moodle.org/main#anchor</a>) - URL',
'(www.moodle.org/main#anchor) - URL' => '(<a href="http://www.moodle.org/main#anchor" class="_blanktarget">www.moodle.org/main#anchor</a>) - URL',
// URL in square brackets.
'[http://moodle.org] - URL' => '[<a href="http://moodle.org" class="_blanktarget">http://moodle.org</a>] - URL',
'[www.moodle.org] - URL' => '[<a href="http://www.moodle.org" class="_blanktarget">www.moodle.org</a>] - URL',
//url in brackets with anchor
// URL in square brackets with a path.
'[http://example.com/index.html] - URL' => '[<a href="http://example.com/index.html" class="_blanktarget">http://example.com/index.html</a>] - URL',
'[www.example.com/index.html] - URL' => '[<a href="http://www.example.com/index.html" class="_blanktarget">www.example.com/index.html</a>] - URL',
// URL in square brackets with anchor.
'[http://moodle.org/main#anchor] - URL' => '[<a href="http://moodle.org/main#anchor" class="_blanktarget">http://moodle.org/main#anchor</a>] - URL',
'[www.moodle.org/main#anchor] - URL' => '[<a href="http://www.moodle.org/main#anchor" class="_blanktarget">www.moodle.org/main#anchor</a>] - URL',
//brackets within the url
@@ -71,7 +84,8 @@ class filter_urltolink_testcase extends basic_testcase {
'URL: www.cc.org/url_(withpar)_go/?i=2' => 'URL: <a href="http://www.cc.org/url_(withpar)_go/?i=2" class="_blanktarget">www.cc.org/url_(withpar)_go/?i=2</a>',
'URL: http://cc.org/url_(with)_(par)_go/?i=2' => 'URL: <a href="http://cc.org/url_(with)_(par)_go/?i=2" class="_blanktarget">http://cc.org/url_(with)_(par)_go/?i=2</a>',
'URL: www.cc.org/url_(with)_(par)_go/?i=2' => 'URL: <a href="http://www.cc.org/url_(with)_(par)_go/?i=2" class="_blanktarget">www.cc.org/url_(with)_(par)_go/?i=2</a>',
'http://en.wikipedia.org/wiki/Slash_(punctuation)'=>'<a href="http://en.wikipedia.org/wiki/Slash_(punctuation)" class="_blanktarget">http://en.wikipedia.org/wiki/Slash_(punctuation)</a>',
// URL legitimately ending in a bracket. Commented out as part of MDL-22390. See next tests for work-arounds.
// 'http://en.wikipedia.org/wiki/Slash_(punctuation)'=>'<a href="http://en.wikipedia.org/wiki/Slash_(punctuation)" class="_blanktarget">http://en.wikipedia.org/wiki/Slash_(punctuation)</a>',
'http://en.wikipedia.org/wiki/%28#Parentheses_.28_.29 - URL' => '<a href="http://en.wikipedia.org/wiki/%28#Parentheses_.28_.29" class="_blanktarget">http://en.wikipedia.org/wiki/%28#Parentheses_.28_.29</a> - URL',
'http://en.wikipedia.org/wiki/(#Parentheses_.28_.29 - URL' => '<a href="http://en.wikipedia.org/wiki/(#Parentheses_.28_.29" class="_blanktarget">http://en.wikipedia.org/wiki/(#Parentheses_.28_.29</a> - URL',
//escaped brackets in url
@@ -94,8 +108,6 @@ class filter_urltolink_testcase extends basic_testcase {
'URL: www.moodle.org?u=1.23' => 'URL: <a href="http://www.moodle.org?u=1.23" class="_blanktarget">www.moodle.org?u=1.23</a>',
//escaped space in url
'URL: www.moodle.org?u=test+param&' => 'URL: <a href="http://www.moodle.org?u=test+param&" class="_blanktarget">www.moodle.org?u=test+param&</a>',
//odd characters in url param
'URL: www.moodle.org?param=:)' => 'URL: <a href="http://www.moodle.org?param=:)" class="_blanktarget">www.moodle.org?param=:)</a>',
//multiple urls
'URL: http://moodle.org www.moodle.org'
=> 'URL: <a href="http://moodle.org" class="_blanktarget">http://moodle.org</a> <a href="http://www.moodle.org" class="_blanktarget">www.moodle.org</a>',
@@ -125,11 +137,13 @@ class filter_urltolink_testcase extends basic_testcase {
'<br />This is some text. www.moodle.com then some more text<br />' => '<br />This is some text. <a href="http://www.moodle.com" class="_blanktarget">www.moodle.com</a> then some more text<br />',
//check we aren't modifying img tags
'image<img src="http://moodle.org/logo/logo-240x60.gif" />' => 'image<img src="http://moodle.org/logo/logo-240x60.gif" />',
'image<img src="www.moodle.org/logo/logo-240x60.gif" />' => 'image<img src="www.moodle.org/logo/logo-240x60.gif" />',
'image<img src="www.moodle.org/logo/logo-240x60.gif" />' => 'image<img src="www.moodle.org/logo/logo-240x60.gif" />',
'image<img src="http://www.example.com/logo.gif" />' => 'image<img src="http://www.example.com/logo.gif" />',
//and another url within one tag
'<td background="http://moodle.org">&nbsp;</td>' => '<td background="http://moodle.org">&nbsp;</td>',
'<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>',
//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
@@ -151,17 +165,25 @@ class filter_urltolink_testcase extends basic_testcase {
//'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN http://www.w3.org/TR/html4/strict.dtd">'=>'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN http://www.w3.org/TR/html4/strict.dtd">'
);
$data = array();
foreach ($texts as $text => $correctresult) {
$data[] = array($text, $correctresult);
}
return $data;
}
/**
* @dataProvider get_convert_urls_into_links_test_cases
*/
function test_convert_urls_into_links($text, $correctresult) {
$testablefilter = new testable_filter_urltolink();
$testablefilter->convert_urls_into_links($text);
$this->assertEquals($correctresult, $text);
}
function test_convert_urls_into_links_performance() {
$testablefilter = new testable_filter_urltolink();
foreach ($texts as $text => $correctresult) {
$msg = "Testing text: ". str_replace('%', '%%', $text) . ": %s"; // Escape original '%' so sprintf() wont get confused
$testablefilter->convert_urls_into_links($text);
$this->assertEquals($text, $correctresult, $msg);
}
//performance testing
$reps = 1000;
$text = file_get_contents(__DIR__ . '/fixtures/sample.txt');
$time_start = microtime(true);
+1 -1
View File
@@ -30,7 +30,7 @@ require_once 'calculation_form.php';
$courseid = required_param('courseid', PARAM_INT);
$id = required_param('id', PARAM_INT);
$section = optional_param('section', 'calculation', PARAM_ALPHA);
$idnumbers = optional_param('idnumbers', null, PARAM_RAW);
$idnumbers = optional_param_array('idnumbers', null, PARAM_RAW);
$url = new moodle_url('/grade/edit/tree/calculation.php', array('id'=>$id, 'courseid'=>$courseid));
if ($section !== 'calculation') {
+25
View File
@@ -200,6 +200,18 @@ if ($mform->is_cancelled()) {
$data->feedback = $old_grade_grade->feedback;
$data->feedbackformat = $old_grade_grade->feedbackformat;
}
// Only log a grade override if they actually changed the student grade.
if ($data->finalgrade != $old_grade_grade->finalgrade) {
$url = '/report/grader/index.php?id=' . $course->id;
$user = $DB->get_record('user', array('id'=>$data->userid), '*', MUST_EXIST);
$fullname = fullname($user);
$info = "{$grade_item->itemname}: $fullname";
add_to_log($course->id, 'grade', 'update', $url, $info);
}
// update final grade or feedback
// when we set override grade the first time, it happens here
$grade_item->update_final_grade($data->userid, $data->finalgrade, 'editgrade', $data->feedback, $data->feedbackformat);
@@ -213,6 +225,19 @@ if ($mform->is_cancelled()) {
$data->overridden = 0; // checkbox unticked
}
$grade_grade->set_overridden($data->overridden);
if ($data->overridden == 0 && $data->overridden != $old_grade_grade->overridden) {
// Log removing an override.
// The addition of an override is logged above.
// One or the other will happen but never both.
$url = '/report/grader/index.php?id=' . $course->id;
$user = $DB->get_record('user', array('id'=>$data->userid), '*', MUST_EXIST);
$fullname = fullname($user);
$info = "{$grade_item->itemname}: $fullname";
add_to_log($course->id, 'grade', 'update', $url, $info);
}
}
if (has_capability('moodle/grade:manage', $context) or has_capability('moodle/grade:hide', $context)) {
+10
View File
@@ -406,3 +406,13 @@ class grade_export_update_buffer {
}
}
/**
* Verify that there is a valid set of grades to export.
* @param $courseid int The course being exported
*/
function export_verify_grades($courseid) {
$regraderesult = grade_regrade_final_grades($courseid);
if (is_array($regraderesult)) {
throw new moodle_exception('gradecantregrade', 'error', '', implode(', ', array_unique($regraderesult)));
}
}
+1
View File
@@ -34,6 +34,7 @@ require_capability('moodle/grade:export', $context);
require_capability('gradeexport/ods:view', $context);
print_grade_page_head($COURSE->id, 'export', 'ods', get_string('exportto', 'grades') . ' ' . get_string('pluginname', 'gradeexport_ods'));
export_verify_grades($COURSE->id);
if (!empty($CFG->gradepublishing)) {
$CFG->gradepublishing = has_capability('gradeexport/ods:publish', $context);
+1
View File
@@ -34,6 +34,7 @@ require_capability('moodle/grade:export', $context);
require_capability('gradeexport/txt:view', $context);
print_grade_page_head($COURSE->id, 'export', 'txt', get_string('exportto', 'grades') . ' ' . get_string('pluginname', 'gradeexport_txt'));
export_verify_grades($COURSE->id);
if (!empty($CFG->gradepublishing)) {
$CFG->gradepublishing = has_capability('gradeexport/txt:publish', $context);
+1
View File
@@ -34,6 +34,7 @@ require_capability('moodle/grade:export', $context);
require_capability('gradeexport/xls:view', $context);
print_grade_page_head($COURSE->id, 'export', 'xls', get_string('exportto', 'grades') . ' ' . get_string('pluginname', 'gradeexport_xls'));
export_verify_grades($COURSE->id);
if (!empty($CFG->gradepublishing)) {
$CFG->gradepublishing = has_capability('gradeexport/xls:publish', $context);
+1
View File
@@ -34,6 +34,7 @@ require_capability('moodle/grade:export', $context);
require_capability('gradeexport/xml:view', $context);
print_grade_page_head($COURSE->id, 'export', 'xml', get_string('exportto', 'grades') . ' ' . get_string('pluginname', 'gradeexport_xml'));
export_verify_grades($COURSE->id);
if (!empty($CFG->gradepublishing)) {
$CFG->gradepublishing = has_capability('gradeexport/xml:publish', $context);
@@ -36,7 +36,7 @@ $string['criterionmovedown'] = 'Move down';
$string['criterionmoveup'] = 'Move up';
$string['definerubric'] = 'Define rubric';
$string['description'] = 'Description';
$string['enableremarks'] = 'Allow grader to add text remarks for each criteria';
$string['enableremarks'] = 'Allow grader to add text remarks for each criterion';
$string['err_mintwolevels'] = 'Each criterion must have at least two levels';
$string['err_nocriteria'] = 'Rubric must contain at least one criterion';
$string['err_nodefinition'] = 'Level definition can not be empty';
+15 -10
View File
@@ -393,16 +393,21 @@ if ($formdata = $mform->get_data()) {
$newgrade->finalgrade = $value;
} else {
if ($value === '' or $value == '-') {
$value = null; // no grade
} else if (!is_numeric($value)) {
// non numeric grade value supplied, possibly mapped wrong column
echo "<br/>t0 is $t0";
echo "<br/>grade is $value";
$status = false;
import_cleanup($importcode);
echo $OUTPUT->notification(get_string('badgrade', 'grades'));
break 3;
$value = null; // No grade.
} else {
// If the value has a local decimal or can correctly be unformatted, do it.
$validvalue = unformat_float($value, true);
if ($validvalue !== false) {
$value = $validvalue;
} else {
// Non numeric grade value supplied, possibly mapped wrong column.
echo "<br/>t0 is $t0";
echo "<br/>grade is $value";
$status = false;
import_cleanup($importcode);
echo $OUTPUT->notification(get_string('badgrade', 'grades'));
break 3;
}
}
$newgrade->finalgrade = $value;
}
+4 -3
View File
@@ -22,7 +22,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once $CFG->libdir.'/gradelib.php';
require_once($CFG->libdir . '/gradelib.php');
require_once($CFG->dirroot . '/grade/export/lib.php');
/**
* This class iterates over all users that are graded in a course.
@@ -123,7 +124,7 @@ class graded_users_iterator {
$this->close();
grade_regrade_final_grades($this->course->id);
export_verify_grades($this->course->id);
$course_item = grade_item::fetch_course_item($this->course->id);
if ($course_item->needsupdate) {
// can not calculate all final grades - sorry
@@ -2424,7 +2425,7 @@ abstract class grade_helper {
return self::$managesetting;
}
$context = get_context_instance(CONTEXT_COURSE, $courseid);
if (has_capability('moodle/course:update', $context)) {
if (has_capability('moodle/grade:manage', $context)) {
self::$managesetting = new grade_plugin_info('coursesettings', new moodle_url('/grade/edit/settings/index.php', array('id'=>$courseid)), get_string('course'));
} else {
self::$managesetting = false;
+8
View File
@@ -118,6 +118,14 @@ switch ($action) {
echo json_encode($json_object);
die();
} else {
$url = '/report/grader/index.php?id=' . $course->id;
$user = $DB->get_record('user', array('id'=>$userid), '*', MUST_EXIST);
$fullname = fullname($user);
$info = "{$grade_item->itemname}: $fullname";
add_to_log($course->id, 'grade', 'update', $url, $info);
$json_object->gradevalue = $finalvalue;
if ($grade_item->update_final_grade($userid, $finalgrade, 'gradebook', $feedback, FORMAT_MOODLE)) {
+6
View File
@@ -297,6 +297,12 @@ class grade_report_grader extends grade_report {
}
}
$url = '/report/grader/index.php?id=' . $this->course->id;
$fullname = fullname($this->users[$userid]);
$info = "{$gradeitem->itemname}: $fullname";
add_to_log($this->course->id, 'grade', 'update', $url, $info);
$gradeitem->update_final_grade($userid, $finalgrade, 'gradebook', $feedback, FORMAT_MOODLE);
// We can update feedback without reloading the grade item as it doesn't affect grade calculations
+8 -3
View File
@@ -357,7 +357,12 @@ abstract class grade_report {
// If we're dealing with multiple courses we need to know when we've moved on to a new course.
static $previous_courseid = null;
if( $this->showtotalsifcontainhidden==GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN ) {
if (!is_array($this->showtotalsifcontainhidden)) {
debugging('showtotalsifcontainhidden should be an array', DEBUG_DEVELOPER);
$this->showtotalsifcontainhidden = array($courseid => $this->showtotalsifcontainhidden);
}
if ($this->showtotalsifcontainhidden[$courseid] == GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN) {
return $finalgrade;
}
@@ -395,7 +400,7 @@ abstract class grade_report {
//if the item definitely depends on a hidden item
if (array_key_exists($course_item->id, $hiding_affected['altered'])) {
if( !$this->showtotalsifcontainhidden ) {
if( !$this->showtotalsifcontainhidden[$courseid] ) {
//hide the grade
$finalgrade = null;
}
@@ -405,7 +410,7 @@ abstract class grade_report {
}
} else if (!empty($hiding_affected['unknown'][$course_item->id])) {
//not sure whether or not this item depends on a hidden item
if( !$this->showtotalsifcontainhidden ) {
if( !$this->showtotalsifcontainhidden[$courseid] ) {
//hide the grade
$finalgrade = null;
}
+5 -2
View File
@@ -71,8 +71,6 @@ class grade_report_overview extends grade_report {
global $CFG, $COURSE, $DB;
parent::__construct($COURSE->id, $gpr, $context);
$this->showtotalsifcontainhidden = grade_get_setting($this->courseid, 'report_overview_showtotalsifcontainhidden', $CFG->grade_report_overview_showtotalsifcontainhidden);
// Get the user (for full name).
$this->user = $DB->get_record('user', array('id' => $userid));
@@ -81,12 +79,17 @@ class grade_report_overview extends grade_report {
$this->showrank = array();
$this->showrank['any'] = false;
$this->showtotalsifcontainhidden = array();
if ($this->courses) {
foreach ($this->courses as $course) {
$this->showrank[$course->id] = grade_get_setting($course->id, 'report_overview_showrank', !empty($CFG->grade_report_overview_showrank));
if ($this->showrank[$course->id]) {
$this->showrank['any'] = true;
}
$this->showtotalsifcontainhidden[$course->id] = grade_get_setting($course->id, 'report_overview_showtotalsifcontainhidden', $CFG->grade_report_overview_showtotalsifcontainhidden);
}
}
+7
View File
@@ -0,0 +1,7 @@
This files describes API changes in /grade/report/*,
information provided here is intended especially for developers.
=== 2.3.5, 2.4.2 ===
* class_grade_report::showtotalsifcontainhidden has been switched from a single integer value to an array.
The array keys are course IDs while the array values are the value of the course setting "report_overview_showtotalsifcontainhidden".
+1 -1
View File
@@ -165,7 +165,7 @@ class grade_report_user extends grade_report {
$this->showrank = grade_get_setting($this->courseid, 'report_user_showrank', $CFG->grade_report_user_showrank);
$this->showpercentage = grade_get_setting($this->courseid, 'report_user_showpercentage', $CFG->grade_report_user_showpercentage);
$this->showhiddenitems = grade_get_setting($this->courseid, 'report_user_showhiddenitems', $CFG->grade_report_user_showhiddenitems);
$this->showtotalsifcontainhidden = grade_get_setting($this->courseid, 'report_user_showtotalsifcontainhidden', $CFG->grade_report_user_showtotalsifcontainhidden);
$this->showtotalsifcontainhidden = array($this->courseid => grade_get_setting($this->courseid, 'report_user_showtotalsifcontainhidden', $CFG->grade_report_user_showtotalsifcontainhidden));
$this->showgrade = grade_get_setting($this->courseid, 'report_user_showgrade', !empty($CFG->grade_report_user_showgrade));
$this->showrange = grade_get_setting($this->courseid, 'report_user_showrange', !empty($CFG->grade_report_user_showrange));
+6 -6
View File
@@ -120,15 +120,15 @@ class gradereportlib_testcase extends advanced_testcase {
$report = new grade_report_test($course->id, $gpr, $coursecontext, $student);
// Should return the supplied student total grade regardless of hiding.
$report->showtotalsifcontainhidden = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN;
$report->showtotalsifcontainhidden = array($course->id => GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN);
$this->assertEquals($datagrade + $forumgrade, $report->blank_hidden_total($course->id, $coursegradeitem, $datagrade + $forumgrade));
// Should blank the student total as course grade depends on a hidden item.
$report->showtotalsifcontainhidden = GRADE_REPORT_HIDE_TOTAL_IF_CONTAINS_HIDDEN;
$report->showtotalsifcontainhidden = array($course->id => GRADE_REPORT_HIDE_TOTAL_IF_CONTAINS_HIDDEN);
$this->assertEquals(null, $report->blank_hidden_total($course->id, $coursegradeitem, $datagrade + $forumgrade));
// Should return the course total minus the hidden database activity grade.
$report->showtotalsifcontainhidden = GRADE_REPORT_SHOW_TOTAL_IF_CONTAINS_HIDDEN;
$report->showtotalsifcontainhidden = array($course->id => GRADE_REPORT_SHOW_TOTAL_IF_CONTAINS_HIDDEN);
$this->assertEquals($forumgrade, $report->blank_hidden_total($course->id, $coursegradeitem, $datagrade + $forumgrade));
// Note: we cannot simply hide modules and call $report->blank_hidden_total() again.
@@ -182,16 +182,16 @@ class gradereportlib_testcase extends advanced_testcase {
$report = new grade_report_test($course->id, $gpr, $coursecontext, $student);
// Should return the supplied student total grade regardless of hiding.
$report->showtotalsifcontainhidden = GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN;
$report->showtotalsifcontainhidden = array($course->id => GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN);
$this->assertEquals($datagrade + $forumgrade, $report->blank_hidden_total($course->id, $coursegradeitem, $datagrade + $forumgrade));
// Should blank the student total as course grade depends on a hidden item.
$report->showtotalsifcontainhidden = GRADE_REPORT_HIDE_TOTAL_IF_CONTAINS_HIDDEN;
$report->showtotalsifcontainhidden = array($course->id => GRADE_REPORT_HIDE_TOTAL_IF_CONTAINS_HIDDEN);
$this->assertEquals(null, $report->blank_hidden_total($course->id, $coursegradeitem, $datagrade + $forumgrade));
// Should return the course total minus the hidden activity grades.
// They are both hidden so should return null.
$report->showtotalsifcontainhidden = GRADE_REPORT_SHOW_TOTAL_IF_CONTAINS_HIDDEN;
$report->showtotalsifcontainhidden = array($course->id => GRADE_REPORT_SHOW_TOTAL_IF_CONTAINS_HIDDEN);
$this->assertEquals(null, $report->blank_hidden_total($course->id, $coursegradeitem, $datagrade + $forumgrade));
}
}
+3 -5
View File
@@ -56,14 +56,12 @@ $PAGE->set_url($url);
// Make sure that the user has permissions to manage groups.
require_login($course);
$context = get_context_instance(CONTEXT_COURSE, $course->id);
require_capability('moodle/course:managegroups', $context);
$PAGE->requires->yui2_lib('connection');
$PAGE->requires->js('/group/clientlib.js');
$context = get_context_instance(CONTEXT_COURSE, $course->id);
if (!has_capability('moodle/course:managegroups', $context)) {
redirect('/course/view.php', array('id'=>$course->id)); // Not allowed to manage all groups
}
// Check for multiple/no group errors
if (!$singlegroup) {
switch($action) {
+4 -2
View File
@@ -40,6 +40,9 @@
}
$PAGE->set_url('/', $urlparams);
$PAGE->set_course($SITE);
$PAGE->set_other_editing_capability('moodle/course:update');
$PAGE->set_other_editing_capability('moodle/course:manageactivities');
$PAGE->set_other_editing_capability('moodle/course:activityvisibility');
// Prevent caching of this page to stop confusion when changing page after making AJAX changes
$PAGE->set_cacheable(false);
@@ -89,7 +92,6 @@
}
$PAGE->set_pagetype('site-index');
$PAGE->set_other_editing_capability('moodle/course:manageactivities');
$PAGE->set_docs_path('');
$PAGE->set_pagelayout('frontpage');
$editing = $PAGE->user_is_editing();
@@ -136,7 +138,7 @@
echo format_text($summarytext, $section->summaryformat, $summaryformatoptions);
if ($editing) {
if ($editing && has_capability('moodle/course:update', $context)) {
$streditsummary = get_string('editsummary');
echo "<a title=\"$streditsummary\" ".
" href=\"course/editsection.php?id=$section->id\"><img src=\"" . $OUTPUT->pix_url('t/edit') . "\" ".
+48
View File
@@ -0,0 +1,48 @@
<?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'] = 'lang ডিরেক্টরি তৈরি করতে পারে না';
$string['cannotcreatetempdir'] = 'টেম্প ডিরেক্টরি তৈরি করতে পারে না';
$string['cannotdownloadcomponents'] = 'কম্পোনেন্ট ডাউনলোড করা যায় না';
$string['cannotdownloadzipfile'] = 'ZIP ফাইল ডাউনলোড করা যায়না';
$string['cannotfindcomponent'] = 'কম্পোনেন্ট খুঁজে পাওয়া যায় না';
$string['cannotsavemd5file'] = 'md5 ফাইল সংরক্ষণ করতে পারেনা';
$string['cannotsavezipfile'] = 'ZIP ফাইল সংরক্ষণ করতে পারেনা';
$string['cannotunzipfile'] = 'ফাইল আনজিপ করতে পারে না';
$string['componentisuptodate'] = 'কম্পোনেন্ট হালনাগাদ করা নেই';
$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'] = 'ভুল সোর্স URL বেস';
$string['wrongzipfilename'] = 'ভুল ZIP ফাইল নাম';
+67
View File
@@ -30,4 +30,71 @@
defined('MOODLE_INTERNAL') || die();
$string['admindirname'] = 'অ্যাডমিন ডিরেক্টরিটি';
$string['availablelangs'] = 'যে সমস্ত ভাষা ব্যাবহার করতে পারেন';
$string['chooselanguagehead'] = 'একটি ভাষা নির্বাচন';
$string['chooselanguagesub'] = 'ইনস্টলেশনের জন্য একটি ভাষা নির্বাচন। এই ভাষাই সাইটের জন্য নির্ধারিত ভাষা হিসাবে ব্যবহৃত হবে এবং এটা পরে যেকোনো সময় পরিবর্তন করা হতে পারে।';
$string['cliinstallheader'] = 'মুডল {$a} কমান্ড লাইন ইনস্টলেশন প্রোগ্রাম';
$string['databasehost'] = 'ডাটাবেস হোস্ট';
$string['databasename'] = 'ডাটাবেস নাম';
$string['databasetypehead'] = 'ডাটাবেস ড্রাইভার নির্বাচন';
$string['dataroot'] = 'ডাটাবেস ডিরেক্টরি';
$string['dbprefix'] = 'টেবিল প্রেফিক্স';
$string['dirroot'] = 'মুডল ডিরেক্টরি';
$string['environmenthead'] = 'এনভায়রনমেন্ট পরীক্ষা করা হচ্ছে ...';
$string['environmentsub2'] = 'প্রত্যেক মুডল রিলিজের PHP সংস্করণের কিছু নূন্যতম শর্ত এবং কিছু অত্যাবশ্যক PHP এক্সটেনশন রয়েছে।
ইনস্টল আপগ্রেডের পূর্বেই সম্পূর্ন এনভায়রনমেন্ট পরীক্ষা করা হয়েছে। নতুন সংস্করনটা ইনস্টল করতে বা PHP এক্সটেনশন সক্রিয় করতে না পারলে অনুগ্রহ করে সার্ভার প্রশাসন এর সাথে যোগাযোগ।';
$string['errorsinenvironment'] = 'এনভায়রনমেন্ট পরীক্ষা ব্যর্থ!';
$string['installation'] = 'ইনস্টলেশন';
$string['langdownloaderror'] = 'দূর্ভাগ্যবশত "{$a}" ভাষা ডাউনলোড করা যাচ্ছে না। ইনস্টলেশন প্রক্রিয়া ইংরেজী ভাষাতেই চলবে।';
$string['memorylimithelp'] = '<p>আপনার সার্ভারের PHP মেমরি সীমা বর্তমানে {$a} নির্ধারণ করা হয়েছে।</p>
<p>ফলে মুডলে পরবর্তীতে মেমরি সংক্রান্ত সমস্যা দেখা দিতে পারে, বিশেষ করে অনেকগুলো মুডল সক্রিয় করা থাকলে/বেশিসংখ্যক ব্যবহারকারী থাকলে। </p>
<p>এজন্য আমরা সুপারিশ করি উচ্চসীমার, যেমন ৪০M মেমরি সহ PHP কমপাইল করতে।
এটা করার অনেকগুলো উপায় রয়েছে:</p>
<ol>
<li>আপনি যদি <i>--enable-memory-limit</i> দ্বারা PHP কমপাইল করতে পারেন তবে।
ফলে মুডল নিজে মেমরি সীমা নির্ধারণ করে নিবে।</li>
<li>আপনি php.ini ফাইল ব্যবহার করতে পারলে <b>memory_limit</b>
পরিবর্তন করে ৪০M এর মত করা যেত। আপনি যদি নিজে ব্যবহার করতে না পারেন তবে আপনার অ্যাডমিনিস্ট্রেশন আপনার জন্য কাজ করে দিবে।</li>
<li>কিছু PHP সার্ভারে মুডল ডিরেক্টরিতে:
<blockquote><div>php_value memory_limit 40M</div></blockquote>
লাইনটিসহ .htaccess ফাইল তৈরি করে নিতে পারেন
<p>কিছু সার্ভারে <b>সকল</b> PHP পৃষ্ঠা কাজ নাও করতে পারে
(পৃষ্ঠায় আপনার কিছু ত্রুটি চোখে পড়বে) সুতরাং আপনাকে .htaccess ফাইল অপসারন করতে হবে।</p></li>
</ol>';
$string['paths'] = 'পাথ';
$string['pathserrcreatedataroot'] = 'ইনস্টলারের সাহায্যে ডাটা ডিরেক্টরি ({$a->dataroot}) তৈরি করা যায় না';
$string['pathshead'] = 'পাথ নিশ্চিত';
$string['pathsrodataroot'] = 'ডাটারুট ডিরেক্টরি লেখার মত নয়।';
$string['pathsroparentdataroot'] = 'প্যারেন্ট ডিরেক্টরি ({$a->parent}) লেখার যোগ্য নয়। ইনস্টলারের সাহায্যে ডাটা ডিরেক্টরি ({$a->dataroot}) তৈরি করা যায় না।';
$string['pathssubadmindir'] = 'খুব কম সংখ্যক ওয়েবহোস্ট কন্ট্রোল প্যানেল বা এই ধরনের কিছু ব্যবহার করতে /admin কে বিশেষ URL হিসাবে ব্যবহার করে। দূর্ভাগ্যবশত এর সাথে মুডল এডমিন পৃষ্টার স্ট্যান্ডার্ড স্থান নিয়ে ঝামেলা হয়। ইনস্টলেশনে অ্যাডমিন ডিরেক্টরির
নাম পরিবর্তন করে নতুন নাম দিয়ে সমস্যার সমাধান করতে পারেন। যেমন: <em>moodleadmin</em> এর ফলে মডুলে অ্যাডমিনে লিঙ্কগুলো নির্ধারণ করে দিবে।';
$string['pathssubdataroot'] = 'মুডলের ফাইল সংরক্ষণের জন্য জায়গা প্রয়োজন। ওয়েব সার্ভার ব্যবহারকারী
(সাধরনত কেউই না বা apache) যাতে অবশ্যই এই ডিরেক্টরি পড়তে লিখতে পারে, কিন্তু যাতে ওয়েবের সাহায্যে এটা সরাসরি ব্যবহার করা না যায়। ডিরেক্টরি না থাকলে, ইনস্টলার এটা তৈরি করে নেয়ার চেষ্টা করবে।';
$string['pathssubdirroot'] = 'মুডল ইন্সটলেশনের সম্পূর্ন ডিরেক্টরি পাথ।';
$string['pathssubwwwroot'] = 'মুডল ব্যবহার করার সম্পূর্ন ওয়েব ঠিকানা।
একাধিক ঠিকানা ব্যবহার করে মুডল ব্যবহার করা সম্ভব নয়।
আপনার সাইটের যদি একাধিক পাবলিক ঠিকানা থাকে তবে এই ঠিকানাটা ছাড়া বাকি সবগুলো ঠিকানার জন্য আপনাকে অবশ্যই স্থায়ী রিডিরেক্ট নির্ধারণ করতে হবে।';
$string['pathsunsecuredataroot'] = 'ডাটারুট এর স্থান নিরাপদ নয়';
$string['pathswrongadmindir'] = 'অ্যাডমিন ডিরেক্টরি নাই';
$string['phpextension'] = '{$a} PHP এক্সটেনশন';
$string['phpversion'] = 'PHP সংস্করণ';
$string['phpversionhelp'] = '<p>মুডলের জন্য PHP এর কমপক্ষে 4.3.0 or 5.1.0সংস্করণ প্রয়োজন (5.0.x অবগত সমস্যার সংখ্যাগতমান দেয়া থাকে)</p>
<p>আপনি বর্তমানে {$a} সংস্করণটি চালাচ্ছেন</p>
<p>PHP সংস্করন অবশ্যই আপগ্রেড করতে হবে বা PHP এর নতুন সংস্করনসহ হোস্ট ব্যবহার করতে হবে!<br />
(5.0.x এর ক্ষেত্রে আপনি 4.4.x সংস্করনেও ডাউনগ্রেড করতে পারেন)</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'আপনি সফলভাবে
আপনার কম্পিউটারে <strong>{$a->packname} {$a->packversion}</strong> প্যাকেজ ইনস্টল করে চালু করেছেন বলেই এই পৃষ্ঠাটি দেখতে পাচ্ছেন। অভিনন্দন!';
$string['welcomep30'] = 'অ্যাপ্লিকেশনসহ <strong>{$a->installername}</strong> রিলিজের ফলে একটি এনভায়রনমেন্ট তৈরি করা হয় যেখানে <strong>মুডল</strong> কাজ করবে, যেমন:';
$string['welcomep40'] = 'প্যাকেজে <strong>মুডল {$a->moodlerelease} ({$a->moodleversion})</strong> ও থাকে।';
$string['welcomep50'] = 'এই প্যাকেজের সকল অ্যাপ্লিকেশন তাদের মূল্যবান
লাইসেন্স অনুসরন করে। সম্পূর্ন <strong>{$a->installername}</strong> প্যাকেজ <a href="http://www.opensource.org/docs/definition_plain.html">ওপেন সোর্স</a> এবং <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> লাইসেন্সের আওতায়
বন্টিত।';
$string['welcomep60'] = 'নিম্নোক্ত পৃষ্ঠায় আপনার কম্পিউটারে <strong>মুডল</strong>
কনফিগার করে নির্ধারন করার জন্য কিছু সহজ উপায় দেয়া আছে। আপনি পূর্বনির্ধারিত
সেটিং গ্রহন করতে পারেন অথবা ঐচ্ছিকভাবে তাদেরকে আপনার প্রয়োজনানুসারে সংশোধন করে নিতে পারেন।';
$string['welcomep70'] = '<strong>মুডল</strong> সেট আপের সাহায্যে অগ্রসর হওয়ার জন্য "পরবর্তী" বোতামে ক্লিক।';
$string['wwwroot'] = 'ওয়েব ঠিকানা';
+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'] = 'Greška, neispravna vrijednost "{$a->value}" za "{$a->option}"';
$string['cliincorrectvalueretry'] = 'Neispravna vrijednost, molim pokušajte ponovo';
$string['clitypevalue'] = 'otkucaj vrijednost';
$string['clitypevaluedefault'] = 'otkucaj vrijednost, pritisni "Enter" da biste upotrebili zadanu vrijednost ({$a})';
$string['cliunknowoption'] = 'Neprepoznate opcije:
{$a}
Molimo iskoristite opciju za pomoć.';
$string['cliyesnoprompt'] = 'otkucaj y (znači DA) ili n (znači NE)';
$string['environmentrequireinstall'] = 'mora biti instaliran i omogućen';
$string['environmentrequireversion'] = 'neophodna verzija je {$a->needed} a Vi trenutno koristite verziju {$a->current}';
+48
View File
@@ -0,0 +1,48 @@
<?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'] = '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 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['downloadedfilecheckfailed'] = 'Nije uspjela provjera preuzete datoteke';
$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';
$string['wrongsourcebase'] = 'Pogrešna baza izvornog URL-a';
$string['wrongzipfilename'] = 'Pogrešan naziv arhive';
+36 -13
View File
@@ -31,21 +31,44 @@
defined('MOODLE_INTERNAL') || die();
$string['admindirname'] = 'Administratorski direktorij';
$string['availablelangs'] = 'Popis dostupnih jezika';
$string['chooselanguagehead'] = 'Izaberite jezik';
$string['chooselanguagesub'] = 'Molimo izaberite jezik koji će se koristiti tokom instalacije. Ovaj jezik će, također, biti korišten na nivou stranice kao zadani, mada to naknadno može biti promijenjeno.';
$string['clialreadyconfigured'] = 'Datoteka config.php već postoji. Molimo, koristite admin/cli/install_database.php ako želite da instalirate ovu stranicu.';
$string['clialreadyinstalled'] = 'Datoteka config.php već postoji. Upotrebite komandu admin/cli/upgrade.php ako želite da nadogradite ovu stranicu.';
$string['cliinstallheader'] = 'Moodle {$a} program za instaliranje iz komandne linije';
$string['databasehost'] = 'Server baze podataka';
$string['databasename'] = 'Ime baze podataka';
$string['databasetypehead'] = 'Izaberite driver baze podataka';
$string['dataroot'] = 'Direktorij podataka';
$string['datarootpermission'] = 'Ovlaštenja nad direktorijom podataka';
$string['dbprefix'] = 'Lista prefiksa';
$string['dirroot'] = 'Direktorij Moodla';
$string['dirroot'] = 'Moodle direktorij';
$string['environmenthead'] = 'Provjeravanje Vašeg okruženja...';
$string['environmentsub2'] = 'Svaka verzija Moodlea ima minimum zahtjeva po pitanju odgovarajuće PHP verzije i nekoliko obaveznih PHP ekstenzija. Puna provjera okruženja se vrši prije svakog instaliranja ili ažuriranja postojeće verzije. Ukoliko ne znate kako da instalirate novu verziju ili omogućite PHP ekstenzije kontaktirajte Vašeg server administratora.';
$string['errorsinenvironment'] = 'Provjera okruženja nije prošla!';
$string['installation'] = 'Instalacija';
$string['memorylimithelp'] = '<p>PHP ograničenje memorije za Vaš server je trenutno podešeno na {$a}.</p>
<p>Ovo možda prouzrokuje Moodlu da kasnije ima problema sa memorijom, posebno ako imate mnogo dozvoljenih modula i /ili mnogo korisnika.</p>
<p>Preporučujemo Vam da konfigurišete PHP sa visokim ograničenjem ako je moguće, kao 40M. Čineći ovo tamo je nekoliko načina pa možete pokušati: </p><ol>
<li>Ako ste, opet kompajlisati PHP sa <i>--dostupnim-memorijskim-ograničenjem</i>. Ovo će dozvoliti Moodle da postavi memorijsko ograničenje sam za sebe.</li>
<li>Ako imate pristup na Vašu php.ini datoteku, možete promijeniti <b>memorijsko_ograničenje</b> podešavanje u nešto kao ovo 40M. Ako nemate pristup možete pitati svog administratora da to uradi za Vas.</li>
<li>Na nekim PHP serverima možete kreirati a.ht pristupnu datoteku u Moodle direktoriju koji se sadrži na ovoj liniji:<br /><blockquote>php_vrijednost memorijskog_ograničenja 40M</blockquote></li>
<br />Kakogod, na istom serveru ovo izbjegavajte <b>sve</b> PHP stranice za rad (vidjet ćete grešku prilkom pregleda stranice) ćete na njima morati izbrisati .htpristupnu datoteku. </li></ol>';
$string['langdownloaderror'] = 'Nažalost, jezik "{$a}" se ne može preuzeti. Proces instaliranja biće nastavljen na engleskom jeziku.';
$string['memorylimithelp'] = '<p>PHP ograničenje memorije za Vaš server je trenutno podešeno na {$a}.</p> <p>Ovo podešavanje može kasnije da prouzrokuje da Moodle ima problema sa memorijom, posebno ako imate mnogo aktiviranih modula i/ili mnogo korisnika.</p> <p>Preporučujemo da konfigurišete PHP sa višim ograničenjem ako je moguće, recimo 40M. Postoji nekoliko načina na koje to može da se to uradi:</p><ol> <li>Ako možete, rekompajlirajte PHP sa <i>--enable-memory-limit</i>. Ovo će omogućiti Moodle sistemu da sam postavi memorijsko ograničenje.</li> <li>Ako imate pristup svojoj php.ini datoteci, možete promijeniti vrijednost za <b>memory_limit</b> na, recimo, 40M. Ako nemate pristup toj datoteci možete pitati svog administratora da to uradi umjesto Vas.</li> <li>Na nekim PHP serverima možete da kreirate .htaccess datoteku u Moodle direktoriju koja sadrži red: <blockquote><div>php_value memory_limit 40M</div></blockquote> <p>Međutim, na nekim serverima to će spriječiti prikazivanje <b>svih</b> PHP stranica (vidjećete poruku o grešci kada budete gledali stranice), pa ćete sa tih servera morati da uklonite .htaccess datoteku.</p></li> </ol>';
$string['paths'] = 'Putanje';
$string['pathserrcreatedataroot'] = 'Instalaciona procedura ne može da kreira direktorij baze podataka ({$a->dataroot}).';
$string['pathshead'] = 'Potvrdi putanje';
$string['pathsrodataroot'] = 'U direktorij za podatke nije moguć upis';
$string['pathsroparentdataroot'] = 'Nije moguć upis u nadređeni direktorij ({$a->parent}). Instalacioni program ne može da kreira direktorij za podatke ({$a->dataroot}).';
$string['pathssubadmindir'] = 'Vrlo mali broj web servera koristi /admin kao specijalni URL za pristup raznim podešavanjima (kontrolni panel i sl.). Nažalost, to dovodi do konflikta sa standardnom lokacijom za administratorske stranice u Moodleu. Ovaj problem možete riješiti tako što ćete promijeniti ime administratorskog direktoriju u Vašoj instalaciji, i ovdje upisati to novo ime. Na primjer <em>moodleadmin</em>. Ovo podešavanje će prepraviti administratorske linkove u Moodle sistemu.';
$string['pathssubdataroot'] = 'Potreban Vam je prostor gdje će Moodle čuvati postavljene datoteke. Ovaj direktorij treba da bude podešen tako da se može čitati i u njega upisivati od strane korisnika web servera (obično \'nobody\' ili \'apache\'), ali istovremeno mora biti dostupan direktno preko weba. Ukoliko ovaj direktorij ne postoji Moodle će pokušati da ga kreira tokom instalacije.';
$string['pathssubdirroot'] = 'Puna putanja do direktotija za instaliranje Moodlea.';
$string['pathssubwwwroot'] = 'Puna web adresa putem koje će se pristupati Moodleu. Nije moguće pristupati Moodleu koristeći više adresa. Ako Vaša stranica ima više javnih adresa onda na svima morate da podesite permanentne redirekcije osim na ovoj. Ako je Vaša stranica dostupna sa interneta ali i iz intranet okruženja ovdje upotrijebite javnu adresu i podesite DNS tako da i intranet korisnici mogu da koriste javnu adresu. Ako je adresa netačna promijenite URL u svom web čitaču da biste ponovo pokrenuli instalaciju sa drugačijom vrijednošću.';
$string['pathsunsecuredataroot'] = 'Dataroot lokacija nije bezbjedna';
$string['pathswrongadmindir'] = 'Admin direktorij ne postoji';
$string['phpextension'] = '{$a} PHP ekstenѕija';
$string['phpversion'] = 'PHP verzija';
$string['phpversionhelp'] = '<p>Moodle zahtijeva najmanju PHP verziju 4.1.0.</p>
<p>Trenutno pokrećete verziju {$a}</p>
<p>Možete nadograditi PHP ili premjestiti na glavnu sa novijom verzijom PHP!</p>';
$string['phpversionhelp'] = '<p>Moodle zahtijeva najmanje PHP verziju 4.3.0 ili 5.1.0 (5.0.x ima brojne uočene probleme).</p> <p>Trenutno koristite verziju {$a}</p> <p>Morate nadograditi PHP ili premjestiti Moodle na web server sa novijom verzijom PHP-a!</br> (U slučaju verzije 5.0.x možete, također, da se vratite na 4.4.x verziju)</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'Ovu stranicu vidite zato što ste uspješno instalirali i pokrenuli <strong>{$a->packname} {$a->packversion}</strong> paket na svom serveru. Čestitamo!';
$string['welcomep30'] = 'Ovo izdanje <strong>{$a->installername}</strong> uključuje aplikacije za kreiranje okruženja u kojem će <strong>Moodle</strong> uspješno funkcionisati, konkretno:';
$string['welcomep40'] = 'Ovaj paket obuhvata i <strong>Moodle {$a->moodlerelease} ({$a->moodleversion})</strong>.';
$string['welcomep50'] = 'Korištenje svih aplikacija ovog paketa je uređeno njihovim licencama. Kompletan<strong>{$a->installername}</strong> paket je <a href="http://www.opensource.org/docs/definition_plain.html">otvorenog koda</a> i distribuira se pod <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> licencom.';
$string['welcomep60'] = 'Naredne stranice će vas provesti kroz nekoliko jednostavnih koraka tokom kojih ćete konfigurisati i podesiti <strong>Moodle</strong> na svom računaru. Možete prihvatiti zadano podešavanja ili ih, opciono, prilagoditi vlastitim potrebama.';
$string['welcomep70'] = 'Kliknite na dugme za nastavak da biste dalje podešavali <strong>Moodle</strong>.';
$string['wwwroot'] = 'Web adresa';
+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'] = 'Jezik';
$string['next'] = 'Sljedeći';
$string['previous'] = 'Prethodni';
$string['reload'] = 'Učitaj ponovo';
+2 -2
View File
@@ -30,5 +30,5 @@
defined('MOODLE_INTERNAL') || die();
$string['cannotsavemd5file'] = 'No s\'ha pogut alçar el fitxer md5';
$string['cannotsavezipfile'] = 'No s\'ha pogut alçar el fitxer zip';
$string['cannotsavemd5file'] = 'No s\'ha pogut guardar el fitxer md5';
$string['cannotsavezipfile'] = 'No s\'ha pogut guardar el fitxer zip';
+16 -7
View File
@@ -30,7 +30,10 @@
defined('MOODLE_INTERNAL') || die();
$string['langdownloaderror'] = 'Dissortadament l\'idioma "{$a}" no està instal·lat. La instal·lació prosseguirà en anglés.';
$string['clialreadyconfigured'] = 'El fitxer config.php ja existeix, feu servir dmin/cli/install_database.php si voleu instal·lar este lloc web.';
$string['clialreadyinstalled'] = 'El fitxer config.php ja existeix, feu servir admin/cli/upgrade.php si voleu actualitzar este lloc web.';
$string['cliinstallheader'] = 'Programa d\'instal·lació de línia d\'ordes de Moodle {$a}';
$string['langdownloaderror'] = 'Dissortadament l\'idioma "{$a}" no es pot baixar. La instal·lació prosseguirà en anglés.';
$string['memorylimithelp'] = '<p>El límit de memòria del PHP del vostre servidor actualment està definit en {$a}.</p>
<p>Això pot causar que Moodle tinga problemes de memòria més avant, especialment si teniu molts mòduls habilitats i/o molts usuaris.</p>
@@ -41,14 +44,20 @@ $string['memorylimithelp'] = '<p>El límit de memòria del PHP del vostre servid
<li>Si teniu accés al fitxer php.ini, podeu canviar el paràmetre <b>memory_limit</b> a 40 MB. Si no hi teniu accés podeu demanar al vostre administrador que ho faça ell.</li>
<li>En alguns servidors PHP podeu crear un fitxer .htaccess dins del directori de Moodle amb esta línia:
<p><blockquote>php_value memory_limit 40M</blockquote></p>
<p>Tanmateix, en alguns servidors això farà que no funcioni <b>cap</b> pàgina PHP (es visualitzaran errors) en el qual cas hauríeu de suprimir el fitxer .htaccess.</p></li>
<p>Tanmateix, en alguns servidors això farà que no funcione <b>cap</b> pàgina PHP (es visualitzaran errors) en el qual cas hauríeu de suprimir el fitxer .htaccess.</p></li>
</ol>';
$string['pathssubdataroot'] = 'Necessiteu un espai on Moodle puga alçar els fitxers penjats. Este directori hauria de tindre permisos de lectura I ESCRIPTURA per a l\'usuari del servidor web (normalment \'nobody\' o \'apache\'), però no cal que siga accessible directament via web. L\'instal·lador provarà de crear-lo si no existeix.';
$string['phpversionhelp'] = '<p>Moodle necessita la versió de PHP 4.1.0 o posterior.</p>
$string['pathssubadmindir'] = 'Alguns serveis d\'allotjament web (pocs) utilitzen un URL especial /admin p. ex. per a accedir a un tauler de control o quelcom paregut. Malauradament això entra en conflicte amb la ubicació estàndard de les pàgines d\'administració de Moodle. Podeu arreglar este problema canviant el nom del directori d\'administració de Moodle en la vostra instal·lació i posant el nou nom ací. Per exemple <em>moodleadmin</em>. Això modificarà els enllaços d\'administració de Moodle.';
$string['pathssubdataroot'] = 'Necessiteu un espai on Moodle puga guardar els fitxers penjats. Este directori hauria de tindre permisos de lectura I ESCRIPTURA per a l\'usuari del servidor web (normalment \'nobody\' o \'apache\'), però no cal que siga accessible directament via web. L\'instal·lador provarà de crear-lo si no existeix.';
$string['pathssubwwwroot'] = 'L\'adreça web completa on s\'accedirà a Moodle.
No és possible accedir a Moodle en diferents adreces.
Si el vostre lloc múltiples adreces públiques haureu de configurar redireccions permanents per a totes excepte esta.
Si el vostre lloc és accessible tant des d\'Internet com des d\'una intranet, utilitzeu ací l\'adreça pública i configureu el DNS de manera que els usuaris de la intranet puguen utilitzar també l\'adreça pública.
Si l\'adreça no és correcta, canvieu l\'URL en el vostre navegador per reiniciar la instal·lació amb un altre valor.';
$string['phpversionhelp'] = '<p>Moodle necessita una versió de PHP 4.3.0 o 5.1.0 (les versions 5.0.x tenien uns quants problemes coneguts).</p>
<p>A hores d\'ara esteu utilitzant la versió {$a}.</p>
<p>Vos caldrà actualitzar el PHP o traslladar Moodle a un ordinador amb una versió de PHP més recent.</p>';
$string['welcomep20'] = 'Esteu veient esta pàgina perquè heu instal·lat amb èxit i heu executat el paquet <strong>{$a->packname} {$a->packversion}</strong>. Felicitacions!';
$string['welcomep30'] = 'Esta versió de <strong>{$a->installername}</strong> inclou les aplicacions necessàries per crear un entorn en el qual funcioni <strong>Moodle</strong>:';
<p>Vos cal actualitzar el PHP o traslladar Moodle a un ordinador amb una versió de PHP més recent.<br />(Si esteu utilitzant la versió 5.0.x, alternativament també podríeu tornar arrere a la 4.4.x)</p>';
$string['welcomep20'] = 'Esteu veient esta pàgina perquè heu instal·lat amb èxit i heu executat el paquet <strong>{$a->packname} {$a->packversion}</strong>. Felicitacions.';
$string['welcomep30'] = 'Esta versió de <strong>{$a->installername}</strong> inclou les aplicacions necessàries per crear un entorn en el qual funcione <strong>Moodle</strong>:';
$string['welcomep50'] = 'L\'ús de totes les aplicacions d\'este paquet és governat per les seues llicències respectives. El paquet <strong>{$a->installername}</strong> complet és
<a href="http://www.opensource.org/docs/definition_plain.html">codi font obert</a> i es distribueix
sota llicència <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>.';
+1 -1
View File
@@ -32,4 +32,4 @@ defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = 'ca';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Valencià (Català meridional)';
$string['thislanguage'] = 'Català (Valencià)';
+1
View File
@@ -30,4 +30,5 @@
defined('MOODLE_INTERNAL') || die();
$string['thisdirection'] = 'rtl';
$string['thislanguage'] = 'سۆرانی';
+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['language'] = 'زمان';
$string['next'] = 'دواتر';
$string['reload'] = 'بارکردنەوە';
+10
View File
@@ -30,5 +30,15 @@
defined('MOODLE_INTERNAL') || die();
$string['clianswerno'] = 'n';
$string['cliansweryes'] = 'i';
$string['cliincorrectvalueerror'] = 'Gwall, gwerth anghywir "{$a->value}" ar gyfer "{$a->option}"';
$string['cliincorrectvalueretry'] = 'Gwerth anghywir, rhowch gynnig arall arni';
$string['clitypevalue'] = 'math o werth';
$string['clitypevaluedefault'] = 'math o werth, pwyswch Enter i ddefnyddio\'r gwerth diofyn ({$a})';
$string['cliunknowoption'] = 'Dewisiadau dieithr:
{$a}
Defnyddiwch y dewis --help.';
$string['cliyesnoprompt'] = 'mae teipio i (yn golygu iawn) neu n (yn golygu na)';
$string['environmentrequireinstall'] = 'angen ei osod/ei alluogi.';
$string['environmentrequireversion'] = 'Mae angen fersiwn {$a->needed} ac rydych yn defnyddio {$a->current}';
+5 -4
View File
@@ -40,8 +40,9 @@ $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['downloadedfilecheckfailed'] = 'Heb lwyddo i wirio\'r ffeil a lwythwyd i lawr';
$string['invalidmd5'] = 'md5 annilys';
$string['invalidmd5'] = 'Roedd y newidyn gwirio yn anghywir - rhowch gynnig arall arni';
$string['missingrequiredfield'] = 'Mae maes gofynnol ar goll';
$string['wrongdestpath'] = 'Llwybr cyrchfan anghywir.';
$string['wrongsourcebase'] = 'Bôn URL ffynhonnell anghywir.';
$string['wrongzipfilename'] = 'Enw ffeil ZIP anghywir.';
$string['remotedownloaderror'] = 'Wedi methu llwytho cydran ar eich gweinydd, gwiriwch osodiadau\'r dirprwy, argymhellir yr estyniad PHP cURL yn gryf.<br /><br />Mae\'n rhaid i chi lwytho\'r ffeil <a href="{$a->url}">{$a->url}</a> eich hun, ei chopïo i "{$a->dest}" ar eich gweinydd, a\'i dad-zipio yno.';
$string['wrongdestpath'] = 'Llwybr cyrchfan anghywir';
$string['wrongsourcebase'] = 'Bôn URL ffynhonnell anghywir';
$string['wrongzipfilename'] = 'Enw ffeil ZIP anghywir';
+29 -3
View File
@@ -30,14 +30,24 @@
defined('MOODLE_INTERNAL') || die();
$string['admindirname'] = 'Cyfeiriadur y Gweinyddwr';
$string['admindirname'] = 'Cyfeiriadur y gweinyddwr';
$string['availablelangs'] = 'Y pecynnau iaith sydd ar gael';
$string['chooselanguagehead'] = 'Dewis iaith';
$string['chooselanguagesub'] = 'Dewiswch iaith ar gyfer y broses osod YN UNIG. Gallwch ddewis yr iaith ar gyfer y safle ac ar gyfer defnyddwyr yn nes ymlaen ar sgrin arall.';
$string['dataroot'] = 'Cyfeiriadur Data';
$string['chooselanguagesub'] = 'Dewiswch iaith ar gyfer y broses osod. Bydd yr iaith hon yn cael ei defnyddio fel yr iaith ddiofyn ar gyfer y safle, ond gellir ei newid yn nes ymlaen.';
$string['clialreadyconfigured'] = 'Mae\'r ffeil config.php yn bodoli eisoes, defnyddiwch admin/cli/install_database.php os ydych chi am osod y safle hwn.';
$string['clialreadyinstalled'] = 'Mae\'r ffeil config.php yn bodoli eisoes, defnyddiwch admin/cli/upgrade.php os ydych chi am uwchraddio eich safle.';
$string['cliinstallheader'] = 'Rhaglen gosod llinell gorchymyn Moodle {$a}';
$string['databasehost'] = 'Gwesteiwr y gronfa ddata';
$string['databasename'] = 'Enw\'r gronfa ddata';
$string['databasetypehead'] = 'Dewis gyrrwr ar gyfer y gronfa ddata';
$string['dataroot'] = 'Cyfeiriadur data';
$string['datarootpermission'] = 'Hawliau ar gyfer cyfeiriaduron data';
$string['dbprefix'] = 'Llythrennau Blaen Tablau';
$string['dirroot'] = 'Cyfeiriadur Moodle';
$string['environmenthead'] = 'Wrthi\'n profi eich amgylchedd ...';
$string['environmentsub2'] = 'Mae gan bob fersiwn Moodle ofyniad fersiwn PHP sylfaenol ac amryw o estyniadau PHP gorfodol.
Bydd yr amgylchedd yn cael ei brofi\'n llawn cyn pob proses osod a diweddaru. Cysylltwch â gweinyddwr y gweinydd os nad ydych chi\'n gwybod sut mae gosod fersiwn newydd neu alluogi estyniadau PHP.';
$string['errorsinenvironment'] = 'Wedi methu profi\'r amgylchedd!';
$string['installation'] = 'Gosod';
$string['langdownloaderror'] = 'Yn anffodus, ni osodwyd yr iaith ganlynol: "{$a}". Bydd y broses osod yn cario ymlaen yn Saesneg.';
$string['memorylimithelp'] = '<p>Mae maint y cof PHP yn eich gweinydd ar hyn o bryd yn {$a}.</p>
@@ -59,6 +69,22 @@ $string['memorylimithelp'] = '<p>Mae maint y cof PHP yn eich gweinydd ar hyn o b
<p>Fodd bynnag, ar rai gweinyddion bydd hyn yn atal <b>pob</b> tudalen PHP rhag gweithio
(bydd gwallau\'n ymddangos pan fyddwch yn edrych ar dudalennau) felly bydd rhaid i chi dynnu\'r ffeil .htaccess file.</p></li>
</ol>';
$string['paths'] = 'Llwybrau';
$string['pathserrcreatedataroot'] = 'Dydy\'r rhaglen osod ddim yn gallu creu\'r cyfeiriadur data ({$a->dataroot}).';
$string['pathshead'] = 'Cadarnhau llwybrau';
$string['pathsrodataroot'] = 'Does dim modd ysgrifennu ar y cyfeiriadur gwraidd data.';
$string['pathsroparentdataroot'] = 'Does dim modd ysgrifennu ar y cyfeiriadur rhiant ({$a->parent}). Dydy\'r rhaglen osod ddim yn gallu creu\'r cyfeiriadur data ({$a->dataroot}).';
$string['pathssubadmindir'] = 'Nifer fach iawn o westeiwyr gwe sy\'n defnyddio /admin fel URL arbennig i chi gael mynd i mewn i\'r panel rheoli neu beth bynnag. Yn anffodus, mae hyn yn gwrthdaro â lleoliad safonol tudalennau gweinyddol Moodle. Gallwch drwsio hyn drwy ailenwi cyfeiriadur y gweinyddwr wrth osod y rhaglen, a rhoi\'r enw newydd yma. Er enghraifft: <em>gweinyddmoodle</em>. Bydd hyn yn trwsio\'r dolenni gweinyddol yn Moodle';
$string['pathssubdataroot'] = 'Mae Moodle angen lle ar gyfer cadw ffeiliau sy\'n cael eu llwytho i fyny. Dylai defnyddiwr gweinydd y we (fel arfer \'neb\' neu \'apache\') allu darllen ac YSGRIFENNU ar y cyfeiriadur hwn, ond ni ddylid gallu mynd i mewn iddo\'n uniongyrchol drwy\'r we. Bydd y rhaglen osod yn ceisio ei greu os nad yw\'n bodoli.';
$string['pathssubdirroot'] = 'Llwybr cyfeiriadur llawn i raglen Moodle.';
$string['pathssubwwwroot'] = 'Y cyfeiriad gwe llawn a ddefnyddir i fynd i mewn i Moodle.
Nid yw\'n bosibl mynd i mewn i Moodle wrth ddefnyddio amryw o gyfeiriadau.
Os oes gan eich safle amryw o gyfeiriadau cyhoeddus, bydd rhaid i chi sefydlu llwybrau ailgyfeirio parhaol ar gyfer pob un ohonynt ar wahân i hwn.
Os gellir mynd i mewn i\'ch safle o\'r Rhyngrwyd a\'r Fewnrwyd, defnyddiwch y cyfeiriad cyhoeddus yma a sefydlu DNS er mwyn i ddefnyddwyr y Fewnrwyd allu defnyddio\'r cyfeiriad cyhoeddus hefyd.
Os nad yw\'r cyfeiriad yn gywir, newidiwch yr URL yn eich porwr i ailddechrau\'r rhaglen osod gyda gwerth gwahanol.';
$string['pathsunsecuredataroot'] = 'Dydy lleoliad y data gwraidd ddim yn ddiogel';
$string['pathswrongadmindir'] = 'Cyfeiriadur y gweinyddwr';
$string['phpextension'] = 'Estyniad PHP {$a}';
$string['phpversion'] = 'Fersiwn PHP';
$string['phpversionhelp'] = '<p>Mae angen o leiaf fersiwn PHP 4.3.0 neu 5.1.0 ar Moodle (mae llawer o broblemau gyda 5.0.x).</p>
<p>Ar hyn o bryd, rydych yn rhedeg fersiwn {$a}</p>
+2 -2
View File
@@ -45,7 +45,7 @@ $string['datarootpermission'] = 'Zugriffsrechte zum Datenverzeichnis';
$string['dbprefix'] = 'Tabellen-Prefix';
$string['dirroot'] = 'Moodle-Verzeichnis';
$string['environmenthead'] = 'Installationsvoraussetzungen werden geprüft ...';
$string['environmentsub2'] = 'Jede Moodle-Version hat Mindestvoraussetzungen für der PHP-Version und für verbindliche PHP-Extensions. Vor einer Installation oder einer Aktualisierung wird eine vollständige Prüfung durchgeführt. Bitte fragen Sie den Server-Administrator, wenn Sie mit der Installation einer neuen Version oder mit der Aktivierung von PHP-Extensions nicht weiterkommen.';
$string['environmentsub2'] = 'Jede Version hat Mindestvoraussetzungen für der PHP-Version und für verbindliche PHP-Extensions. Vor einer Installation oder einer Aktualisierung wird eine vollständige Prüfung durchgeführt. Bitte fragen Sie den Administrator des Servers, wenn Sie mit der Installation einer neuen Version oder mit der Aktivierung von PHP-Extensions nicht weiterkommen.';
$string['errorsinenvironment'] = 'Fehler bei der Prüfung der Systemvoraussetzungen!';
$string['installation'] = 'Installation';
$string['langdownloaderror'] = 'Leider konnte das Sprachpaket \'{$a}\' nicht heruntergeladen werden. Die Installation wird in englischer Sprache fortgesetzt.';
@@ -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';
+42
View File
@@ -0,0 +1,42 @@
<?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'] = 'ནོར་བ། "{$a->option}"དོན་ལུ་ འཛོལ་འཛོལ་བའི་གནས་ཚད "{$a->value}"';
$string['cliincorrectvalueretry'] = 'འཛོལ་འཛོལ་བའི་གནད་ཚད་ནང་འདུག སླར་རྩོལ།';
$string['clitypevalue'] = 'གནས་ཚད་དབྱེ་བ།';
$string['clitypevaluedefault'] = 'གནས་ཚད་དབྱེ་བ། Enter ཨེབ་སྟེ་སྔོན་སྒྲིག་གི་ཨང་({$a})';
$string['cliunknowoption'] = 'ངོས་འཛིན་འབད་མ་ཚུགས་པའི་གདམ་ཁ་འདུག: {$a} གྲོགས་རམ་གྱི་གདམ་ཁ་འདི་ལག་ལེན་འཐབ་ད།';
$string['cliyesnoprompt'] = 'y ཟེར་འབྲི་བ་ཅིན་ཨིནཟེརཝ་དང་ n ཟེར་འབྲི་བ་ཅིན་མིན་)';
$string['environmentrequireinstall'] = 'གཞི་བཙུགས་འབད་དི་ལྕོགས་ཅན་བཟོ་དགོ།';
$string['environmentrequireversion'] = 'ཐོན་རིམ་ {$a->needed}དགོས་མཁོ་ཡོདཔ་ལས་ ཁྱོད་ཀྱི་ {$a->current}གཡོག་བཀོལ་བའི་བསྒང་ཡོད།';
+48
View File
@@ -0,0 +1,48 @@
<?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'] = 'སྐད་ཡིག་སྣོད་ཐོ་ གསར་བསྐྲུན་འབད་མི་བཏུབ།';
$string['cannotcreatetempdir'] = 'གནས་སྐབས་ཀྱི་སྣོད་ཐོ་ གསར་བསྐྲུན་འབད་མི་བཏུབ།';
$string['cannotdownloadcomponents'] = 'ཆ་ཤས་ཚུ་ཕབ་ལེན་འབད་མི་བཏུབ།';
$string['cannotdownloadzipfile'] = 'ZIP ཡིག་སྣོད་ཕབ་ལེན་འབད་མི་བཏུབ།';
$string['cannotfindcomponent'] = 'ཆ་ཤས་མི་ཐོབ།';
$string['cannotsavemd5file'] = 'md5 ཡིག་སྣོད་ སྲུངས་མི་བཏུབ།';
$string['cannotsavezipfile'] = 'ZIP ཡིག་སྣོད་ སྲུངས་མི་བཏུབ།';
$string['cannotunzipfile'] = 'ཡིག་སྣོད་ unzip འབད་མི་བཏུབ།';
$string['componentisuptodate'] = 'ཆ་ཤས་འདི་ དུས་མཐུན་སྦེ་ཡོད།';
$string['downloadedfilecheckfailed'] = 'ཕབ་ལེན་འབད་ཡོད་པའི་ཡིག་སྣོད་ཞིབ་དཔྱད་འཐུས་ཤོར་བྱུང་ཡོདཔ།';
$string['invalidmd5'] = 'check འགྱུར་ཅནའདི་ཕྱི་འགྱུར་ཨིན་མས་ - ལོག་འབད་གནང་།';
$string['missingrequiredfield'] = 'དགོ་པའི་ས་སྒོ་འདི་མིན་འདུག';
$string['remotedownloaderror'] = 'ཁྱོད་ཀྱི་server ་ལུ་ཆ་ཤས་ཕབ་ལེན་འབདཝ་ད་འཛོལ་བ་བྱུང་ཡོདཔ་ལས་ པོརོག་སི་སྒྲིག་སྟངས་ཚུ་བདེན་སྦྱོར་འབད་དགོ་པའི་ཁར་ PHP cURLརྒྱ་བསྐྱེད་འདི་འོས་སྦྱོར་འབད་ཡོདཔ་ཨིན། <br /><br />ཁྱོད་ཀྱིས་ ལག་ཐོག་ལས་ <a href="{$a->url}">{$a->url}</a>་ཕབ་ལེན་འབད་ཞིནམ་ལས་ ཁྱོད་རའི་སར་བར་ "{$a->dest}" ནང་འདྲ་བཤུས་བརྐྱབ་ཞིནམ་ལས་ དེ་ཁར་ཛིབ་འབད་བཤོལ།';
$string['wrongdestpath'] = 'བཞག་སྣོད་རྒྱུ་ལམ་འཛོལ་བ།';
$string['wrongsourcebase'] = 'འབྱུང་ས་URLགཞི་རྟེན་འཛོལ་བ།';
$string['wrongzipfilename'] = 'ZIP་ཡིག་སྣོད་མིང་འཛོལ་བ།';
+75
View File
@@ -0,0 +1,75 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Automatically generated strings for Moodle installer
*
* Do not edit this file manually! It contains just a subset of strings
* needed during the very first steps of installation. This file was
* generated automatically by export-installer.php (which is part of AMOS
* {@link http://docs.moodle.org/dev/Languages/AMOS}) using the
* list of strings defined in /install/stringnames.txt.
*
* @package installer
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
$string['admindirname'] = 'བདག་སྐྱོང་ སྣོད་ཐོ་';
$string['availablelangs'] = 'ཐོབ་ཡོད་པའི་སྐད་ཡིག་ཚུ་གྱི་ཐོ་བཀོད།';
$string['chooselanguagehead'] = 'སྐད་ཡིག་ སེལ་འཐུ་འབད།';
$string['chooselanguagesub'] = 'གཞི་བཙུགས་ཀྱི་དོན་ལུ་རྐྱངམ་ཅིག་ སྐད་ཡིག་གཅིག་སེལ་འཐུ་འབད། ཁྱོད་ཀྱིས་ ས་ཁོངས་དང་ ལག་ལེན་པའི་སྐད་ཡིག་ཚུ་ ཤུལ་མམ་གྱི་ གསལ་གཞི་ནང་ སེལ་འཐུ་འབད་ཚུགས།';
$string['clialreadyconfigured'] = 'ཡིག་སྣོད་config.php་འདི་ཧེ་མ་ལས་འདུག།ཁྱོད་ཨ་ནཱི་ས་ཁོངས་གཞི་བཙུགས་འབད་བ་ཅིན་admin/cli/install_database.php་དེ་ལག་ལོན་འཐབ་གནང།';
$string['clialreadyinstalled'] = 'ཡིག་སྣོད་config.php་འདི་ཧེ་མ་ལས་འདུག།ཁྱོད་ཨ་ནཱི་ས་ཁོངས་ཡར་བསྐྱེད་འབད་བ་ཅིན་admin/cli/upgrade.php་དེ་ལག་ལོན་འཐབ་གནང།';
$string['cliinstallheader'] = 'Moodle {$a} command line installation program';
$string['databasehost'] = 'གནས་སྡུད་གཞི་རྟེན་host';
$string['databasename'] = 'གནས་སྡུད་གཞི་རྟེན་ མིང་།';
$string['databasetypehead'] = 'Choose database driver';
$string['dataroot'] = 'གནས་སྡུད་ སྣོད་ཐོ་';
$string['datarootpermission'] = 'Data directories permission';
$string['dbprefix'] = 'Tables prefix';
$string['dirroot'] = 'Moodle སྣོད་ཐོ།';
$string['environmenthead'] = 'ཁྱོད་རའི་ མཐའ་འཁོར་ཞིབ་དཔྱད་འབད་དོ་་་';
$string['environmentsub2'] = 'Moodleའཛིན་གྲོལ་རེ་རེ་གྱི་PHP་འཛིན་གྲོལ་དག་པ་ཅིག་དང་PHP extensionsངེས་མཁོ་དགོཔ་ཨིན།གཞི་བཙུགས་དང་ཡར་བསྐྱེད་་མ་བཟོ་བའི་ཧེ་མFull environmentཞིབ་དཔྱད་འབད་འོང་།';
$string['errorsinenvironment'] = 'Environment check failed!';
$string['installation'] = 'གཞི་བཙུགས།';
$string['langdownloaderror'] = 'སྐད་ཡིག་ "{$a}"འདི་ གཞི་བཙུགས་འབད་དེ་མིན་ནུག། གཞི་བཙུགས་འདི་ ཨིན་སྐད་ནང་ འཕྲོ་མཐུད་དེ་འབད་ནི་ཨིན།';
$string['memorylimithelp'] = '<p>ད་ལྟོ་ཁྱོད་ཀྱི་སར་བར་གྱི་དོན་ལུ་ PHP དྲན་ཚད་དེ་ $a ལུ་གཞི་སྒྲིག་འབད་དེ་འདུག།</p> <p> འདི་གིས་ཤུལ་ལས་ མུ་ཌལ་ལུ་ དྲན་ཚད་ཀྱི་དཀའ་ངལ་ཚུ་འབྱུང་བཅུག་འོང་ཝ། འདི་གི་ནང་ལས་ཡང་ ཁྱོད་ཀྱི་མུ་ཌལ་དང་ལག་ལེན་པ་ལོ་ཤ་ལྕོགས་ཅན་བཟོ་ཡོད་པ་ཅིན་ དཀའ་ངལ་འབྱུང་འོང་།</p> <p> ཁྱོད་ཀྱིས་ 40M བཟུམ་གྱི་ PHP དྲན་ཚད་ མང་སུ་ཡོད་མི་ རིམ་སྒྲིག་འབད་བ་ཅིན་ ལེགས་ཤོམ་འོང་། འདི་འབད་ནི་གི་དོན་ལུ་ ཐབས་ཤེས་ ལེ་ཤ་ཡོད་:</p> <ol> <li> ཁྱོད་ཀྱིས་ <i>--enable-memory-limit</i> དང་གཅིག་ཁར་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་ཚུགས་པ་ཅིན་ འདི་གི་ས་ མུ་ཌལ་གི་དྲན་ཚད་ཁོ་ར་གིས་སྦེ་ གཞི་སྒྲིག་འབད་ཚུགས།</li> <li>ཁྱོད་རའི་ php.ini ཡིག་སྣོད་ནང་འཛུལ་སྤྱོད་འབད་ཚུགས་པ་ཅིན་ ཁྱོད་ཀྱི་ <b>memory_limit</b>སྒྲིག་སྟངས་འདི་ 40M བཟུམ་གཅིག་ལུ་ བསྒྱུར་བཅོས་འབད་ཚུགས། ག་དེམ་ཅིག་སྦེ་འཛུལ་སྤྱོད་འབད་མ་ཚུགས་པ་ཅིན་ ཁྱོད་རའི་བདག་སྐྱོང་པ་ལུ་ འབད་བཅུག། <li> PHP སར་བར་ ལ་ལོ་གཅིག་ནང་ འོག་གི་གྲལ་ཐིག་ཚུ་ཡོད་མི་ མུ་ཌལ་སྣོད་ཐོ་ནང་ཁྱོད་ཀྱིས་ .htaccess ཡིག་སྣོད་གསར་བསྐྲུན་འབད་ཚུགས། <blockquote><div>php_value memory_limit 40M</div></blockquote> <p> དེ་འབདཝ་ད་ལུ་ སར་བར་ལ་ལོ་གཅིག་ནང་ འདི་གིས་ <b>all</b> PHP ཤོག་ལེབ་ཚུ་ གཡོག་བཀོལ་ནི་ལུ་སྔོན་བཀག་འབདཝ་ཨིན། (ཤོག་ལེབ་ཚུ་ནང་བལྟ་བའི་སྐབས་ འཛོལ་བ་ཚུ་མཐོང་འོང་) དེ་འབདཝ་ལས་ .htaccess ཡིག་སྣོད་་རྩ་བསྐྲད་གཏང་དགོ།</p></li> </ol>';
$string['paths'] = 'Paths';
$string['pathserrcreatedataroot'] = 'Data directory ({$a->dataroot}) cannot be created by the installer.';
$string['pathshead'] = 'Confirm paths';
$string['pathsrodataroot'] = 'Dataroot directory is not writable.';
$string['pathsroparentdataroot'] = 'Parent directory ({$a->parent}) is not writeable. Data directory ({$a->dataroot}) cannot be created by the installer.';
$string['pathssubadmindir'] = 'webhostsདག་པ་ཅིག་ /admin ལག་ལེན་འཐབ་འབད་དམིགས་བསལ་ URL འདི་control panel or somethingའཛུལ་སྤྱོད་འབདཝ་ཨིན། ཁ་རྗེ་མེད་པར་ Moodleབདག་སྐྱོང་ཤོག་ལེབ་ཚུ་གྱི་ཚད་ལྡན་གནས་ཁོངས་གཅིག་ཁར་མི་མཐུན་ཨིན། ཁྱོད་ཀྱི་དཀའ་ངལ་དེ་ བདག་སྐྱོང་ཀྱི་སྣོད་ཐོ་ གཞི་བཙུགས་འབད་བའི་གང་བསྐྱར་མིང་བཏགས་སྦེ་སེལ་ཚུགས། དཔེར་ན: <em>moodleadmin</em>. འདི་གྱི་Moodle ནང་ན་བདག་སྐྱོང་འབྲེལ་ལམ་ཚུ་གྱི་དཀའ་ངལ་་སེལ་ཚུགས་ཨིན།';
$string['pathssubdataroot'] = 'སྐྱེལ་བཙུགས་ཚར་མི་ཡིག་སྣོད་ཚུ་Moodleགྱི་སྲུངས་བཞག་ནི་གྱི་དོན་ལུ་ས་གནས་དགོ།ཨ་ནི་སྣོད་ཐོ(ས་གནས་)དི་web serverལག་ལེན་པ་(usually \'nobody\' or \'apache\')གྱི་readable AND WRITEABLE དགོ འདི་འབདཝ་ད་ web ལས་འཛུལ་སྤྱོད་ཐད་ཀར་འབད་ནི་མེད་འོང་།་The installer will try to create it if doesn\'t exist.';
$string['pathssubdirroot'] = 'Moodle installation ལུ་སྣོད་ཐོ་གི་འགྲུལ་ལམ་ག་ར་བྱིན་།';
$string['pathssubwwwroot'] = 'Moodleའཛུལ་སྤྱོད་འབད་ནི་དོན་ལུ་Web གྱི་ཁ་བྱང་ག་ར་བྱིན་དགོ། སྣ་མང་ཁ་བྱང་ཚུ་གྱི་Moodleའཛུལ་སྤྱོད་འབད་མི་ཚུགས། ག་དེམ་ཅིག་འབད་ཁྱོད་ཀྱི་སྣ་མང་མི་མང་གི་ཁ་བྱང་ཚུ་ཡོད་པ་ཅིན་ འདི་མ་གཏོགས་གཞན་ག་ར་གུ་རྟག་བརྟན་སླར་ལོག་གཏང་ནི་དོན་ལུ་གཞི་སྒྲིག་འབད་དགོ། Intranet and Internet་གཉིས་ལས་ཁྱོད་ཀྱི་ས་ཁོངས་དེ་འཛུལ་སྤྱོད་འབད་བ་ཅིན་ མི་མང་གི་ཁ་བྱང་ལག་ལེན་འཐབ་དི་འབདཝ་ལས་Intranetལག་ལེན་པ་ཚུ་གྱི་ཡང་མི་མང་གི་ཁ་བྱང་ལག་ལེན་འཐབ་ཚུགས།
ག་དེམ་ཅིག་འབད་ཁྱོད་ཀྱི་ཁ་བྱང་ངེས་བདེན་མེན་བ་ཅིན་ཁྱོད་ཀྱི་browserནང་ན་URL་དེ་བསྒྱུར་བཅོས་འབད་སྦེ་ ལོག་installation with a different value.འགོ་བཙུགས།';
$string['pathsunsecuredataroot'] = 'Dataroot location is not secure';
$string['pathswrongadmindir'] = 'Admin directory does not exist';
$string['phpextension'] = '{$a} PHP extension';
$string['phpversion'] = 'PHP ཐོན་རིམ།';
$string['phpversionhelp'] = '<p>Moodle་ལུ་ ཐོན་རིམ་འདི་ ཉུང་མཐའ་ལུ་ 4.3.0 ཡང་ན་ 5.1.0 དགོ། (5.0.x ལུ་ ཤེས་ཚུགས་པའི་དཀའ་ངལ་ ལེ་ཤ་འདུག་)</p> <p>ཁྱོད་ད་ལྟོ་ཐོན་རིམ་$a གཡོག་བཀོལ་དོ་</p> <p>PHP ཡར་བསྐྱེད་འབད་དགོ་ ཡང་ན་ PHP ཐོན་རིམ་གསརཔ་ཡོད་མི་ ཧོསིཊ་གཅིག་དང་གཅིག་ཁར་ སྤོ་བཤུད་འབད།!<br /> (5.0.x ནང་ལུ་ ཁྱོད་ཀྱིས་ ཐོན་རིམ་ 4.4.x ལུ་ མར་ཕབ་འབད་ཚུགས།)</p>';
$string['welcomep10'] = '{$a->installername} ({$a->installerversion})';
$string['welcomep20'] = 'ཁྱོད་རའི་ གློག་རིག་ནང་ <strong>{$a->packname} {$a->packversion}</strong> package འདི་ མཐའ་འཁྱོལཅན་སྦེ་ གཞི་བཙུགས་དང་ གསར་བཙུགས་འབད་ཡོདཔ་ལས་བརྟེན་ ཁྱོད་ཀྱིས་འ་ནི་ ཤོག་ལེབ་འདི་བལྟ་ཚུགསཔ་ཨིན། བཀྲིས་བདེ་ལེགས་!';
$string['welcomep30'] = '<strong>{$a->installername}</strong> གསར་བཏོན་འབད་མི་ནང་ <strong>Moodle</strong> བཀོལ་སྤྱོད་འབད་བཏུབ་མི་ མཐའ་འཁོར་གསར་བསྐྲུན་འབད་མི་གློག་རིམ་ཚུ་ཡང་ཚུདཔ་ཨིན།';
$string['welcomep40'] = 'ཐུམ་སྒྲིལ་འདི་ནང་ལུ་ <strong>Moodle {$a->moodlerelease} ({$a->moodleversion})</strong> ཡང་ ཚུདཔ་ཨིན།';
$string['welcomep50'] = 'ཐུམ་སྒྲིལ་འདི་ནང་ལུ་ གློག་རིམ་ཆ་མཉམ་གྱི་ལག་ལེན་ཚུ་ ཁོང་རའི་ ཆོག་ཐམ་ལུ་ དབང་ཚད་ཡོདཔ་ཨིན། <strong>{$a->installername}</strong> ཐུམ་སྒྲིལ་ཆ་ཚང་འདི་ <a href="http://www.opensource.org/docs/definition_plain.html">open source</a> ཨིནམ་དང་ <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> ཆོག་ཐམ་དང་འཁྲིལ་ཏེ་ བགོ་བཀྲམ་འབད་འབདཝ་ཨིན།';
$string['welcomep60'] = 'འོག་གི་ཤོག་ལེབ་ཚུ་གིས་ ཁྱོད་རའི་གློག་རིག་ནང<strong>Moodle</strong> རིམ་སྒྲིག་འབད་ནིའི་ ཐབས་ལམ་ འཇམ་ཏོང་ཏོ་ཚུ་སྟོན་འོང་། སྔོན་སྒྲིག་ སྒྲིག་སྟངས་ཚུ་ དང་ལེན་འབད་ ཡང་ན་ ཁྱོད་རའི་དགོས་མཁོ་དང་བསྟུན་ཏེ་ འདི་ཚུ་ བསྒྱུར་བཅོས་འབད།';
$string['welcomep70'] = '<strong>Moodle</strong> གཞི་སྒྲིག་ འཕྲོ་མཐུད་དེ་འབད་ནིའི་དོན་ལུ་ "Next" ཨེབ་རྟ་གུ་ ཨེབ་གཏང་འབད།';
$string['wwwroot'] = 'Web ཁ་བྱང་ཚུ་';
@@ -30,6 +30,5 @@
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = 'es';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Español - España';
$string['thislanguage'] = 'རྫོང་ཁ';
+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'] = 'སྐད་ཡིག།';
$string['next'] = 'ཤུལ་མམ';
$string['previous'] = 'ཧེ་མམ';
$string['reload'] = 'ཡང་བསྐྱར་མངོན་གསལ་འབད';
+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['environmentrequireversion'] = 'version {$a->needed} is required and ye are running {$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['remotedownloaderror'] = 'Download of component to yer server failed, please verify proxy settings, PHP cURL extension is highly recommended.<br /><br />Ye must download the <a href="{$a->url}">{$a->url}</a> file manually, copy it to "{$a->dest}" in yer server and unzip it there.';
+75
View File
@@ -0,0 +1,75 @@
<?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['clialreadyconfigured'] = 'File config.php already exists, please use admin/cli/install_database.php if ye want to install this site.';
$string['clialreadyinstalled'] = 'File config.php already exists, please use admin/cli/upgrade.php if ye want to upgrade this site.';
$string['environmenthead'] = 'Checking yer environment ...';
$string['environmentsub2'] = 'Each Moodle release has some minimum PHP version requirement and a number of mandatory PHP extensions.
Full environment check is done before each install and upgrade. Please contact server administrator if ye do not know how to install new version or enable PHP extensions.';
$string['memorylimithelp'] = '<p>The PHP memory limit for yer server is currently set to {$a}.</p>
<p>This may cause Moodle to have memory problems later on, especially
if ye have a lot of modules enabled and/or a lot of users.</p>
<p>We recommend that ye configure PHP with a higher limit if possible, like 40M.
There are several ways of doing this that ye can try:</p>
<ol>
<li>If ye are able to, recompile PHP with <i>--enable-memory-limit</i>.
This will allow Moodle to set the memory limit itself.</li>
<li>If ye have access to yer php.ini file, ye can change the <b>memory_limit</b>
setting in there to something like 40M. If ye don\'t have access ye might
be able to ask yer administrator to do this for you.</li>
<li>On some PHP servers ye can create a .htaccess file in the Moodle directory
containing this line:
<blockquote><div>php_value memory_limit 40M</div></blockquote>
<p>However, on some servers this will prevent <b>all</b> PHP pages from working
(you will see errors when ye look at pages) so you\'ll have to remove the .htaccess file.</p></li>
</ol>';
$string['pathssubadmindir'] = 'A very few webhosts use /admin as a special URL for ye to access a
control panel or something. Unfortunately this conflicts with the standard location for the Moodle admin pages. Ye can fix this by
renaming the admin directory in yer installation, and putting that new name here. For example: <em>moodleadmin</em>. This will fix admin links in Moodle.';
$string['pathssubdataroot'] = 'Ye need a place where Moodle can save uploaded files. This directory should be readable AND WRITEABLE by the web server user
(usually \'nobody\' or \'apache\'), but it must not be accessible directly via the web. The installer will try to create it if doesn\'t exist.';
$string['pathssubwwwroot'] = 'Full web address where Moodle will be accessed.
It\'s not possible to access Moodle using multiple addresses.
If yer site has multiple public addresses ye must set up permanent redirects on all of them except this one.
If yer site is accessible both from Intranet and Internet use the public address here and set up DNS so that the Intranet users may use the public address too.
If the address is not correct please change the URL in yer browser to restart installation with a different value.';
$string['phpversionhelp'] = '<p>Moodle requires a PHP version of at least 4.3.0 or 5.1.0 (5.0.x has a number of known problems).</p>
<p>Ye are currently running version {$a}</p>
<p>Ye must upgrade PHP or move to a host with a newer version of PHP!<br />
(In case of 5.0.x ye could also downgrade to 4.4.x version)</p>';
$string['welcomep20'] = 'Ye are seeing this page because ye have successfully installed and
launched the <strong>{$a->packname} {$a->packversion}</strong> package in yer computer. Congratulations!';
$string['welcomep60'] = 'The following pages will lead ye through some easy to follow steps to
configure and set up <strong>Moodle</strong> on yer computer. Ye may accept the default
settings or, optionally, amend them to suit yer own needs.';
+1
View File
@@ -30,4 +30,5 @@
defined('MOODLE_INTERNAL') || die();
$string['parentlanguage'] = 'en';
$string['thislanguage'] = 'English for kids';
+3 -1
View File
@@ -33,7 +33,9 @@ defined('MOODLE_INTERNAL') || die();
$string['admindirname'] = 'Admin direktorioa';
$string['availablelangs'] = 'Hizkuntza eskuragarrien zerrenda';
$string['chooselanguagehead'] = 'Aukeratu hizkuntza bat';
$string['chooselanguagesub'] = 'Instalazio-prozesurako hizkuntza aukeratu, mesedez.';
$string['chooselanguagesub'] = 'Mesedez, aukeratu instalaziorako hizkuntza bat. Hizkuntza hori erabiliko da gunearen berezko hizkuntza gisa, baina aurrerago alda daiteke.';
$string['clialreadyconfigured'] = 'File config.php fitxategia badago, mesedez erabili admin/cli/install_database.php gune hau instalatu nahi baduzu.';
$string['clialreadyinstalled'] = 'File config.php fitxategia badago, mesedez erabili admin/cli/upgrade.php zure gunea eguneratu nahi baduzu.';
$string['databasehost'] = 'Datu-basearen ostalaria';
$string['databasename'] = 'Datu-basearen izena';
$string['dataroot'] = 'Datu-direktorioa';
+10
View File
@@ -30,5 +30,15 @@
defined('MOODLE_INTERNAL') || die();
$string['clianswerno'] = 'خ';
$string['cliansweryes'] = 'ب';
$string['cliincorrectvalueerror'] = 'خطا، مقدار نامناسب «{$a->value}» برای «{$a->option}»';
$string['cliincorrectvalueretry'] = 'مقدار نامناسب، لطفا دوباره تلاش کنید';
$string['clitypevalue'] = 'مقدار را وارد کنید';
$string['clitypevaluedefault'] = 'مقدار را وارد کنید، برای استفاده از مقدار پیش‌فرض ({$a}) کلید Enter را فشار دهید';
$string['cliunknowoption'] = 'گزینه‌های شناخته نشده:
{$a}
لطفا از گزینه <span style="direction:ltr">--help</span> استفاده کنید.';
$string['cliyesnoprompt'] = 'یکی از گزینه‌های ب (به معنای بلی) یا خ (به نشانه خیر) را تایپ کنید';
$string['environmentrequireinstall'] = 'باید نصب و فعال باشد';
$string['environmentrequireversion'] = 'نسخهٔ {$a->needed} لازم است و شما نسخهٔ {$a->current} را دارید';
+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['cliincorrectvalueretry'] = 'E cala, tovolea tale';
$string['clitypevalue'] = 'Tabaka na lewena';
$string['cliyesnoprompt'] = 'tabaka \'y\'';

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