Added detailed list of received/given likes in user profiles
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / data / DatabaseObjectList.class.php
index d72246bbfd6f764021e9bde63991cccf353ecbb1..f4aaa1945673e34c2e5172ee266d53039faa70a6 100644 (file)
@@ -4,13 +4,12 @@ use wcf\system\database\util\PreparedStatementConditionBuilder;
 use wcf\system\exception\SystemException;
 use wcf\system\WCF;
 use wcf\util\ClassUtil;
-use wcf\util\StringUtil;
 
 /**
  * Abstract class for a list of database objects.
  * 
  * @author     Marcel Werk
- * @copyright  2001-2012 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
@@ -37,7 +36,7 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject {
        
        /**
         * result objects
-        * @var array<wcf\data\DatabaseObject>
+        * @var array<\wcf\data\DatabaseObject>
         */
        public $objects = array();
        
@@ -57,7 +56,7 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject {
         * sql limit
         * @var integer
         */
-       public $sqlLimit = 20;
+       public $sqlLimit = 0;
        
        /**
         * sql order by statement
@@ -84,14 +83,14 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject {
        public $sqlJoins = '';
        
        /**
-        * enables the automatic usage of the qualified shorthand 
+        * enables the automatic usage of the qualified shorthand
         * @var boolean
         */
        public $useQualifiedShorthand = true;
        
        /**
         * sql conditions
-        * @var wcf\system\database\util\PreparedStatementConditionBuilder
+        * @var \wcf\system\database\util\PreparedStatementConditionBuilder
         */
        protected $conditionBuilder = null;
        
@@ -115,8 +114,8 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject {
                if (empty($this->className)) {
                        $className = get_called_class();
                        
-                       if (StringUtil::substring($className, -4) == 'List') {
-                               $this->className = StringUtil::substring($className, 0, -4);
+                       if (mb_substr($className, -4) == 'List') {
+                               $this->className = mb_substr($className, 0, -4);
                        }
                }
                
@@ -145,7 +144,7 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject {
                $sql = "SELECT  COUNT(*) AS count
                        FROM    ".$this->getDatabaseTableName()." ".$this->getDatabaseTableAlias()."
                        ".$this->sqlConditionJoins."
-                       ".$this->getConditionBuilder()->__toString();
+                       ".$this->getConditionBuilder();
                $statement = WCF::getDB()->prepareStatement($sql);
                $statement->execute($this->getConditionBuilder()->getParameters());
                $row = $statement->fetchArray();
@@ -160,7 +159,7 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject {
                $sql = "SELECT  ".$this->getDatabaseTableAlias().".".$this->getDatabaseTableIndexName()." AS objectID
                        FROM    ".$this->getDatabaseTableName()." ".$this->getDatabaseTableAlias()."
                                ".$this->sqlConditionJoins."
-                               ".$this->getConditionBuilder()->__toString()."
+                               ".$this->getConditionBuilder()."
                                ".(!empty($this->sqlOrderBy) ? "ORDER BY ".$this->sqlOrderBy : '');
                $statement = WCF::getDB()->prepareStatement($sql, $this->sqlLimit, $this->sqlOffset);
                $statement->execute($this->getConditionBuilder()->getParameters());
@@ -192,7 +191,7 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject {
                                        ".($this->useQualifiedShorthand ? $this->getDatabaseTableAlias().'.*' : '')."
                                FROM    ".$this->getDatabaseTableName()." ".$this->getDatabaseTableAlias()."
                                        ".$this->sqlJoins."
-                                       ".$this->getConditionBuilder()->__toString()."
+                                       ".$this->getConditionBuilder()."
                                        ".(!empty($this->sqlOrderBy) ? "ORDER BY ".$this->sqlOrderBy : '');
                        $statement = WCF::getDB()->prepareStatement($sql, $this->sqlLimit, $this->sqlOffset);
                        $statement->execute($this->getConditionBuilder()->getParameters());
@@ -234,13 +233,13 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject {
         * @param       array<integer>          $objectIDs
         */
        public function setObjectIDs(array $objectIDs) {
-               $this->objectIDs = $objectIDs;
+               $this->objectIDs = array_merge($objectIDs);
        }
        
        /**
         * Returns the objects of the list.
         * 
-        * @return      array<wcf\data\DatabaseObject>
+        * @return      array<\wcf\data\DatabaseObject>
         */
        public function getObjects() {
                return $this->objects;
@@ -249,7 +248,7 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject {
        /**
         * Returns the condition builder object.
         * 
-        * @return      wcf\system\database\util\PreparedStatementConditionBuilder
+        * @return      \wcf\system\database\util\PreparedStatementConditionBuilder
         */
        public function getConditionBuilder() {
                return $this->conditionBuilder;
@@ -340,7 +339,7 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject {
        }
        
        /**
-        * @see wcf\data\ITraversableObject::seekTo()
+        * @see \wcf\data\ITraversableObject::seekTo()
         */
        public function seekTo($objectID) {
                $this->index = array_search($objectID, $this->indexToObject);
@@ -351,7 +350,7 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject {
        }
        
        /**
-        * @see wcf\data\ITraversableObject::search()
+        * @see \wcf\data\ITraversableObject::search()
         */
        public function search($objectID) {
                try {