/** * Return query (and its params) which is used to filter options * * @return array */ protected function getOptionsAvailabilityCondition() { $conditions = array(); $params = array(); foreach ($this->disabledOptions as $category => $options) { $condition = 'c.category = :category' . $category; $params['category' . $category] = $category; list($keys, $options) = \XLite\Core\Database::prepareArray($options, $category); $condition .= ' AND c.name IN (' . implode(',', $keys) . ')'; $params += $options; $conditions[] = 'NOT (' . $condition . ')'; } return array(empty($conditions) ? null : '(' . implode(') AND (', $conditions) . ')', $params); }