root > WikiSense-trunk > web > MyDiff.php

MyDiff.php

application/x-php, 2219 bytes (load raw)
<?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'/> &nbsp; <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>