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";
24 $list->sqlJoins
= "LEFT JOIN wcf" . WCF_N
. "_object_type object_type ON (object_type.objectTypeID = category.objectTypeID)";
25 $list->sqlOrderBy
= "category.showOrder ASC";
29 'categories' => $list->getObjects(),
30 'objectTypeCategoryIDs' => [],
32 foreach ($list as $category) {
33 /** @noinspection PhpUndefinedFieldInspection */
34 $objectType = $category->objectType
;
36 if (!isset($data['objectTypeCategoryIDs'][$objectType])) {
37 $data['objectTypeCategoryIDs'][$objectType] = [];
40 $data['objectTypeCategoryIDs'][$objectType][] = $category->categoryID
;