Add a behavior that has an afterSave and afterDelete that take care of it 
(or attach those actions to your model).

Here's a helper function to get a list of files based on your filters set 
(hardcoded for images, but you can adapt it to use whatever "types" you 
want). Once you have that list of files, you can move them to your CDN or 
remove them if they were deleted.

function _getFiles(&$model, $id = null) {
                if (!$id) {
                        return array();
                }

                $result = $model->read(null, $id);

                // get all including filtered
                $files = array();
                $files[] = array(
                        'path' => $result[$model->alias]['file'],
                        'url' => MEDIA_TRANSFER_URL . 
$result[$model->alias]['dirname'] . '/' . $result[$model->alias]['basename']
                );
                $extension = Mime_Type::guessExtension($files[0]['path']);
                $filters = Configure::read('Media.filter.image');
                foreach ($filters as $size => $filter) {
                        if (isset($filter['convert'])) {
                                $newextension = 
Mime_Type::guessExtension($filter['convert']);
                        } else {
                                $newextension = $extension;
                        }
                        $newbasename = str_replace($extension, $newextension, 
$result[$model->alias]['basename']);
                        $path = MEDIA_FILTER . $size . DS . 
$result[$model->alias]['dirname'] . DS . $newbasename;
                        $url = MEDIA_FILTER_URL . $size . '/' . 
$result[$model->alias]['dirname'] . '/'. $newbasename;
                        $files[] = compact('path', 'url');
                }

                return $files;
        }

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to