https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113531

Revision: 113531
Author:   jeroendedauw
Date:     2012-03-09 22:10:07 +0000 (Fri, 09 Mar 2012)
Log Message:
-----------
some minor cleanup

Modified Paths:
--------------
    trunk/extensions/EducationProgram/actions/EPHistoryAction.php
    trunk/extensions/EducationProgram/includes/EPRevision.php
    trunk/extensions/EducationProgram/includes/EPRevisionedObject.php
    trunk/extensions/EducationProgram/includes/EPRevisions.php

Modified: trunk/extensions/EducationProgram/actions/EPHistoryAction.php
===================================================================
--- trunk/extensions/EducationProgram/actions/EPHistoryAction.php       
2012-03-09 21:54:00 UTC (rev 113530)
+++ trunk/extensions/EducationProgram/actions/EPHistoryAction.php       
2012-03-09 22:10:07 UTC (rev 113531)
@@ -70,14 +70,8 @@
         * @param EPPageObject $object
         */
        protected function displayRevisions( EPPageObject $object ) {
-               $conditions = array(
-                       'type' => get_class( $object ),
-               );
+               $conditions = $object->getRevisionIdentifiers();
 
-               if ( $object->hasIdField() ) {
-                       $conditions['object_id'] = $object->getId();
-               }
-
                $action = htmlspecialchars( $GLOBALS['wgScript'] );
 
                $request = $this->getRequest();

Modified: trunk/extensions/EducationProgram/includes/EPRevision.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPRevision.php   2012-03-09 
21:54:00 UTC (rev 113530)
+++ trunk/extensions/EducationProgram/includes/EPRevision.php   2012-03-09 
22:10:07 UTC (rev 113531)
@@ -22,6 +22,14 @@
        protected $user = false;
 
        /**
+        * (non-PHPdoc)
+        * @see DBDataObject::getTable()
+        */
+       public function getTable() {
+               return EPRevisions::singleton();
+       }
+
+       /**
         * Return the object as it was at this revision.
         *
         * @since 0,1
@@ -29,8 +37,8 @@
         * @return EPRevisionedObject
         */
        public function getObject() {
-               $class = $this->getField( 'type' ) . 's'; // TODO: refactor 
made this suck a lot
-               return $class::singleton()->newFromArray( $this->getField( 
'data' ), true );
+               $tableClass = $this->getField( 'type' );
+               return $tableClass::singleton()->newFromArray( $this->getField( 
'data' ), true );
        }
 
        /**
@@ -53,13 +61,13 @@
                        $conditions['object_id'] = $objectId;
                }
 
-               $rev = EPRevision::selectRow( array( 'type', 'data' ), 
$conditions );
+               $rev = EPRevisions::singleton()->selectRow( array( 'type', 
'data' ), $conditions );
 
                if ( $rev === false ) {
                        return false;
                }
                else {
-                       return $rev->getDataObject();
+                       return $rev->getObject();
                }
        }
 

Modified: trunk/extensions/EducationProgram/includes/EPRevisionedObject.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPRevisionedObject.php   
2012-03-09 21:54:00 UTC (rev 113530)
+++ trunk/extensions/EducationProgram/includes/EPRevisionedObject.php   
2012-03-09 22:10:07 UTC (rev 113531)
@@ -276,14 +276,23 @@
         */
        public function getRevisions( array $conditions = array(), array 
$options = array() ) {
                return EPRevisions::singleton()->select( null, array_merge(
-                       array(
-                               'type' => get_called_class(),
-                               'object_id' => $this->getId(),
-                       ),
+                       $this->getRevisionIdentifiers(),
                        $conditions
                ), $options );
        }
 
+       public function getRevisionIdentifiers() {
+               $identifiers = array(
+                       'type' => get_class( $this->table )
+               );
+
+               if ( $this->hasIdField() ) {
+                       $identifiers['object_id'] = $this->getId();
+               }
+
+               return $identifiers;
+       }
+
        /**
         * Returns the most recently stored revision for this object
         * matching the provided contions or false if there is none.
@@ -299,10 +308,7 @@
                $options['ORDER BY'] = 
EPRevisions::singleton()->getPrefixedField( 'id' ) . ' DESC';
 
                return EPRevisions::singleton()->selectRow( null, array_merge(
-                       array(
-                               'type' => get_called_class(),
-                               'object_id' => $this->getId(),
-                       ),
+                       $this->getRevisionIdentifiers(),
                        $conditions
                ), $options );
        }
@@ -430,5 +436,5 @@
                $revision = $this->getRevisionById( $revId );
                return $revision === false ? false : $this->undoRevision( 
$revision, $fields );
        }
-       
+
 }

Modified: trunk/extensions/EducationProgram/includes/EPRevisions.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPRevisions.php  2012-03-09 
21:54:00 UTC (rev 113530)
+++ trunk/extensions/EducationProgram/includes/EPRevisions.php  2012-03-09 
22:10:07 UTC (rev 113531)
@@ -78,17 +78,15 @@
         * @return EPRevision
         */
        public function newFromObject( EPRevisionedObject $object, 
EPRevisionAction $revAction ) {
-               $fields = array(
-                       'object_id' => $object->getId(),
+               $fields = array_merge( $object->getRevisionIdentifiers(), array(
                        'user_id' => $revAction->getUser()->getID(),
                        'user_text' => $revAction->getUser()->getName(),
-                       'type' => get_class( $object ),
                        'comment' => $revAction->getComment(),
                        'minor_edit' => $revAction->isMinor(),
                        'time' => $revAction->getTime(),
                        'deleted' => $revAction->isDelete(),
                        'data' => serialize( $object->toArray() )
-               );
+               ) );
                
                $identifier = $object->getIdentifier();
                


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

Reply via email to