mirror of
https://github.com/WordPress/WordPress.git
synced 2024-11-18 16:45:31 +01:00
aaf99e6913
WordPress' code just... wasn't. This is now dealt with. Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS. Fixes #41057. Built from https://develop.svn.wordpress.org/trunk@42343 git-svn-id: http://core.svn.wordpress.org/trunk@42172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
136 lines
4.4 KiB
PHP
136 lines
4.4 KiB
PHP
<?php
|
|
/**
|
|
* Customize API: WP_Customize_Theme_Control class
|
|
*
|
|
* @package WordPress
|
|
* @subpackage Customize
|
|
* @since 4.4.0
|
|
*/
|
|
|
|
/**
|
|
* Customize Theme Control class.
|
|
*
|
|
* @since 4.2.0
|
|
*
|
|
* @see WP_Customize_Control
|
|
*/
|
|
class WP_Customize_Theme_Control extends WP_Customize_Control {
|
|
|
|
/**
|
|
* Customize control type.
|
|
*
|
|
* @since 4.2.0
|
|
* @var string
|
|
*/
|
|
public $type = 'theme';
|
|
|
|
/**
|
|
* Theme object.
|
|
*
|
|
* @since 4.2.0
|
|
* @var WP_Theme
|
|
*/
|
|
public $theme;
|
|
|
|
/**
|
|
* Refresh the parameters passed to the JavaScript via JSON.
|
|
*
|
|
* @since 4.2.0
|
|
*
|
|
* @see WP_Customize_Control::to_json()
|
|
*/
|
|
public function to_json() {
|
|
parent::to_json();
|
|
$this->json['theme'] = $this->theme;
|
|
}
|
|
|
|
/**
|
|
* Don't render the control content from PHP, as it's rendered via JS on load.
|
|
*
|
|
* @since 4.2.0
|
|
*/
|
|
public function render_content() {}
|
|
|
|
/**
|
|
* Render a JS template for theme display.
|
|
*
|
|
* @since 4.2.0
|
|
*/
|
|
public function content_template() {
|
|
/* translators: %s: theme name */
|
|
$details_label = sprintf( __( 'Details for theme: %s' ), '{{ data.theme.name }}' );
|
|
/* translators: %s: theme name */
|
|
$customize_label = sprintf( __( 'Customize theme: %s' ), '{{ data.theme.name }}' );
|
|
/* translators: %s: theme name */
|
|
$preview_label = sprintf( __( 'Live preview theme: %s' ), '{{ data.theme.name }}' );
|
|
/* translators: %s: theme name */
|
|
$install_label = sprintf( __( 'Install and preview theme: %s' ), '{{ data.theme.name }}' );
|
|
?>
|
|
<# if ( data.theme.active ) { #>
|
|
<div class="theme active" tabindex="0" aria-describedby="{{ data.section }}-{{ data.theme.id }}-action">
|
|
<# } else { #>
|
|
<div class="theme" tabindex="0" aria-describedby="{{ data.section }}-{{ data.theme.id }}-action">
|
|
<# } #>
|
|
|
|
<# if ( data.theme.screenshot && data.theme.screenshot[0] ) { #>
|
|
<div class="theme-screenshot">
|
|
<img data-src="{{ data.theme.screenshot[0] }}" alt="" />
|
|
</div>
|
|
<# } else { #>
|
|
<div class="theme-screenshot blank"></div>
|
|
<# } #>
|
|
|
|
<span class="more-details theme-details" id="{{ data.section }}-{{ data.theme.id }}-action" aria-label="<?php echo esc_attr( $details_label ); ?>"><?php _e( 'Theme Details' ); ?></span>
|
|
|
|
<div class="theme-author">
|
|
<?php
|
|
/* translators: Theme author name */
|
|
printf( _x( 'By %s', 'theme author' ), '{{ data.theme.author }}' );
|
|
?>
|
|
</div>
|
|
|
|
<# if ( 'installed' === data.theme.type && data.theme.hasUpdate ) { #>
|
|
<div class="update-message notice inline notice-warning notice-alt" data-slug="{{ data.theme.id }}">
|
|
<p>
|
|
<?php
|
|
/* translators: %s: "Update now" button */
|
|
printf( __( 'New version available. %s' ), '<button class="button-link update-theme" type="button">' . __( 'Update now' ) . '</button>' );
|
|
?>
|
|
</p>
|
|
</div>
|
|
<# } #>
|
|
|
|
<# if ( data.theme.active ) { #>
|
|
<div class="theme-id-container">
|
|
<h3 class="theme-name" id="{{ data.section }}-{{ data.theme.id }}-name">
|
|
<?php
|
|
/* translators: %s: theme name */
|
|
printf( __( '<span>Previewing:</span> %s' ), '{{ data.theme.name }}' );
|
|
?>
|
|
</h3>
|
|
<div class="theme-actions">
|
|
<button type="button" class="button button-primary customize-theme" aria-label="<?php echo esc_attr( $customize_label ); ?>"><?php _e( 'Customize' ); ?></button>
|
|
</div>
|
|
</div>
|
|
<div class="notice notice-success notice-alt"><p><?php _ex( 'Installed', 'theme' ); ?></p></div>
|
|
<# } else if ( 'installed' === data.theme.type ) { #>
|
|
<div class="theme-id-container">
|
|
<h3 class="theme-name" id="{{ data.section }}-{{ data.theme.id }}-name">{{ data.theme.name }}</h3>
|
|
<div class="theme-actions">
|
|
<button type="button" class="button button-primary preview-theme" aria-label="<?php echo esc_attr( $preview_label ); ?>" data-slug="{{ data.theme.id }}"><?php _e( 'Live Preview' ); ?></span>
|
|
</div>
|
|
</div>
|
|
<div class="notice notice-success notice-alt"><p><?php _ex( 'Installed', 'theme' ); ?></p></div>
|
|
<# } else { #>
|
|
<div class="theme-id-container">
|
|
<h3 class="theme-name" id="{{ data.section }}-{{ data.theme.id }}-name">{{ data.theme.name }}</h3>
|
|
<div class="theme-actions">
|
|
<button type="button" class="button button-primary theme-install preview" aria-label="<?php echo esc_attr( $install_label ); ?>" data-slug="{{ data.theme.id }}" data-name="{{ data.theme.name }}"><?php _e( 'Install & Preview' ); ?></button>
|
|
</div>
|
|
</div>
|
|
<# } #>
|
|
</div>
|
|
<?php
|
|
}
|
|
}
|