/var/www/hkosl.com/aga/wp-admin/includes/class-theme-installer-skin.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?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' => urlencodeadmin_url'web' === $this->type 'theme-install.php' 'themes.php' ) ),
                ),
                
admin_url'customize.php' )
            );
            
$install_actions['preview']  = '<a href="' esc_url$customize_url ) . '" class="hide-if-no-customize load-customize">';
            
$install_actions['preview'] .= '<span aria-hidden="true">' __'Live Preview' ) . '</span>';
            
/* translators: %s: theme name */
            
$install_actions['preview'] .= '<span class="screen-reader-text">' sprintf__'Live Preview &#8220;%s&#8221;' ), $name ) . '</span></a>';
        }
        
$install_actions['activate']  = '<a href="' esc_url$activate_link ) . '" class="activatelink">';
        
$install_actions['activate'] .= '<span aria-hidden="true">' __'Activate' ) . '</span>';
        
/* translators: %s: theme name */
        
$install_actions['activate'] .= '<span class="screen-reader-text">' sprintf__'Activate &#8220;%s&#8221;' ), $name ) . '</span></a>';

        if ( 
is_network_admin() && current_user_can'manage_network_themes' ) ) {
            
$install_actions['network_enable'] = '<a href="' esc_urlwp_nonce_url'themes.php?action=enable&amp;theme=' urlencode$stylesheet ), 'enable-theme_' $stylesheet ) ) . '" target="_parent">' __'Network Enable' ) . '</a>';
        }

        if ( 
$this->type == 'web' ) {
            
$install_actions['themes_page'] = '<a href="' self_admin_url'theme-install.php' ) . '" target="_parent">' __'Return to Theme Installer' ) . '</a>';
        } elseif ( 
current_user_can'switch_themes' ) || current_user_can'edit_theme_options' ) ) {
            
$install_actions['themes_page'] = '<a href="' self_admin_url'themes.php' ) . '" target="_parent">' __'Return to Themes page' ) . '</a>';
        }

        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->feedbackimplode' | ', (array) $install_actions ) );
        }
    }
}