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.

Reply via email to