Apply PSR-12 code style (#3886)
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / cache / builder / CategoryCacheBuilder.class.php
1 <?php
2
3 namespace wcf\system\cache\builder;
4
5 use wcf\data\category\CategoryList;
6
7 /**
8 * Caches the categories for the active application.
9 *
10 * @author Matthias Schmidt
11 * @copyright 2001-2019 WoltLab GmbH
12 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
13 * @package WoltLabSuite\Core\System\Cache\Builder
14 */
15 class CategoryCacheBuilder extends AbstractCacheBuilder
16 {
17 /**
18 * @inheritDoc
19 */
20 public function rebuild(array $parameters)
21 {
22 $list = new CategoryList();
23 $list->sqlSelects = "object_type.objectType";
24 $list->sqlJoins = "LEFT JOIN wcf" . WCF_N . "_object_type object_type ON (object_type.objectTypeID = category.objectTypeID)";
25 $list->sqlOrderBy = "category.showOrder ASC";
26 $list->readObjects();
27
28 $data = [
29 'categories' => $list->getObjects(),
30 'objectTypeCategoryIDs' => [],
31 ];
32 foreach ($list as $category) {
33 /** @noinspection PhpUndefinedFieldInspection */
34 $objectType = $category->objectType;
35
36 if (!isset($data['objectTypeCategoryIDs'][$objectType])) {
37 $data['objectTypeCategoryIDs'][$objectType] = [];
38 }
39
40 $data['objectTypeCategoryIDs'][$objectType][] = $category->categoryID;
41 }
42
43 return $data;
44 }
45 }