Merge branch 'MDL-39957_master' of https://github.com/markn86/moodle
authorDan Poltawski <dan@moodle.com>
Tue, 20 Aug 2013 04:38:08 +0000 (12:38 +0800)
committerDan Poltawski <dan@moodle.com>
Tue, 20 Aug 2013 04:38:08 +0000 (12:38 +0800)
1  2 
course/lib.php
lang/en/moodle.php
lib/moodlelib.php

diff --combined course/lib.php
@@@ -2026,14 -2026,14 +2026,14 @@@ function course_allowed_module($course
   * @return bool success
   */
  function move_courses($courseids, $categoryid) {
-     global $CFG, $DB, $OUTPUT;
+     global $DB;
  
      if (empty($courseids)) {
-         // nothing to do
+         // Nothing to do.
          return;
      }
  
-     if (!$category = $DB->get_record('course_categories', array('id'=>$categoryid))) {
+     if (!$category = $DB->get_record('course_categories', array('id' => $categoryid))) {
          return false;
      }
  
      $i = 1;
  
      foreach ($courseids as $courseid) {
-         if ($course = $DB->get_record('course', array('id'=>$courseid), 'id, category')) {
+         if ($dbcourse = $DB->get_record('course', array('id' => $courseid))) {
              $course = new stdClass();
              $course->id = $courseid;
              $course->category  = $category->id;
              $course->sortorder = $category->sortorder + MAX_COURSES_IN_CATEGORY - $i++;
              if ($category->visible == 0) {
-                 // hide the course when moving into hidden category,
-                 // do not update the visibleold flag - we want to get to previous state if somebody unhides the category
+                 // Hide the course when moving into hidden category, do not update the visibleold flag - we want to get
+                 // to previous state if somebody unhides the category.
                  $course->visible = 0;
              }
  
              $DB->update_record('course', $course);
-             add_to_log($course->id, "course", "move", "edit.php?id=$course->id", $course->id);
  
-             $context   = context_course::instance($course->id);
+             // Store the context.
+             $context = context_course::instance($course->id);
+             // Update the course object we are passing to the event.
+             $dbcourse->category = $course->category;
+             $dbcourse->sortorder = $course->sortorder;
+             // Trigger a course updated event.
+             $event = \core\event\course_updated::create(array(
+                 'objectid' => $course->id,
+                 'context' => $context,
+                 'other' => array('shortname' => $dbcourse->shortname,
+                                  'fullname' => $dbcourse->fullname)
+             ));
+             $event->add_record_snapshot('course', $dbcourse);
+             $event->set_legacy_logdata(array($course->id, 'course', 'move', 'edit.php?id=' . $course->id, $course->id));
+             $event->trigger();
              $context->update_moved($newparent);
          }
      }
@@@ -2229,7 -2245,7 +2245,7 @@@ function course_overviewfiles_options($
   * @return object new course instance
   */
  function create_course($data, $editoroptions = NULL) {
-     global $CFG, $DB;
+     global $DB;
  
      //check the categoryid - must be given for all new courses
      $category = $DB->get_record('course_categories', array('id'=>$data->category), '*', MUST_EXIST);
      // set up enrolments
      enrol_course_updated(true, $course, $data);
  
-     add_to_log(SITEID, 'course', 'new', 'view.php?id='.$course->id, $data->fullname.' (ID '.$course->id.')');
-     // Trigger events
-     events_trigger('course_created', $course);
+     // Trigger a course created event.
+     $event = \core\event\course_created::create(array(
+         'objectid' => $course->id,
+         'context' => context_course::instance($course->id),
+         'other' => array('shortname' => $course->shortname,
+                          'fullname' => $course->fullname)
+     ));
+     $event->add_record_snapshot('course', $course);
+     $event->trigger();
  
      return $course;
  }
   * @return void
   */
  function update_course($data, $editoroptions = NULL) {
-     global $CFG, $DB;
+     global $DB;
  
      $data->timemodified = time();
  
      // update enrol settings
      enrol_course_updated(false, $course, $data);
  
-     add_to_log($course->id, "course", "update", "edit.php?id=$course->id", $course->id);
-     // Trigger events
-     events_trigger('course_updated', $course);
+     // Trigger a course updated event.
+     $event = \core\event\course_updated::create(array(
+         'objectid' => $course->id,
+         'context' => $context,
+         'other' => array('shortname' => $course->shortname,
+                          'fullname' => $course->fullname)
+     ));
+     $event->add_record_snapshot('course', $course);
+     $event->set_legacy_logdata(array($course->id, 'course', 'update', 'edit.php?id=' . $course->id, $course->id));
+     $event->trigger();
  
      if ($oldcourse->format !== $course->format) {
          // Remove all options stored for the previous format
@@@ -2977,9 -3004,6 +3004,9 @@@ function include_course_ajax($course, $
              'markedthistopic',
              'move',
              'movesection',
 +            'movecontent',
 +            'tocontent',
 +            'emptydragdropregion'
          ), 'moodle');
  
      // Include format-specific strings
diff --combined lang/en/moodle.php
@@@ -645,7 -645,6 +645,7 @@@ $string['emailpasswordsent'] = 'Thank y
  An email containing your new password has been sent to your address at<br /><b>{$a->email}</b>.<br />
  The new password was automatically generated - you might like to
  <a href="{$a->link}">change your password</a> to something easier to remember.';
 +$string['emptydragdropregion'] = 'empty region';
  $string['enable'] = 'Enable';
  $string['encryptedcode'] = 'Encrypted code';
  $string['english'] = 'English';
@@@ -660,6 -659,12 +660,12 @@@ $string['errorcreatingactivity'] = 'Una
  $string['errorfiletoobig'] = 'The file was bigger than the limit of {$a} bytes';
  $string['errornouploadrepo'] = 'There is no upload repository enabled for this site';
  $string['errorwhenconfirming'] = 'You are not confirmed yet because an error occurred.  If you clicked on a link in an email to get here, make sure that the line in your email wasn\'t broken or wrapped. You may have to use cut and paste to reconstruct the link properly.';
+ $string['eventcoursecategorydeleted'] = 'Category deleted';
+ $string['eventcoursecontentdeleted'] = 'Course content deleted';
+ $string['eventcoursecreated'] = 'Course created';
+ $string['eventcoursedeleted'] = 'Course deleted';
+ $string['eventcourserestored'] = 'Course restored';
+ $string['eventcourseupdated'] = 'Course updated';
  $string['everybody'] = 'Everybody';
  $string['executeat'] = 'Execute at';
  $string['existing'] = 'Existing';
@@@ -1081,7 -1086,6 +1087,7 @@@ $string['moreinformation'] = 'More info
  $string['moreprofileinfoneeded'] = 'Please tell us more about yourself';
  $string['mostrecently'] = 'most recently';
  $string['move'] = 'Move';
 +$string['movecontent'] = 'Move {$a}';
  $string['movecategorycontentto'] = 'Move into';
  $string['movecategoryto'] = 'Move category to:';
  $string['movecontentstoanothercategory'] = 'Move contents to another category';
@@@ -1675,7 -1679,6 +1681,7 @@@ $string['time'] = 'Time'
  $string['timezone'] = 'Timezone';
  $string['to'] = 'To';
  $string['tocreatenewaccount'] = 'Skip to create new account';
 +$string['tocontent'] = 'To item "{$a}"';
  $string['today'] = 'Today';
  $string['todaylogs'] = 'Today\'s logs';
  $string['toeveryone'] = 'to everyone';
diff --combined lib/moodlelib.php
@@@ -4859,10 -4859,15 +4859,15 @@@ function delete_course($courseorid, $sh
      $DB->delete_records("course", array("id" => $courseid));
      $DB->delete_records("course_format_options", array("courseid" => $courseid));
  
-     // Trigger events.
-     $course->context = $context;
-     // You can not fetch context in the event because it was already deleted.
-     events_trigger('course_deleted', $course);
+     // Trigger a course deleted event.
+     $event = \core\event\course_deleted::create(array(
+         'objectid' => $course->id,
+         'context' => $context,
+         'other' => array('shortname' => $course->shortname,
+                          'fullname' => $course->fullname)
+     ));
+     $event->add_record_snapshot('course', $course);
+     $event->trigger();
  
      return true;
  }
   */
  function remove_course_contents($courseid, $showfeedback = true, array $options = null) {
      global $CFG, $DB, $OUTPUT;
      require_once($CFG->libdir.'/badgeslib.php');
      require_once($CFG->libdir.'/completionlib.php');
      require_once($CFG->libdir.'/questionlib.php');
      // also some non-standard unsupported plugins may try to store something there.
      fulldelete($CFG->dataroot.'/'.$course->id);
  
-     // Finally trigger the event.
-     $course->context = $coursecontext; // You can not access context in cron event later after course is deleted.
-     $course->options = $options;       // Not empty if we used any crazy hack.
-     events_trigger('course_content_removed', $course);
+     // Trigger a course content deleted event.
+     $event = \core\event\course_content_deleted::create(array(
+         'objectid' => $course->id,
+         'context' => $coursecontext,
+         'other' => array('shortname' => $course->shortname,
+                          'fullname' => $course->fullname,
+                          'options' => $options) // Passing this for legacy reasons.
+     ));
+     $event->add_record_snapshot('course', $course);
+     $event->trigger();
  
      return true;
  }
@@@ -6728,8 -6740,8 +6740,8 @@@ function get_string($identifier, $compo
          return new lang_string($identifier, $component, $a);
      }
  
 -    if (debugging('', DEBUG_DEVELOPER) && clean_param($identifier, PARAM_STRINGID) === '') {
 -        throw new coding_exception('Invalid string identifier. The identifier cannot be empty. Please fix your get_string() call.');
 +    if ($CFG->debugdeveloper && clean_param($identifier, PARAM_STRINGID) === '') {
 +        throw new coding_exception('Invalid string identifier. The identifier cannot be empty. Please fix your get_string() call.', DEBUG_DEVELOPER);
      }
  
      // There is now a forth argument again, this time it is a boolean however so
@@@ -7222,7 -7234,7 +7234,7 @@@ function get_list_of_plugins($directory
          $basedir = $basedir .'/'. $directory;
      }
  
 -    if (empty($exclude) and debugging('', DEBUG_DEVELOPER)) {
 +    if ($CFG->debugdeveloper and empty($exclude)) {
          // Make sure devs do not use this to list normal plugins,
          // this is intended for general directories that are not plugins!
  
@@@ -10068,8 -10080,8 +10080,8 @@@ class lang_string 
          // Check if we need to process the string.
          if ($this->string === null) {
              // Check the quality of the identifier.
 -            if (debugging('', DEBUG_DEVELOPER) && clean_param($this->identifier, PARAM_STRINGID) === '') {
 -                throw new coding_exception('Invalid string identifier. Most probably some illegal character is part of the string identifier. Please check your string definition');
 +            if ($CFG->debugdeveloper && clean_param($this->identifier, PARAM_STRINGID) === '') {
 +                throw new coding_exception('Invalid string identifier. Most probably some illegal character is part of the string identifier. Please check your string definition', DEBUG_DEVELOPER);
              }
  
              // Process the string.