/** * @see sfTask */ protected function execute($arguments = array(), $options = array()) { $databaseManager = new sfDatabaseManager($this->configuration); if (sfAssetFolderPeer::retrieveRoot()) { throw new sfException('The asset library already has a root'); } $this->logSection('asset', sprintf('Creating root node at %s...', sfConfig::get('app_sfAssetsLibrary_upload_dir', 'media')), null, 'COMMENT'); $folder = new sfAssetFolder(); $folder->setName(sfConfig::get('app_sfAssetsLibrary_upload_dir', 'media')); sfAssetFolderPeer::createRoot($folder); $folder->save(); $this->logSection('asset', 'Root Node Created', null, 'INFO'); }
/** * Recursively creates parent folders * * @param string $path * @return sfAssetFolder */ public static function createFromPath($path) { $path = self::cleanPath($path); list($parent_path, $name) = sfAssetsLibraryTools::splitPath($path); if (!($parent_folder = self::retrieveByPath($parent_path))) { $parent_folder = self::createFromPath($parent_path); $parent_folder->save(); } $folder = new sfAssetFolder(); $folder->setName($name); $folder->setRelativePath($path); $folder->insertAsLastChildOf($parent_folder); $folder->save(); return $folder; }
/** * Change asset directory and/or name * * @param sfAssetFolder $newFolder * @param string $newFilename */ public function move(sfAssetFolder $newFolder, $newFilename = null) { if (sfAssetPeer::exists($newFolder->getId(), $newFilename ? $newFilename : $this->getFilename())) { throw new sfAssetException('The target folder "%folder%" already contains an asset named "%name%". The asset has not been moved.', array('%folder%' => $newFolder->getName(), '%name%' => $newFilename ? $newFilename : $this->getFilename())); } $oldFilepaths = $this->getFilepaths(); if ($newFilename) { if (sfAssetsLibraryTools::sanitizeName($newFilename) != $newFilename) { throw new sfAssetException('The filename "%name%" contains incorrect characters. The asset has not be altered.', array('%name%' => $newFilename)); } $this->setFilename($newFilename); } $this->setFolderId($newFolder->getId()); $success = true; foreach ($oldFilepaths as $type => $filepath) { $success = rename($filepath, $this->getFullPath($type)) && $success; } if (!$success) { throw new sfAssetException('Some or all of the file operations failed. It is possible that the moved asset or its thumbnails are missing.'); } }
$t->isa_ok($sfAsset->getFolder(), 'sfAssetFolder', 'sfAsset can have root as folder'); $sfAsset->setFilename('filename.jpg'); $t->diag('sfAsset::getRelativePath()'); $t->is($sfAsset->getRelativePath(), sfConfig::get('app_sfAssetsLibrary_upload_dir') . DIRECTORY_SEPARATOR . 'filename.jpg', 'getRelativePath() returns the path relative to the media directory'); $t->diag('sfAsset::getFullPath()'); $t->is($sfAsset->getFullPath(), sfConfig::get('sf_web_dir') . DIRECTORY_SEPARATOR . sfConfig::get('app_sfAssetsLibrary_upload_dir') . DIRECTORY_SEPARATOR . 'filename.jpg', 'getFullPath() returns the complete asset path on the disk'); $t->is($sfAsset->getFullPath('small'), sfConfig::get('sf_web_dir') . DIRECTORY_SEPARATOR . sfConfig::get('app_sfAssetsLibrary_upload_dir') . DIRECTORY_SEPARATOR . 'thumbnail' . DIRECTORY_SEPARATOR . 'small_filename.jpg', 'getFullPath(\'small\') returns the complete small thumbnail path on the disk'); $t->is($sfAsset->getFullPath('large'), sfConfig::get('sf_web_dir') . DIRECTORY_SEPARATOR . sfConfig::get('app_sfAssetsLibrary_upload_dir') . DIRECTORY_SEPARATOR . 'thumbnail' . DIRECTORY_SEPARATOR . 'large_filename.jpg', 'getFullPath(\'large\') returns the complete large thumbnail path on the disk'); $t->diag('sfAsset::getUrl()'); $t->is($sfAsset->getUrl(), '/' . sfConfig::get('app_sfAssetsLibrary_upload_dir') . DIRECTORY_SEPARATOR . 'filename.jpg', 'getUrl() returns the asset URL'); $t->is($sfAsset->getUrl('small'), '/' . sfConfig::get('app_sfAssetsLibrary_upload_dir') . '/thumbnail/small_filename.jpg', 'getUrl(\'small\') returns the small thumbnail url'); $t->is($sfAsset->getUrl('large'), '/' . sfConfig::get('app_sfAssetsLibrary_upload_dir') . '/thumbnail/large_filename.jpg', 'getUrl(\'large\') returns the large thumbnail url'); $t->diag('sfAsset::create()'); $assets_path = dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'assets' . DIRECTORY_SEPARATOR; $test_asset = $assets_path . 'raikkonen.jpg'; $folder1 = new sfAssetFolder(); $folder1->getNode()->insertAsFirstChildOf($root); $folder1->setName('Test_Directory'); $folder1->save(); $asset1 = new sfAsset(); $asset1->setFolder($folder1); $asset1->create($test_asset, false); $asset_file_size = (int) (filesize($test_asset) / 1024); $t->is($asset1->getFilename(), 'raikkonen.jpg', 'create() sets the object filename according to the given asset'); $t->is($asset1->getFilesize(), 18, 'create() sets the object filesize according to the given asset'); $t->ok($asset1->isImage(), 'create() sets the object type according to the given asset'); $t->is($asset1->getUrl(), $folder1->getUrl() . '/' . $asset1->getFilename(), 'create() sets the object url according to the given asset and folder object'); $t->ok(is_file($asset1->getFullPath()), 'create() physically copies asset'); $t->ok(is_file($asset1->getFullPath('large')), 'create() physically creates thumbnail'); $t->diag('sfAsset::move()'); $old_path = $asset1->getFullPath();
/** * get a criteria for all folders except one * @param sfAssetFolder $folder folder to exclude * @return Criteria */ public static function getAllPathsButOneCriteria($folder) { $c = new Criteria(); $c->add(self::ID, $folder->getId(), Criteria::NOT_EQUAL); return $c; }
/** * Move under a new parent * * @param sfAssetFolder $new_parent */ public function move(sfAssetFolder $new_parent) { // controls if ($this->getNode()->isRoot()) { throw new sfAssetException('The root folder cannot be moved'); } else { if ($new_parent->hasSubFolder($this->getName())) { throw new sfAssetException('The target folder "%folder%" already contains a folder named "%name%". The folder has not been moved.', array('%folder%' => $new_parent, '%name%' => $this->getName())); } else { if ($new_parent->getNode()->isDescendantOf($this)) { throw new sfAssetException('The target folder cannot be a subfolder of moved folder. The folder has not been moved.'); } else { if ($this->getId() == $new_parent->getId()) { return; } } } } $old_path = $this->getFullPath(); $this->getNode()->moveAsLastChildOf($new_parent); $this->save(); $descendants = $this->getNode()->getChildren(); $descendants = $descendants ? $descendants : array(); // move its assets self::movePhysically($old_path, $this->getFullPath()); foreach ($descendants as $descendant) { // Update relative path $descendant->save(); } // else: nothing to do }
<?php $app = 'frontend'; include dirname(__FILE__) . '/../../../../test/bootstrap/functional.php'; include $configuration->getSymfonyLibDir() . '/vendor/lime/lime.php'; $databaseManager = new sfDatabaseManager($configuration); $con = Doctrine::getConnectionByTableName('sfAsset'); $con->beginTransaction(); try { // prepare test environment sfAssetFolderTable::getInstance()->createQuery()->delete()->execute(); sfAssetTable::getInstance()->createQuery()->delete()->execute(); sfConfig::set('app_sfAssetsLibrary_upload_dir', 'mediaTEST'); $f = new sfAssetFolder(); $f->setName(sfConfig::get('app_sfAssetsLibrary_upload_dir')); $tree = sfAssetFolderTable::getInstance()->getTree(); $tree->createRoot($f); $f->save(); $t = new lime_test(5, array('options' => new lime_output_color(), 'error_reporting' => true)); $t->diag('sfAssetPeer'); $t->is(sfAssetTable::getInstance()->retrieveFromUrl(sfAssetFolderTable::getInstance()->getRoot()->getRelativePath() . '/filename.jpg'), null, 'sfAssetPeer::retrieveFromUrl() returns null when a URL is not found'); $t->is(sfAssetTable::getInstance()->exists(sfAssetFolderTable::getInstance()->getRoot()->getId(), 'filename.jpg'), false, 'sfAssetPeer::exists() returns false when an asset is not found'); $sfAsset = new sfAsset(); $sfAsset->setFolder(sfAssetFolderTable::getInstance()->getRoot()); $sfAsset->setFilename('filename.jpg'); $sfAsset->save(); $t->is(sfAssetTable::getInstance()->retrieveFromUrl(sfAssetFolderTable::getInstance()->getRoot()->getRelativePath() . '/filename.jpg')->getId(), $sfAsset->getId(), 'sfAssetPeer::retrieveFromUrl() finds an asset from its URL'); $t->is(sfAssetTable::getInstance()->retrieveFromUrl($sfAsset->getUrl())->getId(), $sfAsset->getId(), 'sfAssetPeer::retrieveFromUrl() finds an asset from the result of `getUrl()`'); $t->is(sfAssetTable::getInstance()->exists(sfAssetFolderTable::getInstance()->getRoot()->getId(), 'filename.jpg'), true, 'sfAssetPeer::exists() returns true when an asset is found'); } catch (Exception $e) { echo $e->getMessage();
/** * get a criteria for all folders except one * @param sfAssetFolder $folder folder to exclude * @return Doctrine_Query */ public function getAllPathsButOneCriteria($folder) { $query = $this->createQuery()->where('id != ?', $folder->getId()); return $query; }
public function executeCreateFolder() { if ($this->getRequest()->getMethod() == sfRequest::POST) { // Handle the form submission $parentFolder = sfAssetFolderPeer::retrieveByPath($this->getRequestParameter('parent_folder')); $this->forward404Unless($parentFolder); $folder = new sfAssetFolder(); $folder->setName($this->getRequestParameter('name')); $folder->insertAsLastChildOf($this->parentFolder); $folder->save(); $this->redirectToPath('sfAsset/list?dir=' . $folder->getRelativePath()); } else { // Display the form return sfView::SUCCESS; } }
/** * create folder * @param sfWebRequest $request */ public function executeCreateFolder(sfWebRequest $request) { $this->form = new sfAssetFolderForm(); $this->form->bind($request->getParameter($this->form->getName())); if ($this->form->isValid()) { $parentFolder = sfAssetFolderPeer::retrieveByPK($this->form->getValue('parent_folder')); $this->forward404Unless($parentFolder, 'parent folder not found'); $folder = new sfAssetFolder(); $folder->setName($this->form->getValue('name')); $folder->insertAsLastChildOf($parentFolder); $folder->save(); $this->redirectToPath('@sf_asset_library_dir?dir=' . $folder->getRelativePath()); } }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param sfAssetFolder $value A sfAssetFolder object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(sfAssetFolder $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } // if key === null self::$instances[$key] = $obj; } }
/** * Declares an association between this object and a sfAssetFolder object. * * @param sfAssetFolder $v * @return sfAsset The current object (for fluent API support) * @throws PropelException */ public function setsfAssetFolder(sfAssetFolder $v = null) { if ($v === null) { $this->setFolderId(NULL); } else { $this->setFolderId($v->getId()); } $this->asfAssetFolder = $v; // Add binding for other direction of this n:n relationship. // If this object has already been added to the sfAssetFolder object, it will not be re-added. if ($v !== null) { $v->addsfAsset($this); } return $this; }
<?php $app = 'frontend'; include dirname(__FILE__) . '/../../../../test/bootstrap/functional.php'; include $configuration->getSymfonyLibDir() . '/vendor/lime/lime.php'; $databaseManager = new sfDatabaseManager($configuration); $con = Propel::getConnection(); $con->beginTransaction(); try { // prepare test environment sfAssetFolderPeer::doDeleteAll(); sfAssetPeer::doDeleteAll(); sfConfig::set('app_sfAssetsLibrary_upload_dir', 'mediaTEST'); $f = new sfAssetFolder(); $f->setName(sfConfig::get('app_sfAssetsLibrary_upload_dir')); sfAssetFolderPeer::createRoot($f); $f->save(); $t = new lime_test(5, array('options' => new lime_output_color(), 'error_reporting' => true)); $t->diag('sfAssetPeer'); $t->is(sfAssetPeer::retrieveFromUrl(sfAssetFolderPeer::retrieveRoot()->getRelativePath() . '/filename.jpg'), null, 'sfAssetPeer::retrieveFromUrl() returns null when a URL is not found'); $t->is(sfAssetPeer::exists(sfAssetFolderPeer::retrieveRoot()->getId(), 'filename.jpg'), false, 'sfAssetPeer::exists() returns false when an asset is not found'); $sfAsset = new sfAsset(); $sfAsset->setFolder(sfAssetFolderPeer::retrieveRoot()); $sfAsset->setFilename('filename.jpg'); $sfAsset->save($con); $t->is(sfAssetPeer::retrieveFromUrl(sfAssetFolderPeer::retrieveRoot()->getRelativePath() . '/filename.jpg')->getId(), $sfAsset->getId(), 'sfAssetPeer::retrieveFromUrl() finds an asset from its URL'); $t->is(sfAssetPeer::retrieveFromUrl($sfAsset->getUrl())->getId(), $sfAsset->getId(), 'sfAssetPeer::retrieveFromUrl() finds an asset from the result of `getUrl()`'); $t->is(sfAssetPeer::exists(sfAssetFolderPeer::retrieveRoot()->getId(), 'filename.jpg'), true, 'sfAssetPeer::exists() returns true when an asset is found'); } catch (Exception $e) { echo $e->getMessage(); }
<?php $app = "frontend"; include dirname(__FILE__) . '/../../../../test/bootstrap/functional.php'; include $configuration->getSymfonyLibDir() . '/vendor/lime/lime.php'; $folderProvider = new sfAssetsFolderProvider(); $assetProvider = new sfAssetsProvider(); $databaseManager = new sfDatabaseManager($configuration); $con = Propel::getConnection(); $con->beginTransaction(); try { // prepare test environment $folderProvider->doDeleteAll(); $assetProvider->doDeleteAll(); sfConfig::set('app_sfAssetsLibrary_upload_dir', 'medias'); $f = new sfAssetFolder(); $f->setName(sfConfig::get('app_sfAssetsLibrary_upload_dir')); $folderProvider->createRoot($f); $f->save(); // run the test $t = new lime_test(13, new lime_output_color()); $t->diag('sfAssetFolderPeer'); $sfAssetFolder = $folderProvider->retrieveByPath(sfConfig::get('app_sfAssetsLibrary_upload_dir', 'media')); $t->ok($sfAssetFolder->isRoot(), 'retrieveByPath() retrieves root from app_sfAssetsLibrary_upload_dir string'); $sfAssetFolder = $folderProvider->retrieveByPath(); $t->ok($sfAssetFolder->isRoot(), 'retrieveByPath() retrieves root from empty string'); $sfAssetFolder = $folderProvider->createFromPath(sfConfig::get('app_sfAssetsLibrary_upload_dir', 'media') . '/simple'); $t->isa_ok($sfAssetFolder, 'sfAssetFolder', 'createFromPath() creates a sfAssetFolder from simple string'); $t->isa_ok($sfAssetFolder->retrieveParent(), 'sfAssetFolder', 'createFromPath() from simple string has a parent'); $t->ok($sfAssetFolder->retrieveParent()->isRoot(), 'createFromPath() creates a root child from simple string'); $sfAssetFolder2 = $folderProvider->createFromPath(sfConfig::get('app_sfAssetsLibrary_upload_dir', 'media') . '/simple/subfolder');
$sfAssetFolder = new sfAssetFolder(); $sfAssetFolder->setName('Test_Directory'); $sfAssetFolder->insertAsFirstChildOf($root); $sfAssetFolder->save(); $t->is($sfAssetFolder->getName(), 'Test_Directory', 'getName() returns the folder name'); $t->diag('sfAssetFolder::getRelativePath()'); $t->is($sfAssetFolder->getRelativePath(), $root->getRelativePath() . '/' . $sfAssetFolder->getName(), 'getRelativePath() returns the folder relative path, including its own name'); # $sfAssetFolder2 is /root/Test_Directory/Test_Sub-directory $sfAssetFolder2 = new sfAssetFolder(); $sfAssetFolder2->setName('Test_Sub-directory'); $sfAssetFolder2->insertAsFirstChildOf($sfAssetFolder); $sfAssetFolder2->save(); $t->is($sfAssetFolder2->getRelativePath(), $sfAssetFolder->getRelativePath() . '/' . $sfAssetFolder2->getName(), 'getRelativePath() returns the folder relative path, including its parent name'); $id2 = $sfAssetFolder2->getId(); # $sfAssetFolder3 is /root/Test_Directory/Test_Sub-directory/Test_Sub-sub-directory $sfAssetFolder3 = new sfAssetFolder(); $sfAssetFolder3->insertAsFirstChildOf($sfAssetFolder2); $sfAssetFolder3->setName('Test_Sub-sub-directory'); $sfAssetFolder3->save(); $t->is($sfAssetFolder3->getRelativePath(), $sfAssetFolder2->getRelativePath() . '/' . $sfAssetFolder3->getName(), 'getRelativePath() returns the folder relative path, including its ancestors names'); $id3 = $sfAssetFolder3->getId(); # $sfAsset is /root/Test_Directory/Test_Sub-directory/raikkonen.jpg $assets_path = dirname(__FILE__) . '/../assets/'; $test_asset = $assets_path . 'raikkonen.jpg'; $sfAsset = new sfAsset(); $sfAsset->setFolder($sfAssetFolder2); $sfAsset->create($test_asset, false); $sfAsset->save(); $sf_asset_id = $sfAsset->getId(); # $sfAsset2 is /root/Test_Directory/Test_Sub-directory/Test_Sub-sub-directory/toto $sfAsset2 = new sfAsset();
$t->is($sfAssetFolder->getRelativePath(), $root->getRelativePath() . '/' . $sfAssetFolder->getName(), 'getRelativePath() is updated on save'); $sfAssetFolder2 = new sfAssetFolder(); $sfAssetFolder2->insertAsFirstChildOf($sfAssetFolder); $sfAssetFolder2->setName('Test_Sub-directory'); $sfAssetFolder2->save(); $t->is($sfAssetFolder2->getRelativePath(), $sfAssetFolder->getRelativePath() . '/' . $sfAssetFolder2->getName(), 'getRelativePath() is updated on save for subfolders'); $assets_path = dirname(__FILE__) . '/../assets/'; $test_asset = $assets_path . 'raikkonen.jpg'; $t->ok(is_file($test_asset), 'test asset found'); $sfAsset = new sfAsset(); $sfAsset->setsfAssetFolder($sfAssetFolder2); $sfAsset->create($test_asset, false); $sfAsset->save(); $t->ok(is_file($sfAsset->getFullPath()), 'asset found'); $sf_asset_id = $sfAsset->getId(); $sfAssetFolder3 = new sfAssetFolder(); $sfAssetFolder3->insertAsFirstChildOf($sfAssetFolder2); $sfAssetFolder3->setName('Test_Sub-sub-directory'); $sfAssetFolder3->save(); $t->is($sfAssetFolder3->getRelativePath(), $sfAssetFolder2->getRelativePath() . '/' . $sfAssetFolder3->getName(), 'getRelativePath() is updated on save for subfolders'); $sfAsset2 = new sfAsset(); $sfAsset2->setsfAssetFolder($sfAssetFolder3); $sfAsset2->setFilename('toto'); $sfAsset2->create($test_asset, false); $sfAsset2->save(); $t->ok(is_file($sfAsset2->getFullPath()), 'asset2 found'); $sf_asset2_id = $sfAsset2->getId(); $id3 = $sfAssetFolder3->getId(); $sfAssetFolder2->move($root); $sfAssetFolder3 = sfAssetFolderPeer::retrieveByPk($id3); $t->is($sfAssetFolder2->getParent()->getId(), $root->getId(), 'move() gives the correct parent');
/** * Overrrides the parent synchronizeWith() method to add a fix when calling * insertAsLastChildOf($this->reload()) because $this->reload() doesn't return * $this. * * @see parent::synchronizeWith() */ public function synchronizeWith($baseFolder, $verbose = true, $removeOrphanAssets = false, $removeOrphanFolders = false) { if (!is_dir($baseFolder)) { throw new sfAssetException(sprintf('%s is not a directory', $baseFolder)); } $files = sfFinder::type('file')->maxdepth(0)->ignore_version_control()->in($baseFolder); $assets = $this->getAssetsWithFilenames(); foreach ($files as $file) { if (!array_key_exists(basename($file), $assets)) { // File exists, asset does not exist: create asset $sfAsset = new sfAsset(); $sfAsset->setFolderId($this->getId()); $sfAsset->create($file, false); $sfAsset->save(); if ($verbose) { sfAssetsLibraryTools::log(sprintf("Importing file %s", $file), 'green'); } } else { // File exists, asset exists: do nothing unset($assets[basename($file)]); } } foreach ($assets as $name => $asset) { if ($removeOrphanAssets) { // File does not exist, asset exists: delete asset $asset->delete(); if ($verbose) { sfAssetsLibraryTools::log(sprintf("Deleting asset %s", $asset->getUrl()), 'yellow'); } } else { if ($verbose) { sfAssetsLibraryTools::log(sprintf("Warning: No file for asset %s", $asset->getUrl()), 'red'); } } } $dirs = sfFinder::type('dir')->maxdepth(0)->discard(sfConfig::get('app_sfAssetsLibrary_thumbnail_dir', 'thumbnail'))->ignore_version_control()->in($baseFolder); $folders = $this->getSubfoldersWithFolderNames(); foreach ($dirs as $dir) { list(, $name) = sfAssetsLibraryTools::splitPath($dir); if (!array_key_exists($name, $folders)) { $this->reload(); // dir exists in filesystem, not in database: create folder in database $sfAssetFolder = new sfAssetFolder(); $sfAssetFolder->insertAsLastChildOf($this); $sfAssetFolder->setName($name); $sfAssetFolder->save(); if ($verbose) { sfAssetsLibraryTools::log(sprintf("Importing directory %s", $dir), 'green'); } } else { // dir exists in filesystem and database: look inside $sfAssetFolder = $folders[$name]; unset($folders[$name]); } $sfAssetFolder->synchronizeWith($dir, $verbose, $removeOrphanAssets, $removeOrphanFolders); } foreach ($folders as $name => $folder) { if ($removeOrphanFolders) { $folder->delete(null, true); if ($verbose) { sfAssetsLibraryTools::log(sprintf("Deleting folder %s", $folder->getRelativePath()), 'yellow'); } } else { if ($verbose) { sfAssetsLibraryTools::log(sprintf("Warning: No directory for folder %s", $folder->getRelativePath()), 'red'); } } } }
/** * process search * @param array $params * @param string $sort * @return Doctrine_Query */ protected function search(array $params, $sort = 'name') { $query = $this->createQuery('a'); if (isset($params['folder_id']) && $params['folder_id'] !== '') { if (null != ($folder = sfAssetFolderTable::getInstance()->find($params['folder_id']))) { if (false) { $folder = new sfAssetFolder(); } $query->leftJoin('a.Folder f'); $query->where('f.lft >= ?', $folder->getNode()->getLeftValue()); $query->andWhere('f.rgt <= ?', $folder->getNode()->getRightValue()); } } // if (isset($params['filename']['is_empty'])) // { // $query->andWhere('filename = \'\' or filename is null', null); //// $criterion = $c->getNewCriterion(self::FILENAME, ''); //// $criterion->addOr($c->getNewCriterion(self::FILENAME, null, Criteria::ISNULL)); //// $c->add($criterion); // } // else if (isset($params['filename']['text']) && strlen($params['filename']['text'])) { $query->andWhere('filename like ?', '%' . trim($params['filename']['text'], '*%') . '%'); } if (isset($params['author']['is_empty'])) { $query->andWhere('author = \'\' or author is null'); } elseif (isset($params['author']['text']) && strlen($params['author']['text'])) { $query->andWhere('author like ?', '%' . trim($params['author']['text'], '*%') . '%'); } if (isset($params['copyright']['is_empty'])) { $query->andWhere('copyright = \'\' or copyright is null'); } elseif (isset($params['copyright']['text']) && strlen($params['copyright']['text'])) { $query->andWhere('copyright like ?', '%' . trim($params['copyright']['text'], '*%') . '%'); } if (isset($params['created_at'])) { // TODO query // if (isset($params['created_at']['from']) && $params['created_at']['from'] !== array()) // TODO check this // { // $criterion = $c->getNewCriterion(self::CREATED_AT, $params['created_at']['from'], Criteria::GREATER_EQUAL); // } // if (isset($params['created_at']['to']) && $params['created_at']['to'] !== array()) // TODO check this // { // if (isset($criterion)) // { // $criterion->addAnd($c->getNewCriterion(self::CREATED_AT, $params['created_at']['to'], Criteria::LESS_EQUAL)); // } // else // { // $criterion = $c->getNewCriterion(self::CREATED_AT, $params['created_at']['to'], Criteria::LESS_EQUAL); // } // } // if (isset($criterion)) // { // $c->add($criterion); // } } if (isset($params['description']['is_empty'])) { $query->andWhere('description = \'\' or description is null'); } else { if (isset($params['description']) && $params['description'] !== '') { $query->andWhere('description like ?', '%' . trim($params['description']['text'], '*%') . '%'); } } switch ($sort) { case 'date': $query->orderBy('created_at DESC'); break; default: $query->orderBy('filename ASC'); } return $query; }