Merge "Omit 'external' changes from ChangesFeed"
[lhc/web/wiklou.git] / includes / RevisionList.php
index 7c39617..e417473 100644 (file)
  * List for revision table items for a single page
  */
 abstract class RevisionListBase extends ContextSource {
-       /**
-        * @var Title
-        */
-       var $title;
+       /** @var Title */
+       public $title;
+
+       /** @var array */
+       protected $ids;
 
-       var $ids, $res, $current;
+       /** @var ResultWrapper|bool */
+       protected $res;
+
+       /** @var bool|object */
+       protected $current;
 
        /**
         * Construct a revision list for a given title
@@ -131,11 +136,11 @@ abstract class RevisionListBase extends ContextSource {
  * Abstract base class for revision items
  */
 abstract class RevisionItemBase {
-       /** The parent RevisionListBase */
-       var $list;
+       /** @var RevisionListBase The parent */
+       protected $list;
 
-       /** The DB result row */
-       var $row;
+       /** The database result row */
+       protected $row;
 
        /**
         * @param RevisionListBase $list
@@ -288,7 +293,11 @@ class RevisionList extends RevisionListBase {
  * Item class for a live revision table row
  */
 class RevisionItem extends RevisionItemBase {
-       var $revision, $context;
+       /** @var Revision */
+       protected $revision;
+
+       /** @var RequestContext */
+       protected $context;
 
        public function __construct( $list, $row ) {
                parent::__construct( $list, $row );
@@ -309,7 +318,7 @@ class RevisionItem extends RevisionItemBase {
        }
 
        public function getAuthorNameField() {
-               return 'user_name'; // see Revision::selectUserFields()
+               return 'rev_user_text';
        }
 
        public function canView() {
@@ -326,15 +335,19 @@ class RevisionItem extends RevisionItemBase {
 
        /**
         * Get the HTML link to the revision text.
-        * Overridden by RevDelArchiveItem.
+        * @todo Essentially a copy of RevDelRevisionItem::getRevisionLink. That class
+        * should inherit from this one, and implement an appropriate interface instead
+        * of extending RevDelItem
         * @return string
         */
        protected function getRevisionLink() {
-               $date = $this->list->getLanguage()->timeanddate( $this->revision->getTimestamp(), true );
+               $date = htmlspecialchars( $this->list->getLanguage()->userTimeAndDate(
+                       $this->revision->getTimestamp(), $this->list->getUser() ) );
+
                if ( $this->isDeleted() && !$this->canViewContent() ) {
                        return $date;
                }
-               return Linker::link(
+               return Linker::linkKnown(
                        $this->list->title,
                        $date,
                        array(),
@@ -347,30 +360,34 @@ class RevisionItem extends RevisionItemBase {
 
        /**
         * Get the HTML link to the diff.
-        * Overridden by RevDelArchiveItem
+        * @todo Essentially a copy of RevDelRevisionItem::getDiffLink. That class
+        * should inherit from this one, and implement an appropriate interface instead
+        * of extending RevDelItem
         * @return string
         */
        protected function getDiffLink() {
                if ( $this->isDeleted() && !$this->canViewContent() ) {
                        return $this->context->msg( 'diff' )->escaped();
                } else {
-                       return Linker::link(
+                       return Linker::linkKnown(
                                        $this->list->title,
-                                       $this->context->msg( 'diff' )->escaped(),
+                                       $this->list->msg( 'diff' )->escaped(),
                                        array(),
                                        array(
                                                'diff' => $this->revision->getId(),
                                                'oldid' => 'prev',
                                                'unhide' => 1
-                                       ),
-                                       array(
-                                               'known',
-                                               'noclasses'
                                        )
                                );
                }
        }
 
+       /**
+        * @todo Essentially a copy of RevDelRevisionItem::getHTML. That class
+        * should inherit from this one, and implement an appropriate interface instead
+        * of extending RevDelItem
+        * @return string
+        */
        public function getHTML() {
                $difflink = $this->context->msg( 'parentheses' )
                        ->rawParams( $this->getDiffLink() )->escaped();