';
echo $e;
}
/*
* input_admin_enqueue_scripts()
*
* This action is called in the admin_enqueue_scripts action on the edit screen where your field is created.
* Use this action to add css + javascript to assist your create_field() action.
*
* $info http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts
* @type action
* @since 3.6
* @date 23/01/13
*/
function input_admin_enqueue_scripts()
{
// Note: This function can be removed if not used
/// scripts
wp_enqueue_script( 'acf-input-table', $this->settings['dir_url'] . 'js/input-v4.js', array( 'jquery', 'acf-input' ), $this->settings['version'], true );
// styles
wp_register_style( 'acf-input-table', $this->settings['dir_url'] . 'css/input.css', array( 'acf-input' ), $this->settings['version'] );
wp_enqueue_style(array(
'acf-input-table',
));
}
/*
* create_options()
*
* Create extra options for your field. This is rendered when editing a field.
* The value of $field['name'] can be used (like bellow) to save extra data to the $field
*
* @type action
* @since 3.6
* @date 23/01/13
*
* @param $field - an array holding all the field's data
*/
function create_options($field)
{
// defaults?
/*
$field = array_merge($this->defaults, $field);
*/
// key is needed in the field names to correctly save the data
$key = $field['name'];
if ( empty( $field['use_header'] ) ) {
$field['use_header'] = 0;
}
if ( empty( $field['use_caption'] ) ) {
$field['use_caption'] = 2;
}
// Create Field Options HTML
// USE HEADER
echo '
';
echo '
';
echo '';
echo '
' . __( "Presetting the usage of table header", 'acf-table' ) . '
';
}
/*
* format_value()
*
* This filter is appied to the $value after it is loaded from the db and before it is passed to the create_field action
*
* @type filter
* @since 3.6
* @date 23/01/13
*
* @param $value - the value which was loaded from the database
* @param $post_id - the $post_id from which the value was loaded
* @param $field - the field array holding all the field options
*
* @return $value - the modified value
*/
function format_value_for_api( $value, $post_id, $field )
{
if ( is_string( $value ) ) {
// CHECK FOR GUTENBERG BLOCK CONTENT (URL ENCODED JSON) {
if ( substr( $value , 0 , 1 ) === '%' ) {
$value = urldecode( $value );
}
// }
$value = json_decode( $value, true ); // decode gutenberg JSONs, but also old table JSONs strings to array
}
$a = $value;
$value = false;
// IF BODY DATA
if (
null !== $a['b'] &&
count( $a['b'] ) > 0
) {
// IF HEADER DATA
if ( $a['p']['o']['uh'] === 1 ) {
$value['header'] = $a['h'];
}
else {
$value['header'] = false;
}
// IF CAPTION DATA
if (
! empty( $field['use_caption'] ) AND
$field['use_caption'] === 1 AND
! empty( $a['p']['ca'] )
) {
$value['caption'] = $a['p']['ca'];
}
else {
$value['caption'] = false;
}
// BODY
$value['body'] = $a['b'];
// IF SINGLE EMPTY CELL, THEN DO NOT RETURN TABLE DATA
if (
count( $a['b'] ) === 1
AND count( $a['b'][0] ) === 1
AND trim( $a['b'][0][0]['c'] ) === ''
) {
$value = false;
}
}
return $value;
}
/*
* update_value()
*
* This filter is appied to the $value before it is updated in the db
*
* @type filter
* @since 3.6
* @date 23/01/13
*
* @param $value - the value which will be saved in the database
* @param $post_id - the $post_id of which the value will be saved
* @param $field - the field array holding all the field options
*
* @return $value - the modified value
*/
function update_value($value, $post_id, $field)
{
if ( is_string( $value ) ) {
//$value = str_replace( '%5C', '%5C%5C', $value );
$value = urldecode( $value );
$value = json_decode( $value, true );
}
if ( is_array( $value ) ) {
$data = get_post_meta( $post_id, $field['name'], true );
if ( empty( $data ) ) {
$data = array();
}
if ( is_string( $data ) ) {
$data = json_decode( $data, true );
}
if ( isset( $value['header'] ) ) {
$data['h'] = $value['header'];
}
if ( isset( $value['body'] ) ) {
$data['b'] = $value['body'];
}
$value = array_replace_recursive( $data, $value );
}
return $value;
}
}
// create field
new acf_table_add_on();