Major overhaul of caching system (work in progress)
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / cache / builder / PageMenuCacheBuilder.class.php
1 <?php
2 namespace wcf\system\cache\builder;
3 use wcf\data\page\menu\item\PageMenuItemList;
4
5 /**
6 * Caches the page menu items.
7 *
8 * @author Marcel Werk
9 * @copyright 2001-2013 WoltLab GmbH
10 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
11 * @package com.woltlab.wcf
12 * @subpackage system.cache.builder
13 * @category Community Framework
14 */
15 class PageMenuCacheBuilder extends AbstractCacheBuilder {
16 /**
17 * @see wcf\system\cache\builder\AbstractCacheBuilder::rebuild()
18 */
19 public function rebuild(array $parameters) {
20 $data = array();
21
22 $menuItemList = new PageMenuItemList();
23 $menuItemList->getConditionBuilder()->add("page_menu_item.isDisabled = ?", array(0));
24 $menuItemList->sqlOrderBy = "page_menu_item.showOrder ASC";
25 $menuItemList->readObjects();
26
27 foreach ($menuItemList as $menuItem) {
28 $index = ($menuItem->parentMenuItem) ? $menuItem->parentMenuItem : $menuItem->menuPosition;
29 $data[$index][] = $menuItem;
30 }
31
32 return $data;
33 }
34 }