/** * Get the default filter conditions defined for the columns * * @return array */ public function getFiltersDefault() { $filters = []; // @todo skip this, if $grid->isUserFilterEnabled() ? if ($this->getRequest() instanceof ConsoleRequest || $this->getRequest() instanceof HttpRequest && !$this->getRequest()->isPost()) { foreach ($this->getColumns() as $column) { /* @var $column \ZfcDatagrid\Column\AbstractColumn */ if ($column->hasFilterDefaultValue() === true) { $filter = new Filter(); $filter->setFromColumn($column, $column->getFilterDefaultValue()); $filters[] = $filter; $column->setFilterActive($filter->getDisplayColumnValue()); } } } return $filters; }
public function testBetween() { $filter = new Filter(); $filter->setFromColumn($this->column, '2<>3'); $this->assertEquals(Filter::BETWEEN, $filter->getOperator()); $this->assertEquals('2 <> 3', $filter->getDisplayColumnValue()); $this->assertEquals(['2', '3'], $filter->getValues()); $filter = new Filter(); $filter->setFromColumn($this->column, '2<>3 <>4'); $this->assertEquals(Filter::BETWEEN, $filter->getOperator()); $this->assertEquals('2 <> 4', $filter->getDisplayColumnValue()); $this->assertEquals(['2', '4'], $filter->getValues()); }
/** * * @param array $columns * @return string */ public function __invoke(array $columns) { $return = []; foreach ($columns as $column) { /* @var $column \ZfcDatagrid\Column\AbstractColumn */ $options = ['name' => (string) $column->getUniqueId(), 'index' => (string) $column->getUniqueId(), 'label' => $this->translate((string) $column->getLabel()), 'width' => $column->getWidth(), 'hidden' => (bool) $column->isHidden(), 'sortable' => (bool) $column->isUserSortEnabled(), 'search' => (bool) $column->isUserFilterEnabled()]; /** * Formatting */ $formatter = $this->getFormatter($column); if ($formatter != '') { $options['formatter'] = (string) $formatter; } if ($column->getType() instanceof Type\Number) { $options['align'] = (string) 'right'; } /** * Cellattr */ $rendererParameters = $column->getRendererParameters('jqGrid'); if (isset($rendererParameters['cellattr'])) { $options['cellattr'] = (string) $rendererParameters['cellattr']; } /** * Filtering */ $searchoptions = []; $searchoptions['clearSearch'] = false; if ($column->hasFilterSelectOptions() === true) { $options['stype'] = 'select'; $searchoptions['value'] = $column->getFilterSelectOptions(); } if ($column->hasFilterDefaultValue() === true) { $filter = new \ZfcDatagrid\Filter(); $filter->setFromColumn($column, $column->getFilterDefaultValue()); $searchoptions['defaultValue'] = $filter->getDisplayColumnValue(); } if (count($searchoptions) > 0) { $options['searchoptions'] = $searchoptions; } /** * Because with json_encode we get problems, it's custom made! */ $colModel = []; foreach ($options as $key => $value) { if (is_array($value)) { $value = json_encode($value); } elseif (is_bool($value)) { if (true === $value) { $value = 'true'; } else { $value = 'false'; } } elseif ('formatter' == $key) { if (stripos($value, 'formatter') === false && stripos($value, 'function') === false) { $value = '"' . $value . '"'; } } elseif ('cellattr' == $key) { // SKIP THIS } else { $value = '"' . $value . '"'; } $colModel[] = (string) $key . ': ' . $value; } $return[] = '{' . implode(',', $colModel) . '}'; } return '[' . implode(',', $return) . ']'; }
/** * Get the default filter conditions defined for the columns * * @return Filter[] */ public function getFiltersDefault() { $filters = []; foreach ($this->getColumns() as $column) { /* @var $column \ZfcDatagrid\Column\AbstractColumn */ if ($column->hasFilterDefaultValue() === true) { $filter = new Filter(); $filter->setFromColumn($column, $column->getFilterDefaultValue()); $filters[] = $filter; $column->setFilterActive($filter->getDisplayColumnValue()); } } return $filters; }