/** * @param int $id * @param array $params * @return void * @throws EntityAlreadyExistsException */ protected function checkDuplicatedEntityCriteria($id, array $params) { if (@$params['name']) { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('Name', $params['name'])); $query->addAndCondition(QueryCriteria::notEqual('ID', $id)); $old_one = $this->repository->get($query); if ($old_one) { throw new EntityAlreadyExistsException($this->entity_class, sprintf('%s %s', 'name', $params['name'])); } } }
public function getArticlesToSort($article_id, $new_rank, $old_rank, $is_new, $is_remove, $type) { $slider = $featured = $approved = 0; if ($type == 'slider') { $slider = 1; $approved = 1; } elseif ($type == 'featured') { $featured = 1; $approved = 1; } elseif ($type == 'recent') { $approved = 1; } $query = new QueryObject(new News()); $query->addAndCondition(QueryCriteria::notEqual('ID', $article_id)); $query->addAndCondition(QueryCriteria::equal('Slider', $slider)); $query->addAndCondition(QueryCriteria::equal('Featured', $featured)); $query->addAndCondition(QueryCriteria::equal('Approved', $approved)); if ($is_new) { $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $new_rank)); $rank_delta = 1; } elseif ($is_remove) { $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $old_rank)); $rank_delta = -1; } else { if ($old_rank < $new_rank) { $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $old_rank)); $query->addAndCondition(QueryCriteria::lowerOrEqual('Rank', $new_rank)); $rank_delta = -1; } else { $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $new_rank)); $query->addAndCondition(QueryCriteria::lowerOrEqual('Rank', $old_rank)); $rank_delta = 1; } } list($other_articles, $count) = $this->getAll($query); $return_array = array($other_articles, $rank_delta); return $return_array; }