WordPress/wp-admin/includes/class-theme-installer-skin.php
Sergey Biryukov 16b8d91baa I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.

Includes minor code layout fixes.

Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!

Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926


git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 17:13:59 +00:00

151 lines
4.3 KiB
PHP

<?php
/**
* Upgrader API: Theme_Installer_Skin class
*
* @package WordPress
* @subpackage Upgrader
* @since 4.6.0
*/
/**
* Theme Installer Skin for the WordPress Theme Installer.
*
* @since 2.8.0
* @since 4.6.0 Moved to its own file from wp-admin/includes/class-wp-upgrader-skins.php.
*
* @see WP_Upgrader_Skin
*/
class Theme_Installer_Skin extends WP_Upgrader_Skin {
public $api;
public $type;
/**
* @param array $args
*/
public function __construct( $args = array() ) {
$defaults = array(
'type' => 'web',
'url' => '',
'theme' => '',
'nonce' => '',
'title' => '',
);
$args = wp_parse_args( $args, $defaults );
$this->type = $args['type'];
$this->api = isset( $args['api'] ) ? $args['api'] : array();
parent::__construct( $args );
}
/**
*/
public function before() {
if ( ! empty( $this->api ) ) {
$this->upgrader->strings['process_success'] = sprintf(
$this->upgrader->strings['process_success_specific'],
$this->api->name,
$this->api->version
);
}
}
/**
*/
public function after() {
if ( empty( $this->upgrader->result['destination_name'] ) ) {
return;
}
$theme_info = $this->upgrader->theme_info();
if ( empty( $theme_info ) ) {
return;
}
$name = $theme_info->display( 'Name' );
$stylesheet = $this->upgrader->result['destination_name'];
$template = $theme_info->get_template();
$activate_link = add_query_arg(
array(
'action' => 'activate',
'template' => urlencode( $template ),
'stylesheet' => urlencode( $stylesheet ),
),
admin_url( 'themes.php' )
);
$activate_link = wp_nonce_url( $activate_link, 'switch-theme_' . $stylesheet );
$install_actions = array();
if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) {
$customize_url = add_query_arg(
array(
'theme' => urlencode( $stylesheet ),
'return' => urlencode( admin_url( 'web' === $this->type ? 'theme-install.php' : 'themes.php' ) ),
),
admin_url( 'customize.php' )
);
$install_actions['preview'] = sprintf(
'<a href="%s" class="hide-if-no-customize load-customize">' .
'<span aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>',
esc_url( $customize_url ),
__( 'Live Preview' ),
/* translators: %s: theme name */
sprintf( __( 'Live Preview &#8220;%s&#8221;' ), $name )
);
}
$install_actions['activate'] = sprintf(
'<a href="%s" class="activatelink">' .
'<span aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>',
esc_url( $activate_link ),
__( 'Activate' ),
/* translators: %s: theme name */
sprintf( __( 'Activate &#8220;%s&#8221;' ), $name )
);
if ( is_network_admin() && current_user_can( 'manage_network_themes' ) ) {
$install_actions['network_enable'] = sprintf(
'<a href="%s" target="_parent">%s</a>',
esc_url( wp_nonce_url( 'themes.php?action=enable&amp;theme=' . urlencode( $stylesheet ), 'enable-theme_' . $stylesheet ) ),
__( 'Network Enable' )
);
}
if ( $this->type == 'web' ) {
$install_actions['themes_page'] = sprintf(
'<a href="%s" target="_parent">%s</a>',
self_admin_url( 'theme-install.php' ),
__( 'Return to Theme Installer' )
);
} elseif ( current_user_can( 'switch_themes' ) || current_user_can( 'edit_theme_options' ) ) {
$install_actions['themes_page'] = sprintf(
'<a href="%s" target="_parent">%s</a>',
self_admin_url( 'themes.php' ),
__( 'Return to Themes page' )
);
}
if ( ! $this->result || is_wp_error( $this->result ) || is_network_admin() || ! current_user_can( 'switch_themes' ) ) {
unset( $install_actions['activate'], $install_actions['preview'] );
}
/**
* Filters the list of action links available following a single theme installation.
*
* @since 2.8.0
*
* @param string[] $install_actions Array of theme action links.
* @param object $api Object containing WordPress.org API theme data.
* @param string $stylesheet Theme directory name.
* @param WP_Theme $theme_info Theme object.
*/
$install_actions = apply_filters( 'install_theme_complete_actions', $install_actions, $this->api, $stylesheet, $theme_info );
if ( ! empty( $install_actions ) ) {
$this->feedback( implode( ' | ', (array) $install_actions ) );
}
}
}