/** * Execute per test cleanup */ public function tearDown() { /** @var \Magento\Framework\Registry $registry */ $registry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\\Framework\\Registry'); $registry->unregister('isSecureArea'); $registry->register('isSecureArea', true); $this->productCollection->addFieldToFilter('entity_id', ['in' => [10, 11, 12]])->delete(); unset($this->productCollection); $registry->unregister('isSecureArea'); $registry->register('isSecureArea', false); }
/** * Add filtering * * @param string $field * @param null|string $condition * @return $this */ public function addFieldToFilter($field, $condition = null) { if ($field == 'link_title') { $conditionSql = $this->_getConditionSql('l.title', $condition); $this->getSelect()->where($conditionSql); } else { parent::addFieldToFilter($field, $condition); } return $this; }
/** * Helper function that adds a FilterGroup to the collection. * * @param FilterGroup $filterGroup * @param Collection $collection * @return void * @throws \Magento\Framework\Exception\InputException */ protected function addFilterGroupToCollection(FilterGroup $filterGroup, Collection $collection) { $fields = []; foreach ($filterGroup->getFilters() as $filter) { $condition = $filter->getConditionType() ? $filter->getConditionType() : 'eq'; $field = $this->translateField($filter->getField()); $fields[] = array('attribute' => $field, $condition => $filter->getValue()); } if ($fields) { $collection->addFieldToFilter($fields); } }
/** * Helper function that adds a FilterGroup to the collection. * * @param \Magento\Framework\Api\Search\FilterGroup $filterGroup * @param Collection $collection * @return void */ protected function addFilterGroupToCollection(\Magento\Framework\Api\Search\FilterGroup $filterGroup, Collection $collection) { $fields = []; foreach ($filterGroup->getFilters() as $filter) { $condition = $filter->getConditionType() ? $filter->getConditionType() : 'eq'; $fields[] = ['attribute' => $filter->getField(), $condition => $filter->getValue()]; } if ($fields) { $collection->addFieldToFilter($fields); } }
/** * @inheritdoc */ protected function _renderFiltersBefore() { $this->requestBuilder->bindDimension('scope', $this->getStoreId()); if ($this->queryText) { $this->requestBuilder->bind('search_term', $this->queryText); } $priceRangeCalculation = $this->_scopeConfig->getValue(\Magento\Catalog\Model\Layer\Filter\Dynamic\AlgorithmFactory::XML_PATH_RANGE_CALCULATION, \Magento\Store\Model\ScopeInterface::SCOPE_STORE); if ($priceRangeCalculation) { $this->requestBuilder->bind('price_dynamic_algorithm', $priceRangeCalculation); } $this->requestBuilder->setRequestName('quick_search_container'); $queryRequest = $this->requestBuilder->create(); $this->queryResponse = $this->searchEngine->search($queryRequest); $ids = [0]; /** @var \Magento\Framework\Search\Document $document */ foreach ($this->queryResponse as $document) { $ids[] = $document->getId(); } parent::addFieldToFilter('entity_id', ['in' => $ids]); $this->_totalRecords = count($ids) - 1; if ($this->order && $this->order['field'] == 'relevance') { $this->getSelect()->order(new \Zend_Db_Expr($this->_conn->quoteInto('FIELD(e.entity_id, ?) ' . $this->order['dir'], $ids))); } return parent::_renderFiltersBefore(); }