示例#1
0
 /**
  * @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'));
 }
示例#2
0
 /**
  * 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'));
 }
示例#3
0
 /**
  * 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;
 }