Esempio n. 1
0
 public function getFilterFrontend(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter)
 {
     // init
     $script = $filterDefinition->getScriptPath() ?: $this->script;
     $rawValues = $productList->getGroupByValues('CategoryPath', true);
     $values = array();
     // ...
     $availableRelations = array();
     if ($filterDefinition->getAvailableCategories()) {
         foreach ($filterDefinition->getAvailableCategories() as $rel) {
             $availableRelations[$rel->getId()] = true;
         }
     }
     // prepare values
     foreach ($rawValues as $v) {
         $explode = explode(",", $v['value']);
         foreach ($explode as $e) {
             if (!empty($e) && (empty($availableRelations) || $availableRelations[$e] === true)) {
                 if ($values[$e]) {
                     $count = $values[$e]['count'] + $v['count'];
                 } else {
                     $count = $v['count'];
                 }
                 $values[$e] = array('value' => $e, "count" => $count);
             }
         }
     }
     // done
     return $this->view->partial($script, ['hideFilter' => $filterDefinition->getRequiredFilterField() && empty($currentFilter[$filterDefinition->getRequiredFilterField()]), 'label' => $filterDefinition->getLabel(), 'currentValue' => $currentFilter[$filterDefinition->getField()], 'values' => array_values($values), 'fieldname' => $filterDefinition->getField(), 'metaData' => $filterDefinition->getMetaData()]);
 }
Esempio n. 2
0
 public function getFilterFrontend(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter)
 {
     if ($filterDefinition->getScriptPath()) {
         $script = $filterDefinition->getScriptPath();
     } else {
         $script = $this->script;
     }
     $ranges = $filterDefinition->getRanges();
     $agefields = array('upperlimit' => $filterDefinition->getField(), 'lowerlimit' => $filterDefinition->getSecondfield());
     $groupByValues = $productList->getGroupByValues($agefields, true);
     $counts = array();
     foreach ($ranges->getData() as $row) {
         $counts[$row['from'] . "_" . $row['to']] = 0;
     }
     foreach ($groupByValues as $groupByValue) {
         foreach ($ranges->getData() as $row) {
             if ($row['from'] <= $groupByValue['lowerlimit'] && $row['to'] >= $groupByValue['lowerlimit'] || $row['from'] <= $groupByValue['upperlimit'] && $row['to'] >= $groupByValue['upperlimit'] || $row['from'] >= $groupByValue['lowerlimit'] && $row['to'] <= $groupByValue['upperlimit']) {
                 $counts[$row['from'] . "_" . $row['to']] += $groupByValue['count'];
             }
         }
     }
     $values = array();
     foreach ($ranges->getData() as $row) {
         if ($counts[$row['from'] . "_" . $row['to']]) {
             $values[] = array("from" => $row['from'], "to" => $row['to'], "label" => $this->createLabel($row), "count" => $counts[$row['from'] . "_" . $row['to']], "unit" => $filterDefinition->getUnit());
         }
     }
     $currentValue = "";
     if ($currentFilter[$filterDefinition->getField()]['from'] || $currentFilter[$filterDefinition->getField()]['to']) {
         $currentValue = implode($currentFilter[$filterDefinition->getField()], "-");
     }
     return $this->view->partial($script, array("hideFilter" => $filterDefinition->getRequiredFilterField() && empty($currentFilter[$filterDefinition->getRequiredFilterField()]), "label" => $filterDefinition->getLabel(), "currentValue" => $currentValue, "currentNiceValue" => $this->createLabel($currentFilter[$filterDefinition->getField()]), "unit" => $filterDefinition->getUnit(), "values" => $values, "definition" => $filterDefinition, "fieldname" => $filterDefinition->getField(), "secondfieldname" => $filterDefinition->getSecondfield()));
 }
Esempio n. 3
0
 public function getFilterFrontend(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter)
 {
     if ($filterDefinition->getScriptPath()) {
         $script = $filterDefinition->getScriptPath();
     } else {
         $script = $this->script;
     }
     return $this->view->partial($script, array("hideFilter" => $filterDefinition->getRequiredFilterField() && empty($currentFilter[$filterDefinition->getRequiredFilterField()]), "label" => $filterDefinition->getLabel(), "currentValue" => $currentFilter[$this->getField($filterDefinition)], "values" => $productList->getGroupByValues($this->getField($filterDefinition), true), "definition" => $filterDefinition, "fieldname" => $this->getField($filterDefinition), "metaData" => $filterDefinition->getMetaData()));
 }
Esempio n. 4
0
 public function getFilterFrontend(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter)
 {
     if ($filterDefinition->getScriptPath()) {
         $script = $filterDefinition->getScriptPath();
     } else {
         $script = $this->script;
     }
     $rawValues = $productList->getGroupBySystemValues($filterDefinition->getField(), true);
     $values = array();
     $availableRelations = array();
     if ($filterDefinition->getAvailableCategories()) {
         foreach ($filterDefinition->getAvailableCategories() as $rel) {
             $availableRelations[$rel->getId()] = true;
         }
     }
     foreach ($rawValues as $v) {
         $values[$v['value']] = array('value' => $v['value'], "count" => $v['count']);
     }
     return $this->view->partial($script, array("hideFilter" => $filterDefinition->getRequiredFilterField() && empty($currentFilter[$filterDefinition->getRequiredFilterField()]), "label" => $filterDefinition->getLabel(), "currentValue" => $currentFilter[$filterDefinition->getField()], "values" => array_values($values), "fieldname" => $filterDefinition->getField()));
 }
Esempio n. 5
0
 public function getFilterFrontend(OnlineShop_Framework_AbstractFilterDefinitionType $filterDefinition, OnlineShop_Framework_IProductList $productList, $currentFilter)
 {
     if ($filterDefinition->getScriptPath()) {
         $script = $filterDefinition->getScriptPath();
     } else {
         $script = $this->script;
     }
     $rawValues = $productList->getGroupByValues($filterDefinition->getField(), true);
     $values = array();
     foreach ($rawValues as $v) {
         $explode = explode(",", $v['value']);
         foreach ($explode as $e) {
             if (!empty($e)) {
                 if ($values[$e]) {
                     $count = $values[$e]['count'] + $v['count'];
                 } else {
                     $count = $v['count'];
                 }
                 $values[$e] = array('value' => $e, "count" => $count);
             }
         }
     }
     return $this->view->partial($script, array("hideFilter" => $filterDefinition->getRequiredFilterField() && empty($currentFilter[$filterDefinition->getRequiredFilterField()]), "label" => $filterDefinition->getLabel(), "currentValue" => $currentFilter[$filterDefinition->getField()], "values" => array_values($values), "fieldname" => $filterDefinition->getField(), "metaData" => $filterDefinition->getMetaData()));
 }