Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
50.00% |
1 / 2 |
CRAP | |
33.33% |
3 / 9 |
WP_Customize_Theme_Control | |
0.00% |
0 / 1 |
|
66.67% |
2 / 3 |
5.67 | |
33.33% |
3 / 9 |
to_json | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
render_content | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
content_template | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 6 |
<?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 | |
* @access public | |
* @var string | |
*/ | |
public $type = 'theme'; | |
/** | |
* Theme object. | |
* | |
* @since 4.2.0 | |
* @access public | |
* @var WP_Theme | |
*/ | |
public $theme; | |
/** | |
* Refresh the parameters passed to the JavaScript via JSON. | |
* | |
* @since 4.2.0 | |
* @access public | |
* | |
* @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 | |
* @access public | |
*/ | |
public function render_content() {} | |
/** | |
* Render a JS template for theme display. | |
* | |
* @since 4.2.0 | |
* @access public | |
*/ | |
public function content_template() { | |
$current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); | |
$active_url = esc_url( remove_query_arg( 'theme', $current_url ) ); | |
$preview_url = esc_url( add_query_arg( 'theme', '__THEME__', $current_url ) ); // Token because esc_url() strips curly braces. | |
$preview_url = str_replace( '__THEME__', '{{ data.theme.id }}', $preview_url ); | |
?> | |
<# if ( data.theme.isActiveTheme ) { #> | |
<div class="theme active" tabindex="0" data-preview-url="<?php echo esc_attr( $active_url ); ?>" aria-describedby="{{ data.theme.id }}-action {{ data.theme.id }}-name"> | |
<# } else { #> | |
<div class="theme" tabindex="0" data-preview-url="<?php echo esc_attr( $preview_url ); ?>" aria-describedby="{{ data.theme.id }}-action {{ data.theme.id }}-name"> | |
<# } #> | |
<# if ( data.theme.screenshot[0] ) { #> | |
<div class="theme-screenshot"> | |
<img data-src="{{ data.theme.screenshot[0] }}" alt="" /> | |
</div> | |
<# } else { #> | |
<div class="theme-screenshot blank"></div> | |
<# } #> | |
<# if ( data.theme.isActiveTheme ) { #> | |
<span class="more-details" id="{{ data.theme.id }}-action"><?php _e( 'Customize' ); ?></span> | |
<# } else { #> | |
<span class="more-details" id="{{ data.theme.id }}-action"><?php _e( 'Live Preview' ); ?></span> | |
<# } #> | |
<div class="theme-author"><?php printf( __( 'By %s' ), '{{ data.theme.author }}' ); ?></div> | |
<# if ( data.theme.isActiveTheme ) { #> | |
<h3 class="theme-name" id="{{ data.theme.id }}-name"> | |
<?php | |
/* translators: %s: theme name */ | |
printf( __( '<span>Active:</span> %s' ), '{{{ data.theme.name }}}' ); | |
?> | |
</h3> | |
<# } else { #> | |
<h3 class="theme-name" id="{{ data.theme.id }}-name">{{{ data.theme.name }}}</h3> | |
<div class="theme-actions"> | |
<button type="button" class="button theme-details"><?php _e( 'Theme Details' ); ?></button> | |
</div> | |
<# } #> | |
</div> | |
<?php | |
} | |
} |