Esempio n. 1
0
 /**
  * {@inheritdoc}
  */
 public function getOrderBySnippet(FilterDataInterface $filterData)
 {
     /** @var SingleChoiceFilterData $filterData */
     $value = $filterData->getValue();
     $choices = $filterData->getChoices();
     if (is_scalar($value) && isset($choices[$value])) {
         return sprintf('%s %s', $choices[$value]['field'], strtoupper($choices[$value]['order']));
     }
     return null;
 }
Esempio n. 2
0
 /**
  * {@inheritdoc}
  */
 public function getWhereSnippet(FilterDataInterface $filterData)
 {
     $values = $filterData->getValue();
     $clauses = [];
     $parameters = [];
     foreach ($values as $value) {
         $parameter = Container::camelize($this->getConfig()['field'] . '_' . $value);
         $clauses[] = sprintf("%s = :%s", $this->getConfig()['field'], $parameter);
         $parameters[$parameter] = $value;
     }
     return ['snippet' => '(' . implode(' OR ', $clauses) . ')', 'parameters' => $parameters];
 }
Esempio n. 3
0
 /**
  * {@inheritdoc}
  */
 public function getWhereSnippet(FilterDataInterface $filterData)
 {
     $values = explode(',', $filterData->getValue());
     $from = $values[0];
     $to = isset($values[1]) ? $values[1] : null;
     $parameters = [];
     $parameterFrom = Container::camelize($this->getConfig()['field'] . '_from');
     $parameterTo = Container::camelize($this->getConfig()['field'] . '_to');
     if ($from !== null && $to !== null) {
         $parameters[$parameterFrom] = $from;
         $parameters[$parameterTo] = $to;
         $snippet = sprintf("%s BETWEEN :%s AND :%s", $this->getConfig()['field'], $parameterFrom, $parameterTo);
     } elseif ($from !== null) {
         $parameters[$parameterFrom] = $from;
         $snippet = sprintf("%s >= :%s", $this->getConfig()['field'], $parameterFrom);
     } else {
         $parameters[$parameterTo] = $to;
         $snippet = sprintf("%s <= :%s", $this->getConfig()['field'], $parameterTo);
     }
     return ['snippet' => $snippet, 'parameters' => $parameters];
 }
Esempio n. 4
0
 /**
  * {@inheritdoc}
  */
 public function getPager(FilterDataInterface $filterData, $resultsCount)
 {
     $page = $filterData->getValue();
     $page = $page > 1 ? $page : 1;
     return new Pager($page, $this->getConfig()['items_per_page'], $resultsCount);
 }
Esempio n. 5
0
 /**
  * {@inheritdoc}
  */
 public function getWhereSnippet(FilterDataInterface $filterData)
 {
     $parameter = Container::camelize($this->getConfig()['field']);
     return ['snippet' => sprintf("%s = :%s", $this->getConfig()['field'], $parameter), 'parameters' => [$parameter => $filterData->getValue()]];
 }