Compare commits

...

498 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7) 0e4c5bfdbe Moodle 1.9.12 release 2011-05-09 15:59:53 +02:00
Eloy Lafuente (stronk7) 9251e27e76 weekly release 1.9.11+ 2011-05-05 00:38:37 +02:00
Eloy Lafuente (stronk7) 9330414966 Merge branch 'MDL-26937' of git://github.com/timhunt/moodle into MOODLE_19_STABLE 2011-05-02 11:37:08 +02:00
Tim Hunt 71ec5d19df MDL-26937 quiz grades report. Work-around MySQL fussiness, like for MDL-26416. 2011-04-29 12:09:05 +01:00
Tim Hunt 551a610ed1 MDL-26981 qtype_random fix restore of attempt data.
Fix worked out by Colin Campbell from colin@umn.edu. Many thanks.
2011-04-28 23:54:59 +01:00
Petr Skoda d14e8ea454 weekly release 1.9.11+ 2011-04-27 12:05:55 +02:00
Eloy Lafuente (stronk7) d58181c60b weekly release 1.9.11+ 2011-04-20 13:37:43 +02:00
Dan Marsden ac9387b049 SCORM MDL-26450 fix undefined pkgtype warning (ONLY REQUIRED IN 1.9 STABLE BRANCH) 2011-04-14 09:58:21 +12:00
Petr Skoda 8be4ad990a weekly release 1.9.11+ 2011-04-13 22:06:49 +02:00
Sam Hemelryk 032be8a19b Merge branch 'MDL-26130' of git://github.com/MaryE/moodle into MOODLE_19_STABLE 2011-04-11 11:31:38 +08:00
Eloy Lafuente (stronk7) bd49223246 Merge branch 'w15_MDL-27069_m19_httpsrequired' of git://github.com/skodak/moodle into MOODLE_19_STABLE 2011-04-11 01:35:47 +02:00
Petr Skoda 7e58c03d6c MDL-27069 fix notice when inserting images in editor 2011-04-10 21:16:24 +02:00
Mary Evans 5a76642ddf MDL-26130 css fix for orangewhite theme 2011-04-10 01:15:24 +01:00
Tony Levi 697664c813 MDL-27108: Fix invalid SQL syntax in mod/data/field/latlong 2011-04-07 10:05:47 +09:30
Petr Skoda fb8642bce5 weekly release 1.9.11+ 2011-04-06 14:55:11 +02:00
Eloy Lafuente (stronk7) d2cabfdf9b Merge branch 'MDL-20946_19_simplehistory' of git://github.com/andyjdavis/moodle into MOODLE_19_STABLE 2011-04-04 11:39:51 +02:00
Petr Skoda 0c3c77269d weekly release 2011-03-30 13:40:40 +02:00
Andrew Davis (andyjdavis) 6c41ae0a0c gradebook MDL-20946 switched from using IN to using JOIN in the quiries 2011-03-30 13:31:47 +08:00
Eloy Lafuente (stronk7) d6ed445589 Merge branch 'w13_MDL-26966_19_urlparsing' of git://github.com/skodak/moodle into MOODLE_19_STABLE 2011-03-28 19:12:04 +02:00
Petr Skoda 5a3010310b MDL-26966 improve self URL validation 2011-03-27 12:03:22 +02:00
Petr Skoda dedb3c5121 MDL-26985 new Moodle 2.1 requirements
For now only extra PHP 5.3.2 requirement compared to 2.0.
2011-03-26 22:03:13 +01:00
Petr Skoda 3215955fd0 weekly release 2011-03-23 11:32:35 +01:00
Eloy Lafuente (stronk7) 19f65e6c6b Merge branch 'm19_MDL-25770_hotpotfix' of git://github.com/danmarsden/moodle into MOODLE_19_STABLE 2011-03-21 22:52:16 +01:00
Sam Hemelryk 5b2d591bcb Cherry-picked changes for PULL-460/MDL-26557 into MOODLE_19_STABLE 2011-03-21 17:36:29 +08:00
Tim Hunt 6d276b3254 MDL-20946 fix gradebook SQL to cope with multi-role and deleted users. 2011-03-17 12:30:58 +00:00
Dan Marsden 68d3425577 Hotpot MDL-25770 - missing return - thanks to Tomasz Pawlik for report/fix 2011-03-17 15:30:45 +13:00
Petr Skoda 08bf2b2723 weekly release 2011-03-16 09:34:19 +01:00
Petr Skoda 5dce59a4cf Merge branch 'MDL-4633-m19' of git://github.com/rwijaya/moodle into MOODLE_19_STABLE 2011-03-14 17:58:46 +01:00
Eloy Lafuente (stronk7) 72250eed86 Merge branch 'w11_MDL-26634_19_ldapset' of git://github.com/skodak/moodle into MOODLE_19_STABLE 2011-03-14 16:29:02 +01:00
Eloy Lafuente (stronk7) 49e0d5d5e3 Merge branch 'MDL-19555_m19' of git://github.com/rwijaya/moodle into MOODLE_19_STABLE 2011-03-14 01:41:32 +01:00
Eloy Lafuente (stronk7) fd602f4620 MDL-9376 fix minor global use 2011-03-14 01:37:28 +01:00
Eloy Lafuente (stronk7) fb7abd481b Merge branch 's7_MDL-9376_qaforum_m19' of git://github.com/dongsheng/moodle into MOODLE_19_STABLE 2011-03-14 01:35:57 +01:00
Eloy Lafuente (stronk7) 7e06e9ff4a Merge branch 'MDL-21446_19' of git://github.com/timhunt/moodle into MOODLE_19_STABLE 2011-03-14 01:32:18 +01:00
Petr Skoda 416ea17252 MDL-26634 LDAP NTLM SSO Multiple subnet separator is not specified and people use a wrong one
Credit goes to Inaki Arenaza.
2011-03-13 10:18:02 +01:00
Aparup Banerjee f8fb37424e MDL-26757 fixed regression in glossary recent activity block url 2011-03-11 13:27:45 +08:00
Dongsheng Cai a6df2c2e5f MDL-9376, disallow student to see the other users posts in max editing time, credits to Vlas Voloshin and Charles Fulton MOODLE_19_STABLE 2011-03-11 12:25:46 +08:00
Rossiani Wijaya 04b4210605 MDL-19555: add NULL string test to format_test(). Credit goes to Matej Vela. Thanks 2011-03-11 12:14:29 +08:00
Rossiani Wijaya e1bde19170 MDL-4633: remove 'required' rule for user's profile description 2011-03-10 15:56:20 +08:00
Tim Hunt 5cf3a84aee MDL-21446 truncate >31 char worksheet names that otherwise break Excel export. 2011-03-09 14:48:24 +00:00
Petr Skoda 1c712d947a weekly release 2011-03-09 09:05:15 +01:00
Eloy Lafuente (stronk7) 1b607c2266 Merge branch 'm19_MDL-26672_aiccfix' of git://github.com/danmarsden/moodle into MOODLE_19_STABLE 2011-03-07 02:38:48 +01:00
Eloy Lafuente (stronk7) cddf3e1679 Merge branch 'MDL-26324_19' of git://github.com/timhunt/moodle into MOODLE_19_STABLE 2011-03-07 01:25:53 +01:00
Dan Marsden eb2dc3ab87 AICC MDL-26672 fix for AICC Value=0 - thanks to Matteo for fix/report 2011-03-07 10:03:04 +13:00
Petr Skoda f483e32922 MDL-26605 fix problematic mediaplugin regex matching 2011-03-05 10:04:26 +01:00
Tim Hunt 83f22aae0e MDL-26324 overall feedback problem when quiz changed to being graded out of 0 2011-03-04 17:45:03 +00:00
Petr Skoda 0e33a45653 weekly release 2011-03-03 18:25:05 +01:00
Daren Chandisingh 18174ef082 MDL-26534 allow iframes in course category descriptions 2011-02-28 09:27:11 +01:00
Eloy Lafuente (stronk7) 6720f29ccf weekly release 2011-02-23 20:04:29 +01:00
Eloy Lafuente (stronk7) 9044a8edb3 Merge branch 'MDL-26528_restore_forum_read' of git://github.com/stronk7/moodle into MOODLE_19_STABLE 2011-02-22 16:15:24 +01:00
Eloy Lafuente (stronk7) 86a8740b67 Merge branch 'MDL-26502_symbian' of git://github.com/stronk7/moodle into MOODLE_19_STABLE 2011-02-22 15:21:01 +01:00
Eloy Lafuente (stronk7) 49a1b113ad Merge branch 'MDL-25122_19' of git://github.com/timhunt/moodle into MOODLE_19_STABLE 2011-02-22 12:45:37 +01:00
Eloy Lafuente (stronk7) f733078c91 MDL-26502 check browser - fix for Symbian (backported) 2011-02-22 11:51:26 +01:00
Eloy Lafuente (stronk7) eeff6a0839 Merge branch 'MDL-26505_19' of git://github.com/timhunt/moodle into MOODLE_19_STABLE 2011-02-22 10:56:28 +01:00
Eloy Lafuente (stronk7) 9170eb5aab MDL-26528 restore - ignore wrong forum_read records 2011-02-21 16:00:41 +01:00
Martin Dougiamas 783cca4ee3 Moodle 1.9.11 release 2011-02-21 13:19:01 +01:00
Tim Hunt 49b2521492 MDL-26505 rounding problem in quiz_save_best_grade.
Note I cheated and slipped in a fix for another instance of MDL-21811 too, since I noticed it at the same time.
2011-02-18 19:34:31 +00:00
Petr Skoda 3075ec4341 emergency release 2011-02-18 19:59:18 +01:00
Petr Skoda b408c5f485 Merge branch 'MDL-21811' of git://github.com/timhunt/moodle into MOODLE_19_STABLE 2011-02-18 19:31:20 +01:00
Tim Hunt 12e4ff0d19 MDL-21811 also need to fix the rounding on the review page. 2011-02-18 18:25:28 +00:00
Tim Hunt 8d5eaee1c9 MDL-25122 Quiz review page does not check and enforce separate groups mode. 2011-02-18 17:23:41 +00:00
Petr Skoda 0c9bd492a0 Merge branch 'MDL-21811' of git://github.com/timhunt/moodle into MOODLE_19_STABLE 2011-02-18 18:00:19 +01:00
Tim Hunt db99a96d1e MDL-21811 use the un-rounded grade to display the overall feedback in the quiz reports. 2011-02-17 09:43:32 +00:00
Petr Skoda c737ead6f4 weekly release 2011-02-17 01:18:34 +01:00
Aparup Banerjee 7cc4ceae64 MDL-22970 glossary - backporting recent activity fix from 2.0.x 2011-02-15 00:48:08 +01:00
Petr Skoda af497cf64c Merge branch 'm19_MDL-26216_windowoptions' of github.com:danmarsden/moodle into MOODLE_19_STABLE 2011-02-14 21:40:23 +01:00
Petr Skoda 05d38f44cc Merge branch 'MDL-26371_distinct_text_m19' of git://github.com/stronk7/moodle into MOODLE_19_STABLE 2011-02-14 21:23:15 +01:00
Dan Marsden 776ecc8b9d SCORM MDL-26216 - prevent auto update from resetting window options 2011-02-14 17:34:44 +13:00
Eloy Lafuente (stronk7) d7ef29dcbd Merge branch 'w07_MDL-26030_19_mediafilter' of git://github.com/skodak/moodle into MOODLE_19_STABLE 2011-02-14 01:14:40 +01:00
Eloy Lafuente (stronk7) 185f71c40d MDL-26371 sql - avoid distinct + text in lesson essay and report 2011-02-13 01:45:18 +01:00
Eloy Lafuente (stronk7) 6d12bf2020 MDL-26371 sql - avoid distinct + text in security report 2011-02-13 01:30:20 +01:00
Petr Skoda 8f81bfd412 MDL-26030 fix js and attribute quoting 2011-02-12 13:29:38 +01:00
Rossiani Wijaya eabab3de5a MDL-26030_m19: fix regex in media filter and removing addslashes to non-js code 2011-02-12 13:16:30 +01:00
Petr Skoda 782d74e053 MDL-26322 always allow https in login local redirection test
This fixes problems for sites that use loginhtts where the redirection after login did not work for pages that require https such as the forgotten passowrds page.
2011-02-11 11:31:20 +01:00
Petr Skoda e7d43de4ed weekly release 2011-02-09 12:25:53 +01:00
Eloy Lafuente (stronk7) 21cec9df42 MDL-26052 data - fix various transitions that were not working ok 2011-02-04 20:06:26 +01:00
Petr Skoda 35f730f16b weekly release 2011-02-02 14:07:51 +01:00
Eloy Lafuente (stronk7) b178d86aab Merge branch 'MDL-17201_index_19' of git://github.com/andyjdavis/moodle into MOODLE_19_STABLE 2011-01-31 15:49:13 +01:00
Eloy Lafuente (stronk7) d9fe1c6aa1 Merge branch 'w05_MDL-26189_19_imse' of git://github.com/skodak/moodle into MOODLE_19_STABLE 2011-01-31 11:59:31 +01:00
Sam Hemelryk 490a186269 Merge branch 'm19_MDL-25320' of git://github.com/danmarsden/moodle into MOODLE_19_STABLE 2011-01-31 13:14:52 +08:00
Petr Skoda 886c6635e2 MDL-26189 protect imsenterprise enrol file 2011-01-30 13:57:37 +01:00
Dan Marsden c504285645 SCORM MDL-25320 removes spaces from children patterns - thanks to Ian Wright for report 2011-01-28 23:09:48 +13:00
Petr Skoda 251d6f3e6d weekly release 2011-01-25 19:37:59 +01:00
andyjdavis 73c07a1f72 profiles MDL-17201 added an index to user_info_data table 2011-01-25 15:06:32 +08:00
Petr Skoda c7bb198fe2 weekly release 2011-01-19 14:10:18 +01:00
Sam Hemelryk 093f30a3fe Merge branch 'MDL-18839_19_wip' of git://github.com/skodak/moodle into MOODLE_19_STABLE 2011-01-18 13:52:23 +08:00
Sam Hemelryk e7682e584a Merge branch 'MDL-25754_19_wip' of git://github.com/skodak/moodle into MOODLE_19_STABLE 2011-01-18 13:38:05 +08:00
Rossiani Wijaya 12e3dc19a6 MDL-25646: fixed html_writer class, get string param, remove url addslashed from regular context (only use addslashes_js if it prints for javascript. Add new string to mediaplugin file. 2011-01-14 12:02:17 +08:00
Petr Skoda fd29b2ad1c MDL-25754 improved tag sanitisation and fixed tag autocomplete 2011-01-13 22:55:52 +01:00
Petr Skoda 8f031d5431 MDL-18839 sesskey protection for RSS feed actions 2011-01-12 22:21:48 +01:00
Petr Skoda 8b085f23ca weekly release 2011-01-12 10:51:14 +01:00
Petr Skoda 6226c65506 MDL-24561 fixed missing u. prefix 2011-01-11 09:51:57 +01:00
Eloy Lafuente (stronk7) 344817fa8a Merge branch 'MDL-24561_forum_subscribe_sesskey_m19' of git://github.com/mudrd8mz/moodle into MOODLE_19_STABLE 2011-01-10 21:45:08 +01:00
Petr Skoda bffe6c274e Merge branch 'MDL-20607' of git://github.com/arborrow/moodle into MOODLE_19_STABLE 2011-01-10 14:28:55 +01:00
Dan Marsden af778921f0 SCORM MDL-25891 typo causing general exception for some SCORM objects - thanks to Hais Deakin for report/fix 2011-01-10 14:24:39 +01:00
Anthony Borrow eddf533b0a MDL-20607 - adding firstname as secondary sort criteria 2011-01-05 09:30:20 -06:00
David Mudrak be7c8bb2c2 MDL-24561 forum: require sesskey for the course-wide subscriptions - backported from 2.0
mod/forum/index.php allows to subscribe to and unsubscribe from all
forums in the course. However, sesskey was not checked here.
2011-01-05 15:58:41 +01:00
David Mudrak 0b393d6716 MDL-24561 forum subscription checks sesskey - backported from 2.0
The only case when sesskey is not available is when we came to
subscribe.php from a link in email. In that case, we display a
confirmation page that redirects back providing the sesskey.
All other links to subscribe.php are fixed now so they provide sesskey
as a parameter.
2011-01-05 15:52:25 +01:00
Petr Skoda 44ddbc657b weekly release 2011-01-05 11:53:45 +01:00
Petr Skoda d04350adeb weekly release version updated 2010-12-29 17:51:23 +01:00
Petr Skoda d1dd5f0a08 Merge branch 'MDL-25186_m19' into MOODLE_19_STABLE 2010-12-27 12:18:53 +01:00
Petr Skoda 1150662ecc MDL-25186 fixed whitespace 2010-12-27 12:18:31 +01:00
Petr Skoda 76035b1339 Merge branch 'MDL-25713_recordset' of git://github.com/andyjdavis/moodle into MOODLE_19_STABLE 2010-12-27 12:09:58 +01:00
Petr Skoda 535037f521 Merge branch 'm19-MDL-16858-fixed' of git://github.com/mouneyrac/moodle into MOODLE_19_STABLE 2010-12-27 11:50:17 +01:00
sam marshall 010758adb2 accessibility MDL-24613 Update previous change to fix back to 'top' for RTL languages 2010-12-27 11:45:53 +01:00
Petr Skoda 53c8f1056f Merge branch 'MOODLE_19_STABLE' of github.com:danmarsden/moodle into MOODLE_19_STABLE 2010-12-27 11:33:00 +01:00
Rossiani Wijaya 059518944a MDL-25186: add environmental check to recommend PHP 5.3.3 2010-12-23 11:32:36 +08:00
Eloy Lafuente (stronk7) 93b89cae76 MDL-25755 enrol ldap - avoid reserved keyword. (k) goes to Chris Myers 2010-12-23 00:23:18 +01:00
Petr Skoda 0300e588d5 Updated the 19 build version 2010-12-22 08:32:34 +01:00
Penny Leach 612d671fbc mnet MDL-16858 xmlrpc client signature verification code 2010-12-21 10:30:41 +08:00
David Mudrak 603cc5c6e6 MDLSITE-1162 .gitignore file for Moodle git mirror 2010-12-20 20:48:24 +01:00
Dongsheng Cai 009fca2bb4 category editing MDL-21671 MOODLE_19_STABLE check capability when parent category changed 2010-12-20 19:23:46 +01:00
Dongsheng Cai 5b6519cb42 MDL-21671, MOODLE_19_STABLE site level categroy manage capability when edit category, credits to Vadim Dvorovenko 2010-12-20 19:23:45 +01:00
Petr Skoda dc92d40c44 Merge branch 'mssql_database_activity' of git://github.com/stronk7/moodle into MOODLE_19_STABLE 2010-12-20 19:09:04 +01:00
Sam Hemelryk 2e490b8b29 mod-lesson MDL-22349 Fixed bug with matching lesson type and empty correct response. Kudos to Michael Lipp for the patch 2010-12-20 18:59:39 +01:00
andyjdavis 635f4f2c64 gradebook MDL-20617 replaced the missing range column on the user report 2010-12-20 16:39:30 +01:00
Petr Skoda 1d7908e7f7 MDL-25725 escape query parameter in enrol/database setup_enrolments() 2010-12-20 14:58:55 +01:00
Dongsheng Cai 42d9cf7dff MDL-14934 fixed excel time in MOODLE_19_STABLE credits to Jonathon Fowler 2010-12-20 12:30:22 +01:00
Dan Marsden cb1e1bc1ca SCORM MDL-25739 check var set before using - Thanks to Howard for report - This only affects 1.9stable, fix already in head 2010-12-20 22:29:46 +13:00
andyjdavis 49436db62a gradebook MDL-25713 switched grade_object fetch_all_helper over to use a recordset 2010-12-20 16:15:35 +08:00
Eloy Lafuente (stronk7) 7911272ea2 MDL-25692 fix sortings and edit->single navigation 2010-12-16 01:21:48 +01:00
Eloy Lafuente (stronk7) 3751c84008 MDL-25692 search working for mssql + oracle 2010-12-16 01:07:16 +01:00
Eloy Lafuente (stronk7) 5dd05d5a21 MDL-25692 make search template to work for mssql + oracle 2010-12-16 00:09:47 +01:00
Moodle Robot 3703965f09 Updated the 19 build version to 20101214 2010-12-14 00:53:48 +00:00
Moodle Robot f332f25f95 Updated the 19 build version to 20101213 2010-12-13 00:51:19 +00:00
Moodle Robot 9cfc7cce93 Updated the 19 build version to 20101212 2010-12-12 00:51:18 +00:00
Moodle Robot ba3d4c3449 Updated the 19 build version to 20101211 2010-12-11 00:51:14 +00:00
Moodle Robot da5abcf6ba Updated the 19 build version to 20101210 2010-12-10 00:52:18 +00:00
David Mudrak 4a7b983bbf MDL-21554 MNet: fixed SQL usage to check a record existence
The solution backported from 2.0 and independently suggested by Penny,
too.
2010-12-09 09:33:32 +00:00
Moodle Robot 5fa5c2ed74 Updated the 19 build version to 20101209 2010-12-09 00:52:05 +00:00
Moodle Robot 3090cf62fe Updated the 19 build version to 20101208 2010-12-08 00:51:52 +00:00
Petr Skoda 7111a5c1a9 MDL-25591 disable ajax and htmleditor in ios devices
The problem appeared after changes from MDL-16336 because ios devices were detected as Safari. This is an ugly hack, hopefully it will not create visual or JS regressions elsewhere.
2010-12-07 17:56:04 +00:00
Moodle Robot 5a5e4020fa Updated the 19 build version to 20101207 2010-12-07 00:51:57 +00:00
Moodle Robot f480eefc6b Updated the 19 build version to 20101206 2010-12-06 00:56:11 +00:00
Moodle Robot 269fe00559 Updated the 19 build version to 20101205 2010-12-05 00:53:52 +00:00
Helen Foster 4014622ee9 MDL-25550 bom removal 2010-12-04 14:51:17 +00:00
Moodle Robot 6644a83d10 Updated the 19 build version to 20101204 2010-12-04 00:55:36 +00:00
Moodle Robot 409bd4de70 Updated the 19 build version to 20101203 2010-12-03 00:51:41 +00:00
Moodle Robot dae5d69789 Updated the 19 build version to 20101202 2010-12-02 00:52:15 +00:00
Moodle Robot 56043dc26b Updated the 19 build version to 20101201 2010-12-01 00:51:14 +00:00
Moodle Robot c186da462f Updated the 19 build version to 20101130 2010-11-30 00:54:20 +00:00
Moodle Robot a4a7b67871 Updated the 19 build version to 20101129 2010-11-29 00:53:31 +00:00
Moodle Robot 3e117f45c3 Updated the 19 build version to 20101128 2010-11-28 00:52:06 +00:00
Moodle Robot 50fde5927d Updated the 19 build version to 20101127 2010-11-27 00:53:15 +00:00
Moodle Robot 2b94ab066d Updated the 19 build version to 20101126 2010-11-26 00:53:31 +00:00
Dan Marsden a2aa8324a4 SCORM MDL-25298 escape html vars correctly - thanks to Xavier Paz for report/fix merged from HEAD 2010-11-25 01:47:48 +00:00
Moodle Robot 14a4e75ccd Updated the 19 build version to 20101125 2010-11-25 00:52:18 +00:00
Petr Skoda 7eef630957 MDL-24699 minimalistic fix for the missing mnet host id when updating local user records, thanks 2010-11-24 04:03:18 +00:00
Moodle Robot 1929455fba Updated the 19 build version to 20101124 2010-11-24 00:52:46 +00:00
Moodle Robot f39ae19ef3 Updated the 19 build version to 20101123 2010-11-23 00:51:42 +00:00
Moodle Robot e9cef979c1 Updated the 19 build version to 20101122 2010-11-22 00:54:41 +00:00
Moodle Robot 9c850a8942 Updated the 19 build version to 20101121 2010-11-21 00:54:17 +00:00
Moodle Robot eb04d38327 Updated the 19 build version to 20101120 2010-11-20 01:01:34 +00:00
Moodle Robot 96eeb9812c Updated the 19 build version to 20101119 2010-11-19 00:55:45 +00:00
Rossiani Wijaya cd1f8ac253 MDL-20044: add test to prevent javascript error due to null data. 2010-11-18 09:30:33 +00:00
Rossiani Wijaya c476a2ecfc MDL-16336: add Chrome to browser identification to display HMTL editor. 2010-11-18 08:49:26 +00:00
Inaki 064f325bce auth/cas: MDL-25062 CAS authentication plugin does not validate the CAS server certificate
If we enable the server validation but don't specify a certificate file path
flag the error and don't let the user save the settings.
2010-11-18 00:58:21 +00:00
Moodle Robot b7b35426b9 Updated the 19 build version to 20101118 2010-11-18 00:50:07 +00:00
Inaki c07fcc1383 auth/cas: MDL-25062 CAS authentication plugin does not validate the CAS server certificate
The CAS protocol security model requires that you verify the cas server
certificate before you trust the answer (valid authentication and username
etc.).

Credit goes to Joachim Fritschi for reporting it and providing a patch.
2010-11-18 00:09:02 +00:00
Moodle Robot 70ec102175 Updated the 19 build version to 20101117 2010-11-17 00:50:23 +00:00
Andrew Davis 5cb39510c0 gradebook MDL-25171 made it possible to deselect all grade items when exporting grades 2010-11-16 05:37:51 +00:00
Moodle Robot 5f19bece4c Updated the 19 build version to 20101116 2010-11-16 00:51:27 +00:00
Moodle Robot 594b0a31ab Updated the 19 build version to 20101115 2010-11-15 00:50:35 +00:00
Moodle Robot e072f9a1e5 Updated the 19 build version to 20101114 2010-11-14 00:49:45 +00:00
Moodle Robot 114cda373e Updated the 19 build version to 20101113 2010-11-13 00:49:42 +00:00
Petr Skoda fd5a71b0cb MDL-21907 reverting latest change in groups api, we definitely can not make changes like this in stable and right before the release 2010-11-12 10:03:10 +00:00
Andrew Davis bdc05176e9 gradebook MDL-21907 grader report group view was being limited to groups in the course's default grouping 2010-11-12 04:04:01 +00:00
Moodle Robot 628344cb79 Updated the 19 build version to 20101112 2010-11-12 00:51:06 +00:00
Moodle Robot fcf01f3d30 Updated the 19 build version to 20101111 2010-11-11 00:51:44 +00:00
Dan Marsden eef2618dc8 MDL-25147 tidy up readme wording related to cron 2010-11-11 00:25:36 +00:00
Dan Marsden 67e13a8014 SCORM MDL-24217 correct handling of suspend icon and fix SCORM 2004 usage of cmi.core.exit - thanks to Valerian for report/fix 2010-11-10 22:22:46 +00:00
Dan Marsden ab34dd9ca9 SCORM MDL-24579 remove badly formatted debugging code - thanks to Peter Chamberlain for report. 2010-11-10 21:53:35 +00:00
Dan Marsden 89d793478f SCORM MDL-24579 fix CMILongIdentifier regex (SCORM 2004) - thanks to Peter Chamberlain for report/fix merged from HEAD 2010-11-10 21:38:18 +00:00
Dan Marsden 57512f8b54 SCORM MDL-25085 fix typo in $usertracks array - thanks to Valerian for report/fix 2010-11-10 21:08:33 +00:00
Moodle Robot e548b53474 Updated the 19 build version to 20101110 2010-11-10 00:49:03 +00:00
Aparup Banerjee 990ec2171c assignment MDL-25109 added missing sesskey check for file upload 2010-11-09 02:39:18 +00:00
Moodle Robot 1b1834e8be Updated the 19 build version to 20101109 2010-11-09 00:52:02 +00:00
Tim Hunt 54c489cb73 question bank MDL-24312 problem when deleting a course with orphaned categories.
When there was a question category whose parent had somehow been deleted from the question bank, while the child category was still there, then that gave an error because a DB query was still referring to the question_categories.courese coloumn, that was changed to contextid in moodle 1.9.

Backported to from HEAD. Fix thanks to Mahmoud Kassaei.
2010-11-08 16:00:29 +00:00
Petr Skoda 15a18acddc MDL-25053 invalid SQL syntax
postgresql requires AS when defining column aliases, credit goes to Alan Peter Carter and Brett Wilkins
2010-11-08 01:26:10 +00:00
Moodle Robot 87bf65cbb6 Updated the 19 build version to 20101108 2010-11-08 00:52:12 +00:00
Patrick Malley fbda4556a8 MDL-20757 2010-11-07 19:19:34 +00:00
Moodle Robot 81fb0527dc Updated the 19 build version to 20101107 2010-11-07 00:51:09 +00:00
Moodle Robot 193173bf1f Updated the 19 build version to 20101106 2010-11-06 00:49:55 +00:00
Moodle Robot 974d440d73 Updated the 19 build version to 20101105 2010-11-05 00:49:21 +00:00
Moodle Robot 251aa8e3b1 Updated the 19 build version to 20101104 2010-11-04 00:50:54 +00:00
Moodle Robot c536d23cd5 Updated the 19 build version to 20101103 2010-11-03 00:50:29 +00:00
Tim Hunt 9e8badd3a0 html_to_text MDL-25018 fix regression caused by be previous comment.
Thanks Eloy for spotting this.
I was worried about this happening, so I checked the diff before committing, to make sure something like this did not happen, and still Eclipse+CVS screwed it up for me. Sorry.
2010-11-02 21:50:20 +00:00
Tim Hunt 36a40748e1 MDL-25018 stop html_to_text from breaking utf-8 multibyte characters. 2010-11-02 20:03:50 +00:00
Moodle Robot 52f29243e1 Updated the 19 build version to 20101102 2010-11-02 00:50:59 +00:00
Inaki b59d5522d6 grade/report: MDL-21001 Gradebook shows ranges always
We unconditionnally set them to visible, ignoring configured settings.
Fix it.
2010-11-01 10:22:06 +00:00
Moodle Robot e239bb1734 Updated the 19 build version to 20101101 2010-11-01 00:49:34 +00:00
Moodle Robot fb94121fbc Updated the 19 build version to 20101031 2010-10-31 00:54:23 +00:00
Moodle Robot 60546676cf Updated the 19 build version to 20101030 2010-10-30 00:52:25 +00:00
Andrew Davis 7755bba3f0 gradebook MDL-24791 fixing grader report column highlighting 2010-10-29 07:06:46 +00:00
Moodle Robot 6cfe146bf7 Updated the 19 build version to 20101029 2010-10-29 00:55:16 +00:00
Rossiani Wijaya bb8c661c9d MDL-22528: fixed AJAX Course editing in Chrome and Safari. 2010-10-28 07:41:28 +00:00
Moodle Robot f7dad24fbc Updated the 19 build version to 20101028 2010-10-28 00:51:07 +00:00
Martin Dougiamas dd8a49c15e Bumping version post-release 2010-10-27 06:35:51 +00:00
Moodle Robot 75a917faee Updated the 19 build version to 20101027 2010-10-27 00:51:22 +00:00
Moodle Robot 1946377765 Updated the 19 build version to 20101026 2010-10-26 00:54:47 +00:00
Sam Marshall b085489d88 files MDL-24841 Changed require to require_once in files/index.php so it doesn't break if libraries are required elsewhere 2010-10-25 11:22:31 +00:00
Eloy Lafuente a83fefb70c MDL-24836 data - I'm idiot! Sorry! 2010-10-25 09:31:10 +00:00
Eloy Lafuente c3303a2517 MDL-24836 data - fix causing DBs with new file fields to boom updating records. Merged from 18_STABLE 2010-10-25 08:23:16 +00:00
Martin Dougiamas bd6ec36735 Bumping for 1.9.10 release 2010-10-25 06:36:35 +00:00
Moodle Robot 1036a833d9 Updated the 19 build version to 20101025 2010-10-25 00:52:24 +00:00
Petr Skoda c5fc40990b MDL-24808 2010-10-24 22:14:11 +00:00
Moodle Robot 813d4754fd Updated the 19 build version to 20101024 2010-10-24 00:55:27 +00:00
Petr Skoda ad5644829f MDL-24803 fixed tagid typo in tag correlation table update 2010-10-23 10:28:06 +00:00
Moodle Robot 120604f429 Updated the 19 build version to 20101023 2010-10-23 00:52:55 +00:00
Petr Skoda 71d49c63c4 MDL-24810 importing latest HTMLPurifier - already tested in HEAD for some time 2010-10-22 14:46:59 +00:00
Petr Skoda 9551b113bc MDL-20210 dod not stop login process when can not connect to auth/db external database 2010-10-22 09:11:55 +00:00
Moodle Robot 6989ee3a2e Updated the 19 build version to 20101022 2010-10-22 00:53:32 +00:00
Inaki 257f5e3655 auth/cas MDL-24789 phpCAS single sign-on module client needs updating due to security issues
Upgraded phpCAS to 1.1.3 (latest stable version), which fixes them.
2010-10-21 07:53:00 +00:00
Gordon Bateson 280d8c1d5d MDL-24779 mod/hotpot tidy up calls to js_value() method which escapes and encodes unicode strings for javascript 2010-10-21 03:17:30 +00:00
Moodle Robot 61225707fe Updated the 19 build version to 20101021 2010-10-21 00:58:09 +00:00
Gordon Bateson 1775e5e042 MDL-24779 mod/hotpot fix escaping of apostrophes on strings that are used within JavaScript 2010-10-20 14:41:52 +00:00
Moodle Robot 0a85771b07 Updated the 19 build version to 20101020 2010-10-20 00:48:49 +00:00
Moodle Robot 993cc5c7a3 Updated the 19 build version to 20101019 2010-10-19 00:48:28 +00:00
Sam Hemelryk 3a4546b910 course-participation-report MDL-23603 Optimised SQL, merged from HEAD 2010-10-18 04:54:25 +00:00
Moodle Robot f4c126ba1d Updated the 19 build version to 20101018 2010-10-18 00:49:12 +00:00
Moodle Robot 1773a53f62 Updated the 19 build version to 20101017 2010-10-17 00:48:14 +00:00
Petr Skoda 470559c68a MDL-20716 json PHP extension is required in Moodle 2.0 2010-10-16 18:03:34 +00:00
Petr Skoda 5467d64c2a MDL-20643 fixed login redirection from user profile 2010-10-16 17:59:35 +00:00
Moodle Robot 6d819631e9 Updated the 19 build version to 20101016 2010-10-16 00:48:54 +00:00
Aparup Banerjee 21e609d5b7 forum MDL-24638 improved forum_search_posts by passing through cm and context from forum_get_readable_forums. 2010-10-15 03:13:20 +00:00
Andrew Davis 6dbefdab52 gradebook MDL-24682 1.9 corrected a capability check that was incorrectly allowing some users to make a course scale a standard scale 2010-10-15 02:58:18 +00:00
Moodle Robot 57e5e322fc Updated the 19 build version to 20101015 2010-10-15 00:49:40 +00:00
Rossiani Wijaya 4ba226fdd0 MDL-20396:
1. remove carriage return to prevent javascript error
2. remove whitespaces.
2010-10-14 06:12:23 +00:00
Moodle Robot 5de2c6fbd3 Updated the 19 build version to 20101014 2010-10-14 00:49:29 +00:00
Petr Skoda e10317e53e MDL-20366 reverting previous commit because it breaks label indentation, sorry 2010-10-13 20:30:23 +00:00
Jenny Gray 7d2c082b1a MDL-24565 control characters stripped so xml output functions correctly
now without unicode regular expression
2010-10-13 14:07:59 +00:00
Moodle Robot b9a87c8fc0 Updated the 19 build version to 20101013 2010-10-13 00:48:20 +00:00
Petr Skoda fc32b26906 MDL-14595 more CSS styles whitelisted in KSES 2010-10-12 09:20:19 +00:00
Moodle Robot 8d34226d31 Updated the 19 build version to 20101012 2010-10-12 00:49:42 +00:00
Sam Marshall 302b1c4bec accessibility MDL-24163 Change to accesshide definition to avoid rare Safari/VoiceOver crashes 2010-10-11 15:57:17 +00:00
Aparup Banerjee dcba9ebe59 assignment MDL-24469 fixed an SQL error with get_role_users() when there are no graded roles set ( was passing in an empty array as roleid). 2010-10-11 07:43:55 +00:00
Rossiani Wijaya 6eab1a9b0c MDL-20034: add title attribute to user picture. 2010-10-11 05:43:00 +00:00
Rossiani Wijaya 42d68af1d1 MDL-19146: fixed display message history for non-admin user. 2010-10-11 02:54:28 +00:00
Moodle Robot f0542ff914 Updated the 19 build version to 20101011 2010-10-11 00:51:09 +00:00
Petr Skoda 8a436292d8 MDL-20366 mod/label output now wrapped in DIV instead of SPAN - XHTML strict fix (thanks Andrea Bicciolo) 2010-10-10 17:51:08 +00:00
Petr Skoda c1e19bd258 MDL-10782 fixed double footer when deleting glossary category 2010-10-10 10:21:28 +00:00
Moodle Robot 7ca5bce01d Updated the 19 build version to 20101010 2010-10-10 00:48:01 +00:00
Moodle Robot 7863792b6b Updated the 19 build version to 20101009 2010-10-09 00:49:03 +00:00
Moodle Robot 866827bf78 Updated the 19 build version to 20101008 2010-10-08 00:49:13 +00:00
Rossiani Wijaya f030e2a793 MDL-19927: add new plugins for ogg and ogv file and also removing some extra whitespaces within the file. 2010-10-07 08:42:46 +00:00
Sam Hemelryk d5abaa68e0 mod-resource MDL-15686 Applied patch for fix force download JS locking. Kudos Yolanda for the patch. 2010-10-07 05:40:35 +00:00
Moodle Robot b5afaf51bd Updated the 19 build version to 20101007 2010-10-07 00:48:16 +00:00
Petr Skoda 03c5a27bf4 MDL-6122 truncate_userinfo() has to use unicode aware functions 2010-10-06 19:15:31 +00:00
Petr Skoda 78da89dc64 MDL-24523 markdown text cleanup 2010-10-06 12:22:19 +00:00
David Mudrak ee8dd77f75 MDL-24530 Fixed core functions usage during early install phase when the site is not fully set up yet 2010-10-06 08:50:31 +00:00
Moodle Robot ec7e6c6de8 Updated the 19 build version to 20101006 2010-10-06 00:49:03 +00:00
jerome mouneyrac a3ed90bb6c database module MDL-24470 change 'notification' column ('data' table) default and NOT NULL. Update code for restore operation to support old backup with NULL value into 'notification'. 2010-10-05 01:56:10 +00:00
Moodle Robot 00067c196e Updated the 19 build version to 20101005 2010-10-05 00:48:39 +00:00
Moodle Robot a0459f2008 Updated the 19 build version to 20101004 2010-10-04 00:48:53 +00:00
Moodle Robot 006d30e7ac Updated the 19 build version to 20101003 2010-10-03 00:51:45 +00:00
Moodle Robot 0c32b5c061 Updated the 19 build version to 20101002 2010-10-02 00:52:30 +00:00
Andrew Davis ca664bc4e9 data MDL-24473 corrected the data table description 2010-10-01 08:09:42 +00:00
Rossiani Wijaya 3ead833be8 MDL-24258: removing white spaces. 2010-10-01 02:33:18 +00:00
Moodle Robot 44aa24d71b Updated the 19 build version to 20101001 2010-10-01 00:52:04 +00:00
Moodle Robot 4d53caffe9 Updated the 19 build version to 20100930 2010-09-30 00:52:15 +00:00
Moodle Robot 5efa1f7c65 Updated the 19 build version to 20100929 2010-09-29 00:53:51 +00:00
Petr Skoda dd4f38980c MDL-24225 fixed https login redirection - credit goes to Andrew Zoltay 2010-09-28 14:05:37 +00:00
Moodle Robot ce9830f4b7 Updated the 19 build version to 20100928 2010-09-28 00:53:22 +00:00
Moodle Robot f2cde6fe5d Updated the 19 build version to 20100927 2010-09-27 00:53:37 +00:00
Moodle Robot 8237dedfee Updated the 19 build version to 20100926 2010-09-26 00:51:35 +00:00
Moodle Robot fa8f0918f0 Updated the 19 build version to 20100925 2010-09-25 00:53:50 +00:00
Inaki eac3177bc1 auth/cas MDL-18643 CAS synchronization fails with Microsoft Active Directory
The bug was fixed in LDAP auth plugin but was not applied to CAS auth too.

Thanks to Jose Garcia for the bug report and proposed fix.
2010-09-24 12:46:46 +00:00
Inaki a727aabc50 auth/cas MDL-16168 CAS crashes if no LDAP is set up
Fix the other two potential places where CAS would crash
if no LDAP server is configured.

Thanks to Mark Nielsen for prompting me to have a deeper look at it.
2010-09-24 12:27:07 +00:00
Rossiani Wijaya 0e744d43dc MDL-18232: fixed section links error for IE8 2010-09-24 05:19:38 +00:00
Moodle Robot 09cb29fbb6 Updated the 19 build version to 20100924 2010-09-24 00:53:11 +00:00
Andrea Bicciolo f367460381 mdl-24033 - fix Daniele's reopening for 1.9 2010-09-23 11:31:43 +00:00
Rossiani Wijaya c927eb443e MDL-24258: eliminate student capability to delete their post when it exceeded the max editing time. 2010-09-23 09:10:05 +00:00
Moodle Robot b02ed89582 Updated the 19 build version to 20100923 2010-09-23 00:52:34 +00:00
Moodle Robot c3dd17d66c Updated the 19 build version to 20100922 2010-09-22 00:54:49 +00:00
Moodle Robot 06db98f7d7 Updated the 19 build version to 20100921 2010-09-21 00:52:26 +00:00
Moodle Robot a6436e6c90 Updated the 19 build version to 20100920 2010-09-20 00:51:51 +00:00
Moodle Robot f0ec46b98f Updated the 19 build version to 20100919 2010-09-19 00:53:02 +00:00
Moodle Robot 6f420fb2d6 Updated the 19 build version to 20100918 2010-09-18 00:53:31 +00:00
David Mudrak b803fa1628 NOMDL resource: fixed client side validation for file resource location
This was spotted during the work on MDL-21382. Without this fix, the
Location field is not validated against empty values.
2010-09-17 22:30:20 +00:00
David Mudrak 82b7f70bf4 MDL-21382 mform: escape invalid characters when generating javascript validation function name
This patch fixes the support for addGroupRule in cases when the element
name contains invalid characters like square brackets (that is if the
group element is an array element).

Credit goes to Hubert Chathi for the solution and the patch provided.
2010-09-17 22:29:37 +00:00
Eloy Lafuente 50978a0b6a Initial commit of dz_utf8 installer lang strings for 19_STABLE 2010-09-17 16:44:40 +00:00
Eloy Lafuente 344816b106 file installer.php was added on branch MOODLE_19_STABLE on 2010-09-17 16:44:40 +0000 2010-09-17 16:44:02 +00:00
Andrew Davis 3318054d95 gradebook MDL-23928 fixed grade history recording to correctly save the user id of the user making the change pt 2 2010-09-17 03:09:29 +00:00
Andrew Davis ca0cd9a253 gradebook MDL-23928 fixed grade history recording to correctly save the user id of the user making the change 2010-09-17 03:04:07 +00:00
Sam Hemelryk 209a25197d mod-assignment MDL-23848 Fixed regression causing group dropdowns to be ignored when viewing submissions 2010-09-17 01:44:14 +00:00
Moodle Robot 8c4d14e892 Updated the 19 build version to 20100917 2010-09-17 00:52:10 +00:00
Pierre Pichet 2f31d18184 MDL-24241 replacing !empty() by isset() 2010-09-16 23:04:58 +00:00
Andrea Bicciolo 8fa7806c77 Update according to capability change in "data_atmaxentries" function 2010-09-16 10:42:18 +00:00
Sam Hemelryk a3f2fa69b0 mod-assignment MDL-23848 Users can now view previously submit assignments if they no longer have the submit capability 2010-09-16 05:45:40 +00:00
Martin Dougiamas 0fab420435 MDL-22551 Grr fixed typo 2010-09-16 02:13:07 +00:00
Martin Dougiamas 436f4e0757 forum MDL-22551 Don't put In-Reply-To and References headers on the first post for a thread 2010-09-16 01:49:06 +00:00
Moodle Robot 86254f78ea Updated the 19 build version to 20100916 2010-09-16 00:53:19 +00:00
Moodle Robot 0da9b1ffc9 Automatic installer.php lang files by installer_builder (20100916) 2010-09-16 00:43:35 +00:00
Eloy Lafuente 28ff610968 MDL-24207 dml - fix in oracle fallabck for sequences that shouldn't be executed ever 2010-09-15 20:08:58 +00:00
Inaki 9a688af4ee auth/cas MDL-16168 CAS crashes if no LDAP is set up
Don't crash if no LDAP server is configured. This also means that
user details need to be retrieved/updated via other means.
2010-09-15 16:18:52 +00:00
Moodle Robot ae0a52faaa Updated the 19 build version to 20100915 2010-09-15 00:55:35 +00:00
Andrew Davis 76fe2687d5 gradebook MDL-22841 fixed a bug where the user report when viewing multiple students would misreport student's course totals 2010-09-14 08:32:58 +00:00
Moodle Robot e14ee4ce58 Updated the 19 build version to 20100914 2010-09-14 00:53:36 +00:00
Moodle Robot fcaa1b1078 Automatic installer.php lang files by installer_builder (20100914) 2010-09-14 00:43:51 +00:00
Eloy Lafuente 07ee3b4e29 MDL-24189 data module restore - Fix 1.x comments and ratings restore. Were missing user remappings. 2010-09-13 21:16:28 +00:00
Rossiani Wijaya 22ed3e491a MDL-20138 - convert & to ampersand symbol in Grades tooltip (for simple and full view). 2010-09-13 10:09:27 +00:00
Andrew Davis 656f1a97da data MDL-23488 made available from/to work 2010-09-13 08:39:34 +00:00
Andrea Bicciolo 9398995df6 Fix for MDL-24033 2010-09-13 07:43:06 +00:00
Moodle Robot d4bd146ab5 Updated the 19 build version to 20100913 2010-09-13 00:53:41 +00:00
Moodle Robot 90887b82ee Updated the 19 build version to 20100912 2010-09-12 00:52:21 +00:00
Moodle Robot aaf191d026 Updated the 19 build version to 20100911 2010-09-11 00:53:16 +00:00
Moodle Robot b0288f3f3a Updated the 19 build version to 20100910 2010-09-10 00:51:59 +00:00
Moodle Robot 91a59aa1d6 Updated the 19 build version to 20100909 2010-09-09 00:53:33 +00:00
Eloy Lafuente 912ecb4d73 MDL-16106 report - fix old double-column trick causing problems in backup logs. Thanks Luis! 2010-09-08 16:51:29 +00:00
Moodle Robot 50d28776fc Updated the 19 build version to 20100908 2010-09-08 00:54:18 +00:00
Moodle Robot 4becfc43c8 Updated the 19 build version to 20100907 2010-09-07 00:54:23 +00:00
Moodle Robot 16a6a4730a Updated the 19 build version to 20100906 2010-09-06 00:52:04 +00:00
Petr Skoda db3db60f7d MDL-23431 XMLDB editor fails to parse STATEMENTS properly in certain cases 2010-09-05 21:15:12 +00:00
Petr Skoda 7c48c3c060 MDL-23899 PHP Intl extension is recommended in 2.0 now because we use it for asort in textlib 2010-09-05 13:13:12 +00:00
Moodle Robot 0724fdfa75 Updated the 19 build version to 20100905 2010-09-05 00:51:52 +00:00
Moodle Robot 290c3851f1 Updated the 19 build version to 20100904 2010-09-04 00:52:09 +00:00
Inaki 29c3c0a42d MDL-23864 auth/cas Coding error: Undefined index REQUEST_URI in auth/cas/CAS/CAS.php
Patch our local copy (and record the change) while upstream fixes it (see
https://issues.jasig.org/browse/PHPCAS-81 )
2010-09-03 16:51:11 +00:00
Petr Skoda 08c5c9fd52 MDL-24043 addslashes_object() for and added default course category is insert fails, credit goes to Troy Williams <troyw@waikato.ac.nz> 2010-09-03 11:31:30 +00:00
Moodle Robot 649ec3ad84 Updated the 19 build version to 20100903 2010-09-03 00:52:48 +00:00
Moodle Robot 6bc05947bc Updated the 19 build version to 20100902 2010-09-02 00:51:56 +00:00
Moodle Robot a14e1e3933 Updated the 19 build version to 20100901 2010-09-01 00:54:24 +00:00
Moodle Robot 8e2173b1d2 Automatic installer.php lang files by installer_builder (20100901) 2010-09-01 00:43:42 +00:00
Moodle Robot 561f8bd698 Updated the 19 build version to 20100831 2010-08-31 00:53:40 +00:00
Rossiani Wijaya 3385b1702e MDL-10906 - remove the functionality to add a local file. 2010-08-30 02:17:54 +00:00
Moodle Robot 372f31d6f3 Updated the 19 build version to 20100830 2010-08-30 00:48:58 +00:00
Petr Skoda 49fbc2b157 MDL-23974 dom and xml extensions are now required - backported from HAED 2010-08-29 19:37:45 +00:00
Petr Skoda fb70228496 MDL-15057 PCRE is a required extension, looks like we do not need to add detailed feedback strings for required extensions - nice! 2010-08-29 19:28:28 +00:00
Moodle Robot 51faf98dee Updated the 19 build version to 20100829 2010-08-29 00:48:48 +00:00
Moodle Robot 5a504a9e11 Updated the 19 build version to 20100828 2010-08-28 00:48:23 +00:00
Moodle Robot 7f428b50b7 Updated the 19 build version to 20100827 2010-08-27 00:49:48 +00:00
Moodle Robot 065d0c8364 Updated the 19 build version to 20100826 2010-08-26 00:48:29 +00:00
Andrew Davis eb8f8daecb admin MDL-21011 fix a bug with the course auto-sort 2010-08-25 00:59:40 +00:00
Moodle Robot fd87f11c24 Updated the 19 build version to 20100825 2010-08-25 00:48:15 +00:00
Moodle Robot 097b999c6c Updated the 19 build version to 20100824 2010-08-24 00:49:33 +00:00
Moodle Robot ee809c7098 Updated the 19 build version to 20100823 2010-08-23 00:48:35 +00:00
Moodle Robot 180aff354a Updated the 19 build version to 20100822 2010-08-22 00:48:06 +00:00
Moodle Robot a7d4c04104 Updated the 19 build version to 20100821 2010-08-21 00:48:06 +00:00
Moodle Robot 28aadeecdc Updated the 19 build version to 20100820 2010-08-20 00:48:17 +00:00
Sam Marshall 2780a3f5fc blocks MDL-23871 blocks_have_content ignores global block visibility option 2010-08-19 14:06:03 +00:00
Moodle Robot 8f17261d25 Updated the 19 build version to 20100819 2010-08-19 00:48:33 +00:00
Moodle Robot 443528d31b Updated the 19 build version to 20100818 2010-08-18 00:48:57 +00:00
Moodle Robot 920fe9fcaf Updated the 19 build version to 20100817 2010-08-17 00:48:56 +00:00
Moodle Robot bb52365f1a Updated the 19 build version to 20100816 2010-08-16 00:47:47 +00:00
Moodle Robot 82db8939ee Updated the 19 build version to 20100815 2010-08-15 00:48:51 +00:00
Moodle Robot df33ac3d4c Automatic installer.php lang files by installer_builder (20100815) 2010-08-15 00:39:40 +00:00
Moodle Robot 49c067f1a0 Updated the 19 build version to 20100814 2010-08-14 00:48:01 +00:00
Moodle Robot 4d4084c560 Automatic installer.php lang files by installer_builder (20100814) 2010-08-14 00:38:56 +00:00
Moodle Robot 58933a99c1 Updated the 19 build version to 20100813 2010-08-13 00:47:55 +00:00
Ashley Holman 7a8868f00a MDL-23755 remove erroneous sleep() call when messages are sent
Results in big speed boost when sending messages to multiple recipients.
2010-08-12 07:07:48 +00:00
Andrew Davis 4afe9581ab gradebook MDL-22931 display more meaningful strings when configuring grade category 2010-08-12 01:32:56 +00:00
Moodle Robot 9f4b6432da Updated the 19 build version to 20100812 2010-08-12 00:48:02 +00:00
Tim Hunt a1a0d9a49d question import/export MDL-23198 extra_question_fields not handling special characters properly.
Thanks to Oleg Sychev for the fix.
2010-08-11 19:05:50 +00:00
Tim Hunt 874a2eaf55 quiz reports MDL-23161 notify(get_string('nostudentsyet')) breaking downloads. 2010-08-11 18:34:44 +00:00
Andrew Davis 9cb5d53238 gradebook MDL-19070 Added a guard to protect against a potential error 2010-08-11 07:27:35 +00:00
Moodle Robot 6c71cb9758 Updated the 19 build version to 20100811 2010-08-11 00:51:31 +00:00
Moodle Robot 08264ea23b Automatic installer.php lang files by installer_builder (20100811) 2010-08-11 00:38:25 +00:00
Petr Skoda ddff72647a MDL-23667 reverting my previous wrong patch and using original patch by Matt Clarkson, sorry for the trouble 2010-08-10 07:22:59 +00:00
Moodle Robot f8d17f7225 Updated the 19 build version to 20100810 2010-08-10 00:47:54 +00:00
Petr Skoda 5f724f2f3b MDL-23726 fixed phpdocs - credit goes to Henning Bostelmann 2010-08-09 16:19:09 +00:00
Petr Skoda 11b153215d MDL-23667 fixed unenscaped query 2010-08-09 08:08:17 +00:00
Moodle Robot 846a5fe4f1 Updated the 19 build version to 20100809 2010-08-09 00:47:08 +00:00
Moodle Robot 16023079de Updated the 19 build version to 20100808 2010-08-08 00:47:41 +00:00
Moodle Robot 7be338eca0 Updated the 19 build version to 20100807 2010-08-07 00:47:45 +00:00
Inaki b652d769bf auth/ldap MDL-23652 Error in auth_ldap_sync_users.php
We need to specify a valid user id in the call to role_assign(). And we only
have to make the call if the user has been added successfully, not
otherwise.

Also make sure we lowercase the memberuser and group distinguished names
before comparing them. Depending on the LDAP server we can get mixed case
values for the DNs, and the user may have specified the creators group/ou
name in a different case.

By the way, this has been broken for ages (since the auth cleanup in 1.8, in
2007!). It's a bit strange nobody noticed before :-O

Credit goes to Joe Chryst.
2010-08-07 00:38:15 +00:00
Inaki 7647cb357e auth/cas MDL-23645 CAS single sign-on module needs updating due to security issues
Upgraded phpCAS to 1.1.2 and fixed https://issues.jasig.org/browse/PHPCAS-73 ,
as reported by Fred Woolard in MDL-23126 (the fix will be in upstream in the
next release)

Credit goes to Johan Reinalda.
2010-08-06 21:21:25 +00:00
Tim Hunt 96666fb36a quiz delays MDL-20956 don't let overdue attempts + delays block students.
Suppose a quiz has a 60 min time limit, and an enforced delay of 60 mins between attempts.

Suppose a sudent starts an attempt, and then closes their browser, and then comes back 2 hours later. When they try to restart the quiz, it is submitted immediately by the timer.

Now they are blocked out for the next hour.

After this change, they would no longer be blocked, becuse if their attemtp had been submitted at the end of the first hour, then they would already have waited an hour.

That is, we compare the current time with both $lastattempt->timefinish + $delay and $lastattempt->timestart + $timelimit + $delay.
2010-08-06 11:41:48 +00:00
Moodle Robot dd2e755837 Updated the 19 build version to 20100806 2010-08-06 00:46:53 +00:00
Tim Hunt 8e47727dab question moving MDL-21195 add missing error message strings. 2010-08-05 17:33:09 +00:00
Tim Hunt 9e0825e908 quiz password: MDL-20779 the page that asks for the password must call print_header and print_footer, even in secure mode. 2010-08-05 15:51:40 +00:00
Tim Hunt 155ac544d5 quiz reports MDL-21262 do not work for quizzes on the front page.
This was already fixed in 2.0. A bit of a hack to make it work in 1.9 too.
Hopefully there won't be any side-effects.
2010-08-05 15:37:05 +00:00
Tim Hunt d35f34c282 qformat xml MDL-22743 questiontextformat not imported correctly since the fix for MDL-9700 went in. 2010-08-05 13:11:28 +00:00
Tim Hunt 348aae8680 quiz reports MDL-21111 Quiz duration is reported in years if Time Finish is before Time Start
Suppose you have two load-balanced servers with badly-synchronised clocks, and
a student does a really quick quiz attempt.

Then it is possible that quiz_attemtp.timestart is greater than quiz_attemtp.timefinish.
And these columns are unsigned (on MySQL) so timefinish - timestart is compulted as
a number close to 2^64, which is about 42 times the age of the universe.

Do the subtraction in PHP instead. (But we still need to compute a duration columnin PHP
because sometimes we sort on it.)
2010-08-05 12:43:15 +00:00
Tim Hunt f7046b2599 multianswer question import MDL-11326 make a better question name.
Also fix coding style in this file.
2010-08-05 12:13:29 +00:00
Moodle Robot b36082baa4 Updated the 19 build version to 20100805 2010-08-05 00:47:09 +00:00
Tim Hunt f47906fbf5 weblib MDL-22664 html_to_text should not strip images, it should replace them by their alt text.
Also, an new optional argument to html_to_text to control word-wrapping.
2010-08-04 17:39:56 +00:00
Moodle Robot 791325ae6c Updated the 19 build version to 20100804 2010-08-04 00:47:40 +00:00
Tim Hunt 981a7785be quiz overview report MDL-23377 can't delete attempts when there are no students.
Actually, reviewing this, I noticed some other security checks were missing, for
example we should ensure the users can only delete attempts belonging to this quiz!
2010-08-03 13:15:28 +00:00
Tim Hunt bed436f084 quiz overview MDL-23377 whitespace cleanup, before doing the real fix. 2010-08-03 12:54:24 +00:00
Tim Hunt e9686d7015 qtype shortanswer MDL-20380 small refactoring to help subclasses. Thanks to Oleg Sychev. 2010-08-03 10:39:54 +00:00
Moodle Robot 8427722a9e Updated the 19 build version to 20100803 2010-08-03 00:47:14 +00:00
Moodle Robot 961f188766 Automatic installer.php lang files by installer_builder (20100803) 2010-08-03 00:38:40 +00:00
Tim Hunt 2477185155 grader report NOBUG strange 'null' tooltip sometimes appeard in IE. 2010-08-02 16:33:29 +00:00
Moodle Robot cebf5c6673 Updated the 19 build version to 20100802 2010-08-02 00:47:30 +00:00
Petr Skoda e19e3b6e9e MDL-22508 fixed deprecated wiki text formating pointing to nonexistent function 2010-08-01 10:03:38 +00:00
Moodle Robot ebe4e916f1 Updated the 19 build version to 20100801 2010-08-01 00:50:33 +00:00
Moodle Robot 34ab2f0006 Updated the 19 build version to 20100731 2010-07-31 00:51:13 +00:00
Andrew Davis 9ab33a1328 gradebook MDL-23577 made grade_update_outcomes() return a success/failure flag 2010-07-30 06:46:32 +00:00
Moodle Robot 1b8ee2a01b Updated the 19 build version to 20100730 2010-07-30 00:50:10 +00:00
Moodle Robot 2f2607a256 Updated the 19 build version to 20100729 2010-07-29 00:48:07 +00:00
Tim Hunt e8a63fdaba MDL-23560 questions import/export. PHP5 protected had been comitted to the 1.9 branch. Sorry. 2010-07-28 14:18:37 +00:00
David Mudrak 51b2bf5ab1 MDL-21845 multilang filter applied to custom field labels in user profile 2010-07-28 09:41:54 +00:00
Moodle Robot 0af9124a00 Updated the 19 build version to 20100728 2010-07-28 00:47:07 +00:00
Moodle Robot 4bfc5e542e Updated the 19 build version to 20100727 2010-07-27 00:47:40 +00:00
Moodle Robot 96c20af86a Automatic installer.php lang files by installer_builder (20100727) 2010-07-27 00:38:41 +00:00
David Mudrak e5bc3566e0 NOMDL assignment: fixed recent activity report for separate groups mode
There were two typos here. The first one ($cm->userid) led to incorrect
groups list. But the second one ($interset) caused that the intersection
of the group lists was never used. I just spotted this during copy &
pasting into workshop 2.0
Also fixed the heading size to what other modules use.
2010-07-26 21:27:24 +00:00
Moodle Robot d4922edcaf Updated the 19 build version to 20100726 2010-07-26 00:47:22 +00:00
Petr Skoda a2f5e222b7 MDL-22871 fixed detection of local guest account, it must have the local mnet id 2010-07-25 17:52:53 +00:00
Moodle Robot 9bea72dcb9 Updated the 19 build version to 20100725 2010-07-25 00:47:10 +00:00
Moodle Robot 960e55c3df Updated the 19 build version to 20100724 2010-07-24 00:47:40 +00:00
Sam Hemelryk d9b5ed15b6 quiz-report-grading MDL-20724 Fixed display of table when no results are available due to firstname/surname filtering 2010-07-23 06:07:33 +00:00
Moodle Robot ce0e1f248d Updated the 19 build version to 20100723 2010-07-23 00:47:33 +00:00
Dan Marsden 039d39243e SCORM MDL-21333 remove link to allow manual opening of window as JS communication can fail and no grades are reported from the object. Remove old strings no longer required. merged from HEAD 2010-07-22 02:20:11 +00:00
Moodle Robot f467b170b9 Updated the 19 build version to 20100722 2010-07-22 00:47:19 +00:00
Moodle Robot f4f421fa84 Updated the 19 build version to 20100721 2010-07-21 00:50:12 +00:00
Moodle Robot 7874175e2c Automatic installer.php lang files by installer_builder (20100721) 2010-07-21 00:38:49 +00:00
Moodle Robot 4678c59ea6 Updated the 19 build version to 20100720 2010-07-20 00:48:19 +00:00
Moodle Robot 454787d14e Updated the 19 build version to 20100719 2010-07-19 00:46:52 +00:00
Moodle Robot ba77ab80e0 Updated the 19 build version to 20100718 2010-07-18 00:46:53 +00:00
Moodle Robot f665b0bb4a Automatic installer.php lang files by installer_builder (20100718) 2010-07-18 00:37:58 +00:00
Dan Marsden c35d76a066 SCORM MDL-21568 fix regression merged from head 2010-07-17 06:47:04 +00:00
Moodle Robot e13b7dc4be Updated the 19 build version to 20100717 2010-07-17 00:47:16 +00:00
Moodle Robot 9978722410 Updated the 19 build version to 20100716 2010-07-16 00:47:22 +00:00
Petr Skoda 29a61a2c15 MDL-23222 marking spl as required php ext 2010-07-15 18:36:42 +00:00
Moodle Robot 04ea8275ff Updated the 19 build version to 20100715 2010-07-15 00:47:35 +00:00
Moodle Robot f50e20a23b Updated the 19 build version to 20100714 2010-07-14 00:47:29 +00:00
Moodle Robot ef20b03596 Updated the 19 build version to 20100713 2010-07-13 00:48:43 +00:00
Moodle Robot a24b47ce8f Updated the 19 build version to 20100712 2010-07-12 00:46:35 +00:00
Moodle Robot d5408b8821 Updated the 19 build version to 20100711 2010-07-11 00:46:48 +00:00
Petr Skoda f6372807e0 MDL-23126 fixed incorrect method call, credit goes to Fred Woolard 2010-07-10 12:21:46 +00:00
Dan Marsden ab911906a2 SCORM MDL-23119 allowing extra characters in CMIIdentifier - this is outside the ADL Spec but it seems to be ok to extend this and allow more characters than is specified by ADL 2010-07-10 08:17:44 +00:00
Moodle Robot 6655d8038b Updated the 19 build version to 20100710 2010-07-10 00:46:20 +00:00
Moodle Robot d979e7a72c Automatic installer.php lang files by installer_builder (20100710) 2010-07-10 00:37:35 +00:00
Moodle Robot 3ea0250389 Updated the 19 build version to 20100709 2010-07-09 00:46:25 +00:00
Moodle Robot b92015b342 Automatic installer.php lang files by installer_builder (20100709) 2010-07-09 00:37:34 +00:00
Dan Marsden a19dd8f9d2 SCORM MDL-19442 - remove tab, replace with spaces. 2010-07-08 22:40:37 +00:00
Piers Harding 35332cda8e MDL-19442 - fix type cast of values for gradebook calculations 2010-07-08 18:15:10 +00:00
Dan Marsden d29c037725 SCORM MDL-21568 - use correct storing of grading method - remove old references to bad calls. thanks to Bruce Cota for report/patch - merged from HEAD 2010-07-08 11:49:31 +00:00
Dan Marsden 119fff55dd SCORM MDL-22423 don't include empty raw scores from assets when calculating grade merged from HEAD 2010-07-08 09:48:12 +00:00
Martin Dougiamas b8ebff5722 MDL-22964 XMLRPC no longer required. Merged from HEAD 2010-07-08 09:07:17 +00:00
Moodle Robot 08c5c11998 Updated the 19 build version to 20100708 2010-07-08 00:46:38 +00:00
Moodle Robot 245f03b768 Automatic installer.php lang files by installer_builder (20100708) 2010-07-08 00:37:50 +00:00
Moodle Robot 1bd8b2306e Updated the 19 build version to 20100707 2010-07-07 00:46:56 +00:00
Gordon Bateson 0e3973f02a mod/hotpot MDL-17702: fix validation error on nested class="logininfo" elements 2010-07-06 08:06:32 +00:00
Martin Dougiamas 6264006089 MDL-15976 Merging Taiwan change from HEAD 2010-07-06 06:58:27 +00:00
Dan Marsden ad654ec04e NOBUG SCORM fix location of icon.gif 2010-07-06 03:39:41 +00:00
Moodle Robot 2d81fc0898 Updated the 19 build version to 20100706 2010-07-06 00:46:59 +00:00
Tim Hunt d256e1c021 quiz NOBUG Turn off autocomplete on the quiz form in a way that actually works.
See http://moodle.org/mod/forum/discuss.php?d=153419 for dicussion.
2010-07-05 21:55:25 +00:00
Petr Skoda 94c1fe8096 MDL-23097 latest htmlpurifier 4.1.1 2010-07-05 21:10:51 +00:00
Moodle Robot 60e9031391 Updated the 19 build version to 20100705 2010-07-05 00:46:56 +00:00
Moodle Robot 3098a1570f Updated the 19 build version to 20100704 2010-07-04 00:46:48 +00:00
Moodle Robot cca7a6dd68 Updated the 19 build version to 20100703 2010-07-03 00:46:13 +00:00
Tim Hunt 6ab47dd350 question import/export: MDL-22100 ' / etc. in category names confuse the import/export. 2010-07-02 13:36:50 +00:00
Tim Hunt 0b76235280 file testimportexport.php was added on branch MOODLE_19_STABLE on 2010-07-02 13:36:50 +0000 2010-07-02 13:36:49 +00:00
Moodle Robot 55ffc77cc6 Updated the 19 build version to 20100702 2010-07-02 00:45:21 +00:00
Moodle Robot c1bbd6a05c Automatic installer.php lang files by installer_builder (20100702) 2010-07-02 00:37:01 +00:00
Moodle Robot 7bde173381 Updated the 19 build version to 20100701 2010-07-01 00:46:16 +00:00
Dan Marsden c8642dc921 MNET MDL-20660 fix regression caused by previous commit - move lang strings to tabs.php 2010-06-30 01:04:51 +00:00
Moodle Robot c8cb29c92a Updated the 19 build version to 20100630 2010-06-30 00:46:26 +00:00
Moodle Robot 41d9ee90d5 Updated the 19 build version to 20100629 2010-06-29 00:46:17 +00:00
Moodle Robot 2244cc3a54 Automatic installer.php lang files by installer_builder (20100629) 2010-06-29 00:37:01 +00:00
David Mudrak 664917cca0 MNet fixed SQL bug in remote enrolments synchronisation 2010-06-28 22:12:37 +00:00
David Mudrak 57793dba2a MNet enrol/mnet/enrol.php/available_courses returns wrong array key for default role name in some cases 2010-06-28 22:12:17 +00:00
Martin Dougiamas 820603ef70 MDL-22964 XML-RPC is now required in 2.0. We need it for hub communication, and it's useful for web services and Moodle networking 2010-06-28 07:50:28 +00:00
Moodle Robot a0d7ca9b3f Updated the 19 build version to 20100628 2010-06-28 00:45:28 +00:00
Dan Marsden 7845c53359 SCORM MDL-21306 invalid management of Mastery Score - thanks to Matteo Scaramuccia for the report/patch merged from HEAD 2010-06-27 23:49:58 +00:00
Dan Marsden efefda0c5f SCORM MDL-12834 add link for returning to course page if pop-up window used merged from HEAD 2010-06-27 22:14:30 +00:00
Piers Harding b6ec0e7940 MDL-21761 - fix the statefulness of saving dataelements in scorm api 1.2 2010-06-27 22:13:47 +00:00
Moodle Robot 939c648820 Updated the 19 build version to 20100627 2010-06-27 00:45:39 +00:00
Moodle Robot f7d55f0aaf Updated the 19 build version to 20100626 2010-06-26 00:46:46 +00:00
Dan Marsden a0ad0d2515 SCORM MDL-21492 don't skip view if user is able to view reports - thanks to valerian for report/patch merged from HEAD 2010-06-25 10:16:25 +00:00
Dan Marsden 1a95986243 SCORM MDL-22741 add missing restore code - thanks to Michael Avelar for patch merged from HEAD 2010-06-25 08:17:49 +00:00
Moodle Robot ce3a6c788f Updated the 19 build version to 20100625 2010-06-25 00:45:58 +00:00
Dan Marsden ae53b6879f SCORM MDL-21551 fix calculation for when to run auto update everyday - thanks to Phillip Franks for the report/fix merged from HEAD 2010-06-24 08:06:57 +00:00
Dan Marsden 48cbcd8df5 SCORM MDL-21551 bug with 1.9 branch and update frequency - using wrong values - thanks to Phillip Franks for report and fix 2010-06-24 07:59:49 +00:00
Dan Marsden 98bad24a00 SCORM MDL-17891 fix loss of session data - thanks to Ron and Matteo for report/fixes missed fix for LMSCommit merged from HEAD 2010-06-24 02:26:12 +00:00
Dan Marsden 63a5affbda SCORM MDL-17891 fix loss of session data - thanks to Ron and Matteo for report/fixes merged from HEAD 2010-06-24 02:21:15 +00:00
Dan Marsden f30f961fa1 SCORM MDL-21333 modify way link appears if popup does not load to prevent SCORM from loading and not being able to communicate with API - thanks to Matteo Scaramuccia for report/fix merged from HEAD 2010-06-24 02:02:35 +00:00
Dan Marsden 6ab52c7ee4 SCORM MDL-22168 fix accidental revert - set start time of SCO correctly merged from HEAD 2010-06-24 00:49:52 +00:00
Moodle Robot 128e8c54bd Updated the 19 build version to 20100624 2010-06-24 00:45:44 +00:00
Dan Marsden 1f992ca3fd SCORM MDL-22340 use full path for includes. thanks to Valerian for report/patch merged from HEAD 2010-06-23 23:13:18 +00:00
Dan Marsden da98ba3d73 SCORM Gradebook MDL-22332 add missing grade file to redirect to report page - thanks to Valerian for report/patch merged from HEAD 2010-06-23 22:53:21 +00:00
Tim Hunt 9b312b9402 quiz global settings: MDL-22808 Cannot turn adaptive mode on globally.
Because of a missing constant definition.
2010-06-23 20:14:27 +00:00
Tim Hunt b312f97929 quiz reports MDL-22847 Cannot delete quiz attempts when a group is selected. 2010-06-23 20:09:07 +00:00
Tim Hunt 98a38a3994 quiz reports: Fix debug warning. 2010-06-23 19:59:51 +00:00
Moodle Robot 0402d10e22 Updated the 19 build version to 20100623 2010-06-23 00:46:40 +00:00
Moodle Robot e0ce29da98 Updated the 19 build version to 20100622 2010-06-22 00:46:01 +00:00
Tim Hunt 7038c4c371 NOBUG two more broken $Id$s 2010-06-21 21:14:48 +00:00
Tim Hunt adca4b84cc NOBUG Fix broken $Id$ tag.
Of course $Id$ tags are fundamentally broken, but ...
2010-06-21 21:08:56 +00:00
Moodle Robot 75c9ffa2b4 Updated the 19 build version to 20100621 2010-06-21 00:45:49 +00:00
Helen Foster f93086848c MDL-22842 typo fix thanks to Stuart Mealor 2010-06-20 10:10:09 +00:00
Moodle Robot b384f6ac72 Updated the 19 build version to 20100620 2010-06-20 00:45:17 +00:00
Moodle Robot 7a4b44c8f2 Updated the 19 build version to 20100619 2010-06-19 00:45:58 +00:00
Moodle Robot 7e0882cb35 Updated the 19 build version to 20100618 2010-06-18 00:45:40 +00:00
David Mudrak c36671d72c NOBUG: improved check of user context existence
When importing users from backup, their CONTEXT_USER level context is
not created yet. Therefore, make_context_subobj() creates $user->context
object here with empty values. So we have to call full
get_context_instance() here to create the context.
2010-06-17 21:02:36 +00:00
David Mudrak c17e376337 NOBUG proper checking the value of checkbox elements
Without this patch, PHP generates notices as the variables representing
unchecked checkboxes are not defined at all in $data object.
2010-06-17 20:15:26 +00:00
Moodle Robot d57599c1e1 Updated the 19 build version to 20100617 2010-06-17 00:46:14 +00:00
Moodle Robot 73c5bebd14 Updated the 19 build version to 20100616 2010-06-16 00:45:53 +00:00
Moodle Robot 27f466ddae Updated the 19 build version to 20100615 2010-06-15 00:45:52 +00:00
Moodle Robot a7364f8f2d Updated the 19 build version to 20100614 2010-06-14 00:45:36 +00:00
Moodle Robot 0379df566f Updated the 19 build version to 20100613 2010-06-13 00:45:48 +00:00
Eloy Lafuente 8edf9bc7fe MDL-22740 import - fixed regression introduced by MDL-19880 2010-06-12 10:10:49 +00:00
Moodle Robot 95f44f8de7 Updated the 19 build version to 20100612 2010-06-12 00:46:39 +00:00
Moodle Robot db302c8414 Updated the 19 build version to 20100611 2010-06-11 00:46:24 +00:00
Gordon Bateson d666c843b1 mod/hotpot MDL-22726 fix importing of intructions from a Hot Potatoes quiz file into the Moodle question bank 2010-06-10 23:37:23 +00:00
Moodle Robot df77129ed9 Bumping post 1.9.9 2010-06-10 15:02:10 +00:00
Tim Hunt 69312b4f9c question restore: MDL-22720 silly typo in question restore.
Thanks to Vadim Dvorovenko for finding and fixing this.
2010-06-10 14:58:37 +00:00
Moodle Robot ee7ee73aa4 Updated the 19 build version to 20100610 2010-06-10 00:45:30 +00:00
Moodle Robot 0e4acd26ca Updated the 19 build version to 20100609 2010-06-09 00:45:47 +00:00
Martin Dougiamas 040d304d0f MDL-19880 Fixed a potential memory overflow problem with lots of courses 2010-06-08 06:38:18 +00:00
244 changed files with 5976 additions and 4715 deletions
+27
View File
@@ -0,0 +1,27 @@
# This file specifies intentionally untracked files that all Moodle git
# repositories should ignore. It is recommended not to modify this file in your
# local clone. Instead, use .git/info/exclude and add new records there as
# needed.
#
# Example: if you deploy a contributed plugin mod/foobar into your site, put
# the following line into .git/info/exclude file in your Moodle clone:
# /mod/foobar/
#
# See gitignore(5) man page for more details
#
/config.php
/lib/editor/tinymce/extra/tools/temp/
*~
*.swp
/tags
/TAGS
/cscope.*
/.patches/
/.idea/
/nbproject/
CVS
.DS_Store
/.settings/
/.project
/.buildpath
/.cache
+139
View File
@@ -185,6 +185,8 @@
<ON_CHECK message="ctyperecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
</PHP_EXTENSIONS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="question/upgrade.php" function="question_check_no_rqp_questions" level="optional">
@@ -282,6 +284,24 @@
<ON_CHECK message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_CHECK message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="optional">
<FEEDBACK>
<ON_CHECK message="intlrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="40M" level="required">
@@ -301,6 +321,125 @@
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="lib/customcheckslib.php" function="php_check_php533" level="optional">
<FEEDBACK>
<ON_CHECK message="php533warning" />
</FEEDBACK>
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="2.1" requires="1.9">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mysql" version="5.0.25">
<FEEDBACK>
<ON_ERROR message="mysql416required" />
</FEEDBACK>
</VENDOR>
<VENDOR name="postgres" version="8.3" />
<VENDOR name="mssql" version="9.0" />
<VENDOR name="odbc_mssql" version="9.0" />
<VENDOR name="mssql_n" version="9.0" />
<VENDOR name="oracle" version="10.2" />
<VENDOR name="sqlite" version="2.0" />
</DATABASE>
<PHP version="5.3.2" level="required">
</PHP>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_CHECK message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="optional">
<FEEDBACK>
<ON_CHECK message="mbstringrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_CHECK message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="optional">
<FEEDBACK>
<ON_CHECK message="opensslrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlrpc" level="optional">
<FEEDBACK>
<ON_CHECK message="xmlrpcrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="optional">
<FEEDBACK>
<ON_CHECK message="gdrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_CHECK message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_CHECK message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="optional">
<FEEDBACK>
<ON_CHECK message="intlrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="40M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="safe_mode" value="0" level="optional">
<FEEDBACK>
<ON_CHECK message="settingsafemode" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+1 -1
View File
@@ -130,7 +130,7 @@
a.courseid
FROM
{$CFG->prefix}user u
LEFT JOIN
JOIN
{$CFG->prefix}mnet_enrol_assignments a
ON
a.userid = u.id AND a.courseid={$courseid}
+4
View File
@@ -7,6 +7,10 @@
if (!defined('MOODLE_INTERNAL')) {
die('Direct access to this script is forbidden.'); // It must be included from a Moodle page
}
$strmnetservices = get_string('mnetservices', 'mnet');
$strmnetlog = get_string('mnetlog', 'mnet');
$strmnetedithost = get_string('reviewhostdetails', 'mnet');
$strmnetthemes = get_string('mnetthemes', 'mnet');
$logurl = $CFG->wwwroot.
'/course/report/log/index.php?chooselog=1&amp;showusers=1&amp;showcourses=1&amp;host_course='.$mnet_peer->id.
+1 -1
View File
@@ -93,7 +93,7 @@
print_simple_box_start('center');
/// First, me get all the distinct backups for that course in backup_log
$executions = get_records_sql("SELECT DISTINCT laststarttime,laststarttime
$executions = get_records_sql("SELECT DISTINCT laststarttime
FROM {$CFG->prefix}backup_log
WHERE courseid = '$courseid'
ORDER BY laststarttime DESC");
+4 -4
View File
@@ -1050,8 +1050,7 @@ function report_security_check_riskadmin($detailed=false) {
AND (sc.path = c.path OR sc.path LIKE ".sql_concat('c.path', "'/%'")." OR c.path LIKE ".sql_concat('sc.path', "'/%'").")
AND u.id = ra.userid AND u.deleted = 0
AND ra.contextid = sc.id AND ra.roleid = rc.roleid AND ra.contextid <> ".SYSCONTEXTID."
GROUP BY u.id, u.firstname, u.lastname, u.picture, u.imagealt, u.email, ra.contextid, ra.roleid
ORDER BY u.lastname, u.firstname";
GROUP BY u.id, u.firstname, u.lastname, u.picture, u.imagealt, u.email, ra.contextid, ra.roleid";
$unsupcount = count_records_sql("SELECT COUNT('x') FROM ($sqlunsup) unsup");
@@ -1077,6 +1076,7 @@ function report_security_check_riskadmin($detailed=false) {
$result->info = get_string('check_riskadmin_warning', 'report_security', $a);
if ($detailed) {
$sqlunsup .= " ORDER BY u.lastname, u.firstname";
$rs = get_recordset_sql($sqlunsup);
$users = array();
while ($user = rs_fetch_next_record($rs)) {
@@ -1113,13 +1113,13 @@ function report_security_check_riskbackup($detailed=false) {
$syscontext = get_context_instance(CONTEXT_SYSTEM);
$systemroles = get_records_sql(
"SELECT DISTINCT r.*
"SELECT DISTINCT r.id, r.name, r.shortname, r.sortorder
FROM {$CFG->prefix}role r
JOIN {$CFG->prefix}role_capabilities rc ON rc.roleid = r.id
WHERE rc.capability = 'moodle/backup:userinfo' AND rc.contextid = $syscontext->id AND rc.permission = ".CAP_ALLOW."");
$overriddenroles = get_records_sql(
"SELECT DISTINCT r.*, rc.contextid
"SELECT DISTINCT r.id, r.name, r.shortname, r.sortorder, rc.contextid
FROM {$CFG->prefix}role r
JOIN {$CFG->prefix}role_capabilities rc ON rc.roleid = r.id
WHERE rc.capability = 'moodle/backup:userinfo' AND rc.contextid <> $syscontext->id AND rc.permission = ".CAP_ALLOW."");
+1531 -1617
View File
File diff suppressed because it is too large Load Diff
-190
View File
@@ -1,190 +0,0 @@
<?php
/**
* @file CAS/PGTStorage/pgt-db.php
* Basic class for PGT database storage
*/
/**
* @class PGTStorageDB
* The PGTStorageDB class is a class for PGT database storage. An instance of
* this class is returned by CASClient::SetPGTStorageDB().
*
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
*
* @ingroup internalPGTStorageDB
*/
class PGTStorageDB extends PGTStorage
{
/**
* @addtogroup internalPGTStorageDB
* @{
*/
/**
* a string representing a PEAR DB URL to connect to the database. Written by
* PGTStorageDB::PGTStorageDB(), read by getURL().
*
* @hideinitializer
* @private
*/
var $_url='';
/**
* This method returns the PEAR DB URL to use to connect to the database.
*
* @return a PEAR DB URL
*
* @private
*/
function getURL()
{
return $this->_url;
}
/**
* The handle of the connection to the database where PGT's are stored. Written by
* PGTStorageDB::init(), read by getLink().
*
* @hideinitializer
* @private
*/
var $_link = null;
/**
* This method returns the handle of the connection to the database where PGT's are
* stored.
*
* @return a handle of connection.
*
* @private
*/
function getLink()
{
return $this->_link;
}
/**
* The name of the table where PGT's are stored. Written by
* PGTStorageDB::PGTStorageDB(), read by getTable().
*
* @hideinitializer
* @private
*/
var $_table = '';
/**
* This method returns the name of the table where PGT's are stored.
*
* @return the name of a table.
*
* @private
*/
function getTable()
{
return $this->_table;
}
// ########################################################################
// DEBUGGING
// ########################################################################
/**
* This method returns an informational string giving the type of storage
* used by the object (used for debugging purposes).
*
* @return an informational string.
* @public
*/
function getStorageType()
{
return "database";
}
/**
* This method returns an informational string giving informations on the
* parameters of the storage.(used for debugging purposes).
*
* @public
*/
function getStorageInfo()
{
return 'url=`'.$this->getURL().'\', table=`'.$this->getTable().'\'';
}
// ########################################################################
// CONSTRUCTOR
// ########################################################################
/**
* The class constructor, called by CASClient::SetPGTStorageDB().
*
* @param $cas_parent the CASClient instance that creates the object.
* @param $user the user to access the data with
* @param $password the user's password
* @param $database_type the type of the database hosting the data
* @param $hostname the server hosting the database
* @param $port the port the server is listening on
* @param $database the name of the database
* @param $table the name of the table storing the data
*
* @public
*/
function PGTStorageDB($cas_parent,$user,$password,$database_type,$hostname,$port,$database,$table)
{
phpCAS::traceBegin();
// call the ancestor's constructor
$this->PGTStorage($cas_parent);
if ( empty($database_type) ) $database_type = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE_TYPE;
if ( empty($hostname) ) $hostname = CAS_PGT_STORAGE_DB_DEFAULT_HOSTNAME;
if ( $port==0 ) $port = CAS_PGT_STORAGE_DB_DEFAULT_PORT;
if ( empty($database) ) $database = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE;
if ( empty($table) ) $table = CAS_PGT_STORAGE_DB_DEFAULT_TABLE;
// build and store the PEAR DB URL
$this->_url = $database_type.':'.'//'.$user.':'.$password.'@'.$hostname.':'.$port.'/'.$database;
// XXX should use setURL and setTable
phpCAS::traceEnd();
}
// ########################################################################
// INITIALIZATION
// ########################################################################
/**
* This method is used to initialize the storage. Halts on error.
*
* @public
*/
function init()
{
phpCAS::traceBegin();
// if the storage has already been initialized, return immediatly
if ( $this->isInitialized() )
return;
// call the ancestor's method (mark as initialized)
parent::init();
//include phpDB library (the test was introduced in release 0.4.8 for
//the integration into Tikiwiki).
if (!class_exists('DB')) {
include_once('DB.php');
}
// try to connect to the database
$this->_link = DB::connect($this->getURL());
if ( DB::isError($this->_link) ) {
phpCAS::error('could not connect to database ('.DB::errorMessage($this->_link).')');
}
var_dump($this->_link);
phpCAS::traceBEnd();
}
/** @} */
}
?>
+282 -248
View File
@@ -1,249 +1,283 @@
<?php
/**
* @file CAS/PGTStorage/pgt-file.php
* Basic class for PGT file storage
*/
/**
* @class PGTStorageFile
* The PGTStorageFile class is a class for PGT file storage. An instance of
* this class is returned by CASClient::SetPGTStorageFile().
*
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
*
* @ingroup internalPGTStorageFile
*/
class PGTStorageFile extends PGTStorage
{
/**
* @addtogroup internalPGTStorageFile
* @{
*/
/**
* a string telling where PGT's should be stored on the filesystem. Written by
* PGTStorageFile::PGTStorageFile(), read by getPath().
*
* @private
*/
var $_path;
/**
* This method returns the name of the directory where PGT's should be stored
* on the filesystem.
*
* @return the name of a directory (with leading and trailing '/')
*
* @private
*/
function getPath()
{
return $this->_path;
}
/**
* a string telling the format to use to store PGT's (plain or xml). Written by
* PGTStorageFile::PGTStorageFile(), read by getFormat().
*
* @private
*/
var $_format;
/**
* This method returns the format to use when storing PGT's on the filesystem.
*
* @return a string corresponding to the format used (plain or xml).
*
* @private
*/
function getFormat()
{
return $this->_format;
}
// ########################################################################
// DEBUGGING
// ########################################################################
/**
* This method returns an informational string giving the type of storage
* used by the object (used for debugging purposes).
*
* @return an informational string.
* @public
*/
function getStorageType()
{
return "file";
}
/**
* This method returns an informational string giving informations on the
* parameters of the storage.(used for debugging purposes).
*
* @return an informational string.
* @public
*/
function getStorageInfo()
{
return 'path=`'.$this->getPath().'\', format=`'.$this->getFormat().'\'';
}
// ########################################################################
// CONSTRUCTOR
// ########################################################################
/**
* The class constructor, called by CASClient::SetPGTStorageFile().
*
* @param $cas_parent the CASClient instance that creates the object.
* @param $format the format used to store the PGT's (`plain' and `xml' allowed).
* @param $path the path where the PGT's should be stored
*
* @public
*/
function PGTStorageFile($cas_parent,$format,$path)
{
phpCAS::traceBegin();
// call the ancestor's constructor
$this->PGTStorage($cas_parent);
if (empty($format) ) $format = CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT;
if (empty($path) ) $path = CAS_PGT_STORAGE_FILE_DEFAULT_PATH;
// check that the path is an absolute path
if (getenv("OS")=="Windows_NT"){
if (!preg_match('`^[a-zA-Z]:`', $path)) {
phpCAS::error('an absolute path is needed for PGT storage to file');
}
}
else
{
if ( $path[0] != '/' ) {
phpCAS::error('an absolute path is needed for PGT storage to file');
}
// store the path (with a leading and trailing '/')
$path = preg_replace('|[/]*$|','/',$path);
$path = preg_replace('|^[/]*|','/',$path);
}
$this->_path = $path;
// check the format and store it
switch ($format) {
case CAS_PGT_STORAGE_FILE_FORMAT_PLAIN:
case CAS_PGT_STORAGE_FILE_FORMAT_XML:
$this->_format = $format;
break;
default:
phpCAS::error('unknown PGT file storage format (`'.CAS_PGT_STORAGE_FILE_FORMAT_PLAIN.'\' and `'.CAS_PGT_STORAGE_FILE_FORMAT_XML.'\' allowed)');
}
phpCAS::traceEnd();
}
// ########################################################################
// INITIALIZATION
// ########################################################################
/**
* This method is used to initialize the storage. Halts on error.
*
* @public
*/
function init()
{
phpCAS::traceBegin();
// if the storage has already been initialized, return immediatly
if ( $this->isInitialized() )
return;
// call the ancestor's method (mark as initialized)
parent::init();
phpCAS::traceEnd();
}
// ########################################################################
// PGT I/O
// ########################################################################
/**
* This method returns the filename corresponding to a PGT Iou.
*
* @param $pgt_iou the PGT iou.
*
* @return a filename
* @private
*/
function getPGTIouFilename($pgt_iou)
{
phpCAS::traceBegin();
$filename = $this->getPath().$pgt_iou.'.'.$this->getFormat();
phpCAS::traceEnd($filename);
return $filename;
}
/**
* This method stores a PGT and its corresponding PGT Iou into a file. Echoes a
* warning on error.
*
* @param $pgt the PGT
* @param $pgt_iou the PGT iou
*
* @public
*/
function write($pgt,$pgt_iou)
{
phpCAS::traceBegin();
$fname = $this->getPGTIouFilename($pgt_iou);
if ( $f=fopen($fname,"w") ) {
if ( fputs($f,$pgt) === FALSE ) {
phpCAS::error('could not write PGT to `'.$fname.'\'');
}
fclose($f);
} else {
phpCAS::error('could not open `'.$fname.'\'');
}
phpCAS::traceEnd();
}
/**
* This method reads a PGT corresponding to a PGT Iou and deletes the
* corresponding file.
*
* @param $pgt_iou the PGT iou
*
* @return the corresponding PGT, or FALSE on error
*
* @public
*/
function read($pgt_iou)
{
phpCAS::traceBegin();
$pgt = FALSE;
$fname = $this->getPGTIouFilename($pgt_iou);
if ( !($f=fopen($fname,"r")) ) {
phpCAS::trace('could not open `'.$fname.'\'');
} else {
if ( ($pgt=fgets($f)) === FALSE ) {
phpCAS::trace('could not read PGT from `'.$fname.'\'');
}
fclose($f);
}
// delete the PGT file
@unlink($fname);
phpCAS::traceEnd($pgt);
return $pgt;
}
/** @} */
}
<?php
/*
* Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of the ESUP-Portail consortium & the JA-SIG
* Collaborative nor the names of its contributors may be used to endorse or
* promote products derived from this software without specific prior
* written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @file CAS/PGTStorage/pgt-file.php
* Basic class for PGT file storage
*/
/**
* @class PGTStorageFile
* The PGTStorageFile class is a class for PGT file storage. An instance of
* this class is returned by CASClient::SetPGTStorageFile().
*
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
*
* @ingroup internalPGTStorageFile
*/
class PGTStorageFile extends PGTStorage
{
/**
* @addtogroup internalPGTStorageFile
* @{
*/
/**
* a string telling where PGT's should be stored on the filesystem. Written by
* PGTStorageFile::PGTStorageFile(), read by getPath().
*
* @private
*/
var $_path;
/**
* This method returns the name of the directory where PGT's should be stored
* on the filesystem.
*
* @return the name of a directory (with leading and trailing '/')
*
* @private
*/
function getPath()
{
return $this->_path;
}
/**
* a string telling the format to use to store PGT's (plain or xml). Written by
* PGTStorageFile::PGTStorageFile(), read by getFormat().
*
* @private
*/
var $_format;
/**
* This method returns the format to use when storing PGT's on the filesystem.
*
* @return a string corresponding to the format used (plain or xml).
*
* @private
*/
function getFormat()
{
return $this->_format;
}
// ########################################################################
// DEBUGGING
// ########################################################################
/**
* This method returns an informational string giving the type of storage
* used by the object (used for debugging purposes).
*
* @return an informational string.
* @public
*/
function getStorageType()
{
return "file";
}
/**
* This method returns an informational string giving informations on the
* parameters of the storage.(used for debugging purposes).
*
* @return an informational string.
* @public
*/
function getStorageInfo()
{
return 'path=`'.$this->getPath().'\', format=`'.$this->getFormat().'\'';
}
// ########################################################################
// CONSTRUCTOR
// ########################################################################
/**
* The class constructor, called by CASClient::SetPGTStorageFile().
*
* @param $cas_parent the CASClient instance that creates the object.
* @param $format the format used to store the PGT's (`plain' and `xml' allowed).
* @param $path the path where the PGT's should be stored
*
* @public
*/
function PGTStorageFile($cas_parent,$format,$path)
{
phpCAS::traceBegin();
// call the ancestor's constructor
$this->PGTStorage($cas_parent);
if (empty($format) ) $format = CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT;
if (empty($path) ) $path = CAS_PGT_STORAGE_FILE_DEFAULT_PATH;
// check that the path is an absolute path
if (getenv("OS")=="Windows_NT"){
if (!preg_match('`^[a-zA-Z]:`', $path)) {
phpCAS::error('an absolute path is needed for PGT storage to file');
}
}
else
{
if ( $path[0] != '/' ) {
phpCAS::error('an absolute path is needed for PGT storage to file');
}
// store the path (with a leading and trailing '/')
$path = preg_replace('|[/]*$|','/',$path);
$path = preg_replace('|^[/]*|','/',$path);
}
$this->_path = $path;
// check the format and store it
switch ($format) {
case CAS_PGT_STORAGE_FILE_FORMAT_PLAIN:
case CAS_PGT_STORAGE_FILE_FORMAT_XML:
$this->_format = $format;
break;
default:
phpCAS::error('unknown PGT file storage format (`'.CAS_PGT_STORAGE_FILE_FORMAT_PLAIN.'\' and `'.CAS_PGT_STORAGE_FILE_FORMAT_XML.'\' allowed)');
}
phpCAS::traceEnd();
}
// ########################################################################
// INITIALIZATION
// ########################################################################
/**
* This method is used to initialize the storage. Halts on error.
*
* @public
*/
function init()
{
phpCAS::traceBegin();
// if the storage has already been initialized, return immediatly
if ( $this->isInitialized() )
return;
// call the ancestor's method (mark as initialized)
parent::init();
phpCAS::traceEnd();
}
// ########################################################################
// PGT I/O
// ########################################################################
/**
* This method returns the filename corresponding to a PGT Iou.
*
* @param $pgt_iou the PGT iou.
*
* @return a filename
* @private
*/
function getPGTIouFilename($pgt_iou)
{
phpCAS::traceBegin();
$filename = $this->getPath().$pgt_iou.'.'.$this->getFormat();
phpCAS::traceEnd($filename);
return $filename;
}
/**
* This method stores a PGT and its corresponding PGT Iou into a file. Echoes a
* warning on error.
*
* @param $pgt the PGT
* @param $pgt_iou the PGT iou
*
* @public
*/
function write($pgt,$pgt_iou)
{
phpCAS::traceBegin();
$fname = $this->getPGTIouFilename($pgt_iou);
if(!file_exists($fname)){
if ( $f=fopen($fname,"w") ) {
if ( fputs($f,$pgt) === FALSE ) {
phpCAS::error('could not write PGT to `'.$fname.'\'');
}
fclose($f);
} else {
phpCAS::error('could not open `'.$fname.'\'');
}
}else{
phpCAS::error('File exists: `'.$fname.'\'');
}
phpCAS::traceEnd();
}
/**
* This method reads a PGT corresponding to a PGT Iou and deletes the
* corresponding file.
*
* @param $pgt_iou the PGT iou
*
* @return the corresponding PGT, or FALSE on error
*
* @public
*/
function read($pgt_iou)
{
phpCAS::traceBegin();
$pgt = FALSE;
$fname = $this->getPGTIouFilename($pgt_iou);
if (file_exists($fname)){
if ( !($f=fopen($fname,"r")) ) {
phpCAS::trace('could not open `'.$fname.'\'');
} else {
if ( ($pgt=fgets($f)) === FALSE ) {
phpCAS::trace('could not read PGT from `'.$fname.'\'');
}
fclose($f);
}
// delete the PGT file
@unlink($fname);
}else{
phpCAS::trace('No such file `'.$fname.'\'');
}
phpCAS::traceEnd($pgt);
return $pgt;
}
/** @} */
}
?>
+213 -187
View File
@@ -1,188 +1,214 @@
<?php
/**
* @file CAS/PGTStorage/pgt-main.php
* Basic class for PGT storage
*/
/**
* @class PGTStorage
* The PGTStorage class is a generic class for PGT storage. This class should
* not be instanciated itself but inherited by specific PGT storage classes.
*
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
*
* @ingroup internalPGTStorage
*/
class PGTStorage
{
/**
* @addtogroup internalPGTStorage
* @{
*/
// ########################################################################
// CONSTRUCTOR
// ########################################################################
/**
* The constructor of the class, should be called only by inherited classes.
*
* @param $cas_parent the CASclient instance that creates the current object.
*
* @protected
*/
function PGTStorage($cas_parent)
{
phpCAS::traceBegin();
if ( !$cas_parent->isProxy() ) {
phpCAS::error('defining PGT storage makes no sense when not using a CAS proxy');
}
phpCAS::traceEnd();
}
// ########################################################################
// DEBUGGING
// ########################################################################
/**
* This virtual method returns an informational string giving the type of storage
* used by the object (used for debugging purposes).
*
* @public
*/
function getStorageType()
{
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
}
/**
* This virtual method returns an informational string giving informations on the
* parameters of the storage.(used for debugging purposes).
*
* @public
*/
function getStorageInfo()
{
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
}
// ########################################################################
// ERROR HANDLING
// ########################################################################
/**
* string used to store an error message. Written by PGTStorage::setErrorMessage(),
* read by PGTStorage::getErrorMessage().
*
* @hideinitializer
* @private
* @deprecated not used.
*/
var $_error_message=FALSE;
/**
* This method sets en error message, which can be read later by
* PGTStorage::getErrorMessage().
*
* @param $error_message an error message
*
* @protected
* @deprecated not used.
*/
function setErrorMessage($error_message)
{
$this->_error_message = $error_message;
}
/**
* This method returns an error message set by PGTStorage::setErrorMessage().
*
* @return an error message when set by PGTStorage::setErrorMessage(), FALSE
* otherwise.
*
* @public
* @deprecated not used.
*/
function getErrorMessage()
{
return $this->_error_message;
}
// ########################################################################
// INITIALIZATION
// ########################################################################
/**
* a boolean telling if the storage has already been initialized. Written by
* PGTStorage::init(), read by PGTStorage::isInitialized().
*
* @hideinitializer
* @private
*/
var $_initialized = FALSE;
/**
* This method tells if the storage has already been intialized.
*
* @return a boolean
*
* @protected
*/
function isInitialized()
{
return $this->_initialized;
}
/**
* This virtual method initializes the object.
*
* @protected
*/
function init()
{
$this->_initialized = TRUE;
}
// ########################################################################
// PGT I/O
// ########################################################################
/**
* This virtual method stores a PGT and its corresponding PGT Iuo.
* @note Should never be called.
*
* @param $pgt the PGT
* @param $pgt_iou the PGT iou
*
* @protected
*/
function write($pgt,$pgt_iou)
{
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
}
/**
* This virtual method reads a PGT corresponding to a PGT Iou and deletes
* the corresponding storage entry.
* @note Should never be called.
*
* @param $pgt_iou the PGT iou
*
* @protected
*/
function read($pgt_iou)
{
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
}
/** @} */
}
// include specific PGT storage classes
include_once(dirname(__FILE__).'/pgt-file.php');
include_once(dirname(__FILE__).'/pgt-db.php');
<?php
/*
* Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of the ESUP-Portail consortium & the JA-SIG
* Collaborative nor the names of its contributors may be used to endorse or
* promote products derived from this software without specific prior
* written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @file CAS/PGTStorage/pgt-main.php
* Basic class for PGT storage
*/
/**
* @class PGTStorage
* The PGTStorage class is a generic class for PGT storage. This class should
* not be instanciated itself but inherited by specific PGT storage classes.
*
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
*
* @ingroup internalPGTStorage
*/
class PGTStorage
{
/**
* @addtogroup internalPGTStorage
* @{
*/
// ########################################################################
// CONSTRUCTOR
// ########################################################################
/**
* The constructor of the class, should be called only by inherited classes.
*
* @param $cas_parent the CASclient instance that creates the current object.
*
* @protected
*/
function PGTStorage($cas_parent)
{
phpCAS::traceBegin();
if ( !$cas_parent->isProxy() ) {
phpCAS::error('defining PGT storage makes no sense when not using a CAS proxy');
}
phpCAS::traceEnd();
}
// ########################################################################
// DEBUGGING
// ########################################################################
/**
* This virtual method returns an informational string giving the type of storage
* used by the object (used for debugging purposes).
*
* @public
*/
function getStorageType()
{
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
}
/**
* This virtual method returns an informational string giving informations on the
* parameters of the storage.(used for debugging purposes).
*
* @public
*/
function getStorageInfo()
{
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
}
// ########################################################################
// ERROR HANDLING
// ########################################################################
/**
* string used to store an error message. Written by PGTStorage::setErrorMessage(),
* read by PGTStorage::getErrorMessage().
*
* @hideinitializer
* @private
* @deprecated not used.
*/
var $_error_message=FALSE;
/**
* This method sets en error message, which can be read later by
* PGTStorage::getErrorMessage().
*
* @param $error_message an error message
*
* @protected
* @deprecated not used.
*/
function setErrorMessage($error_message)
{
$this->_error_message = $error_message;
}
/**
* This method returns an error message set by PGTStorage::setErrorMessage().
*
* @return an error message when set by PGTStorage::setErrorMessage(), FALSE
* otherwise.
*
* @public
* @deprecated not used.
*/
function getErrorMessage()
{
return $this->_error_message;
}
// ########################################################################
// INITIALIZATION
// ########################################################################
/**
* a boolean telling if the storage has already been initialized. Written by
* PGTStorage::init(), read by PGTStorage::isInitialized().
*
* @hideinitializer
* @private
*/
var $_initialized = FALSE;
/**
* This method tells if the storage has already been intialized.
*
* @return a boolean
*
* @protected
*/
function isInitialized()
{
return $this->_initialized;
}
/**
* This virtual method initializes the object.
*
* @protected
*/
function init()
{
$this->_initialized = TRUE;
}
// ########################################################################
// PGT I/O
// ########################################################################
/**
* This virtual method stores a PGT and its corresponding PGT Iuo.
* @note Should never be called.
*
* @param $pgt the PGT
* @param $pgt_iou the PGT iou
*
* @protected
*/
function write($pgt,$pgt_iou)
{
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
}
/**
* This virtual method reads a PGT corresponding to a PGT Iou and deletes
* the corresponding storage entry.
* @note Should never be called.
*
* @param $pgt_iou the PGT iou
*
* @protected
*/
function read($pgt_iou)
{
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
}
/** @} */
}
// include specific PGT storage classes
include_once(dirname(__FILE__).'/pgt-file.php');
?>
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -10,12 +10,12 @@
require_once('domxml-php4-to-php5.php');
}
Version 1.21, 2008-12-05, http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
Version 1.21.1a, 2009-03-13, http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/
------------------------------------------------------------------
Written by Alexandre Alapetite, http://alexandre.alapetite.net/cv/
Written by Alexandre Alapetite, http://alexandre.alapetite.fr/cv/
Copyright 2004-2008, GNU Lesser General Public License,
Copyright 2004-2009, GNU Lesser General Public License,
http://www.gnu.org/licenses/lgpl.html
This program is free software: you can redistribute it and/or modify
@@ -39,7 +39,7 @@
in order to improve this file for the benefit of everybody.
If you want to distribute this code, please do it as a link to:
http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/
*/
define('DOMXML_LOAD_PARSING',0);
@@ -263,7 +263,7 @@ class php4DOMNode
return false;
}
}
function add_child($newnode) {return append_child($newnode);}
function add_child($newnode) {return $this->append_child($newnode);}
function add_namespace($uri,$prefix) {return false;}
function append_child($newnode) {return self::_newDOMElement($this->myDOMNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);}
function append_sibling($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);}
@@ -459,8 +459,8 @@ class php4DOMXPath
}
function xpath_eval($eval_str,$contextnode=null)
{
if (method_exists($this->myDOMXPath,'evaluate')) $xp=isset($contextnode) ? $this->myDOMXPath->evaluate($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->evaluate($eval_str);
else $xp=isset($contextnode) ? $this->myDOMXPath->query($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->query($eval_str);
if (method_exists($this->myDOMXPath,'evaluate')) $xp=isset($contextnode->myDOMNode) ? $this->myDOMXPath->evaluate($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->evaluate($eval_str);
else $xp=isset($contextnode->myDOMNode) ? $this->myDOMXPath->query($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->query($eval_str);
$xp=new php4DOMNodelist($xp,$this->myOwnerDocument);
return ($xp->type===XPATH_UNDEFINED) ? false : $xp;
}
@@ -468,7 +468,7 @@ class php4DOMXPath
}
if (extension_loaded('xsl'))
{//See also: http://alexandre.alapetite.net/doc-alex/xslt-php4-php5/
{//See also: http://alexandre.alapetite.fr/doc-alex/xslt-php4-php5/
function domxml_xslt_stylesheet($xslstring) {return new php4DomXsltStylesheet(DOMDocument::loadXML($xslstring));}
function domxml_xslt_stylesheet_doc($dom_document) {return new php4DomXsltStylesheet($dom_document);}
function domxml_xslt_stylesheet_file($xslfile) {return new php4DomXsltStylesheet(DOMDocument::load($xslfile));}
+27 -27
View File
@@ -1,27 +1,27 @@
<?php
/**
* @file languages/spanish.php
* @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> 'usant servidor',
CAS_STR_AUTHENTICATION_WANTED
=> 'Autentificació CAS necessària!',
CAS_STR_LOGOUT
=> 'Sortida de CAS necessària!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> 'Ja hauria d\ haver estat redireccionat al servidor CAS. Feu click <a href="%s">aquí</a> per a continuar.',
CAS_STR_AUTHENTICATION_FAILED
=> 'Autentificació CAS fallida!',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p>No estàs autentificat.</p><p>Pots tornar a intentar-ho fent click <a href="%s">aquí</a>.</p><p>Si el problema persisteix hauría de contactar amb l\'<a href="mailto:%s">administrador d\'aquest llocc</a>.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> 'El servei `<b>%s</b>\' no està disponible (<b>%s</b>).'
);
?>
<?php
/**
* @file languages/spanish.php
* @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> 'usant servidor',
CAS_STR_AUTHENTICATION_WANTED
=> 'Autentificació CAS necessària!',
CAS_STR_LOGOUT
=> 'Sortida de CAS necessària!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> 'Ja hauria d\ haver estat redireccionat al servidor CAS. Feu click <a href="%s">aquí</a> per a continuar.',
CAS_STR_AUTHENTICATION_FAILED
=> 'Autentificació CAS fallida!',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p>No estàs autentificat.</p><p>Pots tornar a intentar-ho fent click <a href="%s">aquí</a>.</p><p>Si el problema persisteix hauría de contactar amb l\'<a href="mailto:%s">administrador d\'aquest llocc</a>.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> 'El servei `<b>%s</b>\' no està disponible (<b>%s</b>).'
);
?>
+26 -26
View File
@@ -1,27 +1,27 @@
<?php
/**
* @file languages/english.php
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> 'using server',
CAS_STR_AUTHENTICATION_WANTED
=> 'CAS Authentication wanted!',
CAS_STR_LOGOUT
=> 'CAS logout wanted!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> 'You should already have been redirected to the CAS server. Click <a href="%s">here</a> to continue.',
CAS_STR_AUTHENTICATION_FAILED
=> 'CAS Authentication failed!',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p>You were not authenticated.</p><p>You may submit your request again by clicking <a href="%s">here</a>.</p><p>If the problem persists, you may contact <a href="mailto:%s">the administrator of this site</a>.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> 'The service `<b>%s</b>\' is not available (<b>%s</b>).'
);
<?php
/**
* @file languages/english.php
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> 'using server',
CAS_STR_AUTHENTICATION_WANTED
=> 'CAS Authentication wanted!',
CAS_STR_LOGOUT
=> 'CAS logout wanted!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> 'You should already have been redirected to the CAS server. Click <a href="%s">here</a> to continue.',
CAS_STR_AUTHENTICATION_FAILED
=> 'CAS Authentication failed!',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p>You were not authenticated.</p><p>You may submit your request again by clicking <a href="%s">here</a>.</p><p>If the problem persists, you may contact <a href="mailto:%s">the administrator of this site</a>.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> 'The service `<b>%s</b>\' is not available (<b>%s</b>).'
);
?>
+27 -27
View File
@@ -1,28 +1,28 @@
<?php
/**
* @file languages/english.php
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> 'utilisant le serveur',
CAS_STR_AUTHENTICATION_WANTED
=> 'Authentication CAS ncessaire&nbsp;!',
CAS_STR_LOGOUT
=> 'Dconnexion demande&nbsp;!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> 'Vous auriez du etre redirig(e) vers le serveur CAS. Cliquez <a href="%s">ici</a> pour continuer.',
CAS_STR_AUTHENTICATION_FAILED
=> 'Authentification CAS infructueuse&nbsp;!',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p>Vous n\'avez pas t authentifi(e).</p><p>Vous pouvez soumettre votre requete nouveau en cliquant <a href="%s">ici</a>.</p><p>Si le problme persiste, vous pouvez contacter <a href="mailto:%s">l\'administrateur de ce site</a>.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> 'Le service `<b>%s</b>\' est indisponible (<b>%s</b>)'
);
<?php
/**
* @file languages/english.php
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> 'utilisant le serveur',
CAS_STR_AUTHENTICATION_WANTED
=> 'Authentication CAS ncessaire&nbsp;!',
CAS_STR_LOGOUT
=> 'Dconnexion demande&nbsp;!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> 'Vous auriez du etre redirig(e) vers le serveur CAS. Cliquez <a href="%s">ici</a> pour continuer.',
CAS_STR_AUTHENTICATION_FAILED
=> 'Authentification CAS infructueuse&nbsp;!',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p>Vous n\'avez pas t authentifi(e).</p><p>Vous pouvez soumettre votre requete nouveau en cliquant <a href="%s">ici</a>.</p><p>Si le problme persiste, vous pouvez contacter <a href="mailto:%s">l\'administrateur de ce site</a>.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> 'Le service `<b>%s</b>\' est indisponible (<b>%s</b>)'
);
?>
+26 -26
View File
@@ -1,27 +1,27 @@
<?php
/**
* @file languages/german.php
* @author Henrik Genssen <hg at mediafactory.de>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> 'via Server',
CAS_STR_AUTHENTICATION_WANTED
=> 'CAS Authentifizierung erforderlich!',
CAS_STR_LOGOUT
=> 'CAS Abmeldung!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> 'eigentlich h&auml;ten Sie zum CAS Server weitergeleitet werden sollen. Dr&uuml;cken Sie <a href="%s">hier</a> um fortzufahren.',
CAS_STR_AUTHENTICATION_FAILED
=> 'CAS Anmeldung fehlgeschlagen!',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p>Sie wurden nicht angemeldet.</p><p>Um es erneut zu versuchen klicken Sie <a href="%s">hier</a>.</p><p>Wenn das Problem bestehen bleibt, kontkatieren Sie den <a href="mailto:%s">Administrator</a> dieser Seite.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> 'Der Dienst `<b>%s</b>\' ist nicht verf&uuml;gbar (<b>%s</b>).'
);
<?php
/**
* @file languages/german.php
* @author Henrik Genssen <hg at mediafactory.de>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> 'via Server',
CAS_STR_AUTHENTICATION_WANTED
=> 'CAS Authentifizierung erforderlich!',
CAS_STR_LOGOUT
=> 'CAS Abmeldung!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> 'eigentlich h&auml;ten Sie zum CAS Server weitergeleitet werden sollen. Dr&uuml;cken Sie <a href="%s">hier</a> um fortzufahren.',
CAS_STR_AUTHENTICATION_FAILED
=> 'CAS Anmeldung fehlgeschlagen!',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p>Sie wurden nicht angemeldet.</p><p>Um es erneut zu versuchen klicken Sie <a href="%s">hier</a>.</p><p>Wenn das Problem bestehen bleibt, kontkatieren Sie den <a href="mailto:%s">Administrator</a> dieser Seite.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> 'Der Dienst `<b>%s</b>\' ist nicht verf&uuml;gbar (<b>%s</b>).'
);
?>
+26 -26
View File
@@ -1,27 +1,27 @@
<?php
/**
* @file languages/greek.php
* @author Vangelis Haniotakis <haniotak at ucnet.uoc.gr>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> ' ',
CAS_STR_AUTHENTICATION_WANTED
=> ' CAS!',
CAS_STR_LOGOUT
=> ' CAS!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> ' CAS. <a href="%s"></a> .',
CAS_STR_AUTHENTICATION_FAILED
=> ' CAS !',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p> .</p><p> , <a href="%s"></a>.</p><p> , <a href="mailto:%s"></a>.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> ' `<b>%s</b>\' (<b>%s</b>).'
);
<?php
/**
* @file languages/greek.php
* @author Vangelis Haniotakis <haniotak at ucnet.uoc.gr>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> ' ',
CAS_STR_AUTHENTICATION_WANTED
=> ' CAS!',
CAS_STR_LOGOUT
=> ' CAS!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> ' CAS. <a href="%s"></a> .',
CAS_STR_AUTHENTICATION_FAILED
=> ' CAS !',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p> .</p><p> , <a href="%s"></a>.</p><p> , <a href="mailto:%s"></a>.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> ' `<b>%s</b>\' (<b>%s</b>).'
);
?>
+23 -23
View File
@@ -1,24 +1,24 @@
<?php
/**
* @file languages/languages.php
* Internationalization constants
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
//@{
/**
* a phpCAS string index
*/
define("CAS_STR_USING_SERVER", 1);
define("CAS_STR_AUTHENTICATION_WANTED", 2);
define("CAS_STR_LOGOUT", 3);
define("CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED", 4);
define("CAS_STR_AUTHENTICATION_FAILED", 5);
define("CAS_STR_YOU_WERE_NOT_AUTHENTICATED", 6);
define("CAS_STR_SERVICE_UNAVAILABLE", 7);
//@}
<?php
/**
* @file languages/languages.php
* Internationalization constants
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
//@{
/**
* a phpCAS string index
*/
define("CAS_STR_USING_SERVER", 1);
define("CAS_STR_AUTHENTICATION_WANTED", 2);
define("CAS_STR_LOGOUT", 3);
define("CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED", 4);
define("CAS_STR_AUTHENTICATION_FAILED", 5);
define("CAS_STR_YOU_WERE_NOT_AUTHENTICATED", 6);
define("CAS_STR_SERVICE_UNAVAILABLE", 7);
//@}
?>
+27 -27
View File
@@ -1,27 +1,27 @@
<?php
/**
* @file languages/spanish.php
* @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> 'usando servidor',
CAS_STR_AUTHENTICATION_WANTED
=> '¡Autentificación CAS necesaria!',
CAS_STR_LOGOUT
=> '¡Salida CAS necesaria!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> 'Ya debería haber sido redireccionado al servidor CAS. Haga click <a href="%s">aquí</a> para continuar.',
CAS_STR_AUTHENTICATION_FAILED
=> '¡Autentificación CAS fallida!',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p>No estás autentificado.</p><p>Puedes volver a intentarlo haciendo click <a href="%s">aquí</a>.</p><p>Si el problema persiste debería contactar con el <a href="mailto:%s">administrador de este sitio</a>.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> 'El servicio `<b>%s</b>\' no está disponible (<b>%s</b>).'
);
?>
<?php
/**
* @file languages/spanish.php
* @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
* @sa @link internalLang Internationalization @endlink
* @ingroup internalLang
*/
$this->_strings = array(
CAS_STR_USING_SERVER
=> 'usando servidor',
CAS_STR_AUTHENTICATION_WANTED
=> '¡Autentificación CAS necesaria!',
CAS_STR_LOGOUT
=> '¡Salida CAS necesaria!',
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
=> 'Ya debería haber sido redireccionado al servidor CAS. Haga click <a href="%s">aquí</a> para continuar.',
CAS_STR_AUTHENTICATION_FAILED
=> '¡Autentificación CAS fallida!',
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
=> '<p>No estás autentificado.</p><p>Puedes volver a intentarlo haciendo click <a href="%s">aquí</a>.</p><p>Si el problema persiste debería contactar con el <a href="mailto:%s">administrador de este sitio</a>.</p>',
CAS_STR_SERVICE_UNAVAILABLE
=> 'El servicio `<b>%s</b>\' no está disponible (<b>%s</b>).'
);
?>
+40 -1
View File
@@ -114,8 +114,12 @@ class auth_plugin_cas extends auth_plugin_base {
// Connection to CAS server
$this->connectCAS();
if($this->config->certificate_check && $this->config->certificate_path){
phpCAS::setCasServerCACert($this->config->certificate_path);
}else{
// Don't try to validate the server SSL credentials
phpCAS::setNoCasServerValidation();
}
// Gestion de la connection CAS si accs direct d'un ent ou autre
if (phpCAS::checkAuthentication()) {
@@ -202,6 +206,19 @@ if ( !is_object($PHPCAS_CLIENT) ) {
function config_form($config, $err, $user_fields) {
include 'config.html';
}
/**
* A chance to validate form data, and last chance to
* do stuff before it is inserted in config_plugin
* @param object object with submitted configuration settings (without system magic quotes)
* @param array $err array of error messages
*/
function validate_form(&$form, &$err) {
$certificate_path = trim($form->certificate_path);
if ($form->certificate_check && empty($certificate_path)) {
$err['certificate_path'] = get_string('auth_cas_certificate_path_empty', 'auth');
}
}
/**
* Returns the URL for changing the user's pw, or empty if the default can
* be used.
@@ -248,6 +265,10 @@ if ( !is_object($PHPCAS_CLIENT) ) {
$config->logoutcas = '';
if (!isset ($config->multiauth))
$config->multiauth = '';
if (!isset ($config->certificate_check))
$config->certificate_check = '';
if (!isset ($config->certificate_path))
$config->certificate_path = '';
// LDAP settings
if (!isset($config->host_url))
{ $config->host_url = ''; }
@@ -290,6 +311,8 @@ if ( !is_object($PHPCAS_CLIENT) ) {
set_config('proxycas', $config->proxycas, 'auth/cas');
set_config('logoutcas', $config->logoutcas, 'auth/cas');
set_config('multiauth', $config->multiauth, 'auth/cas');
set_config('certificate_check', $config->certificate_check, 'auth/cas');
set_config('certificate_path', $config->certificate_path, 'auth/cas');
// save LDAP settings
set_config('host_url', $config->host_url, 'auth/cas');
set_config('ldapencoding', $config->ldapencoding, 'auth/cas');
@@ -370,6 +393,13 @@ if ( !is_object($PHPCAS_CLIENT) ) {
* @return mixed array with no magic quotes or false on error
*/
function get_userinfo($username) {
// No LDAP servers configured, so user info has to be provided
// via other methods (CSV file, manually, etc.). Return empty
// array so existing user info is not lost.
if (empty($this->config->host_url)) {
return array();
}
$textlib = textlib_get_instance();
$extusername = $textlib->convert(stripslashes($username), 'utf-8', $this->config->ldapencoding);
$ldapconnection = $this->ldap_connect();
@@ -481,6 +511,9 @@ if ( !is_object($PHPCAS_CLIENT) ) {
if (!empty($this->config->version)) {
ldap_set_option($connresult, LDAP_OPT_PROTOCOL_VERSION, $this->config->version);
}
if ($this->config->user_type == 'ad') {
ldap_set_option($connresult, LDAP_OPT_REFERRALS, 0);
}
if (!empty($binddn)) {
//bind with search-user
//$debuginfo .= 'Using bind user'.$binddn.'and password:'.$bindpwd;
@@ -624,6 +657,12 @@ if ( !is_object($PHPCAS_CLIENT) ) {
*/
function sync_users ($bulk_insert_records = 1000, $do_updates = true) {
global $CFG;
if(empty($this->config->host_url)) {
echo "No LDAP server configured for CAS! Syncing disabled.\n";
return;
}
$textlib = textlib_get_instance();
$droptablesql = array(); /// sql commands to drop the table (because session scope could be a problem for
/// some persistent drivers like ODBTP (mssql) or if this function is invoked
@@ -972,7 +1011,7 @@ if ( !is_object($PHPCAS_CLIENT) ) {
* @return boolean result
*/
function iscreator($username) {
if ((empty($this->config->attrcreators) && empty($this->config->groupecreators)) or empty($this->config->memberattribute)) {
if (empty($this->config->host_url) or (empty($this->config->attrcreators) && empty($this->config->groupecreators)) or empty($this->config->memberattribute)) {
return null;
}
$textlib = textlib_get_instance();
+46
View File
@@ -48,6 +48,14 @@
$config->multiauth = '';
if (!isset ($config->certificate_check))
$config->certificate_check = '';
if (!isset ($config->certificate_path))
$config->certificate_path = '';
// set to defaults if undefined (LDAP)
if (!isset($config->host_url))
@@ -364,6 +372,44 @@ if (!function_exists('ldap_connect')) { // Is php4-ldap really there?
<tr valign="top" class="required">
<td align="right"><?php print_string('auth_cas_certificate_check_key', 'auth') ?>:</td>
<td>
<?php choose_from_menu ($yesno, 'certificate_check', $config->certificate_check, ''); ?>
</td>
<td><?php print_string('auth_cas_certificate_check', 'auth') ?></td>
</tr>
<tr valign="top" class="required">
<td align="right"><?php print_string('auth_cas_certificate_path_key', 'auth') ?>:</td>
<td>
<input name="certificate_path" type="text" size="30" value="<?php echo $config->certificate_path ?>" />
<?php if (isset($err['certificate_path'])) formerr($err['certificate_path']); ?>
</td>
<td>
<?php print_string('auth_cas_certificate_path', 'auth') ?>
</td>
</tr>
<tr>
<td colspan="2">
+2 -2
View File
@@ -61,7 +61,7 @@ class auth_plugin_db extends auth_plugin_base {
WHERE {$this->config->fielduser} = '".$this->ext_addslashes($extusername)."' ");
if (!$rs) {
$authdb->Close();
print_error('auth_dbcantconnect','auth');
debugging(get_string('auth_dbcantconnect','auth'));
return false;
}
@@ -94,7 +94,7 @@ class auth_plugin_db extends auth_plugin_base {
AND {$this->config->fieldpass} = '".$this->ext_addslashes($extpassword)."' ");
if (!$rs) {
$authdb->Close();
print_error('auth_dbcantconnect','auth');
debugging(get_string('auth_dbcantconnect','auth'));
return false;
}
+6 -5
View File
@@ -853,14 +853,15 @@ class auth_plugin_ldap extends auth_plugin_base {
if (!empty($this->config->forcechangepassword)) {
set_user_preference('auth_forcepasswordchange', 1, $userobj->id);
}
// add course creators if needed
if ($creatorrole !== false and $this->iscreator(stripslashes($user->username))) {
role_assign($creatorrole->id, $id, 0, $sitecontext->id, 0, 0, 0, 'ldap');
}
} else {
echo "\t"; print_string('auth_dbinsertusererror', 'auth', $user->username); echo "\n";
}
// add course creators if needed
if ($creatorrole !== false and $this->iscreator(stripslashes($user->username))) {
role_assign($creatorrole->id, $user->id, 0, $sitecontext->id, 0, 0, 0, 'ldap');
}
}
commit_sql();
unset($add_users); // free mem
@@ -1534,7 +1535,7 @@ class auth_plugin_ldap extends auth_plugin_base {
// check cheaply if the user's DN sits in a subtree
// of the "group" DN provided. Granted, this isn't
// a proper LDAP group, but it's a popular usage.
if (strpos(strrev($memberuser), strrev($group))===0) {
if (strpos(strrev(strtolower($memberuser)), strrev(strtolower($group)))===0) {
$result = true;
break;
}
@@ -101,6 +101,7 @@ if (isset($rss_record)) {
if ($act == 'updfeed') {
require_sesskey();
if (!$managefeeds) {
error(get_string('noguestpost', 'forum').
@@ -153,6 +154,7 @@ if ($act == 'updfeed') {
redirect($referrer, $message);
} else if ($act == 'addfeed' ) {
require_sesskey();
$canaddprivfeeds = has_capability('block/rss_client:createprivatefeeds', $context);
$canaddsharedfeeds = has_capability('block/rss_client:createsharedfeeds', $context);
@@ -225,6 +227,7 @@ if ($act == 'updfeed') {
rss_print_form($act, $url, $rssid, $preferredtitle, $shared, $id, $context);
} else if ($act == 'delfeed') {
require_sesskey();
if (!$managefeeds) {
error(get_string('noguestpost', 'forum').
+1 -1
View File
@@ -88,7 +88,7 @@ class block_section_links extends block_base {
if (!empty($display)) {
$link = $CFG->wwwroot.'/course/view.php?id='.$this->instance->pageid.'&amp;'.$sectionname.'=';
} else {
$link = '#section-';
$link = '#sectionblock-';
}
$sql = "SELECT section, visible
+21 -5
View File
@@ -57,15 +57,28 @@
if ($resort and confirm_sesskey()) {
if ($courses = get_courses($category->id, "fullname ASC", 'c.id,c.fullname,c.sortorder')) {
// move it off the range
$count = get_record_sql('SELECT MIN(sortorder) AS min, 1
$sortorderresult = get_record_sql('SELECT MIN(sortorder) AS min, 1
FROM ' . $CFG->prefix . 'course WHERE category=' . $category->id);
$count = $count->min;
$sortordermin = $sortorderresult->min;
$sortorderresult = get_record_sql('SELECT MAX(sortorder) AS max, 1
FROM ' . $CFG->prefix . 'course WHERE category=' . $category->id);
$sortorder = $sortordermax = $sortorderresult->max + 100;
//place the courses above the maximum existing sortorder to avoid duplicate index errors
//after they've been sorted we'll shift them down again
begin_sql();
foreach ($courses as $course) {
set_field('course', 'sortorder', $count, 'id', $course->id);
$count++;
set_field('course', 'sortorder', $sortorder, 'id', $course->id);
$sortorder++;
}
commit_sql();
//shift course sortorder back down the amount we moved them up
execute_sql('UPDATE '. $CFG->prefix .'course SET sortorder = sortorder-'.($sortordermax-$sortordermin).
' WHERE category='.$category->id);
fix_course_sortorder($category->id);
}
}
@@ -118,7 +131,10 @@
/// Print current category description
if (!$editingon && $category->description) {
print_box_start();
echo format_text($category->description); // for multilang filter
$options = new stdClass();
$options->noclean = true;
$options->para = false;
echo format_text($category->description, FORMAT_MOODLE, $options); // for multilang filter
print_box_end();
}
+2 -2
View File
@@ -84,11 +84,11 @@
/// process data if submitted
//preprocess data
if ($data->enrolstartdisabled){
if (!empty($data->enrolstartdisabled)) {
$data->enrolstartdate = 0;
}
if ($data->enrolenddisabled) {
if (!empty($data->enrolenddisabled)) {
$data->enrolenddate = 0;
}
+2
View File
@@ -61,6 +61,8 @@ if ($mform->is_cancelled()) {
// Update an existing category.
$newcategory->id = $category->id;
if ($newcategory->parent != $category->parent) {
// check category manage capability if parent changed
require_capability('moodle/category:manage', get_category_or_system_context((int)$newcategory->parent));
$parent_cat = get_record('course_categories', 'id', $newcategory->parent);
move_category($newcategory, $parent_cat);
}
+7 -1
View File
@@ -9,11 +9,17 @@ class editcategory_form extends moodleform {
$category = $this->_customdata;
// get list of categories to use as parents, with site as the first one
$options = array(get_string('top'));
$options = array();
if (has_capability('moodle/category:manage', get_system_context()) || $category->parent == 0) {
$options[0] = get_string('top');
}
$parents = array();
if ($category->id) {
// Editing an existing category.
make_categories_list($options, $parents, 'moodle/category:manage', $category->id);
if (empty($options[$category->parent])) {
$options[$category->parent] = get_field('course_categories', 'name', 'id', $category->parent);
}
$strsubmit = get_string('savechanges');
} else {
// Making a new category
+1 -1
View File
@@ -5,6 +5,6 @@
$CFG->ajaxcapable = true;
$CFG->ajaxtestedbrowsers = array('MSIE' => 6.0, 'Gecko' => 20061111);
$CFG->ajaxtestedbrowsers = array('MSIE' => 6.0, 'Gecko' => 20061111, 'Safari'=>531, 'Chrome'=>6.0);
?>
+4 -4
View File
@@ -113,7 +113,7 @@
if ($thissection->summary or $thissection->sequence or isediting($course->id)) {
echo '<tr id="section-0" class="section main">';
echo '<td class="left side">&nbsp;</td>';
echo '<td id="sectionblock-0" class="left side">&nbsp;</td>';
echo '<td class="content">';
echo '<div class="summary">';
@@ -194,7 +194,7 @@
}
echo '<tr id="section-'.$section.'" class="section main'.$sectionstyle.'">';
echo '<td class="left side">'.$currenttext.$section.'</td>';
echo '<td id="sectionblock-'.$section.'" class="left side">'.$currenttext.$section.'</td>';
echo '<td class="content">';
if (!has_capability('moodle/course:viewhiddensections', $context) and !$thissection->visible) { // Hidden for students
@@ -221,11 +221,11 @@
echo '<td class="right side">';
if ($displaysection == $section) { // Show the zoom boxes
echo '<a href="view.php?id='.$course->id.'&amp;topic=0#section-'.$section.'" title="'.$strshowalltopics.'">'.
'<img src="'.$CFG->pixpath.'/i/all.gif" alt="'.$strshowalltopics.'" /></a><br />';
'<img src="'.$CFG->pixpath.'/i/all.gif" class="icon topicall" alt="'.$strshowalltopics.'" /></a><br />';
} else {
$strshowonlytopic = get_string('showonlytopic', '', $section);
echo '<a href="view.php?id='.$course->id.'&amp;topic='.$section.'" title="'.$strshowonlytopic.'">'.
'<img src="'.$CFG->pixpath.'/i/one.gif" alt="'.$strshowonlytopic.'" /></a><br />';
'<img src="'.$CFG->pixpath.'/i/one.gif" class="icon topicone" alt="'.$strshowonlytopic.'" /></a><br />';
}
if (isediting($course->id) && has_capability('moodle/course:update', get_context_instance(CONTEXT_COURSE, $course->id))) {
+1 -1
View File
@@ -5,6 +5,6 @@
$CFG->ajaxcapable = true;
$CFG->ajaxtestedbrowsers = array('MSIE' => 6.0, 'Gecko' => 20061111);
$CFG->ajaxtestedbrowsers = array('MSIE' => 6.0, 'Gecko' => 20061111, 'Safari'=>531, 'Chrome'=>6.0);
?>
+2 -2
View File
@@ -100,7 +100,7 @@
if ($thissection->summary or $thissection->sequence or isediting($course->id)) {
echo '<tr id="section-0" class="section main">';
echo '<td class="left side">&nbsp;</td>';
echo '<td id="sectionblock-0" class="left side">&nbsp;</td>';
echo '<td class="content">';
echo '<div class="summary">';
@@ -187,7 +187,7 @@
}
echo '<tr id="section-'.$section.'" class="section main'.$sectionstyle.'">';
echo '<td class="left side">&nbsp;'.$currenttext.'</td>';
echo '<td id="sectionblock-'.$section.'" class="left side">&nbsp;'.$currenttext.'</td>';
$weekperiod = $weekday.' - '.$endweekday;
+1 -1
View File
@@ -29,7 +29,7 @@
$taught_courses = array();
if (!empty($tcourseids)) {
$tcourseids = substr($tcourseids,0,-1);
$taught_courses = get_records_list('course', 'id', $tcourseids, 'sortorder');
$taught_courses = get_records_list('course', 'id', $tcourseids, 'sortorder', 'id, fullname');
}
if (!empty($creator)) {
+1 -1
View File
@@ -1,4 +1,4 @@
<?php // $Id: uploadgroups.php, 2005/10/31 19:09:31
<?php // $Id$
/// Bulk group creation registration script from a comma separated file
+11 -13
View File
@@ -170,38 +170,36 @@
switch ($action) {
case 'view':
$actionsql = 'l.action IN (\''.implode('\',\'', $viewnames).'\' )';
$actionsql = 'action IN (\''.implode('\',\'', $viewnames).'\' )';
break;
case 'post':
$actionsql = 'l.action IN (\''.implode('\',\'', $postnames).'\' )';
$actionsql = 'action IN (\''.implode('\',\'', $postnames).'\' )';
break;
default:
// some modules have stuff we want to hide, ie mail blocked etc so do actually need to limit here.
$actionsql = 'l.action IN (\''.implode('\',\'', array_merge($viewnames, $postnames)).'\' )';
$actionsql = 'action IN (\''.implode('\',\'', array_merge($viewnames, $postnames)).'\' )';
}
$relatedcontexts = get_related_contexts_string($context);
$sql = "SELECT ra.userid, u.firstname, u.lastname, u.idnumber, COUNT(l.action) AS count
FROM {$CFG->prefix}role_assignments ra
JOIN {$CFG->prefix}user u ON u.id = ra.userid
LEFT OUTER JOIN {$CFG->prefix}log l ON (l.userid = ra.userid AND l.cmid = $instanceid AND l.time > $timefrom AND $actionsql)
WHERE ra.contextid $relatedcontexts AND ra.roleid = $roleid";
$sql = "SELECT ra.userid, u.firstname, u.lastname, u.idnumber, l.actioncount AS count
FROM (SELECT * FROM {$CFG->prefix}role_assignments WHERE contextid $relatedcontexts AND roleid = $roleid ) ra
JOIN {$CFG->prefix}user u ON u.id = ra.userid
LEFT JOIN (
SELECT userid, COUNT(action) AS actioncount FROM {$CFG->prefix}log WHERE cmid = $instanceid AND time > $timefrom AND $actionsql GROUP BY userid
) l ON (l.userid = ra.userid)";
if ($table->get_sql_where()) {
$sql .= ' AND '.$table->get_sql_where(); //initial bar
$sql .= ' WHERE '.$table->get_sql_where(); //initial bar
}
$sql .= " GROUP BY ra.userid, u.firstname, u.lastname, u.idnumber";
if ($table->get_sql_sort()) {
$sql .= ' ORDER BY '.$table->get_sql_sort();
}
$countsql = "SELECT COUNT(DISTINCT(ra.userid))
FROM {$CFG->prefix}role_assignments ra
JOIN {$CFG->prefix}user u ON u.id = ra.userid
LEFT OUTER JOIN {$CFG->prefix}log l ON (l.userid = ra.userid AND l.cmid = $instanceid AND l.time > $timefrom AND $actionsql)
WHERE ra.contextid $relatedcontexts AND ra.roleid = $roleid";
$totalcount = count_records_sql($countsql);
+1 -1
View File
@@ -87,7 +87,7 @@ Cron
====
If your class offers a cron() method, it will be invoked by
the standard Moodle cron every 5 minutes. Note that if the
the standard Moodle cron every time it is called. Note that if the
tasks are not lightweight you must control how frequently they
execute, perhaps offering a config option.
+3 -3
View File
@@ -93,7 +93,7 @@ function setup_enrolments(&$user) {
//error_log('[ENROL_DB] Found '.count($existing).' existing roles and '.$count.' in external database');
foreach ($courselist as $coursefield) { /// Check the list of courses against existing
$course = get_record('course', $CFG->enrol_localcoursefield, $coursefield);
$course = get_record('course', $CFG->enrol_localcoursefield, addslashes($coursefield));
if (!is_object($course)) {
if (empty($CFG->enrol_db_autocreate)) { // autocreation not allowed
if (debugging('',DEBUG_ALL)) {
@@ -157,7 +157,7 @@ function setup_enrolments(&$user) {
if ($role_assignment->enrol == 'database') {
//error_log('[ENROL_DB] Removing user from context '.$role_assignment->contextid);
role_unassign($role_assignment->roleid, $user->id, '', $role_assignment->contextid);
}
}
}
}
} else {
@@ -231,7 +231,7 @@ function sync_enrolments($role = null) {
$course = false;
$course = get_record( 'course',
$CFG->enrol_localcoursefield,
$extcourse );
addslashes($extcourse) );
if (!is_object($course)) {
if (empty($CFG->enrol_db_autocreate)) { // autocreation not allowed
+3 -2
View File
@@ -516,11 +516,12 @@ function process_group_tag($tagcontents){
// Else if we're allowed to create new categories, let's create this one
$newcat->name = $group->category;
$newcat->visible = 0;
if($catid = insert_record('course_categories', $newcat)){
if($catid = insert_record('course_categories', addslashes_object($newcat))){
$course->category = $catid;
$this->log_line("Created new (hidden) category, #$catid: $newcat->name");
}else{
$this->log_line('Failed to create new category: '.$newcat->name);
$this->log_line('Failed to create new category: '.$newcat->name.' so using default category instead.');
$course->category = 1;
}
}else{
// If not found and not allowed to create, stick with default
+89 -89
View File
@@ -4,8 +4,8 @@ require_once("$CFG->dirroot/enrol/enrol.class.php");
class enrolment_plugin_ldap {
var $log;
var $log;
var $enrol_localcoursefield = 'idnumber';
/**
@@ -23,7 +23,7 @@ function setup_enrolments(&$user) {
notify("[ENROL_LDAP] LDAP-module cannot connect to server: {$CFG->enrol_ldap_host_url}");
return false;
}
// we are connected OK, continue...
// Get all the possible roles
@@ -37,7 +37,7 @@ function setup_enrolments(&$user) {
if (!$roleassignments) {
$roleassignments = array();
}
// Get the ones that came from LDAP
$ldap_assignments = array_filter($roleassignments, create_function('$x', 'return $x->enrol == \'ldap\';'));
@@ -46,20 +46,20 @@ function setup_enrolments(&$user) {
// Get enrolments for each type of role from LDAP.
foreach($roles as $role) {
$enrolments = $this->find_ext_enrolments(
$ldap_connection,
$user->idnumber ,
$ldap_connection,
$user->idnumber ,
$role);
//error_log('[ENROL_LDAP] LDAP reports ' . count($enrolments) . ' enrolments of type ' . $role->shortname . '.');
foreach ($enrolments as $enrol){
$course_ext_id = $enrol[$CFG->enrol_ldap_course_idnumber][0];
if(empty($course_ext_id)){
error_log("[ENROL_LDAP] The course external id is invalid!\n");
continue; // next; skip this one!
}
// create the course ir required
$course_obj = get_record( 'course',
$this->enrol_localcoursefield,
@@ -74,18 +74,18 @@ function setup_enrolments(&$user) {
error_log("[ENROL_LDAP] User $user->username enrolled to a nonexistant course $course_ext_id \n");
}
}
// deal with enrolment in the moodle db
if (!empty($course_obj)) { // does course exist now?
if (!empty($course_obj)) { // does course exist now?
$context = get_context_instance(CONTEXT_COURSE, $course_obj->id);
//$courseroles = get_user_roles($context, $user->id);
if (!get_record('role_assignments', 'roleid', $role->id, 'userid', $user->id, 'contextid', $context->id)) {
//error_log("[ENROL_LDAP] Assigning role '{$role->name}' to {$user->id} ({$user->username}) in course {$course_obj->id} ({$course_obj->shortname})");
if (!role_assign($role->id, $user->id, 0, $context->id, 0, 0, 0, 'ldap')){
error_log("[ENROL_LDAP] Failed to assign role '{$role->name}' to $user->id ($user->username) into course $course_obj->id ($course_obj->shortname)");
}
}
} else {
//error_log("[ENROL_LDAP] Role '{$role->name}' already assigned to {$user->id} ({$user->username}) in course {$course_obj->id} ({$course_obj->shortname})");
}
@@ -115,7 +115,7 @@ function setup_enrolments(&$user) {
@ldap_close($ldap_connection);
//error_log('[ENROL_LDAP] finished with setup_enrolments');
return true;
}
@@ -137,7 +137,7 @@ function sync_enrolments($type, $enrol = false) {
notify("LDAP-module cannot connect to server: $CFG->ldap_host_url");
return false;
}
// we are connected OK, continue...
$this->enrol_ldap_bind($ldap_connection);
@@ -145,7 +145,7 @@ function sync_enrolments($type, $enrol = false) {
$ldap_contexts = explode(";",$CFG->{'enrol_ldap_contexts_role'.$role->id});
// get all the fields we will want for the potential course creation
// as they are light. don't get membership -- potentially a lot of data.
// as they are light. don't get membership -- potentially a lot of data.
$ldap_fields_wanted = array( 'dn', $CFG->enrol_ldap_course_idnumber);
if (!empty($CFG->enrol_ldap_course_fullname)){
array_push($ldap_fields_wanted, $CFG->enrol_ldap_course_fullname);
@@ -161,11 +161,11 @@ function sync_enrolments($type, $enrol = false) {
}
// define the search pattern
if (!empty($CFG->enrol_ldap_objectclass)){
if (!empty($CFG->enrol_ldap_objectclass)){
$ldap_search_pattern='(objectclass='.$CFG->enrol_ldap_objectclass.')';
} else {
$ldap_search_pattern="(objectclass=*)";
}
// first, pack the sortorder...
@@ -176,19 +176,19 @@ function sync_enrolments($type, $enrol = false) {
$context = trim($context);
if ($CFG->enrol_ldap_search_sub){
//use ldap_search to find first user from subtree
$ldap_result = @ldap_search($ldap_connection,
$context,
$ldap_result = @ldap_search($ldap_connection,
$context,
$ldap_search_pattern,
$ldap_fields_wanted);
} else {
//search only in this context
$ldap_result = @ldap_list($ldap_connection,
$context,
$ldap_result = @ldap_list($ldap_connection,
$context,
$ldap_search_pattern,
$ldap_fields_wanted,0,0);
}
// check and push results
$records = $ldap_result
? ldap_get_entries($ldap_connection,$ldap_result)
@@ -197,9 +197,9 @@ function sync_enrolments($type, $enrol = false) {
// ldap libraries return an odd array, really. fix it:
$flat_records=array();
for ($c=0;$c<$records['count'];$c++) {
array_push($flat_records, $records["$c"]);
array_push($flat_records, $records["$c"]);
}
// free mem -- is there a leak?
// free mem -- is there a leak?
$records=0; $ldap_result=0;
if (count($flat_records)) {
@@ -208,7 +208,7 @@ function sync_enrolments($type, $enrol = false) {
foreach($flat_records as $course){
$idnumber = $course{$CFG->enrol_ldap_course_idnumber}[0];
print "== Synching $idnumber\n";
// does the course exist in moodle already?
// does the course exist in moodle already?
$course_obj = false;
$course_obj = get_record( 'course',
$this->enrol_localcoursefield,
@@ -237,22 +237,22 @@ function sync_enrolments($type, $enrol = false) {
$context = get_context_instance(CONTEXT_COURSE, $course_obj->id);
// pull the ldap membership into a nice array
// this is an odd array -- mix of hash and array --
// this is an odd array -- mix of hash and array --
$ldapmembers=array();
if(array_key_exists('enrol_ldap_memberattribute_role'.$role->id, $CFG)
&& !empty($CFG->{'enrol_ldap_memberattribute_role'.$role->id})
&& !empty($course[strtolower($CFG->{'enrol_ldap_memberattribute_role'.$role->id} ) ])){ // may have no membership!
$ldapmembers = $course[strtolower($CFG->{'enrol_ldap_memberattribute_role'.$role->id} )];
$ldapmembers = $course[strtolower($CFG->{'enrol_ldap_memberattribute_role'.$role->id} )];
unset($ldapmembers['count']); // remove oddity ;)
$ldapmembers = addslashes_recursive($ldapmembers);
}
// prune old ldap enrolments
// hopefully they'll fit in the max buffer size for the RDBMS
$sql = '
SELECT enr.userid AS user, 1
SELECT enr.userid
FROM '.$CFG->prefix.'role_assignments enr
JOIN '.$CFG->prefix.'user usr ON usr.id=enr.userid
WHERE enr.roleid = '.$role->id.'
@@ -266,7 +266,7 @@ function sync_enrolments($type, $enrol = false) {
$todelete = get_records_sql($sql);
if(!empty($todelete)){
foreach ($todelete as $member) {
$member = $member->user;
$member = $member->userid;
if (role_unassign($role->id, $member, 0, $context->id, 'ldap')) {
print "Unassigned $type from $member for course $course_obj->id ($course_obj->shortname)\n";
@@ -275,21 +275,21 @@ function sync_enrolments($type, $enrol = false) {
}
}
}
// insert current enrolments
// insert current enrolments
// bad we can't do INSERT IGNORE with postgres...
foreach ($ldapmembers as $ldapmember) {
$sql = 'SELECT id,1 FROM '.$CFG->prefix.'user '
." WHERE idnumber='$ldapmember'";
$member = get_record_sql($sql);
// print "sql: $sql \nidnumber = ".stripslashes($ldapmember)." \n".var_dump($member);
$member = get_record_sql($sql);
// print "sql: $sql \nidnumber = ".stripslashes($ldapmember)." \n".var_dump($member);
if(empty($member) || empty($member->id)){
print "Could not find user ".stripslashes($ldapmember).", skipping\n";
continue;
}
$member = $member->id;
if (!get_record('role_assignments', 'roleid', $role->id,
'contextid', $context->id,
if (!get_record('role_assignments', 'roleid', $role->id,
'contextid', $context->id,
'userid', $member, 'enrol', 'ldap')){
if (role_assign($role->id, $member, 0, $context->id, 0, 0, 0, 'ldap')){
print "Assigned role $type to $member (".stripslashes($ldapmember).") for course $course_obj->id ($course_obj->shortname)\n";
@@ -302,10 +302,10 @@ function sync_enrolments($type, $enrol = false) {
}
}
}
// we are done now, a bit of housekeeping
fix_course_sortorder();
@ldap_close($ldap_connection);
return true;
}
@@ -321,7 +321,7 @@ function config_form($frm) {
global $CFG;
$this->check_legacy_config();
include("$CFG->dirroot/enrol/ldap/config.html");
}
@@ -339,7 +339,7 @@ function process_config($config) {
$config->enrol_ldap_version = '';
}
set_config('enrol_ldap_version', $config->enrol_ldap_version);
if (!isset ($config->enrol_ldap_bind_dn)) {
$config->enrol_ldap_bind_dn = '';
}
@@ -348,58 +348,58 @@ function process_config($config) {
if (!isset ($config->enrol_ldap_bind_pw)) {
$config->enrol_ldap_bind_pw = '';
}
set_config('enrol_ldap_bind_pw', $config->enrol_ldap_bind_pw);
set_config('enrol_ldap_bind_pw', $config->enrol_ldap_bind_pw);
if (!isset ($config->enrol_ldap_objectclass)) {
$config->enrol_ldap_objectclass = '';
}
set_config('enrol_ldap_objectclass', $config->enrol_ldap_objectclass);
set_config('enrol_ldap_objectclass', $config->enrol_ldap_objectclass);
if (!isset ($config->enrol_ldap_category)) {
$config->enrol_ldap_category = '';
}
set_config('enrol_ldap_category', $config->enrol_ldap_category);
set_config('enrol_ldap_category', $config->enrol_ldap_category);
if (!isset ($config->enrol_ldap_template)) {
$config->enrol_ldap_template = '';
}
set_config('enrol_ldap_template', $config->enrol_ldap_template);
set_config('enrol_ldap_template', $config->enrol_ldap_template);
if (!isset ($config->enrol_ldap_course_fullname)) {
$config->enrol_ldap_course_fullname = '';
}
set_config('enrol_ldap_course_fullname', $config->enrol_ldap_course_fullname);
set_config('enrol_ldap_course_fullname', $config->enrol_ldap_course_fullname);
if (!isset ($config->enrol_ldap_course_shortname)) {
$config->enrol_ldap_course_shortname = '';
}
set_config('enrol_ldap_course_shortname', $config->enrol_ldap_course_shortname);
set_config('enrol_ldap_course_shortname', $config->enrol_ldap_course_shortname);
if (!isset ($config->enrol_ldap_course_summary)) {
$config->enrol_ldap_course_summary = '';
}
set_config('enrol_ldap_course_summary', $config->enrol_ldap_course_summary);
set_config('enrol_ldap_course_summary', $config->enrol_ldap_course_summary);
if (!isset ($config->enrol_ldap_course_idnumber)) {
$config->enrol_ldap_course_idnumber = '';
}
set_config('enrol_ldap_course_idnumber', $config->enrol_ldap_course_idnumber);
set_config('enrol_ldap_course_idnumber', $config->enrol_ldap_course_idnumber);
if (!isset ($config->enrol_localcoursefield)) {
$config->enrol_localcoursefield = '';
}
set_config('enrol_localcoursefield', $config->enrol_localcoursefield);
if (!isset ($config->enrol_ldap_user_memberfield)) {
$config->enrol_ldap_user_memberfield = '';
}
set_config('enrol_ldap_user_memberfield', $config->enrol_ldap_user_memberfield);
set_config('enrol_ldap_user_memberfield', $config->enrol_ldap_user_memberfield);
if (!isset ($config->enrol_ldap_search_sub)) {
$config->enrol_ldap_search_sub = '0';
}
set_config('enrol_ldap_search_sub', $config->enrol_ldap_search_sub);
set_config('enrol_ldap_search_sub', $config->enrol_ldap_search_sub);
if (!isset ($config->enrol_ldap_autocreate)) {
$config->enrol_ldap_autocreate = '0';
}
@@ -410,11 +410,11 @@ function process_config($config) {
if (!isset($config->{'enrol_ldap_contexts_role'.$role->id})) {
$config->{'enrol_ldap_contexts_role'.$role->id} = '';
}
if (!isset($config->{'enrol_ldap_memberattribute_role'.$role->id})) {
$config->{'enrol_ldap_memberattribute_role'.$role->id} = '';
}
set_config('enrol_ldap_contexts_role'.$role->id, $config->{'enrol_ldap_contexts_role'.$role->id});
set_config('enrol_ldap_memberattribute_role'.$role->id, $config->{'enrol_ldap_memberattribute_role'.$role->id});
}
@@ -435,7 +435,7 @@ function enrol_ldap_connect(){
if (!empty($CFG->enrol_ldap_bind_dn)) {
$bind = ldap_bind( $result,
$CFG->enrol_ldap_bind_dn,
$CFG->enrol_ldap_bind_dn,
$CFG->enrol_ldap_bind_pw );
if (!$bind) {
notify("Error in binding to LDAP server");
@@ -464,11 +464,11 @@ function enrol_ldap_bind($ldap_connection){
}
} else {
//bind anonymously
//bind anonymously
if ( !ldap_bind($ldap_connection)){
notify("Error: could not bind ldap anonymously");
return false;
}
}
}
return true;
@@ -477,13 +477,13 @@ function enrol_ldap_bind($ldap_connection){
function find_ext_enrolments ($ldap_connection, $memberuid, $role){
/// role is a record from the mdl_role table
/// return multidimentional array array with of courses (at least dn and idnumber)
///
///
global $CFG;
if(empty($memberuid)) { // No "idnumber" stored for this user, so no LDAP enrolments
return array();
}
}
//default return value
$courses = array();
@@ -493,7 +493,7 @@ function find_ext_enrolments ($ldap_connection, $memberuid, $role){
$ldap_contexts = explode(";",$CFG->{'enrol_ldap_contexts_role'.$role->id});
// get all the fields we will want for the potential course creation
// as they are light. don't get membership -- potentially a lot of data.
// as they are light. don't get membership -- potentially a lot of data.
$ldap_fields_wanted = array( 'dn', $CFG->enrol_ldap_course_idnumber);
if (!empty($CFG->enrol_ldap_course_fullname)){
array_push($ldap_fields_wanted, $CFG->enrol_ldap_course_fullname);
@@ -507,7 +507,7 @@ function find_ext_enrolments ($ldap_connection, $memberuid, $role){
// define the search pattern
$ldap_search_pattern = "(".$CFG->{'enrol_ldap_memberattribute_role'.$role->id}."=".$this->filter_addslashes($memberuid).")";
if (!empty($CFG->enrol_ldap_objectclass)){
if (!empty($CFG->enrol_ldap_objectclass)){
$ldap_search_pattern='(&(objectclass='.$CFG->enrol_ldap_objectclass.')'.$ldap_search_pattern.')';
}
@@ -516,31 +516,31 @@ function find_ext_enrolments ($ldap_connection, $memberuid, $role){
if (empty($context)) {
continue; // next;
}
if ($CFG->enrol_ldap_search_sub){
//use ldap_search to find first user from subtree
$ldap_result = ldap_search($ldap_connection,
$context,
$ldap_result = ldap_search($ldap_connection,
$context,
$ldap_search_pattern,
$ldap_fields_wanted);
} else {
//search only in this context
$ldap_result = ldap_list($ldap_connection,
$context,
$ldap_result = ldap_list($ldap_connection,
$context,
$ldap_search_pattern,
$ldap_fields_wanted);
}
// check and push results
$records = ldap_get_entries($ldap_connection,$ldap_result);
$records = ldap_get_entries($ldap_connection,$ldap_result);
// ldap libraries return an odd array, really. fix it:
$flat_records=array();
for ($c=0;$c<$records['count'];$c++) {
array_push($flat_records, $records["$c"]);
array_push($flat_records, $records["$c"]);
}
if (count($flat_records)) {
$courses = array_merge($courses, $flat_records);
}
@@ -551,7 +551,7 @@ function find_ext_enrolments ($ldap_connection, $memberuid, $role){
// will create the moodle course from the template
// course_ext is an array as obtained from ldap -- flattened somewhat
// NOTE: if you pass true for $skip_fix_course_sortorder
// NOTE: if you pass true for $skip_fix_course_sortorder
// you will want to call fix_course_sortorder() after your are done
// with course creation
function create_course ($course_ext,$skip_fix_course_sortorder=0){
@@ -578,7 +578,7 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
$course->shortname = $course_ext[$CFG->enrol_ldap_course_shortname][0];
if ( empty($course->idnumber)
|| empty($course->fullname)
|| empty($course->shortname) ) {
|| empty($course->shortname) ) {
// we are in trouble!
error_log("Cannot create course: missing required data from the LDAP record!");
error_log(var_export($course, true));
@@ -588,10 +588,10 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
$course->summary = empty($CFG->enrol_ldap_course_summary) || empty($course_ext[$CFG->enrol_ldap_course_summary][0])
? ''
: $course_ext[$CFG->enrol_ldap_course_summary][0];
if(!empty($CFG->enrol_ldap_category)){ // optional ... but ensure it is set!
$course->category = $CFG->enrol_ldap_category;
}
}
if ($course->category == 0){ // must be avoided as it'll break moodle
$course->category = 1; // the misc 'catch-all' category
}
@@ -600,13 +600,13 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
$sort = get_record_sql('SELECT MAX(sortorder) AS max, 1 FROM ' . $CFG->prefix . 'course WHERE category=' . $course->category);
$sort = $sort->max;
$sort++;
$course->sortorder = $sort;
$course->sortorder = $sort;
// override with local data
$course->startdate = time();
$course->timecreated = time();
$course->visible = 1;
$course = addslashes_recursive($course);
// store it and log
@@ -619,8 +619,8 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
blocks_repopulate_page($page); // Return value no
if(!$skip_fix_course_sortorder){
fix_course_sortorder();
if(!$skip_fix_course_sortorder){
fix_course_sortorder();
}
add_to_log($newcourseid, "course", "new", "view.php?id=$newcourseid", "enrol/ldap auto-creation");
} else {
@@ -628,7 +628,7 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
notify("Serious Error! Could not create the new course!");
return false;
}
return $newcourseid;
}
@@ -665,7 +665,7 @@ function check_legacy_config () {
unset_config('enrol_ldap_teacher_contexts');
}
if (isset($CFG->enrol_ldap_teacher_memberattribute)) {
if (isset($teacher_role)
or $teacher_role = get_record('role', 'shortname', 'teacher')) {
+2 -2
View File
@@ -171,7 +171,7 @@ class enrolment_plugin_mnet {
co.cost,
co.currency,
co.defaultrole as defaultroleid,
r.name
r.name as defaultrolename
FROM
{$CFG->prefix}course_categories ca
JOIN
@@ -206,7 +206,7 @@ class enrolment_plugin_mnet {
co.cost,
co.currency,
co.defaultrole as defaultroleid,
r.name
r.name as defaultrolename
FROM
{$CFG->prefix}course_categories ca
JOIN
+15 -7
View File
@@ -13,7 +13,7 @@
//TODO: Blog attachments do not have access control implemented - anybody can read them!
// It might be better to move the code to separate file because the access
// control is quite complex - see bolg/index.php
// control is quite complex - see bolg/index.php
require_once('config.php');
require_once('lib/filelib.php');
@@ -29,7 +29,7 @@
$relativepath = get_file_argument('file.php');
$forcedownload = optional_param('forcedownload', 0, PARAM_BOOL);
// relative path must start with '/', because of backup/restore!!!
if (!$relativepath) {
error('No valid arguments supplied or incorrect server configuration');
@@ -39,12 +39,20 @@
$pathname = $CFG->dataroot.$relativepath;
// protect imsenterprise plugin data
if (strtolower("$CFG->dataroot/1/imsenterprise-enrol.xml") === strtolower(realpath($pathname))
or (!empty($CFG->enrol_imsfilelocation) and strtolower($CFG->enrol_imsfilelocation) === strtolower(realpath($pathname)))) {
require_login();
require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
$forcedownload = 1;
}
// extract relative path components
$args = explode('/', trim($relativepath, '/'));
if (count($args) == 0) { // always at least courseid, may search for index.html in course root
error('No valid arguments supplied');
}
// security: limit access to existing course subdirectories
if (($args[0]!='blog') and (!$course = get_record_sql("SELECT * FROM {$CFG->prefix}course WHERE id='".(int)$args[0]."'"))) {
error('Invalid course ID');
@@ -84,7 +92,7 @@
if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_COURSE, $course->id))) {
error('Access not allowed');
} else {
$lifetime = 0; //disable browser caching for backups
$lifetime = 0; //disable browser caching for backups
}
}
@@ -120,7 +128,7 @@
if (!has_capability('mod/assignment:grade', get_context_instance(CONTEXT_MODULE, $cm->id))) {
error('Access not allowed');
}
}
}
}
// security: force download of all attachments submitted by students
@@ -144,11 +152,11 @@
}
if ($args[0] == 'blog') {
$forcedownload = 1; // force download of all attachments
}
}
// security: some protection of hidden resource files
// warning: it may break backwards compatibility
if ((!empty($CFG->preventaccesstohiddenfiles))
if ((!empty($CFG->preventaccesstohiddenfiles))
and (count($args) >= 2)
and (!(strtolower($args[1]) == 'moddata' and strtolower($args[2]) != 'resource')) // do not block files from other modules!
and (!has_capability('moodle/course:viewhiddenactivities', get_context_instance(CONTEXT_COURSE, $course->id)))) {
+2 -2
View File
@@ -8,8 +8,8 @@
// USER is a persistent variable using sessions
require('../config.php');
require($CFG->libdir.'/filelib.php');
require($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir . '/filelib.php');
require_once($CFG->libdir . '/adminlib.php');
$id = required_param('id', PARAM_INT);
$file = optional_param('file', '', PARAM_PATH);
+104 -39
View File
@@ -36,70 +36,80 @@ function mediaplugin_filter($courseid, $text) {
$newtext = $text; // fullclone is slow and not needed here
if ($CFG->filter_mediaplugin_enable_mp3) {
$search = '/<a.*?href="([^<]+\.mp3)"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.mp3)"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_mp3_callback', $newtext);
}
if ($CFG->filter_mediaplugin_enable_ogg) {
$search = '/<a\s[^>]*href="([^"]+\.ogg)"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'filter_mediaplugin_ogg_callback', $newtext);
}
if ($CFG->filter_mediaplugin_enable_ogv) {
$search = '/<a\s[^>]*href="([^"]+\.ogv)"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'filter_mediaplugin_ogv_callback', $newtext);
}
if ($CFG->filter_mediaplugin_enable_swf) {
$search = '/<a.*?href="([^<]+\.swf)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.swf)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_swf_callback', $newtext);
}
if ($CFG->filter_mediaplugin_enable_flv) {
$search = '/<a.*?href="([^<]+\.flv)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.flv)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_flv_callback', $newtext);
}
if ($CFG->filter_mediaplugin_enable_mov) {
$search = '/<a.*?href="([^<]+\.mov)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.mov)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $newtext);
// MDL-18658
$search = '/<a.*?href="([^<]+\.mp4)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.mp4)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $newtext);
$search = '/<a.*?href="([^<]+\.m4v)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.m4v)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $newtext);
$search = '/<a.*?href="([^<]+\.m4a)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^<]+\.m4a)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $newtext);
}
if ($CFG->filter_mediaplugin_enable_wmv) {
$search = '/<a.*?href="([^<]+\.wmv)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.wmv)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_wmp_callback', $newtext);
}
if ($CFG->filter_mediaplugin_enable_mpg) {
$search = '/<a.*?href="([^<]+\.mpe?g)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.mpe?g)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $newtext);
}
if ($CFG->filter_mediaplugin_enable_avi) {
$search = '/<a.*?href="([^<]+\.avi)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.avi)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_wmp_callback', $newtext);
}
if ($CFG->filter_mediaplugin_enable_ram) {
$search = '/<a.*?href="([^<]+\.ram)"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.ram)"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_real_callback', $newtext);
}
if ($CFG->filter_mediaplugin_enable_rpm) {
$search = '/<a.*?href="([^<]+\.rpm)"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.rpm)"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_real_callback', $newtext);
}
if ($CFG->filter_mediaplugin_enable_rm) {
$search = '/<a.*?href="([^<]+\.rm)"[^>]*>.*?<\/a>/is';
$search = '/<a\s[^>]*href="([^"]+\.rm)"[^>]*>.*?<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_real_callback', $newtext);
}
if (!empty($CFG->filter_mediaplugin_enable_youtube)) {
$search = '/<a[^>]*?href="([^<]*)youtube.com\/watch\?v=([^"]*)"[^>]*>(.*?)<\/a>/is';
$search = '/<a\s[^>]*href="([^"]*)youtube.com\/watch\?v=([^"]*)"[^>]*>(.*?)<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_youtube_callback', $newtext);
$search = '/<a[^>]*?href="([^<]*)youtube.com\/v\/([^"]*)"[^>]*>(.*?)<\/a>/is';
$search = '/<a\s[^>]*href="([^"]*)youtube.com\/v\/([^"]*)"[^>]*>(.*?)<\/a>/is';
$newtext = preg_replace_callback($search, 'mediaplugin_filter_youtube_callback', $newtext);
}
@@ -133,20 +143,65 @@ function mediaplugin_filter_mp3_callback($link) {
static $count = 0;
$count++;
$id = 'filter_mp3_'.time().$count; //we need something unique because it might be stored in text cache
$url = $link[1];
$jsurl = addslashes_js($link[1]);
$url = addslashes_js($link[1]);
return $link[0].
$printlink = '<a href="'.$url.'">'.get_string('mp3audio', 'mediaplugin').'</a>';
return $printlink.
'<span class="mediaplugin mediaplugin_mp3" id="'.$id.'">('.get_string('mp3audio', 'mediaplugin').')</span>
<script type="text/javascript">
//<![CDATA[
var FO = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/mp3player.swf?src='.$url.'",
var FO = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/mp3player.swf?src='.$jsurl.'",
width:"90", height:"15", majorversion:"6", build:"40", flashvars:"'.$c.'", quality: "high" };
UFO.create(FO, "'.$id.'");
//]]>
</script>';
}
function filter_mediaplugin_ogg_callback($link) {
global $CFG;
static $count = 0;
$count++;
$id = 'filter_ogg_'.time().$count; //we need something unique because it might be stored in text cache
$url = $link[1];
$printlink = '<a href="'.$url.'">'.get_string('oggaudio', 'mediaplugin').'</a>';
$unsupportedplugins = get_string('unsupportedplugins', 'mediaplugin', $printlink);
$output = <<<OET
<span class="mediaplugin mediaplugin_ogg" id="$id">
<audio id="$id" src="$url" controls="true" width="100">
$unsupportedplugins
</audio>
</span>
OET;
return $output;
}
function filter_mediaplugin_ogv_callback($link) {
global $CFG;
static $count = 0;
$count++;
$id = 'filter_ogv_'.time().$count; //we need something unique because it might be stored in text cache
$url = $link[1];
$printlink = '<a href="'.$url.'">'.get_string('ogvvideo', 'mediaplugin').'</a>';
$unsupportedplugins = get_string('unsupportedplugins', 'mediaplugin', $printlink);
$output = <<<OET
<span class="mediaplugin mediaplugin_ogv" id="$id">
<video id="$id" src="$url" controls="true" width="600" >
$unsupportedplugins
</video>
</span>
OET;
return $output;
}
function mediaplugin_filter_swf_callback($link) {
static $count = 0;
$count++;
@@ -154,13 +209,15 @@ function mediaplugin_filter_swf_callback($link) {
$width = empty($link[3]) ? '400' : $link[3];
$height = empty($link[4]) ? '300' : $link[4];
$url = addslashes_js($link[1]);
$url = $link[1];
$jsurl = addslashes_js($link[1]);
$printlink = '<a href="'.$url.'">'.get_string('flashvideo', 'mediaplugin').'</a>';
return $link[0].
return $printlink.
'<span class="mediaplugin mediaplugin_swf" id="'.$id.'">('.get_string('flashanimation', 'mediaplugin').')</span>
<script type="text/javascript">
//<![CDATA[
var FO = { movie:"'.$url.'", width:"'.$width.'", height:"'.$height.'", majorversion:"6", build:"40",
var FO = { movie:"'.$jsurl.'", width:"'.$width.'", height:"'.$height.'", majorversion:"6", build:"40",
allowscriptaccess:"never", quality: "high" };
UFO.create(FO, "'.$id.'");
//]]>
@@ -176,13 +233,15 @@ function mediaplugin_filter_flv_callback($link) {
$width = empty($link[3]) ? '480' : $link[3];
$height = empty($link[4]) ? '360' : $link[4];
$url = addslashes_js($link[1]);
$url = $link[1];
$jsurl = addslashes_js($link[1]);
$printlink = '<a href="'.$url.'">'.get_string('flashvideo', 'mediaplugin').'</a>';
return $link[0].
return $printlink.
'<span class="mediaplugin mediaplugin_flv" id="'.$id.'">('.get_string('flashvideo', 'mediaplugin').')</span>
<script type="text/javascript">
//<![CDATA[
var FO = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/flvplayer.swf?file='.$url.'",
var FO = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/flvplayer.swf?file='.$jsurl.'",
width:"'.$width.'", height:"'.$height.'", majorversion:"6", build:"40",
allowscriptaccess:"never", quality: "high", allowfullscreen: "true" };
UFO.create(FO, "'.$id.'");
@@ -191,29 +250,31 @@ function mediaplugin_filter_flv_callback($link) {
}
function mediaplugin_filter_real_callback($link, $autostart=false) {
$url = addslashes_js($link[1]);
$url = $link[1];
$jsurl = addslashes_js($link[1]);
$mimetype = mimeinfo('type', $url);
$autostart = $autostart ? 'true' : 'false';
$printlink = '<a href="'.$url.'">'.get_string('realaudio', 'mediaplugin').'</a>';
// embed kept for now see MDL-8674
return $link[0].
return $printlink.
'<span class="mediaplugin mediaplugin_real">
<script type="text/javascript">
//<![CDATA[
document.write(\'<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="240" height="180">\\
<param name="src" value="'.$url.'" />\\
<param name="src" value="'.$jsurl.'" />\\
<param name="autostart" value="'.$autostart.'" />\\
<param name="controls" value="imagewindow" />\\
<param name="console" value="video" />\\
<param name="loop" value="true" />\\
<embed src="'.$url.'" width="240" height="180" loop="true" type="'.$mimetype.'" controls="imagewindow" console="video" autostart="'.$autostart.'" />\\
<embed src="'.$jsurl.'" width="240" height="180" loop="true" type="'.$mimetype.'" controls="imagewindow" console="video" autostart="'.$autostart.'" />\\
</object><br />\\
<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="240" height="30">\\
<param name="src" value="'.$url.'" />\\
<param name="src" value="'.$jsurl.'" />\\
<param name="autostart" value="'.$autostart.'" />\\
<param name="controls" value="ControlPanel" />\\
<param name="console" value="video" />\\
<embed src="'.$url.'" width="240" height="30" controls="ControlPanel" type="'.$mimetype.'" console="video" autostart="'.$autostart.'" />\\
<embed src="'.$jsurl.'" width="240" height="30" controls="ControlPanel" type="'.$mimetype.'" console="video" autostart="'.$autostart.'" />\\
</object>\');
//]]>
</script></span>';
@@ -224,18 +285,20 @@ document.write(\'<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" wi
*/
function mediaplugin_filter_youtube_callback($link, $autostart=false) {
$site = addslashes_js($link[1]);
$url = addslashes_js($link[2]);
$info = addslashes_js($link[3]);
$site = s($link[1]);
$url = $link[2];
$info = s($link[3]);
return '<object title="'.$info.'"
class="mediaplugin mediaplugin_youtube" type="application/x-shockwave-flash"
return '<span class="mediaplugin mediaplugin_youtube">'.
'<object title="'.$info.'"
class="mediaplugin mediaplugin_youtube" type="application/x-shockwave-flash"
data="'.$site.'youtube.com/v/'.$url.'&amp;fs=1&amp;rel=0" width="425" height="344">'.
'<param name="movie" value="'.$site.'youtube.com/v/'.$url.'&amp;fs=1&amp;rel=0" />'.
'<param name="FlashVars" value="playerMode=embedded" />'.
'<param name="wmode" value="transparent" />'.
'<param name="allowFullScreen" value="true" />'.
'</object>';
'</object>'.
'</span>';
}
/**
@@ -254,8 +317,9 @@ function mediaplugin_filter_wmp_callback($link, $autostart=false) {
}
$mimetype = mimeinfo('type', $url);
$autostart = $autostart ? 'true' : 'false';
$printlink = '<a href="'.$url.'">'.get_string('wmpvideo', 'mediaplugin').'</a>';
return $link[0].
return $printlink.
'<span class="mediaplugin mediaplugin_wmp">
<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" '.$mpsize.'
standby="Loading Microsoft(R) Windows(R) Media Player components..."
@@ -293,8 +357,9 @@ function mediaplugin_filter_qt_callback($link, $autostart=false) {
}
$mimetype = mimeinfo('type', $url);
$autostart = $autostart ? 'true' : 'false';
$printlink = '<a href="'.$url.'">'.get_string('quicktime', 'mediaplugin').'</a>';
return $link[0].
return $printlink.
'<span class="mediaplugin mediaplugin_qt">
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase="http://www.apple.com/qtactivex/qtplugin.cab" '.$size.'>
+4
View File
@@ -21,4 +21,8 @@ $settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_rpm',
$settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_rm', get_string('mediapluginrm','admin'), '', 1));
$settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_youtube', get_string('mediapluginyoutube','admin'), '', 0));
$settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_ogg', get_string('mediapluginogg','admin'), '', 1));
$settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_ogv', get_string('mediapluginogv','admin'), '', 1));
?>
+2 -1
View File
@@ -83,7 +83,8 @@ class edit_scale_form extends moodleform {
if (empty($courseid)) {
$mform->hardFreeze('standard');
} else if (empty($scale->courseid) and !has_capability('moodle/course:managescales', get_context_instance(CONTEXT_SYSTEM))) {
} else if (!has_capability('moodle/course:managescales', get_context_instance(CONTEXT_SYSTEM))) {
//if they dont have managescales at system level the shouldnt be allowed to make scales standard (or not standard)
$mform->hardFreeze('standard');
} else if ($used and !empty($scale->courseid)) {
+5 -2
View File
@@ -101,9 +101,12 @@ class edit_category_form extends moodleform {
$mform->disabledIf('droplow', 'keephigh', 'noteq', 0);
// Grade item settings
$mform->addElement('header', 'general', get_string('gradeitem', 'grades'));
//Displayed as Category total to avoid confusion between grade items requiring marking and category totals
$mform->addElement('header', 'general', get_string('categorytotal', 'grades'));
$mform->addElement('text', 'grade_item_itemname', get_string('categorytotalname', 'grades'));
$mform->setAdvanced('grade_item_itemname');
$mform->addElement('text', 'grade_item_itemname', get_string('itemname', 'grades'));
$mform->addElement('text', 'grade_item_iteminfo', get_string('iteminfo', 'grades'));
$mform->setHelpButton('grade_item_iteminfo', array('iteminfo', get_string('iteminfo', 'grades'), 'grade'), true);
+6 -1
View File
@@ -664,7 +664,12 @@ class grade_edit_tree_column_range extends grade_edit_tree_column {
$grademax = format_float($item->grademax, $item->get_decimals());
} elseif ($item->gradetype == GRADE_TYPE_SCALE) {
$scale = get_record('scale', 'id', $item->scaleid);
$scale_items = explode(',', $scale->scale);
$scale_items = null;
if (empty($scale)) { //if the item is using a scale that's been removed
$scale_items = array();
} else {
$scale_items = explode(',', $scale->scale);
}
$grademax = end($scale_items) . ' (' . count($scale_items) . ')';
} elseif ($item->is_external_item()) {
$grademax = format_float($item->grademax, $item->get_decimals());
+24 -9
View File
@@ -54,13 +54,20 @@ class grade_export {
$this->groupid = $groupid;
$this->grade_items = grade_item::fetch_all(array('courseid'=>$this->course->id));
//Populating the columns here is required by /grade/export/(whatever)/export.php
//however index.php, when the form is submitted, will construct the collection here
//with an empty $itemlist then reconstruct it in process_form() using $formdata
$this->columns = array();
if (!empty($itemlist)) {
$itemids = explode(',', $itemlist);
// remove items that are not requested
foreach ($itemids as $itemid) {
if (array_key_exists($itemid, $this->grade_items)) {
$this->columns[$itemid] =& $this->grade_items[$itemid];
if ($itemlist=='-1') {
//user deselected all items
} else {
$itemids = explode(',', $itemlist);
// remove items that are not requested
foreach ($itemids as $itemid) {
if (array_key_exists($itemid, $this->grade_items)) {
$this->columns[$itemid] =& $this->grade_items[$itemid];
}
}
}
} else {
@@ -87,9 +94,13 @@ class grade_export {
$this->columns = array();
if (!empty($formdata->itemids)) {
foreach ($formdata->itemids as $itemid=>$selected) {
if ($selected and array_key_exists($itemid, $this->grade_items)) {
$this->columns[$itemid] =& $this->grade_items[$itemid];
if ($formdata->itemids=='-1') {
//user deselected all items
} else {
foreach ($formdata->itemids as $itemid=>$selected) {
if ($selected and array_key_exists($itemid, $this->grade_items)) {
$this->columns[$itemid] =& $this->grade_items[$itemid];
}
}
}
} else {
@@ -267,10 +278,14 @@ class grade_export {
*/
function get_export_params() {
$itemids = array_keys($this->columns);
$itemidsparam = implode(',', $itemids);
if (empty($itemidsparam)) {
$itemidsparam = '-1';
}
$params = array('id' =>$this->course->id,
'groupid' =>$this->groupid,
'itemids' =>implode(',', $itemids),
'itemids' =>$itemidsparam,
'export_letters' =>$this->export_letters,
'export_feedback' =>$this->export_feedback,
'updatedgradesonly' =>$this->updatedgradesonly,
+18 -10
View File
@@ -108,10 +108,14 @@ class graded_users_iterator {
$users_sql = "SELECT u.* $ofields
FROM {$CFG->prefix}user u
INNER JOIN {$CFG->prefix}role_assignments ra ON u.id = ra.userid
$groupsql
WHERE ra.roleid $gradebookroles
AND ra.contextid $relatedcontexts
JOIN (
SELECT DISTINCT ra.userid
FROM {$CFG->prefix}role_assignments ra
WHERE ra.roleid $gradebookroles
AND ra.contextid $relatedcontexts
) rainner ON rainner.userid = u.id
WHERE u.deleted = 0
$groupwheresql
ORDER BY $order";
@@ -123,13 +127,17 @@ class graded_users_iterator {
$grades_sql = "SELECT g.* $ofields
FROM {$CFG->prefix}grade_grades g
INNER JOIN {$CFG->prefix}user u ON g.userid = u.id
INNER JOIN {$CFG->prefix}role_assignments ra ON u.id = ra.userid
JOIN {$CFG->prefix}user u ON g.userid = u.id
$groupsql
WHERE ra.roleid $gradebookroles
AND ra.contextid $relatedcontexts
AND g.itemid IN ($itemids)
$groupwheresql
JOIN (
SELECT DISTINCT ra.userid
FROM {$CFG->prefix}role_assignments ra
WHERE ra.roleid $gradebookroles
AND ra.contextid $relatedcontexts
) rainner ON rainner.userid = u.id
WHERE u.deleted = 0
AND g.itemid IN ($itemids)
$groupwheresql
ORDER BY $order, g.itemid ASC";
$this->grades_rs = get_recordset_sql($grades_sql);
} else {
@@ -1217,7 +1225,7 @@ class grade_structure {
return $strparams;
}
$strparams->itemname = $element['object']->get_name();
$strparams->itemname = html_to_text($element['object']->get_name());
// If element name is categorytotal, get the name of the parent category
if ($strparams->itemname == get_string('categorytotal', 'grades')) {
+4 -4
View File
@@ -14,15 +14,15 @@ function set_row(idx) {
}
/** highlight/unset the column of a table **/
function set_col(col,gradecelloffset) {
function set_col(col,gradecelloffset,lastheaderrow) {
var table = document.getElementById('user-grades');
//highlight the column header
flip_vmarked(table,2,col);
flip_vmarked(table,lastheaderrow,col);
//add any grade cell offset (due to colspans) then iterate down the table
col += gradecelloffset;
for (var row = 3; row < table.rows.length; row++) {
for (var row = lastheaderrow + 1; row < table.rows.length; row++) {
flip_vmarked(table,row,col);
}
}
@@ -35,4 +35,4 @@ function flip_vmarked(table,row,col) {
table.rows[row].cells[col].className += ' vmarked';
}
}
}
}
+1 -1
View File
@@ -286,7 +286,7 @@ YAHOO.graderreport.mouseoverHandler = function (e) {
tempNode.className = "tooltipDiv";
tempNode.innerHTML = elTarget.title;
elTarget.appendChild(tempNode);
elTarget.title = null;
elTarget.title = "";
}
// Get the tooltip div
+55 -47
View File
@@ -78,6 +78,10 @@ class grade_report_grader extends grade_report {
* */
var $canviewhidden;
/** @var boolean, whether the current user is allowed to see the user report.
* This affects the table layout. */
var $canviewuserreport;
var $preferences_page=false;
/**
@@ -93,6 +97,7 @@ class grade_report_grader extends grade_report {
parent::grade_report($courseid, $gpr, $context, $page);
$this->canviewhidden = has_capability('moodle/grade:viewhidden', get_context_instance(CONTEXT_COURSE, $this->course->id));
$this->canviewuserreport = has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context);
// load collapsed settings for this report
if ($collapsed = get_user_preferences('grade_report_grader_collapsed_categories')) {
@@ -322,41 +327,38 @@ class grade_report_grader extends grade_report {
global $CFG;
if (is_numeric($this->sortitemid)) {
// the MAX() magic is required in order to please PG
$sort = "MAX(g.finalgrade) $this->sortorder";
$sql = "SELECT u.id, u.firstname, u.lastname, u.imagealt, u.picture, u.idnumber
FROM {$CFG->prefix}user u
JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
$this->groupsql
LEFT JOIN {$CFG->prefix}grade_grades g ON (g.userid = u.id AND g.itemid = $this->sortitemid)
WHERE ra.roleid in ($this->gradebookroles) AND u.deleted = 0
$this->groupwheresql
AND ra.contextid ".get_related_contexts_string($this->context)."
GROUP BY u.id, u.firstname, u.lastname, u.imagealt, u.picture, u.idnumber
ORDER BY $sort";
$sortjoin = "LEFT JOIN {$CFG->prefix}grade_grades g ON " .
"g.userid = u.id AND g.itemid = $this->sortitemid";
$sort = "g.finalgrade $this->sortorder";
} else {
$sortjoin = '';
switch($this->sortitemid) {
case 'lastname':
$sort = "u.lastname $this->sortorder, u.firstname $this->sortorder"; break;
$sort = "u.lastname $this->sortorder, u.firstname $this->sortorder";
break;
case 'firstname':
$sort = "u.firstname $this->sortorder, u.lastname $this->sortorder"; break;
$sort = "u.firstname $this->sortorder, u.lastname $this->sortorder";
break;
case 'idnumber':
default:
$sort = "u.idnumber $this->sortorder"; break;
$sort = "u.idnumber $this->sortorder";
break;
}
$sql = "SELECT DISTINCT u.id, u.firstname, u.lastname, u.imagealt, u.picture, u.idnumber
FROM {$CFG->prefix}user u
JOIN {$CFG->prefix}role_assignments ra ON u.id = ra.userid
$this->groupsql
WHERE ra.roleid in ($this->gradebookroles)
$this->groupwheresql
AND ra.contextid ".get_related_contexts_string($this->context)."
ORDER BY $sort";
}
$sql = "SELECT u.id, u.firstname, u.lastname, u.imagealt, u.picture, u.idnumber
FROM {$CFG->prefix}user u
$this->groupsql
$sortjoin
JOIN (
SELECT DISTINCT ra.userid
FROM {$CFG->prefix}role_assignments ra
WHERE ra.roleid IN ($this->gradebookroles)
AND ra.contextid " . get_related_contexts_string($this->context) . "
) rainner ON rainner.userid = u.id
WHERE u.deleted = 0
$this->groupwheresql
ORDER BY $sort";
$this->users = get_records_sql($sql, $this->get_pref('studentsperpage') * $this->page,
$this->get_pref('studentsperpage'));
@@ -662,14 +664,15 @@ class grade_report_grader extends grade_report {
//The width of the table varies depending on fixedstudents.
// $fixedstudents == 0, students and grades display in the same table.
// $fixedstudents == 1, students and grades are display in separate table.
if ($fixedstudents) {
if ($fixedstudents || !$this->canviewuserreport) {
$incrementcellindex = '0';
} else {
$incrementcellindex = '1';
}
//MDL-21088 - IE 7 ignores nowraps on tds or ths so we this in a span with a nowrap on it.
$headerhtml .= '<th class=" '.$columnclass.' '.$type.$catlevel.$hidden.'" scope="col" onclick="set_col(this.cellIndex,' . $incrementcellindex . ')"><span>'
.shorten_text($headerlink) . $arrow;
$headerhtml .= '<th class=" '.$columnclass.' '.$type.$catlevel.$hidden.
'" scope="col" onclick="set_col(this.cellIndex,' . $incrementcellindex . ',' . (count($this->gtree->levels) - 1) .
')"><span>' . shorten_text($headerlink) . $arrow;
$headerhtml .= '</span></th>';
}
@@ -745,7 +748,7 @@ class grade_report_grader extends grade_report {
//we're either going to add a th or a colspan to keep things aligned
$userreportcell = '';
$userreportcellcolspan = '';
if (has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context)) {
if ($this->canviewuserreport) {
$a->user = fullname($user, $canviewfullname);
$strgradesforuser = get_string('gradesforuser', 'grades', $a);
$userreportcell = '<th class="header userreport"><a href="'.$CFG->wwwroot.'/grade/report/'.$CFG->grade_profilereport.'/index.php?id='.$this->courseid.'&amp;userid='.$user->id.'">'
@@ -1032,7 +1035,7 @@ class grade_report_grader extends grade_report {
//either add a th or a colspan to keep things aligned
$userreportcell = '';
$userreportcellcolspan = '';
if (has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context)) {
if ($this->canviewuserreport) {
$a->user = fullname($user, $canviewfullname);
$strgradesforuser = get_string('gradesforuser', 'grades', $a);
$userreportcell = '<th class="userreport"><a href="'.$CFG->wwwroot.'/grade/report/'.$CFG->grade_profilereport.'/index.php?id='.$this->courseid.'&amp;userid='.$user->id.'">'
@@ -1146,20 +1149,24 @@ class grade_report_grader extends grade_report {
if ($showaverages) {
// find sums of all grade items in course
$SQL = "SELECT g.itemid, SUM(g.finalgrade) AS sum
$sql = "SELECT g.itemid, SUM(g.finalgrade) AS sum
FROM {$CFG->prefix}grade_items gi
JOIN {$CFG->prefix}grade_grades g ON g.itemid = gi.id
JOIN {$CFG->prefix}user u ON u.id = g.userid
JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
JOIN {$CFG->prefix}grade_grades g ON g.itemid = gi.id
JOIN {$CFG->prefix}user u ON u.id = g.userid
$groupsql
WHERE gi.courseid = $this->courseid
AND ra.roleid in ($this->gradebookroles)
AND ra.contextid ".get_related_contexts_string($this->context)."
AND g.finalgrade IS NOT NULL
$groupwheresql
JOIN (
SELECT DISTINCT ra.userid
FROM {$CFG->prefix}role_assignments ra
WHERE ra.roleid IN ($this->gradebookroles)
AND ra.contextid " . get_related_contexts_string($this->context) . "
) rainner ON rainner.userid = u.id
WHERE gi.courseid = $this->courseid
AND u.deleted = 0
AND g.finalgrade IS NOT NULL
$groupwheresql
GROUP BY g.itemid";
$sum_array = array();
if ($sums = get_records_sql($SQL)) {
if ($sums = get_records_sql($sql)) {
foreach ($sums as $itemid => $csum) {
$sum_array[$itemid] = $csum->sum;
}
@@ -1171,20 +1178,21 @@ class grade_report_grader extends grade_report {
// MDL-10875 Empty grades must be evaluated as grademin, NOT always 0
// This query returns a count of ungraded grades (NULL finalgrade OR no matching record in grade_grades table)
$SQL = "SELECT gi.id, COUNT(u.id) AS count
$sql = "SELECT gi.id, COUNT(DISTINCT u.id) AS count
FROM {$CFG->prefix}grade_items gi
CROSS JOIN {$CFG->prefix}user u
JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
LEFT OUTER JOIN {$CFG->prefix}grade_grades g ON (g.itemid = gi.id AND g.userid = u.id AND g.finalgrade IS NOT NULL)
JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
LEFT OUTER JOIN {$CFG->prefix}grade_grades g ON g.itemid = gi.id AND g.userid = u.id AND g.finalgrade IS NOT NULL
$groupsql
WHERE gi.courseid = $this->courseid
AND ra.roleid in ($this->gradebookroles)
AND ra.contextid ".get_related_contexts_string($this->context)."
AND ra.roleid IN ($this->gradebookroles)
AND u.deleted = 0
AND ra.contextid " . get_related_contexts_string($this->context) . "
AND g.id IS NULL
$groupwheresql
GROUP BY gi.id";
$ungraded_counts = get_records_sql($SQL);
$ungraded_counts = get_records_sql($sql);
$fixedstudents = $this->is_fixed_students();
if (!$fixedstudents) {
+9
View File
@@ -333,11 +333,20 @@ class grade_report {
function blank_hidden_total($courseid, $course_item, $finalgrade) {
global $CFG;
static $hiding_affected = null;//array of items in this course affected by hiding
//if we're dealing with multiple users we need to know when we've moved on to a new user
static $previous_userid = null;
if( $this->showtotalsifcontainhidden==GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN ) {
return $finalgrade;
}
//if we've moved on to another user don't return the previous user's affected grades
if ($previous_userid!=$this->user->id) {
$hiding_affected = null;
$previous_userid = $this->user->id;
}
if( !$hiding_affected ) {
$items = grade_item::fetch_all(array('courseid'=>$courseid));
$grades = array();
+2 -1
View File
@@ -100,7 +100,8 @@ class grade_report_user extends grade_report {
$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);
//comment this out to hide the range column on the user report. Control of this via a setting was added to 2.0 (MDL-20617)
$this->showrange = true;
$this->switch = grade_get_setting($this->courseid, 'aggregationposition', $CFG->grade_aggregationposition);
+1 -1
View File
@@ -208,7 +208,7 @@
$subtext = get_string('subscribe', 'forum');
}
print_heading_block($newsforum->name);
echo '<div class="subscribelink"><a href="mod/forum/subscribe.php?id='.$newsforum->id.'">'.$subtext.'</a></div>';
echo '<div class="subscribelink"><a href="mod/forum/subscribe.php?id='.$newsforum->id.'&amp;sesskey='.sesskey().'">'.$subtext.'</a></div>';
} else {
print_heading_block($newsforum->name);
}
+287
View File
@@ -0,0 +1,287 @@
<?php
/// Please, do not edit this file manually! It's auto generated from
/// contents stored in your standard lang pack files:
/// (langconfig.php, install.php, moodle.php, admin.php and error.php)
///
/// If you find some missing string in Moodle installation, please,
/// keep us informed using http://moodle.org/bugs Thanks!
///
/// File generated by cvs://contrib/lang2installer/installer_builder
/// using strings defined in stringnames.txt (same dir)
$string['admindirerror'] = 'གསལ་བཀོད་འབད་ཡོད་པའི་ བདག་སྐྱོང་སྣོད་ཐོ་འདི་ བདེན་མེད་ཨིན་མས།';
$string['admindirname'] = 'བདག་སྐྱོང་ སྣོད་ཐོ་';
$string['admindirsettinghead'] = 'བདག་སྐྱོང་ སྣོད་ཐོ་ གཞི་སྒྲིག་འབད་དོ།';
$string['admindirsettingsub'] = 'ཝེབ་ ཧོསིཊི་ ཉུང་སུ་གཅིག་གི་རྐྱངམ་ཅིག་གིས་ ཁྱོད་ཀྱི་ ཚད་འཛིན་པེ་ནཱལ་ ལ་སོགས་པ་ཚུ་ནང་འཛུལ་སྤྱོད་ འབད་ནིའི་དོན་ལུ་ /admin འདི་ དམིགས་བསལ་ ཡུ་ཨར་ཨེལ་ སྦེ་ ལག་ལེན་འཐབ་ཨིན་མས། དེ་འབདཝ་ད་ལུ་ འདི་ མུ་ཌེལ་ བདག་སྐྱོང་ཤོག་ལེབ་ཚུ་གི་དོན་ལུ་ ཚད་ལྡན་གནས་ཚད་དང་གཅིག་ཁར་ མི་མཐུན་པས། འ་ནི་དཀའ་ངལ་འདི་ ཁྱོད་ཀྱི་གཞི་བཙུགས་ནང་ བདག་སྐྱོང་སྣོད་ཐོ་བསྐྱར་མིང་བཏགས་ཞིནམ་ལས་ མིང་གསརཔ་དེ་ ནཱ་ལུ་བཙུག་ཐོག་ལས་ སེལ་ཚུགས།དཔེར་ན་ <br /> <br /><b>moodleadmin</b><br /> <br /> །འདི་གིས་ མུ་ཌེལ་ནང་ བདག་སྐྱོང་ འབྲེལ་མཐུད་ཚུ་ གཏན་བཟོས་འབད་ཚུགས།';
$string['bypassed'] = 'Bypassed';
$string['cannotcreatelangdir'] = 'སྐད་ཡིག་སྣོད་ཐོ་གསར་བསྐྲུན་འབད་མི་བཏུབ།';
$string['cannotcreatetempdir'] = 'གནས་སྐབས་སྣོད་ཐོ་གསར་བསྐྲུན་འབད་མི་བཏུབ།';
$string['cannotdownloadcomponents'] = 'ཕབ་ལེན་འབད་མི་བཏུབ།';
$string['cannotdownloadzipfile'] = 'ZIPཡིག་སྣོད་ཕབ་ལེན་འབད་མི་བཏུབ།';
$string['cannotfindcomponent'] = 'ཆ་ཤས་མི་ཐོབ།';
$string['cannotsavemd5file'] = 'md5ཡིག་སྣོད་སྲུང་མི་བཏུབ།';
$string['cannotsavezipfile'] = 'ZIPཡིག་སྣོད་སྲུང་མི་བཏུབ།';
$string['cannotunzipfile'] = 'ཡིག་སྣོད་unzipའབད་མི་བཏུབ།';
$string['caution'] = 'དྲན་བཏོན།';
$string['check'] = 'ཞིབ་དཔྱད་འབད';
$string['chooselanguagehead'] = 'སྐད་ཡིག་ སེལ་འཐུ་འབད།';
$string['chooselanguagesub'] = 'གཞི་བཙུགས་ཀྱི་དོན་ལུ་རྐྱངམ་ཅིག་ སྐད་ཡིག་གཅིག་སེལ་འཐུ་འབད། ཁྱོད་ཀྱིས་ ས་ཁོངས་དང་ ལག་ལེན་པའི་སྐད་ཡིག་ཚུ་ ཤུལ་མམ་གྱི་ གསལ་གཞི་ནང་ སེལ་འཐུ་འབད་ཚུགས།';
$string['closewindow'] = 'ཝིན་ཌོ་འདི་ཁ་བསྡམས།';
$string['compatibilitysettingshead'] = 'ཁྱོད་རའི་ པི་ཨེཆ་པི་ སྒྲིག་སྟངས་ཚུ་ ཞིབ་དཔྱད་འབད་དོ།';
$string['compatibilitysettingssub'] = 'མུ་ཌེལ་ ཚུལ་བཞིན་སྦེ་ལག་ལེན་འཐབ་བཏུབ་བཟོ་ནིའི་དོན་ལུ་ ཁྱོད་ཀྱི་སར་བར་ འདི་ཚུ་ག་ར་ མཐའ་འཁྱོལ་དགོ།';
$string['componentisuptodate'] = 'ཆ་ཤས་འདི་ དུས་མཐུན་སྦེ་ཡོད།';
$string['configfilenotwritten'] = 'མུ་ཌེལ་སྣོད་ཐོ་དེ་ འབྲི་བཏུབ་མི་གཅིག་མེན་ནི་འདི་གིས་ གཞི་བཙུགས་པ་འདི་གིས་ ཁྱོད་ཀྱིས་གདམ་ཁ་ བརྐྱབས་ཡོད་པའི་སྒྲིག་སྟངས་ཚུ་ཡོད་པའི་ རིམ་སྒྲིག་ པི་ཨེཆ་པི་གཅིག་ རང་བཞིན་གྱིས་ གཞི་སྒྲིག་འབད་མ་ཚུགས། མུ་ཌེལ་གྱི་ སྣོད་ཐོ་རྩ་བའི་ནང་འཁོད་ནང་ལུ་ config.php ཟེར་མིང་བཏགས་ཡོད་མི་ ཡིག་སྣོད་གཅིག་ནང་ལུ་ ཁྱོད་ཀྱིས་ འོག་གི་ཨང་རྟགས་ཚུ་ འདྲ་བཤུས་བརྐྱབ་ཚུགས།';
$string['configfilewritten'] = 'རིམ་སྒྲིག་ པི་ཨེཆ་པི་ མཐའ་འཁྱོལ་ཅན་སྦེ་ གསར་བསྐྲུན་འབད་ཡོདཔ།';
$string['configurationcompletehead'] = 'རིམ་སྒྲིག་ མཇུག་བསྡུ་ཡོདཔ།';
$string['configurationcompletesub'] = 'མུ་ཌེལ་གྱིས་ཁྱོད་ཀྱི་རིམ་སྒྲིག་འདི་ ཁྱོད་རའི་ མུ་ཌེལ་གཞི་བཙུགས་རྩ་བའི་ནང་གི་ཡིག་སྣོད་གཅིག་ནང་ སྲུངས་ནིའི་དཔའ་བཅམས་ཡི།';
$string['continue'] = 'འཕྲོ་མཐུད་དེ་འབད';
$string['ctyperecommended'] = 'གདམ་ཁ་ཅན་ པི་ཨེཆ་པི་སི་ཀྲའིཔ་ གཙུག་ནི་དེ་ བརྒྱ་བསྐྱེད་འབད་ནི་དེ་ རྒྱ་ཆེ་དྲག་འབད་ འོས་སྦྱོར་འབད་ཡོད་མི་དེ་ ས་ཁོངས་ལཱ་ཤུགས་དང་འཁྲིལ་ཡར་དྲག་འབད་ནི་དང་ དམིགས་བསལ་དུ་ གལ་སྲིད་ཁྱོད་ཀྱི་
ས་ཁོངས་འདི་ ལ་ཀྲིན་དང་མ་འཁྲིལ་བའི་ ཁ་སྐད་ཚུ་ལུ་རྒྱབ་སྐྱོར་འབད་བ་ཅིན་ཨིན།';
$string['ctyperequired'] = 'སི་ཀྲའིཔ་པི་ཨེཆ་པི་འདི་ ད་ལྟོ་རྒྱ་བསྐྱེད་འབད་ནི་འདི་ མུ་དྲིལ་གྱི་དགོས་མཁོ་ཡོདཔ་ཨིན། ལཱ་ཤུགས་ས་ཁོངས་ཡར་དྲག་དང་འཁྲིལ་ འབད་ནི་དང་ སྐད་སྣ སྨྲ་བའི་མཐུན་འགྱྲུར་འབད་ནི་ལུ་བྱིན་དགོཔ་ཨིན།';
$string['curlrecommended'] = 'གདམ་ཁ་ཅན་ལུ་གཙུག་ནི་ སི་ཡུ་ཨར་ཨེལ་ དཔེ་མཛོད་འདི་ཡོངས་འབྲེལ་བཟོ་བའི་ལས་འགན་མུ་དྲིལ་ལྕོགས་ཅན་དེ་དང་འཁྲིལ་ ཆེ་མཐོའི་འོས་སྦྱོར་འབད་ཡོདཔ་ཨིན།';
$string['customcheck'] = 'ཞིབ་དཔྱད་གཞན་མི་ཚུ།';
$string['database'] = 'གནས་སྡུད་གཞི་རྟེན།';
$string['databasecreationsettingshead'] = 'གནས་སྡུད་གཞི་རྟེན་སྒྲིག་སྟངས་ཚུ་ མུ་ཌེལ་གནས་སྡུད་ མང་སུ་གཅིག་ག་ཏེ་ལུ་ གསོག་འཇོག་འབད་ས་ལུ་ རིམ་སྒྲིག་འབད་དགོ། འ་ནི་ གནས་སྡུད་གཞི་རྟེན་ཚུ་ གཞི་བཙུགས་པ་གིས་ རང་བཞིན་གྱིས་སྦེ་ འོག་ལུ་ གསལ་བཀོད་འབད་ཡོད་མི་སྒྲིག་སྟངས་ཚུ་དང་གཅིག་ཁར་ གསར་བསྐྲུན་འབད་དེ་འོང་།';
$string['databasecreationsettingssub'] = '<b>Type:</b> fixed to \"mysql\" by the installer<br />
<b>Host:</b> fixed to \"localhost\" by the installer<br />
<b>Name:</b> database name, eg moodle<br />
<b>User:</b> fixed to \"root\" by the installer<br />
<b>Password:</b> your database password<br />
<b>Tables Prefix:</b> optional prefix to use for all table name';
$string['databasesettingshead'] = 'གནས་སྡུད་གཞི་ཚུ་ མུ་ཌེལ་གནས་སྡུད་ མང་སུ་གཅིག་ག་ཏེ་ལུ་ གསོག་འཇོག་འབད་ས་ལུ་ རིམ་སྒྲིག་འབད་དགོ། འ་ནི་ གནས་སྡུད་གཞི་རྟ྄ེན་ནང་འཛུལ་སྤྱོད་འབད་ནིའི་དོན་ལུ་ གནས་སྡུད་གཞི་རྟེན་འདི་གིས་ ཧེ་མ་ལས་རང་ ལག་ལེན་པའི་མིང་དང་ ཆོག་ཡིག་ གསར་བསྐྲུན་འབད་དེ་འོང་།';
$string['databasesettingssub'] = '<b>Type:</b> mysql ཡང་ན་ postgres7<br />
<b>ཧོསིཊ་t:</b> དཔེར་ན་localhost or db.isp.com<br />
<b>མིང་:</b> གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་ དཔེར་ན་ མུ་ཌེལ་<br />
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་ ལག་ལེན་པའི་མིང་e<br />
<b>ཆོག་ཡིག་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་ ཆོག་ཡིག་<br />
<b>Tables Prefix:</b> optional prefix to use for all table names';
$string['databasesettingssub_mssql'] = '<b>Type:</b> SQL*Server (non UTF-8) <b><strong class=\"errormsg\">Experimental! (not for use in production)</strong></b><br />
<b>ཧོསིཊི་:</b> eg localhost or db.isp.com<br />
<b>མིང་:</b> གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་, eg མུ་ཌེལ་<br />
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་<br />
<b>Password:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ཆོག་ཡིག་<br />
<b>Tables Prefix:</b> prefix to use for all table names (mandatory)';
$string['databasesettingssub_mssql_n'] = '<b>Type:</b> SQL*Server (UTF-8 enabled)<br />
<b>ཧོསིཊི་:</b> eg localhost or db.isp.com<br />
<b>མིང་:</b>གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་, eg མུ་ཌེལ་<br />
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ལག་ལེན་པའི་མིང་<br />
<b>ཆོག་ཡིག་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ཆོག་ཡིག་<br />
<b>Tables Prefix:</b> prefix to use for all table names (mandatory)';
$string['databasesettingssub_mysql'] = '<b>Type:</b> MySQL<br />
<b>ཧོསིཊ་t:</b> eg localhost or db.isp.com<br />
<b>མིང་:</b> གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་, eg moodle<br/>
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ལག་ལེན་པའི་མིང་ />
<b>ཆོག་ཡིག་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ཆོག་ཡིག་<br />
<b>Tables Prefix:</b> prefix to use for all table names (optional)';
$string['databasesettingssub_mysqli'] = '<b>Type:</b> Improved MySQL<br />
<b>ཧོསིཊ:</b> eg localhost or db.isp.com<br />
<b>མིང་:</b> གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་e, eg moodle<br />
<b>User:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ལག་ལེནཔའིམིང་<br/>
<b>Password:</b> ཁྱོད་རའི་ གནས་སྡུད་གཞི་རྟེན་གྱི་ཆོགཡིག་<br/>
<b>Tables Prefix:</b> prefix to use for all table names (optional)';
$string['databasesettingssub_oci8po'] = '<b>Type:</b> Oracle<br />
<b>Host:</b> not used, must be left blank<br />
<b>Name:</b> given name of the tnsnames.ora connection<br />
<b>User:</b> your database username<br />
<b>Password:</b> your database password<br />
<b>Tables Prefix:</b> prefix to use for all table names (mandatory, 2cc. max)';
$string['databasesettingssub_odbc_mssql'] = '<b>Type:</b> SQL*Server (over ODBC) <b><strong class=\"errormsg\">Experimental! (not for use in production)</strong></b><br />
<b>ཧོསིཊ:</b> given name of the DSN in the ODBC control panel<br />
<b>མིང་:</b> གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་, eg moodle<br />
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ལག་ལེན་པའི་མིང<br/>
<b>ཆོག་ཡིག་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ཆོག་ཡིག་<br />
<b>Tables Prefix:</b> prefix to use for all table names (mandatory)';
$string['databasesettingssub_postgres7'] = '<b>Type:</b> PostgreSQL<br />
<b>ཧོསིཊ་:</b> eg localhost or db.isp.com<br />
<b>མིང་:</b>གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་, eg moodle<br />
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་་<br />
<b>ཆོག་ཡིག་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ཆོག་ཡིག་<br />
<b>Tables Prefix:</b> prefix to use for all table names (mandatory)';
$string['databasesettingswillbecreated'] = '<b>དྲན་དགོཔ་:</b> གཞི་བཙུགས་པ་འདི་གི་ རང་ཕཞིན་གྱིས་ གནས་སྡུད་གཞི་རྟེན་ གསར་བསྐྲུན་འབད་ནི་དཔའ་བཅམ་འོང་།';
$string['dataroot'] = 'གནས་སྡུད་ སྣོད་ཐོ་';
$string['datarooterror'] = 'ཁྱོད་ཀྱི་གསལ་བཀོད་འབད་ཡོད་མི་ \'གནས་སྡུད་ སྣོད་ཐོ་\'དེ་ ཐོབ་མ་ཚུགས་ ཡང་ན་ གསར་བསྐྲུན་འབད་མ་ཚུགས། འགྲུལལམ་ནོར་བཅོས་འབད་ ཡང་ན་ སྣོད་ཐོ་ ལག་ཐོག་ལས་ གསར་བསྐྲུན་འབད།';
$string['datarootpublicerror'] = 'ཁྱོད་ཀྱི་གསལ་བཀོད་འབད་ཡོད་མི་ \'གནས་སྡུད་ སྣོད་ཐོ་\'དེ་ ཝེབ་བརྒྱུད་དེ་ ཐད་ཀར་དུ་ འཛུལ་སྤྱོད་འབད་བཏུབ་པས། སྣོད་ཐོ་སོ་སོ་ ལག་ལེན་འཐབ་དགོ་པས།';
$string['dbconnectionerror'] = 'ཁྱོད་ཀྱི་གསལ་བཀོད་འབད་ཡོད་མི་ གནས་སྡུད་གཞི་རྟེན་ལུ་ འབྲེལ་མཐུད་འབད་མི་ཚུགས་པས། ཁྱོད་རའི་ གནས་སྡུད་གཞི་རྟེན་སྒྲིག་སྟངས་ཚུ་ ཞིབ་དཔྱད་འབད་གནང་།';
$string['dbcreationerror'] = 'གནས་སྡུད་གཞི་རྟེན་ གསར་བསྐྲུན་འབད་ནི་ལུ་ འཛོལ་བ། བྱིན་ཏེ་ཡོད་མི་ སྒྲིག་སྟངས་ཚུ་གིས་ གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་གསར་བསྐྲུན་འབད་མ་ཚུགས།';
$string['dbhost'] = 'ཧོསིཊ་ སར་བར།';
$string['dbprefix'] = 'ཐིག་ཁྲམ་ སྔོན་ཚིག་';
$string['dbtype'] = 'དབྱེ་བ།';
$string['dbwrongencoding'] = 'སེལ་འཐུ་འབད་ཡོད་མི་གནས་སྡུད་གཞི་རྟེན་འདི་ འོས་སྦྱོར་མ་འབད་བའི་ ཨིན་ཀོ་ཌིང་གཅིག་($a)གི་འོག་ལུ་ གཡོག་བཀོལ་འབད་དེ། འདི་གི་ཚབ་ལུ་ ཡུ་ནི་ཀོཌ་(UTF-8) ཨིན་ཀོཌི་འབད་ཡོད་མི་ གནས་སྡུད་གཞི་རྟེན་ལག་ལེན་འཐབ་པ་ཅིན་དྲག་འོང་། ཨིན་རུང་ ཁྱོད་ཀྱིས་ བརྟག་ཞིབ་འདི་ \"Skip DB Encoding Test\" སེལ་འཐུ་འབད་ཐོག་ལས་ ཟུར་ཏེ་འགྱོ་ཚུགས་ དེ་འབདཝ་ད་ལུ་ མ་འོངས་པ་ལུ་ ཁྱོད་ལུ་ དཀའ་ངལ་ཚུ་འབྱུང་འོང་།';
$string['dbwronghostserver'] = 'ཁྱོད་ཀྱིས་ ལྟག་ལུ་གསལབཤད་འབད་ཡོད་མི་ \"Host\" ལམ་ལུགས་ཚུ་དང་འཁྲིལ་དགོ།';
$string['dbwrongnlslang'] = 'ཁྱོད་ཀྱི་ཝེབ་སར་བར་ནང་གི་ NLS_LANG མཐའ་འཁོར་འགྱུར་ཅན་གྱིས་ AL32UTF8 ཡིག་འབྲུའི་གཞི་སྒྲིག་ ལག་ལེན་འཐབ་དགོ། OCI8 ཚུལ་ལྡན་སྦེ་ ལག་ལེན་འཐབ་ནིའི་དོན་ལུ་ PHP ཡིག་ཐོག་བཀོད་པ་ནང་ གཟིགས་གནང་།';
$string['dbwrongprefix'] = 'ཁྱོད་ཀྱིས་ ལྟག་ལུ་གསལབཤད་འབད་ཡོད་མི་ \"Tables Prefix\" ལམ་ལུགས་ཚུ་དང་འཁྲིལ་དགོ།';
$string['directorysettingshead'] = 'མུ་ཌེལ་གཞི་བཙུགས་འདི་གི་ གནས་ཁོངས་ཚུ་ ངེས་དཔྱད་འབད་གནང་།';
$string['directorysettingssub'] = '<p><b>ཝེབ་ ཁ་བྱང་ཚུ་:</b>
མུ་ཌེལ་འདི་ག་ཏེ་ལུ་ འཛུལ་སྤྱོད་འབད་ནི་ཨིན་ན ཝེབ་ཁ་བྱང་ ཆ་ཚང་གསལ་བཀོད་འབད་གནང་། ཁྱོད་ཀྱི་ ཝེབ་ས་ཁོངས་འདི་ སྣ་མང་ ཡུ་ཨར་ཨེལ་བརྒྱུད་དེ་ འཛུལ་སྤྱོད་འབད་བཏུབ་པ་ཅིན་ ཁྱོད་རའི་སློབ་ཕྲུགཚུ་གིས་ལག་ལེན་འཐབ་ནིའི་དོན་ལུ་ བཅོས་མིན་དེ་རང་བཞག་གནང་། རྒྱབ་ལུས་ གཡོ་ཤད་ བཙུགས་མ་གནང་།
<br />
<br />
<b>མུ་ཌེལ་ སྣོད་ཐོ:</b>
གཞི་བཙུགས་འདི་ལུ་ སྣོད་ཐོའི་འགྲུལ་ལམ་ ཆ་ཚང་ གསལ་བཀོད་འབད་གནང་།
ཚུགས་ཡིག་/མགྱོགས་ཡིག་ཚུ་ ངེས་བེདན་སྦེ་ བཙུགས་གནང་།</p>
<br />
<br />
<p><b>གནས་སྡུད་ སྣོད་ཐོ་:</b>
མུ་ཌེལ་གྱིས་ སྐྱེལ་བཙུགས་་འབད་ཡོད་མི་ ཡིག་སྣོད་ཚུ་སྲུང་བཞག་འབད་ནིའི་དོན་ལུ་ ས་སྒོ་གཅིག་དགོ་པས། འ་ནི་ སྣོད་ཐོ་འདི་ ཝེབ་སར་བར་ ལག་ལེན་པ་ (usually \'nobody\' or \'apache\')གིས་ ལྷག་བཏུབ་དང་འབྲི་ཚུགསཔ་སྦེ་འོང་དགོ། དེ་འབདཝ་ད་ལུ་ ཕྲང་ཕྲང་རང་ ཝེབ་བརྒྱུད་དེ་ འཛུལ་སྤྱོད་འབད་མ་བཏུབ་སྦེ་དགོ།';
$string['dirroot'] = 'མུ་ཌལ་ སྣོད་ཐོ།';
$string['dirrooterror'] = '\'མུ་ཌེལ་ སྣོད་ཐོ་\' སྒྲིག་སྟངས་འདི་ མེནམ་ཨིནམ་བཟུམ་ཅིག་འདུག། ང་བཅས་ཀྱིས་འདི་ནང་ལུ་ མུ་ཌལ་གཞི་བཙུགས་གཅིག་མཐོངམ་མས། འོག་ལུ་ཡོད་མི་ བེ་ལུ་དེ་ སླར་སྒྲིག་འབད་ནུག།';
$string['download'] = 'ཕབ་ལེན།';
$string['downloadedfilecheckfailed'] = 'ཕབ་ལེན་འབད་ཡོད་པའི་ཡིག་སྣོད་ཞིབ་དཔྱད་འཐུས་ཤོར་བྱུང་ཡོདཔ།';
$string['downloadlanguagebutton'] = '&quot;$a&quot; language pack ཕབ་ལེན་འབད།';
$string['downloadlanguagehead'] = 'language pack ཕབ་ལེན་འབད།';
$string['downloadlanguagenotneeded'] = 'སྔོན་སྒྲིག་ anguage pack, \"$a\" ལག་ལེན་འཐབ་སྟེ་ གཞི་བཙུགས་དེ་ འཕྲོ་མཐུད་དེ་འབད།';
$string['downloadlanguagesub'] = 'ད་ཁྱོད་ལུ་ འ་ནི་སྐད་ཡིག་ནང་ལུ་ language pack ཕབ་ལེན་འབད་ནི་དང་ གཞི་བཙུགས་འཕྲོ་མཐུད་འབད་ནིའི་གདམ་ཁ་ཡོད། <br /><br /> ག་དེམ་ཅིག་སྦེ་ language pack ཕབ་ལེན་འབད་མ་ཚུགས་པ་ཅིན་ ལས་སྦྱོར་འདི་ ཨིན་སྐད་ནང་ འཕྲོ་མཐུད་འབད་འོང་།(གཞི་བཙུགས་ལས་སྦྱོར་དེ་ མཇུག་བསྡུ་ཞིནམ་ལས་ ཁྱོད་ལུ་ language packs ཁ་སྐོང་ཚུ་ ཕབ་ལེན་འབད་ནི་དང་གཞི་བཙུགས་འབད་ནིའི་གོ་སྐབས་ཡོད།)';
$string['environmenterrortodo'] = 'འ་ནི་མུ་ཌེལ་ཐོན་རིམ་འདི་འཕྲོ་མཐུད་དི་གཞི་བཙུགས་མ་འབད་བའི་ཧེ་མ་ ཁྱོད་ཀྱི་གོང་གི་གནས་སྟངས་ཀྱི་དཀའ་ངལ་(འཛོལ་བ་)་ཚུ་སེལ་དགོ།!';
$string['environmenthead'] = 'ཁྱོད་རའི་ མཐའ་འཁོར་ཞིབ་དཔྱད་འབད་དོ།';
$string['environmentrecommendcustomcheck'] = 'འ་ནི་བརྟག་ཞིབ་ཀྱི་འཐུས་ཤོར་བྱུང་པ་ཅིན་ དཀའ་ངལ་ཡོད་པའི་བརྡ་སྟོན་ཨིན།';
$string['environmentrecommendinstall'] = 'གྲུབ་འབྲས་ལེགས་ཤོས་ཀྱི་དོན་ལུ་གཞི་བཙུགས་འབད་དི་ལྕོགས་ཅན་བཟོ་དགོ།';
$string['environmentrecommendversion'] = 'ཐོན་རིམ་ $a->needed་འདི་འོས་སྦྱོར་ཡོདཔ་ལས་ ཁྱོད་ཀྱི་$a->current་གཡོག་བཀོལ་བའི་བསྒང་ཡོད།';
$string['environmentrequirecustomcheck'] = 'བརྟག་ཞིབ་འདི་མཐར་འཁྱོལ་དགོ།';
$string['environmentrequireinstall'] = 'གཞི་བཙུགས་འབད་དི་ལྕོགས་ཅན་བཟོ་དགོ།';
$string['environmentrequireversion'] = 'ཐོན་རིམ་ $a->needed་དགོས་མཁོ་ཡོདཔ་ལས་ ཁྱོད་ཀྱི་$a->current་གཡོག་བཀོལ་བའི་བསྒང་ཡོད།';
$string['environmentsub'] = 'ང་བཅས་ཀྱིས་ ཁྱོད་ཀྱི་ རིམ་ལུགས་ཀྱི་ཆ་ཤས་འདྲ་མིན་སྣ་ཚོགས་ཚུ་གིས་ རིམ་ལུགས་ཀྱི་དངོསམཁོ་ཚུ་དང་ མཐུན་མི་མཐུན་ ཞིབ་དཔྱད་འབད་དོ།';
$string['environmentxmlerror'] = 'མཐའ་འཁོར་གནས་སྡུད་ལྷག་པའི་བསྒང་ འཛོལ་བ་འབྱུང་ཡོད།($a->error_code)';
$string['error'] = 'འཛོལ་བ།';
$string['fail'] = 'འཐུས་ཤོར།';
$string['fileuploads'] = 'ཡིག་སྣོད་ སྐྱེལ་བཙུགས།';
$string['fileuploadserror'] = 'འ་ནི་འདི་ ཨཱོན་སྦེ་འོང་དགོ།';
$string['fileuploadshelp'] = '<p>ཁྱོད་ཀྱི་སར་བར་གུ་ ཡིག་སྣོད་སྐྱེལ་བཙུགས་འབད་ནི་འདི་ ལྕོགས་མིན་བཟོ་དེ་ཡོདཔ་བཟུམ་ཅིག་འདུག།</p>
<p>མུ་ཌེལ་འདི་ད་ལྟོ་ཡང་ གཞི་བཙུགས་འབད་ཚུགས་ དེ་འབདཝ་ད་ ལྕོགས་གྲུབ་འདི་མེད་པ་ཅིན་ སློབཚན་ཡིག་སྣོད་ ཡང་ན་ ལག་ལེན་པའི་གསལ་སྡུད་གསརཔ་ཚུ་ སྐྱེལ་བཙུགས་འབད་མི་ཚུགས།</p>
<p>ཡིག་སྣོད་ སྐྱེལ་བཙུགས་ ལྕོགས་ཅན་བཟོ་ནིའི་དོན་ལུ་ ཁྱོད་(ཡན་ན་ ཁྱོད་རའི་རིམ་ལུགས་བདག་སྐྱོང་)གིས་ ཁྱོད་རའི་རིམ་ལུགས་གུ་ php.ini གི་ ཡིག་སྣོད་ངོ་མ་དེ་ ཞུན་དག་འབད་ཞིནམ་ལས་ <b>file_uploads</b> to \'1\'.</p> གི་དོན་ལུ་ སྒྲིག་སྟངས་ཚུ་ བསྒྱུར་བཅོས་འབད་དགོ།';
$string['gdversion'] = 'GD ཐོན་རིམ།';
$string['gdversionerror'] = 'གཟུགས་བརྙན་ ལས་སྦྱོར་འབད་ནི་དང་གསར་བསྐྲུན་འབད་ནིའི་དོན་ལུ་ GDདཔེ་མཛོད་དེ་དགོ།';
$string['gdversionhelp'] = '<p> ཁྱོད་ཀྱི་སར་བར་གུ་ GD གཞི་བཙུགས་འབད་དེ་མེདཔ་བཟུམ་ཅིག་འདུག།</p>
<p>GD ཟེར་མི་འདི་ མུ་ཌལ་ལུ (དཔེར་ན་ ལག་ལེན་པའི་གསལ་སྡུད་་ངོས་དཔར) ལ་སོགས་པའི་ གཟུས་བརྙན་ཚུ་ལས་སྦྱོར་འབད་ནི་དང་ (དྲན་དེབ་ཚད་ཁྲམ་ལ་སོགས་པའི་)གཟུགས་བརྙན་གསར་བསྐྲུན་འབད་ནིའི་དོན་ལུ་ པི་ཨེཆ་པི་གི་དགོ་པའི་ དཔེ་མཛོད་གཅིག་ཨིན། མུ་ཌལ་གྱིས་ GD མེད་པ་ཡང་ ལཱ་འབད་བཏུབ། འ་ནི་ ཁྱད་རྣམ་ཚུ་ ཁྱོད་ལུ་འཐོབ་མི་ཚུགས།</p>
<p> ཡུནིགསི་ནང་ PHP ལུ་ GD ཁ་སྐོང་བརྐྱབ་ནིའི་དོན་ལུ་ --with-gd parameter ལག་ལེན་འཐབ་སྟེ་ PHP ཕྱོགས་སྒྲིག་འབད།</p>
<p>ཝིན་ཌོསི་ནང་ལུ་་ php.ini ཨ་རྟག་བཟུམ་སྦེ་ ཞུན་དག་འབད་བཏུབ་མ་ཚད་ php_gd2.dll གཞི་བསྟུན་འབད་མི་ གྲལ་ཐིག་འདི་ བསམ་བཀོད་མ་འབད་བ་བཞག་བཏུབ།</p>';
$string['globalsquotes'] = 'Insecure Handling of Globals';
$string['globalsquoteserror'] = 'ཁྱོད་རའི་ PHP སྒྲིག་སྟངས་ཚུ་ གཏན་བཟོས་འབད་: register_globals and/or enable magic_quotes_gpc ལྕོགས་མིན་བཟོ།';
$string['globalsquoteshelp'] = '<p>ལྕོགས་མིན་བཟོ་ཡོད་མི་ Magic Quotes GPC དང་ ལྕོགསཅན་བཟོ་ཡོད་མི་ Register Globals མཉམ་མཐུད་ གཉིས་ཆ་རང་དུས་གཅིག་ལུ་ འོས་སྦྱོར་མི་འབད།</p>
<p> འོས་སྦྱོར་འབད་མི་སྒྲིག་སྟགས་འདི་ <b>magic_quotes_gpc = On</b> and <b>register_globals = Off</b> in your php.ini</p> ཨིན།
<p> ཁྱོད་རའི་ php.ini ནང་འཛུལ་སྤྱོད་འབད་མ་ཚུགས་པ་ཅིན་ ཁྱོད་རའི་མུ་ཌལ་སྣོད་ཐོ་གི་ནང་འཁོད་ནང་ལུ་ .htaccess ཟེར་མི་ཡིག་སྣོད་ནང་ལུ་ འོག་གི་ གྲལ་ཐིག་འདི་བཙུག་ཚུགསཔ་འོང་།:</p>
<blockquote><div>php_value magic_quotes_gpc On</div></blockquote>
<blockquote><div>php_value register_globals Off</div></blockquote>';
$string['globalswarning'] = '<p><strong>སྲུང་སྐྱོབ་ཉེན་བརྡ་ </strong>: ཚུལ་ལྡན་འབད་གཡོག་བཀོལ་ནི་ མུ་དྲིལ་དགོས་མཁོ་ཡོད་མི་ཚུ་<br />དེ་ཁྱོད་ཀྱི་ འཕྲལ་གྱི་པི་ཨེཆ་པི་གཞི་སྒྲིག་ལུ་ངེས་བདེན་བསྒྱུར་བཅོས་འབད་དགོ།.<p/><p>ཁྱོད་<em>དགོཔ་</em> གཞི་སྒྲིག་<code>register_globals=off</code>>.</p><p> གཞི་སྒྲིག་དེ་ཚུ་ ཁྱོད་ཀྱི་ཞིབ་དཔྱད་དེ་གི་ཚད་འཛིན་འབད་ཡོདཔ་<code>php.ཨའི་ཨེན་ཨའི་</code>,ཨེ་པེཆ/ཨའི་ཨའི་ཨེས་ <br />རིམ་སྒྲིག་འབད་ཡང་ན་ <code>.ཨེཆ་ཀྲི་འཛུལ་བསྐྱོད་</code> ཡིག་སྣོད.</p>';
$string['help'] = 'གྲོགས་རམ།';
$string['iconvrecommended'] = 'དམིགས་བསལ་དུ་ གལ་སྲིད་ས་ཁོངས་དེ་ ལ་ཀྲིན་ཁ་སྐད་མེད་མི་ལུ་རྒྱབ་སྐྱོར་འབད་བ་ཅིན། གདམ་ཁ་ཅན་གྱི་གཞི་བཙུགས་འབད་ནི་ ཨའི་སི་ཨོ་ཨེན་བི་ འདི་འོས་སྦྱོར་སྦོམ་འབད་ས་ཁོངས་ལཱ་ཤུགས་ཡར་དྲག་དང་འཁྲིལཝ་ད་ལུ་ལའ་འབད་ནི།';
$string['info'] = 'བརྡ་དོན';
$string['installation'] = 'གཞི་བཙུགས།';
$string['invalidmd5'] = 'ནུས་མེད་md5';
$string['langdownloaderror'] = 'སྐད་ཡིག་ \"$a\"འདི་ གཞི་བཙུགས་འབད་དེ་མིན་ནུག། གཞི་བཙུགས་འདི་ ཨིན་སྐད་ནང་ འཕྲོ་མཐུད་དེ་འབད་ནི་ཨིན།';
$string['langdownloadok'] = 'སྐད་ཡིག་ \"$a\"འདི་ མཐའ་འཁྱོལ་ཅན་སྦེ་ གཞི་བཙུགས་འབད་ཡི། གཞི་བཙུགས་འདི་ སྐད་ཡིག་འདི་ནང་རང་ འཕྲོ་མཐུད་དེ་འབད་ནི་ཨིན།';
$string['language'] = 'སྐད་ཡིག';
$string['magicquotesruntime'] = 'Magic Quotes གཡོག་བཀོལ་དུས་ཚོད་';
$string['magicquotesruntimeerror'] = 'འ་ནི་འདི་ ཨོཕ་སྦེ་ འོང་དགོ།';
$string['magicquotesruntimehelp'] = '<p>མུ་ཌལ་ ལཱ་ ཚུལ་མཐུནམ་སྦེ་འབད་ནིའི་དོན་ལུ་ Magic quotes དེ་ ཨོཕ་སྦེ་ བཞག་དགོ།</p>
<p> སྤྱིར་བཏང་ལུ་ སྔོན་སྒྲིག་གིས་ ཨོཕ་འོང་་་་་་་་་་་་་ <b>magic_quotes_runtime</b> in your php.ini file.</p> གཟིགས་གནང་།
<p><p> ཁྱོད་རའི་ php.ini ནང་འཛུལ་སྤྱོད་འབད་མ་ཚུགས་པ་ཅིན་ ཁྱོད་རའི་མུ་ཌལ་སྣོད་ཐོ་གི་ནང་འཁོད་ནང་ལུ་ .htaccess ཟེར་མི་ཡིག་སྣོད་ནང་ལུ་ འོག་གི་ གྲལ་ཐིག་འདི་བཙུག་ཚུགསཔ་འོང་།:</p>
<blockquote><div>php_value magic_quotes_runtime Off</div></blockquote>';
$string['mbstringrecommended'] = 'གཞི་བཙུགས་འབད་ནི་དོན་ལུ་ གདམ་ཁ་ཅན་གྱི་ ཨེམ་བི་ཨིས་ཊིང་ དཔེ་མཛོད་འདི་ ས་ཁོངས་ཀྱི་ལཱ་ཤུགས་ལེགས་བཟོ་ བྱེ་བྲག་ཏུ་ཁྱོད་རའི་ས་ཁོངས་འདི་གིས་ ལེ་ཊིན་མིན་པའི་སྐད་ཡིག་རྒྱབ་སྐྱོར་ཚུ་ ཧ་ཅང་གིས་ངོ་སྦྱོར་འབད་ནི།';
$string['memorylimit'] = 'དྲན་ཚད་';
$string['memorylimiterror'] = 'PHP དྲན་ཚད་འདི་ ཉུང་སུ་སྦེ་ གཞི་སྒྲིག་འབད་དེ་འདུག་་་་ ཤུལ་ལས་ཁྱོད་ལུ་དཀའ་ངལ་འབྱུང་འོང་།';
$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['missingrequiredfield'] = 'དགོ་པའི་ས་སྒོ་འདི་མིན་འདུག';
$string['moodledocslink'] = 'ཤོག་ལེབ་འདི་གི་དོན་ལུ་ མུ་ཌེལ་ཌོཀསི།';
$string['mssql'] = 'SQL*Server (mssql)';
$string['mssqlextensionisnotpresentinphp'] = 'PHP འདི་ SQL*Server དང་གཅིག་ཁར་ འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་ MSSQL རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས།php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་།';
$string['mssql_n'] = 'SQL*Server with UTF-8 support (mssql_n)';
$string['mysql'] = 'MySQL (mysql)';
$string['mysql416bypassed'] = 'ག་དེ་སྦེ་རུང་ ཁྱོད་རའི་ས་ཁོངས་འདི་ ཨཡེ་ཨེསི་ཨོ་ -8859-1 (ལེ་ཀྲིན་)སྐད་ཡིག་རྐྱངམ་ཅིག་ ཁྱོད་ཀྱི་ད་ལྟོ་གཞི་བཙུགས་འབད་བའི་ མཱའི་ཨེསི་ཀིའུ་ཨེལ་ 4.1.12 ནང་ཁྱོད་ཀྱི་འཕྲོད་མཐུད་སྦེ་ལག་ལེན་འཐབ་(ཡང་ན་ མཐོ་མི་)';
$string['mysql416required'] = 'ངི་གི་ཨེས་ ཀིའུ་ཨེལ་ ༤.༡.༡༦འདི་ མུ་དྲིལ་གཡི་དོན་ལུ་ ཐོན་རིམ་ཉུང་ཤོས་དགོས་མཁོ་ཡོདཔ་ལས་ ༡.༦ཉེན་ལེན་དང་འཁྲིལཝ་ད་ལུ་ དེ་ཁར་ཡོད་པའི་ གནས་སྡུད་གེ་ར་ གི་གཞི་བསྒྱུར་འབད་ཡོདཔ་ལས་ཤུལ་མའི་ ཡུ་ཀྲི་ཨེཕ་ ༨ལུ་འབད།';
$string['mysqlextensionisnotpresentinphp'] = 'PHP འདི་ SQL*Server དང་གཅིག་ཁར་ འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་ MSSQL རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས། ཁྱོད་རའི་php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་།';
$string['mysqli'] = 'Improved MySQL (mysqli)';
$string['mysqliextensionisnotpresentinphp'] = 'PHP འདི་ SQL*Server དང་གཅིག་ཁར་ འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་ MSSQL རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས།ཁྱོད་རའི་php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་། PHP 4 གི་དོན་ལུ་ MySQLi ཐོབ་མིཚུགས་པས།';
$string['name'] = 'མིང་།';
$string['next'] = 'ཤུལ་མམ།';
$string['oci8po'] = 'Oracle (oci8po)';
$string['ociextensionisnotpresentinphp'] = 'PHP འདི་ ཨོ་རེ་ཀཱལ་དང་གཅིག་ཁར་འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་ MSSQL རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས། ཁྱོད་རའི་ php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་།';
$string['odbcextensionisnotpresentinphp'] = 'PHP འདི་ SQL*Server དང་གཅིག་ཁར་འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་
ODBC རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས། ཁྱོད་རའི་ php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་།';
$string['odbc_mssql'] = 'SQL*Server over ODBC (odbc_mssql)';
$string['ok'] = 'བཏུབ།';
$string['opensslrecommended'] = 'གདམ་ཁ་ཅན་གྱི་ ཨོ་པིན་ཨེསི་ཨེསི་ དཔེ་མཛོད་གཞི་བཙུགས་འབད་ནི་འདི་གནམ་མེད་ས་མེད་སྦེ་ ཧ་ཅང་གིས་འོས་སྦྱོར་འབདཝ་ཨིན་--འདི་གིས་མུ་ཌུལ་ཡོངས་འབྲེལ་འབད་ནིའི་ལས་འགན་ལྕོགས་ཅན་བཟོཝ་ཨིན།';
$string['parentlanguage'] = '<< TRANSLATORS: ཁྱོད་རའི་སྐད་ཡིག་ལུ་ཁྱོད་རའི་སྐད་ཡིག་ཐུས་སྒྲིལ་ནང་ལས་རྒྱུན་རིམ་ནང་རྒྱུན་རིམ་ཚུ་མེད་པའི་སྐབས་མུ་ཌེལ་གྱིས་ལག་ལེན་འཐབ་དགོ་པའི་རྩ་ལག་སྐད་ཡིག་ཡོད་པ་ཅིན་ ནཱ་ལུ་འདི་གི་ཨང་རྟགས་གསལ་བཀོད་འབད་ འདི་ས་སྟོང་སྦེ་བཞག་པ་ཅིན་ཨིང་ལིཤ་ལག་ལེན་འཐབ་འོང་། དཔེར་ན་ : nl >>';
$string['pass'] = 'མཐར་འཁྱོལ།';
$string['password'] = 'ཆོག་ཡིག';
$string['pgsqlextensionisnotpresentinphp'] = 'PHP འདི་ PostgreSQL དང་གཅིག་ཁར་འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་ PGSQL རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས། ཁྱོད་རའི་ php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་།';
$string['php50restricted'] = 'པི་ཨེཆ་པི་5.0.x';
$string['phpversion'] = 'PHP ཐོན་རིམ།';
$string['phpversionerror'] = 'PHP ཐོན་རིམ་འདི་ ཉུང་མཐའ་ལུ་ 4.3.0 ཡང་ན་ 5.1.0 དགོ། (5.0.x ལུ་ ཤེས་ཚུགས་པའི་དཀའ་ངལ་ ལེ་ཤ་འདུག་)';
$string['phpversionhelp'] = '<p>མུ་ཌེལ་ལུ་ ཐོན་རིམ་འདི་ ཉུང་མཐའ་ལུ་ 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['postgres7'] = 'PostgreSQL (postgres7)';
$string['postgresqlwarning'] = '<strong>Note:</strong> འབྲེལ་མཐུད་འབད་ནི་ལུ་ དཀའ་ངལ་ཡོད་པ་ཅིན་ ཧོསིཊ་སར་བར་ས་ཁོངས་འདི་ host=\'postgresql_host\' port=\'5432\' dbname=\'postgresql_database_name\' user=\'postgresql_user\' password=\'postgresql_user_password\'ལུ་ གཞི་སྒྲིག་འབད་ནི་ལུ་ འབད་རྩོལ་བསྐྱེད་ཞིནམ་ལས་ གནས་སྡུད་གཞི་རྟེན་དང་ ལག་ལེན་པ་དེ་ལས་ཆོག་ཡིག་སྟོངམ་སྦེ་བཞག། བརྡ་དོན་ཧེང་བཀལ་ <a href=\"http://docs.moodle.org/en/Installing_Postgres_for_PHP\">Moodle Docs</a> ནང་ ཡོད།';
$string['previous'] = 'ཧེ་མམ།';
$string['qtyperqpwillberemoved'] = 'ཡར་བསྐྱེད་འབད་བའི་བསྒང་ ཨར་ཀིའུ་གི་དྲི་བའི་དབྱེ་བ་འདི་རྩ་བསྐྲད་གཏང་འོང་། ཁྱོད་ཀྱིས་དྲི་བའི་དབྱེ་བ་ཚུ་ལག་ལེན་མི་འཐབ་སྦེ་ འདི་འབད་ནི་འདི་གིས་ ཁྱོད་ཀྱིས་ དཀའ་ངལ་ག་ནི་ཡང་མྱོང་མི་དགོས།';
$string['qtyperqpwillberemovedanyway'] = 'ཡར་བསྐྱེད་འབད་བའི་བསྒང་ ཨར་ཀིའུ་པི་ དྲི་བ་སྡེ་རིམ་དེ་གི་ བཏོན་གཏང་ཡོདཔ། ཁྱོད་ལུ་ཡོད་པའི་ཨར་ཀིའུ་པི་དག་པ་ཅིག་ གནས་སྡུད་གཞི་རྟེན་ནང་ཡོད་པའི་དྲི་བ་ཚུ་ དང་དེ་གིས་ ལོག་གཞི་བཙུགས་ཨང་རྟགས་ལས་ མ་འབད་ཚུན་ཚོད་ ལཱ་གཡོག་འབད་ནི་དེ་ བཀག་འོང་། http://moodle.
org/mod/data/view.php?d=13&amp;rid=797
ཡར་བསྐྱེད་འཕྲོ་འཐུད་འབད་བའི་བསྒང་གི་ཧེན་མར།';
$string['remotedownloaderror'] = 'ཁྱོད་ཀྱི་སར་བར་ལུ་ཆ་ཤས་ཕབ་ལེན་འབདཝ་ད་འཛོལ་བ་བྱུང་ཡོདཔ་ལས་ པོརོག་སི་སྒྲིག་སྟངས་ཚུ་བདེན་སྦྱོར་འབད་དགོ་པའི་ཁར་ པི་ཨེཆ་པི་cURLཨེགསི་ཊེན་ཤཱན་འདི་འོས་སྦྱོར་འབད་ཡོདཔ་ཨིན། <br /><br />ཁྱོད་ཀྱིས་ ལག་ཐོག་ལས་ <a href=\"$a->url\">$a->url</a>ཕབ་ལེན་འབད་ཞིནམ་ལས་ ཁྱོད་རའི་སར་བར་ \"$a->dest\"ནང་འདྲ་བཤུས་བརྐྱབ་ཞིནམ་ལས་ དེ་ཁར་ཛིབ་འབད་བཤོལ།';
$string['remotedownloadnotallowed'] = 'ཁྱོད་ཀྱི་སར་བར་ལུ་ཆ་ཤས་ཕབ་ལེན་འབད་མི་ཆོག(allow_url_fopen འདི་ལྕོགས་མིན་བཟོ་ཡོདཔ་)། ཁྱོད་ཀྱིས་ ལག་ཐོག་ལས་ <a href=\"$a->url\">$a->url</a>ཕབ་ལེན་འབད་ཞིནམ་ལས་ ཁྱོད་རའི་སར་བར་ \"$a->dest\"ནང་འདྲ་བཤུས་བརྐྱབ་ཞིནམ་ལས་ དེ་ཁར་ཛིབ་འབད་བཤོལ།';
$string['report'] = 'སྙན་ཞུ།';
$string['restricted'] = 'བཀག་དམ་འབད་ཡོདཔ།';
$string['safemode'] = 'ཉེན་མེད་ ཐབས་ལམ།';
$string['safemodeerror'] = 'ཉེན་མེད་ཐབས་ལམ་ ཨཱོན་སྦེ་ཡོད་པའི་སྐབས་ མུ་ཌེལ་ལུ་ དཀའ་ངལ་འོང་།';
$string['safemodehelp'] = '<p>ཉེན་མེད་ཐབས་ལམ་ ཨཱོན་སྦེ་ཡོད་པའི་སྐབས་ མུ་ཌལ་ལུ་ དཀའ་ངལ་འོང་། དེ་མ་ཚད་ ཡིག་སྣོད་གསརཔ་ཚུ་ཡང་ གསར་བསྐྲུན་འབད་མི་ཚུགས་</p>
<p>ཉེན་མེད་ཐབས་ལམ་འདི་ paranoid མི་མང་ ཝེབ་ ཧོསིཊ་ རྐྱངམ་ཅིག་གིས་ ལྕོགས་ཅན་བཟོ་དེ་འོང་། དེ་འབདཝ་ལས་ ཁྱོད་རའི་མུ་ཌལ་ས་ཁོངས་ཀྱི་དོན་ལུ་ ཝེབ་་ཧོསིཊིང་ ཚོང་སྡེ་གསརཔ་ འཚོལ་དགོཔ་འོང་།</p>
<p>ཁྱོད་ར་ འབད་དགོ་མནོ་བ་ཅིན་ གཞི་བཙུགས་འཕྲོ་མཐུད་འབད་ དེ་འབདཝ་ད་ ཤུལ་ལས་ དཀའ་ངལ་ ཨ་མི་རེ་ འཐོན་འོང་།</p>';
$string['serverchecks'] = 'སར་བར་ ཞིབ་དཔྱད་འབད་ནི་ཚུ།';
$string['sessionautostart'] = 'ལཱ་ཡུན་ རང་བཞིན་འགོ་བཙུགས།';
$string['sessionautostarterror'] = 'འ་ནི་འདི་ ཨོཕ་སྦེ་འོང་དགོ།';
$string['sessionautostarthelp'] = '<p>མུ་ཌེལ་ལུ་ ལཱཡུན་རྒྱབ་སྐྱོར་དགོཔ་དང་ འདི་མེད་པ་ཅིན་ ལཱ་འབད་མི་བཏུབ།</p>
<p>ལཱ་ཡུན་ཚུ་ php.ini ཡིག་སྣོད་ནང་ ལྕོགས་ཅན་བཟོ་བཏུབ་་་་session.auto_start parameter འཚོལ།</p>';
$string['skipdbencodingtest'] = 'DB ཨིན་ཀོཌིང་ བརྟག་ཞིབ་ གོམ་འགྱོ།';
$string['status'] = 'གནས་ཚད';
$string['thischarset'] = 'UTF-8';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Dzongkha';
$string['unicoderecommended'] = 'ཁྱོད་རའི་གནས་སྡུད་ཚུ་གེ་ར་ཡུ་ནི་ཀོཌི་(ཡུ་ཊི་ཨེཕ་-༨་)་ནང་གསོག་འཇོག་འབད་ནི་འོས་སྦྱོར་ཡོད།
ཡུ་ནི་ཀོཌི་འབད་བཞག་པའི་སྔོན་སྒྲིག་ཡིག་འབྲུ་ཡོད་པའི་གནས་སྡུད་གཞི་རྟེན་ནང་ལུ་ གསརཔ་གཞི་བཙུགས་འབད་ནི་ཚུ་འབད་དགོ། གལ་སྲིད་ཡར་བསྐྱེད་འབད་བ་ཅིན་ ཁྱོད་ཀྱི་ ཡུ་ཊི་ཨེཕ་-༨་གཞིས་སྤོ་ནིའི་ལས་སྦྱོར་འདི་གཡོག་གཀོལ་དགོ།';
$string['unicoderequired'] = 'ཁྱོད་རའི་གནས་སྡུད་ཚུ་གེ་ར་ཡུ་ནི་ཀོཌི་རྩ་སྒྲིག་(ཡུ་ཊི་ཨེཕ་-༨་)་ནང་གསོག་འཇོག་འབད་ནི་དགོས་མཁོ་ཡོད། ཡུ་ནི་ཀོཌི་འབད་བཞག་པའི་སྔོན་སྒྲིག་ཡིག་འབྲུ་ཡོད་པའི་གནས་སྡུད་གཞི་རྟེན་ནང་ལུ་ གསརཔ་གཞི་བཙུགས་འབད་ནི་ཚུ་འབད་དགོ། གལ་སྲིད་ཡར་བསྐྱེད་འབད་བ་ཅིན་ ཁྱོད་ཀྱི་ ཡུ་ཊི་ཨེཕ་-༨་གཞིས་སྤོ་ནིའི་ལས་སྦྱོར་འདི་གཡོག་གཀོལ་དགོ།(བདག་སྐྱོང་གི་ཤོག་ལེབ་དེ་བལྟ།)';
$string['user'] = 'ལག་ལེན་པ།';
$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>མུ་ཌེལ་</strong> གཞི་སྒྲིག་ འཕྲོ་མཐུད་དེ་འབད་ནིའི་དོན་ལུ་ \"Next\" ཨེབ་རྟ་གུ་ ཨེབ་གཏང་འབད།';
$string['wrongdestpath'] = 'བཞག་སྣོད་རྒྱུ་ལམ་འཛོལ་བ།';
$string['wrongsourcebase'] = 'འབྱུང་ས་URLགཞི་རྟེན་འཛོལ་བ།';
$string['wrongzipfilename'] = 'Z་IPཡིག་སྣོད་མིང་འཛོལ་བ།';
$string['wwwroot'] = 'ཝེབ་ ཁ་བྱང་ཚུ་';
$string['wwwrooterror'] = '\'ཝེབ་ཁ་བྱང་\' འདི་་ནུས་ཅན་མེན་མས་ - འ་ནི་མུ་ཌེལ་ གཞི་བཙུགས་དེ་ འདི་ནང་མེདཔ་བཟུམ་ཅིག་འདུག། འོག་ལུ་ ཡོད་མི་ བེ་ལུ་དེ་ སླར་སྒྲིག་འབད་དེ་འདུག།';
$string['xmlrpcrecommended'] = 'གདམ་ཁ་ཅན་གྱི་ཨེགསི་ཨེམ་ཨེལ་ཨར་པིསི་རྒྱ་བསྐྱེད་དེ་གཞི་བཙུགས་འབད་བ་ཅིན་མུ་ཌེལ་ཡོངས་འབྲེལ་བཟོ་ནི་ལས་འགན་ལུ་ཕན་ཐོགས་ཅན་ཅིག་ཨིན།';
$string['ziprequired'] = 'ཛིཔ་པི་ཨེཆ་པི་རྒྱ་བསྐྱེད་དེ་ད་ལྟོ་མུ་ཌེལ་ལུ་དགོས་མཁོ་ཡོད བརྡ་དོན་ཛིཔ་ཟུང་ལྡན་ཚུ་ཡང་ན་པི་སི་ཨེལ་ཛིཔ་དཔེ་མཛོད་དེ་ལས་ལྷག་སྟེ་ལག་ལེན་མ་འཐབ་སྦེ།';
?>
+1 -1
View File
@@ -313,6 +313,6 @@ $string['wrongsourcebase'] = 'Wrong source URL base';
$string['wrongzipfilename'] = 'Wrong ZIP file name';
$string['wwwroot'] = 'Web address';
$string['wwwrooterror'] = 'The \'Web Address\' does not appear to be valid - this Moodle installation doesn\'t appear to be there. The value below has been reset.';
$string['xmlrpcrecommended'] = 'Installing the optional xmlrpc extension is useful for Moodle Networking functionality.';
$string['xmlrpcrecommended'] = 'The xmlrpc extension is needed for hub communication, and useful for web services and Moodle networking';
$string['ziprequired'] = 'The Zip PHP extension is now required by Moodle, info-ZIP binaries or PclZip library are not used anymore.';
?>
+12 -10
View File
@@ -29,19 +29,19 @@ $string['chooselanguagehead'] = 'בחר שפה';
$string['chooselanguagesub'] = 'אנא בחר שפה עבור ההתקנה בלבד. תוכל לבחור בשפה שונה לאתר ולמשתמש באחד מהמסכים הבאים.';
$string['closewindow'] = 'סגור את החלון הזה';
$string['compatibilitysettingshead'] = 'בדיקת הגדרות ה-PHP שלך...';
$string['compatibilitysettingssub'] = 'השרת שלך צריך לעבור את כל בדיקות אלו כדי להפעיל את Moodle כהלכה.';
$string['compatibilitysettingssub'] = 'השרת שלך צריך לעבור סדרת בדיקות זו כדי להפעיל את Moodle כהלכה.';
$string['componentisuptodate'] = 'הרכיב מעודכן.';
$string['configfilenotwritten'] = 'תסריט (script) ההתקנה לא הצליח ליצור באופן אוטומטי את קובץ config.php המכיל את בחירת ההגדרות שלך, ייתכן שהדבר קרה בגלל שספריית ה-Moodle שלך איננה ניתנת לכתיבה. תוכל באופן ידני להעתיק את הקוד הבא לתוך קובץ config.php בספריית האם של Moodle.';
$string['configfilenotwritten'] = 'תסריט (script) ההתקנה לא הצליח ליצור באופן אוטומטי את קובץ config.php המכיל את ההגדרות שבחרת, ייתכן שהדבר קרה בגלל שספריית ה-Moodle שלך איננה ניתנת לכתיבה. תוכל להעתיק באופן ידני את הקוד הבא לתוך קובץ config.php בספריית האם של Moodle.';
$string['configfilewritten'] = 'קובץ config.php נוצר בהצלחה';
$string['configurationcompletehead'] = 'הגדרות התצורה הושלמו';
$string['configurationcompletesub'] = 'Moodle ניסה לשמור את הגדרות התצורה שלך בקובץ בספריית ה-root של התקנת ה-Moodle.';
$string['continue'] = 'המשך';
$string['ctyperecommended'] = 'התקנת ההרחבה האופציונלית ctype PHP ממולצת ביותר בכדי לשפר את ביצועי האתר, במיוחד אם האתר תומך בשפות לא-לטניות.';
$string['ctyperequired'] = 'הרחבת ה-ctype PHP כעת נדרשת ע\"י Moodle, כדי לשפר את ביצועי האתר ולהציע תאימות רב-לשונית.';
$string['curlrecommended'] = 'התקנת ספריית Curl, האופציונלית, מומלצת ביותר בכדי לאפשר ל-Moodle את פונקציונליות התקשורת';
$string['curlrecommended'] = 'התקנת ספריית Curl, האופציונלית, מומלצת ביותר בכדי לאפשר ל-Moodle את פונקציונליות Moodle Networking';
$string['customcheck'] = 'בדיקות אחרות';
$string['database'] = 'מסד נתונים';
$string['databasecreationsettingshead'] = 'כעת נותר לך לעצב את הגדרות מסד הנתונים שלך היכן שרוב נתוני Moodle יאוחסנו. מסד נתונים זה ייווצר באופן אוטומטי ע\"י ההתקנה
$string['databasecreationsettingshead'] = 'כעת יש לעצב את הגדרות מסד הנתונים שלך, בו יאוחסנו רוב נתוני Moodle. מסד נתונים זה ייווצר באופן אוטומטי בזמן ההתקנה
עם ההגדרות המצויינות להלן.';
$string['databasecreationsettingssub'] = '<b>סוג:</b> תוקן ל\"mysql\" ע\"י קובץ ההתקנה<br />
<b>מחשב מארח:</b> תוקן ל\"localhost\" ע\"י קובץ ההתקנה<br />
@@ -49,7 +49,7 @@ $string['databasecreationsettingssub'] = '<b>סוג:</b> תוקן ל\"mysql\" ע
<b>שם משתמש מסד הנתונים:</b> תוקן ל\"root\" ע\"י קובץ ההתקנה<br />
<b>סיסמה:</b> סיסמת מסד הנתונים שלך<br />
<b>תחילית הטבלאות:</b> תחילית רשות לכל שמות הטבלאות';
$string['databasesettingshead'] = 'כעת נותר לך לעצב את הגדרות מסד הנתונים שלך היכן שרוב נתוני Moodle יאוחסנו. מסד נתונים זה חייב כבר להיות קיים בנוסף שם משתמש וסיסמה לשם גישה אליו.';
$string['databasesettingshead'] = 'כעת יש לעצב את הגדרות מסד הנתונים שלך, בו יאוחסנו רוב נתוני Moodle. מסד נתונים זה חייב כבר להיות קיים בנוסף שם משתמש וסיסמה לשם גישה אליו.';
$string['databasesettingssub'] = '<b>סוג:</b> mysql או postgres7<br />
<b>מחשב מארח:</b> לדוגמה localhost או db.isp.com<br />
<b>שם:</b> database שם מסד הנתונים למשל-moodle<br />
@@ -97,9 +97,9 @@ $string['databasesettingssub_postgres7'] = '<b>סוג:</b> PostgreSQL<br />
<b>שם משתמש:</b> שם משתמש מסד הנתונים שלך<br />
<b>סיסמה:</b> סיסמת מסד הנתונים שלך<br />
<b>תחילית הטבלאות:</b> תחילית רשות לכל שמות הטבלאות (אפשרי)';
$string['databasesettingswillbecreated'] = '<b>הערה: </b> ההתקנה תנסה ליצור את מסד הנתונים אוטומטית אם הוא לא קיים.';
$string['dataroot'] = 'ספריית הנתנים';
$string['datarooterror'] = 'ספריית \"נתוני Moodle\" שציינת לא נמצאה או יכלה להיווצר. אנא תקן את נתיב זה או צור את ספרייה זו באופן ידני.';
$string['databasesettingswillbecreated'] = '<b>הערה: </b> ההתקנה תנסה ליצור את מסד הנתונים באופן אוטומטי אם אינו קיים.';
$string['dataroot'] = 'ספריית הנתונים';
$string['datarooterror'] = 'ספריית \"נתוני Moodle\" שציינת לא נמצאה או לא יכלה להיווצר. אנא תקן נתיב זה או צור ספרייה זו באופן ידני.';
$string['datarootpublicerror'] = 'ספריית ה-\'Data Directory\' שציינת ניתנת לגישה ישירות מהרשת. אתה מוכרח להשתמש בספרייה אחרת.';
$string['dbconnectionerror'] = 'לא הצלחנו להתחבר למסד הנתונים שציינת. אנא בדוק את הגדרות מסד הנתונים שלך.';
$string['dbcreationerror'] = 'חלה שגיאה ביצירת מסד הנתונים. המערכת לא הצליחה ליצור את שם מסד הנתונים שציינת עם ההגדרות שסופקו.';
@@ -181,7 +181,7 @@ $string['installation'] = 'התקנה';
$string['invalidmd5'] = 'md5 לא חוקי';
$string['langdownloaderror'] = 'לצערינו השפה \"$a\" לא הותקנה. תהליך ההתקנה ימשיך באנגלית.';
$string['langdownloadok'] = 'השפה \"$a\" הותקנה בהצלחה. תהליך ההתקנה ימשיך בשפה זו.';
$string['language'] = 'חבילת שפה';
$string['language'] = 'שפה';
$string['magicquotesruntime'] = 'Magic Quotes Run Time';
$string['magicquotesruntimeerror'] = 'חייב לנטרל זאת';
$string['magicquotesruntimehelp'] = '<p>רצוי שמשתנה Magic quotes runtime יהיה כבוי עבור Moodle בכדי שיעבור כהלכה.
@@ -197,7 +197,7 @@ $string['memorylimithelp'] = '<p>
גבול הזיכרון של ה-PHP לשרת שלך כרגע מכוון ל-$a
</p>
<p>
דבר זה עלול לגרום בעיות זיכרון בהמשך, במיוחד אם יש לך מודולים רבים פעילים אוו הרבה משתמשים. </p>
דבר זה עלול לגרום בעיות זיכרון בהמשך, במיוחד אם יש לך רכיבים רבים פעילים אוו הרבה משתמשים. </p>
<p> אנו ממליצים שתעצב את הגדרת ה-PHP עם ערך גבוה להגבלת הזיכרון, כמו 40M.
ישנן דרכים רבות לכך:
<ol>
@@ -308,4 +308,6 @@ $string['wrongsourcebase'] = 'מקור בסיס URL שגוי';
$string['wrongzipfilename'] = 'שם קובץ ZIP שגוי.';
$string['wwwroot'] = 'כתובת האתר';
$string['wwwrooterror'] = 'כתובת האתר כנראה איננה תקנית - התקנת Moodle זו כנראה איננה שם. הערך כאן אותחל.';
$string['xmlrpcrecommended'] = 'התקנת הרחבת ה-xmlrpc נדרשת לצורך פונקציונליות Moodle Networking.';
$string['ziprequired'] = 'הרחבת The Zip PHP נדרשת ע\"י Moodle, ספריות PclZip או info-ZIP binaries לא בשימוש יותר.';
?>
+41 -41
View File
@@ -26,20 +26,20 @@ $string['cannotunzipfile'] = 'ZIPファイルを解凍できません。';
$string['caution'] = '警告';
$string['check'] = 'チェック';
$string['chooselanguagehead'] = '言語を選択してください。';
$string['chooselanguagesub'] = 'インストールのみに使用する言語を選択してください。この言語はサイトのデフォルト言語としても使用されます。サイト言語は後で変更することが可能です。';
$string['chooselanguagesub'] = 'インストールのみに使用する言語を選択してください。この言語はサイトのデフォルト言語としても使用されます。サイト言語は後で変更することが可能です。';
$string['closewindow'] = 'ウィンドウを閉じる';
$string['compatibilitysettingshead'] = 'PHP設定を確認しています ...';
$string['compatibilitysettingssub'] = 'Moodleを適切に動作させるためにはあなたのサーバがこれらすべてのテストに通る必要があります。';
$string['compatibilitysettingssub'] = 'Moodleを適切に動作させるためにはあなたのサーバがこれらすべてのテストに通る必要があります。';
$string['componentisuptodate'] = 'コンポーネントは最新です。';
$string['configfilenotwritten'] = 'インストールスクリプトは自動的にあなたの選択した設定を反映したconfig.phpファイルを作成することができませんでした。おそらく、Moodleディレクトリに書き込み権が無いためだと思われます。下記のコードをconfig.phpという名称のファイルとしてMoodleのルートディレクトリにコピーすることができます。';
$string['configfilenotwritten'] = 'インストールスクリプトは自動的にあなたの選択した設定を反映したconfig.phpファイルを作成することができませんでした。おそらく、Moodleディレクトリに書き込み権が無いためだと思われます。下記のコードをconfig.phpという名称のファイルとしてMoodleのルートディレクトリにコピーすることができます。';
$string['configfilewritten'] = 'config.phpが正常に作成されました。';
$string['configurationcompletehead'] = '設定が完了しました。';
$string['configurationcompletesub'] = 'MoodleはMoodleインストレーションルートへの設定内容の保存を試みました。';
$string['configurationcompletesub'] = 'MoodleはMoodleインストレーションルートへの設定内容の保存を試みました。';
$string['continue'] = '続ける';
$string['ctyperecommended'] = 'あなたのサイトが非ラテン言語をサポートしている場合、サイトパフォーマンスを改善するため、PHP ctype拡張モジュールのインストールを強くお勧めします。';
$string['ctyperequired'] = 'サイトパフォーマンスの改善および多言語サポートを提供するため、MoodleではPHP ctype拡張モジュールが必須です。';
$string['curlrecommended'] = 'Moodleネットワーキング機能を有効にするため、cURLライブラリのインストールを強くお勧めします。';
$string['curlrequired'] = 'Moodleリポジトリと通信するため、MoodleではPHP cURL拡張モジュールが必須です。';
$string['curlrequired'] = 'Moodleリポジトリと通信するため、MoodleではPHP cURL拡張モジュールが必須です。'; // ORPHANED
$string['customcheck'] = 'その他のチェック';
$string['database'] = 'データベース';
$string['databasecreationsettingshead'] = 'ほとんどのMoodleデータが保存されるデータベース設定を行ってください。このデータベースはインストーラーにより、下記の設定が指定された形で自動的に作成されます。';
@@ -49,7 +49,7 @@ $string['databasecreationsettingssub'] = '<b>タイプ:</b> インストーラ
<b>ユーザ名:</b> インストーラーにより「root」に修正されました。<br />
<b>パスワード:</b> あなたのデータベースパスワードです。<br />
<b>テーブル接頭辞:</b> すべてのテーブル名に使用される任意の接頭辞です。';
$string['databasesettingshead'] = 'ほとんどのMoodleデータが保存されるデータベース設定を行います。このデータベースはアクセスするためのユーザ名およびパスワードとともにすでに作成されている必要があります。';
$string['databasesettingshead'] = 'ほとんどのMoodleデータが保存されるデータベース設定を行います。このデータベースはアクセスするためのユーザ名およびパスワードとともにすでに作成されている必要があります。';
$string['databasesettingssub'] = '<b>タイプ:</b> mysql または postgres7<br />
<b>ホスト:</b> localhost または db.isp.com<br />
<b>データベース名:</b> moodle<br />
@@ -101,19 +101,19 @@ $string['databasesettingssub_postgres7'] = '<b>タイプ:</b> PostgreSQL<br />
$string['databasesettingswillbecreated'] = '<b>メモ:</b> データベースが存在していない場合、インストーラーはデータベースの自動作成を試みます。';
$string['dataroot'] = 'データディレクトリ';
$string['datarooterror'] = 'あなたが指定した「データディレクトリ」が見つからないか、作成されませんでした。パスを訂正するか、ディレクトリを手動で作成してください。';
$string['datarootpublicerror'] = 'あなたが指定した「データディレクトリ」はウェブ経由でアクセスすることができます。異なるディレクトリを使用してください。';
$string['datarootpublicerror'] = 'あなたが指定した「データディレクトリ」はウェブ経由でアクセスすることができます。異なるディレクトリを使用してください。';
$string['dbconnectionerror'] = 'あなたが指定したデータベースに接続できませんでした。データベース設定を確認してください。';
$string['dbcreationerror'] = 'データベース作成エラー。設定で指定された名称のデータベースを作成できませんでした。';
$string['dbhost'] = 'ホストサーバ';
$string['dbprefix'] = 'テーブル接頭辞';
$string['dbtype'] = 'タイプ';
$string['dbwrongencoding'] = '選択したデータベースは非推奨のエンコーディング ($a) で動作しています。代わりにユニコード (UTF-8) でエンコードされたデータベースの使用をお勧めします。下記の「DBエンコーディングテストをスキップ」をチェックすることで、このテストをバイパスできますが、将来的に問題が発生する恐れがあります。';
$string['dbwrongencoding'] = '選択したデータベースは非推奨のエンコーディング ($a) で動作しています。代わりにユニコード (UTF-8) でエンコードされたデータベースの使用をお勧めします。下記の「DBエンコーディングテストをスキップ」をチェックすることで、このテストをバイパスできますが、将来的に問題が発生する恐れがあります。';
$string['dbwronghostserver'] = '上記説明の「ホスト」ルールに従ってください。';
$string['dbwrongnlslang'] = 'あなたのウェブサーバのNLS_LANG環境変数にはAL32UTF8文字セットを使用してください。OCI8を適切に設定するには、PHPドキュメンテーションをご覧ください。';
$string['dbwrongnlslang'] = 'あなたのウェブサーバのNLS_LANG環境変数にはAL32UTF8文字セットを使用してください。OCI8を適切に設定するには、PHPドキュメンテーションをご覧ください。';
$string['dbwrongprefix'] = '上記説明の「テーブル接頭辞」ルールに従ってください。';
$string['directorysettingshead'] = 'Moodleのインストール先を確認してください。';
$string['directorysettingssub'] = '<p><b>ウェブアドレス:</b>
Moodleにアクセスする完全なウェブアドレスを指定してください。複数のURIよりアクセス可能な場合は学生が利用する最も自然なURIを選択してください。末尾にスラッシュを付けないでください。</p>
Moodleにアクセスする完全なウェブアドレスを指定してください。複数のURIよりアクセス可能な場合は学生が利用する最も自然なURIを選択してください。末尾にスラッシュを付けないでください。</p>
<br />
<br />
<p><b>Moodleディレクトリ:</b>
@@ -121,7 +121,7 @@ Moodleにアクセスする完全なウェブアドレスを指定してくだ
<br />
<br />
<p><b>データディレクトリ:</b>
アップロードされたファイルをMoodleが保存する場所が必要です。 このディレクトリはウェブサーバのユーザ (通常は「nobody」または「apache」) が読み込みおよび書き込みできるようにしてください。しかし、ウェブから直接アクセスできないようにしてください。データディレクトリがない場合、インストーラーは作成を試みます。</p>';
アップロードされたファイルをMoodleが保存する場所が必要です。 このディレクトリはウェブサーバのユーザ (通常は「nobody」または「apache」) が読み込みおよび書き込みできるようにしてください。しかし、ウェブから直接アクセスできないようにしてください。データディレクトリがない場合、インストーラーは作成を試みます。</p>';
$string['dirroot'] = 'Moodleディレクトリ';
$string['dirrooterror'] = '「Moodleディレクトリ」設定が間違っているようです - インストール済みMoodleが見つかりませんでした。下記の値がリセットされました。';
$string['download'] = 'ダウンロード';
@@ -129,33 +129,33 @@ $string['downloadedfilecheckfailed'] = 'ダウンロードファイルのチェ
$string['downloadlanguagebutton'] = '「 $a 」言語パックをダウンロードする';
$string['downloadlanguagehead'] = '言語パックのダウンロード';
$string['downloadlanguagenotneeded'] = 'デフォルトの言語パック「 $a 」でインストール処理を続けることができます。';
$string['downloadlanguagesub'] = 'あなたは言語パックをダウンロードして、この言語でインストールを継続することができます。<br /><br />もし、あなたが言語パックをダウンロードできない場合、インストールは英語で継続されます。 (インストールの完了後、さらに言語パックをダウンロードして、インストールすることができます。)';
$string['downloadlanguagesub'] = 'あなたは言語パックをダウンロードして、この言語でインストールを継続することができます。<br /><br />もし、あなたが言語パックをダウンロードできない場合、インストールは英語で継続されます。 (インストールの完了後、さらに言語パックをダウンロードして、インストールすることができます。)';
$string['environmenterrortodo'] = 'このバージョンのMoodleをインストールする前に、発見された動作環境の問題 (エラー) を解消してください!';
$string['environmenthead'] = 'あなたの環境を確認しています ...';
$string['environmentrecommendcustomcheck'] = 'このテストに不適合の場合、潜在的な問題が存在することを意味します。';
$string['environmentrecommendinstall'] = '最適な動作のため、インストールおよび有効化してください。';
$string['environmentrecommendversion'] = 'バージョン $a->needed 以上を推奨します。あなたは現在 $a->current を使用しています。';
$string['environmentrequirecustomcheck'] = 'このテストにはパスする必要があります。';
$string['environmentrequirecustomcheck'] = 'このテストにはパスする必要があります。';
$string['environmentrequireinstall'] = '必ずインストールおよび有効化してください。';
$string['environmentrequireversion'] = 'バージョン $a->needed 以上が必須です。あなたは現在 $a->current を使用しています。';
$string['environmentrequireversion'] = 'バージョン $a->needed 以上が必須です。あなたは現在 $a->current を使用しています。';
$string['environmentsub'] = 'あなたのシステムに関する様々な要素が、システム要件に合致するか確認しています。';
$string['environmentxmlerror'] = '環境データ ($a->error_code) の読み込み中にエラーが発生しました。';
$string['error'] = 'エラー';
$string['fail'] = '失敗';
$string['fileuploads'] = 'ファイルアップロード';
$string['fileuploadserror'] = 'これは有効にしてください。';
$string['fileuploadshelp'] = '<p>あなたのサーバではファイルのアップロードができないようです。</p>
<p>Moodleのインストールは可能ですが、ファイルのアップロードができない場合はコースファイルやユーザプロファイルのイメージをアップロードすることができません。</p>
$string['fileuploadshelp'] = '<p>あなたのサーバではファイルのアップロードができないようです。</p>
<p>Moodleのインストールは可能ですが、ファイルのアップロードができない場合はコースファイルやユーザプロファイルのイメージをアップロードすることができません。</p>
<p>ファイルアップロードを可能にするには、あなた (またはシステム管理者) があなたのシステムのメインphp.iniファイルを編集して、<b>file_uploads</b> を「1」にする必要があります。</p>';
$string['gdversion'] = 'GDバージョン';
$string['gdversionerror'] = 'イメージの処理および作成を行うにはGDライブラリが必要です。';
$string['gdversionhelp'] = '<p>あなたのサーバにはGDがインストールされていないようです。</p>
$string['gdversionhelp'] = '<p>あなたのサーバにはGDがインストールされていないようです。</p>
<p>GDはMoodleがイメージ (ユーザプロファイルアイコン等) を処理したり、新しいイメージ (ロググラフ等) を作成するためにPHPが必要とするライブラリです。MoodleはGDなしでも動作します - イメージ処理等が使用できないだけです。</p>
<p>GDはMoodleがイメージ (ユーザプロファイルアイコン等) を処理したり、新しいイメージ (ロググラフ等) を作成するためにPHPが必要とするライブラリです。MoodleはGDなしでも動作します - イメージ処理等が使用できないだけです。</p>
<p>Unix環境下で、GDをPHPにインストールするには、PHPを --with-gd パラメータでコンパイルしてください。</p>
<p>Windows環境下ではphp.iniでphp_gd2.dllを参照している行のコメントアウトを取り除いてください。</p>';
<p>Windows環境下ではphp.iniでphp_gd2.dllを参照している行のコメントアウトを取り除いてください。</p>';
$string['globalsquotes'] = '安全では無いGlobalsのハンドリング';
$string['globalsquoteserror'] = 'PHP設定を修正してください: register_globalsを「Off」および/またはmagic_quotes_gpcを「On」';
$string['globalsquoteshelp'] = '<p>Magic Quotes GPCの無効化およびRegister Globalsの有効化の同時設定お勧めできません。</p>
@@ -165,36 +165,36 @@ $string['globalsquoteshelp'] = '<p>Magic Quotes GPCの無効化およびRegister
<p>あなたが php.ini にアクセスできない場合、Moodleディレクトリの中に .htaccess という名称のファイルを次のように記述することができます:</p>
<blockquote><div>php_value magic_quotes_gpc On</div></blockquote>
<blockquote><div>php_value register_globals Off</div></blockquote>';
$string['globalswarning'] = '<p><strong>セキュリティ警告</strong>: Moodleを適切に動作させるため、<br />現在のPHP設定を変更する必要があります。<p/><p><code>register_globals=off</code> の<em>設定を行って</em>ください。<p>この設定は<code>php.ini</code>、Apache/IIS <br />設定、または <code>.htaccess</code> ファイルの編集により管理することができます。</p>';
$string['globalswarning'] = '<p><strong>セキュリティ警告</strong>: Moodleを適切に動作させるため、<br />現在のPHP設定を変更する必要があります。<p/><p><code>register_globals=off</code> の<em>設定を行って</em>ください。<p>この設定は<code>php.ini</code>、Apache/IIS <br />設定、または <code>.htaccess</code> ファイルの編集により管理することができます。</p>';
$string['help'] = 'ヘルプ';
$string['iconvrecommended'] = 'より良いパフォーマンスを得るため、ICONVライブラリのインストールを強くお勧めします。あなたのサイトが非ラテン言語をサポートしている場合、特にお勧めします。';
$string['info'] = '情報';
$string['installation'] = 'インストレーション';
$string['invalidmd5'] = '無効なmp5ファイルです。';
$string['langdownloaderror'] = '残念ですが、言語「 $a 」がインストールされていません。インストール処理は英語で継続されます。';
$string['langdownloadok'] = '言語「 $a 」が正常にインストールされました。インストール処理はこの言語で継続されます。';
$string['langdownloadok'] = '言語「 $a 」が正常にインストールされました。インストール処理はこの言語で継続されます。';
$string['language'] = '言語設定';
$string['magicquotesruntime'] = 'Magic Quotesランタイム';
$string['magicquotesruntimeerror'] = 'これは無効にしてください。';
$string['magicquotesruntimehelp'] = '<p>Moodleを正常に動作させるためにはMagic quotesランタイムを無効にする必要があります。</p>
$string['magicquotesruntimehelp'] = '<p>Moodleを正常に動作させるためにはMagic quotesランタイムを無効にする必要があります。</p>
<p>通常はデフォルトで無効にされています ... php.iniの <b>magic_quotes_runtime</b> 設定を確認してください。</p>
<p>php.iniファイルにアクセスできない場合はMoodleディレクトリの.htaccessファイルに次の行を追加してください:</p>
<p>php.iniファイルにアクセスできない場合はMoodleディレクトリの.htaccessファイルに次の行を追加してください:</p>
<blockquote><div>php_value magic_quotes_runtime Off</div></blockquote>';
$string['mbstringrecommended'] = 'サイトパフォーマンスを改善するため、mbstringライブラリのインストールおよび稼動を強くお勧めします。あなたのサイトがラテン文字以外をサポートしている場合、特にお勧めします。';
$string['memorylimit'] = 'Memory Limit';
$string['memorylimiterror'] = 'PHPのmemory limitが低すぎます ... 後で問題が発生する可能性があります。';
$string['memorylimithelp'] = '<p>現在、サーバのPHPメモリー制限が $a に設定されています。</p>
<p>この設定ではMoodleのメモリーに関わるトラブルが発生します。 特に多くのモジュールを使用したり、多くのユーザがMoodleを使用する場合に、トラブルが発生します。</p>
<p>この設定ではMoodleのメモリーに関わるトラブルが発生します。 特に多くのモジュールを使用したり、多くのユーザがMoodleを使用する場合に、トラブルが発生します。</p>
<p>可能でしたら、PHPのメモリー制限上限を40M以上に設定されることをお勧めします。この設定を実現するために、いくつかの方法があります:
<ol>
<li>コンパイル可能な場合はPHPを<i>--enable-memory-limit</i>オプションでコンパイルしてください。
<li>コンパイル可能な場合はPHPを<i>--enable-memory-limit</i>オプションでコンパイルしてください。
これにより、Moodle自身がメモリー制限を設定することが可能になります。</li>
<li>php.iniファイルにアクセスできる場合は<b>memory_limit</b>設定を40Mのように変更することができます。php.iniファイルにアクセスできない場合は管理者に変更を依頼してください。</li>
<li>いくつかのPHPサーバでは下記の行を含む.htaccessファイルをMoodleディレクトリに作成することができます:
<li>php.iniファイルにアクセスできる場合は<b>memory_limit</b>設定を40Mのように変更することができます。php.iniファイルにアクセスできない場合は管理者に変更を依頼してください。</li>
<li>いくつかのPHPサーバでは下記の行を含む.htaccessファイルをMoodleディレクトリに作成することができます:
<blockquote><div>php_value memory_limit 40M</div></blockquote>
<p>しかし、この設定が<b>すべての</b>PHPページの動作を妨げる場合もあります。ページ閲覧中にエラーが表示される場合は.htaccessファイルを削除してください。</p></li>
<p>しかし、この設定が<b>すべての</b>PHPページの動作を妨げる場合もあります。ページ閲覧中にエラーが表示される場合は.htaccessファイルを削除してください。</p></li>
</ol>';
$string['missingrequiredfield'] = 'いくつかの必須入力フィールドが入力されていません。';
$string['moodledocslink'] = 'このページのMoodle Docs';
@@ -203,10 +203,10 @@ $string['mssqlextensionisnotpresentinphp'] = 'PHPのMSSQL拡張モジュール
$string['mssql_n'] = 'SQL*Server UTF-8サポート (mssql_n)';
$string['mysql'] = 'MySQL (mysql)';
$string['mysql416bypassed'] = 'あなたのサイトがiso-8859-1 (ラテン) 言語のみ使用している場合、現在インストールされている MySQL 4.1.12 (またはそれ以上) を使用することができます。';
$string['mysql416required'] = '将来すべてのデータをUTF-8に変換できるため、Moodle 1.6ではMySQL 4.1.16が要求される最低限のバージョンです。';
$string['mysql416required'] = '将来すべてのデータをUTF-8に変換できるため、Moodle 1.6ではMySQL 4.1.16が要求される最低限のバージョンです。';
$string['mysqlextensionisnotpresentinphp'] = 'PHPのMySQL拡張モジュールが適切に設定されていないため、MySQLと通信できません。あなたのphp.iniファイルをチェックするか、PHPを再コンパイルしてください。';
$string['mysqli'] = 'Improved MySQL (mysqli)';
$string['mysqliextensionisnotpresentinphp'] = 'PHPのMySQLi拡張モジュールが適切に設定されていないため、MySQLと通信できません。あなたのphp.iniファイルをチェックするか、PHPを再コンパイルしてください。MySQLi拡張モジュールはPHP4では使用できません。';
$string['mysqliextensionisnotpresentinphp'] = 'PHPのMySQLi拡張モジュールが適切に設定されていないため、MySQLと通信できません。あなたのphp.iniファイルをチェックするか、PHPを再コンパイルしてください。MySQLi拡張モジュールはPHP4では使用できません。';
$string['name'] = '名称';
$string['next'] = '次へ';
$string['oci8po'] = 'Oracle (oci8po)';
@@ -218,16 +218,16 @@ $string['opensslrecommended'] = 'Moodleネットワーキング機能を有効
$string['pass'] = 'パス';
$string['password'] = 'パスワード';
$string['pgsqlextensionisnotpresentinphp'] = 'PHPのPGSQL拡張モジュールが適切に設定されていないため、PostgreSQLと通信できません。あなたのphp.iniファイルをチェックするか、PHPを再コンパイルしてください。';
$string['php50restricted'] = 'PHP 5.0.x には数多くの既知の問題があります。5.1.x にアップグレードするか、4.3.x または 4.4.x にダウングレードしてください。';
$string['php50restricted'] = 'PHP 5.0.x には数多くの既知の問題があります。5.1.x にアップグレードするか、4.3.x または 4.4.x にダウングレードしてください。';
$string['phpversion'] = 'PHPバージョン';
$string['phpversionerror'] = 'PHPバージョンは少なくとも 4.3.0 または 5.1.0 をお使いください (5.0.x には既知の多数の問題があります)。';
$string['phpversionhelp'] = '<p>Moodleには少なくとも 4.3.0 または 5.1.0 のPHPバージョンが必要です (5.0.x には既知の多数の問題があります)</p>
$string['phpversionhelp'] = '<p>Moodleには少なくとも 4.3.0 または 5.1.0 のPHPバージョンが必要です (5.0.x には既知の多数の問題があります)</p>
<p>現在、バージョン $a が動作しています。</p>
<p>PHPをアップグレードするか、新しいバージョンがインストールされているホストに移動してください!<br />
(5.0.x の場合、バージョン 4.4.x にダウングレードすることもできます。)</p>';
$string['postgres7'] = 'PostgreSQL (postgres7)';
$string['postgresqlwarning'] = '<strong>メモ:</strong> あなたが接続問題を経験している場合、「Host Server」フィールドに「
host=\'postgresql_host\' port=\'5432\' dbname=\'postgresql_database_name\' user=\'postgresql_user\' password=\'postgresql_user_password\'」と入力して、「Database」「User」「Password」フィールドを空白にしてください。詳細は<a href=\"http://docs.moodle.org/en/Installing_Postgres_for_PHP\">Moodle Docs</a>をご覧ください。';
host=\'postgresql_host\' port=\'5432\' dbname=\'postgresql_database_name\' user=\'postgresql_user\' password=\'postgresql_user_password\'」と入力して、「Database」「User」「Password」フィールドを空白にしてください。詳細は<a href=\"http://docs.moodle.org/en/Installing_Postgres_for_PHP\">Moodle Docs</a>をご覧ください。';
$string['previous'] = '前へ';
$string['qtyperqpwillberemoved'] = 'アップグレード中、RQP問題タイプは削除されます。あなたはこの問題タイプを使用していませんので、トラブルが発生することはありません。';
$string['qtyperqpwillberemovedanyway'] = 'アップグレード中、RQP問題タイプは削除されます。あなたのデータベース内にRQP問題タイプが登録されています。アップグレードを続ける前に、http://moodle.org/mod/data/view.php?d=13&amp;rid=797 から対応するプログラムをインストールしない場合、これらの問題は動作しなくなります。';
@@ -238,33 +238,33 @@ $string['restricted'] = '使用禁止';
$string['safemode'] = 'セーフモード';
$string['safemodeerror'] = 'セーフモードが有効の場合、Moodleに問題が発生する場合があります。';
$string['safemodehelp'] = '<p>セーフモードが有効にされている場合、Moodleには様々な問題が発生する場合があります。 特に新しいファイルを作成することができません。</p>
<p>通常セーフモードは被害妄想を持ったウェブホストで有効にされています。Moodleサイト用に別の新しいウェブホスティング会社を探してください。</p>
<p>通常セーフモードは被害妄想を持ったウェブホストで有効にされています。Moodleサイト用に別の新しいウェブホスティング会社を探してください。</p>
<p>セーフモード環境下で、インストール作業を続けることも可能ですが、後でいくつかの問題が発生することが予想されます。</p>';
$string['serverchecks'] = 'サーバチェック';
$string['sessionautostart'] = 'セッション自動スタート';
$string['sessionautostarterror'] = 'これは無効にしてください。';
$string['sessionautostarthelp'] = '<p>Moodleはセッションサポートを必要とします。また、セッションサポートなしでは動作しません。</p>
<p>セッションはphp.iniファイルで有効にすることができます ... session.auto_startパラメータを探してください。</p>';
<p>セッションはphp.iniファイルで有効にすることができます ... session.auto_startパラメータを探してください。</p>';
$string['skipdbencodingtest'] = 'DBエンコーディングテストをスキップ';
$string['status'] = '状態';
$string['thischarset'] = 'UTF-8';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = '日本語';
$string['unicoderecommended'] = 'あなたのすべてのデータをユニコードフォーマット (UTF-8) で保存することをお勧めします。Moodleの新しいインストールはユニコードをデフォルトキャラクタにセットしたデータベースで実行してください。アップグレードの場合、UTF-8移行処理を実行してださい (詳細は管理ページをご覧ください)。';
$string['unicoderequired'] = 'あなたのすべてのデータをユニコードフォーマット (UTF-8) で保存することが必須です。Moodleの新しいインストールはユニコードをデフォルトキャラクタにセットしたデータベースで実行してください。アップグレードの場合、UTF-8移行処理を実行してださい (詳細は管理ページをご覧ください)。';
$string['unicoderecommended'] = 'あなたのすべてのデータをユニコードフォーマット (UTF-8) で保存することをお勧めします。Moodleの新しいインストールはユニコードをデフォルトキャラクタにセットしたデータベースで実行してください。アップグレードの場合、UTF-8移行処理を実行してださい (詳細は管理ページをご覧ください)。';
$string['unicoderequired'] = 'あなたのすべてのデータをユニコードフォーマット (UTF-8) で保存することが必須です。Moodleの新しいインストールはユニコードをデフォルトキャラクタにセットしたデータベースで実行してください。アップグレードの場合、UTF-8移行処理を実行してださい (詳細は管理ページをご覧ください)。';
$string['user'] = 'ユーザ';
$string['welcomep10'] = '$a->installername ($a->installerversion)';
$string['welcomep20'] = 'インストールが正常に完了したため、このページをご覧いただいています。あなたのコンピュータで <strong>$a->packname $a->packversion</strong> パッケージを起動してください。おめでとうございます!';
$string['welcomep30'] = 'このリリース <strong>$a->installername</strong> には<strong>Moodle</strong> で環境を作成するアプリケーションが含まれています。すなわち:';
$string['welcomep30'] = 'このリリース <strong>$a->installername</strong> には<strong>Moodle</strong> で環境を作成するアプリケーションが含まれています。すなわち:';
$string['welcomep40'] = 'パッケージには <strong>Moodle $a->moodlerelease ($a->moodleversion)</strong> も含まれています。';
$string['welcomep50'] = 'このパッケージ内のすべてのアプリケーションの使用は個々のライセンスによって規定されています。全体の <strong>$a->installername</strong> パッケージは <a href=\"http://www.opensource.org/docs/definition_plain.html\">オープンソース</a> であり、<a href=\"http://www.gnu.org/copyleft/gpl.html\">GPL</a>ライセンスの下で配布されています。';
$string['welcomep60'] = '次からのページはあなたのコンピュータに <strong>Moodle</strong> を簡単に設定およびセットアップする手順にしたがって進みます。デフォルトの設定を使用することも、必要に応じて任意で設定を変更することもできます。';
$string['welcomep60'] = '次からのページはあなたのコンピュータに <strong>Moodle</strong> を簡単に設定およびセットアップする手順にしたがって進みます。デフォルトの設定を使用することも、必要に応じて任意で設定を変更することもできます。';
$string['welcomep70'] = '<strong>Moodle</strong>のセットアップを続けるには「次へ」ボタンをクリックしてください。';
$string['wrongdestpath'] = '宛先パスが正しくありません。';
$string['wrongsourcebase'] = 'ソースURIベースが正しくありません。';
$string['wrongzipfilename'] = 'ZIPファイル名が正しくありません。';
$string['wwwroot'] = 'ウェブアドレス';
$string['wwwrooterror'] = '「ウェブアドレス」が正しくありません - インストール済みMoodleはそこに表示されません。下記の値はリセットされました。';
$string['xmlrpcrecommended'] = '任意のxmlrpc拡張モジュールのインストールはMoodleネットワーキング機能に有用です。';
$string['ziprequired'] = 'MoodleではPHP Zip拡張モジュールが必須です。info-ZIPバイナリまたはPclZipライブラリは今後使用されません。';
$string['xmlrpcrecommended'] = '任意のxmlrpc拡張モジュールのインストールはMoodleネットワーキング機能に有用です。';
$string['ziprequired'] = 'MoodleではPHP Zip拡張モジュールが必須です。info-ZIPバイナリまたはPclZipライブラリは今後使用されません。';
?>
+2 -2
View File
@@ -144,12 +144,12 @@ $string['fileuploadshelp'] = '<p>A transferência de ficheiros para o servidor p
<p>Moodle poderá ainda ser instalado, mas sem essa funcionalidade, não poderá enviar ficheiros de uma disciplina nem fotografias de utilizadores.</p>
<p>Para habilitar a transferência de ficheiros terá que editar (ou pedir ao administrador do sistema que o faça) o ficheiro principal php.ini do seu sistema, modificando o valor de <b>file_upload</b> para \'1\', e reiniciando o servidor Web.</p>';
<p>Para activar a transferência de ficheiros terá que editar (ou pedir ao administrador do sistema que o faça) o ficheiro principal php.ini do seu sistema, modificando o valor de <b>file_upload</b> para \'1\', e reiniciando o servidor Web.</p>';
$string['gdversion'] = 'Versão do GD';
$string['gdversionerror'] = 'A biblioteca GD deverá estar instalada para processar e criar imagens.';
$string['gdversionhelp'] = '<p>O seu servidor não parece ter GD instalado.</p>
<p>GD é uma biblioteca que o PHP precisa para permitir que o Moodle processe imagens (por exemplo, para criar os icones com as fotos dos utilizadores). Moodle poderá ainda funcionar sem GD - simplesmente essas funcionalidades não estarão disponíveis.</p>
<p>GD é uma biblioteca que o PHP precisa para permitir que o Moodle processe imagens (por exemplo, para criar os ícones com as fotos dos utilizadores). Moodle poderá ainda funcionar sem GD - simplesmente essas funcionalidades não estarão disponíveis.</p>
<p>Para adicionar GD ao PHP, em Unix, compile o PHP usando o parâmetro --with-gd.</p>
+1 -1
View File
@@ -268,6 +268,6 @@ $string['wrongsourcebase'] = 'Chybné URL zdrojového serveru';
$string['wrongzipfilename'] = 'Chybné meno súboru ZIP';
$string['wwwroot'] = 'Web adresa';
$string['wwwrooterror'] = 'Táto web adresa pravdepodobne nie je platná - táto inštalácia Moodle tu pravdepodobne nie je.';
$string['xmlrpcrecommended'] = 'Pre beh sieťových funkcionalít (\"Moodle Networking\") je treba nainštalovať voliteľnú knižnicu xlmrpc.';
$string['xmlrpcrecommended'] = 'Pre beh sieťových funkcionalít (\"Moodle Networking\") je treba nainštalovať voliteľnú knižnicu xlmrpc.'; // ORPHANED
$string['ziprequired'] = 'Moodle v súčasnosti vyžaduje PHP zásuvný modul ZIP. Knižnice info-ZIP alebo PclZip už nie sú používané.';
?>
+3 -13
View File
@@ -12,25 +12,15 @@
$string['admindirerror'] = 'Khaanadda Maammulka ee meesha la dhigey waa khalad';
$string['admindirname'] = 'Khaanad Maamul';
$string['caution'] = 'Taxaddar';
$string['closewindow'] = 'Daaqaddan xidh';
$string['configfilewritten'] = '\"config.php\" si guul leh ayaa loo sameeyey';
$string['continue'] = 'Sii wad';
$string['database'] = '$a';
$string['dataroot'] = 'Khaanadda \"data\"da';
$string['error'] = 'Cillad';
$string['help'] = 'Gacan-siin';
$string['info'] = 'Maclluumaad';
$string['language'] = 'Luqad';
$string['name'] = 'Magac';
$string['next'] = 'Ka ku xiga';
$string['ok'] = 'Waayahay';
$string['password'] = 'Isgarad-erey';
$string['previous'] = 'Kii hore';
$string['gdversion'] = 'Nooca GD';
$string['moodledocslink'] = 'Qoraallada Moodle ee loogu talagalay boggan';
$string['sessionautostarterror'] = 'Kani waa in uu damisnaadaa';
$string['status'] = 'Darajo';
$string['thischarset'] = 'UTF-8';
$string['thisdirection'] = 'ltr';
$string['thislanguage'] = 'Soomaali';
$string['user'] = 'Isticmaale';
$string['user'] = 'Isticmaale';
$string['wwwroot'] = 'Cinwaan web';
?>
+5 -3
View File
@@ -39,7 +39,7 @@ $string['continue'] = 'Наставак';
$string['ctyperecommended'] = 'Инсталирање опционе PHP екстензије ctype се строго препоручује да би се унапредило функционисање сајта, поготово ако Ваш сајт подржава не-латиничне језике.';
$string['ctyperequired'] = 'PHP екстензије ctype је сада обавезна за Moodle, да би се унапредило функционисање сајта и да би се нудила вишејезична компатибилност.';
$string['curlrecommended'] = 'Инсталирање опционе Curl библиотеке је врло препоручљиво, јер је она неопходна за успешно коришћење функција за умрежавање.';
$string['curlrequired'] = 'PHP екстензију cURL сада је обавезна за Moodle да би се комуницирало са Moodle репозиторијумима';
$string['curlrequired'] = 'PHP екстензију cURL сада је обавезна за Moodle да би се комуницирало са Moodle репозиторијумима'; // ORPHANED
$string['customcheck'] = 'Друге провере';
$string['database'] = 'База података';
$string['databasecreationsettingshead'] = 'Сада је потребно конфигурисати подешавања базе података у којој ће се чувати највећи део Moodle података. Та база података ће бити креирана аутоматски приликом инсталације, са подешавањима специфицираним испод.';
@@ -226,12 +226,14 @@ $string['password'] = 'Лозинка';
$string['pgsqlextensionisnotpresentinphp'] = 'PHP није био прописно конфигурисан са PGSQL екстензијом тако да може комуницирати са PostgreSQLом. Молимо Вас да проверите своју php.ini датотеку или опет компајлирате PHP.';
$string['php50restricted'] = 'PHP 5.0.x има више познатих проблема, молимо унапредите PHP на верзије 5.1.x или инсталирајте верзију 4.3.x односно 4.4.x';
$string['phpversion'] = 'PHP верзија';
$string['phpversionerror'] = 'PHP верзија мора бити бар 4.3.0 или 5.1.0 (5.0.x функционише уз бројне уочене проблеме)'; // ORPHANED
$string['phpversionerror'] = 'PHP верзија мора бити бар 4.3.0 или 5.1.0 (5.0.x функционише уз бројне уочене проблеме)';
$string['phpversionhelp'] = '<p>Moodle захтева најмање PHP верзију 4.3.0 или 5.1.0 (5.0.x функционише уз бројне уочене проблеме).</p>
<p>Тренутно имате верзију $a</p>
<p>Морате надоградити PHP или преместити Moodle инсталацију на web сервер са новијом верзијом PHP-a!</br>
(У случају верзије 5.0.x било би добро да је снизите на 4.4.x верзију)</p>';
$string['postgres7'] = 'PostgreSQL (postgres7)';
$string['postgresqlwarning'] = '<strong>Напомена:</strong>Ако наиђете на неке проблеме са конекцијом, можете покушати да поставите поље Host Server као host=\'postgresql_host\' port=\'5432\' dbname=\'postgresql_database_name\' user=\'postgresql_user\' password=\'postgresql_user_password\'
и да оставите празна поља База података, Корисник и Лозинка. Више информација на <a href=\"http://docs.moodle.org/en/Installing_Postgres_for_PHP\">Moodle Docs</a>';
$string['previous'] = 'Претходни';
$string['qtyperqpwillberemoved'] = 'Током надоградње, RQP типови питања биће уклоњени. Нећете користити овај тип питања, тако да не очекујте проблеме у вези с тим.';
$string['qtyperqpwillberemovedanyway'] = 'Током надоградње биће уклоњен RQP тип питања. Како имате нека RQP питања у својој бази, препоручује се да поново инсталирате додатак са http://moodle.org/mod/data/view.php?d=13&amp;rid=797 пре наставка надоградње да би она могла и даље несметано да се користе.';
@@ -272,6 +274,6 @@ $string['wrongsourcebase'] = 'Погрешан изворни URL базе.';
$string['wrongzipfilename'] = 'Погрешан назив архиве.';
$string['wwwroot'] = 'Веб адреса';
$string['wwwrooterror'] = 'Наведена \'веб адреса\' се чини невалидном - ова Moodle инсталација изгледа није на њој. Вредност наведена испод је ресетована.';
$string['xmlrpcrecommended'] = 'Инсталирање опционог xmlrpc проширења је корисно за функционалност Moodle умрежавање.';
$string['xmlrpcrecommended'] = 'Инсталирање опционог xmlrpc проширења је корисно за функционалност Moodle умрежавање.'; // ORPHANED
$string['ziprequired'] = 'PHP екстензија Zip сада је обавезна за Moodle, бинарне info-ZIP датотеке и библиотека PclZip више се не користе.';
?>
+5 -3
View File
@@ -39,7 +39,7 @@ $string['continue'] = 'Nastavak';
$string['ctyperecommended'] = 'Instaliranje opcione PHP ekstenzije ctype se strogo preporučuje da bi se unapredilo funkcionisanje sajta, pogotovo ako Vaš sajt podržava ne-latinične jezike.';
$string['ctyperequired'] = 'PHP ekstenzije ctype je sada obavezna za Moodle, da bi se unapredilo funkcionisanje sajta i da bi se nudila višejezična kompatibilnost.';
$string['curlrecommended'] = 'Instaliranje opcione Curl biblioteke je vrlo preporučljivo, jer je ona neophodna za uspešno korišćenje funkcija za umrežavanje.';
$string['curlrequired'] = 'PHP ekstenziju cURL sada je obavezna za Moodle da bi se komuniciralo sa Moodle repozitorijumima';
$string['curlrequired'] = 'PHP ekstenziju cURL sada je obavezna za Moodle da bi se komuniciralo sa Moodle repozitorijumima'; // ORPHANED
$string['customcheck'] = 'Druge provere';
$string['database'] = 'Baza podataka';
$string['databasecreationsettingshead'] = 'Sada je potrebno konfigurisati podešavanja baze podataka u kojoj će se čuvati najveći deo Moodle podataka. Ta baza podataka će biti kreirana automatski prilikom instalacije, sa podešavanjima specificiranim ispod.';
@@ -226,12 +226,14 @@ $string['password'] = 'Lozinka';
$string['pgsqlextensionisnotpresentinphp'] = 'PHP nije bio propisno konfigurisan sa PGSQL ekstenzijom tako da može komunicirati sa PostgreSQLom. Molimo Vas da proverite svoju php.ini datoteku ili opet kompajlirate PHP.';
$string['php50restricted'] = 'PHP 5.0.x ima više poznatih problema, molimo unapredite PHP na verzije 5.1.x ili instalirajte verziju 4.3.x odnosno 4.4.x';
$string['phpversion'] = 'PHP verzija';
$string['phpversionerror'] = 'PHP verzija mora biti bar 4.3.0 ili 5.1.0 (5.0.x funkcioniše uz brojne uočene probleme)'; // ORPHANED
$string['phpversionerror'] = 'PHP verzija mora biti bar 4.3.0 ili 5.1.0 (5.0.x funkcioniše uz brojne uočene probleme)';
$string['phpversionhelp'] = '<p>Moodle zahteva najmanje PHP verziju 4.3.0 ili 5.1.0 (5.0.x funkcioniše uz brojne uočene probleme).</p>
<p>Trenutno imate verziju $a</p>
<p>Morate nadograditi PHP ili premestiti Moodle instalaciju na web server sa novijom verzijom PHP-a!</br>
(U slučaju verzije 5.0.x bilo bi dobro da je snizite na 4.4.x verziju)</p>';
$string['postgres7'] = 'PostgreSQL (postgres7)';
$string['postgresqlwarning'] = '<strong>Napomena:</strong>Ako naiđete na neke probleme sa konekcijom, možete pokušati da postavite polje Host Server kao host=\'postgresql_host\' port=\'5432\' dbname=\'postgresql_database_name\' user=\'postgresql_user\' password=\'postgresql_user_password\'
i da ostavite prazna polja Baza podataka, Korisnik i Lozinka. Više informacija na <a href=\"http://docs.moodle.org/en/Installing_Postgres_for_PHP\">Moodle Docs</a>';
$string['previous'] = 'Prethodni';
$string['qtyperqpwillberemoved'] = 'Tokom nadogradnje, RQP tipovi pitanja biće uklonjeni. Nećete koristiti ovaj tip pitanja, tako da ne očekujte probleme u vezi s tim.';
$string['qtyperqpwillberemovedanyway'] = 'Tokom nadogradnje biće uklonjen RQP tip pitanja. Kako imate neka RQP pitanja u svojoj bazi, preporučuje se da ponovo instalirate dodatak sa http://moodle.org/mod/data/view.php?d=13&amp;rid=797 pre nastavka nadogradnje da bi ona mogla i dalje nesmetano da se koriste.';
@@ -272,6 +274,6 @@ $string['wrongsourcebase'] = 'Pogrešan izvorni URL baze.';
$string['wrongzipfilename'] = 'Pogrešan naziv arhive.';
$string['wwwroot'] = 'Web adresa';
$string['wwwrooterror'] = 'Navedena \'Web adresa\' se čini nevalidnom - ova Moodle instalacija izgleda nije na njoj. Vrednost navedena ispod je resetovana.';
$string['xmlrpcrecommended'] = 'Instaliranje opcionog xmlrpc proširenja je korisno za funkcionalnost Moodle umrežavanje.';
$string['xmlrpcrecommended'] = 'Instaliranje opcionog xmlrpc proširenja je korisno za funkcionalnost Moodle umrežavanje.'; // ORPHANED
$string['ziprequired'] = 'PHP ekstenzija Zip sada je obavezna za Moodle, binarne info-ZIP datoteke i biblioteka PclZip više se ne koriste.';
?>
+6 -1
View File
@@ -450,6 +450,7 @@ $string['incompatibleblocks'] = 'Incompatible blocks';
$string['install'] = 'Install selected language pack';
$string['installedlangs'] = 'Installed language packs';
$string['intcachemax'] = 'Int. cache max';
$string['intlrecommended'] = 'Intl extension is used to improve internationalization support, such as locale aware sorting.';
$string['invalidsection'] = 'Invalid section.';
$string['invaliduserchangeme'] = 'Username \"changeme\" is reserved -- you cannot create an account with it.';
$string['iplookup'] = 'IP address lookup';
@@ -509,6 +510,8 @@ $string['maintenancemode'] = 'In Maintenance Mode';
$string['mediapluginmov'] = 'Enable .mov filter';
$string['mediapluginmp3'] = 'Enable .mp3 filter';
$string['mediapluginmpg'] = 'Enable .mpg filter';
$string['mediapluginogg'] = 'Enable .ogg filter';
$string['mediapluginogv'] = 'Enable .ogv filter';
$string['mediapluginram'] = 'Enable .ram filter';
$string['mediapluginrm'] = 'Enable .rm filter';
$string['mediapluginrpm'] = 'Enable .rpm filter';
@@ -585,6 +588,7 @@ $string['performance'] = 'Performance';
$string['pgcluster'] = 'PostgreSQL Cluster';
$string['pgclusterdescription'] = 'PostgreSQL version/cluster parameter for command line operations. If you only have one postgresql on your system or you are not sure what this is, leave this blank.';
$string['php50restricted'] = 'PHP 5.0.x has a number of known problems, please upgrade to 5.1.x or downgrade to 4.3.x or 4.4.x';
$string['php533warning'] = 'PHP 5.3.3 and upwards is recommended';
$string['phpfloatproblem'] = 'Detected unexpected problem in handling of PHP float numbers - $a';
$string['pleaseregister'] = 'Please register your site to remove this button';
$string['pleaserefreshregistration'] = 'Your site has been registered with moodle.org, please consider updating the registration if significant changes happened since your last update, on $a';
@@ -711,6 +715,7 @@ $string['smtppass'] = 'SMTP password';
$string['smtpuser'] = 'SMTP username';
$string['soaprecommended'] = 'Installing the optional soap extension is useful for web services and some contrib modules.';
$string['spamcleaner'] = 'Spam cleaner';
$string['splrequired'] = 'The SPL PHP extension is now required by Moodle.';
$string['stats'] = 'Statistics';
$string['statscatdepth'] = 'Maximum parent categories';
$string['statsfirstrun'] = 'Maximum processing interval';
@@ -827,7 +832,7 @@ $string['verifychangedemail'] = 'Restrict domains when changing email';
$string['warningcurrentsetting'] = 'Invalid current value: $a';
$string['webproxy'] = 'Web proxy';
$string['webproxyinfo'] = 'Fill in following options if your Moodle server can not access internet directly. Internet access is required for download of environment data, language packs, RSS feeds, timezones, etc.<br /><em>PHP cURL extension is highly recommended.</em>';
$string['xmlrpcrecommended'] = 'Installing the optional xmlrpc extension is useful for Moodle Networking functionality.';
$string['xmlrpcrecommended'] = 'The xmlrpc extension is needed for hub communication, and useful for web services and Moodle networking';
$string['xmlstrictheaders'] = 'XML strict headers';
$string['ziprequired'] = 'The Zip PHP extension is now required by Moodle, info-ZIP binaries or PclZip library are not used anymore.';
+1
View File
@@ -135,6 +135,7 @@ $string['uploadfiletoobig'] = 'Sorry, but that file is too big (limit is $a byte
$string['uploadnofilefound'] = 'No file was found - are you sure you selected one to upload?';
$string['uploadnotregistered'] = '\'$a\' was uploaded OK but submission did not register!';
$string['uploadsuccess'] = 'Uploaded \'$a\' successfully';
$string['usernosubmit'] = 'Sorry, you are not allowed to submit an assignment.';
$string['viewfeedback'] = 'View assignment grades and feedback';
$string['viewsubmissions'] = 'View $a submitted assignments';
$string['yoursubmission'] = 'Your submission';
+10 -5
View File
@@ -36,9 +36,14 @@ $string['auth_nologintitle'] = 'No login';
$string['auth_cas_proxycas_key'] = "Proxy mode";
$string['auth_cas_logoutcas_key'] = "Logout CAS";
$string['auth_cas_multiauth_key'] = "Multi-authentication";
$string['auth_cas_proxycas'] = "Turn this to 'yes'' if you use CASin proxy-mode";
$string['auth_cas_logoutcas'] = "Turn this to 'yes'' if tou want to logout from CAS when you deconnect from Moodle";
$string['auth_cas_multiauth'] = "Turn this to 'yes'' if you want to have multi-authentication (CAS + other authentication)";
$string['auth_cas_certificate_check_key'] = "Server validation";
$string['auth_cas_certificate_path_key'] = "Certificate path";
$string['auth_cas_proxycas'] = "Turn this to ''yes'' if you use CASin proxy-mode";
$string['auth_cas_logoutcas'] = "Turn this to ''yes'' if tou want to logout from CAS when you deconnect from Moodle";
$string['auth_cas_multiauth'] = "Turn this to ''yes'' if you want to have multi-authentication (CAS + other authentication)";
$string['auth_cas_certificate_check'] = "Turn this to ''yes'' if you want to validate the server certificate";
$string['auth_cas_certificate_path'] = "Path of the CA chain file (PEM Format) to validate the server certificate";
$string['auth_cas_certificate_path_empty'] = "If you turn on Server validation, you need to specify a certificate path";
$string['accesCAS'] = "CAS users";
$string['accesNOCAS'] = "other users";
$string['CASform'] = "Authentication choice";
@@ -187,7 +192,7 @@ $string['auth_ldap_graceattr_desc'] = 'Optional: Overrides gracelogin attribute
$string['auth_ldap_gracelogins_desc'] = 'Enable LDAP gracelogin support. After password has expired user can login until gracelogin count is 0. Enabling this setting displays grace login message if password is expired.';
$string['auth_ldap_groupecreators'] = 'List of groups or contexts whose members are allowed to create groups. Separate multiple groups with \';\'. Usually something like \'cn=teachers,ou=staff,o=myorg\'';
$string['auth_ldap_groupecreators_key'] = 'Group creators';
$string['auth_ldap_host_url'] = 'Specify LDAP host in URL-form like \'ldap://ldap.myorg.com/\' or \'ldaps://ldap.myorg.com/\' Separate multipleservers with \';\' to get failover support.';
$string['auth_ldap_host_url'] = 'Specify LDAP host in URL-form like \'ldap://ldap.myorg.com/\' or \'ldaps://ldap.myorg.com/\' Separate multipleservers with \';\' to get failover support.<br/><br/>NOTE: If you do not set this value Moodle will not try to get/update user information from LDAP, but the locking of the fields you specify below will be respected.';
$string['auth_ldap_ldap_encoding'] = 'Specify encoding used by LDAP server. Most probably utf-8, MS AD v2 uses default platform encoding such as cp1252, cp1250, etc.';
$string['auth_ldap_login_settings'] = 'Login settings';
$string['auth_ldap_memberattribute'] = 'Optional: Overrides user member attribute, when users belongs to a group. Usually \'member\'';
@@ -255,7 +260,7 @@ $string['auth_ntlmsso_enabled'] = 'Set to yes to attempt Single Sign On with the
$string['auth_ntlmsso_ie_fastpath'] = 'Set to yes to enable the NTLM SSO fast path (bypasses certain steps and only works if the client\'s browser is MS Internet Explorer).';
$string['auth_ntlmsso_ie_fastpath_key'] = 'MS IE fast path?';
$string['auth_ntlmsso_subnet_key'] = 'Subnet';
$string['auth_ntlmsso_subnet'] = 'If set, it will only attempt SSO with clients in this subnet. Format: xxx.xxx.xxx.xxx/bitmask';
$string['auth_ntlmsso_subnet'] = 'If set, it will only attempt SSO with clients in this subnet. Format: xxx.xxx.xxx.xxx/bitmask. Separate multiple subnets with \',\' (comma).';
$string['ntlmsso_attempting'] = 'Attempting Single Sign On via NTLM...';
$string['ntlmsso_failed'] = 'Auto-login failed, try the normal login page...';
$string['ntlmsso_isdisabled'] = 'NTLM SSO is disabled.';
+1 -1
View File
@@ -222,7 +222,7 @@ $string['SZ'] = 'Swaziland';
$string['SE'] = 'Sweden';
$string['CH'] = 'Switzerland';
$string['SY'] = 'Syrian Arab Republic';
$string['TW'] = 'Taiwan, Province Of China';
$string['TW'] = 'Taiwan';
$string['TJ'] = 'Tajikistan';
$string['TZ'] = 'Tanzania, United Republic Of';
$string['TH'] = 'Thailand';
+2
View File
@@ -87,6 +87,7 @@ $string['entrysaved'] = 'Your entry has been saved';
$string['errormustbeteacher'] = 'You need to be a teacher to use this page!';
$string['example'] = 'Database module example';
$string['excel'] = 'Excel';
$string['expired'] = 'Sorry, this activity closed on {$a} and is no longer available';
$string['export'] = 'Export';
$string['exportaszip'] = 'Export as zip';
$string['exportdatabaserecords'] = 'Export Database records';
@@ -180,6 +181,7 @@ $string['norecords'] = 'No entries in database';
$string['nosingletemplate'] = 'Single template is not yet defined';
$string['notapproved'] = 'Entry is not approved yet.';
$string['notinjectivemap'] = 'Not an injective map';
$string['notopenyet'] = 'Sorry, this activity is not available until {$a}';
$string['number'] = 'Number';
$string['numberrssarticles'] = 'RSS articles';
$string['numnotapproved'] = 'Pending';
+6 -3
View File
@@ -31,6 +31,7 @@ $string['bynameondate'] = 'by $a->name - $a->date';
$string['cannotviewpostyet'] = 'You cannot read other students questions in this discussion yet because you haven\'t posted';
$string['cannotadddiscussion'] = 'Adding discussions to this forum requires group membership.';
$string['cannotadddiscussionall'] = 'You do not have permission to add a new discussion topic for all participants.';
$string['cannotdeletepost'] = 'You can\'t delete this post!';
$string['cleanreadtime'] = 'Mark old posts as read hour';
$string['configajaxrating'] = 'AJAX rating is a forum rating usability improvement. If enabled, users can rate forum posts almost instantly without needing to scroll to the bottom of the page and click the \'Send in my latest ratings\' button. This setting also requires AJAX to be enabled for the site and in user profiles.';
$string['configcleanreadtime'] = 'The hour of the day to clean old posts from the \'read\' table.';
@@ -46,6 +47,8 @@ $string['configreplytouser'] = 'When a forum post is mailed out, should it conta
$string['configshortpost'] = 'Any post under this length (in characters not including HTML) is considered short (see below).';
$string['configtrackreadposts'] = 'Set to \'yes\' if you want to track read/unread for each user.';
$string['configusermarksread'] = 'If \'yes\', the user must manually mark a post as read. If \'no\', when the post is viewed it is marked as read.';
$string['confirmsubscribe'] = 'Do you really want to subscribe to forum \'{$a}\'?';
$string['confirmunsubscribe'] = 'Do you really want to unsubscribe from forum \'{$a}\'?';
$string['couldnotadd'] = 'Could not add your post due to an unknown error';
$string['couldnotdeleteratings'] = 'Sorry, that cannot be deleted as people have already rated it';
$string['couldnotdeletereplies'] = 'Sorry, that cannot be deleted as people have already responded to it';
@@ -80,18 +83,18 @@ $string['editedby'] = 'Edited by $a->name - original submission $a->date';
$string['editing'] = 'Editing';
$string['emptymessage'] = 'Something was wrong with your post. Perhaps you left it blank, or the attachment was too big. Your changes have NOT been saved.';
$string['everyonecanchoose'] = 'Everyone can choose to be subscribed';
$string['everyonecannowchoose'] = 'Everyone can now choose to be subscribed';
$string['everyonecannowchoose'] = 'Everyone can now choose to be subscribed';
$string['everyoneisnowsubscribed'] = 'Everyone is now subscribed to this forum';
$string['everyoneissubscribed'] = 'Everyone is subscribed to this forum';
$string['existingsubscribers'] = 'Existing subscribers';
$string['forcessubscribe'] = 'This forum forces everyone to be subscribed';
$string['forcessubscribe'] = 'This forum forces everyone to be subscribed';
$string['forcesubscribe'] = 'Force everyone to be subscribed';
$string['forcesubscribeq'] = 'Force everyone to be subscribed?';
$string['forum'] = 'Forum';
$string['forum:addnews'] = 'Add news';
$string['forumauthorhidden'] = 'Author (hidden)';
$string['forumblockingalmosttoomanyposts'] = 'You are approaching the posting threshold. You have posted $a->numposts times in the last $a->blockperiod and the limit is $a->blockafter posts.';
$string['forumbodyhidden'] = 'This post cannot be viewed by you, probably because you have not posted in the discussion yet.';
$string['forumbodyhidden'] = 'This post cannot be viewed by you, probably because you have not posted in the discussion or the maximum editing time hasn\'t passed yet.';
$string['forum:createattachment'] = 'Create attachments';
$string['forum:deleteanypost'] = 'Delete any posts (anytime)';
$string['forum:deleteownpost'] = 'Delete own posts (within deadline)';
+1
View File
@@ -12,6 +12,7 @@ $string['allowcomments'] = 'Allow comments on entries';
$string['allowduplicatedentries'] = 'Duplicated entries allowed';
$string['allowprintview'] = 'Allow print view';
$string['allowratings'] = 'Allow entries to be rated?';
$string['andmorenewentries'] = 'and {$a} more new entries.';
$string['answer'] = 'Answer';
$string['approve'] = 'Approve';
$string['areyousuredelete'] = 'Are you sure you want to delete this entry?';
+1
View File
@@ -71,6 +71,7 @@ $string['category'] = 'Category';
$string['categoryedit'] = 'Edit category';
$string['categoryname'] = 'Category name';
$string['categorytotal'] = 'Category total';
$string['categorytotalname'] = 'Category total name';
$string['categorytotalfull'] = '$a->category total';
$string['changereportdefaults'] = 'Change report defaults';
$string['changedefaults'] = 'Change defaults';
+2 -2
View File
@@ -9,6 +9,6 @@ the same general feedback text is shown to all students.</p>
the "Students may review:" check-boxes on the quiz editing form.</p>
<p>You can use the general feedback to give students some background
to what knownledge the question was testing. Or to give them a
to what knowledge the question was testing, or give them a
link to more information they can use if they did not understand the
questions.</p>
questions.</p>
+7 -2
View File
@@ -1,4 +1,4 @@
<?PHP // $Id$
<?PHP // $Id$
// mediaplugin.php - created with Moodle 1.7 beta + (2006101003)
@@ -7,5 +7,10 @@ $string['filtername'] = 'Multimedia Plugins';
$string['flashanimation'] = 'Flash animation';
$string['flashvideo'] = 'Flash video';
$string['mp3audio'] = 'MP3 audio';
$string['oggaudio'] = 'OGG audio';
$string['ogvvideo'] = 'OGV video';
$string['quicktime'] = 'Quicktime';
$string['realaudio'] = 'Real audio';
$string['wmpvideo'] = 'WMP video';
$string['unsupportedplugins'] = '(The browser does not support this type of file. {$a})';
?>
+2
View File
@@ -42,6 +42,8 @@ $string['errorprocessingresponses'] = 'An error occurred while processing your r
$string['errorsavingcomment'] = 'Error saving the comment for question $a->name in the database.';
$string['errorupdatingattempt'] = 'Error updating attempt $a->id in the database.';
$string['exportcategory'] = 'Export category';
$string['filecantmovefrom'] = 'The questions files cannot be moved because you do not have permission to remove files from the place you are trying to move questions from.';
$string['filecantmoveto'] = 'The question files cannot be moved or copied becuase you do not have permission to add files to the place you are trying to move the questions to.';
$string['filesareasite']= 'the site files area';
$string['filesareacourse']= 'the course files area';
$string['filestomove']= 'Move / copy files to $a?';
+1 -10
View File
@@ -1,10 +1,9 @@
<?PHP // $Id$
<?PHP // $Id$
// resource.php - created with Moodle 1.7 beta + (2006101003)
$string['addresource'] = 'Add a resource';
$string['affectedresources'] = 'Affected resources';
$string['allowlocalfiles'] = 'Allow local files';
$string['autofilerename'] = 'Update link if file renamed';
$string['back'] = 'Back';
$string['blockdeletingfile'] = 'Block deleting of referenced files';
@@ -13,7 +12,6 @@ $string['choose'] = 'Choose';
$string['chooseafile'] = 'Choose or upload a file';
$string['chooseparameter'] = 'Choose parameter';
$string['clicktoopen'] = 'To open this document, click on this link: ';
$string['configallowlocalfiles'] = 'When creating a new file resource, allow links to files on a local file system such as a CD drive or a hard drive. This may be useful in a classroom where all students have access to a common network drive or where files on a CD need to be accessed. Use of this feature may require changes to your browser\'s security settings.';
$string['configautofilerenamesettings'] = 'Automatically update references to files and directories when renamed in file manager.';
$string['configblockdeletingfilesettings'] = 'Block deleting of files and directories referenced by resources. Please note that images and other files referenced from html are not protected.';
$string['configdefaulturl'] = 'This value is used to prefill the URL form when creating a new URL-based resource.';
@@ -56,12 +54,6 @@ $string['htmlfragment'] = 'HTML fragment';
$string['imspackageloaded'] = 'Package loaded';
$string['keepnavigationvisible'] = 'Show navigation';
$string['keepnavigationvisiblewarning'] = 'Note: some media files may ignore this setting';
$string['localfile'] = 'Local file';
$string['localfilechoose'] = 'Choose a local file (CD-ROM)';
$string['localfilehelp'] = 'Help displaying local files';
$string['localfileinfo'] = '<p>Choose a local file from your computer. The file will not be uploaded to the web site, but Moodle will look for the same file on the computer of anyone viewing this resource.</p><p>This is mostly useful when you have large media files stored on a standard CD-ROM that you distribute to all participants. Each participant is able to choose their own local path for such files, by <a href=\"$a\" target=\"_blank\">editing their user profile</a>.</p>';
$string['localfilepath'] = 'To set your own local path for this resource, choose any file from the drive (usually a CD_ROM) on your computer where the resource exists. The file will not be uploaded but the drive information will be stored and used for any local file resources';
$string['localfileselect'] = 'Choose this file path.';
$string['maindirectory'] = 'Main files directory';
$string['modulename'] = 'Resource';
$string['modulenameplural'] = 'Resources';
@@ -85,7 +77,6 @@ $string['newwidth'] = 'Default window width (in pixels)';
$string['newwindow'] = 'New window';
$string['newwindowopen'] = 'Display this resource in a new popup window';
$string['next'] = 'Next';
$string['notallowedlocalfileaccess'] = 'Access to local files is currently disabled, so this resource is not available.';
$string['notdeployed'] = 'Not deployed';
$string['note'] = 'Note';
$string['notefile'] = 'To upload more files into the course (so they appear in this list) use the <a href=\"$a\">File Manager</a>.';
+3 -2
View File
@@ -44,6 +44,8 @@ $string['exitactivity'] = 'Exit activity';
$string['expcoll'] = 'Expand/Collide';
$string['external']= 'Update external packages timing';
$string['failed'] = 'Failed';
$string['finishscorm'] = 'If you have finished viewing this resource, $a';
$string['finishscormlinkname'] = 'click here to return to the course page';
$string['firstaccess'] = 'First access';
$string['firstattempt'] = 'First attempt';
$string['found'] = 'Manifest found';
@@ -112,8 +114,7 @@ $string['packagefile'] = 'No package file specified';
$string['passed'] = 'Passed';
$string['php5'] = 'PHP 5 (DOMXML native library)';
$string['popup'] = 'New window';
$string['popupblocked'] = 'If a new window does not appear, $a';
$string['popupblockedlinkname'] = 'click here to launch the activity';
$string['popupblockmessage'] = 'If a pop-up window doesn\'t appear, please enable pop-ups in your browser.';
$string['popupmenu'] = 'In a drop down menu';
$string['popupopen'] = 'Open package in a new window';
$string['position_error'] = 'The $a->tag tag can\'t be child of $a->parent tag';
+1 -1
View File
@@ -5011,7 +5011,7 @@ function sort_by_roleassignment_authority($users, $context, $roles=array(), $sor
* @param bool gethidden - whether to fetch hidden enrolments too
* @return array()
*/
function get_role_users($roleid, $context, $parent=false, $fields='', $sort='u.lastname ASC', $gethidden=true, $group='', $limitfrom='', $limitnum='') {
function get_role_users($roleid, $context, $parent=false, $fields='', $sort='u.lastname ASC, u.firstname ASC', $gethidden=true, $group='', $limitfrom='', $limitnum='') {
global $CFG;
if (empty($fields)) {
+4 -2
View File
@@ -2605,8 +2605,10 @@ class admin_setting_users_with_capability extends admin_setting_configmultiselec
'$@NONE@$' => get_string('nobody'),
'$@ALL@$' => get_string('everyonewhocan', 'admin', get_capability_string($this->capability)),
);
foreach ($users as $user) {
$this->choices[$user->username] = fullname($user);
if (is_array($users)) {
foreach ($users as $user) {
$this->choices[$user->username] = fullname($user);
}
}
return true;
}
+2 -2
View File
@@ -1,4 +1,4 @@
<?php
<?php
/*
Bulgarian language, v1.0, 25.03.2004, encoding by UTF-8 charset
contributed by Valentin Sheiretsky <valio#valio.eu.org>
@@ -34,4 +34,4 @@ $ADODB_LANG_ARRAY = array (
DB_ERROR_NOSUCHDB => 'несъществуваща база данни',
DB_ERROR_ACCESS_VIOLATION => 'нямате достатъчно права'
);
?>
?>
+9 -7
View File
@@ -94,8 +94,8 @@ section_class.prototype.init_buttons = function() {
commandContainer.appendChild(highlightbutton);
this.highlightButton = highlightbutton;
}
if (this.sectionId > 0 ) {
if (this.sectionId > 0 ) {
var viewbutton = main.mk_button('div', '/i/hide.gif', main.getString('hidesection', this.sectionId), [['title', main.portal.strings['hide'] ]]);
YAHOO.util.Event.addListener(viewbutton, 'click', this.toggle_hide, this,true);
commandContainer.appendChild(viewbutton);
@@ -141,12 +141,12 @@ section_class.prototype.process_section = function() {
// Find/edit resources
this.resources_ul = this.content_td.getElementsByTagName('ul')[0];
var i=0;
while (this.resources_ul && this.resources_ul.className != 'section img-text') {
var i=0;
while (this.resources_ul && this.resources_ul.className != 'section img-text') {
this.resources_ul = this.content_td.getElementsByTagName('ul')[i];
i++;
}
if (!this.resources_ul) {
this.resources_ul = document.createElement('ul');
this.resources_ul.className='section';
@@ -158,10 +158,12 @@ section_class.prototype.process_section = function() {
var resource = this.resources_ul.getElementsByTagName('li')[i];
this.resources[this.resources.length] = new resource_class(resource.id, 'resources', null, this);
}
this.summary = YAHOO.util.Dom.getElementsByClassName('summary', null, this.getEl())[0].firstChild.data || '';
var summarysection = YAHOO.util.Dom.getElementsByClassName('summary', null, this.getEl())[0].firstChild;
if (summarysection != null) {
this.summary = summarysection.data || '';
}
}
section_class.prototype.startDrag = function(x, y) {
//operates in point mode
YAHOO.util.DDM.mode = YAHOO.util.DDM.POINT;
+3
View File
@@ -235,6 +235,9 @@ function blocks_have_content(&$pageblocks, $position) {
if(!$record = blocks_get_record($instance->blockid)) {
continue;
}
if (empty($record->visible)) {
continue;
}
if(!$obj = block_instance($record->name, $instance)) {
continue;
}
+8
View File
@@ -54,4 +54,12 @@ function php_check_register_globals($result) {
return $result;
}
function php_check_php533($result) {
if (version_compare(phpversion(), '5.3.3') < 0) {
$result->status = false;
} else {
$result = null;
}
return $result;
}
?>
+3
View File
@@ -933,6 +933,9 @@
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
</KEYS>
<INDEXES>
<INDEX NAME="userfieldidx" UNIQUE="false" FIELDS="userid, fieldid"/>
</INDEXES>
</TABLE>
<TABLE NAME="mnet_enrol_course" COMMENT="Information about courses on remote hosts" PREVIOUS="user_info_data" NEXT="mnet_enrol_assignments">
<FIELDS>
+39 -16
View File
@@ -1680,7 +1680,7 @@ function xmldb_main_upgrade($oldversion=0) {
$table = new XMLDBTable('groups');
$field = new XMLDBField('password');
if (field_exists($table, $field)) {
if (field_exists($table, $field)) {
/// 1.7.*/1.6.*/1.5.* - create 'groupings' and 'groupings_groups' + rename password to enrolmentkey
/// or second run after fixing structure broken from 1.8.x
$result = $result && upgrade_17_groups();
@@ -1694,7 +1694,7 @@ function xmldb_main_upgrade($oldversion=0) {
upgrade_18_broken_groups();
notify('Warning: failed groups upgrade detected! Unfortunately this problem '.
'can not be fixed automatically. Mapping of groups to courses was lost, '.
'you can either revert to backup from 1.7.x and run ugprade again or '.
'you can either revert to backup from 1.7.x and run ugprade again or '.
'continue and fill in the missing course ids into groups table manually.');
$result = false;
}
@@ -2355,7 +2355,7 @@ function xmldb_main_upgrade($oldversion=0) {
$table->addKeyInfo('primary', XMLDB_KEY_PRIMARY, array('id'));
/*
* Note: mysql can not create indexes on text fields larger than 333 chars!
* Note: mysql can not create indexes on text fields larger than 333 chars!
*/
/// Adding indexes to table cache_flags
@@ -2400,7 +2400,7 @@ function xmldb_main_upgrade($oldversion=0) {
if (index_exists($table, $index)) {
$result = $result && drop_index($table, $index);
}
$table = new XMLDBTable('cache_flags');
$index = new XMLDBIndex('flagtype');
$index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('flagtype'));
@@ -2562,7 +2562,7 @@ function xmldb_main_upgrade($oldversion=0) {
FROM {$CFG->prefix}user_lastaccess
WHERE NOT EXISTS (SELECT 'x'
FROM {$CFG->prefix}course c
WHERE c.id = {$CFG->prefix}user_lastaccess.courseid)";
WHERE c.id = {$CFG->prefix}user_lastaccess.courseid)";
execute_sql($sql);
upgrade_main_savepoint($result, 2007100902);
@@ -2585,16 +2585,16 @@ function xmldb_main_upgrade($oldversion=0) {
upgrade_main_savepoint($result, 2007100903);
}
if ($result && $oldversion < 2007101500 && !file_exists($CFG->dataroot . '/user')) {
// Get list of users by browsing moodledata/user
$oldusersdir = $CFG->dataroot . '/users';
$folders = get_directory_list($oldusersdir, '', false, true, false);
foreach ($folders as $userid) {
$olddir = $oldusersdir . '/' . $userid;
$files = get_directory_list($olddir);
if (empty($files)) {
continue;
}
@@ -2621,7 +2621,7 @@ function xmldb_main_upgrade($oldversion=0) {
$readmefilename = $oldusersdir . '/README.txt';
if ($handle = fopen($readmefilename, 'w+b')) {
if (!fwrite($handle, get_string('olduserdirectory'))) {
// Could not write to the readme file. No cause for huge concern
// Could not write to the readme file. No cause for huge concern
notify("Could not write to the README.txt file in $readmefilename.");
}
fclose($handle);
@@ -2629,22 +2629,22 @@ function xmldb_main_upgrade($oldversion=0) {
// Could not create the readme file. No cause for huge concern
notify("Could not create the README.txt file in $readmefilename.");
}
}
}
if ($result && $oldversion < 2007101502) {
/// try to remove duplicate entries
$SQL = "SELECT userid, itemid, COUNT(*)
FROM {$CFG->prefix}grade_grades
GROUP BY userid, itemid
HAVING COUNT( * ) >1";
// duplicates found
if ($rs = get_recordset_sql($SQL)) {
if ($rs && $rs->RecordCount() > 0) {
while ($dup = rs_fetch_next_record($rs)) {
if ($thisdups = get_records_sql("SELECT id FROM {$CFG->prefix}grade_grades
if ($thisdups = get_records_sql("SELECT id FROM {$CFG->prefix}grade_grades
WHERE itemid = $dup->itemid AND userid = $dup->userid
ORDER BY timemodified DESC")) {
@@ -2702,7 +2702,7 @@ function xmldb_main_upgrade($oldversion=0) {
$sql = "DELETE
FROM {$CFG->prefix}context
WHERE contextlevel=20";
execute_sql($sql);
/// Main savepoint reached
@@ -2864,7 +2864,7 @@ function xmldb_main_upgrade($oldversion=0) {
}
if ($result && $oldversion < 2007101508.04) {
set_field('tag_instance', 'itemtype', 'post', 'itemtype', 'blog');
set_field('tag_instance', 'itemtype', 'post', 'itemtype', 'blog');
upgrade_main_savepoint($result, 2007101508.04);
}
@@ -2941,7 +2941,7 @@ function xmldb_main_upgrade($oldversion=0) {
/// Launch add field name
$result = $result && add_field($table, $field);
/// Copy data from old field to new field
$result = $result && execute_sql('UPDATE '.$CFG->prefix.'role_names SET name = text');
@@ -3345,6 +3345,29 @@ function xmldb_main_upgrade($oldversion=0) {
upgrade_main_savepoint($result, 2007101571.05);
}
if ($result && $oldversion < 2007101590.01) {
// add media plugins config for ogg and ogv files
set_config('filter_mediaplugin_enable_ogv', 1);
set_config('filter_mediaplugin_enable_ogg', 1);
upgrade_main_savepoint($result, 2007101590.01);
}
if ($result && $oldversion < 2007101591.01) {
/// Define index userfieldidx (not unique) to be added to user_info_data
$table = new XMLDBTable('user_info_data');
$index = new XMLDBIndex('userfieldidx');
$index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('userid', 'fieldid'));
/// Launch add index userfieldidx
if (!index_exists($table, $index)) {
$result = $result && add_index($table, $index);
}
/// Main savepoint reached
upgrade_main_savepoint($result, 2007101591.01);
}
return $result;
}
+1 -1
View File
@@ -1512,7 +1512,7 @@ function insert_record($table, $dataobject, $returnid=true, $primarykey='id') {
$seqname = find_sequence_name($xmldb_table);
if (!$seqname) {
/// Fallback, seqname not found, something is wrong. Inform and use the alternative getNameForObject() method
debugging('Sequence name for table ' . $table->getName() . ' not found', DEBUG_DEVELOPER);
debugging('Sequence name for table ' . $xmldb_table->getName() . ' not found', DEBUG_DEVELOPER);
$generator = new XMLDBoci8po();
$generator->setPrefix($CFG->prefix);
$seqname = $generator->getNameForObject($table, $primarykey, 'seq');
+4
View File
@@ -2371,6 +2371,7 @@ HTMLArea.is_mac_ie = (HTMLArea.is_ie && HTMLArea.is_mac);
HTMLArea.is_win_ie = (HTMLArea.is_ie && !HTMLArea.is_mac);
HTMLArea.is_gecko = (navigator.product == "Gecko");
HTMLArea.is_safari = (HTMLArea.agt.indexOf("safari") != -1);
HTMLArea.is_webkit = (HTMLArea.agt.indexOf("applewebkit") != -1); // eg: chrome
// variable used to pass the object to the popup editor window.
HTMLArea._object = null;
@@ -2398,6 +2399,9 @@ HTMLArea.cloneObject = function(obj) {
// FIXME!!! this should return false for IE < 5.5
HTMLArea.checkSupportedBrowser = function() {
if (HTMLArea.is_webkit) {
return true;
}
if (HTMLArea.is_gecko) {
if (navigator.productSub < 20021201) {
alert("You need at least Mozilla-1.3 Alpha.\n" +
@@ -3,6 +3,7 @@
require("../../../../config.php");
$id = optional_param('id', SITEID, PARAM_INT);
$httpsrequired = optional_param('httpsrequired', 0, PARAM_BOOL);
require_login($id);
require_capability('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $id));
@@ -2,8 +2,10 @@
require("../../../../config.php");
$id = optional_param('id', SITEID, PARAM_INT);
$httpsrequired = optional_param('httpsrequired', 0, PARAM_BOOL);
require_course_login($id);
@header('Content-Type: text/html; charset=utf-8');
if ($httpsrequired or (!empty($_SERVER['HTTPS']) and $_SERVER['HTTPS'] != 'off')) {
+17 -2
View File
@@ -122,7 +122,16 @@ class MoodleExcelWorksheet {
*/
function MoodleExcelWorksheet($name, &$workbook, $latin_output=false) {
/// Internally, add one sheet to the workbook
if (strlen($name) > 31) {
// Excel does not seem able to cope with sheet names > 31 chars.
// With $latin_output = false, it does not cope at all.
// With $latin_output = true it is supposed to work, but in our experience,
// it doesn't. Therefore, truncate in all circumstances.
$textlib = textlib_get_instance();
$name = $textlib->substr($name, 0, 31);
}
/// Internally, add one sheet to the workbook
$this->pear_excel_worksheet =& $workbook->addWorksheet($name);
$this->latin_output = $latin_output;
/// Set encoding to UTF-16LE
@@ -196,7 +205,13 @@ class MoodleExcelWorksheet {
$format = $this->MoodleExcelFormat2PearExcelFormat($format);
/// Convert the date to Excel format
$timezone = get_user_timezone_offset();
$value = ((usertime($date) + (int)($timezone * HOURSECS * 2)) / 86400) + 25569;
if ($timezone == 99) {
// system timezone offset in seconds
$offset = (int)date('Z');
} else {
$offset = (int)($timezone * HOURSECS * 2);
}
$value = ((usertime($date) + $offset) / 86400) + 25569;
/// Add the date safely to the PEAR Worksheet
$this->pear_excel_worksheet->writeNumber($row, $col, $value, $format);
}
+5 -4
View File
@@ -5,7 +5,7 @@ define('BYTESERVING_BOUNDARY', 's1k2o3d4a5k6s7'); //unique string constant
function get_file_url($path, $options=null, $type='coursefile') {
global $CFG, $HTTPSPAGEREQUIRED;
$path = str_replace('//', '/', $path);
$path = str_replace('//', '/', $path);
$path = trim($path, '/'); // no leading and trailing slashes
// type of file
@@ -175,11 +175,10 @@ function download_file_content($url, $headers=null, $postdata=null, $fullrespons
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers2);
}
if ($skipcertverify) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
// use POST if requested
if (is_array($postdata)) {
foreach ($postdata as $k=>$v) {
@@ -404,6 +403,8 @@ function get_mimetypes_array() {
'odf' => array ('type'=>'application/vnd.oasis.opendocument.formula', 'icon'=>'odf.gif'),
'odb' => array ('type'=>'application/vnd.oasis.opendocument.database', 'icon'=>'odb.gif'),
'odi' => array ('type'=>'application/vnd.oasis.opendocument.image', 'icon'=>'odi.gif'),
'ogg' => array ('type'=>'audio/ogg', 'icon'=>'audio.gif'),
'ogv' => array ('type'=>'video/ogg', 'icon'=>'video.gif'),
'pct' => array ('type'=>'image/pict', 'icon'=>'image.gif'),
'pdf' => array ('type'=>'application/pdf', 'icon'=>'pdf.gif'),
@@ -676,7 +677,7 @@ function send_file($path, $filename, $lifetime = 'default' , $filter=0, $pathiss
$requiredplayerversion = explode('.', $CFG->excludeoldflashclients);
if (($userplayerversion[0] < $requiredplayerversion[0]) ||
($userplayerversion[0] == $requiredplayerversion[0] && $userplayerversion[1] < $requiredplayerversion[1]) ||
($userplayerversion[0] == $requiredplayerversion[0] && $userplayerversion[1] == $requiredplayerversion[1]
($userplayerversion[0] == $requiredplayerversion[0] && $userplayerversion[1] == $requiredplayerversion[1]
&& $userplayerversion[2] < $requiredplayerversion[2])) {
$path = $CFG->dirroot."/lib/flashdetect/flashupgrade.swf"; // Alternate content asking user to upgrade Flash
$filename = "flashupgrade.swf";
+11 -5
View File
@@ -656,12 +656,14 @@ class moodleform {
/**
* Adds a link/button that controls the checked state of a group of checkboxes.
* @param int $groupid The id of the group of advcheckboxes this element controls
* @param string $text The text of the link. Defaults to "select all/none"
* @param string $text The text of the link. Defaults to selectallornone ("select all/none")
* @param array $attributes associative array of HTML attributes
* @param int $originalValue The original general state of the checkboxes before the user first clicks this element
*/
function add_checkbox_controller($groupid, $buttontext, $attributes, $originalValue = 0) {
function add_checkbox_controller($groupid, $text = null, $attributes = null, $originalValue = 0) {
global $CFG;
// Set the default text if none was specified
if (empty($text)) {
$text = get_string('selectallornone', 'form');
}
@@ -1349,8 +1351,12 @@ function qf_errorHandler(element, _qfMsg) {
//unset($element);
list($jsArr,$element)=$jsandelement;
//end of fix
$escapedElementName = preg_replace_callback(
'/[_\[\]]/',
create_function('$matches', 'return sprintf("_%2x",ord($matches[0]));'),
$elementName);
$js .= '
function validate_' . $this->_formName . '_' . $elementName . '(element) {
function validate_' . $this->_formName . '_' . $escapedElementName . '(element) {
var value = \'\';
var errFlag = new Array();
var _qfGroups = {};
@@ -1364,7 +1370,7 @@ function validate_' . $this->_formName . '_' . $elementName . '(element) {
}
';
$validateJS .= '
ret = validate_' . $this->_formName . '_' . $elementName.'(frm.elements[\''.$elementName.'\']) && ret;
ret = validate_' . $this->_formName . '_' . $escapedElementName.'(frm.elements[\''.$elementName.'\']) && ret;
if (!ret && !first_focus) {
first_focus = true;
frm.elements[\''.$elementName.'\'].focus();
@@ -1375,7 +1381,7 @@ function validate_' . $this->_formName . '_' . $elementName . '(element) {
//unset($element);
//$element =& $this->getElement($elementName);
//end of fix
$valFunc = 'validate_' . $this->_formName . '_' . $elementName . '(this)';
$valFunc = 'validate_' . $this->_formName . '_' . $escapedElementName . '(this)';
$onBlur = $element->getAttribute('onBlur');
$onChange = $element->getAttribute('onChange');
$element->updateAttributes(array('onBlur' => $onBlur . $valFunc,
+6 -5
View File
@@ -173,13 +173,14 @@ class grade_object {
$wheresql = implode("AND", $wheresql);
}
if ($datas = get_records_select($table, $wheresql, 'id')) {
if ($rs = get_recordset_select($table, $wheresql, 'id')) {
$result = array();
foreach($datas as $data) {
while ($data = rs_fetch_next_record($rs)) {
$instance = new $classname();
grade_object::set_properties($instance, $data);
$result[$instance->id] = $instance;
}
rs_close($rs);
return $result;
} else {
@@ -212,7 +213,7 @@ class grade_object {
$data->oldid = $this->id;
$data->source = $source;
$data->timemodified = time();
$data->userlogged = $USER->id;
$data->loggeduser = $USER->id;
insert_record($this->table.'_history', addslashes_recursive($data));
}
@@ -242,7 +243,7 @@ class grade_object {
$data->oldid = $this->id;
$data->source = $source;
$data->timemodified = time();
$data->userlogged = $USER->id;
$data->loggeduser = $USER->id;
insert_record($this->table.'_history', addslashes_recursive($data));
}
return true;
@@ -303,7 +304,7 @@ class grade_object {
$data->oldid = $this->id;
$data->source = $source;
$data->timemodified = time();
$data->userlogged = $USER->id;
$data->loggeduser = $USER->id;
insert_record($this->table.'_history', addslashes_recursive($data));
}
+5 -1
View File
@@ -317,17 +317,21 @@ function grade_update($source, $courseid, $itemtype, $itemmodule, $iteminstance,
* @param int $iteminstance id of the item module
* @param int $userid ID of the graded user
* @param array $data array itemnumber=>outcomegrade
* @return boolean returns true if grade items were found and updated successfully
*/
function grade_update_outcomes($source, $courseid, $itemtype, $itemmodule, $iteminstance, $userid, $data) {
if ($items = grade_item::fetch_all(array('itemtype'=>$itemtype, 'itemmodule'=>$itemmodule, 'iteminstance'=>$iteminstance, 'courseid'=>$courseid))) {
$result = true;
foreach ($items as $item) {
if (!array_key_exists($item->itemnumber, $data)) {
continue;
}
$grade = $data[$item->itemnumber] < 1 ? null : $data[$item->itemnumber];
$item->update_final_grade($userid, $grade, $source);
$result = ($item->update_final_grade($userid, $grade, $source) && $result);
}
return $result;
}
return false; //grade items not found
}
/**
+1 -1
View File
@@ -157,7 +157,7 @@ function groups_get_user_groups($courseid, $userid=0) {
$result = array();
$allgroups = array();
while ($group = rs_fetch_next_record($rs)) {
$allgroups[$group->id] = $group->id;
if (is_null($group->groupingid)) {
+6 -5
View File
@@ -219,7 +219,7 @@ class html2text
'-',
'*',
'£',
'EUR', // Euro sign. € ?
'EUR', // Euro sign. € ?
' ' // Runs of spaces, post-handling
);
@@ -237,6 +237,7 @@ class html2text
'/<(a) [^>]*href=("|\')([^"\']+)\2[^>]*>(.*?)<\/a>/i',
// <a href="">
'/<(th)[^>]*>(.*?)<\/th>/i', // <th> and </th>
'/<(img)[^>]*alt=\"([^>"]+)\"[^>]*>/i', // <img> with alt
);
/**
@@ -574,6 +575,8 @@ class html2text
return $this->_strtoupper("\n\n". $matches[2] ."\n\n");
case 'a':
return $this->_build_link_list($matches[3], $matches[4]);
case 'img':
return '[' . $matches[2] . ']';
}
}
@@ -586,10 +589,8 @@ class html2text
*/
function _strtoupper($str)
{
if (function_exists('mb_strtoupper'))
return mb_strtoupper($str);
else
return strtoupper($str);
$tl = textlib_get_instance();
return $tl->strtoupper($str);
}
}
+46
View File
@@ -36,3 +36,49 @@ instead of:
-- Francois Marier <francois@catalyst.net.nz> 2009-05-22
2- Don't just strip images, replace them with their alt text.
index b7e3e3e..96ef508 100644
--- a/lib/html2text.php
+++ b/lib/html2text.php
@@ -237,6 +237,7 @@ class html2text
'/<(a) [^>]*href=("|\')([^"\']+)\2[^>]*>(.*?)<\/a>/i',
// <a href="">
'/<(th)[^>]*>(.*?)<\/th>/i', // <th> and </th>
+ '/<(img)[^>]*alt=\"([^>"]+)\"[^>]*>/i', // <img> with alt
);
/**
@@ -574,6 +575,8 @@ class html2text
return $this->_strtoupper("\n\n". $matches[2] ."\n\n");
case 'a':
return $this->_build_link_list($matches[3], $matches[4]);
+ case 'img':
+ return '[' . $matches[2] . ']';
}
}
-- Tim Hunt 2010-08-04
3- Use textlib, not crappy functions that break UTF-8, in the _strtoupper method.
Index: lib/html2text.php
--- lib/html2text.php 2 Sep 2010 12:49:29 -0000 1.16
+++ lib/html2text.php 2 Nov 2010 19:57:09 -0000
@@ -580,9 +580,7 @@
*/
function _strtoupper($str)
{
- if (function_exists('mb_strtoupper'))
- return mb_strtoupper($str);
- else
- return strtoupper($str);
+ $tl = textlib_get_instance();
+ return $tl->strtoupper($str);
}
}
-- Tim Hunt 2010-11-02
+3 -3
View File
@@ -19,7 +19,7 @@
*/
/*
HTML Purifier 4.1.0 - Standards Compliant HTML Filtering
HTML Purifier 4.2.0 - Standards Compliant HTML Filtering
Copyright (C) 2006-2008 Edward Z. Yang
This library is free software; you can redistribute it and/or
@@ -55,10 +55,10 @@ class HTMLPurifier
{
/** Version of HTML Purifier */
public $version = '4.1.0';
public $version = '4.2.0';
/** Constant with version of HTML Purifier */
const VERSION = '4.1.0';
const VERSION = '4.2.0';
/** Global configuration object */
public $config;
@@ -190,10 +190,12 @@ require_once $__dir . '/HTMLPurifier/Token/Start.php';
require_once $__dir . '/HTMLPurifier/Token/Text.php';
require_once $__dir . '/HTMLPurifier/URIFilter/DisableExternal.php';
require_once $__dir . '/HTMLPurifier/URIFilter/DisableExternalResources.php';
require_once $__dir . '/HTMLPurifier/URIFilter/DisableResources.php';
require_once $__dir . '/HTMLPurifier/URIFilter/HostBlacklist.php';
require_once $__dir . '/HTMLPurifier/URIFilter/MakeAbsolute.php';
require_once $__dir . '/HTMLPurifier/URIFilter/Munge.php';
require_once $__dir . '/HTMLPurifier/URIScheme/data.php';
require_once $__dir . '/HTMLPurifier/URIScheme/file.php';
require_once $__dir . '/HTMLPurifier/URIScheme/ftp.php';
require_once $__dir . '/HTMLPurifier/URIScheme/http.php';
require_once $__dir . '/HTMLPurifier/URIScheme/https.php';

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