Added detailed list of received/given likes in user profiles
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / data / DatabaseObjectEditor.class.php
index 7aa1d1b59f3cb17144b269eceae35b40fc7e9868..ebf42211c3b3123c418073120784c489b27c9535 100644 (file)
@@ -4,17 +4,17 @@ use wcf\system\WCF;
 
 /**
  * Basic implementation for object editors following the decorator pattern.
- *
+ * 
  * @author     Marcel Werk
- * @copyright  2001-2011 WoltLab GmbH
+ * @copyright  2001-2014 WoltLab GmbH
  * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
  * @package    com.woltlab.wcf
  * @subpackage data
- * @category   Community Framework
+ * @category   Community Framework
  */
 abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements IEditableObject {
        /**
-        * @see wcf\data\IEditableObject::create()
+        * @see \wcf\data\IEditableObject::create()
         */
        public static function create(array $parameters = array()) {
                $keys = $values = '';
@@ -48,10 +48,10 @@ abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements I
        }
        
        /**
-        * @see wcf\data\IEditableObject::update()
+        * @see \wcf\data\IEditableObject::update()
         */
        public function update(array $parameters = array()) {
-               if (!count($parameters)) return;
+               if (empty($parameters)) return;
                
                $updateSQL = '';
                $statementParameters = array();
@@ -60,7 +60,7 @@ abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements I
                        $updateSQL .= $key . ' = ?';
                        $statementParameters[] = $value;
                }
-               $statementParameters[] = $this->__get(static::getDatabaseTableIndexName());
+               $statementParameters[] = $this->getObjectID();
                
                $sql = "UPDATE  ".static::getDatabaseTableName()."
                        SET     ".$updateSQL."
@@ -70,10 +70,10 @@ abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements I
        }
        
        /**
-        * @see wcf\data\IEditableObject::updateCounters()
+        * @see \wcf\data\IEditableObject::updateCounters()
         */
        public function updateCounters(array $counters = array()) {
-               if (!count($counters)) return;
+               if (empty($counters)) return;
                
                $updateSQL = '';
                $statementParameters = array();
@@ -82,7 +82,7 @@ abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements I
                        $updateSQL .= $key . ' = ' . $key . ' + ?';
                        $statementParameters[] = $value;
                }
-               $statementParameters[] = $this->__get(static::getDatabaseTableIndexName());
+               $statementParameters[] = $this->getObjectID();
                
                $sql = "UPDATE  ".static::getDatabaseTableName()."
                        SET     ".$updateSQL."
@@ -92,26 +92,28 @@ abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements I
        }
        
        /**
-        * @see wcf\data\IEditableObject::delete()
+        * @see \wcf\data\IEditableObject::delete()
         */
        public function delete() {
-               static::deleteAll(array($this->__get(static::getDatabaseTableIndexName())));
+               static::deleteAll(array($this->getObjectID()));
        }
        
        /**
-        * @see wcf\data\IEditableObject::deleteAll()
+        * @see \wcf\data\IEditableObject::deleteAll()
         */
        public static function deleteAll(array $objectIDs = array()) {
                $sql = "DELETE FROM     ".static::getDatabaseTableName()."
                        WHERE           ".static::getDatabaseTableIndexName()." = ?";
                $statement = WCF::getDB()->prepareStatement($sql);
                
+               $affectedCount = 0;
                WCF::getDB()->beginTransaction();
                foreach ($objectIDs as $objectID) {
                        $statement->executeUnbuffered(array($objectID));
+                       $affectedCount += $statement->getAffectedRows();
                }
                WCF::getDB()->commitTransaction();
                
-               return count($objectIDs);
+               return $affectedCount;
        }
 }