<?php
if ( defined( 'WS_TOC' ) ) {
$info['description'] = "redirects to a diff that shows edits after the last modification by a given user";
return;
}
define( 'WS_WEB', true );
require_once("common/WebInit.php");
$wiki = $wgRequest->getVal('wiki');
$title = $wgRequest->getVal('title');
$ns = $wgRequest->getVal('ns');
$user = $wgRequest->getVal('user');
$show = $wgRequest->getCheck('show');
if (is_null($wiki) || is_null($title) || is_null($user) || $show) $go= false;
else $go= true;
if ($go) {
require_once("WikiAccess.php");
$w=& WikiAccess::newInstance($wiki);
$t = $w->makeLinkEntry($title);
if ($t) {
$n = $w->asDBKey($t['link']);
$user = $w->asTitle($user);
$sql = "SELECT rev_id FROM page ";
$sql .= " JOIN revision ON rev_page = page_id ";
$sql .= " WHERE rev_user_text = " . $w->wikiDB->addQuotes($user) . "";
$sql .= " AND page_namespace = " . $t['namespacenum'];
$sql .= " AND page_title = " . $w->wikiDB->addQuotes($n);
$sql .= " ORDER BY rev_timestamp DESC LIMIT 1";
$res = $w->wikiDB->query($sql);
$u = $w->makePageLink($title, $ns);
if ($r = $w->wikiDB->fetchRow($res)) {
$rev = $r['rev_id'];
$u.= '&diff=0&oldid=' . $rev;
}
header("Location: " . $u);
exit;
}
}
header('Content-Type: text/html; charset=utf-8');
?>
<html>
<head>
<title>MyDiff</title>
</head>
<body>
<h1>MyDiff</h1>
<p>Shows diff for modifications since last edit by the given user.</p>
<form method="get" action="<?= $_SERVER['PHP_SELF']?>">
<p>Wiki: <input type='text' size='12' name='wiki' value='<?= escapeHtml($wiki) ?>'/></p>
<p>Title: <input type='text' size='64' name='title' value='<?= escapeHtml($title) ?>'/></p>
<p>User: <input type='text' size='32' name='user' value='<?= escapeHtml($user) ?>'/></p>
<p><input type='submit' name='go' value='Go'/> <input type='submit' name='show' value='Show URL'/></p>
</form>
<?
if ($show) {
$u = "http://{$_SERVER['SERVER_NAME']}{$_SERVER['PHP_SELF']}?wiki=".urlencode($wiki)."&title=".urlencode($title)."&user=".urlencode($user);
if ($ns !== NULL && $ns !== '') $n .= '$ns=' . $ns;
?>
<p>Your link: <a href="<?= escapeHtml($u)?>"><?= escapeHtml($u)?></a></p>
<?
}
?>
</body>
</html>MyDiff.php
application/x-php, 2219 bytes (load raw)

