getFile(); } public function getNewFilename($extension) { if ($this->rollback_file) { return $this->rollback_file; } $basename = preg_replace('"\..*$"', '', $this->file->getClientOriginalName()); $filename = $this->fullSlugify($basename).'.'.$extension; $c = 1; while (MediaQuery::create()->findOneByFile($filename)) { $filename = $basename.'-'.$c.'.'.$extension; $c++; } return $filename; } public function getThumbnail() { $file = $this->getFileAsFile(); if (empty($file)) { return null; } if (0 !== preg_match('/image/', $file->getMimeType())) { return $this->getUploadDir('file').'/thumb_'.$this->getBasename(); } if (!$this->getType()) { return null; } $fileThumb = $this->getType()->getThumbnail(); return $fileThumb ? $fileThumb : null; } public function getBasename() { return basename($this->getFile()); } public function setTypeId($id) { if ($id === '') { $id = null; } parent::setTypeId($id); } public function postSave(\PropelPDO $con = null) { // if (!$this->getTypeId() && $this->getFileAsFile()) { // $this->setTypeId(TypePeer::getTypeFor($this->getFileAsFile())); // } if ($this->hasUploadedFile()) { if (@getimagesize($this->getWebPathForFile())) { Image::create($this->getWebPathForFile()) ->crop(2000, 2000, 0, 0) ->save(); $file = $this->getFileAsFile(); Image::create($this->getWebPathForFile()) ->thumb(100, 100) ->save($file->getPath().'/thumb_'.$file->getBasename()); } } return parent::postSave($con); } protected function fullSlugify($text) { $text = strtr(utf8_decode($text), utf8_decode("ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ"), utf8_decode("aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn")); $text = preg_replace('/\W+/', '-', utf8_encode($text)); $text = strtolower(trim($text, '-')); return $text; } }