summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/common.php37
-rw-r--r--inc/html.php28
2 files changed, 60 insertions, 5 deletions
diff --git a/inc/common.php b/inc/common.php
index 94dfd03a0..6be27570a 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -147,6 +147,18 @@ function pageinfo(){
$info['editable'] = ($info['writable'] && empty($info['lock']));
$info['lastmod'] = @filemtime($info['filepath']);
+ //who's the editor
+ if($REV){
+ $revinfo = getRevisionInfo($ID,$REV);
+ }else{
+ $revinfo = getRevisionInfo($ID,$info['lastmod']);
+ }
+ $info['ip'] = $revinfo['ip'];
+ $info['user'] = $revinfo['user'];
+ $info['sum'] = $revinfo['sum'];
+ $info['editor'] = $revinfo['ip'];
+ if($revinfo['user']) $info['editor'].= ' ('.$revinfo['user'].')';
+
return $info;
}
@@ -633,10 +645,10 @@ function dbg($msg,$hidden=false){
*
* @author Andreas Gohr <andi@splitbrain.org>
*/
-function addLogEntry($id,$summary=""){
+function addLogEntry($date,$id,$summary=""){
global $conf;
$id = cleanID($id);
- $date = time();
+ if(!$date) $date = time(); //use current time if none supplied
$remote = $_SERVER['REMOTE_ADDR'];
$user = $_SERVER['REMOTE_USER'];
@@ -686,6 +698,25 @@ function getRecents($num=0,$incdel=false){
}
/**
+ * gets additonal informations for a certain pagerevison
+ * from the changelog
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+function getRevisionInfo($id,$rev){
+ global $conf;
+ $loglines = file($conf['changelog']);
+ $loglines = preg_grep("/$rev\t\d+\.\d+\.\d+\.\d+\t$id\t/",$loglines);
+ rsort($loglines); //reverse sort on timestamp (shouldn't be needed)
+ $line = split("\t",$loglines[0]);
+ $info['date'] = $line[0];
+ $info['ip'] = $line[1];
+ $info['user'] = $line[3];
+ $info['sum'] = $line[4];
+ return $info;
+}
+
+/**
* Saves a wikitext by calling io_saveFile
*
* @author Andreas Gohr <andi@splitbrain.org>
@@ -713,7 +744,7 @@ function saveWikiText($id,$text,$summary){
$del = false;
}
- addLogEntry($id,$summary);
+ addLogEntry(@filemtime($file),$id,$summary);
notify($id,$old,$summary);
//purge cache on add by updating the purgefile
diff --git a/inc/html.php b/inc/html.php
index e6e1e7e8c..6da31045a 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -380,6 +380,10 @@ function html_metainfo(){
print $lang['lastmod'];
print ': ';
print $date;
+ if($INFO['editor']){
+ print ' '.$lang['by'].' ';
+ print $INFO['editor'];
+ }
if($INFO['locked']){
print ' &middot; ';
print $lang['lockedby'];
@@ -606,14 +610,34 @@ function html_revisions(){
print parsedLocale('revisions');
print '<ul>';
if($INFO['exists']){
- print '<li>'.$date.' <a class="wikilink1" href="'.wl($ID).'">'.$ID.'</a> ('.$lang['current'].')</li>';
+ print '<li>';
+ print $date.' <a class="wikilink1" href="'.wl($ID).'">'.$ID.'</a> ';
+
+ print $INFO['sum'];
+ print ' <span class="user">(';
+ print $INFO['ip'];
+ if($INFO['user']) print ' '.$INFO['user'];
+ print ')</span> ';
+
+ print '('.$lang['current'].')';
+ print '</li>';
}
foreach($revisions as $rev){
$date = date($conf['dformat'],$rev);
+ $info = getRevisionInfo($ID,$rev);
+
print '<li>';
print $date.' <a class="wikilink1" href="'.wl($ID,"rev=$rev").'">'.$ID.'</a> ';
- print '<a href="'.wl($ID,"rev=$rev,do=diff").'">['.$lang['diff'].']</a>';
+ print $info['sum'];
+ print ' <span class="user">(';
+ print $info['ip'];
+ if($info['user']) print ' '.$info['user'];
+ print ')</span> ';
+
+ print '<a href="'.wl($ID,"rev=$rev,do=diff").'">';
+ print '<img src="'.getBaseURL().'images/diff.png" border="0" width="15" height="11" title="'.$lang['diff'].'" />';
+ print '</a>';
print '</li>';
}
print '</ul>';