function set_versionid($versionid) { $this->version = wiki_get_version($versionid); }
/** * Prints lists of versions which can be deleted * * @global core_renderer $OUTPUT * @global moodle_page $PAGE */ private function print_delete_version() { global $OUTPUT, $PAGE; $pageid = $this->page->id; // versioncount is the latest version $versioncount = wiki_count_wiki_page_versions($pageid) - 1; $versions = wiki_get_wiki_page_versions($pageid, 0, $versioncount); // We don't want version 0 to be displayed // version 0 is blank page if (end($versions)->version == 0) { array_pop($versions); } $contents = array(); $version0page = wiki_get_wiki_page_version($this->page->id, 0); $creator = wiki_get_user_info($version0page->userid); $a = new stdClass(); $a->date = userdate($this->page->timecreated, get_string('strftimedaydatetime', 'langconfig')); $a->username = fullname($creator); echo $OUTPUT->heading(get_string('createddate', 'wiki', $a), 4, 'wiki_headingtime'); if ($versioncount > 0) { /// If there is only one version, we don't need radios nor forms if (count($versions) == 1) { $row = array_shift($versions); $username = wiki_get_user_info($row->userid); $picture = $OUTPUT->user_picture($username); $date = userdate($row->timecreated, get_string('strftimedate', 'langconfig')); $time = userdate($row->timecreated, get_string('strftimetime', 'langconfig')); $versionid = wiki_get_version($row->id); $versionlink = new moodle_url('/mod/wiki/viewversion.php', array('pageid' => $pageid, 'versionid' => $versionid->id)); $userlink = new moodle_url('/user/view.php', array('id' => $username->id, 'course' => $PAGE->cm->course)); $picturelink = $picture . html_writer::link($userlink->out(false), fullname($username)); $historydate = $OUTPUT->container($date, 'wiki_histdate'); $contents[] = array('', html_writer::link($versionlink->out(false), $row->version), $picturelink, $time, $historydate); //Show current version $table = new html_table(); $table->head = array('', get_string('version'), get_string('user'), get_string('modified'), ''); $table->data = $contents; $table->attributes['class'] = 'mdl-align'; echo html_writer::table($table); } else { $lastdate = ''; $rowclass = array(); foreach ($versions as $version) { $user = wiki_get_user_info($version->userid); $picture = $OUTPUT->user_picture($user, array('popup' => true)); $date = userdate($version->timecreated, get_string('strftimedate')); if ($date == $lastdate) { $date = ''; $rowclass[] = ''; } else { $lastdate = $date; $rowclass[] = 'wiki_histnewdate'; } $time = userdate($version->timecreated, get_string('strftimetime', 'langconfig')); $versionid = wiki_get_version($version->id); if ($versionid) { $url = new moodle_url('/mod/wiki/viewversion.php', array('pageid' => $pageid, 'versionid' => $versionid->id)); $viewlink = html_writer::link($url->out(false), $version->version); } else { $viewlink = $version->version; } $userlink = new moodle_url('/user/view.php', array('id' => $version->userid, 'course' => $PAGE->cm->course)); $picturelink = $picture . html_writer::link($userlink->out(false), fullname($user)); $historydate = $OUTPUT->container($date, 'wiki_histdate'); $radiofromelement = $this->choose_from_radio(array($version->version => null), 'fromversion', 'M.mod_wiki.deleteversion()', $versioncount, true); $radiotoelement = $this->choose_from_radio(array($version->version => null), 'toversion', 'M.mod_wiki.deleteversion()', $versioncount, true); $contents[] = array( $radiofromelement . $radiotoelement, $viewlink, $picturelink, $time, $historydate); } $table = new html_table(); $table->head = array(get_string('deleteversions', 'wiki'), get_string('version'), get_string('user'), get_string('modified'), ''); $table->data = $contents; $table->attributes['class'] = 'generaltable mdl-align'; $table->rowclasses = $rowclass; ///Print the form echo html_writer::start_tag('form', array('action'=>new moodle_url('/mod/wiki/admin.php'), 'method' => 'post')); echo html_writer::tag('div', html_writer::empty_tag('input', array('type' => 'hidden', 'name' => 'pageid', 'value' => $pageid))); echo html_writer::empty_tag('input', array('type' => 'hidden', 'name' => 'option', 'value' => $this->view)); echo html_writer::empty_tag('input', array('type' => 'hidden', 'name' => 'sesskey', 'value' => sesskey())); echo html_writer::table($table); echo html_writer::start_tag('div', array('class' => 'mdl-align')); echo html_writer::empty_tag('input', array('type' => 'submit', 'class' => 'wiki_form-button', 'value' => get_string('deleteversions', 'wiki'))); echo html_writer::end_tag('div'); echo html_writer::end_tag('form'); } } else { print_string('nohistory', 'wiki'); } }
/** * Test page_version_restored event. */ public function test_page_version_restored() { $this->setUp(); $page = $this->wikigenerator->create_first_page($this->wiki); $context = context_module::instance($this->wiki->cmid); $version = wiki_get_version(1); // Triggering and capturing the event. $sink = $this->redirectEvents(); wiki_restore_page($page, $version, $context); $events = $sink->get_events(); $this->assertCount(2, $events); $event = array_pop($events); // Checking that the event contains the expected values. $this->assertInstanceOf('\\mod_wiki\\event\\page_version_restored', $event); $this->assertEquals($context, $event->get_context()); $this->assertEquals($version->id, $event->objectid); $this->assertEquals($page->id, $event->other['pageid']); $expected = array($this->course->id, 'wiki', 'restore', 'view.php?pageid=' . $page->id, $page->id, $this->wiki->id); $this->assertEventLegacyLogData($expected, $event); }