/**
  * {@inheritdoc}
  */
 public function match($categoryId)
 {
     if (!$categoryId) {
         throw new \InvalidArgumentException('Missing required parameter $categoryId');
     }
     $this->isAccessible = false;
     if (!$this->configAdapter->hasEnabledCategories()) {
         $this->isAccessible = true;
         return;
     }
     if (in_array($categoryId, $this->configAdapter->getEnabledCategoryIds())) {
         $this->isAccessible = true;
     }
 }
 /**
  * Query total number of currently selected articles
  *
  * @param $request
  * @return string
  */
 private function getTotalCount(\Enlight_Controller_Request_Request $request)
 {
     $groupIds = array();
     /** @var FilterGroupAbstract $group */
     foreach ($this->filterGroups as $group) {
         $groupIds[] = $group->getId();
     }
     $subCategories = $this->databaseAdapter->getSubcategories($request->sCategory);
     /** @var PDOStatement $stmt */
     $query = Shopware()->Models()->getDBALQueryBuilder()->select('COUNT(DISTINCT details.articleID) as cnt')->from('s_articles_details', 'details')->rightJoin('details', 's_articles', 'article', 'article.id = details.articleID AND article.active = 1')->innerJoin('details', 's_articles_categories', 'articleCategories', 'details.articleID = articleCategories.articleID AND articleCategories.categoryID IN (:subCategories)')->setParameter(':subCategories', $subCategories, Connection::PARAM_INT_ARRAY)->where('details.active = 1')->andWhere('details.instock >= :minStock')->setParameter(':minStock', (int) $this->configAdapter->getMinStock());
     foreach ($this->requireFilterGroups() as $group) {
         if (!$group->hasActiveOptions()) {
             continue;
         }
         $groupId = $group->getId();
         $optionIds = array();
         /** @var FilterOptionAbstract $option */
         foreach ($group->getOptions() as $option) {
             if (!$option->isActive()) {
                 continue;
             }
             $optionIds[] = $option->getId();
         }
         $tableAlias = 'optionRelations' . $groupId;
         $paramName = ':optionIds' . $groupId;
         $query->rightJoin('details', 's_article_configurator_option_relations', $tableAlias, $tableAlias . '.article_id = details.id AND ' . $tableAlias . '.option_id IN (' . $paramName . ')')->setParameter($paramName, $optionIds, Connection::PARAM_INT_ARRAY);
     }
     return $query->execute()->fetch(\PDO::FETCH_COLUMN);
 }