public function exitEditor() { //eDebug($this->params,true); switch ($this->params['exitType']) { case 'saveAsCopy': $oldimage = new expFile($this->params['fid']); $copyname = expFile::resolveDuplicateFilename($oldimage->path); copy(BASE . $this->cacheDir . "/" . $this->params['cpi'], $oldimage->directory . $copyname); //copy the edited file over to the files dir $newFile = new expFile(array("filename" => $copyname)); //construct a new expFile $newFile->directory = $oldimage->directory; $newFile->title = $oldimage->title; $newFile->shared = $oldimage->shared; $newFile->mimetype = $oldimage->mimetype; $newFile->posted = time(); $newFile->filesize = filesize(BASE . $this->cacheDir . "/" . $this->params['cpi']); $resized = getimagesize(BASE . $this->cacheDir . "/" . $this->params['cpi']); $newFile->image_width = $resized[0]; $newFile->image_height = $resized[1]; $newFile->alt = $oldimage->alt; $newFile->is_image = $oldimage->is_image; $newFile->save(); //Save it to the database break; case 'saveAsIs': //eDebug($this->params,true); $oldimage = new expFile($this->params['fid']); $resized = getimagesize(BASE . $this->cacheDir . "/" . $this->params['cpi']); $oldimage->image_width = $resized[0]; $oldimage->image_height = $resized[1]; $oldimage->save(); copy(BASE . $this->cacheDir . "/" . $this->params['cpi'], $oldimage->directory . $oldimage->filename); //copy the edited file over to the files dir break; default: # code... break; } // proper file types to look for $types = array(".jpg", ".gif", ".png"); //Pixidou images directory, the editor's cache $cachedir = BASE . $this->cacheDir; if (is_dir($cachedir) && is_readable($cachedir)) { $dh = opendir($cachedir); while (($tmpfile = readdir($dh)) !== false) { if (in_array(substr($tmpfile, -4, 4), $types)) { $filename = $cachedir . $tmpfile; unlink($filename); } } } redirect_to(array("controller" => 'file', "action" => 'picker', "ajax_action" => 1, "update" => $this->params['update'], "fck" => $this->params['fck'])); }