wp/wp-includes/customize/class-wp-customize-theme-control.php
changeset 7 cf61fcea0001
child 9 177826044cd9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/wp-includes/customize/class-wp-customize-theme-control.php	Mon Oct 14 17:39:30 2019 +0200
@@ -0,0 +1,133 @@
+<?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' ); ?></button>
+					</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 &amp; Preview' ); ?></button>
+					</div>
+				</div>
+			<# } #>
+		</div>
+	<?php
+	}
+}