Example #1
0
 public function newsAction(Request $request)
 {
     $request = $this->getRequest();
     $pageOffset = 0;
     if ($request->query->get('p')) {
         $page = $request->query->get('p');
         $pageOffset = ($page - 1) * 6;
     }
     $finder = $this->container->get('fos_elastica.finder.search.posts');
     $boolQuery = new \Elastica\Query\BoolQuery();
     if ($request->query->get('q')) {
         $search = $request->query->get('q');
         $fieldQuery = new \Elastica\Query\Match();
         $fieldQuery->setFieldQuery('allField', $search);
         $fieldQuery->setFieldOperator('allField', 'AND');
         $fieldQuery->setFieldMinimumShouldMatch('allField', '80%');
         $fieldQuery->setFieldAnalyzer('allField', 'custom_search_analyzer');
         $boolQuery->addMust($fieldQuery);
     } else {
         $fieldQuery = new \Elastica\Query\MatchAll();
     }
     $query = new \Elastica\Query();
     $query->setQuery($boolQuery);
     $query->setSize(1000);
     $totalpages = ceil(count($finder->find($query)) / 6);
     $query->setSize(6);
     $query->setFrom($pageOffset);
     $posts = $finder->find($query);
     return $this->render('TeamIndexBundle:News:news.html.twig', array('posts' => $posts, 'totalpages' => $totalpages));
 }
 public function articlelistAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $searchTerm = $request->query->get('q');
     $page = 0;
     $pageOffset = 0;
     if ($request->query->get('p')) {
         $page = $request->query->get('p');
         $pageOffset = ($page - 1) * 12;
     }
     $finder = $this->container->get('fos_elastica.finder.search.article');
     $boolQuery = new \Elastica\Query\BoolQuery();
     $articles = "";
     $totalpages = 0;
     if ($request->query->get('q') != NULL) {
         $searchTerm = $request->query->get('q');
         $fieldQuery = new \Elastica\Query\Match();
         $fieldQuery->setFieldQuery('allField', $searchTerm);
         $fieldQuery->setFieldOperator('allField', 'AND');
         $fieldQuery->setFieldMinimumShouldMatch('allField', '80%');
         $fieldQuery->setFieldAnalyzer('allField', 'custom_search_analyzer');
         $boolQuery->addMust($fieldQuery);
         $query = new \Elastica\Query();
         $query->setQuery($boolQuery);
         $query->setSize(10000);
         $articleCatgeories = $finder->find($query);
         $totalpages = ceil(count($finder->find($query)) / 12);
         $query->setSize(12);
         $query->setFrom($pageOffset);
         $articles = $finder->find($query);
     }
     return $this->render('OrthAdminBundle:Articles:articlelist.html.twig', array('totalpages' => $totalpages, 'articles' => $articles));
 }
 public function getArticles($user, $searchTerm, $page, $pageOffset, $category, $colors, $finder)
 {
     $boolQuery = new \Elastica\Query\BoolQuery();
     if ($category != NULL) {
         $categoryQuery = new \Elastica\Query\Terms();
         $categoryQuery->setTerms('custdata.customCatRef', array($category));
         $boolQuery->addMust($categoryQuery);
     }
     if ($searchTerm) {
         $fieldQuery = new \Elastica\Query\Match();
         $fieldQuery->setFieldQuery('customerRef', $user->getCustomerRef());
         $boolQuery->addMust($fieldQuery);
         $fieldQuery = new \Elastica\Query\Match();
         $fieldQuery->setFieldQuery('allField', $searchTerm);
         $fieldQuery->setFieldOperator('allField', 'AND');
         $fieldQuery->setFieldMinimumShouldMatch('allField', '70%');
         $fieldQuery->setFieldFuzziness('allField', '0.8');
         $fieldQuery->setFieldAnalyzer('allField', 'custom_search_analyzer');
         $boolQuery->addMust($fieldQuery);
     } else {
         $fieldQuery = new \Elastica\Query\MatchAll();
         $boolQuery->addMust($fieldQuery);
     }
     $fieldQuery = new \Elastica\Query\Nested();
     $fieldQuery->setPath('custdata.custcat.perm');
     $boolNested = new \Elastica\Query\BoolQuery();
     $fieldNested = new \Elastica\Query\Match();
     $fieldNested->setField('custdata.custcat.perm.permStatus', 1);
     $boolNested->addMust($fieldNested);
     $fieldNested = new \Elastica\Query\Match();
     $fieldNested->setField('custdata.custcat.perm.userRef', $user->getId());
     $boolNested->addMust($fieldNested);
     $fieldQuery->setQuery($boolNested);
     $boolQuery->addMust($fieldQuery);
     if ($colors != NULL) {
         $colorQuery = new \Elastica\Query\Terms();
         $colorQuery->setTerms('variants.variantvalues.otherTerms', $colors);
         $colorNested = new \Elastica\Query\Nested('variants');
         $colorNested->setPath('variants.variantvalues');
         $colorNested->setQuery($colorQuery);
         $boolQuery->addMust($colorNested);
     }
     $query = new \Elastica\Query();
     $query->setQuery($boolQuery);
     $query->setSize(12);
     $query->setFrom($pageOffset);
     $articles = $finder->find($query);
     $result = array("articles" => $articles, "rQuery" => $query);
     return $result;
 }
Example #4
0
 public function getBestImg($searchTerm, $articleRef, $colors, $finder)
 {
     $boolQuery = new \Elastica\Query\BoolQuery();
     if ($searchTerm) {
         $fieldQuery = new \Elastica\Query\Match();
         $fieldQuery->setFieldQuery('desc1', $searchTerm);
         $fieldQuery->setFieldOperator('desc1', 'OR');
         $fieldQuery->setFieldMinimumShouldMatch('desc1', '80%');
         $fieldQuery->setFieldAnalyzer('desc1', 'custom_search_analyzer');
         $boolQuery->addShould($fieldQuery);
         $fieldQuery = new \Elastica\Query\Match();
         $fieldQuery->setFieldQuery('desc2', $searchTerm);
         $fieldQuery->setFieldOperator('desc2', 'OR');
         $fieldQuery->setFieldMinimumShouldMatch('desc2', '80%');
         $fieldQuery->setFieldAnalyzer('desc2', 'custom_search_analyzer');
         $varTerms = explode(" ", $searchTerm);
         $boolQuery->addShould($fieldQuery);
         $colorQuery = new \Elastica\Query\Terms();
         $colorQuery->setTerms('variantvalues.otherTerms', $varTerms);
         $colorNested = new \Elastica\Query\Nested('variantvalues');
         $colorNested->setPath('variantvalues');
         $colorNested->setQuery($colorQuery);
         $boolQuery->addShould($colorNested);
         if ($colors != NULL) {
             $fieldQuery = new \Elastica\Query\Terms();
             $fieldQuery->setTerms('otherTerms', $colors);
             $boolQuery->addShould($fieldQuery);
         }
     }
     $articleRefQuery = new \Elastica\Query\Terms();
     $articleRefQuery->setTerms('articleRef', array($articleRef));
     $boolQuery->addMust($articleRefQuery);
     if ($colors != NULL) {
         $colorQuery = new \Elastica\Query\Terms();
         $colorQuery->setTerms('variantvalues.otherTerms', $colors);
         $colorNested = new \Elastica\Query\Nested('variantvalues');
         $colorNested->setPath('variantvalues');
         $colorNested->setQuery($colorQuery);
         $boolQuery->addMust($colorNested);
     }
     $query = new \Elastica\Query();
     $query->setQuery($boolQuery);
     $query->setSize(12);
     $articleVar = $finder->find($query);
     return $articleVar;
 }
Example #5
0
 public function searchAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $username = $request->query->get('oci_username');
     $password = $request->query->get('oci_password');
     $hookurl = $request->query->get('hookurl');
     $response = new Response();
     $response->headers->clearCookie('OCIHOOK');
     $response->headers->clearCookie('OrthCookie');
     $response->sendHeaders();
     $response->send();
     $response->headers->setCookie(new Cookie('OCIHOOK', $hookurl));
     $cookieValue = uniqid();
     $response->headers->setCookie(new Cookie('OrthCookie', uniqid()));
     $response->sendHeaders();
     $response->send();
     $query = $em->createQuery("SELECT u FROM Orth\\IndexBundle\\Entity\\Users u WHERE u.email = :username");
     $query->setParameter('username', $username);
     $user = $query->getOneOrNullResult();
     if ($user) {
         // Get the encoder for the users password
         $encoder_service = $this->get('security.encoder_factory');
         $encoder = $encoder_service->getEncoder($user);
         // Note the difference
         if ($encoder->isPasswordValid($user->getPassword(), $password, '$2a$12$uWepESKverBsrLAuOPY')) {
             // Get profile list
         } else {
             dump('fail1');
             exit;
         }
     } else {
         dump('fail');
         exit;
     }
     $token = new UsernamePasswordToken($user, null, "default", $user->getRoles());
     $this->get("security.context")->setToken($token);
     //now the user is logged in
     //now dispatch the login event
     $request = $this->get("request");
     $event = new InteractiveLoginEvent($request, $token);
     $this->get("event_dispatcher")->dispatch("security.interactive_login", $event);
     if ($request->query->get('FUNCTION') == NULL) {
         return $this->redirectToRoute('orth_index_homepage', array(), 301);
     }
     $searchTerm = $request->query->get('SEARCHSTRING');
     $page = 0;
     $pageOffset = 0;
     $catId = $request->query->get('cid');
     $finder = $this->container->get('fos_elastica.finder.search.article');
     $boolQuery = new \Elastica\Query\BoolQuery();
     if ($request->query->get('c') != NULL and $request->query->get('SEARCHSTRING') == NULL) {
         $catid = $request->query->get('c');
         $categoryArray = [$request->query->get('c')];
         $rootCategories = $em->getRepository('OrthIndexBundle:Categories')->findBy(array('parentId' => $catid));
         foreach ($rootCategories as $childCategory) {
             $childCategories = $em->getRepository('OrthIndexBundle:Categories')->findBy(array('parentId' => $childCategory->getId()));
             $categoryArray[] = $childCategory->getId();
             foreach ($childCategories as $grandchildCategory) {
                 $categoryArray[] = $grandchildCategory->getId();
             }
         }
         $categoryQuery = new \Elastica\Query\Terms();
         $categoryQuery->setTerms('catRef', $categoryArray);
         $boolQuery->addMust($categoryQuery);
     } elseif ($request->query->get('c') != NULL) {
         $catid = $request->query->get('c');
         $categoryQuery = new \Elastica\Query\Terms();
         $categoryQuery->setTerms('catRef', array($catid));
         $boolQuery->addMust($categoryQuery);
     }
     if ($request->query->get('SEARCHSTRING')) {
         $fieldQuery = new \Elastica\Query\Match();
         $fieldQuery->setFieldQuery('allField', $searchTerm);
         $fieldQuery->setFieldOperator('allField', 'AND');
         $fieldQuery->setFieldMinimumShouldMatch('allField', '80%');
         $fieldQuery->setFieldAnalyzer('allField', 'custom_search_analyzer');
         $boolQuery->addMust($fieldQuery);
     }
     $query = new \Elastica\Query();
     $query->setQuery($boolQuery);
     $totalpages = ceil(count($finder->find($query)) / 12);
     $query->setSize(100);
     $query->setFrom($pageOffset);
     $articles = $finder->find($query);
     foreach ($articles as $article) {
         $variants = $article->getVariants();
         foreach ($variants as $variant) {
             $price = $em->getRepository('OrthIndexBundle:ArticleSuppliers')->getCustomPrice(array('id' => $variant), $user);
             $category = $em->getRepository('OrthIndexBundle:Categories')->getRootCategory($article->getCategory()->getId());
             $attribute = "";
             foreach ($variant->getVariantvalues() as $values) {
                 $attribute .= " " . $values->getAttrname()->getAttributeName() . " " . $values->getAttributeValue() . "" . $values->getAttributeUnit();
             }
             if ($variant->getVariantvalues()) {
                 if ($article->getImages()[0]) {
                     $image = $article->getImages()[0]->getPicName();
                 } else {
                     $image = 'nopicture_all.jpg';
                 }
                 $result[] = array('shortName' => $article->getShortName() . "" . $attribute, 'articleNumber' => $variant->getSupplierArticleNumber(), 'price' => $price, 'category' => $category, 'image' => $image);
             }
         }
     }
     return $this->render('OrthIndexBundle:Oci:ocioutput.html.twig', array('results' => $result, 'page' => $page, 'totalpages' => $totalpages, 'hookurl' => $hookurl));
 }