Version Description
Download this release
Release Info
Developer | freediver |
Plugin | ManageWP Worker |
Version | 3.9.2 |
Comparing to | |
See all releases |
Code changes from version 3.9.1 to 3.9.2
- backup.class.php +30 -38
- core.class.php +31 -9
- helper.class.php +9 -9
- index.html +0 -0
- init.php +406 -346
- installer.class.php +120 -68
- stats.class.php +27 -21
- version +1 -1
backup.class.php
CHANGED
@@ -19,31 +19,37 @@ class MMB_Backup extends MMB_Core
|
|
19 |
|
20 |
function backup($args)
|
21 |
{
|
22 |
-
|
23 |
@ini_set('memory_limit', '300M');
|
24 |
-
@set_time_limit(300);
|
25 |
-
|
26 |
-
$type = $args['type'];
|
27 |
-
//what like full or only db
|
28 |
-
$what = $args['what'];
|
29 |
|
30 |
if (trim($type) == '')
|
31 |
$type = 'manual'; //default
|
|
|
32 |
$sec_string = md5('mmb-worker');
|
33 |
$file = "/$sec_string/mwp_backups";
|
34 |
-
$file_path = WP_CONTENT_DIR . $file;
|
35 |
-
|
36 |
-
@set_time_limit(300);
|
37 |
if (!file_exists($file_path)) {
|
38 |
if (!mkdir($file_path, 0755, true))
|
39 |
return array(
|
40 |
'error' => 'Permission denied, make sure you have write permission to wp-content folder.'
|
41 |
);
|
42 |
}
|
43 |
-
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
if (trim($what) == 'full') {
|
46 |
-
//take wp-content backup
|
47 |
$content_backup = $this->backup_wpcontent($type);
|
48 |
if (array_key_exists('error',$content_backup)) {
|
49 |
@unlink($content_backup['path']);
|
@@ -68,15 +74,8 @@ class MMB_Backup extends MMB_Core
|
|
68 |
}
|
69 |
|
70 |
include_once ABSPATH . '/wp-admin/includes/class-pclzip.php';
|
71 |
-
|
72 |
-
|
73 |
-
$worker_options = get_option('mmb-worker');
|
74 |
-
$tmp_file = WP_CONTENT_DIR . '/' . basename($worker_options['backups'][$type]['path']);
|
75 |
-
|
76 |
-
if (rename($worker_options['backups'][$type]['path'], $tmp_file)) {
|
77 |
-
@unlink($worker_options['backups'][$type]['path']);
|
78 |
-
}
|
79 |
-
|
80 |
//Prepare .zip file name
|
81 |
$site_name = $this->remove_http(get_bloginfo('url'));
|
82 |
$site_name = str_replace(array(
|
@@ -94,6 +93,7 @@ class MMB_Backup extends MMB_Core
|
|
94 |
$archive = new PclZip($backup_file);
|
95 |
}
|
96 |
|
|
|
97 |
if (trim($what) == 'full') {
|
98 |
$htaccess_path = ABSPATH . ".htaccess";
|
99 |
$wp_config_path = ABSPATH . "wp-config.php";
|
@@ -103,11 +103,8 @@ class MMB_Backup extends MMB_Core
|
|
103 |
$result = $this->mmb_exec($command);
|
104 |
ob_get_clean();
|
105 |
} else {
|
106 |
-
|
107 |
-
|
108 |
-
$result = $archive->add($htaccess_path, PCLZIP_OPT_REMOVE_ALL_PATH);
|
109 |
-
$result = $archive->add($wp_config_path, PCLZIP_OPT_REMOVE_ALL_PATH);
|
110 |
-
|
111 |
}
|
112 |
|
113 |
} elseif (trim($what) == 'db') {
|
@@ -123,21 +120,18 @@ class MMB_Backup extends MMB_Core
|
|
123 |
}
|
124 |
|
125 |
if (!$result) {
|
126 |
-
if (rename($tmp_file, $worker_options['backups'][$type]['path'])) {
|
127 |
-
@unlink($tmp_file);
|
128 |
-
}
|
129 |
return array(
|
130 |
'error' => 'Backup failed. Cannot create backup zip file.'
|
131 |
);
|
132 |
}
|
133 |
|
134 |
-
|
135 |
@unlink($content_backup['path']);
|
136 |
@unlink($db_backup['path']);
|
137 |
|
138 |
$backup_url = WP_CONTENT_URL . $file . '/' . $site_name . '_' . $type . '_' . $what . '_' . date('Y-m-d') .'_'.$hash. '.zip';
|
139 |
-
|
140 |
$worker_options = get_option('mmb-worker');
|
|
|
141 |
//remove old file
|
142 |
if ($worker_options['backups'][$type]['path'] != $backup_file) {
|
143 |
@unlink($worker_options['backups'][$type]['path']);
|
@@ -160,7 +154,6 @@ class MMB_Backup extends MMB_Core
|
|
160 |
$content_dir = $content_dir[(count($content_dir)-1)];
|
161 |
|
162 |
if ($this->mmb_exec('which zip')) {
|
163 |
-
|
164 |
chdir(ABSPATH);
|
165 |
$command = "zip -r $file_path './' -x '$content_dir/" . $sec_string . "/*'";
|
166 |
ob_start();
|
@@ -174,7 +167,7 @@ class MMB_Backup extends MMB_Core
|
|
174 |
);
|
175 |
}
|
176 |
else{
|
177 |
-
return array('error' => 'Failed to backup site. Try to enable Zip
|
178 |
}
|
179 |
|
180 |
|
@@ -182,8 +175,7 @@ class MMB_Backup extends MMB_Core
|
|
182 |
require_once ABSPATH . '/wp-admin/includes/class-pclzip.php';
|
183 |
$archive = new PclZip($file_path);
|
184 |
$result = $archive->add(ABSPATH, PCLZIP_OPT_REMOVE_PATH, ABSPATH);
|
185 |
-
|
186 |
-
$this->_log($archive);
|
187 |
if ($result) {
|
188 |
$file_url = WP_CONTENT_URL . $file;
|
189 |
return array(
|
@@ -194,10 +186,10 @@ class MMB_Backup extends MMB_Core
|
|
194 |
else {
|
195 |
@unlink($file_path);
|
196 |
if($archive->error_code == '-10'){
|
197 |
-
return array('error' => 'Failed to zip backup
|
198 |
}
|
199 |
else{
|
200 |
-
return array('error' => 'Failed to backup site. Try to enable Zip
|
201 |
}
|
202 |
}
|
203 |
}
|
@@ -282,7 +274,7 @@ class MMB_Backup extends MMB_Core
|
|
282 |
$j = 1;
|
283 |
foreach ($row as $value) {
|
284 |
$value = addslashes($value);
|
285 |
-
$value = preg_replace("
|
286 |
$num_values == $j ? $dump_data .= "'" . $value . "'" : $dump_data .= "'" . $value . "', ";
|
287 |
$j++;
|
288 |
unset($value);
|
19 |
|
20 |
function backup($args)
|
21 |
{
|
|
|
22 |
@ini_set('memory_limit', '300M');
|
23 |
+
@set_time_limit(300); //five minutes
|
24 |
+
|
25 |
+
$type = $args['type']; //type like manual, weekly, daily
|
26 |
+
$what = $args['what']; //what like full or only db
|
|
|
27 |
|
28 |
if (trim($type) == '')
|
29 |
$type = 'manual'; //default
|
30 |
+
|
31 |
$sec_string = md5('mmb-worker');
|
32 |
$file = "/$sec_string/mwp_backups";
|
33 |
+
$file_path = WP_CONTENT_DIR . $file;
|
34 |
+
|
|
|
35 |
if (!file_exists($file_path)) {
|
36 |
if (!mkdir($file_path, 0755, true))
|
37 |
return array(
|
38 |
'error' => 'Permission denied, make sure you have write permission to wp-content folder.'
|
39 |
);
|
40 |
}
|
41 |
+
|
42 |
+
@file_put_contents($file_path . '/index.php', ''); //safe
|
43 |
+
|
44 |
+
//delete possible breaked previous backups
|
45 |
+
foreach (glob($file_path."/*.zip") as $filename) {
|
46 |
+
$short = basename($filename);
|
47 |
+
preg_match('/^wp\-content(.*)/Ui',$short,$matches);
|
48 |
+
if($matches)
|
49 |
+
@unlink($filename);
|
50 |
+
}
|
51 |
+
|
52 |
if (trim($what) == 'full') {
|
|
|
53 |
$content_backup = $this->backup_wpcontent($type);
|
54 |
if (array_key_exists('error',$content_backup)) {
|
55 |
@unlink($content_backup['path']);
|
74 |
}
|
75 |
|
76 |
include_once ABSPATH . '/wp-admin/includes/class-pclzip.php';
|
77 |
+
//$worker_options = get_option('mmb-worker');
|
78 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
//Prepare .zip file name
|
80 |
$site_name = $this->remove_http(get_bloginfo('url'));
|
81 |
$site_name = str_replace(array(
|
93 |
$archive = new PclZip($backup_file);
|
94 |
}
|
95 |
|
96 |
+
|
97 |
if (trim($what) == 'full') {
|
98 |
$htaccess_path = ABSPATH . ".htaccess";
|
99 |
$wp_config_path = ABSPATH . "wp-config.php";
|
103 |
$result = $this->mmb_exec($command);
|
104 |
ob_get_clean();
|
105 |
} else {
|
106 |
+
$files_to_add = array($content_backup['path'],$db_backup['path'],$htaccess_path,$wp_config_path);
|
107 |
+
$result = $archive->add($files_to_add, PCLZIP_OPT_REMOVE_ALL_PATH);
|
|
|
|
|
|
|
108 |
}
|
109 |
|
110 |
} elseif (trim($what) == 'db') {
|
120 |
}
|
121 |
|
122 |
if (!$result) {
|
|
|
|
|
|
|
123 |
return array(
|
124 |
'error' => 'Backup failed. Cannot create backup zip file.'
|
125 |
);
|
126 |
}
|
127 |
|
128 |
+
|
129 |
@unlink($content_backup['path']);
|
130 |
@unlink($db_backup['path']);
|
131 |
|
132 |
$backup_url = WP_CONTENT_URL . $file . '/' . $site_name . '_' . $type . '_' . $what . '_' . date('Y-m-d') .'_'.$hash. '.zip';
|
|
|
133 |
$worker_options = get_option('mmb-worker');
|
134 |
+
|
135 |
//remove old file
|
136 |
if ($worker_options['backups'][$type]['path'] != $backup_file) {
|
137 |
@unlink($worker_options['backups'][$type]['path']);
|
154 |
$content_dir = $content_dir[(count($content_dir)-1)];
|
155 |
|
156 |
if ($this->mmb_exec('which zip')) {
|
|
|
157 |
chdir(ABSPATH);
|
158 |
$command = "zip -r $file_path './' -x '$content_dir/" . $sec_string . "/*'";
|
159 |
ob_start();
|
167 |
);
|
168 |
}
|
169 |
else{
|
170 |
+
return array('error' => 'Failed to backup site. Try to enable Zip on your server.');
|
171 |
}
|
172 |
|
173 |
|
175 |
require_once ABSPATH . '/wp-admin/includes/class-pclzip.php';
|
176 |
$archive = new PclZip($file_path);
|
177 |
$result = $archive->add(ABSPATH, PCLZIP_OPT_REMOVE_PATH, ABSPATH);
|
178 |
+
$result = $archive->delete(PCLZIP_OPT_BY_NAME, $content_dir.'/'.$sec_string.'/');
|
|
|
179 |
if ($result) {
|
180 |
$file_url = WP_CONTENT_URL . $file;
|
181 |
return array(
|
186 |
else {
|
187 |
@unlink($file_path);
|
188 |
if($archive->error_code == '-10'){
|
189 |
+
return array('error' => 'Failed to zip backup. Try increasing memory limit and/or free space on your server.');
|
190 |
}
|
191 |
else{
|
192 |
+
return array('error' => 'Failed to backup site. Try to enable Zip on your server.');
|
193 |
}
|
194 |
}
|
195 |
}
|
274 |
$j = 1;
|
275 |
foreach ($row as $value) {
|
276 |
$value = addslashes($value);
|
277 |
+
$value = preg_replace("/\n/Ui", "\\n", $value);
|
278 |
$num_values == $j ? $dump_data .= "'" . $value . "'" : $dump_data .= "'" . $value . "', ";
|
279 |
$j++;
|
280 |
unset($value);
|
core.class.php
CHANGED
@@ -258,14 +258,25 @@ class MMB_Core extends MMB_Helper
|
|
258 |
*/
|
259 |
function install()
|
260 |
{
|
261 |
-
global $wp_object_cache;
|
262 |
if(!empty($wp_object_cache))
|
263 |
@$wp_object_cache->flush();
|
264 |
|
265 |
// delete plugin options, just in case
|
266 |
-
|
267 |
-
|
268 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
|
270 |
}
|
271 |
|
@@ -288,13 +299,24 @@ class MMB_Core extends MMB_Helper
|
|
288 |
*/
|
289 |
function uninstall()
|
290 |
{
|
291 |
-
global $wp_object_cache;
|
292 |
if(!empty($wp_object_cache))
|
293 |
@$wp_object_cache->flush();
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
298 |
}
|
299 |
|
300 |
/**
|
258 |
*/
|
259 |
function install()
|
260 |
{
|
261 |
+
global $wp_object_cache, $wpdb;
|
262 |
if(!empty($wp_object_cache))
|
263 |
@$wp_object_cache->flush();
|
264 |
|
265 |
// delete plugin options, just in case
|
266 |
+
if($this->mmb_multisite != false){
|
267 |
+
$blog_ids = $wpdb->get_results($wpdb->prepare('SELECT blog_id FROM `wp_blogs`'));
|
268 |
+
if(!empty($blog_ids)){
|
269 |
+
foreach($blog_ids as $blog_id){
|
270 |
+
$wpdb->query($wpdb->prepare('DELETE FROM '.$wpdb->prefix.$blog->blog_id.'_options WHERE `option_name` = "_worker_nossl_key";'));
|
271 |
+
$wpdb->query($wpdb->prepare('DELETE FROM '.$wpdb->prefix.$blog->blog_id.'_options WHERE `option_name` = "_worker_public_key";'));
|
272 |
+
$wpdb->query($wpdb->prepare('DELETE FROM '.$wpdb->prefix.$blog->blog_id.'_options WHERE `option_name` = "_action_message_id";'));
|
273 |
+
}
|
274 |
+
}
|
275 |
+
} else {
|
276 |
+
delete_option('_worker_nossl_key');
|
277 |
+
delete_option('_worker_public_key');
|
278 |
+
delete_option('_action_message_id');
|
279 |
+
}
|
280 |
|
281 |
}
|
282 |
|
299 |
*/
|
300 |
function uninstall()
|
301 |
{
|
302 |
+
global $wp_object_cache, $wpdb;
|
303 |
if(!empty($wp_object_cache))
|
304 |
@$wp_object_cache->flush();
|
305 |
+
|
306 |
+
if($this->mmb_multisite != false){
|
307 |
+
$blog_ids = $wpdb->get_results($wpdb->prepare('SELECT blog_id FROM `wp_blogs`'));
|
308 |
+
if(!empty($blog_ids)){
|
309 |
+
foreach($blog_ids as $blog){
|
310 |
+
$wpdb->query($wpdb->prepare('DELETE FROM '.$wpdb->prefix.$blog->blog_id.'_options WHERE `option_name` = "_worker_nossl_key";'));
|
311 |
+
$wpdb->query($wpdb->prepare('DELETE FROM '.$wpdb->prefix.$blog->blog_id.'_options WHERE `option_name` = "_worker_public_key";'));
|
312 |
+
$wpdb->query($wpdb->prepare('DELETE FROM '.$wpdb->prefix.$blog->blog_id.'_options WHERE `option_name` = "_action_message_id";'));
|
313 |
+
}
|
314 |
+
}
|
315 |
+
} else {
|
316 |
+
delete_option('_worker_nossl_key');
|
317 |
+
delete_option('_worker_public_key');
|
318 |
+
delete_option('_action_message_id');
|
319 |
+
}
|
320 |
}
|
321 |
|
322 |
/**
|
helper.class.php
CHANGED
@@ -85,11 +85,11 @@ class MMB_Helper
|
|
85 |
if($this->mmb_multisite)
|
86 |
return $this->mmb_set_sitemeta_transient($option_name, $data);
|
87 |
|
88 |
-
global $
|
89 |
|
90 |
-
if (version_compare($
|
91 |
update_option($option_name, $data);
|
92 |
-
} else if (version_compare($
|
93 |
update_option('_transient_' . $option_name, $data);
|
94 |
} else {
|
95 |
update_option('_site_transient_' . $option_name, $data);
|
@@ -104,12 +104,12 @@ class MMB_Helper
|
|
104 |
if($this->mmb_multisite)
|
105 |
return $this->mmb_get_sitemeta_transient($option_name);
|
106 |
|
107 |
-
global $
|
108 |
|
109 |
|
110 |
-
if (version_compare($
|
111 |
return get_option($option_name);
|
112 |
-
} else if (version_compare($
|
113 |
return get_option('_transient_' . $option_name);
|
114 |
} else {
|
115 |
return get_option('_site_transient_' . $option_name);
|
@@ -122,11 +122,11 @@ class MMB_Helper
|
|
122 |
return FALSE;
|
123 |
}
|
124 |
|
125 |
-
global $
|
126 |
|
127 |
-
if (version_compare($
|
128 |
delete_option($option_name);
|
129 |
-
} else if (version_compare($
|
130 |
delete_option('_transient_' . $option_name);
|
131 |
} else {
|
132 |
delete_option('_site_transient_' . $option_name);
|
85 |
if($this->mmb_multisite)
|
86 |
return $this->mmb_set_sitemeta_transient($option_name, $data);
|
87 |
|
88 |
+
global $wp_version;
|
89 |
|
90 |
+
if (version_compare($wp_version, '2.7.9', '<=')) {
|
91 |
update_option($option_name, $data);
|
92 |
+
} else if (version_compare($wp_version, '2.9.9', '<=')) {
|
93 |
update_option('_transient_' . $option_name, $data);
|
94 |
} else {
|
95 |
update_option('_site_transient_' . $option_name, $data);
|
104 |
if($this->mmb_multisite)
|
105 |
return $this->mmb_get_sitemeta_transient($option_name);
|
106 |
|
107 |
+
global $wp_version;
|
108 |
|
109 |
|
110 |
+
if (version_compare($wp_version, '2.7.9', '<=')) {
|
111 |
return get_option($option_name);
|
112 |
+
} else if (version_compare($wp_version, '2.9.9', '<=')) {
|
113 |
return get_option('_transient_' . $option_name);
|
114 |
} else {
|
115 |
return get_option('_site_transient_' . $option_name);
|
122 |
return FALSE;
|
123 |
}
|
124 |
|
125 |
+
global $wp_version;
|
126 |
|
127 |
+
if (version_compare($wp_version, '2.7.9', '<=')) {
|
128 |
delete_option($option_name);
|
129 |
+
} else if (version_compare($wp_version, '2.9.9', '<=')) {
|
130 |
delete_option('_transient_' . $option_name);
|
131 |
} else {
|
132 |
delete_option('_site_transient_' . $option_name);
|
index.html
ADDED
File without changes
|
init.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: ManageWP - Worker
|
|
4 |
Plugin URI: http://managewp.com/
|
5 |
Description: Manage all your blogs from one dashboard. Visit <a href="http://managewp.com">ManageWP.com</a> to sign up.
|
6 |
Author: Prelovac Media
|
7 |
-
Version: 3.9.
|
8 |
Author URI: http://www.prelovac.com
|
9 |
*/
|
10 |
|
@@ -20,7 +20,7 @@ Author URI: http://www.prelovac.com
|
|
20 |
**************************************************************/
|
21 |
|
22 |
|
23 |
-
define('MMB_WORKER_VERSION', '3.9.
|
24 |
|
25 |
global $wpdb, $mmb_plugin_dir, $mmb_plugin_url;
|
26 |
|
@@ -93,392 +93,452 @@ if (function_exists('register_deactivation_hook'))
|
|
93 |
$mmb_core,
|
94 |
'uninstall'
|
95 |
));
|
|
|
|
|
96 |
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
{
|
101 |
-
|
102 |
-
if (!isset($HTTP_RAW_POST_DATA)) {
|
103 |
-
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
|
104 |
-
}
|
105 |
-
ob_start();
|
106 |
-
|
107 |
-
global $mmb_core, $mmb_actions, $new_actions;
|
108 |
-
|
109 |
-
$data = base64_decode($HTTP_RAW_POST_DATA);
|
110 |
-
if ($data)
|
111 |
-
$num = @extract(unserialize($data));
|
112 |
-
|
113 |
-
if ($action) {
|
114 |
-
global $w3_plugin_totalcache;
|
115 |
-
if(!empty($w3_plugin_totalcache)){
|
116 |
-
@$w3_plugin_totalcache->flush_dbcache();
|
117 |
-
@$w3_plugin_totalcache->flush_objectcache();
|
118 |
}
|
|
|
119 |
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
}
|
144 |
-
|
145 |
/* Main response function */
|
|
|
146 |
|
147 |
-
function mmb_response($response = false, $success = true)
|
148 |
-
{
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
|
|
|
|
161 |
}
|
162 |
-
exit("<MWPHEADER>" . base64_encode(serialize($return))."<ENDMWPHEADER>");
|
163 |
}
|
164 |
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
|
|
|
|
206 |
}
|
207 |
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
|
|
|
|
230 |
}
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
}
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
|
|
|
|
245 |
}
|
246 |
-
|
247 |
//post
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
|
|
|
|
257 |
}
|
258 |
-
function mmb_change_post_status($params)
|
259 |
-
{
|
260 |
-
global $mmb_core;
|
261 |
-
$mmb_core->get_post_instance();
|
262 |
-
$return = $mmb_core->post_instance->change_status($params);
|
263 |
-
//mmb_response($return, true);
|
264 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
265 |
}
|
|
|
266 |
//comments
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
|
|
|
|
|
|
278 |
}
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
|
|
|
|
284 |
}
|
285 |
|
|
|
286 |
//backup
|
287 |
-
function mmb_backup_now($params)
|
288 |
-
{
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
|
|
299 |
}
|
300 |
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
|
|
|
|
312 |
}
|
313 |
-
|
314 |
-
function mmb_check_backup_compat($params)
|
315 |
-
{
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
|
|
325 |
}
|
326 |
-
|
327 |
-
function mmb_optimize_tables($params)
|
328 |
-
{
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
|
|
336 |
}
|
337 |
-
|
338 |
-
function mmb_restore_now($params)
|
339 |
-
{
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
|
|
348 |
}
|
349 |
-
|
350 |
-
function mmb_update_worker_plugin($params)
|
351 |
-
{
|
352 |
-
|
353 |
-
|
|
|
354 |
}
|
355 |
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
|
|
|
|
361 |
}
|
362 |
-
|
363 |
-
function mmb_search_posts_by_term($params)
|
364 |
-
{
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
|
|
417 |
}
|
418 |
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
{
|
429 |
-
global $mmb_core, $mmb_upgrading;
|
430 |
-
$mmb_core->get_installer_instance();
|
431 |
-
$return = $mmb_core->installer_instance->do_upgrade($params);
|
432 |
-
mmb_response($return, true);
|
433 |
-
|
434 |
}
|
435 |
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
$
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
mmb_response($return, true);
|
446 |
-
}
|
447 |
-
|
448 |
}
|
449 |
-
|
450 |
-
function
|
451 |
-
{
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
|
|
462 |
}
|
463 |
-
|
464 |
-
function
|
465 |
-
{
|
466 |
-
foreach($update_actions as $key => $action)
|
467 |
{
|
468 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
469 |
}
|
470 |
-
|
471 |
-
return $update_actions;
|
472 |
-
|
473 |
}
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
480 |
}
|
481 |
-
|
482 |
add_filter('install_plugin_complete_actions','mmb_iframe_plugins_fix');
|
483 |
|
484 |
|
4 |
Plugin URI: http://managewp.com/
|
5 |
Description: Manage all your blogs from one dashboard. Visit <a href="http://managewp.com">ManageWP.com</a> to sign up.
|
6 |
Author: Prelovac Media
|
7 |
+
Version: 3.9.2
|
8 |
Author URI: http://www.prelovac.com
|
9 |
*/
|
10 |
|
20 |
**************************************************************/
|
21 |
|
22 |
|
23 |
+
define('MMB_WORKER_VERSION', '3.9.2');
|
24 |
|
25 |
global $wpdb, $mmb_plugin_dir, $mmb_plugin_url;
|
26 |
|
93 |
$mmb_core,
|
94 |
'uninstall'
|
95 |
));
|
96 |
+
do_action('after_db_upgrade');
|
97 |
+
if( !function_exists ( 'mmb_parse_request' )) {
|
98 |
|
99 |
+
function mmb_parse_request()
|
100 |
+
{
|
101 |
+
|
102 |
+
if (!isset($HTTP_RAW_POST_DATA)) {
|
103 |
+
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
}
|
105 |
+
ob_start();
|
106 |
|
107 |
+
global $mmb_core, $mmb_actions, $new_actions, $wp_db_version, $wpmu_version;
|
108 |
+
|
109 |
+
$data = base64_decode($HTTP_RAW_POST_DATA);
|
110 |
+
if ($data)
|
111 |
+
$num = @extract(unserialize($data));
|
112 |
+
|
113 |
+
if ($action) {
|
114 |
+
global $w3_plugin_totalcache, $wp_object_cache;
|
115 |
+
@set_time_limit(300);
|
116 |
+
|
117 |
+
if(is_object($w3_plugin_totalcache) && !empty($w3_plugin_totalcache)){
|
118 |
+
@$w3_plugin_totalcache->flush_dbcache();
|
119 |
+
@$w3_plugin_totalcache->flush_objectcache();
|
120 |
+
}
|
121 |
+
|
122 |
+
if(is_object($wp_object_cache) && !empty($wp_object_cache)){
|
123 |
+
$wp_object_cache->flush();
|
124 |
+
}
|
125 |
+
update_option('mwp_iframe_options_header', microtime(true));
|
126 |
+
// mmb_response($mmb_actions, false);
|
127 |
+
if (!$mmb_core->check_if_user_exists($params['username']))
|
128 |
+
mmb_response('Username <b>' . $params['username'] . '</b> does not have administrator capabilities. Enter the correct username in the site options.', false);
|
129 |
+
|
130 |
+
|
131 |
+
/* in case database upgrade required, do database backup and perform upgrade ( wordpress wp_upgrade() function ) */
|
132 |
+
if( strlen(trim($wp_db_version)) ){
|
133 |
+
if ( get_option('db_version') != $wp_db_version ) {
|
134 |
+
/* in multisite network, please update database manualy */
|
135 |
+
if (empty($wpmu_version) || (function_exists('is_multisite') && !is_multisite())){
|
136 |
+
if( ! function_exists('wp_upgrade'))
|
137 |
+
include_once(ABSPATH.'wp-admin/includes/upgrade.php');
|
138 |
+
|
139 |
+
ob_clean();
|
140 |
+
@wp_upgrade();
|
141 |
+
@do_action('after_db_upgrade');
|
142 |
+
ob_end_clean();
|
143 |
+
}
|
144 |
+
}
|
145 |
+
}
|
146 |
+
|
147 |
+
if ($action == 'add_site') {
|
148 |
+
mmb_add_site($params);
|
149 |
+
mmb_response('You should never see this.', false);
|
150 |
+
}
|
151 |
+
|
152 |
+
$auth = $mmb_core->authenticate_message($action . $id, $signature, $id);
|
153 |
+
if ($auth === true) {
|
154 |
+
if (array_key_exists($action, $mmb_actions) && function_exists($mmb_actions[$action]))
|
155 |
+
call_user_func($mmb_actions[$action], $params);
|
156 |
+
else
|
157 |
+
mmb_response('Action "' . $action . '" does not exist.', false);
|
158 |
+
} else {
|
159 |
+
mmb_response($auth['error'], false);
|
160 |
+
}
|
161 |
+
}
|
162 |
+
|
163 |
+
|
164 |
+
ob_end_clean();
|
165 |
+
}
|
166 |
}
|
|
|
167 |
/* Main response function */
|
168 |
+
if( !function_exists ( 'mmb_response' )) {
|
169 |
|
170 |
+
function mmb_response($response = false, $success = true)
|
171 |
+
{
|
172 |
+
$return = array();
|
173 |
+
|
174 |
+
if (empty($response))
|
175 |
+
$return['error'] = 'Empty response.';
|
176 |
+
else if ($success)
|
177 |
+
$return['success'] = $response;
|
178 |
+
else
|
179 |
+
$return['error'] = $response;
|
180 |
+
|
181 |
+
if( !headers_sent() ){
|
182 |
+
header('HTTP/1.0 200 OK');
|
183 |
+
header('Content-Type: text/plain');
|
184 |
+
}
|
185 |
+
exit("<MWPHEADER>" . base64_encode(serialize($return))."<ENDMWPHEADER>");
|
186 |
}
|
|
|
187 |
}
|
188 |
|
189 |
+
if( !function_exists ( 'mmb_add_site' )) {
|
190 |
+
function mmb_add_site($params)
|
191 |
+
{
|
192 |
+
global $mmb_core;
|
193 |
+
|
194 |
+
$num = extract($params);
|
195 |
+
|
196 |
+
if ($num) {
|
197 |
+
if (!get_option('_action_message_id') && !get_option('_worker_public_key')) {
|
198 |
+
$public_key = base64_decode($public_key);
|
199 |
+
|
200 |
+
if (function_exists('openssl_verify')) {
|
201 |
+
$verify = openssl_verify($action . $id, base64_decode($signature), $public_key);
|
202 |
+
if ($verify == 1) {
|
203 |
+
$mmb_core->set_master_public_key($public_key);
|
204 |
+
$mmb_core->set_worker_message_id($id);
|
205 |
+
$mmb_core->get_stats_instance();
|
206 |
+
mmb_response($mmb_core->stats_instance->get_initial_stats(), true);
|
207 |
+
} else if ($verify == 0) {
|
208 |
+
mmb_response('Invalid message signature. Please contact us if you see this message often.', false);
|
209 |
+
} else {
|
210 |
+
mmb_response('Command not successful. Please try again.', false);
|
211 |
+
}
|
212 |
+
} else {
|
213 |
+
if (!get_option('_worker_nossl_key')) {
|
214 |
+
srand();
|
215 |
+
$random_key = md5(base64_encode($public_key) . rand(0, getrandmax()));
|
216 |
+
|
217 |
+
$mmb_core->set_random_signature($random_key);
|
218 |
+
$mmb_core->set_worker_message_id($id);
|
219 |
+
$mmb_core->set_master_public_key($public_key);
|
220 |
+
$mmb_core->get_stats_instance();
|
221 |
+
mmb_response($mmb_core->stats_instance->get_initial_stats(), true);
|
222 |
+
} else
|
223 |
+
mmb_response('Please deactivate & activate ManageWP Worker plugin on your site, then re-add the site to your dashboard.', false);
|
224 |
+
}
|
225 |
+
} else {
|
226 |
+
mmb_response('Please deactivate & activate ManageWP Worker plugin on your site and re-add the site to your dashboard.', false);
|
227 |
+
}
|
228 |
+
} else {
|
229 |
+
mmb_response('Invalid parameters received. Please try again.', false);
|
230 |
+
}
|
231 |
+
}
|
232 |
}
|
233 |
|
234 |
+
if( !function_exists ( 'mmb_remove_site' )) {
|
235 |
+
function mmb_remove_site($params)
|
236 |
+
{
|
237 |
+
extract($params);
|
238 |
+
global $mmb_core;
|
239 |
+
$mmb_core->uninstall();
|
240 |
+
|
241 |
+
include_once(ABSPATH . 'wp-admin/includes/plugin.php');
|
242 |
+
$plugin_slug = basename(dirname(__FILE__)) . '/' . basename(__FILE__);
|
243 |
+
|
244 |
+
if ($deactivate) {
|
245 |
+
deactivate_plugins($plugin_slug, true);
|
246 |
+
}
|
247 |
+
|
248 |
+
if (!is_plugin_active($plugin_slug))
|
249 |
+
mmb_response(array(
|
250 |
+
'deactivated' => 'Site removed successfully. <br /><br />ManageWP Worker plugin successfully deactivated.'
|
251 |
+
), true);
|
252 |
+
else
|
253 |
+
mmb_response(array(
|
254 |
+
'removed_data' => 'Site removed successfully. <br /><br /><b>ManageWP Worker plugin was not deactivated.</b>'
|
255 |
+
), true);
|
256 |
+
|
257 |
+
}
|
258 |
}
|
259 |
+
if( !function_exists ( 'mmb_stats_get' )) {
|
260 |
+
function mmb_stats_get($params)
|
261 |
+
{
|
262 |
+
global $mmb_core;
|
263 |
+
$mmb_core->get_stats_instance();
|
264 |
+
mmb_response($mmb_core->stats_instance->get($params), true);
|
265 |
+
}
|
266 |
}
|
267 |
+
if( !function_exists ( 'mmb_get_stats_notification' )) {
|
268 |
+
function mmb_get_stats_notification($params)
|
269 |
+
{
|
270 |
+
global $mmb_core;
|
271 |
+
$mmb_core->get_stats_instance();
|
272 |
+
$stat = $mmb_core->stats_instance->get_stats_notification($params);
|
273 |
+
mmb_response($stat, true);
|
274 |
+
}
|
275 |
}
|
|
|
276 |
//post
|
277 |
+
if( !function_exists ( 'mmb_post_create' )) {
|
278 |
+
function mmb_post_create($params)
|
279 |
+
{
|
280 |
+
global $mmb_core;
|
281 |
+
$mmb_core->get_post_instance();
|
282 |
+
$return = $mmb_core->post_instance->create($params);
|
283 |
+
if (is_int($return))
|
284 |
+
mmb_response($return, true);
|
285 |
+
else
|
286 |
+
mmb_response($return, false);
|
287 |
+
}
|
288 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
289 |
|
290 |
+
if( !function_exists ( 'mmb_change_post_status' )) {
|
291 |
+
function mmb_change_post_status($params)
|
292 |
+
{
|
293 |
+
global $mmb_core;
|
294 |
+
$mmb_core->get_post_instance();
|
295 |
+
$return = $mmb_core->post_instance->change_status($params);
|
296 |
+
//mmb_response($return, true);
|
297 |
+
|
298 |
+
}
|
299 |
}
|
300 |
+
|
301 |
//comments
|
302 |
+
if( !function_exists ( 'mmb_change_comment_status' )) {
|
303 |
+
function mmb_change_comment_status($params)
|
304 |
+
{
|
305 |
+
global $mmb_core;
|
306 |
+
$mmb_core->get_comment_instance();
|
307 |
+
$return = $mmb_core->comment_instance->change_status($params);
|
308 |
+
//mmb_response($return, true);
|
309 |
+
if ($return){
|
310 |
+
$mmb_core->get_stats_instance();
|
311 |
+
mmb_response($mmb_core->stats_instance->get_comments_stats($params), true);
|
312 |
+
}else
|
313 |
+
mmb_response('Comment not updated', false);
|
314 |
+
}
|
315 |
+
|
316 |
}
|
317 |
+
if( !function_exists ( 'mmb_comment_stats_get' )) {
|
318 |
+
function mmb_comment_stats_get($params)
|
319 |
+
{
|
320 |
+
global $mmb_core;
|
321 |
+
$mmb_core->get_stats_instance();
|
322 |
+
mmb_response($mmb_core->stats_instance->get_comments_stats($params), true);
|
323 |
+
}
|
324 |
}
|
325 |
|
326 |
+
if( !function_exists ( 'mmb_backup_now' )) {
|
327 |
//backup
|
328 |
+
function mmb_backup_now($params)
|
329 |
+
{
|
330 |
+
global $mmb_core;
|
331 |
+
|
332 |
+
$mmb_core->get_backup_instance();
|
333 |
+
$return = $mmb_core->backup_instance->backup($params);
|
334 |
+
|
335 |
+
if (is_array($return) && array_key_exists('error', $return))
|
336 |
+
mmb_response($return['error'], false);
|
337 |
+
else {
|
338 |
+
mmb_response($return, true);
|
339 |
+
}
|
340 |
+
}
|
341 |
}
|
342 |
|
343 |
+
if( !function_exists ( 'mmb_email_backup' )) {
|
344 |
+
function mmb_email_backup($params)
|
345 |
+
{
|
346 |
+
global $mmb_core;
|
347 |
+
$mmb_core->get_backup_instance();
|
348 |
+
$return = $mmb_core->backup_instance->email_backup($params);
|
349 |
+
|
350 |
+
if (is_array($return) && array_key_exists('error', $return))
|
351 |
+
mmb_response($return['error'], false);
|
352 |
+
else {
|
353 |
+
mmb_response($return, true);
|
354 |
+
}
|
355 |
+
}
|
356 |
}
|
357 |
+
if( !function_exists ( 'mmb_check_backup_compat' )) {
|
358 |
+
function mmb_check_backup_compat($params)
|
359 |
+
{
|
360 |
+
global $mmb_core;
|
361 |
+
$mmb_core->get_backup_instance();
|
362 |
+
$return = $mmb_core->backup_instance->check_backup_compat($params);
|
363 |
+
|
364 |
+
if (is_array($return) && array_key_exists('error', $return))
|
365 |
+
mmb_response($return['error'], false);
|
366 |
+
else {
|
367 |
+
mmb_response($return, true);
|
368 |
+
}
|
369 |
+
}
|
370 |
}
|
371 |
+
if( !function_exists ( 'mmb_optimize_tables' )) {
|
372 |
+
function mmb_optimize_tables($params)
|
373 |
+
{
|
374 |
+
global $mmb_core;
|
375 |
+
$mmb_core->get_backup_instance();
|
376 |
+
$return = $mmb_core->backup_instance->optimize_tables();
|
377 |
+
if ($return)
|
378 |
+
mmb_response($return, true);
|
379 |
+
else
|
380 |
+
mmb_response(false, false);
|
381 |
+
}
|
382 |
}
|
383 |
+
if( !function_exists ( 'mmb_restore_now' )) {
|
384 |
+
function mmb_restore_now($params)
|
385 |
+
{
|
386 |
+
global $mmb_core;
|
387 |
+
$mmb_core->get_backup_instance();
|
388 |
+
$return = $mmb_core->backup_instance->restore($params);
|
389 |
+
if (is_array($return) && array_key_exists('error', $return))
|
390 |
+
mmb_response($return['error'], false);
|
391 |
+
else
|
392 |
+
mmb_response($return, true);
|
393 |
+
|
394 |
+
}
|
395 |
}
|
396 |
+
if( !function_exists ( 'mmb_update_worker_plugin' )) {
|
397 |
+
function mmb_update_worker_plugin($params)
|
398 |
+
{
|
399 |
+
global $mmb_core;
|
400 |
+
mmb_response($mmb_core->update_worker_plugin($params), true);
|
401 |
+
}
|
402 |
}
|
403 |
|
404 |
+
if( !function_exists ( 'mmb_wp_checkversion' )) {
|
405 |
+
function mmb_wp_checkversion($params)
|
406 |
+
{
|
407 |
+
include_once(ABSPATH . 'wp-includes/version.php');
|
408 |
+
global $mmb_wp_version, $mmb_core;
|
409 |
+
mmb_response($mmb_wp_version, true);
|
410 |
+
}
|
411 |
}
|
412 |
+
if( !function_exists ( 'mmb_search_posts_by_term' )) {
|
413 |
+
function mmb_search_posts_by_term($params)
|
414 |
+
{
|
415 |
+
global $mmb_core;
|
416 |
+
$mmb_core->get_search_instance();
|
417 |
+
//$mmb_core->_log($params);
|
418 |
+
|
419 |
+
$search_type = trim($params['search_type']);
|
420 |
+
$search_term = strtolower(trim($params['search_term']));
|
421 |
+
|
422 |
+
switch ($search_type){
|
423 |
+
case 'page_post':
|
424 |
+
$return = $mmb_core->search_instance->search_posts_by_term($params);
|
425 |
+
if($return){
|
426 |
+
$return = serialize($return);
|
427 |
+
mmb_response($return, true);
|
428 |
+
}else{
|
429 |
+
mmb_response('No posts found', false);
|
430 |
+
}
|
431 |
+
break;
|
432 |
+
|
433 |
+
case 'plugin':
|
434 |
+
$plugins = get_option('active_plugins');
|
435 |
+
|
436 |
+
$have_plugin = false;
|
437 |
+
foreach ($plugins as $plugin) {
|
438 |
+
if(strpos($plugin, $search_term)>-1){
|
439 |
+
$have_plugin = true;
|
440 |
+
}
|
441 |
+
}
|
442 |
+
if($have_plugin){
|
443 |
+
mmb_response(serialize($plugin), true);
|
444 |
+
}else{
|
445 |
+
mmb_response(false, false);
|
446 |
+
}
|
447 |
+
break;
|
448 |
+
case 'theme':
|
449 |
+
$theme = strtolower(get_option('template'));
|
450 |
+
if(strpos($theme, $search_term)>-1){
|
451 |
+
mmb_response($theme, true);
|
452 |
+
}else{
|
453 |
+
mmb_response(false, false);
|
454 |
+
}
|
455 |
+
break;
|
456 |
+
default: mmb_response(false, false);
|
457 |
+
}
|
458 |
+
$return = $mmb_core->search_instance->search_posts_by_term($params);
|
459 |
+
|
460 |
+
|
461 |
+
|
462 |
+
if ($return_if_true) {
|
463 |
+
mmb_response($return_value, true);
|
464 |
+
} else {
|
465 |
+
mmb_response($return_if_false, false);
|
466 |
+
}
|
467 |
+
}
|
468 |
}
|
469 |
|
470 |
+
if( !function_exists ( 'mmb_install_addon' )) {
|
471 |
+
function mmb_install_addon($params)
|
472 |
+
{
|
473 |
+
global $mmb_core;
|
474 |
+
$mmb_core->get_installer_instance();
|
475 |
+
$return = $mmb_core->installer_instance->install_remote_file($params);
|
476 |
+
mmb_response($return, true);
|
477 |
+
|
478 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
479 |
}
|
480 |
|
481 |
+
if( !function_exists ( 'mmb_do_upgrade' )) {
|
482 |
+
function mmb_do_upgrade($params)
|
483 |
+
{
|
484 |
+
global $mmb_core, $mmb_upgrading;
|
485 |
+
$mmb_core->get_installer_instance();
|
486 |
+
$return = $mmb_core->installer_instance->do_upgrade($params);
|
487 |
+
mmb_response($return, true);
|
488 |
+
|
489 |
+
}
|
|
|
|
|
|
|
490 |
}
|
491 |
+
if( !function_exists ( 'mmb_add_link' )) {
|
492 |
+
function mmb_add_link($params)
|
493 |
+
{
|
494 |
+
global $mmb_core;
|
495 |
+
$mmb_core->get_link_instance();
|
496 |
+
$return = $mmb_core->link_instance->add_link($params);
|
497 |
+
if (is_array($return) && array_key_exists('error', $return))
|
498 |
+
|
499 |
+
mmb_response($return['error'], false);
|
500 |
+
else {
|
501 |
+
mmb_response($return, true);
|
502 |
+
}
|
503 |
+
|
504 |
+
}
|
505 |
}
|
506 |
+
if( !function_exists ( 'mmb_add_user' )) {
|
507 |
+
function mmb_add_user($params)
|
|
|
|
|
508 |
{
|
509 |
+
global $mmb_core;
|
510 |
+
$mmb_core->get_user_instance();
|
511 |
+
$return = $mmb_core->user_instance->add_user($params);
|
512 |
+
if (is_array($return) && array_key_exists('error', $return))
|
513 |
+
|
514 |
+
mmb_response($return['error'], false);
|
515 |
+
else {
|
516 |
+
mmb_response($return, true);
|
517 |
+
}
|
518 |
+
|
519 |
}
|
|
|
|
|
|
|
520 |
}
|
521 |
+
if( !function_exists ( 'mmb_iframe_plugins_fix' )) {
|
522 |
+
function mmb_iframe_plugins_fix($update_actions)
|
523 |
+
{
|
524 |
+
foreach($update_actions as $key => $action)
|
525 |
+
{
|
526 |
+
$update_actions[$key] = str_replace('target="_parent"','',$action);
|
527 |
+
}
|
528 |
+
|
529 |
+
return $update_actions;
|
530 |
+
|
531 |
+
}
|
532 |
+
}
|
533 |
+
if( !function_exists ( 'mmb_execute_php_code' )) {
|
534 |
+
function mmb_execute_php_code($params)
|
535 |
+
{
|
536 |
+
ob_start();
|
537 |
+
eval($params['code']);
|
538 |
+
$return = ob_get_flush();
|
539 |
+
mmb_response(print_r($return, true), true);
|
540 |
+
}
|
541 |
}
|
|
|
542 |
add_filter('install_plugin_complete_actions','mmb_iframe_plugins_fix');
|
543 |
|
544 |
|
installer.class.php
CHANGED
@@ -164,78 +164,130 @@ class MMB_Installer extends MMB_Core
|
|
164 |
function upgrade_core($current)
|
165 |
{
|
166 |
ob_start();
|
167 |
-
|
|
|
168 |
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
}
|
178 |
-
|
179 |
-
return array(
|
180 |
-
|
181 |
-
|
182 |
}
|
183 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
}
|
240 |
|
241 |
|
164 |
function upgrade_core($current)
|
165 |
{
|
166 |
ob_start();
|
167 |
+
if(!function_exists('wp_version_check'))
|
168 |
+
include_once(ABSPATH.'/wp-admin/includes/update.php');
|
169 |
|
170 |
+
@wp_version_check();
|
171 |
+
|
172 |
+
if(!function_exists('get_core_updates'))
|
173 |
+
include_once(ABSPATH.'/wp-admin/includes/update.php');
|
174 |
+
|
175 |
+
$updates = get_core_updates();
|
176 |
+
$current_update = false;
|
177 |
+
ob_end_flush();
|
178 |
+
ob_end_clean();
|
179 |
+
|
180 |
+
if(!empty($updates)){
|
181 |
+
$updated = $updates[0];
|
182 |
+
if ( !isset( $updated->response ) || $updated->response == 'latest' )
|
183 |
+
return array('upgraded' => ' Upgraded successfully.');
|
184 |
+
|
185 |
+
if ($updated->response == "development" && $current->response == "upgrade") {
|
186 |
+
return array('upgraded' => '<font color="#900">Transient mismatch. Please upgrade manualy</font>');
|
187 |
+
}
|
188 |
+
else if ($updated->response == $current->response || ($updated->response == "upgrade" && $current->response == "development")){
|
189 |
+
if($updated->locale != $current->locale){
|
190 |
+
foreach($updates as $update){
|
191 |
+
if($update->locale == $current->locale){
|
192 |
+
$current_update = $update;
|
193 |
+
break;
|
194 |
+
}
|
195 |
}
|
196 |
+
if($current_update == false)
|
197 |
+
return array('error' => ' Localization mismatch. Try again.');
|
198 |
+
} else {
|
199 |
+
$current_update = $updated;
|
200 |
}
|
201 |
+
}
|
202 |
+
else
|
203 |
+
return array('error' => ' Transient mismatch. Try again.');
|
204 |
+
} else
|
205 |
+
return array('error' => ' Refresh transient failed. Try again.');
|
206 |
+
|
207 |
+
if($current_update != false){
|
208 |
+
global $mmb_wp_version, $wp_filesystem, $wp_version;
|
209 |
|
210 |
+
if(!class_exists('WP_Upgrader')){
|
211 |
+
include_once(ABSPATH.'wp-admin/includes/update.php');
|
212 |
+
if(function_exists('wp_update_core')){
|
213 |
+
$result = wp_update_core($current_update);
|
214 |
+
if(is_wp_error($result)){
|
215 |
+
return array(
|
216 |
+
'error' => $this->mmb_get_error($result)
|
217 |
+
);
|
218 |
+
}
|
219 |
+
else
|
220 |
+
return array(
|
221 |
+
'upgraded' => ' Upgraded successfully.'
|
222 |
+
);
|
223 |
+
}
|
224 |
+
}
|
225 |
+
|
226 |
+
if(class_exists('WP_Upgrader')){
|
227 |
+
$upgrader = new WP_Upgrader();
|
228 |
+
|
229 |
+
// Is an update available?
|
230 |
+
if (!isset($current_update->response) || $current_update->response == 'latest')
|
231 |
+
return array(
|
232 |
+
'upgraded' => ' Upgraded successfully.'
|
233 |
+
);
|
234 |
+
|
235 |
+
$res = $upgrader->fs_connect(array(
|
236 |
+
ABSPATH,
|
237 |
+
WP_CONTENT_DIR
|
238 |
+
));
|
239 |
+
if (is_wp_error($res))
|
240 |
+
return array(
|
241 |
+
'error' => $this->mmb_get_error($res)
|
242 |
+
);
|
243 |
+
|
244 |
+
$wp_dir = trailingslashit($wp_filesystem->abspath());
|
245 |
+
|
246 |
+
$download = $upgrader->download_package($current_update->package);
|
247 |
+
if (is_wp_error($download))
|
248 |
+
return array(
|
249 |
+
'error' => $this->mmb_get_error($download)
|
250 |
+
);
|
251 |
+
|
252 |
+
$working_dir = $upgrader->unpack_package($download);
|
253 |
+
if (is_wp_error($working_dir))
|
254 |
+
return array(
|
255 |
+
'error' => $this->mmb_get_error($working_dir)
|
256 |
+
);
|
257 |
+
|
258 |
+
if (!$wp_filesystem->copy($working_dir . '/wordpress/wp-admin/includes/update-core.php', $wp_dir . 'wp-admin/includes/update-core.php', true)) {
|
259 |
+
$wp_filesystem->delete($working_dir, true);
|
260 |
+
return array(
|
261 |
+
'error' => 'Unable to move update files.'
|
262 |
+
);
|
263 |
+
}
|
264 |
+
|
265 |
+
$wp_filesystem->chmod($wp_dir . 'wp-admin/includes/update-core.php', FS_CHMOD_FILE);
|
266 |
+
|
267 |
+
require(ABSPATH . 'wp-admin/includes/update-core.php');
|
268 |
+
|
269 |
+
|
270 |
+
$update_core = update_core($working_dir, $wp_dir);
|
271 |
+
ob_end_clean();
|
272 |
+
|
273 |
+
if (is_wp_error($update_core))
|
274 |
+
return array(
|
275 |
+
'error' => $this->mmb_get_error($update_core)
|
276 |
+
);
|
277 |
+
ob_end_flush();
|
278 |
+
return array(
|
279 |
+
'upgraded' => 'Upgraded successfully.'
|
280 |
+
);
|
281 |
+
} else {
|
282 |
+
return array(
|
283 |
+
'error' => 'Upgrade failed.'
|
284 |
+
);
|
285 |
+
}
|
286 |
+
} else {
|
287 |
+
return array(
|
288 |
+
'error' => 'Upgrade failed.'
|
289 |
+
);
|
290 |
+
}
|
291 |
}
|
292 |
|
293 |
|
stats.class.php
CHANGED
@@ -26,14 +26,15 @@ class MMB_Stats extends MMB_Core
|
|
26 |
function get($params)
|
27 |
{
|
28 |
$num = extract($params);
|
|
|
29 |
if($refresh == 'transient'){
|
30 |
include_once(ABSPATH.'wp-includes/update.php');
|
31 |
-
wp_update_plugins();
|
32 |
-
wp_update_themes();
|
33 |
-
wp_version_check();
|
34 |
}
|
35 |
|
36 |
-
global $wpdb, $mmb_wp_version, $mmb_plugin_dir;
|
37 |
$stats = array();
|
38 |
|
39 |
//define constants
|
@@ -43,22 +44,27 @@ class MMB_Stats extends MMB_Core
|
|
43 |
$num_draft_comments = 0;
|
44 |
$num_trash_comments = 0;
|
45 |
|
46 |
-
|
47 |
|
48 |
$stats['worker_version'] = MMB_WORKER_VERSION;
|
49 |
-
$stats['wordpress_version'] = $
|
50 |
$stats['wp_multisite'] = $this->mmb_multisite;
|
51 |
$stats['php_version'] = phpversion();
|
52 |
$stats['mysql_version'] = $wpdb->db_version();
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
|
|
|
|
|
|
|
|
|
|
62 |
$mmb_user_hits = get_option('user_hit_count');
|
63 |
if (is_array($mmb_user_hits)) {
|
64 |
end($mmb_user_hits);
|
@@ -104,7 +110,7 @@ class MMB_Stats extends MMB_Core
|
|
104 |
}
|
105 |
|
106 |
|
107 |
-
$all_drafts = get_posts('post_status=draft&numberposts=
|
108 |
$recent_drafts = array();
|
109 |
foreach ($all_drafts as $id => $recent_draft) {
|
110 |
$recent = new stdClass();
|
@@ -117,7 +123,7 @@ class MMB_Stats extends MMB_Core
|
|
117 |
$recent_drafts[] = $recent;
|
118 |
}
|
119 |
|
120 |
-
$all_scheduled = get_posts('post_status=future&numberposts=
|
121 |
$scheduled_posts = array();
|
122 |
foreach ($all_scheduled as $id => $scheduled) {
|
123 |
$recent = new stdClass();
|
@@ -145,9 +151,9 @@ class MMB_Stats extends MMB_Core
|
|
145 |
$recent_posts[] = $recent;
|
146 |
}
|
147 |
usort($recent_posts, 'cmp_posts_worker');
|
148 |
-
$stats['posts'] = array_slice($recent_posts, 0,
|
149 |
|
150 |
-
$all_pages_drafts = get_pages('post_status=draft&numberposts=
|
151 |
$recent_pages_drafts = array();
|
152 |
foreach ((array)$all_pages_drafts as $id => $recent_pages_draft) {
|
153 |
$recent = new stdClass();
|
@@ -160,10 +166,10 @@ class MMB_Stats extends MMB_Core
|
|
160 |
$recent_drafts[] = $recent;
|
161 |
}
|
162 |
usort($recent_drafts, 'cmp_posts_worker');
|
163 |
-
$stats['drafts'] = array_slice($recent_drafts, 0,
|
164 |
|
165 |
|
166 |
-
$pages_scheduled = get_pages('post_status=future&numberposts=
|
167 |
$recent_pages_drafts = array();
|
168 |
foreach ((array)$pages_scheduled as $id => $scheduled) {
|
169 |
$recent = new stdClass();
|
@@ -176,7 +182,7 @@ class MMB_Stats extends MMB_Core
|
|
176 |
$scheduled_posts[] = $recent;
|
177 |
}
|
178 |
usort($scheduled_posts, 'cmp_posts_worker');
|
179 |
-
$stats['scheduled'] = array_slice($scheduled_posts, 0,
|
180 |
|
181 |
|
182 |
|
26 |
function get($params)
|
27 |
{
|
28 |
$num = extract($params);
|
29 |
+
|
30 |
if($refresh == 'transient'){
|
31 |
include_once(ABSPATH.'wp-includes/update.php');
|
32 |
+
@wp_update_plugins();
|
33 |
+
@wp_update_themes();
|
34 |
+
@wp_version_check();
|
35 |
}
|
36 |
|
37 |
+
global $wpdb, $mmb_wp_version, $mmb_plugin_dir, $wp_version;
|
38 |
$stats = array();
|
39 |
|
40 |
//define constants
|
44 |
$num_draft_comments = 0;
|
45 |
$num_trash_comments = 0;
|
46 |
|
47 |
+
include_once(ABSPATH . '/wp-admin/includes/update.php');
|
48 |
|
49 |
$stats['worker_version'] = MMB_WORKER_VERSION;
|
50 |
+
$stats['wordpress_version'] = $wp_version;
|
51 |
$stats['wp_multisite'] = $this->mmb_multisite;
|
52 |
$stats['php_version'] = phpversion();
|
53 |
$stats['mysql_version'] = $wpdb->db_version();
|
54 |
|
55 |
+
if(function_exists('get_core_updates')) {
|
56 |
+
$updates = get_core_updates();
|
57 |
+
if(!empty($updates)){
|
58 |
+
$current_transient = $updates[0];
|
59 |
+
if ($current_transient->response == "development" || version_compare($wp_version, $current_transient->current, '<')) {
|
60 |
+
$current_transient->current_version = $wp_version;
|
61 |
+
$stats['core_updates'] = $current_transient;
|
62 |
+
}
|
63 |
+
else $stats['core_updates'] = false;
|
64 |
+
}
|
65 |
+
else $stats['core_updates'] = false;
|
66 |
+
}
|
67 |
+
|
68 |
$mmb_user_hits = get_option('user_hit_count');
|
69 |
if (is_array($mmb_user_hits)) {
|
70 |
end($mmb_user_hits);
|
110 |
}
|
111 |
|
112 |
|
113 |
+
$all_drafts = get_posts('post_status=draft&numberposts=20&orderby=modified&order=desc');
|
114 |
$recent_drafts = array();
|
115 |
foreach ($all_drafts as $id => $recent_draft) {
|
116 |
$recent = new stdClass();
|
123 |
$recent_drafts[] = $recent;
|
124 |
}
|
125 |
|
126 |
+
$all_scheduled = get_posts('post_status=future&numberposts=20&orderby=post_date&order=desc');
|
127 |
$scheduled_posts = array();
|
128 |
foreach ($all_scheduled as $id => $scheduled) {
|
129 |
$recent = new stdClass();
|
151 |
$recent_posts[] = $recent;
|
152 |
}
|
153 |
usort($recent_posts, 'cmp_posts_worker');
|
154 |
+
$stats['posts'] = array_slice($recent_posts, 0, 20);
|
155 |
|
156 |
+
$all_pages_drafts = get_pages('post_status=draft&numberposts=20&orderby=modified&order=desc');
|
157 |
$recent_pages_drafts = array();
|
158 |
foreach ((array)$all_pages_drafts as $id => $recent_pages_draft) {
|
159 |
$recent = new stdClass();
|
166 |
$recent_drafts[] = $recent;
|
167 |
}
|
168 |
usort($recent_drafts, 'cmp_posts_worker');
|
169 |
+
$stats['drafts'] = array_slice($recent_drafts, 0, 20);
|
170 |
|
171 |
|
172 |
+
$pages_scheduled = get_pages('post_status=future&numberposts=20&orderby=modified&order=desc');
|
173 |
$recent_pages_drafts = array();
|
174 |
foreach ((array)$pages_scheduled as $id => $scheduled) {
|
175 |
$recent = new stdClass();
|
182 |
$scheduled_posts[] = $recent;
|
183 |
}
|
184 |
usort($scheduled_posts, 'cmp_posts_worker');
|
185 |
+
$stats['scheduled'] = array_slice($scheduled_posts, 0, 20);
|
186 |
|
187 |
|
188 |
|
version
CHANGED
@@ -1 +1 @@
|
|
1 |
-
3.9.
|
1 |
+
3.9.2
|