コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
ファイル: FilterTest.php プロジェクト: rezix/ZfcDatagrid
 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());
 }
コード例 #3
0
ファイル: Columns.php プロジェクト: rezix/ZfcDatagrid
 /**
  *
  * @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) . ']';
 }
コード例 #4
0
 /**
  * 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;
 }