WordPress.org

Plugin Directory

Changeset 1424857


Ignore:
Timestamp:
05/26/16 15:57:58 (8 months ago)
Author:
thoefter
Message:

2.21 commit

Location:
cms-commander-client
Files:
127 added
9 edited

Legend:

Unmodified
Added
Removed
  • cms-commander-client/trunk/functions.php

    r1241866 r1424857  
    119119function cleanup_delete_cmsc($params = array()) 
    120120{ 
    121     global $cmsc_core; 
    122121    $revision_params = get_option('cmsc_stats_filter'); 
    123122    $revision_filter = isset($revision_params['plugins']['cleanup']) ? $revision_params['plugins']['cleanup'] : array(); 
     
    151150            default: 
    152151                break; 
    153         } 
    154          
     152        }         
    155153    } 
    156154     
     
    163161{ 
    164162    global $wpdb; 
    165     $sql           = "SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = 'revision'"; 
    166     $num_revisions = $wpdb->get_var($sql); 
    167     if(isset($filter['num_to_keep']) && !empty($filter['num_to_keep'])){ 
    168         $num_rev = str_replace("r_","",$filter['num_to_keep']); 
    169         if($num_revisions < $num_rev){ 
    170             return 0; 
    171         } 
    172         return ($num_revisions - $num_rev); 
    173     }else{ 
    174         return $num_revisions; 
    175     } 
     163 
     164    $num_rev = isset($filter['num_to_keep']) && !empty($filter['num_to_keep']) ? str_replace("r_", "", $filter['num_to_keep']) : 5; 
     165 
     166    $query = "SELECT SUM(t.cnt) FROM (SELECT COUNT(ID) - {$num_rev} as cnt FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_parent != 0 GROUP BY post_parent HAVING COUNT(ID) > {$num_rev}) as t"; 
     167 
     168    return $wpdb->get_var($query); 
    176169} 
    177170 
     
    181174    $sql       = "SELECT * FROM $wpdb->posts WHERE post_type = 'revision'"; 
    182175    $revisions = $wpdb->get_results($sql); 
     176     
    183177    return $revisions; 
    184178} 
     
    186180function cmsc_delete_all_revisions($filter) 
    187181{ 
    188     global $wpdb, $cmsc_core; 
    189     $where = ''; 
    190     if(isset($filter['num_to_keep']) && !empty($filter['num_to_keep'])){ 
    191         $num_rev = str_replace("r_","",$filter['num_to_keep']); 
    192         $select_posts = "SELECT ID FROM $wpdb->posts WHERE post_type = 'revision' ORDER BY post_date DESC LIMIT ".$num_rev; 
    193         $select_posts_res = $wpdb->get_results($select_posts); 
    194         $notin = ''; 
    195         $n = 0; 
    196         foreach($select_posts_res as $keep_post){ 
    197             $notin.=$keep_post->ID; 
    198             $n++; 
    199             if(count($select_posts_res)>$n){ 
    200                 $notin.=','; 
    201             } 
    202         } 
    203         $where = " AND a.ID NOT IN (".$notin.")"; 
    204     } 
    205      
    206     $sql       = "DELETE a,b,c FROM $wpdb->posts a LEFT JOIN $wpdb->term_relationships b ON (a.ID = b.object_id) LEFT JOIN $wpdb->postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision'".$where; 
    207      
    208     $revisions = $wpdb->query($sql); 
    209      
    210     return $revisions; 
     182    global $wpdb; 
     183 
     184    $num_rev = isset($filter['num_to_keep']) ? (int) str_replace("r_", "", $filter['num_to_keep']) : 5; 
     185 
     186    $allRevisions = $wpdb->get_results("SELECT post_parent FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_parent != 0 GROUP BY post_parent HAVING COUNT(ID) > {$num_rev}"); 
     187 
     188    if (!is_array($allRevisions)) { 
     189        return false; 
     190    } 
     191 
     192    foreach ($allRevisions as $revision) { 
     193        $toKeep = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_parent = '{$revision->post_parent}' ORDER BY post_date DESC LIMIT ".$num_rev); 
     194 
     195        $keepArray = array(); 
     196        foreach ($toKeep as $keep) { 
     197            $keepArray[] = $keep->ID; 
     198        } 
     199 
     200        if (empty($keepArray)) { 
     201            continue; 
     202        } 
     203 
     204        $keepQuery = implode(', ', $keepArray); 
     205        $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_parent = '{$revision->post_parent}' AND ID NOT IN ({$keepQuery})"); 
     206    } 
     207 
     208    return true; 
    211209} 
    212210 
     
    216214    /** @var wpdb $wpdb */ 
    217215    global $wpdb; 
    218     $query        = 'SHOW TABLE STATUS'; 
    219     $tables       = $wpdb->get_results($query, ARRAY_A); 
    220     $total_gain   = 0; 
    221     $table_string = ''; 
     216    $query            = 'SHOW TABLE STATUS'; 
     217    $tables           = $wpdb->get_results($query, ARRAY_A); 
     218    $tableOverhead    = 0; 
     219    $tablesToOptimize = array(); 
     220 
    222221    foreach ($tables as $table) { 
    223         if (isset($table['Engine']) && $table['Engine'] === 'MyISAM') { 
    224             if ($wpdb->base_prefix != $wpdb->prefix) { 
    225                 if (preg_match('/^'.$wpdb->prefix.'*/Ui', $table['Name'])) { 
    226                     if ($table['Data_free'] > 0) { 
    227                         $total_gain += $table['Data_free'] / 1024; 
    228                         $table_string .= $table['Name'].","; 
    229                     } 
    230                 } 
    231             } else { 
    232                 if (preg_match('/^'.$wpdb->prefix.'[0-9]{1,20}_*/Ui', $table['Name'])) { 
    233                     continue; 
    234                 } else { 
    235                     if ($table['Data_free'] > 0) { 
    236                         $total_gain += $table['Data_free'] / 1024; 
    237                         $table_string .= $table['Name'].","; 
    238                     } 
    239                 } 
    240             } 
    241             // @todo check if the cleanup was successful, if not, set a flag always skip innodb cleanup 
    242             //} elseif (isset($table['Engine']) && $table['Engine'] == 'InnoDB') { 
    243             //    $innodb_file_per_table = $wpdb->get_results("SHOW VARIABLES LIKE 'innodb_file_per_table'"); 
    244             //    if (isset($innodb_file_per_table[0]->Value) && $innodb_file_per_table[0]->Value === "ON") { 
    245             //        if ($table['Data_free'] > 0) { 
    246             //            $total_gain += $table['Data_free'] / 1024; 
    247             //            $table_string .= $table['Name'].","; 
    248             //        } 
    249             //    } 
    250         } 
    251     } 
    252  
    253     if ($clear) { 
    254         $table_string = substr($table_string, 0, strlen($table_string) - 1); //remove last , 
    255         $table_string = rtrim($table_string); 
    256         $query        = "OPTIMIZE TABLE $table_string"; 
    257         $optimize     = $wpdb->query($query); 
    258  
    259         return (bool) $optimize; 
    260     } else { 
    261         return round($total_gain, 3); 
    262     } 
     222        if (!isset($table['Engine']) || $table['Engine'] !== 'MyISAM' || $table['Data_free'] == 0) { 
     223            continue; 
     224        } 
     225 
     226        if ($wpdb->base_prefix === $wpdb->prefix && !preg_match('/^'.preg_quote($wpdb->prefix).'/Ui', $table['Name'])) { 
     227            continue; 
     228        } 
     229 
     230        if ($wpdb->base_prefix !== $wpdb->prefix && !preg_match('/^'.preg_quote($wpdb->prefix).'\d+_/Ui', $table['Name'])) { 
     231            continue; 
     232        } 
     233 
     234        $tableOverhead += $table['Data_free'] / 1024; 
     235        $tablesToOptimize[] = $table['Name']; 
     236    } 
     237 
     238    if (!$clear) { // we should only return the overhead 
     239        return round($tableOverhead, 3); 
     240    } 
     241 
     242    $optimize = true; 
     243 
     244    foreach ($tablesToOptimize as $tableToOptimize) { 
     245        $query    = 'OPTIMIZE TABLE '.$tableToOptimize; 
     246        $optimize = ((bool) $wpdb->query($query)) && $optimize; 
     247    } 
     248 
     249    return $optimize; 
    263250} 
    264251 
     
    588575                    /* rebrand worker or set default */ 
    589576                    $brand = ''; 
    590                     if($settings['worker_brand']){ 
     577                    if (isset($settings['worker_brand']) && $settings['worker_brand']) { 
    591578                        $brand = $settings['worker_brand']; 
    592579                    } 
  • cms-commander-client/trunk/init.php

    r1290464 r1424857  
    55Description: Manage all your Wordpress websites remotely and enhance your articles with targeted images and ads. Visit <a href="http://cmscommander.com">CMSCommander.com</a> to sign up. 
    66Author: CMS Commander 
    7 Version: 2.20 
     7Version: 2.21 
    88Author URI: http://cmscommander.com 
    99Text Domain: cms-commander-client 
     
    8080            if (!get_option('_cmsc_action_message_id') && !get_option('_cmsc_public_key')) { 
    8181                $public_key = base64_decode($public_key); 
    82                  
     82             
    8383                if (function_exists('openssl_verify')) { 
     84 
    8485                    $verify = openssl_verify($action . $id, base64_decode($signature), $public_key); 
    8586                    if ($verify == 1) { 
     87                     
    8688                        $cmsc_core->set_master_public_key($public_key); 
    8789                        $cmsc_core->set_cmsc_message_id($id); 
     
    9698                        if( isset( $add_settigns ) && is_array($add_settigns) && !empty( $add_settigns ) ) 
    9799                            apply_filters( 'cmsc_website_add', $add_settigns ); 
    98                              
     100 
    99101                        cmsc_response($cmsc_core->stats_instance->get_initial_stats(), true); 
    100102                    } else if ($verify == 0) { 
     
    108110                     
    109111                    if (!get_option('_cmsc_nossl_key')) { 
     112     
    110113                        srand(); 
    111114                         
     
    125128                         
    126129                        cmsc_response($cmsc_core->stats_instance->get_initial_stats(), true); 
    127                     } else 
     130                    } else { 
    128131                        cmsc_response('Please deactivate & activate CMS Commander plugin on your site, then re-add the site to your dashboard.', false); 
    129              
     132                    } 
    130133            } else { 
    131134                cmsc_response('Please deactivate & activate CMS Commander plugin on your site and re-add the site to your dashboard.', false); 
     
    229232    function cmsc_init() { 
    230233     
    231         $GLOBALS['CMSC_WORKER_VERSION']  = '2.20';define('CMSC_WORKER_VERSION', '2.20');     
     234        $GLOBALS['CMSC_WORKER_VERSION']  = '2.21';define('CMSC_WORKER_VERSION', '2.21');     
    232235 
    233236        // Ensure PHP version compatibility. 
  • cms-commander-client/trunk/lib/CMSC/Backup.php

    r1290464 r1424857  
    103103     * @return  array   an array with two keys for execution time and memory limit (0 - if not changed, 1 - if succesfully) 
    104104     */ 
    105     function set_memory() {                  
     105    function set_memory() {   
     106     
    106107        $changed = array('execution_time' => 0, 'memory_limit' => 0); 
    107108        ignore_user_abort(true); 
     
    138139     */ 
    139140    function get_backup_settings() { 
     141     
    140142        $backup_settings = get_option('cmsc_backup_tasks'); 
    141143         
    142         if (!empty($backup_settings)) 
     144        if (!empty($backup_settings)) { 
    143145            return $backup_settings; 
    144         else 
     146        } else { 
    145147            return false; 
     148        } 
    146149    } 
    147150     
     
    230233        $this->check_cron_remove(); 
    231234         
     235        $this->_log("CMSC - checking tasks...");         
     236         
    232237        $failed_emails = array(); 
    233238        $settings = $this->tasks; 
    234239        if (is_array($settings) && !empty($settings)) { 
    235240            foreach ($settings as $task_name => $setting) { 
     241             
     242                $this->_log($task_name . " time: ". time() . " next: " . $setting['task_args']['next']);         
    236243             
    237244                if (isset($setting['task_args']['next']) && $setting['task_args']['next'] < time()) { 
     
    311318                            'error' => $error 
    312319                        )); 
     320                        $this->_log($error); 
    313321                    } else { 
    314      
    315                         if (@count($setting['task_args']['account_info'])) { 
     322 
     323                        if (!empty($setting['task_args']['account_info'])) { 
    316324                         
    317325                            $this->_log("CMSC - we are in remote processing..."); 
     
    333341                                    'public_key' => $public_key, 
    334342                                ), 
    335                                 'timeout' => 0.01, 
     343                                'timeout' => 600, 
    336344                                'blocking' => false, 
    337345                                'sslverify' => apply_filters('https_local_ssl_verify', true) 
    338346                            ); 
    339347                            $return = wp_remote_post($cron_url, $args); 
     348                             
     349                            $this->_log("CMSC - remote upload started..."); 
    340350                            $this->_log($return); 
     351                            $this->_log($this->tasks[$task_name]['task_results']); 
     352                             
     353                            if(is_wp_error( $return )) { 
     354                                $this->_log("CMSC - error .. trigger action directly"); 
     355                                $this->_log(json_decode($args["body"]["args"])); 
     356 
     357                                $args = array("task_name" => $task_name, "backup_file" => $backup_file, "del_host_file" => $del_host_file); 
     358                                 
     359                                //$test = $this->remote_backup_now($args);$this->_log($test); 
     360                                do_action('cmsc_remote_upload', $args); 
     361 
     362                                $this->_log($this->tasks[$task_name]['task_results'][count($this->tasks[$task_name]['task_results']) - 1]);                              
     363                            } 
    341364                        }                    
    342365                    } 
     
    639662        @unlink($db_result); 
    640663        @rmdir(CMSC_DB_DIR); 
    641          
     664        $uploadDir = wp_upload_dir(); 
    642665        $remove = array( 
    643666        trim(basename(WP_CONTENT_DIR)) . "/" . md5('cmsc-worker') . "/cmsc_backups", 
     
    694717        //} else { 
    695718        //    $zip_result = false; 
    696        // } 
     719        //} 
    697720         
    698721        if (isset($zip_result['error'])) { 
     
    766789     */ 
    767790    function zip_archive_backup_db($task_name, $db_result, $backup_file) { 
     791     
    768792        $disable_comp = $this->tasks[$task_name]['task_args']['disable_comp']; 
    769793        /** @handled class */ 
     
    926950     */ 
    927951    function zip_archive_backup($task_name, $backup_file, $exclude, $include, $overwrite = false) { 
     952     
    928953        $filelist = $this->get_backup_files($exclude, $include); 
    929954        $disable_comp = $this->tasks[$task_name]['task_args']['disable_comp']; 
     
    962987     */ 
    963988    function pclzip_backup($task_name, $backup_file, $exclude, $include) { 
     989     
    964990        define('PCLZIP_TEMPORARY_DIR', CMSC_BACKUP_DIR . '/'); 
    965991        require_once ABSPATH . '/wp-admin/includes/class-pclzip.php'; 
     992        /** @handled class */ 
    966993        $zip = new PclZip($backup_file); 
    967994        $add = array( 
     
    11821209        if(strpos(DB_HOST,':')!==false) 
    11831210        { 
    1184             $host_sock = split(':',DB_HOST); 
     1211            if(function_exists("split")) { 
     1212                $host_sock = split(':',DB_HOST); 
     1213            } else { 
     1214                $host_sock = explode(':',DB_HOST);   
     1215            } 
    11851216            $hostname = $host_sock[0]; 
    11861217            $socketname = $host_sock[1]; 
     
    25882619        // {"access_token":"ya29.dQDGsJtLyibsWCEAAAD7EKZKPhDnVZj04aJ732mDZUTKt3NliTTykd3pBhAVktM4LuFKCc_W6mFB0Yhu5OY","token_type":"Bearer","expires_in":3600,"refresh_token":"1\/FXLvop0keUEDDHJMhltZ5KvY7E0AzlQe3kh92Jk5U68","created":1409766937} 
    25892620         
     2621        $this->_log("Google Drive ... in function"); 
     2622     
    25902623        $googleClient = new Google_ApiClient(); 
    25912624        $googleClient->setAccessToken($args['google_drive_token']); 
     
    26122645                'error' => 'Error while loading Google Drive backup directory: '.$e->getMessage(), 
    26132646            ); 
    2614         } 
     2647        }    
    26152648 
    26162649        if ($rootFiles->offsetExists(0)) { 
     
    26362669            } 
    26372670        } 
    2638  
    2639         if ($args['google_drive_site_folder']) { 
     2671  
     2672        if ($args['google_drive_site_folder']) {         
     2673         
    26402674            try { 
    26412675                $siteFolderTitle = $this->site_name; 
     
    26482682                ); 
    26492683            } 
     2684 
    26502685            if ($driveFiles->offsetExists(0)) { 
    26512686                $siteFolder = $driveFiles->offsetGet(0); 
     
    26702705        } else { 
    26712706            $siteFolder = $backupFolder; 
    2672         } 
     2707        }        
    26732708 
    26742709        $file_path  = explode('/', $args['backup_file']); 
     
    26902725        $media->setFileSize($fileSize); 
    26912726 
    2692  
     2727        $this->_log("Google Drive ... size:". $fileSize); 
     2728         
    26932729        // Upload the various chunks. $status will be false until the process is 
    26942730        // complete. 
     
    27162752        } 
    27172753        fclose($handle); 
     2754         
     2755        $this->_log("Google Drive ... finish"); 
    27182756 
    27192757        if (!$status instanceof Google_Service_Drive_DriveFile) { 
     
    27232761            ); 
    27242762        } 
    2725         $this->tasks[$args['task_name']]['task_results'][$args['task_result_key']]['google_drive']['file_id'] = $status->getId(); 
    2726                      
     2763        $this->tasks[$args['task_name']]['task_results'][$args['task_result_key']]['google_drive']['file_id'] = $status->getId();        
     2764             
    27272765        return true; 
    27282766    } 
     
    33533391        } 
    33543392         
    3355         $results       = $task['task_results']; 
     3393        $results       = $task['task_results'];      
    33563394        $taskResultKey = null; 
    33573395        $backup_file   = false; 
     
    33693407                $taskResultKey = count($results) - 1; 
    33703408            } 
    3371         } 
     3409        }        
    33723410         
    3373            // $return = array( 'error' => $results );   return $return; 
    3374              
    33753411        if ($backup_file && file_exists($backup_file)) { 
    33763412            //FTP, Amazon S3, Dropbox or Google Drive 
     3413             
    33773414            if (isset($account_info['cmsc_ftp']) && !empty($account_info['cmsc_ftp'])) { 
    33783415                $this->update_status($task_name, $this->statuses['ftp']); 
     
    34343471                    $this->update_status($task_name, $this->statuses['finished'], true); 
    34353472                } 
    3436             } 
     3473            }    
    34373474             
    34383475            if (isset($account_info['cmsc_google_drive']) && !empty($account_info['cmsc_google_drive'])) { 
     3476 
     3477                $this->_log("Google Drive start"); 
     3478             
    34393479                $this->update_status($task_name, $this->statuses['google_drive']); 
    34403480                $account_info['cmsc_google_drive']['backup_file'] = $backup_file;    
    34413481                $account_info['cmsc_google_drive']['task_name']       = $task_name; 
    34423482                $account_info['cmsc_google_drive']['task_result_key'] = $taskResultKey;  
    3443                  
     3483     
    34443484                $return = $this->google_drive_backup($account_info['cmsc_google_drive']); 
     3485             
    34453486                $this->wpdb_reconnect(); 
     3487             
     3488                $this->_log($return); 
    34463489                 
    34473490                if (!isset($return['error'])) { 
     
    34503493                } 
    34513494            } 
    3452              
     3495 
    34533496            $tasks = $this->tasks; 
    34543497            @file_put_contents(CMSC_BACKUP_DIR.'/cmsc_db/index.php', ''); 
  • cms-commander-client/trunk/lib/CMSC/Functions.php

    r1290464 r1424857  
    403403            $pargs = array( 
    404404                'include' => $pids, 
    405                 'post_type' => $ptype 
     405                'post_type' => $ptype, 
     406                'post_status' => array("publish", "pending", "draft", "future",  "private"), 
    406407            ); 
    407408 
     
    410411            $pargs = array( 
    411412                'post__in' => $pids, 
    412                 'post_type' => $ptype 
     413                'post_type' => $ptype, 
     414                'post_status' => array("publish", "pending", "draft", "future",  "private"), 
    413415            ); 
    414416 
  • cms-commander-client/trunk/lib/CMSC/Helper.php

    r1157808 r1424857  
    531531    }     
    532532         
    533          
     533    public function doCoreUpdateCheck() 
     534    { 
     535        global $wp_current_filter; 
     536        $wp_current_filter[] = 'load-update-core.php'; 
     537 
     538        if (function_exists('wp_clean_update_cache')) { 
     539            wp_clean_update_cache(); 
     540        } 
     541 
     542        wp_version_check(); 
     543 
     544        array_pop($wp_current_filter); 
     545 
     546        do_action('load-plugins.php'); 
     547    } 
     548 
     549    public function doPluginUpdateCheck() 
     550    { 
     551        global $wp_current_filter; 
     552        $wp_current_filter[] = 'load-update-core.php'; 
     553 
     554        if (function_exists('wp_clean_update_cache')) { 
     555            wp_clean_update_cache(); 
     556        } 
     557 
     558        wp_update_plugins(); 
     559 
     560        array_pop($wp_current_filter); 
     561 
     562        do_action('load-plugins.php'); 
     563    } 
     564 
     565    public function doThemeUpdateCheck() 
     566    { 
     567        global $wp_current_filter; 
     568        $wp_current_filter[] = 'load-update-core.php'; 
     569 
     570        if (function_exists('wp_clean_update_cache')) { 
     571            wp_clean_update_cache(); 
     572        } 
     573 
     574        wp_update_themes(); 
     575 
     576        array_pop($wp_current_filter); 
     577 
     578        do_action('load-plugins.php'); 
     579    }        
    534580     
    535581} 
  • cms-commander-client/trunk/lib/CMSC/Installer.php

    r1198134 r1424857  
    273273        } 
    274274 
    275         @wp_version_check(); 
     275        $this->doCoreUpdateCheck(); 
    276276         
    277277        $current_update = false; 
     
    452452            ); 
    453453        } 
    454              
     454         
     455        $this->doPluginUpdateCheck();    
    455456        $current = $this->cmsc_get_transient('update_plugins'); 
    456457        $versions = array(); 
     458        $return = array(); 
     459         
    457460        if (!empty($current)) { 
    458461            foreach ($plugins as $plugin => $data) { 
     
    460463                    $versions[$current->checked[$plugin]] = $plugin; 
    461464                } 
    462                 if (!isset($current->response[$plugin])) { 
    463                     unset($plugins[$plugin]); 
    464                 } 
    465             } 
    466         } 
    467         $return = array(); 
     465            } 
     466        } 
     467         
    468468        if (class_exists('Plugin_Upgrader') && class_exists('Bulk_Plugin_Upgrader_Skin')) { 
     469            /** @handled class */ 
    469470            $upgrader = new Plugin_Upgrader(new Bulk_Plugin_Upgrader_Skin(compact('nonce', 'url'))); 
    470471            $result   = $upgrader->bulk_upgrade(array_keys($plugins)); 
     472             
    471473            if (!function_exists('wp_update_plugins')) { 
    472474                include_once ABSPATH.'wp-includes/update.php'; 
    473475            } 
    474476             
    475             @wp_update_plugins(); 
     477            $this->doPluginUpdateCheck(); 
     478 
    476479            $current = $this->cmsc_get_transient('update_plugins'); 
    477480            if (!empty($result)) { 
     
    495498                    'error' => 'Upgrade failed.' 
    496499                ); 
    497         }    
    498         } else { 
    499          
     500            }    
     501        } else {         
    500502            return array( 
    501503                'error' => 'WordPress update required first.' 
     
    512514        } 
    513515         
     516        $this->doThemeUpdateCheck(); 
    514517        $current = $this->cmsc_get_transient('update_themes'); 
    515518        $versions = array(); 
     
    522525        } 
    523526        if (class_exists('Theme_Upgrader') && class_exists('Bulk_Theme_Upgrader_Skin')) { 
     527            /** @handled class */ 
    524528            $upgrader = new Theme_Upgrader(new Bulk_Theme_Upgrader_Skin(compact('title', 'nonce', 'url', 'theme'))); 
    525529            $result = $upgrader->bulk_upgrade($themes); 
     
    529533            } 
    530534             
    531             @wp_update_themes(); 
     535            $this->doThemeUpdateCheck(); 
    532536            $current = $this->cmsc_get_transient('update_themes'); 
    533537            $return = array(); 
    534538            if (!empty($result)) { 
    535539                foreach ($result as $theme_tmp => $theme_info) { 
    536                      if (is_wp_error($theme_info) || empty($theme_info)) { 
     540                    if (is_wp_error($theme_info) || empty($theme_info)) { 
    537541                        $return[$theme_tmp] = $this->cmsc_get_error($theme_info); 
    538542                    } else { 
     
    548552                    'upgraded' => $return 
    549553                ); 
    550             } else 
     554            } else { 
    551555                return array( 
    552556                    'error' => 'Upgrade failed.' 
    553557                ); 
     558            }    
    554559        } else { 
    555560            return array( 
     
    561566    function upgrade_premium($premium = false) 
    562567    { 
    563         global $cmsc_plugin_url; 
    564          
    565568        if (!class_exists('WP_Upgrader')) { 
    566569            include_once ABSPATH.'wp-admin/includes/class-wp-upgrader.php'; 
     
    634637                        } 
    635638 
     639                        /** @handled class */ 
    636640                        $upgrader_skin              = new WP_Upgrader_Skin(); 
    637641                        $upgrader_skin->done_header = true; 
     642                        /** @handled class */ 
    638643                        $upgrader                   = new WP_Upgrader(); 
    639644                        @$update_result = $upgrader->run( 
  • cms-commander-client/trunk/lib/CMSC/Stats.php

    r1203021 r1424857  
    400400 
    401401        return $userList; 
    402     }     
     402    }   
     403 
     404    private function wpmu_dev_fix($tag) 
     405    { 
     406        if (!class_exists('WPMUDEV_Dashboard_Site')) { 
     407            return null; 
     408        } 
     409 
     410        global $wp_filter; 
     411 
     412        if (empty($wp_filter[$tag][10])) { 
     413            return null; 
     414        } 
     415 
     416        foreach ($wp_filter[$tag][10] as $callable) { 
     417            if (empty($callable['function']) || !is_array($callable['function'])) { 
     418                continue; 
     419            } 
     420 
     421            if (!$callable['function'][0] instanceof WPMUDEV_Dashboard_Site) { 
     422                continue; 
     423            } 
     424 
     425            remove_filter($tag, $callable['function']); 
     426 
     427            return $callable['function']; 
     428        } 
     429 
     430        return null; 
     431    }    
    403432     
    404433    function pre_init_stats($params) 
    405     { 
    406         global $_cmsc_item_filter; 
    407          
     434    {        
    408435        include_once(ABSPATH . 'wp-includes/update.php'); 
    409436        include_once(ABSPATH . '/wp-admin/includes/update.php'); 
    410          
     437     
     438        // remove WPMU Dev filters that do not play nice and screw up the transients 
     439        $callablePluginFn = $this->wpmu_dev_fix('site_transient_update_plugins'); 
     440        $callableThemeFn  = $this->wpmu_dev_fix('site_transient_update_themes'); 
     441     
    411442        $stats = $this->cmsc_parse_action_params('pre_init_stats', $params, $this); 
    412         $num   = extract($params); 
     443        extract($params); 
    413444         
    414         if ($params['refresh'] == 'transient') { 
    415             global $wp_current_filter; 
    416             // Some plugins that hook to transient setting rely on get_plugin_data() function. 
    417             include_once ABSPATH.'wp-admin/includes/plugin.php'; 
    418             $wp_current_filter[] = 'load-update-core.php'; 
    419  
    420             wp_version_check(); 
    421             wp_update_themes(); 
    422  
    423             // THIS IS INTENTIONAL, please do not delete one of the calls to wp_update_plugins(), it is required for 
    424             // some custom plugins (read premium) to work with ManageWP :) 
    425             // the second call is not going to trigger the remote post invoked from the wp_update_plugins call 
    426             wp_update_plugins(); 
    427  
    428             array_pop($wp_current_filter); 
    429  
    430             do_action('load-plugins.php'); 
    431         }        
    432          
    433     /** @var $wpdb wpdb */ 
     445        if (isset($params['doAdminInit'])) { 
     446            do_action('admin_init'); 
     447        }        
     448         
     449        if ($params['refresh'] == 'transient') { 
     450            global $wp_current_filter; 
     451            $wp_current_filter[] = 'load-update-core.php'; 
     452 
     453            if (function_exists('wp_clean_update_cache')) { 
     454                wp_clean_update_cache(); 
     455            } 
     456 
     457            wp_version_check(); 
     458            wp_update_themes(); 
     459 
     460            // THIS IS INTENTIONAL, please do not delete one of the calls to wp_update_plugins(), it is required for 
     461            // some custom plugins (read premium) to work with ManageWP :) 
     462            // the second call is not going to trigger the remote post invoked from the wp_update_plugins call 
     463            wp_update_plugins(); 
     464 
     465            array_pop($wp_current_filter); 
     466 
     467            do_action('load-plugins.php'); 
     468        } 
     469 
     470        // it is now safe to activate WPMU Dev filters again 
     471        if (!empty($callablePluginFn)) { 
     472            add_filter('site_transient_update_plugins', $callablePluginFn); 
     473        } 
     474 
     475        if (!empty($callableThemeFn)) { 
     476            add_filter('site_transient_update_themes', $callableThemeFn); 
     477        }        
     478         
     479        /** @var $wpdb wpdb */ 
    434480        global $wpdb, $cmsc_wp_version, $cmsc_plugin_dir, $wp_version, $wp_local_package; 
    435481         
  • cms-commander-client/trunk/readme.txt

    r1401077 r1424857  
    22Contributors: thoefter 
    33Tags: cmscommander, cms, admin, analytics, amazon, api, google, drive, authentication, automatic, backup, dashboard, dropbox, integration, manage, s3, stats, affiliate, flickr, images, affiliate, ads, youtube, videos, yahoo 
    4 Tested up to: 4.5 
    5 Stable tag: 2.20 
     4Tested up to: 4.5.2 
     5Stable tag: 2.21 
    66 
    77CMS Commander helps you to manage all your WordPress sites faster and from a single dashboard. 
     
    5050 
    5151== Changelog ==   
     52 
     53= 2.21 = 
     54 
     55- Improvements to the backup procedure and performance 
     56- Fixes to the optimization and database cleanup feature 
     57- Various minor bug fixes 
    5258 
    5359= 2.20 = 
  • cms-commander-client/trunk/version

    r1290464 r1424857  
    1 2.20 
     12.21 
Note: See TracChangeset for help on using the changeset viewer.