- Initial commit from WCF/LGPL SVN-Repository, skipped history
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / cache / CacheBuilderTemplateListenerCode.class.php
CommitLineData
11ade432
AE
1<?php
2namespace wcf\system\cache;
3use wcf\data\template\listener\TemplateListenerList;
4use wcf\system\package\PackageDependencyHandler;
5
6/**
7 * Caches template listener code.
8 *
9 * @author Alexander Ebert
10 * @copyright 2001-2011 WoltLab GmbH
11 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
12 * @package com.woltlab.wcf
13 * @subpackage system.cache
14 * @category Community Framework
15 */
16class CacheBuilderTemplateListenerCode implements CacheBuilder {
17 /**
18 * @see CacheBuilder::getData()
19 */
20 public function getData($cacheResource) {
21 list($packageID, $environment, $templateName) = explode('-', $cacheResource['cache']);
22
23 // get template codes for specified template
24 $templateListenerList = new TemplateListenerList();
25 $templateListenerList->getConditionBuilder()->add("template_listener.environment = ?", array($environment));
26 $templateListenerList->getConditionBuilder()->add("template_listener.templateName = ?", array($templateName));
27 $templateListenerList->getConditionBuilder()->add("template_listener.packageID IN (?)", array(PackageDependencyHandler::getDependencies()));
28 $templateListenerList->sqlLimit = 0;
29 $templateListenerList->readObjects();
30
31 $data = array();
32 foreach ($templateListenerList->getObjects() as $templateListener) {
33 $data[$templateListener->eventName][] = $templateListener->templateCode;
34 }
35
36 return $data;
37 }
38}
39?>