Plugin Directory

Changeset 3140998


Ignore:
Timestamp:
08/25/2024 08:36:13 AM (18 months ago)
Author:
pmpr
Message:

fix some bug

Location:
pmpr-ir
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • pmpr-ir/tags/1.3.6/src/Pmpr/Plugin/Pmpr/Component/Base.php

    r3140904 r3140998  
    33namespace Pmpr\Plugin\Pmpr\Component;
    44
     5use File_Upload_Upgrader;
    56use Pmpr\Plugin\Pmpr\Component\ListTable\Install;
    67use Pmpr\Plugin\Pmpr\Component\ListTable\Installed;
     8use Pmpr\Plugin\Pmpr\Component\Manager\Skin\Upgrader;
    79use Pmpr\Plugin\Pmpr\Container\Container;
    810use Pmpr\Plugin\Pmpr\Traits\ManagerTrait;
     
    222224        $parameters = $this->getParameters($context);
    223225
     226        $serverHelper = $this->getHelper()->getServer();
    224227        if (self::INSTALL === $context) {
    225228
    226             $prefix                  = self::INSTALL;
     229            $prefix = self::INSTALL;
     230            if ('upload-component' === $serverHelper->getRequest('action')) {
     231
     232                $tab  = 'uploading';
     233                $mask = __('Uploading %s', PR__PLG__PMPR);
     234            } else if ($tab === 'upload') {
     235
     236                $mask = __('Upload %s', PR__PLG__PMPR);
     237            } else {
     238
     239                $mask = $this->getArg('add_page_title');
     240            }
     241
    227242            $parameters[self::TAB]   = $tab;
    228             $parameters[self::TITLE] = sprintf($this->getArg('add_page_title'), $this->getArg(self::SINGULAR_NAME));
     243            $parameters[self::TITLE] = sprintf($mask, $this->getArg(self::SINGULAR_NAME));
    229244        } else {
    230245
     
    233248        }
    234249
    235         $parameters['args']      = $this->getArgs();
    236         $parameters['object']    = $this;
    237         $parameters['component'] = $this;
     250        $parameters['args']        = $this->getArgs();
     251        $parameters['object']      = $this;
     252        $parameters['component']   = $this;
     253        $parameters['current_url'] = $serverHelper->getRequestedURL(true);
    238254
    239255        $HTMLHelper = $this->getHelper()->getHTML();
     
    272288                    self::STATUS => $status,
    273289                ];
    274             }
    275 
    276             $table->prepare_items();
     290                $table->prepare_items();
     291            }
    277292
    278293            $parameters['table'] = $table;
     
    280295
    281296        return $parameters;
     297    }
     298
     299    public function uploadProcess()
     300    {
     301        $serverHelper = $this->getHelper()->getServer();
     302        if ('upload-component' === $serverHelper->getRequest('action')) {
     303
     304            if (!current_user_can('upload_plugins')) {
     305                wp_die(__('Sorry, you are not allowed to install components on this site.', PR__PLG__PMPR));
     306            }
     307
     308            check_admin_referer('component-upload');
     309
     310            $filename = strtolower($_FILES['componentzip']['name'] ?? '');
     311            if (!$filename || !str_ends_with($filename, '.zip')) {
     312
     313                wp_die(__('Only .zip archives may be uploaded.', PR__PLG__PMPR));
     314            } else {
     315
     316                $type = $serverHelper->getRequest('type');
     317                if (!str_starts_with($filename, "wp-{$type}-")) {
     318
     319                    wp_die(__('Your uploaded file is not valid.', PR__PLG__PMPR));
     320                }
     321            }
     322
     323            if (!class_exists('File_Upload_Upgrader')) {
     324
     325                require_once ABSPATH . 'wp-admin/includes/class-file-upload-upgrader.php';
     326            }
     327
     328            $fileUpload = new File_Upload_Upgrader('componentzip', 'package');
     329
     330            $overwrite = $serverHelper->getRequest('overwrite', '');
     331            $overwrite = in_array($overwrite, ['update-component', 'downgrade-component'], true) ? $overwrite : '';
     332
     333            $package   = $fileUpload->package;
     334            $component = pathinfo($filename, PATHINFO_FILENAME);
     335
     336            if (!class_exists('WP_Upgrader_Skin')) {
     337
     338                require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader-skin.php';
     339            }
     340
     341            $upgrader = $this->getManager()->getInstaller(new Upgrader());
     342
     343            $result = $upgrader->install($component, [
     344                'package'            => $package,
     345                'overwrite_package'  => $overwrite,
     346                'check_requirements' => false,
     347            ]);
     348
     349            if ($result || is_wp_error($result)) {
     350
     351                $fileUpload->cleanup();
     352            }
     353        }
    282354    }
    283355
  • pmpr-ir/tags/1.3.6/src/Pmpr/Plugin/Pmpr/Component/Component.php

    r3140904 r3140998  
    33namespace Pmpr\Plugin\Pmpr\Component;
    44
    5 use File_Upload_Upgrader;
    65use Pmpr\Plugin\Pmpr\Component\Manager\Initiator;
    76use Pmpr\Plugin\Pmpr\Component\Manager\Installer;
    87use Pmpr\Plugin\Pmpr\Component\Manager\Preparation;
    9 use Pmpr\Plugin\Pmpr\Component\Manager\Skin\Upgrader;
    10 use Pmpr\Plugin\Pmpr\Component\Manager\UpdateSkin;
    118use Pmpr\Plugin\Pmpr\Container\Container;
    129use Pmpr\Plugin\Pmpr\Traits\ManagerTrait;
     
    4744        Update::getInstance();
    4845        Preparation::getInstance();
    49         Initiator::getInstance();
     46//        Initiator::getInstance();
    5047    }
    5148
     
    5451        $serverHelper = $this->getHelper()->getServer();
    5552        if ($action = $serverHelper->getRequest('action')) {
    56 
    57             if ($action === 'upload-component') {
    58 
    59                 if (!current_user_can('upload_plugins')) {
    60                     wp_die(__('Sorry, you are not allowed to install components on this site.', PR__PLG__PMPR));
    61                 }
    62 
    63                 check_admin_referer('component-upload');
    64 
    65                 $filename = strtolower($_FILES['componentzip']['name'] ?? '');
    66                 if (!$filename || !str_ends_with($filename, '.zip')) {
    67 
    68                     wp_die(__('Only .zip archives may be uploaded.', PR__PLG__PMPR));
    69                 } else {
    70 
    71                     $type = $serverHelper->getRequest('type');
    72                     if (!str_starts_with($filename, "wp-{$type}-")) {
    73 
    74                         wp_die(__('Your uploaded file is not valid.', PR__PLG__PMPR));
    75                     }
    76                 }
    77 
    78                 $fileUpload = new File_Upload_Upgrader('componentzip', 'package');
    79 
    80                 // Used in the HTML title tag.
    81                 $title        = __('Upload Component', PR__PLG__PMPR);
    82                 $parent_file  = 'plugins.php';
    83                 $submenu_file = 'plugin-install.php';
    84 
    85                 require_once ABSPATH . 'wp-admin/admin-header.php';
    86 
    87                 $overwrite = $serverHelper->getRequest('overwrite', '');
    88                 $overwrite = in_array($overwrite, ['update-plugin', 'downgrade-plugin'], true) ? $overwrite : '';
    89 
    90                 $package   = $fileUpload->package;
    91                 $component = pathinfo($filename, PATHINFO_FILENAME);
    92 
    93                 $upgrader = new Installer(new Upgrader());
    94 
    95                 $result = $upgrader->install($component, [
    96                     'package'            => $package,
    97                     'overwrite_package'  => $overwrite,
    98                     'check_requirements' => false,
    99                 ]);
    100 
    101                 if ($result || is_wp_error($result)) {
    102 
    103                     $fileUpload->cleanup();
    104                 }
    105 //                $redirect = wp_get_referer();
    106 //                if (!$redirect) {
    107 //                    $redirect = $serverHelper->getRequestedURL(true, ['action']);
    108 //                }
    109                 require_once ABSPATH . 'wp-admin/admin-footer.php';
    110                 die();
    111             }
    11253
    11354            $components = $serverHelper->getRequest('checked');
  • pmpr-ir/tags/1.3.6/src/Pmpr/Plugin/Pmpr/Manager.php

    r3140904 r3140998  
    2727
    2828    /**
     29     * @param $skin
     30     *
    2931     * @return Installer
    3032     */
    31     public function getInstaller(): Installer
     33    public function getInstaller($skin = null): Installer
    3234    {
    3335        if (!$this->installer) {
     
    3840            }
    3941
    40             $this->installer = new Installer(new WP_Ajax_Upgrader_Skin());
     42            if ($skin === null) {
     43                $skin = new WP_Ajax_Upgrader_Skin();
     44            }
     45            $this->installer = new Installer($skin);
    4146        }
    4247
  • pmpr-ir/tags/1.3.6/template/install/index.php

    r3140904 r3140998  
    33    exit;
    44}
    5 
    6 $wp_http_referer = sanitize_text_field($_REQUEST['_wp_http_referer'] ?? '');
    7 $request_uri     = sanitize_text_field($_REQUEST['REQUEST_URI'] ?? '');
    8 $paged           = sanitize_text_field($_REQUEST['paged'] ?? '');
    9 $title           = esc_html($title);
    105
    116if (!current_user_can('install_plugins')) {
     
    149}
    1510
    16 if (isset($wp_http_referer) && $wp_http_referer) {
     11if (!in_array($tab, ['upload', 'uploading'])) {
    1712
    18     $location = remove_query_arg('_wp_http_referer', wp_unslash($request_uri));
     13    $wp_http_referer = sanitize_text_field($_REQUEST['_wp_http_referer'] ?? '');
     14    if (isset($wp_http_referer) && $wp_http_referer) {
    1915
    20     if (!empty($paged)) {
    21         $location = add_query_arg('paged', (int)$paged, $location);
     16        $paged       = sanitize_text_field($_REQUEST['paged'] ?? '');
     17        $request_uri = sanitize_text_field($_REQUEST['REQUEST_URI'] ?? '');
     18        $location    = remove_query_arg('_wp_http_referer', wp_unslash($request_uri));
     19
     20        if (!empty($paged)) {
     21            $location = add_query_arg('paged', (int)$paged, $location);
     22        }
     23
     24        wp_redirect($location);
     25        exit;
    2226    }
    2327
    24     wp_redirect($location);
    25     exit;
     28    $total   = $table->get_pagination_arg('total_pages');
     29    $pagenum = $table->get_pagenum();
     30
     31    if ($pagenum > $total && $total > 0) {
     32
     33        wp_redirect(add_query_arg('paged', $total));
     34        exit;
     35    }
    2636}
    2737
    28 $total   = $table->get_pagination_arg('total_pages');
    29 $pagenum = $table->get_pagenum();
    30 
    31 if ($pagenum > $total && $total > 0) {
    32 
    33     wp_redirect(add_query_arg('paged', $total));
    34     exit;
    35 }
     38$title = esc_html($title);
    3639
    3740/**
     
    4649
    4750        <?php
    48         if (current_user_can('upload_plugins')) {
    49             printf(
    50                 ' <a href="#" class="upload-view-toggle page-title-action"><span class="upload">%s</span><span class="browse">%s</span></a>',
    51                 sprintf(__('Upload %s', PR__PLG__PMPR), esc_html($args['singular_name'] ?? '')),
    52                 sprintf(__('Browse %s', PR__PLG__PMPR), esc_html($args['plural_name'] ?? ''))
    53             );
    54         }
    55         ?>
    56 
    57         <?php
    5851        if (isset($component)) {
    5952
     
    6255        ?>
    6356        <hr class="wp-header-end">
    64 
    65         <div class="upload-component-wrap">
    66             <div class="upload-component upload-plugin">
    67                 <p class="install-help"><?php printf(__('If you have a %s in a .zip format, you may install or update it by uploading it here.', PR__PLG__PMPR), esc_html($args['singular_name'] ?? '')); ?></p>
    68                 <form method="post" enctype="multipart/form-data" class="wp-upload-form"
    69                       action="<?php echo esc_url(self_admin_url('admin.php?action=upload-component')); ?>">
    70                     <?php wp_nonce_field('component-upload'); ?>
    71                     <label class="screen-reader-text" for="componentzip">
    72                         <?php printf(__('%s zip file', PR__PLG__PMPR), esc_html($args['singular_name'] ?? '')); ?>
    73                     </label>
    74                     <input type="file" id="componentzip" name="componentzip" accept=".zip"/>
    75                     <input type="hidden" id="type" name="type" value="<?php echo esc_attr($args['type'] ?? ''); ?>"/>
    76                     <?php submit_button(_x('Install Now', 'component', PR__PLG__PMPR), '', 'install-component-submit', false); ?>
    77                 </form>
     57        <?php if ('uploading' === $tab): ?>
     58            <?php $object->uploadProcess(); ?>
     59        <?php elseif ('upload' === $tab): ?>
     60            <div class="upload-component-wrap">
     61                <div class="upload-component upload-plugin">
     62                    <p class="install-help"><?php printf(__('If you have a %s in a .zip format, you may install or update it by uploading it here.', PR__PLG__PMPR), esc_html($args['singular_name'] ?? '')); ?></p>
     63                    <form method="post" enctype="multipart/form-data" class="wp-upload-form"
     64                          action="<?php echo esc_url(add_query_arg(['action' => 'upload-component', 'tab' => 'uploading'], $current_url)); ?>">
     65                        <?php wp_nonce_field('component-upload'); ?>
     66                        <label class="screen-reader-text" for="componentzip">
     67                            <?php printf(__('%s zip file', PR__PLG__PMPR), esc_html($args['singular_name'] ?? '')); ?>
     68                        </label>
     69                        <input type="file" id="componentzip" name="componentzip" accept=".zip"/>
     70                        <input type="hidden" id="type" name="type"
     71                               value="<?php echo esc_attr($args['type'] ?? ''); ?>"/>
     72                        <?php submit_button(_x('Install Now', 'component', PR__PLG__PMPR), '', 'install-component-submit', false); ?>
     73                    </form>
     74                </div>
    7875            </div>
    79         </div>
    80 
    81         <?php $table->views(); ?>
    82         <form id="plugin-filter" method="post">
    83             <?php $table->display(); ?>
    84         </form>
     76        <?php else: ?>
     77            <?php $table->prepare_items(); ?>
     78            <?php $table->views(); ?>
     79            <form id="plugin-filter" method="post">
     80                <?php $table->display(); ?>
     81            </form>
     82        <?php endif; ?>
    8583        <span class="spinner"></span>
    8684    </div>
  • pmpr-ir/trunk/src/Pmpr/Plugin/Pmpr/Component/Base.php

    r3140903 r3140998  
    33namespace Pmpr\Plugin\Pmpr\Component;
    44
     5use File_Upload_Upgrader;
    56use Pmpr\Plugin\Pmpr\Component\ListTable\Install;
    67use Pmpr\Plugin\Pmpr\Component\ListTable\Installed;
     8use Pmpr\Plugin\Pmpr\Component\Manager\Skin\Upgrader;
    79use Pmpr\Plugin\Pmpr\Container\Container;
    810use Pmpr\Plugin\Pmpr\Traits\ManagerTrait;
     
    222224        $parameters = $this->getParameters($context);
    223225
     226        $serverHelper = $this->getHelper()->getServer();
    224227        if (self::INSTALL === $context) {
    225228
    226             $prefix                  = self::INSTALL;
     229            $prefix = self::INSTALL;
     230            if ('upload-component' === $serverHelper->getRequest('action')) {
     231
     232                $tab  = 'uploading';
     233                $mask = __('Uploading %s', PR__PLG__PMPR);
     234            } else if ($tab === 'upload') {
     235
     236                $mask = __('Upload %s', PR__PLG__PMPR);
     237            } else {
     238
     239                $mask = $this->getArg('add_page_title');
     240            }
     241
    227242            $parameters[self::TAB]   = $tab;
    228             $parameters[self::TITLE] = sprintf($this->getArg('add_page_title'), $this->getArg(self::SINGULAR_NAME));
     243            $parameters[self::TITLE] = sprintf($mask, $this->getArg(self::SINGULAR_NAME));
    229244        } else {
    230245
     
    233248        }
    234249
    235         $parameters['args']      = $this->getArgs();
    236         $parameters['object']    = $this;
    237         $parameters['component'] = $this;
     250        $parameters['args']        = $this->getArgs();
     251        $parameters['object']      = $this;
     252        $parameters['component']   = $this;
     253        $parameters['current_url'] = $serverHelper->getRequestedURL(true);
    238254
    239255        $HTMLHelper = $this->getHelper()->getHTML();
     
    272288                    self::STATUS => $status,
    273289                ];
    274             }
    275 
    276             $table->prepare_items();
     290                $table->prepare_items();
     291            }
    277292
    278293            $parameters['table'] = $table;
     
    280295
    281296        return $parameters;
     297    }
     298
     299    public function uploadProcess()
     300    {
     301        $serverHelper = $this->getHelper()->getServer();
     302        if ('upload-component' === $serverHelper->getRequest('action')) {
     303
     304            if (!current_user_can('upload_plugins')) {
     305                wp_die(__('Sorry, you are not allowed to install components on this site.', PR__PLG__PMPR));
     306            }
     307
     308            check_admin_referer('component-upload');
     309
     310            $filename = strtolower($_FILES['componentzip']['name'] ?? '');
     311            if (!$filename || !str_ends_with($filename, '.zip')) {
     312
     313                wp_die(__('Only .zip archives may be uploaded.', PR__PLG__PMPR));
     314            } else {
     315
     316                $type = $serverHelper->getRequest('type');
     317                if (!str_starts_with($filename, "wp-{$type}-")) {
     318
     319                    wp_die(__('Your uploaded file is not valid.', PR__PLG__PMPR));
     320                }
     321            }
     322
     323            if (!class_exists('File_Upload_Upgrader')) {
     324
     325                require_once ABSPATH . 'wp-admin/includes/class-file-upload-upgrader.php';
     326            }
     327
     328            $fileUpload = new File_Upload_Upgrader('componentzip', 'package');
     329
     330            $overwrite = $serverHelper->getRequest('overwrite', '');
     331            $overwrite = in_array($overwrite, ['update-component', 'downgrade-component'], true) ? $overwrite : '';
     332
     333            $package   = $fileUpload->package;
     334            $component = pathinfo($filename, PATHINFO_FILENAME);
     335
     336            if (!class_exists('WP_Upgrader_Skin')) {
     337
     338                require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader-skin.php';
     339            }
     340
     341            $upgrader = $this->getManager()->getInstaller(new Upgrader());
     342
     343            $result = $upgrader->install($component, [
     344                'package'            => $package,
     345                'overwrite_package'  => $overwrite,
     346                'check_requirements' => false,
     347            ]);
     348
     349            if ($result || is_wp_error($result)) {
     350
     351                $fileUpload->cleanup();
     352            }
     353        }
    282354    }
    283355
  • pmpr-ir/trunk/src/Pmpr/Plugin/Pmpr/Component/Component.php

    r3140903 r3140998  
    33namespace Pmpr\Plugin\Pmpr\Component;
    44
    5 use File_Upload_Upgrader;
    65use Pmpr\Plugin\Pmpr\Component\Manager\Initiator;
    76use Pmpr\Plugin\Pmpr\Component\Manager\Installer;
    87use Pmpr\Plugin\Pmpr\Component\Manager\Preparation;
    9 use Pmpr\Plugin\Pmpr\Component\Manager\Skin\Upgrader;
    10 use Pmpr\Plugin\Pmpr\Component\Manager\UpdateSkin;
    118use Pmpr\Plugin\Pmpr\Container\Container;
    129use Pmpr\Plugin\Pmpr\Traits\ManagerTrait;
     
    4744        Update::getInstance();
    4845        Preparation::getInstance();
    49         Initiator::getInstance();
     46//        Initiator::getInstance();
    5047    }
    5148
     
    5451        $serverHelper = $this->getHelper()->getServer();
    5552        if ($action = $serverHelper->getRequest('action')) {
    56 
    57             if ($action === 'upload-component') {
    58 
    59                 if (!current_user_can('upload_plugins')) {
    60                     wp_die(__('Sorry, you are not allowed to install components on this site.', PR__PLG__PMPR));
    61                 }
    62 
    63                 check_admin_referer('component-upload');
    64 
    65                 $filename = strtolower($_FILES['componentzip']['name'] ?? '');
    66                 if (!$filename || !str_ends_with($filename, '.zip')) {
    67 
    68                     wp_die(__('Only .zip archives may be uploaded.', PR__PLG__PMPR));
    69                 } else {
    70 
    71                     $type = $serverHelper->getRequest('type');
    72                     if (!str_starts_with($filename, "wp-{$type}-")) {
    73 
    74                         wp_die(__('Your uploaded file is not valid.', PR__PLG__PMPR));
    75                     }
    76                 }
    77 
    78                 $fileUpload = new File_Upload_Upgrader('componentzip', 'package');
    79 
    80                 // Used in the HTML title tag.
    81                 $title        = __('Upload Component', PR__PLG__PMPR);
    82                 $parent_file  = 'plugins.php';
    83                 $submenu_file = 'plugin-install.php';
    84 
    85                 require_once ABSPATH . 'wp-admin/admin-header.php';
    86 
    87                 $overwrite = $serverHelper->getRequest('overwrite', '');
    88                 $overwrite = in_array($overwrite, ['update-plugin', 'downgrade-plugin'], true) ? $overwrite : '';
    89 
    90                 $package   = $fileUpload->package;
    91                 $component = pathinfo($filename, PATHINFO_FILENAME);
    92 
    93                 $upgrader = new Installer(new Upgrader());
    94 
    95                 $result = $upgrader->install($component, [
    96                     'package'            => $package,
    97                     'overwrite_package'  => $overwrite,
    98                     'check_requirements' => false,
    99                 ]);
    100 
    101                 if ($result || is_wp_error($result)) {
    102 
    103                     $fileUpload->cleanup();
    104                 }
    105 //                $redirect = wp_get_referer();
    106 //                if (!$redirect) {
    107 //                    $redirect = $serverHelper->getRequestedURL(true, ['action']);
    108 //                }
    109                 require_once ABSPATH . 'wp-admin/admin-footer.php';
    110                 die();
    111             }
    11253
    11354            $components = $serverHelper->getRequest('checked');
  • pmpr-ir/trunk/src/Pmpr/Plugin/Pmpr/Manager.php

    r3140903 r3140998  
    2727
    2828    /**
     29     * @param $skin
     30     *
    2931     * @return Installer
    3032     */
    31     public function getInstaller(): Installer
     33    public function getInstaller($skin = null): Installer
    3234    {
    3335        if (!$this->installer) {
     
    3840            }
    3941
    40             $this->installer = new Installer(new WP_Ajax_Upgrader_Skin());
     42            if ($skin === null) {
     43                $skin = new WP_Ajax_Upgrader_Skin();
     44            }
     45            $this->installer = new Installer($skin);
    4146        }
    4247
  • pmpr-ir/trunk/template/install/index.php

    r3140903 r3140998  
    33    exit;
    44}
    5 
    6 $wp_http_referer = sanitize_text_field($_REQUEST['_wp_http_referer'] ?? '');
    7 $request_uri     = sanitize_text_field($_REQUEST['REQUEST_URI'] ?? '');
    8 $paged           = sanitize_text_field($_REQUEST['paged'] ?? '');
    9 $title           = esc_html($title);
    105
    116if (!current_user_can('install_plugins')) {
     
    149}
    1510
    16 if (isset($wp_http_referer) && $wp_http_referer) {
     11if (!in_array($tab, ['upload', 'uploading'])) {
    1712
    18     $location = remove_query_arg('_wp_http_referer', wp_unslash($request_uri));
     13    $wp_http_referer = sanitize_text_field($_REQUEST['_wp_http_referer'] ?? '');
     14    if (isset($wp_http_referer) && $wp_http_referer) {
    1915
    20     if (!empty($paged)) {
    21         $location = add_query_arg('paged', (int)$paged, $location);
     16        $paged       = sanitize_text_field($_REQUEST['paged'] ?? '');
     17        $request_uri = sanitize_text_field($_REQUEST['REQUEST_URI'] ?? '');
     18        $location    = remove_query_arg('_wp_http_referer', wp_unslash($request_uri));
     19
     20        if (!empty($paged)) {
     21            $location = add_query_arg('paged', (int)$paged, $location);
     22        }
     23
     24        wp_redirect($location);
     25        exit;
    2226    }
    2327
    24     wp_redirect($location);
    25     exit;
     28    $total   = $table->get_pagination_arg('total_pages');
     29    $pagenum = $table->get_pagenum();
     30
     31    if ($pagenum > $total && $total > 0) {
     32
     33        wp_redirect(add_query_arg('paged', $total));
     34        exit;
     35    }
    2636}
    2737
    28 $total   = $table->get_pagination_arg('total_pages');
    29 $pagenum = $table->get_pagenum();
    30 
    31 if ($pagenum > $total && $total > 0) {
    32 
    33     wp_redirect(add_query_arg('paged', $total));
    34     exit;
    35 }
     38$title = esc_html($title);
    3639
    3740/**
     
    4649
    4750        <?php
    48         if (current_user_can('upload_plugins')) {
    49             printf(
    50                 ' <a href="#" class="upload-view-toggle page-title-action"><span class="upload">%s</span><span class="browse">%s</span></a>',
    51                 sprintf(__('Upload %s', PR__PLG__PMPR), esc_html($args['singular_name'] ?? '')),
    52                 sprintf(__('Browse %s', PR__PLG__PMPR), esc_html($args['plural_name'] ?? ''))
    53             );
    54         }
    55         ?>
    56 
    57         <?php
    5851        if (isset($component)) {
    5952
     
    6255        ?>
    6356        <hr class="wp-header-end">
    64 
    65         <div class="upload-component-wrap">
    66             <div class="upload-component upload-plugin">
    67                 <p class="install-help"><?php printf(__('If you have a %s in a .zip format, you may install or update it by uploading it here.', PR__PLG__PMPR), esc_html($args['singular_name'] ?? '')); ?></p>
    68                 <form method="post" enctype="multipart/form-data" class="wp-upload-form"
    69                       action="<?php echo esc_url(self_admin_url('admin.php?action=upload-component')); ?>">
    70                     <?php wp_nonce_field('component-upload'); ?>
    71                     <label class="screen-reader-text" for="componentzip">
    72                         <?php printf(__('%s zip file', PR__PLG__PMPR), esc_html($args['singular_name'] ?? '')); ?>
    73                     </label>
    74                     <input type="file" id="componentzip" name="componentzip" accept=".zip"/>
    75                     <input type="hidden" id="type" name="type" value="<?php echo esc_attr($args['type'] ?? ''); ?>"/>
    76                     <?php submit_button(_x('Install Now', 'component', PR__PLG__PMPR), '', 'install-component-submit', false); ?>
    77                 </form>
     57        <?php if ('uploading' === $tab): ?>
     58            <?php $object->uploadProcess(); ?>
     59        <?php elseif ('upload' === $tab): ?>
     60            <div class="upload-component-wrap">
     61                <div class="upload-component upload-plugin">
     62                    <p class="install-help"><?php printf(__('If you have a %s in a .zip format, you may install or update it by uploading it here.', PR__PLG__PMPR), esc_html($args['singular_name'] ?? '')); ?></p>
     63                    <form method="post" enctype="multipart/form-data" class="wp-upload-form"
     64                          action="<?php echo esc_url(add_query_arg(['action' => 'upload-component', 'tab' => 'uploading'], $current_url)); ?>">
     65                        <?php wp_nonce_field('component-upload'); ?>
     66                        <label class="screen-reader-text" for="componentzip">
     67                            <?php printf(__('%s zip file', PR__PLG__PMPR), esc_html($args['singular_name'] ?? '')); ?>
     68                        </label>
     69                        <input type="file" id="componentzip" name="componentzip" accept=".zip"/>
     70                        <input type="hidden" id="type" name="type"
     71                               value="<?php echo esc_attr($args['type'] ?? ''); ?>"/>
     72                        <?php submit_button(_x('Install Now', 'component', PR__PLG__PMPR), '', 'install-component-submit', false); ?>
     73                    </form>
     74                </div>
    7875            </div>
    79         </div>
    80 
    81         <?php $table->views(); ?>
    82         <form id="plugin-filter" method="post">
    83             <?php $table->display(); ?>
    84         </form>
     76        <?php else: ?>
     77            <?php $table->prepare_items(); ?>
     78            <?php $table->views(); ?>
     79            <form id="plugin-filter" method="post">
     80                <?php $table->display(); ?>
     81            </form>
     82        <?php endif; ?>
    8583        <span class="spinner"></span>
    8684    </div>
Note: See TracChangeset for help on using the changeset viewer.