if ($numchanges == 0) { $annotations = ouwiki_get_annotations($pageversion2); if (count($annotations) === 0) { $advice = get_string('diff_nochanges', 'ouwiki'); } else { $advice = get_string('diff_someannotations', 'ouwiki'); } } else { $advice = get_string('advice_diff', 'ouwiki'); } print '<p class="ouw_advice">' . $advice . ' ' . get_string('returntohistory', 'ouwiki', 'history.php?' . ouwiki_display_wiki_parameters($pagename, $subwiki, $cm)) . '</p>'; // Obtain pluginfile urls. $pageversion1->xhtml = file_rewrite_pluginfile_urls($pageversion1->xhtml, 'pluginfile.php', $context->id, 'mod_ouwiki', 'content', $pageversion1->versionid); $pageversion2->xhtml = file_rewrite_pluginfile_urls($pageversion2->xhtml, 'pluginfile.php', $context->id, 'mod_ouwiki', 'content', $pageversion2->versionid); // Obtain difference between two versions list($diff1, $diff2) = ouwiki_diff_html($pageversion1->xhtml, $pageversion2->xhtml); // To make it look like a user object $pageversion1->id = $pageversion1->userid; $v1name = ouwiki_display_user($pageversion1, $course->id); $pageversion2->id = $pageversion2->userid; $v2name = ouwiki_display_user($pageversion2, $course->id); // Disply the two versions $v1 = new StdClass(); $v1->version = get_string('olderversion', 'ouwiki'); $v1->date = userdate($pageversion1->timecreated); $v1->savedby = get_string('savedby', 'ouwiki', $v1name); $v1->content = $diff1; $v1->attachments = $attachdiff1; $v2 = new StdClass(); $v2->version = get_string('olderversion', 'ouwiki'); $v2->date = userdate($pageversion2->timecreated);
/** * Given two versions of a page, prints a page displaying the differences between them. * * @global object $CFG * @global object $OUTPUT * @global object $PAGE */ private function print_diff_content() { global $CFG, $OUTPUT, $PAGE; $pageid = $this->page->id; $total = wiki_count_wiki_page_versions($pageid) - 1; $oldversion = wiki_get_wiki_page_version($pageid, $this->compare); $newversion = wiki_get_wiki_page_version($pageid, $this->comparewith); if ($oldversion && $newversion) { $oldtext = format_text(file_rewrite_pluginfile_urls($oldversion->content, 'pluginfile.php', $this->modcontext->id, 'mod_wiki', 'attachments', $this->subwiki->id)); $newtext = format_text(file_rewrite_pluginfile_urls($newversion->content, 'pluginfile.php', $this->modcontext->id, 'mod_wiki', 'attachments', $this->subwiki->id)); list($diff1, $diff2) = ouwiki_diff_html($oldtext, $newtext); $oldversion->diff = $diff1; $oldversion->user = wiki_get_user_info($oldversion->userid); $newversion->diff = $diff2; $newversion->user = wiki_get_user_info($newversion->userid); echo $this->wikioutput->diff($pageid, $oldversion, $newversion, array('total' => $total)); } else { print_error('versionerror', 'wiki'); } }
public function test_diff_html() { list($result1, $result2, $changes) = ouwiki_diff_html($this->html1, $this->html2); $this->assertEquals(13, $changes); }