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.