$t->diag('sfAssetFolder::move()');
    # move $sfAssetFolder2 from /root/Test_Directory/Test_Sub-directory to /root/Test_Sub-directory
    $sfAssetFolder2->move($root);
    $sfAssetFolder2->save();
    # So now we have:
    # root/
    #   Test_Directory/             sfAssetFolder
    #   Test_Sub-directory/         sfAssetFolder2
    #     Test_Sub-sub-directory/   sfAssetFolder3
    #       toto
    #     raikkonen.jpg
    // Bug in Propel instance pooling + NestedSets...
    sfAssetFolderPeer::clearInstancePool();
    $root = sfAssetFolderPeer::retrieveByPk($rootId);
    $sfAssetFolder2 = sfAssetFolderPeer::retrieveByPk($id2);
    $sfAssetFolder3 = sfAssetFolderPeer::retrieveByPk($id3);
    $t->is($sfAssetFolder2->retrieveParent()->getId(), $root->getId(), 'move() gives the correct parent');
    $t->is($sfAssetFolder3->retrieveParent()->retrieveParent()->getId(), $root->getId(), 'move() also moves children');
    $t->is($sfAssetFolder2->getRelativePath(), $root->getRelativePath() . '/' . $sfAssetFolder2->getName(), 'move() changes descendants relative paths');
    $t->is($sfAssetFolder3->getRelativePath(), $sfAssetFolder2->getRelativePath() . '/' . $sfAssetFolder3->getName(), 'move() changes descendants relative paths');
    sfAssetPeer::clearInstancePool();
    $sfAsset = sfAssetPeer::retrieveByPk($sf_asset_id);
    $sfAsset2 = sfAssetPeer::retrieveByPk($sf_asset2_id);
    $t->ok(is_file($sfAsset->getFullPath()), 'move() also moves assets under the moved folder');
    $t->ok(is_file($sfAsset2->getFullPath()), 'move() also moves assets under the moved folder');
} catch (Exception $e) {
    echo $e->getMessage();
}
// reset DB
$con->rollBack();
function debugTree($root)
Exemplo n.º 2
0
 public function executeDeleteFolder()
 {
     $this->forward404Unless($this->getRequest()->getMethod() == sfRequest::POST);
     $folder = sfAssetFolderPeer::retrieveByPk($this->getRequestParameter('id'));
     $this->forward404Unless($folder);
     try {
         $folder->delete();
         $this->setFlash('notice', 'The folder has been deleted');
     } catch (sfAssetException $e) {
         $this->setFlash('warning_message', $e->getMessage());
         $this->setFlash('warning_params', $e->getMessageParams());
     }
     return $this->redirectToPath('sfAsset/list?dir=' . $folder->getParentPath());
 }
 /**
  * move asset
  * @param sfWebRequest $request
  */
 public function executeMoveAsset(sfWebRequest $request)
 {
     $this->forward404Unless($request->getMethod() == sfRequest::POST, 'method not allowed');
     $sfAsset = $request->getParameter('sf_asset');
     $asset = sfAssetPeer::retrieveByPK($sfAsset['id']);
     $this->forward404Unless($asset, 'asset not found');
     $destFolder = sfAssetFolderPeer::retrieveByPk($sfAsset['parent_folder']);
     $this->forward404Unless($destFolder, 'destination folder not found');
     $this->form = new sfAssetMoveForm($asset);
     $this->form->bind($request->getParameter($this->form->getName()));
     if ($this->form->isValid() && $destFolder->getId() != $asset->getFolderId()) {
         try {
             $asset->move($destFolder);
             $asset->save();
             $this->dispatcher->notify(new sfEvent($this, 'admin.save_object', array('object' => $asset)));
             $this->getUser()->setFlash('notice', 'The file has been moved');
         } catch (sfAssetException $e) {
             $this->getUser()->setFlash('warning_message', $e->getMessage());
             $this->getUser()->setFlash('warning_params', $e->getMessageParams());
         }
     } else {
         $this->getUser()->setFlash('warning', 'The asset has not been moved.');
     }
     return $this->redirect('@sf_asset_library_edit?id=' . $asset->getId());
 }
Exemplo n.º 4
0
 /**
  * Get the associated sfAssetFolder object
  *
  * @param      PropelPDO Optional Connection object.
  * @return     sfAssetFolder The associated sfAssetFolder object.
  * @throws     PropelException
  */
 public function getsfAssetFolder(PropelPDO $con = null)
 {
     if ($this->asfAssetFolder === null && $this->folder_id !== null) {
         $this->asfAssetFolder = sfAssetFolderPeer::retrieveByPk($this->folder_id);
         /* The following can be used additionally to
         		   guarantee the related object contains a reference
         		   to this object.  This level of coupling may, however, be
         		   undesirable since it could result in an only partially populated collection
         		   in the referenced object.
         		   $this->asfAssetFolder->addsfAssets($this);
         		 */
     }
     return $this->asfAssetFolder;
 }