* Caches the styles and style variables.
*
* @author Marcel Werk
- * @copyright 2001-2011 WoltLab GmbH
+ * @copyright 2001-2013 WoltLab GmbH
* @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
* @package com.woltlab.wcf
* @subpackage system.cache.builder
- * @category Community Framework
+ * @category Community Framework
*/
-class StyleCacheBuilder implements ICacheBuilder {
+class StyleCacheBuilder extends AbstractCacheBuilder {
/**
- * @see wcf\system\cache\ICacheBuilder::getData()
+ * @see wcf\system\cache\builder\AbstractCacheBuilder::rebuild()
*/
- public function getData($cacheResource) {
+ public function rebuild(array $parameters) {
$data = array(
'default' => 0,
- 'styles' => array(),
- 'packages' => array()
+ 'styles' => array()
);
// get all styles
$statement->execute();
while ($row = $statement->fetchArray()) {
if ($row['isDefault']) $data['default'] = $row['styleID'];
- $row['variables'] = array();
+ $style = new Style(null, $row);
+ $style->loadVariables();
- // get variable
- $sql = "SELECT *
- FROM wcf".WCF_N."_style_variable
- WHERE styleID = ?";
- $statement2 = WCF::getDB()->prepareStatement($sql);
- $statement2->execute(array($row['styleID']));
- while ($row = $statement2->fetchArray()) {
-
- $row['variables'][$row2['variableName']] = $row2['variableValue'];
- }
-
- $data['styles'][$row['styleID']] = new Style(null, $row);
- }
-
- // get style to packages
- $sql = "SELECT *
- FROM wcf".WCF_N."_style_to_package
- ORDER BY packageID ASC";
- $statement = WCF::getDB()->prepareStatement($sql);
- $statement->execute();
- while ($row = $statement->fetchArray()) {
-
- if (!isset($data['packages'][$row['packageID']])) {
- $data['packages'][$row['packageID']] = array('default' => 0, 'disabled' => array());
- }
-
- if ($row['isDefault']) {
- $data['packages'][$row['packageID']]['default'] = $row['styleID'];
- }
- $data['packages'][$row['packageID']]['disabled'][$row['styleID']] = $row['disabled'];
+ $data['styles'][$row['styleID']] = $style;
}
return $data;