public function getAssetObject()
 {
     if (!$this->_assetObject) {
         $this->_assetObject = sfSympalAssetToolkit::createAssetObject($this->path . '/' . $this->name);
     }
     return $this->_assetObject;
 }
 public function executeCreate_asset(sfWebRequest $request)
 {
     $form = new sfSympalAssetUploadForm();
     $upload = $request->getParameter($form->getName());
     $form->setUploadDirectory($upload['directory']);
     $form->bind($upload, $request->getFiles($form->getName()));
     if ($form->isValid()) {
         $postFile = $form->getValue('file');
         $fileName = $postFile->getOriginalName();
         $name = Doctrine_Inflector::urlize(sfSympalAssetToolkit::getNameFromFile($fileName));
         $extension = pathinfo($fileName, PATHINFO_EXTENSION);
         $fullName = $extension ? $name . '.' . $extension : $name;
         $destinationDirectory = sfConfig::get('sf_web_dir') . '/' . sfSympalConfig::get('assets', 'root_dir') . $upload['directory'];
         $this->getUser()->setFlash('notice', 'File uploaded successfully.');
         $postFile->save($destinationDirectory . '/' . $fullName);
         $assetObject = sfSympalAssetToolkit::createAssetObject($upload['directory'] . '/' . $fullName);
         if (!($asset = $assetObject->getDoctrineAsset())) {
             $asset = new sfSympalAsset();
         }
         $asset->path = $assetObject->getRelativePathDirectory();
         $asset->name = $assetObject->getName();
         $asset->save();
     } else {
         $this->getUser()->setFlash('error', 'Could not upload file.');
     }
     if ($this->isAjax) {
         $this->redirect('@sympal_assets_select?is_ajax=' . $this->isAjax . '&dir=' . $upload['directory']);
     } else {
         $this->redirect('@sympal_assets?is_ajax=' . $this->isAjax . '&dir=' . $upload['directory']);
     }
 }
 public function synchronizeDirectory($dir)
 {
     $files = sfFinder::type('file')->maxdepth(0)->relative()->in($dir);
     $path = str_replace($this->_path, null, $dir);
     $exists = Doctrine_Core::getTable('sfSympalAsset')->findByPath($path);
     $keys = array();
     foreach ($exists as $asset) {
         $keys[$asset->getName()] = $asset;
     }
     foreach ($files as $file) {
         if (!isset($keys[$file])) {
             $assetObject = sfSympalAssetToolkit::createAssetObject($path . '/' . $file);
             $doctrineAsset = new sfSympalAsset();
             $doctrineAsset->setAssetObject($assetObject);
             $doctrineAsset->save();
         }
     }
     // Remove assets that don't exist anymore on disk
     foreach ($keys as $name => $asset) {
         if (!$asset->fileExists()) {
             $asset->delete();
         }
     }
 }
 public function getOriginal()
 {
     if (!$this->_original) {
         $original = sfSympalAssetToolkit::createAssetObject($this->getRelativePathDirectory() . '/' . sfSympalConfig::get('assets', 'originals_dir') . '/' . $this->getName());
         if ($original->exists()) {
             $this->_original = $original;
         }
     }
     return $this->_original;
 }
예제 #5
0
 /**
  * Returns an sfSympalAssetObject instance representing an original
  * copy of this asset (if one exists)
  *
  * @param boolean $create Whether or not to try to create an original if it doesn't exist
  * @return sfSympalAssetObject
  */
 public function getOriginal($create = true)
 {
     if (!$this->_original) {
         $original = sfSympalAssetToolkit::createAssetObject($this->getRelativePathDirectory() . DIRECTORY_SEPARATOR . sfSympalConfig::get('assets', 'originals_dir') . DIRECTORY_SEPARATOR . $this->getName());
         if ($original->exists()) {
             $this->_original = $original;
         } elseif ($create) {
             $this->getDoctrineAsset()->copyOriginal();
             // try to get the original, but don't create on failure
             $this->_original = $this->getOriginal(false);
         }
     }
     return $this->_original;
 }