Pods::filters PHP 메소드

filters() 공개 메소드

Return a filter form for searching a Pod
부터: 2.0
public filters ( $params = null ) : string
리턴 string Filters HTML
    public function filters($params = null)
    {
        $defaults = array('fields' => $params, 'label' => '', 'action' => '', 'search' => '');
        if (is_array($params)) {
            $params = array_merge($defaults, $params);
        } else {
            $params = $defaults;
        }
        $pod =& $this;
        $params = apply_filters('pods_filters_params', $params, $pod);
        $fields = $params['fields'];
        if (null !== $fields && !is_array($fields) && 0 < strlen($fields)) {
            $fields = explode(',', $fields);
        }
        $object_fields = (array) pods_var_raw('object_fields', $this->pod_data, array(), null, true);
        // Force array
        if (empty($fields)) {
            $fields = array();
        } else {
            $filter_fields = $fields;
            // Temporary
            $fields = array();
            foreach ($filter_fields as $k => $field) {
                $name = $k;
                $defaults = array('name' => $name);
                if (!is_array($field)) {
                    $name = $field;
                    $field = array('name' => $name);
                }
                $field = array_merge($defaults, $field);
                $field['name'] = trim($field['name']);
                if (pods_var_raw('hidden', $field, false, null, true)) {
                    $field['type'] = 'hidden';
                }
                if (isset($object_fields[$field['name']])) {
                    $fields[$field['name']] = array_merge($object_fields[$field['name']], $field);
                } elseif (isset($this->fields[$field['name']])) {
                    $fields[$field['name']] = array_merge($this->fields[$field['name']], $field);
                }
            }
            unset($filter_fields);
            // Cleanup
        }
        $this->filters = array_keys($fields);
        $label = $params['label'];
        if (strlen($label) < 1) {
            $label = __('Search', 'pods');
        }
        $action = $params['action'];
        $search = trim($params['search']);
        if (strlen($search) < 1) {
            $search = pods_var_raw($pod->search_var, 'get', '');
        }
        ob_start();
        pods_view(PODS_DIR . 'ui/front/filters.php', compact(array_keys(get_defined_vars())));
        $output = ob_get_clean();
        /**
         * Filter the HTML output of filters()
         *
         * @since unknown
         *
         * @param string $output
         * @param array $params Params array passed to filters().
         * @param object|Pods $this Current Pods object.
         */
        return apply_filters('pods_pods_filters', $output, $params, $this);
    }