id() public method

Return the item ID
Since: 2.0
public id ( ) : integer
return integer
Exemplo n.º 1
0
 /**
  * @param $object_type
  * @param null $_null
  * @param int $object_id
  * @param string $meta_key
  * @param string $meta_value
  * @param bool $delete_all
  *
  * @return null
  */
 public function delete_meta($object_type, $_null = null, $object_id = 0, $meta_key = '', $meta_value = '', $delete_all = false)
 {
     if (pods_tableless()) {
         return $_null;
     }
     $object = $this->get_object($object_type, $object_id);
     if (empty($object_id) || empty($object) || !isset($object['fields'][$meta_key])) {
         return $_null;
     }
     // @todo handle $delete_all (delete the field values from all pod items)
     if (!empty($meta_value) && in_array($object['fields'][$meta_key]['type'], PodsForm::tableless_field_types())) {
         if (!is_object(self::$current_field_pod) || self::$current_field_pod->pod != $object['name']) {
             self::$current_field_pod = pods($object['name'], $object_id);
         } elseif (self::$current_field_pod->id() != $object_id) {
             self::$current_field_pod->fetch($object_id);
         }
         $pod = self::$current_field_pod;
         $pod->remove_from($meta_key, $meta_value);
     } else {
         if (!is_object(self::$current_field_pod) || self::$current_field_pod->pod != $object['name']) {
             self::$current_field_pod = pods($object['name']);
         }
         $pod = self::$current_field_pod;
         $pod->save(array($meta_key => null), null, $object_id);
     }
     return $_null;
 }
Exemplo n.º 2
0
 /**
  * Get an offset if already set or traverse Pod and then set plus reutrn.
  *
  * @since 0.1.0
  *
  * @param mixed $offset Offset to get
  *
  * @return mixed
  */
 public function offsetGet($offset)
 {
     if ($this->offsetExists($offset)) {
         return parent::offsetGet($offset);
     } else {
         if ('id' == $offset || 'ID' == $offset) {
             $_value = $this->pod->id();
         } else {
             $_value = $this->pod->field($offset);
         }
         if ($_value) {
             parent::offsetSet($offset, $_value);
             return $_value;
         }
     }
 }
 /**
  * @param $code
  * @param bool|array $row
  *
  * @return mixed
  */
 public function do_template($code, $row = false)
 {
     if (is_object($this->pod) && 1 == 0 && 0 < $this->pod->id()) {
         return $this->pod->do_magic_tags($code);
     } else {
         if (false !== $row) {
             $this->temp_row = $this->row;
             $this->row = $row;
         }
         $code = preg_replace_callback("/({@(.*?)})/m", array($this, "do_magic_tags"), $code);
         if (false !== $row) {
             $this->row = $this->temp_row;
             unset($this->temp_row);
         }
     }
     return $code;
 }
Exemplo n.º 4
0
 /**
  * Export a pod item by depth level
  *
  * @param Pods $pod Pods object
  * @param array $fields Fields to export
  * @param int $depth Depth limit
  * @param boolean $flatten Whether to flatten arrays for display
  * @param int $current_depth Current depth level
  *
  * @return array Data array
  *
  * @since 2.3
  */
 private function export_pod_item_level($pod, $fields, $depth, $flatten = false, $current_depth = 1)
 {
     $tableless_field_types = PodsForm::tableless_field_types();
     $simple_tableless_objects = PodsForm::simple_tableless_objects();
     $object_fields = (array) pods_var_raw('object_fields', $pod->pod_data, array(), null, true);
     $export_fields = array();
     foreach ($fields as $k => $field) {
         if (!is_array($field)) {
             $field = array('id' => 0, 'name' => $field);
         }
         if (isset($pod->fields[$field['name']])) {
             $field = $pod->fields[$field['name']];
             $field['lookup_name'] = $field['name'];
             if (in_array($field['type'], $tableless_field_types) && !in_array(pods_var('pick_object', $field), $simple_tableless_objects)) {
                 if ('pick' == $field['type']) {
                     if (empty($field['table_info'])) {
                         $field['table_info'] = $this->get_table_info(pods_var_raw('pick_object', $field), pods_var_raw('pick_val', $field), null, null, $field);
                     }
                     if (!empty($field['table_info'])) {
                         $field['lookup_name'] .= '.' . $field['table_info']['field_id'];
                     }
                 } elseif (in_array($field['type'], PodsForm::file_field_types())) {
                     $field['lookup_name'] .= '.guid';
                 }
             }
             $export_fields[$field['name']] = $field;
         } elseif (isset($object_fields[$field['name']])) {
             $field = $object_fields[$field['name']];
             $field['lookup_name'] = $field['name'];
             $export_fields[$field['name']] = $field;
         } elseif ($field['name'] == $pod->pod_data['field_id']) {
             $field['type'] = 'number';
             $field['lookup_name'] = $field['name'];
             $export_fields[$field['name']] = $field;
         }
     }
     $data = array();
     foreach ($export_fields as $field) {
         // Return IDs (or guid for files) if only one level deep
         if (1 == $depth) {
             $data[$field['name']] = $pod->field(array('name' => $field['lookup_name'], 'output' => 'arrays'));
         } elseif ((-1 == $depth || $current_depth < $depth) && 'pick' == $field['type'] && !in_array(pods_var('pick_object', $field), $simple_tableless_objects)) {
             $related_data = array();
             $related_ids = $pod->field(array('name' => $field['name'], 'output' => 'ids'));
             if (!empty($related_ids)) {
                 $related_ids = (array) $related_ids;
                 $pick_object = pods_var_raw('pick_object', $field);
                 $related_pod = pods(pods_var_raw('pick_val', $field), null, false);
                 // If this isn't a Pod, return data exactly as Pods does normally
                 if (empty($related_pod) || 'pod' != $pick_object && $pick_object != $related_pod->pod_data['type'] || $related_pod->pod == $pod->pod) {
                     $related_data = $pod->field(array('name' => $field['name'], 'output' => 'arrays'));
                 } else {
                     $related_object_fields = (array) pods_var_raw('object_fields', $related_pod->pod_data, array(), null, true);
                     $related_fields = array_merge($related_pod->fields, $related_object_fields);
                     foreach ($related_ids as $related_id) {
                         if ($related_pod->fetch($related_id)) {
                             $related_item = $this->export_pod_item_level($related_pod, $related_fields, $depth, $flatten, $current_depth + 1);
                             $related_data[$related_id] = $this->do_hook('export_pod_item_level', $related_item, $related_pod->pod, $related_pod->id(), $related_pod, $related_fields, $depth, $flatten, $current_depth + 1);
                         }
                     }
                     if ($flatten && !empty($related_data)) {
                         $related_data = pods_serial_comma(array_values($related_data), array('and' => '', 'field_index' => $related_pod->pod_data['field_index']));
                     }
                 }
             }
             $data[$field['name']] = $related_data;
         } else {
             $data[$field['name']] = $pod->field(array('name' => $field['name'], 'output' => 'arrays'));
         }
         if ($flatten && is_array($data[$field['name']])) {
             $data[$field['name']] = pods_serial_comma($data[$field['name']], array('field' => $field['name'], 'fields' => $export_fields, 'and' => ''));
         }
     }
     $data['id'] = (int) $pod->id();
     return $data;
 }