Author: caefer
Date: 2010-03-31 11:33:25 +0200 (Wed, 31 Mar 2010)
New Revision: 28916
Modified:
plugins/sfImageTransformExtraPlugin/trunk/lib/transforms/sfImageAlphaMaskGD.class.php
plugins/sfImageTransformExtraPlugin/trunk/lib/transforms/sfImageTransformManager.class.php
plugins/sfImageTransformExtraPlugin/trunk/test/unit/lib/transforms/sfImageAlphaMaskGDTest.php
Log:
refactored transformation callbacks to ge generic
Modified:
plugins/sfImageTransformExtraPlugin/trunk/lib/transforms/sfImageAlphaMaskGD.class.php
===================================================================
---
plugins/sfImageTransformExtraPlugin/trunk/lib/transforms/sfImageAlphaMaskGD.class.php
2010-03-31 08:28:14 UTC (rev 28915)
+++
plugins/sfImageTransformExtraPlugin/trunk/lib/transforms/sfImageAlphaMaskGD.class.php
2010-03-31 09:33:25 UTC (rev 28916)
@@ -100,40 +100,4 @@
// Copy $mask over the top of $resource maintaining the Alpha transparency
imagecopymerge($resource, $this->mask, 0, 0, 0, 0, $w, $h, 100);
}
-
- /**
- * Callback function to extend/alter parameters as given in your
thumbnailing.yml.
- *
- * This callback adds the resources path to a mask image
- *
- * @throws InvalidArgumentException
- * @param sfImage $sourceImage The original image
- * @param array $parameters Configured parameters for this transformation
- * @return array $parameters Extended/altered parameters
- */
- public static function prepareParameters($sourceImage, $parameters)
- {
- if (!array_key_exists('mask', $parameters))
- {
- return $parameters;
- }
-
- $user_resources_dir = sfConfig::get('sf_data_dir') . '/resources';
- $plugin_paths = ProjectConfiguration::getActive()->getAllPluginPaths();
- $plugin_resources_dir =
$plugin_paths['sfImageTransformExtraPlugin'].'/data/example-resources';
- if (file_exists($user_resources_dir . '/' . $parameters['mask']))
- {
- $parameters['mask'] = new sfImage($user_resources_dir . '/' .
$parameters['mask']);
- }
- else if (file_exists($plugin_resources_dir . '/' . $parameters['mask']))
- {
- $parameters['mask'] = new sfImage($plugin_resources_dir . '/' .
$parameters['mask']);
- }
- else
- {
- throw new InvalidArgumentException('Mask "'.$parameters['mask'].'" could
not be found!');
- }
-
- return $parameters;
- }
}
Modified:
plugins/sfImageTransformExtraPlugin/trunk/lib/transforms/sfImageTransformManager.class.php
===================================================================
---
plugins/sfImageTransformExtraPlugin/trunk/lib/transforms/sfImageTransformManager.class.php
2010-03-31 08:28:14 UTC (rev 28915)
+++
plugins/sfImageTransformExtraPlugin/trunk/lib/transforms/sfImageTransformManager.class.php
2010-03-31 09:33:25 UTC (rev 28916)
@@ -104,81 +104,34 @@
*/
private function prepareParameters(sfImage $sourceImage, $method,
$parameters)
{
- $class_generic = 'sfImage'.ucfirst($method) . 'Generic';
- $class_adapter = 'sfImage'.ucfirst($method) . 'GD';
-
- if(method_exists($class_adapter, 'prepareParameters'))
+ foreach($parameters as $key => $parameter)
{
- $parameters = call_user_func(array($class_adapter, 'prepareParameters'),
$sourceImage, $parameters);
- }
- else if(method_exists($class_generic, 'prepareParameters'))
- {
- $parameters = call_user_func(array($class_generic, 'prepareParameters'),
$sourceImage, $parameters);
- }
- else if(method_exists($this, 'prepareParametersFor'.ucfirst($method)))
- {
- $prepare = 'prepareParametersFor'.ucfirst($method);
- $parameters = $this->$prepare($sourceImage, $parameters);
- }
+ if(in_array(strtolower(substr($parameter, -4)), array('.jpg', '.gif',
'.png')))
+ {
+ $filepath = dirname($parameter);
+ $filename = basename($parameter);
- return $parameters;
- }
+ $pluginDirs = ProjectConfiguration::getActive()->getAllPluginPaths();
+ $pluginDir = $pluginDirs['sfImageTransformExtraPlugin'];
- /**
- * Callback function to extend/alter parameters as given in your
thumbnailing.yml.
- *
- * This callback adds the resources path to an overlay image
- *
- * @param sfImage $sourceImage The original image
- * @param array $parameters Configured parameters for this transformation
- * @return array $parameters Extended/altered parameters
- */
- private function prepareParametersForOverlay($sourceImage, $parameters)
- {
- if (!array_key_exists('overlay', $parameters))
- {
- return $parameters;
- }
+ $files = sfFinder::type('file')
+ ->name($filename)
+ ->maxdepth(1)
+ ->in(array(
+ sfConfig::get('sf_data_dir') . '/resources/'.$filepath,
+ $pluginDir . '/data/example-resources/'.$filepath,
+ )
+ );
- $filename = $parameters['overlay'];
+ if(0 == count($files))
+ {
+ throw new InvalidArgumentException('Could not find resource
"'.$parameter.'"!');
+ }
- if('/' == $filename[0])
- {
- if(!file_exists($filename))
- {
- throw new InvalidArgumentException('Could not find resource
"'.$parameters['overlay'].'"!');
+ $parameters[$key] = new sfImage($files[0]);
}
}
- else
- {
- $filepath = '';
- if(0 <= ($pos = strrpos($filename, '/')))
- {
- $filepath = substr($filename, 0, $pos);
- $filename = substr($filename, $pos+1);
- }
- $pluginDirs = ProjectConfiguration::getActive()->getAllPluginPaths();
- $pluginDir = $pluginDirs['sfImageTransformExtraPlugin'];
- $files = sfFinder::type('file')
- ->name($filename)
- ->maxdepth(1)
- ->in(array(
- sfConfig::get('sf_data_dir') . '/resources/'.$filepath,
- $pluginDir . '/data/example-resources/'.$filepath,
- ));
-
- if(0 == count($files))
- {
- throw new InvalidArgumentException('Could not find resource
"'.$parameters['overlay'].'"!');
- }
-
- $filename = $files[0];
- }
-
-
- $parameters['overlay'] = new sfImage($filename);
-
return $parameters;
}
}
Modified:
plugins/sfImageTransformExtraPlugin/trunk/test/unit/lib/transforms/sfImageAlphaMaskGDTest.php
===================================================================
---
plugins/sfImageTransformExtraPlugin/trunk/test/unit/lib/transforms/sfImageAlphaMaskGDTest.php
2010-03-31 08:28:14 UTC (rev 28915)
+++
plugins/sfImageTransformExtraPlugin/trunk/test/unit/lib/transforms/sfImageAlphaMaskGDTest.php
2010-03-31 09:33:25 UTC (rev 28916)
@@ -55,22 +55,6 @@
$mask = new sfImage(dirname(__FILE__).'/../../../../data/caefer.jpg');
$this->assertType('sfImage', $this->img->alphaMask($mask));
}
-
- /**
- * @expectedException InvalidArgumentException
- */
- public function testFailedPrepareParameters()
- {
- $parameters = sfImageAlphaMaskGD::prepareParameters($this->img,
array('mask' => 'masks/doesnotexist.gif'));
- $this->assertType('sfImage', $parameters['mask']);
- }
-
- public function testPrepareParameters()
- {
- $parameters = sfImageAlphaMaskGD::prepareParameters($this->img,
array('mask' => 'masks/pattern.gif'));
- $this->assertType('sfImage', $parameters['mask']);
- }
-
protected function setUp()
{
$this->img = new
sfImage(dirname(__FILE__).'/../../../../data/example-resources/overlays/logo.png');
--
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.