3 namespace wcf\system\cache\builder
;
5 use wcf\data\category\CategoryList
;
8 * Caches the categories for the active application.
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
15 class CategoryCacheBuilder
extends AbstractCacheBuilder
20 public function rebuild(array $parameters)
22 $list = new CategoryList();
23 $list->sqlSelects
= "object_type.objectType";
25 LEFT JOIN wcf" . WCF_N
. "_object_type object_type
26 ON object_type.objectTypeID = category.objectTypeID";
27 $list->sqlOrderBy
= "category.showOrder ASC";
31 'categories' => $list->getObjects(),
32 'objectTypeCategoryIDs' => [],
34 foreach ($list as $category) {
35 /** @noinspection PhpUndefinedFieldInspection */
36 $objectType = $category->objectType
;
38 if (!isset($data['objectTypeCategoryIDs'][$objectType])) {
39 $data['objectTypeCategoryIDs'][$objectType] = [];
42 $data['objectTypeCategoryIDs'][$objectType][] = $category->categoryID
;