3 namespace wcf\data\box
;
5 use wcf\data\box\content\BoxContentList
;
6 use wcf\data\DatabaseObjectList
;
10 * Represents a list of boxes.
13 * @copyright 2001-2019 WoltLab GmbH
14 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
17 * @method Box current()
18 * @method Box[] getObjects()
19 * @method Box|null getSingleObject()
20 * @method Box|null search($objectID)
21 * @property Box[] $objects
23 class BoxList
extends DatabaseObjectList
28 public $className = Box
::class;
31 * enables/disables the loading of box content objects
34 protected $contentLoading = false;
39 public function readObjects()
41 parent
::readObjects();
44 if ($this->contentLoading
) {
45 if (!empty($this->objectIDs
)) {
46 $contentList = new BoxContentList();
47 $contentList->enableImageLoading();
48 $contentList->enableEmbeddedObjectLoading();
49 $contentList->getConditionBuilder()->add('box_content.boxID IN (?)', [$this->objectIDs
]);
50 $contentList->getConditionBuilder()->add(
51 '(box_content.languageID IS NULL OR box_content.languageID = ?)',
52 [WCF
::getLanguage()->languageID
]
54 $contentList->readObjects();
55 foreach ($contentList as $boxContent) {
56 $this->objects
[$boxContent->boxID
]->setBoxContents([$boxContent->languageID ?
: 0 => $boxContent]);
63 * Enables/disables the loading of box content objects.
67 public function enableContentLoading($enable = true)
69 $this->contentLoading
= $enable;