Major overhaul of caching system (work in progress)
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / cache / builder / TemplateListenerCodeCacheBuilder.class.php
CommitLineData
11ade432 1<?php
ef875357 2namespace wcf\system\cache\builder;
11ade432 3use wcf\data\template\listener\TemplateListenerList;
11ade432
AE
4
5/**
a17de04e 6 * Caches the template listener code for a certain template in a certain environment.
11ade432
AE
7 *
8 * @author Alexander Ebert
07356d6b 9 * @copyright 2001-2013 WoltLab GmbH
11ade432
AE
10 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
11 * @package com.woltlab.wcf
8cb7186a 12 * @subpackage system.cache.builder
0c166126 13 * @category Community Framework
11ade432 14 */
07356d6b 15class TemplateListenerCodeCacheBuilder extends AbstractCacheBuilder {
11ade432 16 /**
07356d6b 17 * @see wcf\system\cache\builder\AbstractCacheBuilder::rebuild()
11ade432 18 */
07356d6b 19 public function rebuild(array $parameters) {
11ade432
AE
20 // get template codes for specified template
21 $templateListenerList = new TemplateListenerList();
07356d6b
AE
22 $templateListenerList->getConditionBuilder()->add("template_listener.environment = ?", array($parameters['environment']));
23 $templateListenerList->getConditionBuilder()->add("template_listener.templateName = ?", array($parameters['templateName']));
11ade432
AE
24 $templateListenerList->readObjects();
25
26 $data = array();
27 foreach ($templateListenerList->getObjects() as $templateListener) {
28 $data[$templateListener->eventName][] = $templateListener->templateCode;
29 }
30
31 return $data;
32 }
33}