Example #1
0
 /**
  * Traces the search result into the s_statistic_search
  *
  * @param Criteria $criteria
  * @param ProductNumberSearchResult $result
  * @param Shop $shop
  */
 public function logResult(Criteria $criteria, ProductNumberSearchResult $result, Shop $shop)
 {
     if (!$criteria->hasCondition('search')) {
         return;
     }
     /* @var $condition SearchTermCondition */
     $condition = $criteria->getCondition('search');
     $now = new \DateTime();
     $this->connection->insert('s_statistics_search', ['datum' => $now->format('Y-m-d H:i:s'), 'searchterm' => $condition->getTerm(), 'results' => $result->getTotalCount(), 'shop_id' => $shop->getId()]);
 }
Example #2
0
 /**
  * @param SearchBundle\ProductNumberSearchResult $searchResult
  * @param $orderNumber
  * @param $categoryId
  * @param StoreFrontBundle\Struct\ProductContextInterface $context
  * @return array
  */
 private function buildNavigation(SearchBundle\ProductNumberSearchResult $searchResult, $orderNumber, $categoryId, StoreFrontBundle\Struct\ProductContextInterface $context)
 {
     $products = $searchResult->getProducts();
     $products = array_values($products);
     if (empty($products)) {
         return array();
     }
     /** @var $currentProduct BaseProduct */
     foreach ($products as $index => $currentProduct) {
         if ($currentProduct->getNumber() != $orderNumber) {
             continue;
         }
         $previousProduct = isset($products[$index - 1]) ? $products[$index - 1] : null;
         $nextProduct = isset($products[$index + 1]) ? $products[$index + 1] : null;
         $navigation = array();
         if ($previousProduct) {
             $previousProduct = $this->listProductService->get($previousProduct->getNumber(), $context);
             $navigation["previousProduct"]["orderNumber"] = $previousProduct->getNumber();
             $navigation["previousProduct"]["link"] = $this->config->get('sBASEFILE') . "?sViewport=detail&sDetails=" . $previousProduct->getId() . "&sCategory=" . $categoryId;
             $navigation["previousProduct"]["name"] = $previousProduct->getName();
             $previousCover = $previousProduct->getCover();
             if ($previousCover) {
                 $navigation["previousProduct"]["image"] = $this->legacyStructConverter->convertMediaStruct($previousCover);
             }
         }
         if ($nextProduct) {
             $nextProduct = $this->listProductService->get($nextProduct->getNumber(), $context);
             $navigation["nextProduct"]["orderNumber"] = $nextProduct->getNumber();
             $navigation["nextProduct"]["link"] = $this->config->get('sBASEFILE') . "?sViewport=detail&sDetails=" . $nextProduct->getId() . "&sCategory=" . $categoryId;
             $navigation["nextProduct"]["name"] = $nextProduct->getName();
             $nextCover = $nextProduct->getCover();
             if ($nextCover) {
                 $navigation["nextProduct"]["image"] = $this->legacyStructConverter->convertMediaStruct($nextCover);
             }
         }
         $navigation["currentListing"]["position"] = $index + 1;
         $navigation["currentListing"]["totalCount"] = $searchResult->getTotalCount();
         return $navigation;
     }
     return array();
 }
Example #3
0
 /**
  * @param ProductNumberSearchResult $result
  * @param $expectedNumbers
  */
 protected function assertSearchResult(ProductNumberSearchResult $result, $expectedNumbers)
 {
     $this->assertCount(count($expectedNumbers), $result->getProducts());
     $this->assertEquals(count($expectedNumbers), $result->getTotalCount());
     foreach ($result->getProducts() as $product) {
         $this->assertContains($product->getNumber(), $expectedNumbers);
     }
 }