Merge branch 'MDL-41143-master' of git://github.com/FMCorz/moodle
authorDan Poltawski <dan@moodle.com>
Wed, 21 Aug 2013 05:40:23 +0000 (13:40 +0800)
committerDan Poltawski <dan@moodle.com>
Wed, 21 Aug 2013 05:40:23 +0000 (13:40 +0800)
1  2 
course/editsection.php

diff --combined course/editsection.php
@@@ -25,6 -25,7 +25,7 @@@
  
  require_once("../config.php");
  require_once("lib.php");
+ require_once($CFG->libdir . '/formslib.php');
  require_once($CFG->libdir . '/conditionlib.php');
  
  $id = required_param('id', PARAM_INT);    // course_sections.id
@@@ -33,14 -34,14 +34,14 @@@ $sectionreturn = optional_param('sr', 0
  $PAGE->set_url('/course/editsection.php', array('id'=>$id, 'sr'=> $sectionreturn));
  
  $section = $DB->get_record('course_sections', array('id' => $id), '*', MUST_EXIST);
 -$course = $DB->get_record('course', array('id' => $section->course), '*', MUST_EXIST);
 +$course = get_course($section->course);
  $sectionnum = $section->section;
  
  require_login($course);
  $context = context_course::instance($course->id);
  require_capability('moodle/course:update', $context);
  
 -// get section_info object with all availability options
 +// Get section_info object with all availability options.
  $sectioninfo = get_fast_modinfo($course)->get_section_info($sectionnum);
  
  $editoroptions = array('context'=>$context ,'maxfiles' => EDITOR_UNLIMITED_FILES, 'maxbytes'=>$CFG->maxbytes, 'trusttext'=>false, 'noclean'=>true);
@@@ -51,44 -52,31 +52,44 @@@ $mform = course_get_format($course->id)
  $mform->set_data(convert_to_array($sectioninfo));
  
  if ($mform->is_cancelled()){
 -    // form cancelled, return to course
 +    // Form cancelled, return to course.
      redirect(course_get_url($course, $section, array('sr' => $sectionreturn)));
  } else if ($data = $mform->get_data()) {
 -    // data submitted and validated, update and return to course
 +    // Data submitted and validated, update and return to course.
      $DB->update_record('course_sections', $data);
      rebuild_course_cache($course->id, true);
      if (isset($data->section)) {
 -        // usually edit form does not change relative section number but just in case
 +        // Usually edit form does not change relative section number but just in case.
          $sectionnum = $data->section;
      }
      if (!empty($CFG->enableavailability)) {
 -        // Update grade and completion conditions
 +        // Update grade and completion conditions.
          $sectioninfo = get_fast_modinfo($course)->get_section_info($sectionnum);
          condition_info_section::update_section_from_form($sectioninfo, $data);
          rebuild_course_cache($course->id, true);
      }
      course_get_format($course->id)->update_section_format_options($data);
  
 -    add_to_log($course->id, "course", "editsection", "editsection.php?id=$id", "$sectionnum");
 +    // Set section info, as this might not be present in form_data.
 +    if (!isset($data->section))  {
 +        $data->section = $sectionnum;
 +    }
 +    // Trigger an event for course section update.
 +    $event = \core\event\course_section_updated::create(
 +            array(
 +                'objectid' => $data->id,
 +                'courseid' => $course->id,
 +                'context' => $context,
 +                'other' => array('sectionnum' => $data->section)
 +            )
 +        );
 +    $event->trigger();
 +
      $PAGE->navigation->clear_cache();
      redirect(course_get_url($course, $section, array('sr' => $sectionreturn)));
  }
  
 -// the edit form is displayed for the first time or there was a validation
 -// error on the previous step. Display the edit form:
 +// The edit form is displayed for the first time or if there was validation error on the previous step.
  $sectionname  = get_section_name($course, $sectionnum);
  $stredit      = get_string('edita', '', " $sectionname");
  $strsummaryof = get_string('summaryof', '', " $sectionname");