/** * Get scope id by code * * @param Dimension $dimension * @return int */ private function getScopeId($dimension) { if (is_numeric($dimension->getValue())) { return $dimension->getValue(); } else { return $this->scopeResolver->getScope($dimension->getValue())->getId(); } }
/** * @param Dimension $dimension * @return string */ private function generateExpression(Dimension $dimension) { $field = $dimension->getName(); $value = $dimension->getValue(); if ('scope' === $field) { $field = self::STORE_FIELD_NAME; $value = $this->scopeResolver->getScope($value)->getId(); } return $this->conditionManager->generateCondition('search_index.' . $field, '=', $value); }
/** * @param Dimension $dimension * @param AdapterInterface $adapter * @return string */ private function generateExpression(Dimension $dimension, AdapterInterface $adapter) { $identifier = $dimension->getName(); $value = $dimension->getValue(); if (self::DEFAULT_DIMENSION_NAME === $identifier) { $identifier = self::STORE_FIELD_NAME; $value = $this->scopeResolver->getScope($value)->getId(); } return sprintf('%s = %s', $adapter->quoteIdentifier($identifier), $adapter->quote($value)); }
public function testBuildDimensionWithDefaultScope() { $name = 'scope'; $value = \Magento\Framework\App\ScopeInterface::SCOPE_DEFAULT; $scopeId = -123456; $this->dimension->expects($this->once())->method('getName')->will($this->returnValue($name)); $this->dimension->expects($this->once())->method('getValue')->will($this->returnValue($value)); $this->scope->expects($this->once())->method('getId')->will($this->returnValue($scopeId)); $this->scopeResolver->expects($this->once())->method('getScope')->with($value)->will($this->returnValue($this->scope)); $query = $this->builder->build($this->dimension); $this->assertEquals(sprintf('`%s` = `%s`', \Magento\Framework\Search\Adapter\Mysql\Dimensions::STORE_FIELD_NAME, $scopeId), $query); }