Esempio n. 1
0
 public function getInfoFromParams($params = array())
 {
     $filters = Filter::getQueryFilters($params);
     $sort = Filter::getQuerySort($params);
     $pageNo = Filter::getPage($params);
     $sortField = '';
     $sortClass = '';
     if (isset($params['sort'])) {
         $sortDetails = Filter::getSortFieldAndDirection($params['sort']);
         $sortField = $sortDetails['field'];
         $sortClass = Filter::getSortClass($sortDetails['direction']);
     }
     return compact('filters', 'sort', 'pageNo', 'sortField', 'sortClass');
 }
 /**
  * Random
  * @param Request $request
  */
 public function randomAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $finder = $this->container->get('course_finder');
     $query = $em->createQueryBuilder();
     // Find the top 250 courses.
     $sort = array();
     $sort[] = array('ratingSort' => array('order' => 'desc'));
     $filters = array('session' => 'upcoming,selfpaced,recent');
     $results = $finder->byLanguage('english', Filter::getQueryFilters($filters), $sort, -1);
     $courseIds = array();
     // Capture the top 250
     foreach ($results['hits']['hits'] as $course) {
         $courseIds[] = $course['_source']['id'];
     }
     $id = rand(0, 250);
     $course = $em->getRepository('ClassCentralSiteBundle:Course')->find($courseIds[$id]);
     if ($course && $course->getStatus() == CourseStatus::AVAILABLE) {
         return $this->redirect($this->generateUrl('ClassCentralSiteBundle_mooc', array('id' => $courseIds[$id], 'slug' => $course->getSlug())));
     } else {
         return $this->randomAction($request);
     }
 }