Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Wikipedia: Mediawiki-CVS

SVN: [58573] trunk/extensions/FlaggedRevs/FlaggedRevision.php

 

 

Wikipedia mediawiki-cvs RSS feed   Index | Next | Previous | View Threaded


aaron at svn

Nov 4, 2009, 11:40 PM

Post #1 of 1 (54 views)
Permalink
SVN: [58573] trunk/extensions/FlaggedRevs/FlaggedRevision.php

http://www.mediawiki.org/wiki/Special:Code/MediaWiki/58573

Revision: 58573
Author: aaron
Date: 2009-11-05 07:40:28 +0000 (Thu, 05 Nov 2009)

Log Message:
-----------
* Added class description
* Added setTemplateVersions()/setFileVersions()
* Removed unused mText var
* Fixed doc typo

Modified Paths:
--------------
trunk/extensions/FlaggedRevs/FlaggedRevision.php

Modified: trunk/extensions/FlaggedRevs/FlaggedRevision.php
===================================================================
--- trunk/extensions/FlaggedRevs/FlaggedRevision.php 2009-11-05 01:08:02 UTC (rev 58572)
+++ trunk/extensions/FlaggedRevs/FlaggedRevision.php 2009-11-05 07:40:28 UTC (rev 58573)
@@ -1,17 +1,28 @@
<?php
-
+/**
+ * Class representing a stable version of a MediaWiki revision
+ *
+ * This contains a page revision, a file version, and versions
+ * of templates and files (to determine template inclusion and thumbnails)
+ */
class FlaggedRevision {
- private $mTitle = null;
- private $mRevId, $mPageId;
+ private $mRevision; // base revision
+ private $mTemplates; // included template versions
+ private $mFiles; // included file versions
+ private $mFileSha1; // file version sha-1 (for revisions of File pages)
+ private $mFileTimestamp; // file version timestamp (for revisions of File pages)
+ /* Flagging metadata */
private $mTimestamp;
private $mComment;
private $mQuality;
private $mTags;
- private $mText = null;
private $mFlags;
- private $mUser;
- private $mRevision;
- private $mFileName, $mFileSha1, $mFileTimestamp;
+ private $mUser; // reviewing user
+ private $mFileName; // file name when reviewed
+ /* Redundant fields for lazy-loading */
+ private $mTitle;
+ private $mPageId;
+ private $mRevId;

/**
* @param Row $row (from database)
@@ -30,8 +41,9 @@
$this->mFileTimestamp = $row->fr_img_timestamp ? $row->fr_img_timestamp : null;
$this->mUser = intval( $row->fr_user );
# Optional fields
- $this->mTitle = isset($row->page_namespace) && isset($row->page_title) ?
- Title::makeTitleSafe( $row->page_namespace, $row->page_title ) : null;
+ $this->mTitle = isset($row->page_namespace) && isset($row->page_title)
+ ? Title::makeTitleSafe( $row->page_namespace, $row->page_title )
+ : null;
$this->mFlags = isset($row->fr_flags) ? explode(',',$row->fr_flags) : null;
} elseif( is_array($row) ) {
$this->mRevId = intval( $row['fr_rev_id'] );
@@ -293,12 +305,12 @@
* @returns Revision
*/
public function getRevision() {
- if( !is_null($this->mRevision) )
- return $this->mRevision;
- # Get corresponding revision
- $rev = Revision::newFromId( $this->mRevId );
- # Save to cache
- $this->mRevision = $rev ? $rev : false;
+ if( is_null($this->mRevision) ) {
+ # Get corresponding revision
+ $rev = Revision::newFromId( $this->mRevId );
+ # Save to cache
+ $this->mRevision = $rev ? $rev : false;
+ }
return $this->mRevision;
}

@@ -371,36 +383,60 @@
public function userCanSetFlags() {
return RevisionReview::userCanSetFlags( $this->mTags );
}
+
+ /**
+ * Set template versions array
+ * @param Array template versions (ns -> dbKey -> rev id)
+ */
+ public function setTemplateVersions( $templateVersions ) {
+ $this->mTemplates = $templateVersions;
+ }

/**
+ * Set file versions array
+ * @param Array file versions (dbKey -> sha1)
+ */
+ public function setFileVersions( $fileVersions ) {
+ $this->mFiles = $fileVersions;
+ }
+
+ /**
* @returns Array template versions (ns -> dbKey -> rev id)
*/
public function getTemplateVersions() {
- $templates = array();
- $dbr = wfGetDB( DB_SLAVE );
- $res = $dbr->select( 'flaggedtemplates', '*',
- array('ft_rev_id' => $this->getRevId()), __METHOD__ );
- while( $row = $res->fetchObject() ) {
- if( !isset($templates[$row->ft_namespace]) ) {
- $templates[$row->ft_namespace] = array();
+ if( $this->mTemplates == null ) {
+ $this->mTemplates = array();
+ $dbr = wfGetDB( DB_SLAVE );
+ $res = $dbr->select( 'flaggedtemplates', '*',
+ array( 'ft_rev_id' => $this->getRevId() ),
+ __METHOD__
+ );
+ while( $row = $res->fetchObject() ) {
+ if( !isset($this->mTemplates[$row->ft_namespace]) ) {
+ $this->mTemplates[$row->ft_namespace] = array();
+ }
+ $this->mTemplates[$row->ft_namespace][$row->ft_title] = $row->ft_tmp_rev_id;
}
- $templates[$row->ft_namespace][$row->ft_title] = $row->ft_tmp_rev_id;
}
- return $templates;
+ return $this->mTemplates;
}

/**
- * @returns Array template versions (dbKey -> sha1)
+ * @returns Array file versions (dbKey -> sha1)
*/
public function getFileVersions() {
- $files = array();
- $dbr = wfGetDB( DB_SLAVE );
- $res = $dbr->select( 'flaggedimages', '*',
- array('fi_rev_id' => $this->getRevId()), __METHOD__ );
- while( $row = $res->fetchObject() ) {
- $files[$row->fi_name] = $row->fi_img_sha1;
+ if( $this->mFiles == null ) {
+ $this->mFiles = array();
+ $dbr = wfGetDB( DB_SLAVE );
+ $res = $dbr->select( 'flaggedimages', '*',
+ array( 'fi_rev_id' => $this->getRevId() ),
+ __METHOD__
+ );
+ while( $row = $res->fetchObject() ) {
+ $this->mFiles[$row->fi_name] = $row->fi_img_sha1;
+ }
}
- return $files;
+ return $this->mFiles;
}

/**



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS [at] lists
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Wikipedia mediawiki-cvs RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.