Exemple #1
0
 /**
  * just shows empty page. need to determine what to show on default page.
  *
  * @param Request $request
  *
  * @return \Symfony\Component\HttpFoundation\Response
  *
  * @Route("/", name="ubc_exam_main_homepage")
  */
 public function indexAction(Request $request)
 {
     $pagination = array();
     $pagerHtml = null;
     $q = $request->get('q');
     if (!is_null($q) && !empty($q)) {
         // search the index
         QueryParser::setDefaultOperator(QueryParser::B_AND);
         Wildcard::setMinPrefixLength(1);
         $hits = $this->get('ivory_lucene_search')->getIndex('exams')->find($q . '*');
         $ids = array();
         foreach ($hits as $hit) {
             $ids[] = $hit->pk;
         }
         $ids = array_unique($ids);
         // search the db by ids, because we need to get the exams only visible for current user
         if (!empty($ids)) {
             // find out the current user registered courses and faculty
             $em = $this->getDoctrine()->getManager();
             $coursesWithKeys = $request->getSession()->get('courses') ? $request->getSession()->get('courses') : array();
             $courses = array_keys($coursesWithKeys);
             $faculties = array_values($em->getRepository('UBCExamMainBundle:SubjectFaculty')->getFacultiesByCourses($courses));
             $userId = $this->get('security.authorization_checker')->isGranted('ROLE_ADMIN') ? -1 : $this->getCurrentUserId();
             $qb = $this->getDoctrine()->getRepository('UBCExamMainBundle:Exam')->queryExamsByIds($ids, $userId, $faculties, $courses);
             $paginator = $this->get('knp_paginator');
             $pagination = $paginator->paginate($qb, $request->query->get('page', 1), 20);
         }
     }
     return $this->render('UBCExamMainBundle:Default:index.html.twig', array('pagination' => $pagination, 'q' => $q, 'subjectCode' => '', 'subjectCodeLabel' => ''));
 }
 protected function getIndex()
 {
     if ($this->index != null) {
         return $this->index;
     }
     \ZendSearch\Lucene\Search\QueryParser::setDefaultEncoding('utf-8');
     \ZendSearch\Lucene\Analysis\Analyzer\Analyzer::setDefault(new \ZendSearch\Lucene\Analysis\Analyzer\Common\Utf8Num\CaseInsensitive());
     \ZendSearch\Lucene\Search\QueryParser::setDefaultOperator(\ZendSearch\Lucene\Search\QueryParser::B_AND);
     try {
         $index = \ZendSearch\Lucene\Lucene::open($this->getIndexPath());
     } catch (\ZendSearch\Lucene\Exception\RuntimeException $ex) {
         $index = \ZendSearch\Lucene\Lucene::create($this->getIndexPath());
     }
     $this->index = $index;
     return $index;
 }
 public function luceneSearchAetCommunications($index, $searchKeyWord)
 {
     \ZendSearch\Lucene\Analysis\Analyzer\Analyzer::setDefault(new \ZendSearch\Lucene\Analysis\Analyzer\Common\Text\CaseInsensitive());
     $dbIds = array();
     $searchValue = SearchHelper::utf8_to_ascii(mb_strtolower($searchKeyWord, "UTF-8"));
     $em = $this->getDoctrine()->getManager();
     /*
     $term1 = new \ZendSearch\Lucene\Index\Term($searchValue, 'firstname');
     //$subquery1 = new \ZendSearch\Lucene\Search\Query\Term($term1);
     
     $term2 = new \ZendSearch\Lucene\Index\Term($searchValue, 'title');
     //$subquery2 = new \ZendSearch\Lucene\Search\Query\Term($term2);
     
     $term3 = new \ZendSearch\Lucene\Index\Term($searchValue, 'shortdesc');
     //$subquery3 = new \ZendSearch\Lucene\Search\Query\Term($term3);
     
     $term4 = new \ZendSearch\Lucene\Index\Term($searchValue, 'body');
     //$subquery4 = new \ZendSearch\Lucene\Search\Query\Term($term4);
     
     $term5 = new \ZendSearch\Lucene\Index\Term($searchValue, 'author');
     //$subquery5 = new \ZendSearch\Lucene\Search\Query\Term($term5);
     
     
     $terms = array($term1, $term2, $term3, $term4, $term5);
     //$subqueries = array($subquery1, $subquery2, $subquery3, $subquery4, $subquery5);
     $signs = array(null, null, null, null, null);
     
     $termsQuery = new \ZendSearch\Lucene\Search\Query\MultiTerm($terms,$signs);
     */
     \ZendSearch\Lucene\Search\QueryParser::setDefaultOperator(\ZendSearch\Lucene\Search\QueryParser::B_OR);
     $query = \ZendSearch\Lucene\Search\QueryParser::parse($searchValue, 'UTF-8');
     $foundDocuments = $index->find($query);
     //$docNum = count($foundDocuments);
     foreach ($foundDocuments as $foundDoc) {
         $dbIds[] = $foundDoc->dbId;
     }
     $results = $em->getRepository('AetCommunicationBundle:Communication')->findById($dbIds);
     return $results;
 }
 public function luceneSearchAetUsers($index, $searchKeyWord)
 {
     \ZendSearch\Lucene\Analysis\Analyzer\Analyzer::setDefault(new \ZendSearch\Lucene\Analysis\Analyzer\Common\Text\CaseInsensitive());
     $dbIds = array();
     $searchValue = SearchHelper::utf8_to_ascii(mb_strtolower($searchKeyWord, "UTF-8"));
     $em = $this->getDoctrine()->getManager();
     /*
             $term1 = new \ZendSearch\Lucene\Index\Term($searchValue, 'firstname');
             //$subquery1 = new \ZendSearch\Lucene\Search\Query\Term($term1);
     
             $term2 = new \ZendSearch\Lucene\Index\Term($searchValue, 'lastname');
             //$subquery2 = new \ZendSearch\Lucene\Search\Query\Term($term2);
     
             $term3 = new \ZendSearch\Lucene\Index\Term($searchValue, 'activiteprincipale');
             //$subquery3 = new \ZendSearch\Lucene\Search\Query\Term($term3);
     
             $term4 = new \ZendSearch\Lucene\Index\Term($searchValue, 'codepostal');
             //$subquery4 = new \ZendSearch\Lucene\Search\Query\Term($term4);
     
             $term5 = new \ZendSearch\Lucene\Index\Term($searchValue, 'email');
             //$subquery5 = new \ZendSearch\Lucene\Search\Query\Term($term5);
     
             $term6 = new \ZendSearch\Lucene\Index\Term($searchValue, 'matricule');
             //$subquery6 = new \ZendSearch\Lucene\Search\Query\Term($term6);
     
             $term7 = new \ZendSearch\Lucene\Index\Term($searchValue, 'pays');
             //$subquery7 = new \ZendSearch\Lucene\Search\Query\Term($term7);
     
             $term8 = new \ZendSearch\Lucene\Index\Term($searchValue, 'promotion');
             //$subquery8 = new \ZendSearch\Lucene\Search\Query\Term($term8);
     
             $term9 = new \ZendSearch\Lucene\Index\Term($searchValue, 'telephone');
             //$subquery9 = new \ZendSearch\Lucene\Search\Query\Term($term9);
     
             $term10 = new \ZendSearch\Lucene\Index\Term($searchValue, 'ville');
             //$subquery10 = new \ZendSearch\Lucene\Search\Query\Term($term10);
     
             $term11 = new \ZendSearch\Lucene\Index\Term($searchValue, 'whoami');
             //$subquery11 = new \ZendSearch\Lucene\Search\Query\Term($term11);
     
     
             //$subqueries = array($subquery1, $subquery2, $subquery3, $subquery4, $subquery5, $subquery6, $subquery7, $subquery8, $subquery9, $subquery10, $subquery11);
             $terms = array($term1, $term2, $term3, $term4, $term5, $term6, $term7, $term8, $term9, $term10, $term11);
             $signs = array(null, null, null, null, null, null, null, null, null, null, null);
     
     $termsQuery = new \ZendSearch\Lucene\Search\Query\MultiTerm($terms, $signs);
             //$boolQuery = new \ZendSearch\Lucene\Search\Query\Boolean($subqueries, $signs);
     */
     \ZendSearch\Lucene\Search\QueryParser::setDefaultOperator(\ZendSearch\Lucene\Search\QueryParser::B_OR);
     $query = \ZendSearch\Lucene\Search\QueryParser::parse($searchValue, 'UTF-8');
     $foundDocuments = $index->find($query);
     //$docNum = count($foundDocuments);
     foreach ($foundDocuments as $foundDoc) {
         $dbIds[] = $foundDoc->dbId;
     }
     $results = $em->getRepository('AetAnnuaireBundle:User')->findById($dbIds);
     return $results;
 }