本文整理汇总了PHP中PodsForm::number_field_types方法的典型用法代码示例。如果您正苦于以下问题:PHP PodsForm::number_field_types方法的具体用法?PHP PodsForm::number_field_types怎么用?PHP PodsForm::number_field_types使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PodsForm
的用法示例。
在下文中一共展示了PodsForm::number_field_types方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: remove_from
/**
* Remove an item from the values of a relationship field, remove a value from a number field (field-1), remove time to a date field
*
* @see PodsAPI::save_pod_item
*
* @param string $field Field name
* @param mixed $value ID(s) to add, int|float to add to number field, string for dates (-1 week), or string for text
* @param int $id (optional) ID of the pod item to update
*
* @return int The item ID
*
* @since 2.3.3
*/
public function remove_from($field, $value = null, $id = null)
{
$pod =& $this;
$fetch = false;
if (null === $id) {
$fetch = true;
$id = $this->id();
} elseif ($id != $this->id()) {
$pod = pods($this->pod, $id);
}
$this->do_hook('remove_from', $field, $value, $id);
if (!isset($this->fields[$field])) {
return $id;
}
// Tableless fields
if (in_array($this->fields[$field]['type'], PodsForm::tableless_field_types())) {
if (empty($value)) {
$value = array();
}
if (!empty($value)) {
if (!is_array($value)) {
$value = explode(',', $value);
}
if ('pick' == $this->fields[$field]['type'] && in_array($this->fields[$field]['pick_object'], PodsForm::field_method('pick', 'simple_objects'))) {
$current_value = $pod->raw($field);
if (!empty($current_value)) {
$current_value = (array) $current_value;
}
foreach ($current_value as $k => $v) {
if (in_array($v, $value)) {
unset($current_value[$k]);
}
}
$value = $current_value;
} else {
$related_ids = $this->api->lookup_related_items($this->fields[$field]['id'], $this->pod_data['id'], $id, $this->fields[$field], $this->pod_data);
foreach ($value as $k => $v) {
if (!preg_match('/[^0-9]/', $v)) {
$value[$k] = (int) $v;
} else {
}
}
foreach ($related_ids as $k => $v) {
if (in_array($v, $value)) {
unset($related_ids[$k]);
}
}
$value = $related_ids;
}
if (!empty($value)) {
$value = array_filter(array_unique($value));
} else {
$value = array();
}
}
} elseif (in_array($this->fields[$field]['type'], PodsForm::number_field_types())) {
// Date fields don't support empty for removing
if (empty($value)) {
return $id;
}
$current_value = (double) $pod->raw($field);
$value = $current_value - (double) $value;
} elseif (in_array($this->fields[$field]['type'], PodsForm::date_field_types())) {
// Date fields don't support empty for removing
if (empty($value)) {
return $id;
}
$current_value = $pod->raw($field);
if (0 < strlen($current_value)) {
$value = strtotime($value, strtotime($current_value));
} else {
$value = strtotime($value);
}
$value = date_i18n('Y-m-d h:i:s', $value);
}
// @todo handle object fields and taxonomies
$params = array('pod' => $this->pod, 'id' => $id, 'data' => array($field => $value));
$id = $this->api->save_pod_item($params);
if (0 < $id && $fetch) {
$pod->fetch($id, false);
}
return $id;
}