示例#1
0
$entry = file_prepare_standard_filemanager($entry, 'attachment', $attachmentoptions, $sitecontext, 'blog', 'attachment', $entry->id);
if (!empty($CFG->usetags) && !empty($entry->id)) {
    include_once $CFG->dirroot . '/tag/lib.php';
    $entry->tags = tag_get_tags_array('post', $entry->id);
}
$entry->action = $action;
// set defaults
$blogeditform->set_data($entry);
if ($blogeditform->is_cancelled()) {
    redirect($returnurl);
} else {
    if ($data = $blogeditform->get_data()) {
        switch ($action) {
            case 'add':
                $blogentry = new blog_entry(null, $data, $blogeditform);
                $blogentry->add();
                $blogentry->edit($data, $blogeditform, $summaryoptions, $attachmentoptions);
                break;
            case 'edit':
                if (empty($entry->id)) {
                    print_error('wrongentryid', 'blog');
                }
                $entry->edit($data, $blogeditform, $summaryoptions, $attachmentoptions);
                break;
            default:
                print_error('invalidaction');
        }
        redirect($returnurl);
    }
}
// gui setup
 /**
  * Test various blog related events.
  */
 public function test_blog_entry_created_event()
 {
     global $USER;
     $this->setAdminUser();
     $this->resetAfterTest();
     // Create a blog entry for another user as Admin.
     $sink = $this->redirectEvents();
     $blog = new blog_entry();
     $blog->subject = "Subject of blog";
     $blog->userid = $this->userid;
     $states = blog_entry::get_applicable_publish_states();
     $blog->publishstate = reset($states);
     $blog->add();
     $events = $sink->get_events();
     $sink->close();
     $event = reset($events);
     $sitecontext = context_system::instance();
     // Validate event data.
     $this->assertInstanceOf('\\core\\event\\blog_entry_created', $event);
     $url = new moodle_url('/blog/index.php', array('entryid' => $event->objectid));
     $this->assertEquals($url, $event->get_url());
     $this->assertEquals($sitecontext->id, $event->contextid);
     $this->assertEquals($blog->id, $event->objectid);
     $this->assertEquals($USER->id, $event->userid);
     $this->assertEquals($this->userid, $event->relateduserid);
     $this->assertEquals("post", $event->objecttable);
     $arr = array(SITEID, 'blog', 'add', 'index.php?userid=' . $this->userid . '&entryid=' . $blog->id, $blog->subject);
     $this->assertEventLegacyLogData($arr, $event);
     $this->assertEquals("blog_entry_added", $event->get_legacy_eventname());
     $this->assertEventLegacyData($blog, $event);
     $this->assertEventContextNotUsed($event);
 }
示例#3
0
 /**
  * Prepares environment for test_move_tags_* tests
  */
 protected function prepare_move_tags()
 {
     global $CFG;
     require_once $CFG->dirroot . '/blog/locallib.php';
     $this->setUser($this->getDataGenerator()->create_user());
     $collid1 = core_tag_collection::get_default();
     $collid2 = core_tag_collection::create(array('name' => 'newcoll'))->id;
     $user1 = $this->getDataGenerator()->create_user();
     $user2 = $this->getDataGenerator()->create_user();
     $blogpost = new blog_entry(null, array('subject' => 'test'), null);
     $states = blog_entry::get_applicable_publish_states();
     $blogpost->publishstate = reset($states);
     $blogpost->add();
     core_tag_tag::set_item_tags('core', 'user', $user1->id, context_user::instance($user1->id), array('Tag1', 'Tag2'));
     core_tag_tag::set_item_tags('core', 'user', $user2->id, context_user::instance($user2->id), array('Tag2', 'Tag3'));
     $this->getDataGenerator()->create_tag(array('rawname' => 'Tag4', 'tagcollid' => $collid1, 'tagtype' => 'official'));
     $this->getDataGenerator()->create_tag(array('rawname' => 'Tag5', 'tagcollid' => $collid2, 'tagtype' => 'official'));
     return array($collid1, $collid2, $user1, $user2, $blogpost);
 }
示例#4
0
    /**
     * Test various blog related events.
     */
    public function test_blog_entry_events() {
        global $USER, $DB;

        $this->setAdminUser();
        $this->resetAfterTest();

        // Create a blog entry.
        $blog = new blog_entry();
        $blog->summary = "This is summary of blog";
        $blog->subject = "Subject of blog";
        $states = blog_entry::get_applicable_publish_states();
        $blog->publishstate = reset($states);
        $sink = $this->redirectEvents();
        $blog->add();
        $events = $sink->get_events();
        $event = reset($events);
        $sitecontext = context_system::instance();

        // Validate event data.
        $this->assertInstanceOf('\core\event\blog_entry_created', $event);
        $this->assertEquals($sitecontext->id, $event->contextid);
        $this->assertEquals($blog->id, $event->objectid);
        $this->assertEquals($USER->id, $event->userid);
        $this->assertEquals("post", $event->objecttable);

        // Delete a blog entry.
        $record = $DB->get_record('post', array('id' => $blog->id));
        $blog->delete();
        $events = $sink->get_events();
        $event = array_pop($events);

        // Validate event data.
        $this->assertInstanceOf('\core\event\blog_entry_deleted', $event);
        $this->assertEquals(context_system::instance()->id, $event->contextid);
        $this->assertEquals($blog->id, $event->objectid);
        $this->assertEquals($USER->id, $event->userid);
        $this->assertEquals("post", $event->objecttable);
        $this->assertEquals($record, $event->get_record_snapshot("post", $blog->id));
        $this->assertSame('blog_entry_deleted', $event->get_legacy_eventname());

    }