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