public function addCondition(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter, $params, $isPrecondition = false) { $rawValue = $params[$filterDefinition->getField()]; if (!empty($rawValue) && $rawValue != OnlineShop_Framework_FilterService_AbstractFilterType::EMPTY_STRING) { $values = explode("-", $rawValue); $value['from'] = trim($values[0]); $value['to'] = trim($values[1]); } else { if ($rawValue == OnlineShop_Framework_FilterService_AbstractFilterType::EMPTY_STRING) { $value = null; } else { $value['from'] = $filterDefinition->getPreSelectFrom(); $value['to'] = $filterDefinition->getPreSelectTo(); } } $currentFilter[$filterDefinition->getField()] = $value; if (!empty($value)) { if (!empty($value['from'])) { if ($isPrecondition) { $productList->addCondition($filterDefinition->getField() . " >= " . $productList->quote($value['from']), "PRECONDITION_" . $filterDefinition->getField()); } else { $productList->addCondition($filterDefinition->getField() . " >= " . $productList->quote($value['from']), $filterDefinition->getField()); } } if (!empty($value['to'])) { if ($isPrecondition) { $productList->addCondition($filterDefinition->getField() . " <= " . $productList->quote($value['to']), "PRECONDITION_" . $filterDefinition->getField()); } else { $productList->addCondition($filterDefinition->getField() . " <= " . $productList->quote($value['to']), $filterDefinition->getField()); } } } return $currentFilter; }
public function addCondition(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter, $params, $isPrecondition = false) { $field = $this->getField($filterDefinition); $value = $params[$field]; if (empty($value)) { $value['from'] = $filterDefinition->getPreSelectFrom(); $value['to'] = $filterDefinition->getPreSelectTo(); } $currentFilter[$field] = $value; if (!empty($value)) { if (!empty($value['from'])) { if ($isPrecondition) { $productList->addCondition($this->getField($filterDefinition) . " >= " . $productList->quote($value['from']), "PRECONDITION_" . $this->getField($filterDefinition)); } else { $productList->addCondition($this->getField($filterDefinition) . " >= " . $productList->quote($value['from']), $this->getField($filterDefinition)); } } if (!empty($value['to'])) { if ($isPrecondition) { $productList->addCondition($this->getField($filterDefinition) . " <= " . $productList->quote($value['to']), "PRECONDITION_" . $this->getField($filterDefinition)); } else { $productList->addCondition($this->getField($filterDefinition) . " <= " . $productList->quote($value['to']), $this->getField($filterDefinition)); } } } return $currentFilter; }
public function addCondition(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter, $params, $isPrecondition = false) { $field = $this->getField($filterDefinition); $preSelect = $this->getPreSelect($filterDefinition); $value = $params[$field]; if (empty($value) && !$params['is_reload']) { $o = $preSelect; if (!empty($o)) { if (is_object($o)) { $value = $o->getId(); } else { $value = $o; } } } else { if ($value == OnlineShop_Framework_FilterService_AbstractFilterType::EMPTY_STRING) { $value = null; } } $currentFilter[$field] = $value; if (!empty($value)) { // if($isPrecondition) { // $productList->addRelationCondition("PRECONDITION_" . $filterDefinition->getField(), "dest = " . $productList->quote($value)); // } else { $productList->addRelationCondition($field, "dest = " . $productList->quote($value)); // } } return $currentFilter; }
public function addCondition(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter, $params, $isPrecondition = false) { $field = $this->getField($filterDefinition); $preSelect = $this->getPreSelect($filterDefinition); $value = $params[$field]; if ($value == OnlineShop_Framework_FilterService_AbstractFilterType::EMPTY_STRING) { $value = null; } else { if (empty($value) && !$params['is_reload']) { $value = $preSelect; } } $value = trim($value); $currentFilter[$field] = $value; if (!empty($value)) { if ($isPrecondition) { $productList->addCondition("TRIM(`" . $field . "`) LIKE " . $productList->quote("%" . $value . "%"), "PRECONDITION_" . $field); } else { $productList->addCondition("TRIM(`" . $field . "`) LIKE " . $productList->quote("%" . $value . "%"), $field); } } return $currentFilter; }
public function addCondition(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter, $params, $isPrecondition = false) { $value = $params[$filterDefinition->getField()]; if ($value == OnlineShop_Framework_FilterService_AbstractFilterType::EMPTY_STRING) { $value = null; } else { if (empty($value) && !$params['is_reload']) { $value = $filterDefinition->getPreSelect(); if (is_object($value)) { $value = $value->getId(); } } } $currentFilter[$filterDefinition->getField()] = $value; if (!empty($value)) { $value = "%," . trim($value) . ",%"; if ($isPrecondition) { $productList->addCondition($filterDefinition->getField() . " LIKE " . $productList->quote($value), "PRECONDITION_" . $filterDefinition->getField()); } else { $productList->addCondition($filterDefinition->getField() . " LIKE " . $productList->quote($value), $filterDefinition->getField()); } } return $currentFilter; }
public function addCondition(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter, $params, $isPrecondition = false) { $field = $this->getField($filterDefinition); $preSelect = $this->getPreSelect($filterDefinition); $value = $params[$field]; if (empty($value) && !$params['is_reload']) { $objects = $preSelect; $value = array(); if (!is_array($objects)) { $objects = explode(",", $objects); } if (is_array($objects)) { foreach ($objects as $o) { if (is_object($o)) { $value[] = $o->getId(); } else { $value[] = $o; } } } } else { if (!empty($value) && in_array(OnlineShop_Framework_FilterService_AbstractFilterType::EMPTY_STRING, $value)) { $value = null; } } $currentFilter[$field] = $value; if (!empty($value)) { $quotedValues = array(); foreach ($value as $v) { if (!empty($v)) { $quotedValues[] = $productList->quote($v); } } if (!empty($quotedValues)) { if ($filterDefinition->getUseAndCondition()) { foreach ($quotedValues as $value) { $productList->addRelationCondition($field, "dest = " . $value); } } else { $productList->addRelationCondition($field, "dest IN (" . implode(",", $quotedValues) . ")"); } } } return $currentFilter; }
/** * @param OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition * @param OnlineShop_Framework_IProductList $productList * @param array $currentFilter * @param $params * @param bool $isPrecondition * * @return string[] */ public function addCondition(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter, $params, $isPrecondition = false) { $field = $this->getField($filterDefinition); $preSelect = $this->getPreSelect($filterDefinition); $value = $params[$field]; if (empty($value) && !$params['is_reload']) { if (is_array($preSelect)) { $value = $preSelect; } else { $value = explode(",", $preSelect); } foreach ($value as $key => $v) { if (!$v) { unset($value[$key]); } } } else { if (!empty($value) && in_array(OnlineShop_Framework_FilterService_AbstractFilterType::EMPTY_STRING, $value)) { $value = null; } } // $value = trim($value); $currentFilter[$field] = $value; if (!empty($value)) { $quotedValues = array(); foreach ($value as $v) { $v = "%" . OnlineShop_Framework_IndexService_Tenant_IWorker::MULTISELECT_DELIMITER . $v . OnlineShop_Framework_IndexService_Tenant_IWorker::MULTISELECT_DELIMITER . "%"; $quotedValues[] = $field . ' like ' . $productList->quote($v); } if ($filterDefinition->getUseAndCondition()) { $quotedValues = implode(' and ', $quotedValues); } else { $quotedValues = implode(' or ', $quotedValues); } $quotedValues = '(' . $quotedValues . ')'; if (!empty($quotedValues)) { if ($isPrecondition) { $productList->addCondition($quotedValues, "PRECONDITION_" . $field); } else { $productList->addCondition($quotedValues, $field); } } } return $currentFilter; }
public function addCondition(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter, $params, $isPrecondition = false) { $field = $this->getField($filterDefinition); $preSelect = $this->getPreSelect($filterDefinition); $value = $params[$field]; if (empty($value) && !$params['is_reload']) { if (!empty($preSelect) || $preSelect == '0') { $value = explode(",", $preSelect); } } else { if (!empty($value) && in_array(OnlineShop_Framework_FilterService_AbstractFilterType::EMPTY_STRING, $value)) { $value = null; } } $currentFilter[$field] = $value; if (!empty($value)) { $quotedValues = array(); foreach ($value as $v) { if (!empty($v)) { $quotedValues[] = $productList->quote($v); } } if (!empty($quotedValues)) { if ($filterDefinition->getUseAndCondition()) { foreach ($quotedValues as $value) { if ($isPrecondition) { $productList->addCondition($field . " = " . $value, "PRECONDITION_" . $field); } else { $productList->addCondition($field . " = " . $value, $field); } } } else { if ($isPrecondition) { $productList->addCondition($field . " IN (" . implode(",", $quotedValues) . ")", "PRECONDITION_" . $field); } else { $productList->addCondition($field . " IN (" . implode(",", $quotedValues) . ")", $field); } } } } return $currentFilter; }