/** * @param \Symfony\Component\HttpFoundation\Request $request * * @return \Symfony\Component\HttpFoundation\Response */ public function searchVenueAction(Request $request) { $venueName = $request->get('name'); $venueLocation = $request->get('location'); $venueTypeBar = $request->get('bar'); $venueTypeClub = $request->get('club'); $venueTypeOther = $request->get('other'); $page = $request->get('page'); if ($request->get('type') == 'filter') { $page = 0; } $venueTypes = array(); $criteria = new \Doctrine\Common\Collections\Criteria(); if ($venueLocation) { $criteria->where($criteria->expr()->contains('city', $venueLocation)); $criteria->orWhere($criteria->expr()->contains('country', $venueLocation)); } if ($venueName) { $criteria->andWhere($criteria->expr()->contains('name', $venueName)); } if ($venueTypeBar == 'true') { $venueTypes[] = 'bar'; } if ($venueTypeClub == 'true') { $venueTypes[] = 'club'; } if ($venueTypeOther == 'true') { $venueTypes[] = 'other'; } if (empty($venueTypes)) { $venueTypes = array('bar', 'club', 'other'); } $criteria->andWhere($criteria->expr()->in('category', $venueTypes)); #$criteria->setFirstResult(12 * $page); $criteria->setMaxResults(12 * ($page + 1)); $venues = $this->getEntityManager()->getRepository('ApplicationJraisanenVnuezBundle:Venue')->matching($criteria); $allItems = false; if ($venues->count() < 12 * ($page + 1)) { $allItems = true; } return $this->render('JraisanenSearchBundle:Search:search_venue.html.twig', array('venues' => $venues, 'all_items' => $allItems)); }
/** * Search sessions by searched term by session name * @param string $queryTerm Term for search * @param array $limit Limit info * @return array The sessions */ public function browseSessionsBySearch($queryTerm, array $limit) { $sessionsToBrowse = []; $criteria = Doctrine\Common\Collections\Criteria::create()->where(Doctrine\Common\Collections\Criteria::expr()->contains('name', $queryTerm))->setFirstResult($limit['start'])->setMaxResults($limit['length']); $sessions = Database::getManager()->getRepository('ChamiloCoreBundle:Session')->matching($criteria); foreach ($sessions as $session) { if ($session->getNbrCourses() === 0) { continue; } $sessionsToBrowse[] = $session; } return $sessionsToBrowse; }
/** * Garbage Collection * * @param int $maxlifetime * @return true */ public function gc($maxlifetime) { $repo = $this->getEntityManager()->getRepository("zDbSession\\Entity\\Session"); $collection = $repo->findAll(); $criteria = new \Doctrine\Common\Collections\Criteria(); $criteria->andWhere($criteria->expr()->lt('modified', time() + $this->lifetime)); $this->getEntityManager()->remove($collection->matching($criteria)); $this->getEntityManager()->flush(); return \TRUE; }