Esempio n. 1
0
 /**
  * Test the tag updated event.
  */
 public function test_tag_updated()
 {
     $this->setAdminUser();
     // Save the system context.
     $systemcontext = context_system::instance();
     // Create a tag we are going to update.
     $tag = $this->getDataGenerator()->create_tag();
     // Store the name before we change it.
     $oldname = $tag->name;
     // Trigger and capture the event when renaming a tag.
     $sink = $this->redirectEvents();
     tag_rename($tag->id, 'newname');
     $this->assertDebuggingCalled();
     // Update the tag's name since we have renamed it.
     $tag->name = 'newname';
     $events = $sink->get_events();
     $event = reset($events);
     // Check that the event data is valid.
     $this->assertInstanceOf('\\core\\event\\tag_updated', $event);
     $this->assertEquals($systemcontext, $event->get_context());
     $expected = array(SITEID, 'tag', 'update', 'index.php?id=' . $tag->id, $oldname . '->' . $tag->name);
     $this->assertEventLegacyLogData($expected, $event);
     // Trigger and capture the event when setting the type of a tag.
     $sink = $this->redirectEvents();
     tag_type_set($tag->id, 'official');
     $this->assertDebuggingCalled();
     $events = $sink->get_events();
     $event = reset($events);
     // Check that the event data is valid.
     $this->assertInstanceOf('\\core\\event\\tag_updated', $event);
     $this->assertEquals($systemcontext, $event->get_context());
     $expected = array(0, 'tag', 'update', 'index.php?id=' . $tag->id, $tag->name);
     $this->assertEventLegacyLogData($expected, $event);
     // Trigger and capture the event for setting the description of a tag.
     $sink = $this->redirectEvents();
     tag_description_set($tag->id, 'description', FORMAT_MOODLE);
     $this->assertDebuggingCalled();
     $events = $sink->get_events();
     $event = reset($events);
     // Check that the event data is valid.
     $this->assertInstanceOf('\\core\\event\\tag_updated', $event);
     $this->assertEquals($systemcontext, $event->get_context());
     $expected = array(0, 'tag', 'update', 'index.php?id=' . $tag->id, $tag->name);
     $this->assertEventLegacyLogData($expected, $event);
 }
Esempio n. 2
0
     if ($tag->name != $tagnew->name) {
         // The name has changed, let's make sure it's not another existing tag
         if (tag_get_id($tagnew->name)) {
             // Something exists already, so flag an error
             $errorstring = s($tagnew->rawname) . ': ' . get_string('namesalreadybeeingused', 'tag');
         }
     }
 }
 if (empty($errorstring)) {
     // All is OK, let's save it
     $tagnew = file_postupdate_standard_editor($tagnew, 'description', $editoroptions, $systemcontext, 'tag', 'description', $tag->id);
     tag_description_set($tag_id, $tagnew->description, $tagnew->descriptionformat);
     $tagnew->timemodified = time();
     if (has_capability('moodle/tag:manage', $systemcontext)) {
         // rename tag
         if (!tag_rename($tag->id, $tagnew->rawname)) {
             print_error('errorupdatingrecord', 'tag');
         }
     }
     //log tag changes activity
     //if tag name exist from form, renaming is allow.  record log action as rename
     //otherwise, record log action as update
     if (isset($tagnew->name) && $tag->name != $tagnew->name) {
         add_to_log($COURSE->id, 'tag', 'update', 'index.php?id=' . $tag->id, $tag->name . '->' . $tagnew->name);
     } elseif ($tag->description != $tagnew->description) {
         add_to_log($COURSE->id, 'tag', 'update', 'index.php?id=' . $tag->id, $tag->name);
     }
     //updated related tags
     tag_set('tag', $tagnew->id, explode(',', trim($tagnew->relatedtags)));
     //print_object($tagnew); die();
     redirect($CFG->wwwroot . '/tag/index.php?tag=' . rawurlencode($tag->name));
Esempio n. 3
0
             $changed[] = $tag_id;
         }
     }
     if (!empty($changed)) {
         $str_changed = implode(', ', tag_get_name($changed));
         $notice = $str_changed . ' --  ' . get_string('typechanged', 'tag');
     }
     break;
 case 'changename':
     if (!data_submitted() or !confirm_sesskey()) {
         break;
     }
     $tags_names_changed = array();
     foreach ($tagschecked as $tag_id) {
         if ($newnames[$tag_id] != '') {
             if (!($tags_names_updated[] = tag_rename($tag_id, $newnames[$tag_id]))) {
                 // if tag already exists, or is not a valid tag name, etc.
                 $err_notice .= $newnames[$tag_id] . '-- ' . get_string('namesalreadybeeingused', 'tag') . '<br />';
             } else {
                 $tags_names_changed[$tag_id] = $newnames[$tag_id];
             }
         }
     }
     //notice to inform what tags had their names effectively updated
     if ($tags_names_changed) {
         $notice = implode($tags_names_changed, ', ');
         $notice .= ' -- ' . get_string('updated', 'tag');
     }
     break;
 case 'addofficialtag':
     if (!data_submitted() or !confirm_sesskey()) {