PodsAPI::export_pod_item PHP Method

export_pod_item() public method

See also: pods() Export a pod item $params['pod'] string The Pod name $params['id'] int The item's ID from the wp_pods_* table $params['fields'] array The fields to export $params['depth'] int How many levels deep to export data
Since: 1.12
public export_pod_item ( array $params, object $pod = null ) : integer
$params array An associative array of parameters
$pod object (optional) Pods object
return integer The table row ID
    public function export_pod_item($params, $pod = null)
    {
        if (!is_object($pod) || 'Pods' != get_class($pod)) {
            if (empty($params)) {
                return false;
            }
            $params = (object) pods_sanitize($params);
            $pod = pods($params->pod, $params->id, false);
            if (empty($pod)) {
                return false;
            }
        }
        $fields = (array) pods_var_raw('fields', $params, array(), null, true);
        $depth = (int) pods_var_raw('depth', $params, 2, null, true);
        $object_fields = (array) pods_var_raw('object_fields', $pod->pod_data, array(), null, true);
        $flatten = (bool) pods_var('flatten', $params, false, null, true);
        if (empty($fields)) {
            $fields = $pod->fields;
            $fields = array_merge($fields, $object_fields);
        }
        $data = $this->export_pod_item_level($pod, $fields, $depth, $flatten);
        $data = $this->do_hook('export_pod_item', $data, $pod->pod, $pod->id(), $pod, $fields, $depth, $flatten);
        return $data;
    }

Usage Example

Example #1
0
 /**
  * Export an item's data
  *
  * @see PodsAPI::export_pod_item
  *
  * @param array $fields (optional) Fields to export
  * @param int $id (optional) ID of the pod item to export
  *
  * @return array|bool Data array of the exported pod item
  *
  * @since 2.0
  * @link http://pods.io/docs/export/
  */
 public function export($fields = null, $id = null, $format = null)
 {
     $params = array('pod' => $this->pod, 'id' => $id, 'fields' => null, 'depth' => 2, 'flatten' => false);
     if (is_array($fields) && (isset($fields['fields']) || isset($fields['depth']))) {
         $params = array_merge($params, $fields);
     } else {
         $params['fields'] = $fields;
     }
     if (isset($params['fields']) && is_array($params['fields']) && !in_array($this->pod_data['field_id'], $params['fields'])) {
         $params['fields'] = array_merge(array($this->pod_data['field_id']), $params['fields']);
     }
     if (null === $params['id']) {
         $params['id'] = $this->id();
     }
     $params = (array) $this->do_hook('export', $params);
     if (empty($params['id'])) {
         return false;
     }
     $data = $this->api->export_pod_item($params);
     if (!empty($format)) {
         if ('json' == $format) {
             $data = json_encode((array) $data);
         }
         // @todo more formats
     }
     return $data;
 }