private function createBottomHeadingRow(array $rows)
    {
        $elements = array();

        if ($this->options[self::GRID_PARAM_BATCH] === true) {
            $elements[] = $this->createColumn(null, null);
        }

        foreach ($rows as $row) {
            // Ignore if configuration for current column isn't provided
            if (!$this->hasColumnConfiguration($row[self::GRID_PARAM_COLUMN])) {
                continue;
            }

            // Find out whether a column needs to have a filter
            $filter = $this->findOptionByColumn($row[self::GRID_PARAM_COLUMN], self::GRID_PARAM_FILTER);

            // Use provided name if available, otherwise name it as a column
            $inputName = isset($row[self::GRID_PARAM_NAME]) ? $row[self::GRID_PARAM_NAME] : $row[self::GRID_PARAM_COLUMN];

            // Full-qualified input name
            $name = $this->createInputName(self::GRID_PARAM_FILTER, $inputName);

            if ($filter) {
                // If filter is array, then assume its for select
                $selected = $this->filter->get($inputName);

                if (is_array($filter)) {
                    $filter = array_replace(array('' => ''), $filter);
                    $elements[] = $this->createInput('createHeader', $row[self::GRID_PARAM_COLUMN], $name, $selected, $filter);
                    // If explicit boolean filter provided
                } else if ($filter === 'boolean') {
                    $options = array(
                        '0' => 'No',
                        '1' => 'Yes'
                    );

                    // Translate boolean values on demand
                    if ($this->hasTranslator()) {
                        $options = $this->translator->translateArray($options);
                    }

                    $filter = array_replace(array('' => ''), $options);
                    $elements[] = $this->createInput('createHeader', $row[self::GRID_PARAM_COLUMN], $name, $selected, $filter);
                    
                } else {
                    $elements[] = $this->createInput('createHeader', $row[self::GRID_PARAM_COLUMN], $name, $selected);
                }

            } else {
                $elements[] = $this->createColumn(null, '');
            }
        }

        if ($this->hasActions()) {
            $elements[] = $this->createTextHeader('');
        }

        return $this->createTableRow($elements);
    }
private function createBottomHeadingRow(array $rows)
    {
        $elements = array();

        if ($this->options[self::GRID_PARAM_BATCH] === true) {
            $elements[] = $this->createColumn(null, null);
        }

        foreach ($rows as $row) {
            // Ignore if configuration for current column isn't provided
            if (!$this->hasColumnConfiguration($row[self::GRID_PARAM_COLUMN])) {
                continue;
            }

            // Find out whether a column needs to have a filter
            $filter = $this->findOptionByColumn($row[self::GRID_PARAM_COLUMN], self::GRID_PARAM_FILTER);

            // Use provided name if available, otherwise name it as a column
            $inputName = isset($row[self::GRID_PARAM_NAME]) ? $row[self::GRID_PARAM_NAME] : $row[self::GRID_PARAM_COLUMN];

            // Full-qualified input name
            $name = $this->createInputName(self::GRID_PARAM_FILTER, $inputName);

            if ($filter) {
                // If filter is array, then assume its for select
                $selected = $this->filter->get($inputName);

                if (is_array($filter)) {
                    $filter = array_replace(array('' => ''), $filter);
                    $elements[] = $this->createInput('createHeader', $row[self::GRID_PARAM_COLUMN], $name, $selected, $filter);
                    // If explicit boolean filter provided
                } else if ($filter === 'boolean') {
                    $options = array(
                        '0' => 'No',
                        '1' => 'Yes'
                    );

                    // Translate boolean values on demand
                    if ($this->hasTranslator()) {
                        $options = $this->translator->translateArray($options);
                    }

                    $filter = array_replace(array('' => ''), $options);
                    $elements[] = $this->createInput('createHeader', $row[self::GRID_PARAM_COLUMN], $name, $selected, $filter);
                    
                } else {
                    $elements[] = $this->createInput('createHeader', $row[self::GRID_PARAM_COLUMN], $name, $selected);
                }

            } else {
                $elements[] = $this->createColumn(null, '');
            }
        }

        if ($this->hasActions()) {
            $elements[] = $this->createTextHeader('');
        }

        return $this->createTableRow($elements);
    }
private function createBottomHeadingRow ( array $ rows ) { $ elements = array ( ) ; if ( $ this -> options [ self :: GRID_PARAM_BATCH ] === true ) { $ elements [ ] = $ this -> createColumn ( null , null ) ; } foreach ( $ rows as $ row ) { // Ignore if configuration for current column isn't provided if ( ! $ this -> hasColumnConfiguration ( $ row [ self :: GRID_PARAM_COLUMN ] ) ) { continue ; } // Find out whether a column needs to have a filter $ filter = $ this -> findOptionByColumn ( $ row [ self :: GRID_PARAM_COLUMN ] , self :: GRID_PARAM_FILTER ) ; // Use provided name if available, otherwise name it as a column $ inputName = isset ( $ row [ self :: GRID_PARAM_NAME ] ) ? $ row [ self :: GRID_PARAM_NAME ] : $ row [ self :: GRID_PARAM_COLUMN ] ; // Full-qualified input name $ name = $ this -> createInputName ( self :: GRID_PARAM_FILTER , $ inputName ) ; if ( $ filter ) { // If filter is array, then assume its for select $ selected = $ this -> filter -> get ( $ inputName ) ; if ( is_array ( $ filter ) ) { $ filter = array_replace ( array ( '' => '' ) , $ filter ) ; $ elements [ ] = $ this -> createInput ( 'createHeader' , $ row [ self :: GRID_PARAM_COLUMN ] , $ name , $ selected , $ filter ) ; // If explicit boolean filter provided } else if ( $ filter === 'boolean' ) { $ options = array ( '0' => 'No' , '1' => 'Yes' ) ; // Translate boolean values on demand if ( $ this -> hasTranslator ( ) ) { $ options = $ this -> translator -> translateArray ( $ options ) ; } $ filter = array_replace ( array ( '' => '' ) , $ options ) ; $ elements [ ] = $ this -> createInput ( 'createHeader' , $ row [ self :: GRID_PARAM_COLUMN ] , $ name , $ selected , $ filter ) ; } else { $ elements [ ] = $ this -> createInput ( 'createHeader' , $ row [ self :: GRID_PARAM_COLUMN ] , $ name , $ selected ) ; } } else { $ elements [ ] = $ this -> createColumn ( null , '' ) ; } } if ( $ this -> hasActions ( ) ) { $ elements [ ] = $ this -> createTextHeader ( '' ) ; } return $ this -> createTableRow ( $ elements ) ; }
Creates filtering row right after column captions

@param array $rows
@return string
Creates filtering row right after column captions