Author: nicolas
Date: 2010-02-09 21:25:46 +0100 (Tue, 09 Feb 2010)
New Revision: 27790

Added:
   plugins/npAssetsOptimizerPlugin/trunk/lib/debug/
   
plugins/npAssetsOptimizerPlugin/trunk/lib/debug/npAssetsOptimizerWebDebugPanel.class.php
   plugins/npAssetsOptimizerPlugin/trunk/lib/optimizer/batch/
   
plugins/npAssetsOptimizerPlugin/trunk/lib/optimizer/batch/npOptimizerBatch.class.php
   plugins/npAssetsOptimizerPlugin/trunk/web/
   plugins/npAssetsOptimizerPlugin/trunk/web/images/
   plugins/npAssetsOptimizerPlugin/trunk/web/images/debug.png
Modified:
   plugins/npAssetsOptimizerPlugin/trunk/config/app.yml
   
plugins/npAssetsOptimizerPlugin/trunk/config/npAssetsOptimizerPluginConfiguration.class.php
Log:
[npAssetsOptimizerPlugin] moved the general configuration to 'all' envs instead 
of the prod one by default (patch from weaverryan)

Modified: plugins/npAssetsOptimizerPlugin/trunk/config/app.yml
===================================================================
--- plugins/npAssetsOptimizerPlugin/trunk/config/app.yml        2010-02-09 
17:00:14 UTC (rev 27789)
+++ plugins/npAssetsOptimizerPlugin/trunk/config/app.yml        2010-02-09 
20:25:46 UTC (rev 27790)
@@ -1,6 +1,6 @@
-prod:
+all:
   np_assets_optimizer_plugin:
-    enabled: true                         # status of the plugin
+    enabled: false                        # status of the plugin
     class: npAssetsOptimizerService       # the plugin service class to use
     configuration:                        # optimization service configuration
       javascript:                         # Javascript optimizer configuration
@@ -27,7 +27,6 @@
           folders:                        # folders to scan for PNG files to 
optimize
             - %SF_WEB_DIR%/images         # by default, contains the 
web/images folder
 
-all:
+prod:
   np_assets_optimizer_plugin:
-    enabled: false
-    configuration: []
+    enabled: true

Modified: 
plugins/npAssetsOptimizerPlugin/trunk/config/npAssetsOptimizerPluginConfiguration.class.php
===================================================================
--- 
plugins/npAssetsOptimizerPlugin/trunk/config/npAssetsOptimizerPluginConfiguration.class.php
 2010-02-09 17:00:14 UTC (rev 27789)
+++ 
plugins/npAssetsOptimizerPlugin/trunk/config/npAssetsOptimizerPluginConfiguration.class.php
 2010-02-09 20:25:46 UTC (rev 27790)
@@ -18,6 +18,10 @@
       $this->dispatcher->connect('context.load_factories', array($this, 
'listenToContextLoadFactoriesEvent'));
     }
     
+    $this->dispatcher->connect('debug.web.load_panels', array($this, 
'listenToLoadDebugWebPanelEvent'));
+    
+    $this->dispatcher->connect('request.filter_parameters', array($this, 
'listenToRequestFilterParameterEvent'));
+    
     sfConfig::set('sf_standard_helpers', 
array_merge(sfConfig::get('sf_standard_helpers', array()), 
array('npOptimizer')));
   }
   
@@ -41,4 +45,31 @@
     
     $context->set('assets_optimizer', $assetsOptimizer);
   }
+  
+  /** 
+   * Listens on the debug.web.load_panels event and adds the web debug panel
+   * 
+   * @param sfEvent $event The event object for the debug.web.load_panel event
+   */
+  public function listenToLoadDebugWebPanelEvent(sfEvent $event)
+  {
+    $event->getSubject()->setPanel('assets_optimizer', new 
npAssetsOptimizerWebDebugPanel($event->getSubject()));
+  }
+  
+  /** 
+   * Listens on the request.filter_parameters to catch the 
"_disable_assets_optimization" parameter
+   * 
+   * @param sfEvent $event The event object for the debug.web.load_panel event
+   */
+  public function listenToRequestFilterParameterEvent(sfEvent $event, 
$parameters)
+  {
+    $request = $event->getSubject();
+    
+    if ($request->hasParameter('_disable_assets_optimization'))
+    {
+      sfConfig::set('app_np_assets_optimizer_plugin_enabled', 1 === (int) 
$request->getGetParameter('_disable_assets_optimization', 0) ? false : 
sfConfig::get('app_np_assets_optimizer_plugin_enabled', false));
+    }
+    
+    return $parameters;
+  }
 }

Added: 
plugins/npAssetsOptimizerPlugin/trunk/lib/debug/npAssetsOptimizerWebDebugPanel.class.php
===================================================================
--- 
plugins/npAssetsOptimizerPlugin/trunk/lib/debug/npAssetsOptimizerWebDebugPanel.class.php
                            (rev 0)
+++ 
plugins/npAssetsOptimizerPlugin/trunk/lib/debug/npAssetsOptimizerWebDebugPanel.class.php
    2010-02-09 20:25:46 UTC (rev 27790)
@@ -0,0 +1,55 @@
+<?php
+/**
+ * npAssetsOptimizerPlugin web debug toolbar panel class
+ * 
+ * @package     npAssetsOptimizerPlugin
+ * @subpackage  debug
+ * @author      Nicolas Perriault <[email protected]>
+ */
+
+class npAssetsOptimizerWebDebugPanel extends sfWebDebugPanel
+{
+  /**
+   * @see sfWebDebugPanel
+   */
+  public function getTitle()
+  {
+    if ($this->isEnabled())
+    {
+      return '<img src="/npAssetsOptimizerPlugin/images/debug.png" alt="Assets 
Optimizer" height="16" width="16" /> optimizer';
+    }
+  }
+
+  /**
+   * @see sfWebDebugPanel
+   */
+  public function getPanelTitle()
+  {
+    return 'Assets Optimizer Status';
+  }
+  
+  /**
+   * Shows information related to which files are currently being optimized
+   * 
+   * @see sfWebDebugPanel
+   */
+  public function getPanelContent()
+  {
+    return 
+    '<ul>
+       <li><a href="?_disable_assets_optimization=0">Disable Assets 
Optimization</a></li>
+     </ul>'
+    ;
+  }
+  
+  /**
+   * Shortcut for determining if the assets optimizer is enabled
+   * 
+   * @return boolean
+   */
+  protected function isEnabled()
+  {
+    return true;
+    return sfConfig::get('app_np_assets_optimizer_plugin_enabled', false);
+  }
+}

Added: 
plugins/npAssetsOptimizerPlugin/trunk/lib/optimizer/batch/npOptimizerBatch.class.php
===================================================================
--- 
plugins/npAssetsOptimizerPlugin/trunk/lib/optimizer/batch/npOptimizerBatch.class.php
                                (rev 0)
+++ 
plugins/npAssetsOptimizerPlugin/trunk/lib/optimizer/batch/npOptimizerBatch.class.php
        2010-02-09 20:25:46 UTC (rev 27790)
@@ -0,0 +1,51 @@
+<?php
+/**
+ * npAssetsOptimizerPlugin batch optimizer
+ *
+ * @package     npAssetsOptimizerPlugin
+ * @subpackage  optimizer
+ * @author      Nicolas Perriault <[email protected]>
+ */
+class npOptimizerBatch extends npOptimizerBase
+{
+  protected 
+    $drivers = array();
+  
+  /**
+   * @see npOptimizerBase
+   */
+  public function configure(array $configuration = array())
+  {
+    parent::configure($configuration);
+    
+    if (!isset($configuration['drivers']))
+    {
+      throw new sfConfigurationException('The "drivers" configuration 
parameter is mandatory in order to use a batch optimizer');
+    }
+    
+    $this->setDrivers($configuration['drivers']);
+  }
+  
+  public function optimize()
+  {
+    
+  }
+  
+  public function optimizeFile($file)
+  {
+    
+  }
+  
+  protected function setDrivers(array $drivers = array())
+  {
+    if (!count($drivers))
+    {
+      throw new InvalidArgumentException('No drivers specified');
+    }
+    
+    foreach ($drivers as $driver)
+    {
+      // TODO
+    }
+  }
+}
\ No newline at end of file

Added: plugins/npAssetsOptimizerPlugin/trunk/web/images/debug.png
===================================================================
(Binary files differ)


Property changes on: plugins/npAssetsOptimizerPlugin/trunk/web/images/debug.png
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + application/octet-stream

-- 
You received this message because you are subscribed to the Google Groups 
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/symfony-svn?hl=en.

Reply via email to