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; }
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'); }