[Home]DanKeshet/RecentChangesCode

HomePage | DanKeshet | Recent Changes | Preferences

The code. See DanKeshet for more detail.
--- wiki.pl     Mon Feb 12 17:50:25 2001
+++ wiki.new.pl Tue Aug 14 19:34:37 2001
@@ -438,9 +438,16 @@
 sub DoRc {
   my ($fileData, $rcline, $i, $daysago, $lastTs, $ts, $idOnly);
   my (@fullrc, $status, $oldFileData, $firstTs, $errorText);
+  my ($temp, $page, %pgLinks);
   my $starttime = 0;
   my $showbar = 0;
 
+  if ($page = &GetParam("page", "")) {
+    foreach $temp (&GetPageLinks($page)) {
+      $pgLinks{$temp}=1;
+    }
+  }
+
   if (&GetParam("from", 0)) {
     $starttime = &GetParam("from", 0);
     print "<h2>Updates since ", &TimeToText($starttime), "</h2>\n";
@@ -500,9 +507,11 @@
   foreach $i (@RcDays) {
     print " | "  if $showbar;
     $showbar = 1;
-    print &ScriptLink("action=rc&days=$i", "$i day" . (($i != 1)?"s":""));
+    print &ScriptLink("action=rc&days=$i" . ($page ? "&page=$page" : ""), 
+                      "$i day" . (($i != 1)?"s":""));
+
   }
-  print "<br>" . &ScriptLink("action=rc&from=$lastTs",
+  print "<br>" . &ScriptLink("action=rc&from=$lastTs" . ($page ? "&page=$page" : ""),
                              "List new changes starting from");
   print " " . &TimeToText($lastTs), "<br>\n";
 
@@ -521,6 +530,24 @@
     ($ts) = split(/$FS3/, $fullrc[$i]);
     last if ($ts >= $starttime);
   }
+  # Later consider an end-time limit (items older than X)
+  splice(@fullrc, 0, $i);  # Remove items before index $i
+
+  # If we're using page-specific RC 
+  if ($page) {
+    for ($i = 0; $i < @fullrc ; $i++) {
+      ($ts, $temp) = split(/$FS3/, $fullrc[$i]);
+      splice(@fullrc, $i, 1) unless ($pgLinks{$temp});   
+    } 
+  }
+  
+  if (! @fullrc) {
+    print "<br><strong>No updates", $page ? " on $page" : "", " since ", &TimeToText($starttime),
+          "</strong><br>\n";
+  } else {
+    print &GetRcHtml(@fullrc);
+  }  
+
   if ($i == @fullrc) {
     print "<br><strong>No updates since ", &TimeToText($starttime),
           "</strong><br>\n";
@@ -811,6 +838,11 @@
   return &ScriptLink("action=editprefs", "Preferences");
 }
 
+sub GetPageRecentChanges {
+  my $page = shift;    
+  return &ScriptLink("action=rc&page=$page", "Recent Changes (Local)");
+}
+
 sub GetRandomLink {
   return &ScriptLink("action=random", "Random Page");
 }
@@ -987,6 +1019,7 @@
   }
   $bartext .= " | " . &GetPageLink("$RCName");
   $bartext .= " | " . &GetPrefsLink();
+  $bartext .= " | " . &GetPageRecentChanges($id);
   if (&GetParam("linkrandom", 0)) {
     $bartext .= " | " . &GetRandomLink();
   }
@@ -2875,20 +2908,13 @@
 
 sub GetFullLinkList {
   my ($name, $unique, $sort, $exists, $empty, $link, $search);
-  my ($pagelink, $interlink, $urllink);
   my (@found, @links, @newlinks, @pglist, %pgExists, %seen);
 
   $unique = &GetParam("unique", 1);
   $sort = &GetParam("sort", 1);
-  $pagelink = &GetParam("page", 1);
-  $interlink = &GetParam("inter", 0);
-  $urllink = &GetParam("url", 0);
   $exists = &GetParam("exists", 2);
   $empty = &GetParam("empty", 0);
   $search = &GetParam("search", "");
-  if (($interlink == 2) || ($urllink == 2)) {
-    $pagelink = 0;
-  }
 
   %pgExists = ();
   @pglist = &AllPagesList();
@@ -2901,7 +2927,7 @@
     if ($unique != 2) {
       %seen = ();
     }
-    @links = &GetPageLinks($name, $pagelink, $interlink, $urllink);
+    @links = &GetPageLinks($name);
 
     foreach $link (@links) {
       $seen{$link}++;
@@ -2932,8 +2958,16 @@
 }
 
 sub GetPageLinks {
-  my ($name, $pagelink, $interlink, $urllink) = @_;
+  my ($pagelink, $interlink, $urllink);
+  my ($name) = shift;
   my ($text, @links);
+
+  $pagelink = &GetParam("page", 1);
+  $interlink = &GetParam("inter", 0);
+  $urllink = &GetParam("url", 0);
+  if (($interlink == 2) || ($urllink == 2)) {
+    $pagelink = 0;
+  }
 
   @links = ();
   &OpenPage($name);

HomePage | DanKeshet | Recent Changes | Preferences
This page is read-only | View other revisions
Last edited August 16, 2001 4:59 am by 204.96.33.xxx (diff)
Search: