public function filter(&$value) {
        $accepted_types = optional_param_array('accepted_types', '', PARAM_RAW);
        if (isset($value['children'])) {
            if (!empty($value['children'])) {
                $value['children'] = array_filter($value['children'], array($this, 'filter'));
            }
            return true; // always return directories
        } else {
            if ($accepted_types == '*' or empty($accepted_types)
                or (is_array($accepted_types) and in_array('*', $accepted_types))) {
                return true;
            } else {
                foreach ($accepted_types as $ext) {
                    if (preg_match('#'.$ext.'$#i', $value['title'])) {
                        return true;
                    }
                }
            }
        }
        return false;
    }
public function filter(&$value) {
        $accepted_types = optional_param_array('accepted_types', '', PARAM_RAW);
        if (isset($value['children'])) {
            if (!empty($value['children'])) {
                $value['children'] = array_filter($value['children'], array($this, 'filter'));
            }
            return true; // always return directories
        } else {
            if ($accepted_types == '*' or empty($accepted_types)
                or (is_array($accepted_types) and in_array('*', $accepted_types))) {
                return true;
            } else {
                foreach ($accepted_types as $ext) {
                    if (preg_match('#'.$ext.'$#i', $value['title'])) {
                        return true;
                    }
                }
            }
        }
        return false;
    }
public function filter ( & $ value ) { $ accepted_types = optional_param_array ( 'accepted_types' , '' , PARAM_RAW ) ; if ( isset ( $ value [ 'children' ] ) ) { if ( ! empty ( $ value [ 'children' ] ) ) { $ value [ 'children' ] = array_filter ( $ value [ 'children' ] , array ( $ this , 'filter' ) ) ; } return true ; // always return directories } else { if ( $ accepted_types == '*' or empty ( $ accepted_types ) or ( is_array ( $ accepted_types ) and in_array ( '*' , $ accepted_types ) ) ) { return true ; } else { foreach ( $ accepted_types as $ ext ) { if ( preg_match ( '#' . $ ext . '$#i' , $ value [ 'title' ] ) ) { return true ; } } } } return false ; }
Filter file listing to display specific types

@param array $value
@return bool
Filter file listing to display specific types