| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- /**
- * Custom logo uploader control for the Customizer.
- *
- * @package Jetpack
- */
- class Site_Logo_Image_Control extends WP_Customize_Control {
- /**
- * Constructor for our custom control.
- *
- * @param object $wp_customize
- * @param string $control_id
- * @param array $args
- * @uses Site_Logo_Image_Control::l10n()
- */
- public function __construct( $wp_customize, $control_id, $args = array() ) {
- // declare these first so they can be overridden
- $this->l10n = array(
- 'upload' => __( 'Add logo', 'jetpack' ),
- 'set' => __( 'Set as logo', 'jetpack' ),
- 'choose' => __( 'Choose logo', 'jetpack' ),
- 'change' => __( 'Change logo', 'jetpack' ),
- 'remove' => __( 'Remove logo', 'jetpack' ),
- 'placeholder' => __( 'No logo set', 'jetpack' ),
- );
- parent::__construct( $wp_customize, $control_id, $args );
- }
- /**
- * This will be critical for our JS constructor.
- */
- public $type = 'site_logo';
- /**
- * Allows overriding of global labels by a specific control.
- */
- public $l10n = array();
- /**
- * The type of files that should be allowed by the media modal.
- */
- public $mime_type = 'image';
- /**
- * Enqueue our media manager resources, scripts, and styles.
- *
- * @uses wp_enqueue_media()
- * @uses wp_enqueue_style()
- * @uses wp_enqueue_script()
- * @uses plugins_url()
- */
- public function enqueue() {
- // Enqueues all needed media resources.
- wp_enqueue_media();
- // Enqueue our control script and styles.
- wp_enqueue_style( 'site-logo-control', plugins_url( '../css/site-logo-control.css', __FILE__ ) );
- wp_enqueue_script( 'site-logo-control', plugins_url( '../js/site-logo-control.js', __FILE__ ), array( 'media-views', 'customize-controls', 'underscore' ), '', true );
- }
- /**
- * Check if we have an active site logo.
- *
- * @uses get_option()
- * @return boolean
- */
- public function has_site_logo() {
- $logo = get_option( 'site_logo' );
- if ( empty( $logo['url'] ) ) {
- return false;
- } else {
- return true;
- }
- }
- /**
- * Display our custom control in the Customizer.
- *
- * @uses Site_Logo_Image_Control::l10n()
- * @uses Site_Logo_Image_Control::mime_type()
- * @uses Site_Logo_Image_Control::label()
- * @uses Site_Logo_Image_Control::description()
- * @uses esc_attr()
- * @uses esc_html()
- */
- public function render_content() {
- // We do this to allow the upload control to specify certain labels
- $l10n = json_encode( $this->l10n );
- // Control title
- printf(
- '<span class="customize-control-title" data-l10n="%s" data-mime="%s">%s</span>',
- esc_attr( $l10n ),
- esc_attr( $this->mime_type ),
- esc_html( $this->label )
- );
- // Control description
- if ( ! empty( $this->description ) ) : ?>
- <span class="description customize-control-description"><?php echo $this->description; ?></span>
- <?php endif; ?>
- <div class="current"></div>
- <div class="actions"></div>
- <?php }
- }
|