![]() |
|
Snippets |
|
Hello to the desperate,
As you might have probably already mentioned, the old way, how to produce thumbnails stopped working. This is because of the brand new admin generator, using an all new model based on forms, which doesn't support the old methods.
this is the new way, how to get it working again:
put this into your generator.yml file (take care for the correct identation, do not use tabs!!):
edit:
title: Photo uploads
fields:
foto:
type: admin_input_file_tag
upload_dir: /uploads/pictures/
params: include_link=/uploads/pictures/ include_remove=true
and then enhance the file lib/form/YourclassForm.php with the following method:
protected function processUploadedFile($field, $filename = null, $values = null) { // first of all do what this is supposed to do $fn = parent::processUploadedFile($field, $filename, $values); // and now we can finally start doing additional stuff after the upload *hurra* if ($fn != "") { // if there is a file, that has been saved // multidimensional array that defines the sub-directories to store the thumbnails in $thumbnails[]=array('dir' => '90x90', 'width' => 90, 'height' => 90); $thumbnails[]=array('dir' => '200x200', 'width' => 200, 'height' => 200); foreach ($thumbnails as $thumbParam) { $currentFile = sfConfig::get('sf_upload_dir').'/pictures/'.$thumbParam['dir'].'/'. $fn; if (is_file($currentFile)) unlink($currentFile); } foreach ($thumbnails as $thumbParam) { $thumbnail = new sfThumbnail($thumbParam['width'], $thumbParam['height'],true,false); $thumbnail->loadFile(sfConfig::get('sf_upload_dir')."/pictures/".$fn); $thumbnail->save(sfConfig::get('sf_upload_dir').'/pictures/'.$thumbParam['dir'].'/'.$fn, 'image/jpeg'); } } // do not forget to return the value of the parent-function, otherwise it stops working return $fn; }
Hope, you can use that snippet!
lg Christoph