/** * 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); }
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));
$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()) {