Merge branch '2.0'
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / cache / builder / TemplateListenerCodeCacheBuilder.class.php
1 <?php
2 namespace wcf\system\cache\builder;
3 use wcf\data\template\listener\TemplateListenerList;
4
5 /**
6 * Caches the template listener code for a certain environment.
7 *
8 * @author Alexander Ebert
9 * @copyright 2001-2014 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 TemplateListenerCodeCacheBuilder extends AbstractCacheBuilder {
16 /**
17 * @see \wcf\system\cache\builder\AbstractCacheBuilder::rebuild()
18 */
19 public function rebuild(array $parameters) {
20 // get template codes for specified template
21 $templateListenerList = new TemplateListenerList();
22 $templateListenerList->getConditionBuilder()->add("template_listener.environment = ?", array($parameters['environment']));
23 $templateListenerList->sqlOrderBy = 'template_listener.niceValue ASC, template_listener.listenerID ASC';
24 $templateListenerList->readObjects();
25
26 $data = array();
27 foreach ($templateListenerList->getObjects() as $templateListener) {
28 if (!isset($data[$templateListener->templateName])) {
29 $data[$templateListener->templateName] = array();
30 }
31
32 $data[$templateListener->templateName][$templateListener->eventName][] = $templateListener->templateCode;
33 }
34
35 return $data;
36 }
37 }