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);
}