name = 'focal_point'; $this->label = __('Focal Point'); $this->category = __("jQuery",'acf'); // Basic, Content, Choice, etc $this->defaults = array( 'save_format' => 'tag', 'preview_size' => 'large', 'image_size' => 'large' ); // settings $this->settings = array( 'path' => apply_filters('acf/helpers/get_path', __FILE__), 'dir' => apply_filters('acf/helpers/get_dir', __FILE__), 'version' => '1.0.0' ); // do not delete! parent::__construct(); } /* * create_options() * * Create extra options for your field. This is rendered when editing a field. * The value of $field['name'] can be used (like below) 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 ) { // Merge defaults $field = array_merge($this->defaults, $field); // Key is needed in the field names to correctly save the data $key = $field['name']; // Create Field Options HTML ?>

'radio', 'name' => 'fields['.$key.'][save_format]', 'value' => $field['save_format'], 'layout' => 'horizontal', 'choices' => array( 'object' => __("Image Object",'acf'), 'tag' => __("Image Tag",'acf') ) )); ?>

'select', 'name' => 'fields['.$key.'][image_size]', 'value' => $field['image_size'], 'choices' => apply_filters('acf/get_image_sizes', array()) )); ?>

'select', 'name' => 'fields['.$key.'][preview_size]', 'value' => $field['preview_size'], 'choices' => apply_filters('acf/get_image_sizes', array()) )); ?> defaults, $field); // Get set image id $id = (isset($field['value']['id'])) ? $field['value']['id'] : ''; // data vars $data = array( 'top' => isset($field['value']['top']) ? $field['value']['top'] : '', 'left' => isset($field['value']['left']) ? $field['value']['left'] : '', 'right' => isset($field['value']['right']) ? $field['value']['right'] : '', 'bottom' => isset($field['value']['bottom']) ? $field['value']['bottom'] : '', ); // If we already have an image set... if ($id) { // Get image by ID, in size set via options $img = wp_get_attachment_image_src($id, $field['preview_size']); } // If image found... // Set to hide add image button / show canvas $is_active = ($id) ? 'active' : ''; // And set src $url = ($id) ? $img[0] : ''; // create Field HTML ?>
$d): ?>

settings['dir'] . 'js/input.js', array('acf-input'), $this->settings['version'] ); wp_register_style( 'acf-input-focal_point', $this->settings['dir'] . 'css/input.css', array('acf-input'), $this->settings['version'] ); // scripts wp_enqueue_script( array('acf-input-focal_point') ); // styles wp_enqueue_style( array('acf-input-focal_point') ); } /* * format_value_for_api() * * This filter is applied to the $value after it is loaded from the db and before it is passed back to the API functions such as the_field * * @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 ) { // Merge defaults $field = array_merge($this->defaults, $field); // validate if( !$value ) { return false; } // Get image ID $id = $value['id']; // If returning an image tag... if ($field['save_format'] == 'tag') { // Get image object at desired size $src = wp_get_attachment_image_src( $id, $field['image_size']); // Get image alt $alt = get_post_meta($id, '_wp_attachment_image_alt', true); // Create tag $tag = ''; // Return tag $value = $tag; } // Otherwise if returning an object... elseif ($field['save_format'] == 'object') { // Get image object $src = wp_get_attachment_image_src( $id, 'full' ); // validate if( !$src ) { return false; } // Get attachment values $attachment = get_post( $id ); // Build return obj $value = array( 'id' => $attachment->ID, 'focal_point' => array( 'class' => 'js-focal-point-image', 'top' => $value['top'], 'left' => $value['left'], 'right' => $value['right'], 'bottom' => $value['bottom'] ), 'alt' => get_post_meta($attachment->ID, '_wp_attachment_image_alt', true), 'title' => $attachment->post_title, 'caption' => $attachment->post_excerpt, 'description' => $attachment->post_content, 'mime_type' => $attachment->post_mime_type, 'url' => $src[0], 'width' => $src[1], 'height' => $src[2], 'sizes' => array(), ); // Gind all image sizes $image_sizes = get_intermediate_image_sizes(); // If we have some image sizes... if ($image_sizes) { // Loop through each one... foreach ($image_sizes as $image_size) { // Get image obj for each size $src = wp_get_attachment_image_src( $id, $image_size ); // Add img obj values to return obj sizes $value['sizes'][$image_size] = $src[0]; $value['sizes'][$image_size.'-width'] = $src[1]; $value['sizes'][$image_size.'-height'] = $src[2]; } } // end if } // end elseif return $value; } } // create field new acf_field_focal_point(); ?>