public function onFilterUpdate()
    {
        $this->defineFilterScopes();

        if (!$scope = post('scopeName')) {
            return;
        }

        $scope = $this->getScope($scope);

        switch ($scope->type) {
            case 'group':
                $active = $this->optionsFromAjax(post('options.active'));
                $this->setScopeValue($scope, $active);
                break;

            case 'checkbox':
                $checked = post('value') == 'true';
                $this->setScopeValue($scope, $checked);
                break;

            case 'switch':
                $value = post('value');
                $this->setScopeValue($scope, $value);
                break;

            case 'date':
                $dates = $this->datesFromAjax(post('options.dates'));

                if (!empty($dates)) {
                    list($date) = $dates;
                }
                else {
                    $date = null;
                }

                $this->setScopeValue($scope, $date);
                break;

            case 'daterange':
                $dates = $this->datesFromAjax(post('options.dates'));

                if (!empty($dates)) {
                    list($after, $before) = $dates;

                    $dates = [$after, $before];
                }
                else {
                    $dates = null;
                }

                $this->setScopeValue($scope, $dates);
                break;

            case 'number':
                $numbers = $this->numbersFromAjax(post('options.numbers'));

                if (!empty($numbers)) {
                    list($number) = $numbers;
                }
                else {
                    $number = null;
                }

                $this->setScopeValue($scope, $number);
                break;

            case 'numberrange':
                $numbers = $this->numbersFromAjax(post('options.numbers'));

                if (!empty($numbers)) {
                    list($min, $max) = $numbers;

                    $numbers = [$min, $max];
                }
                else {
                    $numbers = null;
                }

                $this->setScopeValue($scope, $numbers);
                break;

            case 'text':
                $values = post('options.value');

                if ($values !== null && $values !== '') {
                    list($value) = $values;
                }
                else {
                    $value = null;
                }

                $this->setScopeValue($scope, $value);
                break;
        }

        /*
         * Trigger class event, merge results as viewable array
         */
        $params = func_get_args();

        $result = $this->fireEvent('filter.update', [$params]);

        if ($result && is_array($result)) {
            return call_user_func_array('array_merge', $result);
        }
    }
public function onFilterUpdate()
    {
        $this->defineFilterScopes();

        if (!$scope = post('scopeName')) {
            return;
        }

        $scope = $this->getScope($scope);

        switch ($scope->type) {
            case 'group':
                $active = $this->optionsFromAjax(post('options.active'));
                $this->setScopeValue($scope, $active);
                break;

            case 'checkbox':
                $checked = post('value') == 'true';
                $this->setScopeValue($scope, $checked);
                break;

            case 'switch':
                $value = post('value');
                $this->setScopeValue($scope, $value);
                break;

            case 'date':
                $dates = $this->datesFromAjax(post('options.dates'));

                if (!empty($dates)) {
                    list($date) = $dates;
                }
                else {
                    $date = null;
                }

                $this->setScopeValue($scope, $date);
                break;

            case 'daterange':
                $dates = $this->datesFromAjax(post('options.dates'));

                if (!empty($dates)) {
                    list($after, $before) = $dates;

                    $dates = [$after, $before];
                }
                else {
                    $dates = null;
                }

                $this->setScopeValue($scope, $dates);
                break;

            case 'number':
                $numbers = $this->numbersFromAjax(post('options.numbers'));

                if (!empty($numbers)) {
                    list($number) = $numbers;
                }
                else {
                    $number = null;
                }

                $this->setScopeValue($scope, $number);
                break;

            case 'numberrange':
                $numbers = $this->numbersFromAjax(post('options.numbers'));

                if (!empty($numbers)) {
                    list($min, $max) = $numbers;

                    $numbers = [$min, $max];
                }
                else {
                    $numbers = null;
                }

                $this->setScopeValue($scope, $numbers);
                break;

            case 'text':
                $values = post('options.value');

                if ($values !== null && $values !== '') {
                    list($value) = $values;
                }
                else {
                    $value = null;
                }

                $this->setScopeValue($scope, $value);
                break;
        }

        /*
         * Trigger class event, merge results as viewable array
         */
        $params = func_get_args();

        $result = $this->fireEvent('filter.update', [$params]);

        if ($result && is_array($result)) {
            return call_user_func_array('array_merge', $result);
        }
    }
public function onFilterUpdate ( ) { $ this -> defineFilterScopes ( ) ; if ( ! $ scope = post ( 'scopeName' ) ) { return ; } $ scope = $ this -> getScope ( $ scope ) ; switch ( $ scope -> type ) { case 'group' : $ active = $ this -> optionsFromAjax ( post ( 'options.active' ) ) ; $ this -> setScopeValue ( $ scope , $ active ) ; break ; case 'checkbox' : $ checked = post ( 'value' ) == 'true' ; $ this -> setScopeValue ( $ scope , $ checked ) ; break ; case 'switch' : $ value = post ( 'value' ) ; $ this -> setScopeValue ( $ scope , $ value ) ; break ; case 'date' : $ dates = $ this -> datesFromAjax ( post ( 'options.dates' ) ) ; if ( ! empty ( $ dates ) ) { list ( $ date ) = $ dates ; } else { $ date = null ; } $ this -> setScopeValue ( $ scope , $ date ) ; break ; case 'daterange' : $ dates = $ this -> datesFromAjax ( post ( 'options.dates' ) ) ; if ( ! empty ( $ dates ) ) { list ( $ after , $ before ) = $ dates ; $ dates = [ $ after , $ before ] ; } else { $ dates = null ; } $ this -> setScopeValue ( $ scope , $ dates ) ; break ; case 'number' : $ numbers = $ this -> numbersFromAjax ( post ( 'options.numbers' ) ) ; if ( ! empty ( $ numbers ) ) { list ( $ number ) = $ numbers ; } else { $ number = null ; } $ this -> setScopeValue ( $ scope , $ number ) ; break ; case 'numberrange' : $ numbers = $ this -> numbersFromAjax ( post ( 'options.numbers' ) ) ; if ( ! empty ( $ numbers ) ) { list ( $ min , $ max ) = $ numbers ; $ numbers = [ $ min , $ max ] ; } else { $ numbers = null ; } $ this -> setScopeValue ( $ scope , $ numbers ) ; break ; case 'text' : $ values = post ( 'options.value' ) ; if ( $ values !== null && $ values !== '' ) { list ( $ value ) = $ values ; } else { $ value = null ; } $ this -> setScopeValue ( $ scope , $ value ) ; break ; } /*
         * Trigger class event, merge results as viewable array
         */ $ params = func_get_args ( ) ; $ result = $ this -> fireEvent ( 'filter.update' , [ $ params ] ) ; if ( $ result && is_array ( $ result ) ) { return call_user_func_array ( 'array_merge' , $ result ) ; } }
Update a filter scope value.
@return array
Update a filter scope value .