Index: lib/savepage.php =================================================================== RCS file: /usr/local/cvsroot/gtmwiki/lib/savepage.php,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 savepage.php --- lib/savepage.php 2001/10/27 15:04:32 1.1.1.1 +++ lib/savepage.php 2001/10/27 16:18:03 @@ -115,6 +115,7 @@ $pagehash['version'] = 0; $pagehash['created'] = time(); $pagehash['flags'] = 0; + $pagehash['content'] = array(); $newpage = 1; } else { if (($pagehash['flags'] & FLAG_PAGE_LOCKED) && !defined('WIKI_ADMIN')) { @@ -135,6 +136,10 @@ $newpage = 0; } + // store the old name and content, ready for the diff + $old_content = join("\n", $pagehash['content']); + $old_version = $pagehash['version']; + // set new pageinfo $pagehash['lastmodified'] = time(); $pagehash['version']++; @@ -188,4 +193,54 @@ include('lib/transform.php'); GeneratePage('BROWSE', $html, $pagename, $pagehash); + + // all user-visible stuff done; now email me the diff + flush(); + + $new_content = join("\n", $pagehash['content']); + $new_version = $pagehash['version']; + + $message = $newpage ? "Added: " : "Modified: "; + $message .= "$pagename +URL: http://$SERVER_NAME$ScriptUrl?$pagename +Author: $remoteuser + +=================================================================== +diff -u -r$old_version -r$new_version +"; + + if ($newpage) { + $message .= "$new_content\n"; + } + else { + $filename_root = "/tmp/phpwiki-" + . ereg_replace("[^[:alnum:]]", "", $pagename); + + $old_fn = "$filename_root.$old_version"; + $old_fh = fopen($old_fn, "w"); + if ($old_fh) { + fwrite($old_fh, $old_content); + fwrite($old_fh, "\n"); + fclose($old_fh); + } + + $new_fn = "$filename_root.$new_version"; + $new_fh = fopen($new_fn, "w"); + if ($new_fh) { + fwrite($new_fh, $new_content); + fwrite($new_fh, "\n"); + fclose($new_fh); + } + $message .= `/usr/bin/diff -u $old_fn $new_fn`; + + unlink($old_fn); + unlink($new_fn); + } + + mail("notify-this-person@this-site.com", + "edit: $pagename", + $message, + "From: PhpWiki \n". + "X-PhpWiki-Type: edit\n". + "X-PhpWiki-Author: $remoteuser"); ?>