Пример #1
0
 public function generateCourseRankings()
 {
     $rankings = array();
     $finder = $this->get('course_finder');
     $subjects = $this->getDoctrine()->getRepository('ClassCentralSiteBundle:Stream')->findAll();
     foreach ($subjects as $subject) {
         $results = $finder->bySubject($subject->getSlug(), array(), Filter::getQuerySort(array('sort' => 'rating-up')));
         $rank = 1;
         foreach ($results['hits']['hits'] as $result) {
             $course = $result['_source'];
             if (empty($rankings[$course['id']])) {
                 $rankings[$course['id']] = array();
             }
             $category = array();
             $parentSubject = array();
             if ($subject->getParentStream()) {
                 $category = array('name' => $subject->getName(), 'slug' => $subject->getSlug());
                 $parentSubject = array('name' => $subject->getParentStream()->getName(), 'slug' => $subject->getParentStream()->getSlug());
             } else {
                 $parentSubject = array('name' => $subject->getName(), 'slug' => $subject->getSlug());
             }
             $rankings[$course['id']][] = array('rank' => $rank, 'subject' => $parentSubject, 'category' => $category);
             if ($rank == 3) {
                 break;
             }
             $rank++;
         }
     }
     return $rankings;
 }
Пример #2
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');
 }