Major overhaul of caching system (work in progress)
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / cache / builder / StyleCacheBuilder.class.php
index 0c17b7ee8e2a97f2c43702388758589d0c62b886..815178ef0577acc31512bc7a26a31b08149802f4 100644 (file)
@@ -7,21 +7,20 @@ use wcf\system\WCF;
  * 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
@@ -32,38 +31,10 @@ class StyleCacheBuilder implements ICacheBuilder {
                $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;