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