Umherirrender has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/353111 )
Change subject: Fix bad newlines ...................................................................... Fix bad newlines Change-Id: Ic974138b0b864734a0023e309dd4ccd342598544 --- M src/NewPage.php M src/Pager.php M src/PagerPageviews.php M src/PagerWatchlist.php M src/UserSnoop.php M src/i18n/Alias.php 6 files changed, 474 insertions(+), 474 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UserSnoop refs/changes/11/353111/1 diff --git a/src/NewPage.php b/src/NewPage.php index f7a37d3..164deed 100644 --- a/src/NewPage.php +++ b/src/NewPage.php @@ -1,98 +1,98 @@ -<?php -/** - * used for the newpage listing - * - * Copyright (C) 2017 Mark A. Hershberger - * Copyright (C) 2007 Kimon Andreou - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -class UserSnoopPagerNewPages extends UserSnoopPager { - - function getIndexField() { - return "rownum"; - } - - function getBodyHeader() { - $s = '<table class="wikitable" width="100%" cellspacing="0" cellpadding="0">'; - $s .= '<tr><th>#</th><th>'.wfMsg('usersnooppage').'</th><th>'.wfMsg('usersnoopcreated'). - '</th><th>'.wfMsg('usersnooplasteditedbythisuser').'</th>'; - $s .= '<th>'.wfMsg('usersnooplasteditedbyanyuser').'</th></tr>'; - return $s; - } - - function getBodyFooter() { - $s = "</table>"; - return $s; - } - - function getQueryInfo() { - global $wgDBprefix; - list ($userpagehits) = wfGetDB(DB_SLAVE)->tableNamesN($wgDBprefix.'user_page_hits'); - $conds = array(); - - $table = "(select @rownum:=@rownum+1 as rownum, ".$wgDBprefix."revision.rev_user user_id, namespace, title, created, lastuseredit, lastedit"; - $table .= " from ".$wgDBprefix."revision, (select @rownum:=0) r,"; - $table .= " (SELECT page_namespace namespace, page_title title, page_id pageid, min(rev_timestamp) created"; - $table .= " FROM ".$wgDBprefix."revision, ".$wgDBprefix."page"; - $table .= " where ".$wgDBprefix."page.page_id = ".$wgDBprefix."revision.rev_page"; - $table .= " group by namespace, title, pageid) revs,"; - $table .= " (select rev_page, max(rev_timestamp) lastedit from ".$wgDBprefix."revision group by rev_page) lastedit,"; - $table .= " (select rev_page, rev_user, max(rev_timestamp) lastuseredit from ".$wgDBprefix."revision group by rev_page,"; - $table .= " rev_user) lastuseredit"; - $table .= " where ".$wgDBprefix."revision.rev_page = revs.pageid"; - $table .= " and ".$wgDBprefix."revision.rev_timestamp = revs.created"; - $table .= " and lastedit.rev_page = revs.pageid"; - $table .= " and lastuseredit.rev_page = revs.pageid"; - $table .= " and lastuseredit.rev_user = ".$wgDBprefix."revision.rev_user"; - if($this->targetUser) { - $table .= " and ".$wgDBprefix."revision.rev_user = ".$this->uid; - } - $table .= ") res"; - - return array( - 'tables' => " $table ", - 'fields' => array( 'rownum', - 'namespace', - 'title', - "concat(substr(created, 1, 4),'-',substr(created,5,2),'-',substr(created,7,2),' ',substr(created,9,2),':',substr(created,11,2),':',substr(created,13,2)) AS created", - "concat(substr(lastuseredit, 1, 4),'-',substr(lastuseredit,5,2),'-',substr(lastuseredit,7,2),' ',substr(lastuseredit,9,2),':',substr(lastuseredit,11,2),':',substr(lastuseredit,13,2)) AS lastuseredit", - "concat(substr(lastedit, 1, 4),'-',substr(lastedit,5,2),'-',substr(lastedit,7,2),' ',substr(lastedit,9,2),':',substr(lastedit,11,2),':',substr(lastedit,13,2)) AS lastedit", - ), - 'conds' => $conds - ); - - } - - function formatRow( $row ) { - $pageTitle = Title::makeTitle( $row->namespace, $row->title ); - if($row->namespace > 0) { - $pageFullName = $pageTitle->getNsText().":".htmlspecialchars($pageTiptle->getText() ); - } else { - $pageFullName = htmlspecialchars( $pageTitle->getText()); - } - $page = $this->getSkin()->makeLinkObj( $pageTitle, $pageFullName ); - - $res = '<tr>'; - $res .= "<td style=\"text-align:center\">$row->rownum</td>"; - $res .= "<td>$page</td>"; - $res .= "<td style=\"text-align:center\">$row->created</td>"; - $res .= "<td style=\"text-align:center\">$row->lastuseredit</td>"; - $res .= "<td style=\"text-align:center\">$row->lastedit</td>"; - $res .= "</tr>\n"; - return $res; - } - -} +<?php +/** + * used for the newpage listing + * + * Copyright (C) 2017 Mark A. Hershberger + * Copyright (C) 2007 Kimon Andreou + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +class UserSnoopPagerNewPages extends UserSnoopPager { + + function getIndexField() { + return "rownum"; + } + + function getBodyHeader() { + $s = '<table class="wikitable" width="100%" cellspacing="0" cellpadding="0">'; + $s .= '<tr><th>#</th><th>'.wfMsg('usersnooppage').'</th><th>'.wfMsg('usersnoopcreated'). + '</th><th>'.wfMsg('usersnooplasteditedbythisuser').'</th>'; + $s .= '<th>'.wfMsg('usersnooplasteditedbyanyuser').'</th></tr>'; + return $s; + } + + function getBodyFooter() { + $s = "</table>"; + return $s; + } + + function getQueryInfo() { + global $wgDBprefix; + list ($userpagehits) = wfGetDB(DB_SLAVE)->tableNamesN($wgDBprefix.'user_page_hits'); + $conds = array(); + + $table = "(select @rownum:=@rownum+1 as rownum, ".$wgDBprefix."revision.rev_user user_id, namespace, title, created, lastuseredit, lastedit"; + $table .= " from ".$wgDBprefix."revision, (select @rownum:=0) r,"; + $table .= " (SELECT page_namespace namespace, page_title title, page_id pageid, min(rev_timestamp) created"; + $table .= " FROM ".$wgDBprefix."revision, ".$wgDBprefix."page"; + $table .= " where ".$wgDBprefix."page.page_id = ".$wgDBprefix."revision.rev_page"; + $table .= " group by namespace, title, pageid) revs,"; + $table .= " (select rev_page, max(rev_timestamp) lastedit from ".$wgDBprefix."revision group by rev_page) lastedit,"; + $table .= " (select rev_page, rev_user, max(rev_timestamp) lastuseredit from ".$wgDBprefix."revision group by rev_page,"; + $table .= " rev_user) lastuseredit"; + $table .= " where ".$wgDBprefix."revision.rev_page = revs.pageid"; + $table .= " and ".$wgDBprefix."revision.rev_timestamp = revs.created"; + $table .= " and lastedit.rev_page = revs.pageid"; + $table .= " and lastuseredit.rev_page = revs.pageid"; + $table .= " and lastuseredit.rev_user = ".$wgDBprefix."revision.rev_user"; + if($this->targetUser) { + $table .= " and ".$wgDBprefix."revision.rev_user = ".$this->uid; + } + $table .= ") res"; + + return array( + 'tables' => " $table ", + 'fields' => array( 'rownum', + 'namespace', + 'title', + "concat(substr(created, 1, 4),'-',substr(created,5,2),'-',substr(created,7,2),' ',substr(created,9,2),':',substr(created,11,2),':',substr(created,13,2)) AS created", + "concat(substr(lastuseredit, 1, 4),'-',substr(lastuseredit,5,2),'-',substr(lastuseredit,7,2),' ',substr(lastuseredit,9,2),':',substr(lastuseredit,11,2),':',substr(lastuseredit,13,2)) AS lastuseredit", + "concat(substr(lastedit, 1, 4),'-',substr(lastedit,5,2),'-',substr(lastedit,7,2),' ',substr(lastedit,9,2),':',substr(lastedit,11,2),':',substr(lastedit,13,2)) AS lastedit", + ), + 'conds' => $conds + ); + + } + + function formatRow( $row ) { + $pageTitle = Title::makeTitle( $row->namespace, $row->title ); + if($row->namespace > 0) { + $pageFullName = $pageTitle->getNsText().":".htmlspecialchars($pageTiptle->getText() ); + } else { + $pageFullName = htmlspecialchars( $pageTitle->getText()); + } + $page = $this->getSkin()->makeLinkObj( $pageTitle, $pageFullName ); + + $res = '<tr>'; + $res .= "<td style=\"text-align:center\">$row->rownum</td>"; + $res .= "<td>$page</td>"; + $res .= "<td style=\"text-align:center\">$row->created</td>"; + $res .= "<td style=\"text-align:center\">$row->lastuseredit</td>"; + $res .= "<td style=\"text-align:center\">$row->lastedit</td>"; + $res .= "</tr>\n"; + return $res; + } + +} diff --git a/src/Pager.php b/src/Pager.php index 7e43b1e..b17a9e9 100644 --- a/src/Pager.php +++ b/src/Pager.php @@ -1,108 +1,108 @@ -<?php - -/** - * create a custom pager for our extension - * all other pagers will inherit this one - * - * Copyright (C) 2017 Mark A. Hershberger - * Copyright (C) 2007 Kimon Andreou - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -namespace UserSnoop; - -use AlphabeticPager; -use User; -use LinkBatch; - -class Pager extends AlphabeticPager { - protected $targetUser = null; - - #constructor - also inilizes "stuff" - function __construct($uid=0) { - parent::__construct(); - if($uid > 0) { - $this->uid = $uid; - $this->targetUser = User::newFromID( $this->uid ); - } else { - global $wgRequest; - - $user = $wgRequest->getVal( 'username' ); - if($user) { - $this->targetUser = User::newFromText( $user ); - } - } - } - - function getBodyHeader() { - - } - - function getBodyFooter() { - - } - - function getBody() { - if (!$this->mQueryDone) { - $this->doQuery(); - } - $batch = new LinkBatch; - $db = $this->mDb; - - $this->mResult->rewind(); - - $batch->execute(); - $this->mResult->rewind(); - return parent::getBody(); - } - - function formatRow($row) { - - } - - function getQueryInfo() { - - } - - function getIndexField() { - - } - - function getPageHeader() { - } - - function getDefaultQuery() { - global $wgRequest; - $query = parent::getDefaultQuery(); - if($this->targetUser != '') { - $query['username'] = $this->targetUser; - } - $query['action'] = $wgRequest->getVal('action'); - return $query; - } - - function sandboxParse($wikiText) { - global $wgTitle, $wgUser; - - $myParser = new Parser(); - $myParserOptions = new ParserOptions(); - $myParserOptions->initialiseFromUser($wgUser); - $result = $myParser->parse($wikiText, $wgTitle, $myParserOptions); - - return $result->getText(); - } - - -} +<?php + +/** + * create a custom pager for our extension + * all other pagers will inherit this one + * + * Copyright (C) 2017 Mark A. Hershberger + * Copyright (C) 2007 Kimon Andreou + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +namespace UserSnoop; + +use AlphabeticPager; +use User; +use LinkBatch; + +class Pager extends AlphabeticPager { + protected $targetUser = null; + + #constructor - also inilizes "stuff" + function __construct($uid=0) { + parent::__construct(); + if($uid > 0) { + $this->uid = $uid; + $this->targetUser = User::newFromID( $this->uid ); + } else { + global $wgRequest; + + $user = $wgRequest->getVal( 'username' ); + if($user) { + $this->targetUser = User::newFromText( $user ); + } + } + } + + function getBodyHeader() { + + } + + function getBodyFooter() { + + } + + function getBody() { + if (!$this->mQueryDone) { + $this->doQuery(); + } + $batch = new LinkBatch; + $db = $this->mDb; + + $this->mResult->rewind(); + + $batch->execute(); + $this->mResult->rewind(); + return parent::getBody(); + } + + function formatRow($row) { + + } + + function getQueryInfo() { + + } + + function getIndexField() { + + } + + function getPageHeader() { + } + + function getDefaultQuery() { + global $wgRequest; + $query = parent::getDefaultQuery(); + if($this->targetUser != '') { + $query['username'] = $this->targetUser; + } + $query['action'] = $wgRequest->getVal('action'); + return $query; + } + + function sandboxParse($wikiText) { + global $wgTitle, $wgUser; + + $myParser = new Parser(); + $myParserOptions = new ParserOptions(); + $myParserOptions->initialiseFromUser($wgUser); + $result = $myParser->parse($wikiText, $wgTitle, $myParserOptions); + + return $result->getText(); + } + + +} diff --git a/src/PagerPageviews.php b/src/PagerPageviews.php index 3711bff..183539b 100644 --- a/src/PagerPageviews.php +++ b/src/PagerPageviews.php @@ -1,97 +1,97 @@ -<?php - -/** - * pager class used for user page views - * - * Copyright (C) 2017 Mark A. Hershberger - * Copyright (C) 2007 Kimon Andreou - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -namespace UserSnoop; - -class PagerPageviews extends Pager { - - function __construct($uid=0) { - parent::__construct($uid); - } - - function getIndexField() { - return "rownum"; - } - - function getBodyHeader() { - $s = '<table class="wikitable" width="100%" cellspacing="0" cellpadding="0">'; - $s .= '<tr><th>#</th><th>'.wfMsg('usersnooppage').'</th><th>'.wfMsg('usersnoophits').'</th>'; - $s .= '<th>'.wfMsg('usersnooplast').'</th></tr>'; - return $s; - } - - function getBodyFooter() { - $s = "</table>"; - return $s; - } - - function getQueryInfo() { - global $wgDBprefix; - list ($userpagehits) = wfGetDB(DB_SLAVE)->tableNamesN($wgDBprefix.'user_page_hits'); - $conds = array(); - - - $table = "(select @rownum:=@rownum+1 as rownum,"; - $table .= "user_name, user_real_name, page_namespace, page_title,hits, last "; - $table .= "from (select @rownum:=0) r, "; - $table .= "(select user_name, user_real_name, page_namespace, page_title,hits,"; - $table .= "last from ".$wgDBprefix."user_page_hits) p"; - if($this->targetUser) { - $table .= " where user_name = "; - $table .= wfGetDB(DB_SLAVE)->addQuotes($this->targetUser); - } - $table .= ") results"; - - return array( - 'tables' => " $table ", - 'fields' => array( 'rownum', - 'user_name', - 'user_real_name', - 'page_namespace', - 'page_title', - 'hits', - "concat(substr(last, 1, 4),'-',substr(last,5,2),'-',substr(last,7,2),' ',substr(last,9,2),':',substr(last,11,2),':',substr(last,13,2)) AS last"), - 'conds' => $conds - ); - - } - - function formatRow( $row ) { - $userPage = Title::makeTitle( NS_USER, $row->user_name ); - $name = $this->getSkin()->makeLinkObj( $userPage, htmlspecialchars( $userPage->getText() ) ); - $pageTitle = Title::makeTitle( $row->page_namespace, $row->page_title ); - if($row->page_namespace > 0) { - $pageFullName = $pageTitle->getNsText().":".htmlspecialchars($pageTitle->getText() ); - } else { - $pageFullName = htmlspecialchars( $pageTitle->getText()); - } - $page = $this->getSkin()->makeLinkObj( $pageTitle, $pageFullName ); - - $res = '<tr>'; - $res .= "<td style=\"text-align:center\">$row->rownum</td>"; - $res .= "<td>$page</td>"; - $res .= "<td style=\"text-align:right\">$row->hits</td>"; - $res .= "<td style=\"text-align:center\">$row->last</td>"; - $res .= "</tr>\n"; - return $res; - } -} +<?php + +/** + * pager class used for user page views + * + * Copyright (C) 2017 Mark A. Hershberger + * Copyright (C) 2007 Kimon Andreou + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +namespace UserSnoop; + +class PagerPageviews extends Pager { + + function __construct($uid=0) { + parent::__construct($uid); + } + + function getIndexField() { + return "rownum"; + } + + function getBodyHeader() { + $s = '<table class="wikitable" width="100%" cellspacing="0" cellpadding="0">'; + $s .= '<tr><th>#</th><th>'.wfMsg('usersnooppage').'</th><th>'.wfMsg('usersnoophits').'</th>'; + $s .= '<th>'.wfMsg('usersnooplast').'</th></tr>'; + return $s; + } + + function getBodyFooter() { + $s = "</table>"; + return $s; + } + + function getQueryInfo() { + global $wgDBprefix; + list ($userpagehits) = wfGetDB(DB_SLAVE)->tableNamesN($wgDBprefix.'user_page_hits'); + $conds = array(); + + + $table = "(select @rownum:=@rownum+1 as rownum,"; + $table .= "user_name, user_real_name, page_namespace, page_title,hits, last "; + $table .= "from (select @rownum:=0) r, "; + $table .= "(select user_name, user_real_name, page_namespace, page_title,hits,"; + $table .= "last from ".$wgDBprefix."user_page_hits) p"; + if($this->targetUser) { + $table .= " where user_name = "; + $table .= wfGetDB(DB_SLAVE)->addQuotes($this->targetUser); + } + $table .= ") results"; + + return array( + 'tables' => " $table ", + 'fields' => array( 'rownum', + 'user_name', + 'user_real_name', + 'page_namespace', + 'page_title', + 'hits', + "concat(substr(last, 1, 4),'-',substr(last,5,2),'-',substr(last,7,2),' ',substr(last,9,2),':',substr(last,11,2),':',substr(last,13,2)) AS last"), + 'conds' => $conds + ); + + } + + function formatRow( $row ) { + $userPage = Title::makeTitle( NS_USER, $row->user_name ); + $name = $this->getSkin()->makeLinkObj( $userPage, htmlspecialchars( $userPage->getText() ) ); + $pageTitle = Title::makeTitle( $row->page_namespace, $row->page_title ); + if($row->page_namespace > 0) { + $pageFullName = $pageTitle->getNsText().":".htmlspecialchars($pageTitle->getText() ); + } else { + $pageFullName = htmlspecialchars( $pageTitle->getText()); + } + $page = $this->getSkin()->makeLinkObj( $pageTitle, $pageFullName ); + + $res = '<tr>'; + $res .= "<td style=\"text-align:center\">$row->rownum</td>"; + $res .= "<td>$page</td>"; + $res .= "<td style=\"text-align:right\">$row->hits</td>"; + $res .= "<td style=\"text-align:center\">$row->last</td>"; + $res .= "</tr>\n"; + return $res; + } +} diff --git a/src/PagerWatchlist.php b/src/PagerWatchlist.php index f6b71b1..a576e7d 100644 --- a/src/PagerWatchlist.php +++ b/src/PagerWatchlist.php @@ -1,77 +1,77 @@ -<?php - -#used for the watchlist data -class UserSnoopPagerWatchlist extends UserSnoopPager { - - function getIndexField() { - return "rownum"; - } - - function getBodyHeader() { - $s = '<table class="wikitable" width="100%" cellspacing="0" cellpadding="0">'; - $s .= '<tr><th>#</th><th>'.wfMsg('usersnooppage').'</th><th>'.wfMsg('usersnooplastvisit'). - '</th><th>'.wfMsg('usersnooplasteditedbythisuser').'</th>'; - $s .= '<th>'.wfMsg('usersnooplasteditedbyanyuser').'</th></tr>'; - return $s; - } - - function getBodyFooter() { - $s = "</table>"; - return $s; - } - - function getQueryInfo() { - global $wgDBprefix; - $conds = array(); - - $table = "(select @rownum:=@rownum+1 as rownum, wl_user userid, wl_namespace namespace, wl_title title, `last` lastview, lastedit, lastuseredit"; - $table .= " from ".$wgDBprefix."page, ".$wgDBprefix."watchlist, ".$wgDBprefix."user_page_views,"; - $table .= " (select @rownum:=0) r,"; - $table .= " (select rev_page, max(rev_timestamp) lastedit from ".$wgDBprefix."revision group by rev_page) rev1,"; - $table .= " (select rev_user, rev_page, max(rev_timestamp) lastuseredit from ".$wgDBprefix."revision group by rev_user, rev_page) rev2"; - $table .= " where ".$wgDBprefix."page.page_namespace = wl_namespace and ".$wgDBprefix."page.page_title = wl_title"; - $table .= " and rev1.rev_page = ".$wgDBprefix."page.page_id"; - $table .= " and rev2.rev_user = wl_user"; - $table .= " and rev2.rev_page = ".$wgDBprefix."page.page_id"; - $table .= " and ".$wgDBprefix."user_page_views.user_id = wl_user"; - $table .= " and ".$wgDBprefix."user_page_views.page_id = ".$wgDBprefix."page.page_id"; - if($this->targetUser) { - $table .= " and wl_user = ".$this->uid; - } - $table .= ") result"; - - return array( - 'tables' => " $table ", - 'fields' => array( 'rownum', - 'namespace', - 'title', - "concat(substr(lastview, 1, 4),'-',substr(lastview,5,2),'-',substr(lastview,7,2),' ',substr(lastview,9,2),':',substr(lastview,11,2),':',substr(lastview,13,2)) AS lastview", - "concat(substr(lastedit, 1, 4),'-',substr(lastedit,5,2),'-',substr(lastedit,7,2),' ',substr(lastedit,9,2),':',substr(lastedit,11,2),':',substr(lastedit,13,2)) AS lastedit", - "concat(substr(lastuseredit, 1, 4),'-',substr(lastuseredit,5,2),'-',substr(lastuseredit,7,2),' ',substr(lastuseredit,9,2),':',substr(lastuseredit,11,2),':',substr(lastuseredit,13,2)) AS lastuseredit" - ), - 'conds' => $conds - ); - - } - - function formatRow( $row ) { - $pageTitle = Title::makeTitle( $row->namespace, $row->title ); - if($row->namespace > 0) { - $pageFullName = $pageTitle->getNsText().":".htmlspecialchars($pageTitle->getText() ); - } else { - $pageFullName = htmlspecialchars( $pageTitle->getText()); - } - $page = $this->getSkin()->makeLinkObj( $pageTitle, $pageFullName ); - - $res = '<tr>'; - $res .= "<td style=\"text-align:center\">$row->rownum</td>"; - $res .= "<td>$page</td>"; - $res .= "<td style=\"text-align:center\">$row->lastview</td>"; - $res .= "<td style=\"text-align:center\">$row->lastuseredit</td>"; - $res .= "<td style=\"text-align:center\">$row->lastedit</td>"; - $res .= "</tr>\n"; - return $res; - } - -} - +<?php + +#used for the watchlist data +class UserSnoopPagerWatchlist extends UserSnoopPager { + + function getIndexField() { + return "rownum"; + } + + function getBodyHeader() { + $s = '<table class="wikitable" width="100%" cellspacing="0" cellpadding="0">'; + $s .= '<tr><th>#</th><th>'.wfMsg('usersnooppage').'</th><th>'.wfMsg('usersnooplastvisit'). + '</th><th>'.wfMsg('usersnooplasteditedbythisuser').'</th>'; + $s .= '<th>'.wfMsg('usersnooplasteditedbyanyuser').'</th></tr>'; + return $s; + } + + function getBodyFooter() { + $s = "</table>"; + return $s; + } + + function getQueryInfo() { + global $wgDBprefix; + $conds = array(); + + $table = "(select @rownum:=@rownum+1 as rownum, wl_user userid, wl_namespace namespace, wl_title title, `last` lastview, lastedit, lastuseredit"; + $table .= " from ".$wgDBprefix."page, ".$wgDBprefix."watchlist, ".$wgDBprefix."user_page_views,"; + $table .= " (select @rownum:=0) r,"; + $table .= " (select rev_page, max(rev_timestamp) lastedit from ".$wgDBprefix."revision group by rev_page) rev1,"; + $table .= " (select rev_user, rev_page, max(rev_timestamp) lastuseredit from ".$wgDBprefix."revision group by rev_user, rev_page) rev2"; + $table .= " where ".$wgDBprefix."page.page_namespace = wl_namespace and ".$wgDBprefix."page.page_title = wl_title"; + $table .= " and rev1.rev_page = ".$wgDBprefix."page.page_id"; + $table .= " and rev2.rev_user = wl_user"; + $table .= " and rev2.rev_page = ".$wgDBprefix."page.page_id"; + $table .= " and ".$wgDBprefix."user_page_views.user_id = wl_user"; + $table .= " and ".$wgDBprefix."user_page_views.page_id = ".$wgDBprefix."page.page_id"; + if($this->targetUser) { + $table .= " and wl_user = ".$this->uid; + } + $table .= ") result"; + + return array( + 'tables' => " $table ", + 'fields' => array( 'rownum', + 'namespace', + 'title', + "concat(substr(lastview, 1, 4),'-',substr(lastview,5,2),'-',substr(lastview,7,2),' ',substr(lastview,9,2),':',substr(lastview,11,2),':',substr(lastview,13,2)) AS lastview", + "concat(substr(lastedit, 1, 4),'-',substr(lastedit,5,2),'-',substr(lastedit,7,2),' ',substr(lastedit,9,2),':',substr(lastedit,11,2),':',substr(lastedit,13,2)) AS lastedit", + "concat(substr(lastuseredit, 1, 4),'-',substr(lastuseredit,5,2),'-',substr(lastuseredit,7,2),' ',substr(lastuseredit,9,2),':',substr(lastuseredit,11,2),':',substr(lastuseredit,13,2)) AS lastuseredit" + ), + 'conds' => $conds + ); + + } + + function formatRow( $row ) { + $pageTitle = Title::makeTitle( $row->namespace, $row->title ); + if($row->namespace > 0) { + $pageFullName = $pageTitle->getNsText().":".htmlspecialchars($pageTitle->getText() ); + } else { + $pageFullName = htmlspecialchars( $pageTitle->getText()); + } + $page = $this->getSkin()->makeLinkObj( $pageTitle, $pageFullName ); + + $res = '<tr>'; + $res .= "<td style=\"text-align:center\">$row->rownum</td>"; + $res .= "<td>$page</td>"; + $res .= "<td style=\"text-align:center\">$row->lastview</td>"; + $res .= "<td style=\"text-align:center\">$row->lastuseredit</td>"; + $res .= "<td style=\"text-align:center\">$row->lastedit</td>"; + $res .= "</tr>\n"; + return $res; + } + +} + diff --git a/src/UserSnoop.php b/src/UserSnoop.php index 107465d..a069045 100644 --- a/src/UserSnoop.php +++ b/src/UserSnoop.php @@ -1,83 +1,83 @@ -<?php -# The UserSnoop MediaWiki extension/special page -# -# This extension creates a new special page through which -# a user with the appropriate permissions ('usersnoop' and 'sysop') -# can view and manipulate users. -# -# The main section is display of user information: -# - internal user id -# - username -# - real name -# - email address -# - whether the user has new talk or not -# - date of registration -# - number of edits -# - whether the user is blocked or not -# - block reason (if blocked) -# - list of *effective* groups -# - last update of user profile -# - user's signature -# -# If the calling user is a member of the 'bureaucrat' group then they also can: -# - user's last login -# - force the user logout (boot user) -# - block the user -# - spread the block on the user to all of his/her ip addresses -# - unblock the user -# -# The actions on information that can be called on the target user: -# - page views -# : page name -# : number of visits -# : last visit -# - watchlist -# : page name -# : last visit -# : last edit by user -# : last edit by any user -# - new pages -# : page name -# : create date -# : last edit by user -# : last edit by any user - - -# @addtogroup Extensions -# @author Kimon Andreou -# @copyright 2007 by Kimon Andreou -# @licence GNU General Public Licence 2.0 or later - -$wgGroupPermissions['usersnoop' ]['usersnoop'] = true; -$wgGroupPermissions['sysop' ]['usersnoop'] = true; -$wgGroupPermissions['bureaucrat' ]['usersnoop'] = true; - - - #credit the extension -$wgExtensionCredits['parserhook'][] = array( - 'name'=>'UserSnoop', - 'url'=>'http://www.mediawiki.org/wiki/Extension:UserSnoop', - 'author'=>'Kimon Andreou', - 'description'=>'View all user information', -); -$wgExtensionCredits['specialpage'][] = array( - 'name' => 'User Snoop', - 'description' => 'View all user information', - 'url' => 'http://www.mediawiki.org/wiki/Extension:UserSnoop', - 'author' => 'Kimon Andreou' -); -#$wgMessagesDirs["UserSnoop"] = __DIR__ . "/i19n"; -$wgExtensionMessagesFiles['UserSnoop'] = __DIR__ . "/UserSnoop.alias.php"; - -#$wgHooks['LanguageGetSpecialPageAliases'][] = 'UserSnoop::loadLocalizedName'; - -#register with a hook -#$wgHooks['ParserAfterTidy'][] = 'SpecialUserSnoop::UserPageViewTracker'; - -#add our special page to the list -$wgSpecialPages['UserSnoop'] = 'SpecialUserSnoop'; -$wgAutoloadClasses['SpecialUserSnoop'] = __DIR__ . '/SpecialUserSnoop.php'; -$wgAutoloadClasses['UserSnoopNewPages'] = __DIR__ . '/UserSnoopNewPage.php'; -$wgAutoloadClasses['UserSnoopPager'] = __DIR__ . '/UserSnoopPager.php'; -$wgAutoloadClasses['UserSnoopPagerPageviews'] = __DIR__ . '/UserSnoopPagerPageviews.php'; +<?php +# The UserSnoop MediaWiki extension/special page +# +# This extension creates a new special page through which +# a user with the appropriate permissions ('usersnoop' and 'sysop') +# can view and manipulate users. +# +# The main section is display of user information: +# - internal user id +# - username +# - real name +# - email address +# - whether the user has new talk or not +# - date of registration +# - number of edits +# - whether the user is blocked or not +# - block reason (if blocked) +# - list of *effective* groups +# - last update of user profile +# - user's signature +# +# If the calling user is a member of the 'bureaucrat' group then they also can: +# - user's last login +# - force the user logout (boot user) +# - block the user +# - spread the block on the user to all of his/her ip addresses +# - unblock the user +# +# The actions on information that can be called on the target user: +# - page views +# : page name +# : number of visits +# : last visit +# - watchlist +# : page name +# : last visit +# : last edit by user +# : last edit by any user +# - new pages +# : page name +# : create date +# : last edit by user +# : last edit by any user + + +# @addtogroup Extensions +# @author Kimon Andreou +# @copyright 2007 by Kimon Andreou +# @licence GNU General Public Licence 2.0 or later + +$wgGroupPermissions['usersnoop' ]['usersnoop'] = true; +$wgGroupPermissions['sysop' ]['usersnoop'] = true; +$wgGroupPermissions['bureaucrat' ]['usersnoop'] = true; + + + #credit the extension +$wgExtensionCredits['parserhook'][] = array( + 'name'=>'UserSnoop', + 'url'=>'http://www.mediawiki.org/wiki/Extension:UserSnoop', + 'author'=>'Kimon Andreou', + 'description'=>'View all user information', +); +$wgExtensionCredits['specialpage'][] = array( + 'name' => 'User Snoop', + 'description' => 'View all user information', + 'url' => 'http://www.mediawiki.org/wiki/Extension:UserSnoop', + 'author' => 'Kimon Andreou' +); +#$wgMessagesDirs["UserSnoop"] = __DIR__ . "/i19n"; +$wgExtensionMessagesFiles['UserSnoop'] = __DIR__ . "/UserSnoop.alias.php"; + +#$wgHooks['LanguageGetSpecialPageAliases'][] = 'UserSnoop::loadLocalizedName'; + +#register with a hook +#$wgHooks['ParserAfterTidy'][] = 'SpecialUserSnoop::UserPageViewTracker'; + +#add our special page to the list +$wgSpecialPages['UserSnoop'] = 'SpecialUserSnoop'; +$wgAutoloadClasses['SpecialUserSnoop'] = __DIR__ . '/SpecialUserSnoop.php'; +$wgAutoloadClasses['UserSnoopNewPages'] = __DIR__ . '/UserSnoopNewPage.php'; +$wgAutoloadClasses['UserSnoopPager'] = __DIR__ . '/UserSnoopPager.php'; +$wgAutoloadClasses['UserSnoopPagerPageviews'] = __DIR__ . '/UserSnoopPagerPageviews.php'; $wgAutoloadClasses['UserSnoopPagerWatchlist'] = __DIR__ . '/UserSnoopPagerWatchlist.php'; \ No newline at end of file diff --git a/src/i18n/Alias.php b/src/i18n/Alias.php index 509d1f1..bd30878 100644 --- a/src/i18n/Alias.php +++ b/src/i18n/Alias.php @@ -1,12 +1,12 @@ -<?php -/** - * Aliases for the UserSnoop extension. - * - * @file - * @ingroup Extensions - */ -$specialPageAliases = []; -/** English */ -$specialPageAliases['en'] = [ - 'UserSnoop' => [ 'UserSnoop' ] -]; +<?php +/** + * Aliases for the UserSnoop extension. + * + * @file + * @ingroup Extensions + */ +$specialPageAliases = []; +/** English */ +$specialPageAliases['en'] = [ + 'UserSnoop' => [ 'UserSnoop' ] +]; -- To view, visit https://gerrit.wikimedia.org/r/353111 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic974138b0b864734a0023e309dd4ccd342598544 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/UserSnoop Gerrit-Branch: master Gerrit-Owner: Umherirrender <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
