public function getCountByPrices($includeAppliedFilters) { // get price filters $k = 0; $filters = array(); $config = $this->application->getConfig(); while ($config->isValueSet('PRICE_FILTER_NAME_' . ++$k)) { if ($config->get('PRICE_FILTER_NAME_' . $k) && !is_array($config->get('PRICE_FILTER_NAME_' . $k))) { $from = $config->get('PRICE_FILTER_FROM_' . $k); $to = $config->get('PRICE_FILTER_TO_' . $k); if ($to) { $filters[$k] = array($from, $to); } } } if (!$filters) { return array(); } // get product counts $selectFilter = $this->productFilter->getSelectFilter(!$includeAppliedFilters); $selectFilter->removeFieldList(); $selectFilter->setLimit(0); $query = new ARSelectQueryBuilder(); $query->includeTable('Product'); $query->joinTable('ProductPrice', 'Product', 'productID AND (ProductPrice.currencyID = "' . $this->application->getDefaultCurrencyCode() . '")', 'ID'); $query->joinTable('Category', 'Product', 'ID', 'categoryID'); foreach ($filters as $key => $filter) { $query->addField('SUM(ProductPrice.price >= ' . $filter[0] . ' AND ProductPrice.price <= ' . $filter[1] . ')', null, $key); } $query->setFilter($selectFilter); $data = ActiveRecordModel::getDataBySQL($query->getPreparedStatement(ActiveRecordModel::getDBConnection())); //$data = array_diff($data[0], array(0)); return $data[0]; }
public function open() { try { $this->db = ActiveRecordModel::getDBConnection(); $this->db->sessionHandler = $this; return true; } catch (SQLException $e) { return false; } }