Pods::view PHP Method

view() public method

Since: 2.3.10
public view ( array $fields = null ) : mixed
$fields array (optional) Fields to show in the view, defaults to all fields
return mixed
    public function view($fields = null)
    {
        $pod =& $this;
        // Convert comma separated list of fields to an array
        if (null !== $fields && !is_array($fields) && 0 < strlen($fields)) {
            $fields = explode(',', $fields);
        }
        $object_fields = (array) pods_v('object_fields', $this->pod_data, array(), true);
        if (empty($fields)) {
            // Add core object fields if $fields is empty
            $fields = array_merge($object_fields, $this->fields);
        }
        $view_fields = $fields;
        // Temporary
        $fields = array();
        foreach ($view_fields as $name => $field) {
            $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 (empty($field['name'])) {
                $field['name'] = trim($name);
            }
            if (isset($object_fields[$field['name']])) {
                $field = array_merge($field, $object_fields[$field['name']]);
            } elseif (isset($this->fields[$field['name']])) {
                $field = array_merge($this->fields[$field['name']], $field);
            }
            if (pods_v('hidden', $field, false, null, true) || 'hidden' == $field['type']) {
                continue;
            } elseif (!PodsForm::permission($field['type'], $field['name'], $field['options'], $fields, $pod, $pod->id())) {
                continue;
            }
            $fields[$field['name']] = $field;
        }
        unset($view_fields);
        // Cleanup
        $output = pods_view(PODS_DIR . 'ui/front/view.php', compact(array_keys(get_defined_vars())), false, 'cache', true);
        return $this->do_hook('view', $output, $fields, $this->id());
    }