}
/**
- * Generates each row in the contributions list.
+ * Check whether the revision associated is valid for formatting. If has no associated revision
+ * id then null is returned.
*
- * Contributions which are marked "top" are currently on top of the history.
- * For these contributions, a [rollback] link is shown for users with roll-
- * back privileges. The rollback link restores the most recent version that
- * was not written by the target user.
- *
- * @todo This would probably look a lot nicer in a table.
* @param object $row
- * @return string
+ * @return Revision|null
*/
- function formatRow( $row ) {
- $ret = '';
- $classes = [];
- $attribs = [];
-
- $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
-
+ public function tryToCreateValidRevision( $row ) {
/*
* There may be more than just revision rows. To make sure that we'll only be processing
* revisions here, let's _try_ to build a revision out of our row (without displaying
$validRevision = false;
}
Wikimedia\restoreWarnings();
+ return $validRevision ? $rev : null;
+ }
+
+ /**
+ * Generates each row in the contributions list.
+ *
+ * Contributions which are marked "top" are currently on top of the history.
+ * For these contributions, a [rollback] link is shown for users with roll-
+ * back privileges. The rollback link restores the most recent version that
+ * was not written by the target user.
+ *
+ * @todo This would probably look a lot nicer in a table.
+ * @param object $row
+ * @return string
+ */
+ function formatRow( $row ) {
+ $ret = '';
+ $classes = [];
+ $attribs = [];
+
+ $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
- if ( $validRevision ) {
+ $rev = $this->tryToCreateValidRevision( $row );
+ if ( $rev ) {
$attribs['data-mw-revid'] = $rev->getId();
$page = Title::newFromRow( $row );