Example #1
0
     $field = NULL;
     foreach ($datarecord as $name => $value) {
         if (!in_array($name, $ignorenames)) {
             $namearr = explode('_', $name);
             // Second one is the field id
             if (empty($field->field) || $namearr[1] != $field->field->id) {
                 // Try to reuse classes
                 $field = data_get_field_from_id($namearr[1], $data);
             }
             if ($field) {
                 $field->update_content($rid, $value, $name);
             }
         }
     }
     // Trigger an event for updating this record.
     $event = \mod_data\event\record_updated::create(array('objectid' => $rid, 'context' => $context, 'courseid' => $course->id, 'other' => array('dataid' => $data->id)));
     $event->add_record_snapshot('data', $data);
     $event->trigger();
     redirect($CFG->wwwroot . '/mod/data/view.php?d=' . $data->id . '&rid=' . $rid);
 } else {
     /// Add some new records
     ///Empty form checking - you can't submit an empty form!
     $emptyform = true;
     // assume the worst
     foreach ($datarecord as $name => $value) {
         if (!in_array($name, $ignorenames)) {
             $namearr = explode('_', $name);
             // Second one is the field id
             if (empty($field->field) || $namearr[1] != $field->field->id) {
                 // Try to reuse classes
                 $field = data_get_field_from_id($namearr[1], $data);
Example #2
0
 /**
  * Test the record updated event.
  *
  * There is no external API for updating a record, so the unit test will simply create
  * and trigger the event and ensure the legacy log data is returned as expected.
  */
 public function test_record_updated()
 {
     // Create a course we are going to add a data module to.
     $course = $this->getDataGenerator()->create_course();
     // The generator used to create a data module.
     $generator = $this->getDataGenerator()->get_plugin_generator('mod_data');
     // Create a data module.
     $data = $generator->create_instance(array('course' => $course->id));
     // Trigger an event for updating this record.
     $event = \mod_data\event\record_updated::create(array('objectid' => 1, 'context' => context_module::instance($data->cmid), 'courseid' => $course->id, 'other' => array('dataid' => $data->id)));
     // Trigger and capture the event for updating the data record.
     $sink = $this->redirectEvents();
     $event->trigger();
     $events = $sink->get_events();
     $event = reset($events);
     // Check that the event data is valid.
     $this->assertInstanceOf('\\mod_data\\event\\record_updated', $event);
     $this->assertEquals(context_module::instance($data->cmid), $event->get_context());
     $expected = array($course->id, 'data', 'update', 'view.php?d=' . $data->id . '&rid=1', $data->id, $data->cmid);
     $this->assertEventLegacyLogData($expected, $event);
     $this->assertEventContextNotUsed($event);
     $url = new moodle_url('/mod/data/view.php', array('d' => $data->id, 'rid' => $event->objectid));
     $this->assertEquals($url, $event->get_url());
 }