name = 'focal_point'; /* * label (string) Multiple words, can include spaces, visible when selecting a field type */ $this->label = __('Focal Point', 'acf-focal_point'); /* * category (string) basic | content | choice | relational | jquery | layout | CUSTOM GROUP NAME */ $this->category = 'jquery'; /* * defaults (array) Array of default settings which are merged into the field object. These are used later in settings */ $this->defaults = array( 'save_format' => 'tag', 'preview_size' => 'large', 'image_size' => 'large' ); /* * l10n (array) Array of strings that are used in JavaScript. This allows JS strings to be translated in PHP and loaded via: * var message = acf._e('focal_point', 'error'); */ $this->l10n = array(); // do not delete! parent::__construct(); } /* * render_field_settings() * * Create extra settings for your field. These are visible when editing a field * * @type action * @since 3.6 * @date 23/01/13 * * @param $field (array) the $field being edited * @return n/a */ function render_field_settings( $field ) { /* * acf_render_field_setting * * This function will create a setting for your field. Simply pass the $field parameter and an array of field settings. * The array of settings does not require a `value` or `prefix`; These settings are found from the $field array. * * More than one setting can be added by copy/paste the above code. * Please note that you must also have a matching $defaults value for the field name (font_size) */ // Render return value radio acf_render_field_setting( $field, array( 'label' => __('Return Value','acf-focal_point'), 'instructions' => __('Specify the returned value on front end','acf-focal_point'), 'type' => 'radio', 'name' => 'save_format', 'layout' => 'horizontal', 'choices' => array( 'object' => __("Image Object",'acf'), 'tag' => __("Image Tag",'acf') ) )); // Render return size select acf_render_field_setting( $field, array( 'label' => __('Image Size','acf-focal_point'), 'instructions' => __('Size of image when returning an image tag','acf-focal_point'), 'type' => 'select', 'name' => 'image_size', 'choices' => acf_get_image_sizes() )); // Render preview size select acf_render_field_setting( $field, array( 'label' => __('Preview Size','acf-focal_point'), 'instructions' => __('Image used to create a Focal Point. Should be around the same image ratio as Image Size','acf-focal_point'), 'type' => 'select', 'name' => 'preview_size', 'choices' => acf_get_image_sizes() )); } /* * render_field() * * Create the HTML interface for your field * * @param $field (array) the $field being rendered * * @type action * @since 3.6 * @date 23/01/13 * * @param $field (array) the $field being edited * @return n/a */ function render_field( $field ) { // Merge defaults $field = array_merge($this->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 ?>