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();
         }
     }
 }