/** * preSave. * * @param Doctrine_Event $event */ public function preSave($event) { $record = $event->getInvoker(); if ($record->isNew()) { $file = $record->getFilename(); if ($file != basename($file) && is_file($file)) { $fs = new lyMediaFileSystem(); $dest_path = $record->getFolderPath(); $dest_file = $fs->generateUniqueFileName($dest_path, basename($file)); $fs->import($file, $dest_path . $dest_file); $record->setType(mime_content_type($file)); $record->setFilename($dest_file); } $record->generateThumbnails(); } else { $modified = $record->getModified(true); if (isset($modified['folder_id']) || isset($modified['filename'])) { //Selected new folder or edited filename: move/rename asset $dest_folder = lyMediaFolderTable::getInstance()->find($record->getFolderId()); $src_folder = $dest_folder; if (isset($modified['folder_id'])) { $src_folder = lyMediaFolderTable::getInstance()->find($modified['folder_id']); } $src = $src_folder->getRelativePath() . (isset($modified['filename']) ? $modified['filename'] : $record->getFileName()); $dest = $dest_folder->getRelativePath() . $record->getFileName(); $fs = new lyMediaFileSystem(); $fs->rename($src, $dest, $record->supportsThumbnails()); } } }
/** * preUpdate. * * @param Doctrine_Event $event. */ public function preUpdate($event) { if ($this->old_path) { //Moved $fs = new lyMediaFileSystem(); $fs->rename($this->old_path, $this->getRelativePath()); $this->old_path = null; $this->getNode()->moveAsLastChildOf($this->parent); } }