/** * @return FiltersManager */ protected function getFiltersManager() { $container = new FiltersContainer(); $choices = [['label' => 'Stock ASC', 'field' => 'stock', 'order' => 'asc', 'default' => false, 'mode' => null], ['label' => 'Stock DESC', 'field' => 'stock', 'order' => 'desc', 'default' => true, 'mode' => null], ['label' => 'Stock Keyed', 'field' => 'stock', 'order' => 'desc', 'default' => false, 'key' => 'foo', 'mode' => null], ['label' => 'Items ASC', 'field' => 'items', 'order' => 'asc', 'default' => false, 'mode' => 'min'], ['label' => 'Items ASC', 'field' => 'items', 'order' => 'desc', 'default' => false, 'mode' => 'max'], ['label' => 'Items ASC', 'field' => 'items', 'order' => 'asc', 'default' => false, 'mode' => 'avg'], ['label' => 'Items ASC', 'field' => 'items', 'order' => 'asc', 'default' => false, 'mode' => 'sum'], ['label' => 'Items ASC', 'field' => 'words', 'order' => 'asc', 'default' => false, 'mode' => 'min'], ['label' => 'Items ASC', 'field' => 'words', 'order' => 'asc', 'default' => false, 'mode' => 'max'], ['label' => 'Items ASC', 'field' => 'words', 'order' => 'asc', 'default' => false, 'mode' => 'avg'], ['label' => 'Items ASC', 'field' => 'words', 'order' => 'asc', 'default' => false, 'mode' => 'sum']]; $filter = new Sort(); $filter->setRequestField('sort'); $filter->setChoices($choices); $container->set('sorting', $filter); return new FiltersManager($container, $this->getManager()->getRepository('AcmeTestBundle:Product')); }
/** * Returns filter manager. * * @param array $options * * @return FiltersManager */ protected function getFiltersManager(array $options) { $container = new FiltersContainer(); $choices = [['label' => 'Stock ASC', 'field' => 'stock', 'order' => 'asc', 'default' => false, 'mode' => null]]; $filter = new Pager(); $filter->setRequestField('page'); if (isset($options['count_per_page'])) { $filter->setCountPerPage($options['count_per_page']); } if (isset($options['max_pages'])) { $filter->setMaxPages($options['max_pages']); } $container->set('pager', $filter); $sort = new Sort(); $sort->setRequestField('sort'); $sort->setChoices($choices); $container->set('sorting', $sort); return new FiltersManager($container, $this->getManager()->getRepository('AcmeTestBundle:Product')); }
/** * Returns filter managers. * * @return FiltersManager[] */ protected function getFilterManager() { $managers = []; $container = new FiltersContainer(); $choices = [['label' => 'Stock ASC', 'field' => 'price', 'order' => 'asc', 'default' => false, 'mode' => null]]; $filter = new Range(); $filter->setRequestField('range'); $filter->setField('price'); $container->set('range', $filter); $filter = new Range(); $filter->setRequestField('inclusive_range'); $filter->setField('price'); $filter->setInclusive(true); $container->set('inclusive_range', $filter); $sort = new Sort(); $sort->setRequestField('sort'); $sort->setChoices($choices); $container->set('sorting', $sort); $managers['range'] = new FiltersManager($container, $this->getManager()->getRepository('AcmeTestBundle:Product')); $managers['bar_range'] = self::createClient()->getContainer()->get('ongr_filter_manager.bar_filters'); return $managers; }