abstract class Fieldmanager_Context_Storable extends Fieldmanager_Context (View source)

Base class for contexts that store data.

Properties

Fieldmanager_Field $fm

The base field associated with this context.

from  Fieldmanager_Context
string $uniqid

Unique ID of the form. Used for forms that are not built into WordPress.

from  Fieldmanager_Context
array $save_keys

Store the meta keys this field saves to, to catch naming conflicts.

from  Fieldmanager_Context
array $taxonomies_to_save

Taxonomies to save to.

Methods

__construct()

Instantiate this context.

string
nonce_key()

Get the nonce key for this field.

array
refresh_nonce(array $response)

Include a fresh nonce for this field in a response with refreshed nonces.

bool
is_valid_nonce()

Check if the nonce is valid. Returns false if the nonce is missing and throws an exception if it's invalid. If all goes well, returns true.

mixed
prepare_data(mixed $old_value = null, mixed $new_value = null, object $fm = null)

Prepare the data for saving.

string
render_field(array $args = array())

Render the field.

save(mixed $data = null)

Handle saving data for any context.

save_field(object $field, mixed $data)

Save a single field.

save_walk_children(object $field, mixed $data)

Walk group children to save when serialize_data => false.

mixed
load()

Handle loading data for any context.

mixed
load_field(object $field)

Load a single field.

mixed
load_walk_children(object $field)

Walk group children to load when serialize_data => false.

static string|array
sanitize_scalar_value(mixed $value)

Meta and options are always stored as strings, so it's best to ensure that scalar values get cast as strings to ensure that update_metadata() and update_option() are able to correctly compare the current value against the previous value.

string|array
get_data(int $data_id, string $data_key, bool $single = false)

Method to get data from the context's storage engine.

bool|int
add_data(int $data_id, string $data_key, mixed $data_value, bool $unique = false)

Method to add data to the context's storage engine.

mixed
update_data(int $data_id, string $data_key, mixed $data_value, mixed $data_prev_value = '')

Method to update the data in the context's storage engine.

bool
delete_data(int $data_id, string $data_key, mixed $data_value = '')

Method to delete data from the context's storage engine.

Details

__construct()

Instantiate this context.

protected string nonce_key()

Get the nonce key for this field.

Return Value

string

array refresh_nonce(array $response)

Since: 1.3.0

Include a fresh nonce for this field in a response with refreshed nonces.

Parameters

array $response

Response data.

Return Value

array

Updated response data.

protected bool is_valid_nonce()

Check if the nonce is valid. Returns false if the nonce is missing and throws an exception if it's invalid. If all goes well, returns true.

Return Value

bool

protected mixed prepare_data(mixed $old_value = null, mixed $new_value = null, object $fm = null)

Prepare the data for saving.

Parameters

mixed $old_value

Optional. The previous value.

mixed $new_value

Optional. The new value for the field.

object $fm

Optional. The Fieldmanager_Field to prepare.

Return Value

mixed

The filtered and sanitized value, safe to save.

protected string render_field(array $args = array())

Render the field.

Parameters

array $args

{ Optional. Arguments to adjust the rendering behavior.

@type mixed $data The existing data to display with the field. If
                  absent, data will be loaded using
                  Fieldmanager_Context::_load().
@type boolean $echo Output if true, return if false. Default is true.

}

Return Value

string

if $args['echo'] == false.

protected save(mixed $data = null)

Handle saving data for any context.

Parameters

mixed $data

Data to save. Should be raw, e.g. POST data.

protected save_field(object $field, mixed $data)

Save a single field.

Parameters

object $field

Fieldmanager field.

mixed $data

Data to save.

Exceptions

FM_Developer_Exception

protected save_walk_children(object $field, mixed $data)

Walk group children to save when serialize_data => false.

Parameters

object $field

Fieldmanager field.

mixed $data

Data to save.

protected mixed load()

Handle loading data for any context.

Return Value

mixed

The loaded data.

protected mixed load_field(object $field)

Load a single field.

Parameters

object $field

The Fieldmanager field for which to load data.

Return Value

mixed

Data stored for that field in this context.

protected mixed load_walk_children(object $field)

Walk group children to load when serialize_data => false.

Parameters

object $field

Fieldmanager field for which to load data.

Return Value

mixed

Data stored for a singular field with serialized data, or array of data for a groups's children.

static string|array sanitize_scalar_value(mixed $value)

Since: 1.2.0

Meta and options are always stored as strings, so it's best to ensure that scalar values get cast as strings to ensure that update_metadata() and update_option() are able to correctly compare the current value against the previous value.

Parameters

mixed $value

Value being stored.

Return Value

string|array

If $value is scalar, a string is returned. Otherwise, $value returns untouched.

abstract protected string|array get_data(int $data_id, string $data_key, bool $single = false)

Method to get data from the context's storage engine.

Parameters

int $data_id

The ID of the object holding the data, e.g. Post ID.

string $data_key

The key for the data, e.g. a meta_key.

bool $single

Optional. If true, only returns the first value found for the given data_key. This won't apply to every context. Default is false.

Return Value

string|array

The stored data. If no data is found, should return an empty string (""). {\get_post_meta()}.

abstract protected bool|int add_data(int $data_id, string $data_key, mixed $data_value, bool $unique = false)

Method to add data to the context's storage engine.

Parameters

int $data_id

The ID of the object holding the data, e.g. Post ID.

string $data_key

The key for the data, e.g. a meta_key.

mixed $data_value

The value to store.

bool $unique

Optional. If true, data will only be added if the object with the given $data_id doesn't already contain data for the given $data_key. This may not apply to every context. Default is false.

Return Value

bool|int

On success, should return the ID of the stored data (an integer, which will evaluate as true). If the $unique argument is set to true and data with the given key already exists, this should return false. {\add_post_meta()}.

abstract protected mixed update_data(int $data_id, string $data_key, mixed $data_value, mixed $data_prev_value = '')

Method to update the data in the context's storage engine.

Parameters

int $data_id

The ID of the object holding the data, e.g. Post ID.

string $data_key

The key for the data, e.g. a meta_key.

mixed $data_value

The value to store.

mixed $data_prev_value

Optional. Only update data if the previous value matches the data provided. This may not apply to every context.

Return Value

mixed

Should return data id if the data doesn't exist, otherwise should return true on success and false on failure. If the value passed to this method is the same as the stored value, this method should return false. {\update_post_meta()}.

abstract protected bool delete_data(int $data_id, string $data_key, mixed $data_value = '')

Method to delete data from the context's storage engine.

Parameters

int $data_id

The ID of the object holding the data, e.g. Post ID.

string $data_key

The key for the data, e.g. a meta_key.

mixed $data_value

Only delete the data if the stored value matches $data_value. This may not apply to every context.

Return Value

bool

False for failure. True for success. {\delete_post_meta()}.