• R/O
  • HTTP
  • SSH
  • HTTPS

pukiwiki: Commit


Commit MetaInfo

Revisión5a7da81f5c1c481fec3fc1fcee5bfb18b34f1386 (tree)
Tiempo2022-03-22 03:08:29
Autorumorigu <umorigu@gmai...>
Commiterumorigu

Log Message

BugTrack/2551 Diff and History on RecentChanges page

Originally implemented by haifun -san.

Cambiar Resumen

Diferencia incremental

--- a/lib/file.php
+++ b/lib/file.php
@@ -2,7 +2,7 @@
22 // PukiWiki - Yet another WikiWikiWeb clone.
33 // file.php
44 // Copyright
5-// 2002-2021 PukiWiki Development Team
5+// 2002-2022 PukiWiki Development Team
66 // 2001-2002 Originally written by yu-ji
77 // License: GPL v2 or (at your option) any later version
88 //
@@ -521,11 +521,8 @@ function lastmodified_add($update = '', $remove = '')
521521 return;
522522 }
523523
524-
525-
526524 // ----
527525 // Update the page 'RecentChanges'
528-
529526 $recent_pages = array_splice($recent_pages, 0, $maxshow);
530527 $file = get_filename($whatsnew);
531528
@@ -539,9 +536,11 @@ function lastmodified_add($update = '', $remove = '')
539536 // Recreate
540537 ftruncate($fp, 0);
541538 rewind($fp);
542- foreach ($recent_pages as $_page=>$time)
543- fputs($fp, '-' . htmlsc(format_date($time)) .
544- ' - ' . '[[' . htmlsc($_page) . ']]' . "\n");
539+ $do_diff = exist_plugin('diff');
540+ foreach ($recent_pages as $_page=>$time) {
541+ $line = get_recentchanges_line($_page, $time, $do_diff);
542+ fputs($fp, $line);
543+ }
545544 fputs($fp, '#norelated' . "\n"); // :)
546545
547546 flock($fp, LOCK_UN);
@@ -601,11 +600,11 @@ function put_lastmodified()
601600 flock($fp, LOCK_EX);
602601 ftruncate($fp, 0);
603602 rewind($fp);
603+ $do_diff = exist_plugin('diff');
604604 foreach (array_keys($recent_pages) as $page) {
605- $time = $recent_pages[$page];
606- $s_lastmod = htmlsc(format_date($time));
607- $s_page = htmlsc($page);
608- fputs($fp, '-' . $s_lastmod . ' - [[' . $s_page . ']]' . "\n");
605+ $time = $recent_pages[$page];
606+ $line = get_recentchanges_line($page, $time, $do_diff);
607+ fputs($fp, $line);
609608 }
610609 fputs($fp, '#norelated' . "\n"); // :)
611610 flock($fp, LOCK_UN);
@@ -619,6 +618,27 @@ function put_lastmodified()
619618 }
620619
621620 /**
621+ * Get RecentChanges line.
622+ */
623+function get_recentchanges_line($page, $time, $is_diff)
624+{
625+ global $do_backup;
626+ $lastmod = format_date($time);
627+ if ($is_diff) {
628+ $diff = '[ &pageaction("' . $page . '",diff);';
629+ if ($do_backup) {
630+ $diff_backup = $diff . ' | &pageaction("' . $page . '",backup); ]';
631+ } else {
632+ $diff_backup = $diff . ' ]';
633+ }
634+ } else {
635+ $diff_backup = '';
636+ }
637+ $line = '-' . $lastmod . ' - ' . $diff_backup . ' [[' . $page . ']]' . "\n";
638+ return $line;
639+}
640+
641+/**
622642 * Get recent files
623643 *
624644 * @return Array of (file => time)
--- /dev/null
+++ b/plugin/pageaction.inc.php
@@ -0,0 +1,28 @@
1+<?php
2+// PukiWiki - Yet another WikiWikiWeb clone.
3+// pageaction.inc.php
4+// Copyright 2022 PukiWiki Development Team
5+// License: GPL v2 or (at your option) any later version
6+//
7+// pageaction plugin
8+
9+function plugin_pageaction_inline()
10+{
11+ global $_LANG;
12+ $args = func_get_args();
13+ $page = strip_bracket(array_shift($args));
14+ $action = array_shift($args);
15+ $base_uri = get_base_uri();
16+ switch ($action) {
17+ case 'diff':
18+ $diff_uri = $base_uri . '?cmd=diff&page=' . pagename_urlencode($page);
19+ return '<a href="' . htmlsc($diff_uri) . '">' . $_LANG['skin']['diff'] . '</a>';
20+ break;
21+ case 'backup':
22+ $backup_uri = $base_uri . '?cmd=backup&page=' . pagename_urlencode($page);
23+ return '<a href="' . htmlsc($backup_uri) . '">' . $_LANG['skin']['backup'] . '</a>';
24+ break;
25+ default:
26+ return make_pagelink($page);
27+ }
28+}
Show on old repository browser