first commit
This commit is contained in:
+112
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
/**
|
||||
* Image control class. This control allows users to set an image. It passes the attachment
|
||||
* ID the setting, so you'll need a custom control class if you want to store anything else,
|
||||
* such as the URL or other data.
|
||||
*
|
||||
* @package ButterBean
|
||||
* @author Justin Tadlock <justin@justintadlock.com>
|
||||
* @copyright Copyright (c) 2015-2016, Justin Tadlock
|
||||
* @link https://github.com/justintadlock/butterbean
|
||||
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*/
|
||||
|
||||
/**
|
||||
* Image control class.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access public
|
||||
*/
|
||||
class ButterBean_Control_Image extends ButterBean_Control {
|
||||
|
||||
/**
|
||||
* The type of control.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access public
|
||||
* @var string
|
||||
*/
|
||||
public $type = 'image';
|
||||
|
||||
/**
|
||||
* Array of text labels to use for the media upload frame.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access public
|
||||
* @var string
|
||||
*/
|
||||
public $l10n = array();
|
||||
|
||||
/**
|
||||
* Image size to display. If the size isn't found for the image,
|
||||
* the full size of the image will be output.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access public
|
||||
* @var string
|
||||
*/
|
||||
public $size = 'large';
|
||||
|
||||
/**
|
||||
* Creates a new control object.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access public
|
||||
* @param object $manager
|
||||
* @param string $name
|
||||
* @param array $args
|
||||
* @return void
|
||||
*/
|
||||
public function __construct( $manager, $name, $args = array() ) {
|
||||
parent::__construct( $manager, $name, $args );
|
||||
|
||||
$this->l10n = wp_parse_args(
|
||||
$this->l10n,
|
||||
array(
|
||||
'upload' => esc_html__( 'Add image', 'butterbean' ),
|
||||
'set' => esc_html__( 'Set as image', 'butterbean' ),
|
||||
'choose' => esc_html__( 'Choose image', 'butterbean' ),
|
||||
'change' => esc_html__( 'Change image', 'butterbean' ),
|
||||
'remove' => esc_html__( 'Remove image', 'butterbean' ),
|
||||
'placeholder' => esc_html__( 'No image selected', 'butterbean' )
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue scripts/styles for the control.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function enqueue() {
|
||||
|
||||
wp_enqueue_script( 'media-views' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds custom data to the json array.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function to_json() {
|
||||
parent::to_json();
|
||||
|
||||
$this->json['l10n'] = $this->l10n;
|
||||
$this->json['size'] = $this->size;
|
||||
|
||||
$value = $this->get_value();
|
||||
$image = $alt = '';
|
||||
|
||||
if ( $value ) {
|
||||
$image = wp_get_attachment_image_src( absint( $value ), $this->size );
|
||||
$alt = get_post_meta( absint( $value ), '_wp_attachment_image_alt', true );
|
||||
}
|
||||
|
||||
$this->json['src'] = $image ? esc_url( $image[0] ) : '';
|
||||
$this->json['alt'] = $alt ? esc_attr( $alt ) : '';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user