Merge branch 'MDL-39611-master-int' of git://github.com/FMCorz/moodle
authorDamyon Wiese <damyon@moodle.com>
Mon, 13 May 2013 05:22:32 +0000 (13:22 +0800)
committerDamyon Wiese <damyon@moodle.com>
Mon, 13 May 2013 05:22:32 +0000 (13:22 +0800)
19 files changed:
admin/registration/renderer.php
cache/locallib.php
cohort/externallib.php [changed mode: 0755->0644]
cohort/tests/externallib_test.php [changed mode: 0755->0644]
grade/export/lib.php
grade/lib.php
install/lang/gl/error.php
install/lang/he/moodle.php
install/lang/zh_tw/admin.php
install/stringnames.txt
lang/en/admin.php
lang/en/error.php
lib/installlib.php
lib/upgradelib.php
mod/lesson/pagetypes/matching.php
theme/bootstrapbase/renderers.php
theme/bootstrapbase/renderers/core_renderer.php [moved from theme/bootstrapbase/renderers/core.php with 100% similarity]
theme/bootstrapbase/version.php
version.php

index d5ca165..3ab5b36 100644 (file)
@@ -38,7 +38,7 @@ class core_register_renderer extends plugin_renderer_base {
     public function moodleorg_registration_message() {
         $moodleorgurl = html_writer::link('http://moodle.org', 'Moodle.org');
         $moodleorgstatsurl = html_writer::link('http://moodle.org/stats', get_string('statsmoodleorg', 'admin'));
-        $moochurl = html_writer::link(HUB_MOODLEORGHUBURL, 'MOOCH');
+        $moochurl = html_writer::link(HUB_MOODLEORGHUBURL, get_string('moodleorghubname', 'admin'));
         $moodleorgregmsg = get_string('registermoodleorg', 'admin', $moodleorgurl);
         $items = array(get_string('registermoodleorgli1', 'admin'),
             get_string('registermoodleorgli2', 'admin', $moodleorgstatsurl),
@@ -92,4 +92,4 @@ class core_register_renderer extends plugin_renderer_base {
         return html_writer::table($table);
     }
 
-}
\ No newline at end of file
+}
index 22fc713..8124fdc 100644 (file)
@@ -393,15 +393,9 @@ class cache_config_writer extends cache_config {
      *     Returns a configuration array if it could not be saved. This is a bad situation. Check your error logs.
      */
     public static function create_default_configuration($forcesave = false) {
-        global $CFG;
-
         // HACK ALERT.
         // We probably need to come up with a better way to create the default stores, or at least ensure 100% that the
         // default store plugins are protected from deletion.
-        require_once($CFG->dirroot.'/cache/stores/file/lib.php');
-        require_once($CFG->dirroot.'/cache/stores/session/lib.php');
-        require_once($CFG->dirroot.'/cache/stores/static/lib.php');
-
         $writer = new self;
         $writer->configstores = self::get_default_stores();
         $writer->configdefinitions = self::locate_definitions();
@@ -448,6 +442,12 @@ class cache_config_writer extends cache_config {
      * @return array
      */
     protected static function get_default_stores() {
+        global $CFG;
+
+        require_once($CFG->dirroot.'/cache/stores/file/lib.php');
+        require_once($CFG->dirroot.'/cache/stores/session/lib.php');
+        require_once($CFG->dirroot.'/cache/stores/static/lib.php');
+
         return array(
             'default_application' => array(
                 'name' => 'default_application',
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 8cf6fb3..b7fa140 100644 (file)
@@ -434,6 +434,6 @@ class grade_export_update_buffer {
 function export_verify_grades($courseid) {
     $regraderesult = grade_regrade_final_grades($courseid);
     if (is_array($regraderesult)) {
-        throw new moodle_exception('gradecantregrade', 'error', '', implode(',', $regraderesult));
+        throw new moodle_exception('gradecantregrade', 'error', '', implode(', ', array_unique($regraderesult)));
     }
 }
index 68336e0..7f67b19 100644 (file)
@@ -22,7 +22,8 @@
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-require_once $CFG->libdir.'/gradelib.php';
+require_once($CFG->libdir . '/gradelib.php');
+require_once($CFG->dirroot . '/grade/export/lib.php');
 
 /**
  * This class iterates over all users that are graded in a course.
@@ -134,10 +135,7 @@ class graded_users_iterator {
 
         $this->close();
 
-        $regraderesult = grade_regrade_final_grades($this->course->id);
-        if (is_array($regraderesult)) {
-            throw new moodle_exception('gradecantregrade', 'error', '', implode(',', $regraderesult));
-        }
+        export_verify_grades($this->course->id);
         $course_item = grade_item::fetch_course_item($this->course->id);
         if ($course_item->needsupdate) {
             // can not calculate all final grades - sorry
index 5fac766..dfa4b25 100644 (file)
 
 defined('MOODLE_INTERNAL') || die();
 
-$string['cannotcreatelangdir'] = 'Non pode crear directorio de idioma';
-$string['cannotcreatetempdir'] = 'Non pode crear directorio de tempo';
-$string['cannotdownloadcomponents'] = 'Non pode descargar compoñentes.';
-$string['cannotdownloadzipfile'] = 'Non pode descargar ficheiros ZIP.';
-$string['cannotfindcomponent'] = 'Non pode encontrar compoñentes';
-$string['cannotsavemd5file'] = 'Non pode gardar o ficheiro md5.';
-$string['cannotsavezipfile'] = 'Non pode gardar un ficheiro ZIP.';
-$string['cannotunzipfile'] = 'Non pode descomprimir o ficheiro.';
-$string['componentisuptodate'] = 'O compoñente está actualizado.';
-$string['downloadedfilecheckfailed'] = 'Fallou a verificación do ficheiro descargado.';
+$string['cannotcreatelangdir'] = 'Non se pode crear o directorio de idioma';
+$string['cannotcreatetempdir'] = 'Non se pode crear un directorio temporal';
+$string['cannotdownloadcomponents'] = 'Non foi posíbel descargar compoñentes';
+$string['cannotdownloadzipfile'] = 'Non foi posíbel descargar o ficheiro ZIP';
+$string['cannotfindcomponent'] = 'Non foi posíbel atopar o compoñente';
+$string['cannotsavemd5file'] = 'Non é posíbel gardar o ficheiro md5';
+$string['cannotsavezipfile'] = 'Non é posíbel gardar o ficheiro ZIP';
+$string['cannotunzipfile'] = 'Non é posíbel descomprimir o ficheiro';
+$string['componentisuptodate'] = 'O compoñente está actualizado';
+$string['downloadedfilecheckfailed'] = 'A comprobación do ficheiro descargado non foi satisfactoria';
 $string['invalidmd5'] = 'md5 non válido';
 $string['missingrequiredfield'] = 'Falta algún campo obrigatorio';
 $string['wrongdestpath'] = 'Camiño de destino errado.';
index 63d637a..46b031b 100644 (file)
@@ -31,6 +31,6 @@
 defined('MOODLE_INTERNAL') || die();
 
 $string['language'] = 'שפת ממשק';
-$string['next'] = '×\94×\9c×\90×\94';
+$string['next'] = '×\94×\91×\90';
 $string['previous'] = 'קודם';
 $string['reload'] = 'טען מחדש';
index 4b61242..ef3c788 100644 (file)
@@ -32,13 +32,11 @@ defined('MOODLE_INTERNAL') || die();
 
 $string['clianswerno'] = 'n';
 $string['cliansweryes'] = 'y';
-$string['cliincorrectvalueerror'] = '錯誤,將「{$a->option}」的值設為「{$a->value}」是不正確的';
-$string['cliincorrectvalueretry'] = '不正確值,請重試';
+$string['cliincorrectvalueerror'] = '錯誤,將“{$a->option}”的值設為“{$a->value}”是不正確的';
+$string['cliincorrectvalueretry'] = '不正確值,請重試';
 $string['clitypevalue'] = '輸入值';
-$string['clitypevaluedefault'] = '輸入值,按ENTER使用預設值({$a})';
-$string['cliunknowoption'] = '錯誤選項:
-{$a}
-請使用 --help 選項。';
+$string['clitypevaluedefault'] = '輸入值,按回車使用預設值({$a})';
+$string['cliunknowoption'] = '錯誤選項:{$a}請使用 --help 選項。';
 $string['cliyesnoprompt'] = '輸入y(表示是)或n(表示否)';
 $string['environmentrequireinstall'] = '必須安裝並啟用';
-$string['environmentrequireversion'] = '需要 {$a->needed} 版本,而您的是 {$a->current}';
+$string['environmentrequireversion'] = '需求版本為{$a->needed},而您目前版本為 {$a->current}';
index 68507dc..0e94de5 100644 (file)
@@ -1,5 +1,6 @@
 admindirname,install
 availablelangs,install
+cannotcreatedboninstall,error
 cannotcreatelangdir,error
 cannotcreatetempdir,error
 cannotdownloadcomponents,error
@@ -28,6 +29,7 @@ databasetypehead,install
 dataroot,install
 datarootpermission,install
 dbprefix,install
+dmlexceptiononinstall,error
 dirroot,install
 downloadedfilecheckfailed,error
 environmenthead,install
index 63d3f2a..691da56 100644 (file)
@@ -713,6 +713,7 @@ $string['messaging'] = 'Enable messaging system';
 $string['messagingallowemailoverride'] = 'Notification email override';
 $string['messaginghidereadnotifications'] = 'Hide read notifications';
 $string['messagingdeletereadnotificationsdelay'] = 'Delete read notifications';
+$string['moodleorghubname'] = 'Moodle.net';
 $string['minpassworddigits'] = 'Digits';
 $string['minpasswordlength'] = 'Password length';
 $string['minpasswordlower'] = 'Lowercase letters';
index 76a2d75..3ad6125 100644 (file)
@@ -46,6 +46,9 @@ $string['cannotcallscript'] = 'You cannot call this script in that way';
 $string['cannotcallusgetselecteduser'] = 'You cannot call user_selector::get_selected_user if multi select is true.';
 $string['cannotcreatebackupdir'] = 'Could not create backupdata folder.  The site administrator needs to fix the file permissions';
 $string['cannotcreatecategory'] = 'The category was not inserted';
+$string['cannotcreatedboninstall'] = '<p>Cannot create the database.</p>
+<p>The specified database does not exist and the given user does not have permission to create the database.</p>
+<p>The site administrator should verify database configuration.</p>';
 $string['cannotcreategroup'] = 'Error creating group';
 $string['cannotcreatelangbase'] = 'Error: Could not create base lang directory';
 $string['cannotcreatelangdir'] = 'Cannot create lang directory';
@@ -203,6 +206,7 @@ $string['ddlunknownerror'] = 'Unknown DDL library error';
 $string['ddlxmlfileerror'] = 'XML database file errors found';
 $string['destinationcmnotexit'] = 'The destination course module does not exist';
 $string['detectedbrokenplugin'] = 'Plugin "{$a}" is defective or outdated, can not continue, sorry.';
+$string['dmlexceptiononinstall'] = '<p>A database error has occurred [{$a->errorcode}].<br />{$a->debuginfo}</p>';
 $string['dmlreadexception'] = 'Error reading from database';
 $string['dmltransactionexception'] = 'Database transaction error';
 $string['dmlwriteexception'] = 'Error writing to database';
index 30e1297..4bf474e 100644 (file)
@@ -192,7 +192,20 @@ function install_db_validate($database, $dbhost, $dbuser, $dbpass, $dbname, $pre
         }
         return '';
     } catch (dml_exception $ex) {
-        return get_string($ex->errorcode, $ex->module, $ex->a).'<br />'.$ex->debuginfo;
+        $stringmanager = get_string_manager();
+        $errorstring = $ex->errorcode.'oninstall';
+        $legacystring = $ex->errorcode;
+        if ($stringmanager->string_exists($errorstring, $ex->module)) {
+            // By using a different string id from the error code we are separating exception handling and output.
+            return $stringmanager->get_string($errorstring, $ex->module, $ex->a).'<br />'.$ex->debuginfo;
+        } else if ($stringmanager->string_exists($legacystring, $ex->module)) {
+            // There are some DML exceptions that may be thrown here as well as during normal operation.
+            // If we have a translated message already we still want to serve it here.
+            // However it is not the preferred way.
+            return $stringmanager->get_string($legacystring, $ex->module, $ex->a).'<br />'.$ex->debuginfo;
+        }
+        // No specific translation. Deliver a generic error message.
+        return $stringmanager->get_string('dmlexceptiononinstall', 'error', $ex);
     }
 }
 
index 3880d47..c1ada2e 100644 (file)
@@ -1299,6 +1299,12 @@ function upgrade_finished($continueurl=null) {
 
     if (!empty($CFG->upgraderunning)) {
         unset_config('upgraderunning');
+        // We have to forcefully purge the caches using the writer here.
+        // This has to be done after we unset the config var. If someone hits the site while this is set they will
+        // cause the config values to propogate to the caches.
+        // Caches are purged after the last step in an upgrade but there is several code routines that exceute between
+        // then and now that leaving a window for things to fall out of sync.
+        cache_helper::purge_all(true);
         upgrade_setup_debug(false);
         ignore_user_abort(false);
         if ($continueurl) {
index a4002c3..83c175a 100644 (file)
@@ -161,16 +161,17 @@ class lesson_page_type_matching extends lesson_page {
         }
 
         $response = $data->response;
-        $answers = $this->get_answers();
+        $getanswers = $this->get_answers();
 
-        $correct = array_shift($answers);
-        $wrong   = array_shift($answers);
+        $correct = array_shift($getanswers);
+        $wrong   = array_shift($getanswers);
 
-        foreach ($answers as $key=>$answer) {
+        $answers = array();
+        foreach ($getanswers as $key=>$answer) {
             if ($answer->answer !== '' or $answer->response !== '') {
                 $answers[$answer->id] = $answer;
             }
-            unset($answers[$key]);
+            unset($getanswers[$key]);
         }
         // get the user's exact responses for record keeping
         $hits = 0;
index 445fe8d..1f90ef9 100644 (file)
@@ -18,9 +18,9 @@
  * Renderers to align Moodle's HTML with that expected by Bootstrap
  *
  * @package    theme_bootstrapbase
- * @copyright  2012
+ * @copyright  2013
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-require_once('renderers/core.php');
+require_once('renderers/core_renderer.php');
 
index bc0f42f..d85ee94 100644 (file)
@@ -19,7 +19,7 @@
  *
  * @package    theme_bootstrapbase
  * @copyright  2013 Bas Brands, www.basbrands.nl
- * @authors   Bas Brands, David Scotson
+ * @authors    Bas Brands, David Scotson
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
index 7872b60..de736cb 100644 (file)
 
 defined('MOODLE_INTERNAL') || die();
 
-$version  = 2013050900.00;              // YYYYMMDD      = weekly release date of this DEV branch
+$version  = 2013051000.00;              // YYYYMMDD      = weekly release date of this DEV branch
                                         //         RR    = release increments - 00 in DEV branches
                                         //           .XX = incremental changes
 
-$release  = '2.5beta+ (Build: 20130502)';// Human-friendly version name
+$release  = '2.5rc1 (Build: 20130510)'; // Human-friendly version name
 
 $branch   = '25';                       // this version's branch
-$maturity = MATURITY_BETA;              // this version's maturity level
+$maturity = MATURITY_RC;                // this version's maturity level