dépôts
/
lhc
/
web
/
wiklou.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
First version of AutoblockList special page
[lhc/web/wiklou.git]
/
includes
/
RevisionList.php
diff --git
a/includes/RevisionList.php
b/includes/RevisionList.php
index
4d72c24
..
d909a65
100644
(file)
--- a/
includes/RevisionList.php
+++ b/
includes/RevisionList.php
@@
-20,10
+20,13
@@
* @file
*/
* @file
*/
+use MediaWiki\MediaWikiServices;
+use Wikimedia\Rdbms\ResultWrapper;
+
/**
* List for revision table items for a single page
*/
/**
* List for revision table items for a single page
*/
-abstract class RevisionListBase extends ContextSource {
+abstract class RevisionListBase extends ContextSource
implements Iterator
{
/** @var Title */
public $title;
/** @var Title */
public $title;
@@
-81,7
+84,7
@@
abstract class RevisionListBase extends ContextSource {
*/
public function reset() {
if ( !$this->res ) {
*/
public function reset() {
if ( !$this->res ) {
- $this->res = $this->doQuery( wfGetDB( DB_
SLAVE
) );
+ $this->res = $this->doQuery( wfGetDB( DB_
REPLICA
) );
} else {
$this->res->rewind();
}
} else {
$this->res->rewind();
}
@@
-89,6
+92,10
@@
abstract class RevisionListBase extends ContextSource {
return $this->current;
}
return $this->current;
}
+ public function rewind() {
+ $this->reset();
+ }
+
/**
* Get the current list item, or false if we are at the end
* @return Revision
/**
* Get the current list item, or false if we are at the end
* @return Revision
@@
-107,6
+114,14
@@
abstract class RevisionListBase extends ContextSource {
return $this->current;
}
return $this->current;
}
+ public function key() {
+ return $this->res ? $this->res->key(): 0;
+ }
+
+ public function valid() {
+ return $this->res ? $this->res->valid() : false;
+ }
+
/**
* Get the number of items in the list.
* @return int
/**
* Get the number of items in the list.
* @return int
@@
-256,6
+271,14
@@
abstract class RevisionItemBase {
* This is used to show the list in HTML form, by the special page.
*/
abstract public function getHTML();
* This is used to show the list in HTML form, by the special page.
*/
abstract public function getHTML();
+
+ /**
+ * Returns an instance of LinkRenderer
+ * @return \MediaWiki\Linker\LinkRenderer
+ */
+ protected function getLinkRenderer() {
+ return MediaWikiServices::getInstance()->getLinkRenderer();
+ }
}
class RevisionList extends RevisionListBase {
}
class RevisionList extends RevisionListBase {
@@
-268,19
+291,19
@@
class RevisionList extends RevisionListBase {
* @return mixed
*/
public function doQuery( $db ) {
* @return mixed
*/
public function doQuery( $db ) {
- $conds =
array( 'rev_page' => $this->title->getArticleID() )
;
+ $conds =
[ 'rev_page' => $this->title->getArticleID() ]
;
if ( $this->ids !== null ) {
$conds['rev_id'] = array_map( 'intval', $this->ids );
}
return $db->select(
if ( $this->ids !== null ) {
$conds['rev_id'] = array_map( 'intval', $this->ids );
}
return $db->select(
-
array( 'revision', 'page', 'user' )
,
+
[ 'revision', 'page', 'user' ]
,
array_merge( Revision::selectFields(), Revision::selectUserFields() ),
$conds,
__METHOD__,
array_merge( Revision::selectFields(), Revision::selectUserFields() ),
$conds,
__METHOD__,
-
array( 'ORDER BY' => 'rev_id DESC' )
,
- array(
+
[ 'ORDER BY' => 'rev_id DESC' ]
,
+ [
'page' => Revision::pageJoinCond(),
'page' => Revision::pageJoinCond(),
- 'user' => Revision::userJoinCond()
)
+ 'user' => Revision::userJoinCond()
]
);
}
);
}
@@
-341,20
+364,21
@@
class RevisionItem extends RevisionItemBase {
* @return string
*/
protected function getRevisionLink() {
* @return string
*/
protected function getRevisionLink() {
- $date =
htmlspecialchars(
$this->list->getLanguage()->userTimeAndDate(
- $this->revision->getTimestamp(), $this->list->getUser() )
)
;
+ $date = $this->list->getLanguage()->userTimeAndDate(
+ $this->revision->getTimestamp(), $this->list->getUser() );
if ( $this->isDeleted() && !$this->canViewContent() ) {
if ( $this->isDeleted() && !$this->canViewContent() ) {
- return
$date
;
+ return
htmlspecialchars( $date )
;
}
}
- return Linker::linkKnown(
+ $linkRenderer = $this->getLinkRenderer();
+ return $linkRenderer->makeKnownLink(
$this->list->title,
$date,
$this->list->title,
$date,
-
array()
,
- array(
+
[]
,
+ [
'oldid' => $this->revision->getId(),
'unhide' => 1
'oldid' => $this->revision->getId(),
'unhide' => 1
- )
+ ]
);
}
);
}
@@
-369,15
+393,16
@@
class RevisionItem extends RevisionItemBase {
if ( $this->isDeleted() && !$this->canViewContent() ) {
return $this->context->msg( 'diff' )->escaped();
} else {
if ( $this->isDeleted() && !$this->canViewContent() ) {
return $this->context->msg( 'diff' )->escaped();
} else {
- return Linker::linkKnown(
+ $linkRenderer = $this->getLinkRenderer();
+ return $linkRenderer->makeKnownLink(
$this->list->title,
$this->list->title,
- $this->list->msg( 'diff' )->
escaped
(),
-
array()
,
- array(
+ $this->list->msg( 'diff' )->
text
(),
+
[]
,
+ [
'diff' => $this->revision->getId(),
'oldid' => 'prev',
'unhide' => 1
'diff' => $this->revision->getId(),
'oldid' => 'prev',
'unhide' => 1
- )
+ ]
);
}
}
);
}
}