PluginProbe
ManageWP Worker / 3.9.20
ManageWP Worker v3.9.20
4.9.38 4.9.37 4.9.36 4.9.35 4.9.34 3.8.7 3.8.8 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.18 3.9.19 3.9.2 3.9.20 3.9.21 3.9.22 3.9.23 3.9.24 All 73 releases
worker / init.php

init.php in ManageWP Worker 3.9.20, at init.php

1,184 lines 32.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 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.20
8 Author URI: http://www.prelovac.com
9 */
10
11 /*************************************************************
12 *
13 * init.php
14 *
15 * Initialize the communication with master
16 *
17 *
18 * Copyright (c) 2011 Prelovac Media
19 * www.prelovac.com
20 **************************************************************/
21 if(basename($_SERVER['SCRIPT_FILENAME']) == "init.php"):
22 exit;
23 endif;
24 if(!defined('MMB_WORKER_VERSION'))
25 define('MMB_WORKER_VERSION', '3.9.20');
26
27 if ( !defined('MMB_XFRAME_COOKIE')){
28 $siteurl = function_exists( 'get_site_option' ) ? get_site_option( 'siteurl' ) : get_option( 'siteurl' );
29 define('MMB_XFRAME_COOKIE', $xframe = 'wordpress_'.md5($siteurl).'_xframe');
30 }
31 global $wpdb, $mmb_plugin_dir, $mmb_plugin_url, $wp_version, $mmb_filters, $_mmb_item_filter;
32 if (version_compare(PHP_VERSION, '5.0.0', '<')) // min version 5 supported
33 exit("<p>ManageWP Worker plugin requires PHP 5 or higher.</p>");
34
35
36 $mmb_wp_version = $wp_version;
37 $mmb_plugin_dir = WP_PLUGIN_DIR . '/' . basename(dirname(__FILE__));
38 $mmb_plugin_url = WP_PLUGIN_URL . '/' . basename(dirname(__FILE__));
39
40 require_once("$mmb_plugin_dir/helper.class.php");
41 require_once("$mmb_plugin_dir/core.class.php");
42 require_once("$mmb_plugin_dir/post.class.php");
43 require_once("$mmb_plugin_dir/comment.class.php");
44 require_once("$mmb_plugin_dir/stats.class.php");
45 require_once("$mmb_plugin_dir/backup.class.php");
46 require_once("$mmb_plugin_dir/installer.class.php");
47 require_once("$mmb_plugin_dir/link.class.php");
48 require_once("$mmb_plugin_dir/user.class.php");
49 require_once("$mmb_plugin_dir/api.php");
50
51 require_once("$mmb_plugin_dir/plugins/search/search.php");
52 require_once("$mmb_plugin_dir/plugins/cleanup/cleanup.php");
53
54 require_once("$mmb_plugin_dir/widget.class.php");
55
56 if(!function_exists( 'json_decode' ) && !function_exists( 'json_encode' )){
57 global $mmb_plugin_dir;
58 require_once ($mmb_plugin_dir.'/lib/json/JSON.php' );
59
60 function json_decode($json_object, $assoc = false) {
61 $json = $assoc == true ? new Services_JSON(SERVICES_JSON_LOOSE_TYPE) : new Services_JSON();
62 return $json->decode($json_object);
63 }
64
65 function json_encode($object_data) {
66 $json = new Services_JSON();
67 return $json->encode($object_data);
68 }
69 }
70
71 if( !function_exists ( 'mmb_parse_data' )) {
72 function mmb_parse_data( $data = array() ){
73 if( empty($data) )
74 return $data;
75
76 $data = (array) $data;
77 if( isset($data['params']) )
78 $data['params'] = mmb_filter_params( $data['params'] );
79
80 $postkeys = array('action', 'params', 'id', 'signature', 'setting' );
81
82 if( !empty($data) ){
83 foreach($data as $key => $items){
84 if( !in_array($key, $postkeys) )
85 unset($data[$key]);
86 }
87 }
88 return $data;
89 }
90 }
91
92 if( !function_exists ( 'mmb_filter_params' )) {
93 function mmb_filter_params( $array = array() ){
94
95 $filter = array( 'current_user', 'wpdb' );
96 $return = array();
97 foreach ($array as $key => $val) {
98 if( !is_int($key) && in_array($key, $filter) )
99 continue;
100
101 if( is_array( $val ) ) {
102 $return[$key] = mmb_filter_params( $val );
103 } else {
104 $return[$key] = $val;
105 }
106 }
107
108 return $return;
109 }
110 }
111
112 if( !function_exists ( 'mmb_parse_request' )) {
113 function mmb_parse_request(){
114
115 if (!isset($HTTP_RAW_POST_DATA)) {
116 $HTTP_RAW_POST_DATA = file_get_contents('php://input');
117 }
118 ob_start();
119
120 global $current_user, $mmb_core, $new_actions, $wp_db_version, $wpmu_version, $_wp_using_ext_object_cache, $_mmb_options;
121 if(substr($HTTP_RAW_POST_DATA, 0, 7) == "action="){
122 $HTTP_RAW_POST_DATA = str_replace("action=", "", $HTTP_RAW_POST_DATA);
123 }
124 $data = base64_decode($HTTP_RAW_POST_DATA);
125 if ($data){
126 $data = mmb_parse_data( unserialize( $data ) );
127 $num = @extract( $data );
128 }
129 if (isset($action)) {
130 $_wp_using_ext_object_cache = false;
131 @set_time_limit(600);
132
133 if (!$mmb_core->check_if_user_exists($params['username']))
134 mmb_response('Username <b>' . $params['username'] . '</b> does not have administrator capabilities. Enter the correct username in the site options.', false);
135
136 if ($action == 'add_site') {
137 mmb_add_site($params);
138 mmb_response('You should never see this.', false);
139 }
140
141 $auth = $mmb_core->authenticate_message($action . $id, $signature, $id);
142 if ($auth === true) {
143
144 if(isset($params['username']) && !is_user_logged_in()){
145 $user = function_exists('get_user_by') ? get_user_by('login', $params['username']) : get_userdatabylogin( $params['username'] );
146 wp_set_current_user($user->ID);
147 }
148
149 /* in case database upgrade required, do database backup and perform upgrade ( wordpress wp_upgrade() function ) */
150 if( strlen(trim($wp_db_version)) && !defined('ACX_PLUGIN_DIR') ){
151 if ( get_option('db_version') != $wp_db_version ) {
152 /* in multisite network, please update database manualy */
153 if (empty($wpmu_version) || (function_exists('is_multisite') && !is_multisite())){
154 if( ! function_exists('wp_upgrade'))
155 include_once(ABSPATH.'wp-admin/includes/upgrade.php');
156
157 ob_clean();
158 @wp_upgrade();
159 @do_action('after_db_upgrade');
160 ob_end_clean();
161 }
162 }
163 }
164
165 if(isset($params['secure'])){
166 if($decrypted = $mmb_core->_secure_data($params['secure'])){
167 $decrypted = maybe_unserialize($decrypted);
168 if(is_array($decrypted)){
169 foreach($decrypted as $key => $val){
170 if(!is_numeric($key))
171 $params[$key] = $val;
172 }
173 unset($params['secure']);
174 } else $params['secure'] = $decrypted;
175 }
176 }
177
178 if( isset($data['setting']) ){
179 $mmb_core->save_options( $data['setting'] );
180 }
181
182 if( !$mmb_core->register_action_params( $action, $params ) ){
183 global $_mmb_plugin_actions;
184 $_mmb_plugin_actions[$action] = $params;
185 }
186
187
188 } else {
189 mmb_response($auth['error'], false);
190 }
191 } else {
192 MMB_Stats::set_hit_count();
193 }
194 ob_end_clean();
195 }
196 }
197 /* Main response function */
198 if( !function_exists ( 'mmb_response' )) {
199
200 function mmb_response($response = false, $success = true)
201 {
202 $return = array();
203
204 if ((is_array($response) && empty($response)) || (!is_array($response) && strlen($response) == 0))
205 $return['error'] = 'Empty response.';
206 else if ($success)
207 $return['success'] = $response;
208 else
209 $return['error'] = $response;
210
211 if( !headers_sent() ){
212 header('HTTP/1.0 200 OK');
213 header('Content-Type: text/plain');
214 }
215 exit("<MWPHEADER>" . base64_encode(serialize($return))."<ENDMWPHEADER>");
216 }
217 }
218
219
220
221 if( !function_exists ( 'mmb_add_site' )) {
222 function mmb_add_site($params) {
223 global $mmb_core;
224 $num = extract($params);
225
226 if ($num) {
227 if (!get_option('_action_message_id') && !get_option('_worker_public_key')) {
228 $public_key = base64_decode($public_key);
229
230 if (function_exists('openssl_verify')) {
231 $verify = openssl_verify($action . $id, base64_decode($signature), $public_key);
232 if ($verify == 1) {
233 $mmb_core->set_master_public_key($public_key);
234 $mmb_core->set_worker_message_id($id);
235 $mmb_core->get_stats_instance();
236 if(is_array($notifications) && !empty($notifications)){
237 $mmb_core->stats_instance->set_notifications($notifications);
238 }
239 if(is_array($brand) && !empty($brand)){
240 update_option('mwp_worker_brand',$brand);
241 }
242
243 if( isset( $add_settigns ) && !empty( $add_settigns ) )
244 apply_filters( 'mwp_website_add', $add_settigns );
245
246 mmb_response($mmb_core->stats_instance->get_initial_stats(), true);
247 } else if ($verify == 0) {
248
249 //mmb_response('Site could not be added. OpenSSL verification error: "'.openssl_error_string().'". Contact your hosting support to check the OpenSSL configuration.', false);
250
251 } else {
252 mmb_response('Command not successful. Please try again.', false);
253 }
254 }
255
256 if (!get_option('_worker_nossl_key')) {
257 srand();
258
259 $random_key = md5(base64_encode($public_key) . rand(0, getrandmax()));
260
261 $mmb_core->set_random_signature($random_key);
262 $mmb_core->set_worker_message_id($id);
263 $mmb_core->set_master_public_key($public_key);
264 $mmb_core->get_stats_instance();
265 if(is_array($notifications) && !empty($notifications)){
266 $mmb_core->stats_instance->set_notifications($notifications);
267 }
268
269 if(is_array($brand) && !empty($brand)){
270 update_option('mwp_worker_brand',$brand);
271 }
272
273 mmb_response($mmb_core->stats_instance->get_initial_stats(), true);
274 } else
275 mmb_response('Please deactivate & activate ManageWP Worker plugin on your site, then re-add the site to your dashboard.', false);
276
277 } else {
278 mmb_response('Please deactivate & activate ManageWP Worker plugin on your site and re-add the site to your dashboard.', false);
279 }
280 } else {
281 mmb_response('Invalid parameters received. Please try again.', false);
282 }
283 }
284 }
285
286 if( !function_exists ( 'mmb_remove_site' )) {
287 function mmb_remove_site($params)
288 {
289 extract($params);
290 global $mmb_core;
291 $mmb_core->uninstall( $deactivate );
292
293 include_once(ABSPATH . 'wp-admin/includes/plugin.php');
294 $plugin_slug = basename(dirname(__FILE__)) . '/' . basename(__FILE__);
295
296 if ($deactivate) {
297 deactivate_plugins($plugin_slug, true);
298 }
299
300 if (!is_plugin_active($plugin_slug))
301 mmb_response(array(
302 'deactivated' => 'Site removed successfully. <br /><br />ManageWP Worker plugin successfully deactivated.'
303 ), true);
304 else
305 mmb_response(array(
306 'removed_data' => 'Site removed successfully. <br /><br /><b>ManageWP Worker plugin was not deactivated.</b>'
307 ), true);
308
309 }
310 }
311 if( !function_exists ( 'mmb_stats_get' )) {
312 function mmb_stats_get($params)
313 {
314 global $mmb_core;
315 $mmb_core->get_stats_instance();
316 mmb_response($mmb_core->stats_instance->get($params), true);
317 }
318 }
319
320 if( !function_exists ( 'mmb_worker_header' )) {
321 function mmb_worker_header()
322 { global $mmb_core, $current_user;
323
324 if(!headers_sent()){
325 if(isset($current_user->ID))
326 $expiration = time() + apply_filters('auth_cookie_expiration', 10800, $current_user->ID, false);
327 else
328 $expiration = time() + 10800;
329
330 setcookie(MMB_XFRAME_COOKIE, md5(MMB_XFRAME_COOKIE), $expiration, COOKIEPATH, COOKIE_DOMAIN, false, true);
331 $_COOKIE[MMB_XFRAME_COOKIE] = md5(MMB_XFRAME_COOKIE);
332 }
333 }
334 }
335
336 if( !function_exists ( 'mmb_pre_init_stats' )) {
337 function mmb_pre_init_stats( $params )
338 {
339 global $mmb_core;
340 $mmb_core->get_stats_instance();
341 return $mmb_core->stats_instance->pre_init_stats($params);
342 }
343 }
344
345 if( !function_exists ( 'mwp_datasend' )) {
346 function mwp_datasend( $params = array() )
347 {
348 global $mmb_core, $_mmb_item_filter, $_mmb_options;
349 if( isset($_mmb_options['datacron']) ){
350
351 $_mmb_remoteurl = get_option('home');
352 $_mmb_remoteown = isset($_mmb_options['dataown']) && !empty($_mmb_options['dataown']) ? $_mmb_options['dataown'] : false;
353
354 if( empty($_mmb_remoteown) )
355 return;
356
357 $_mmb_item_filter['pre_init_stats'] = array( 'core_update', 'hit_counter', 'comments', 'backups', 'posts', 'drafts', 'scheduled' );
358 $_mmb_item_filter['get'] = array( 'updates', 'errors' );
359 $mmb_core->get_stats_instance();
360
361 $filter = array(
362 'refresh' => '',
363 'item_filter' => array(
364 'get_stats' => array(
365 array('updates', array('plugins' => true, 'themes' => true, 'premium' => true )),
366 array('core_update', array('core' => true )),
367 array('posts', array('numberposts' => 5 )),
368 array('drafts', array('numberposts' => 5 )),
369 array('scheduled', array('numberposts' => 5 )),
370 array('hit_counter'),
371 array('comments', array('numberposts' => 5 )),
372 array('backups'),
373 'plugins' => array('cleanup' => array(
374 'overhead' => array(),
375 'revisions' => array( 'num_to_keep' => 'r_5'),
376 'spam' => array(),
377 )
378 ),
379 ),
380 )
381 );
382
383 $pre_init_data = $mmb_core->stats_instance->pre_init_stats($filter);
384 $init_data = $mmb_core->stats_instance->get($filter);
385
386 $data = array_merge($init_data, $pre_init_data);
387 $hash = $mmb_core->get_secure_hash();
388
389 $datasend['datasend'] = $mmb_core->encrypt_data($data);
390 $datasend['sitehome'] = base64_encode($_mmb_remoteown.'[]'.$_mmb_remoteurl);
391 $datasend['sitehash'] = md5($hash.$_mmb_remoteown.$_mmb_remoteurl);
392
393 if ( !class_exists('WP_Http') )
394 include_once(ABSPATH . WPINC . '/class-http.php');
395
396 $remote = array();
397 $remote['body'] = $datasend;
398 $result = wp_remote_post($_mmb_options['datacron'], $remote);
399 }
400 }
401 }
402
403 //post
404 if( !function_exists ( 'mmb_post_create' )) {
405 function mmb_post_create($params)
406 {
407 global $mmb_core;
408 $mmb_core->get_post_instance();
409 $return = $mmb_core->post_instance->create($params);
410 if (is_int($return))
411 mmb_response($return, true);
412 else{
413 if(isset($return['error'])){
414 mmb_response($return['error'], false);
415 } else {
416 mmb_response($return, false);
417 }
418 }
419 }
420 }
421
422 if( !function_exists ( 'mmb_change_post_status' )) {
423 function mmb_change_post_status($params)
424 {
425 global $mmb_core;
426 $mmb_core->get_post_instance();
427 $return = $mmb_core->post_instance->change_status($params);
428 //mmb_response($return, true);
429
430 }
431 }
432
433 //comments
434 if( !function_exists ( 'mmb_change_comment_status' )) {
435 function mmb_change_comment_status($params)
436 {
437 global $mmb_core;
438 $mmb_core->get_comment_instance();
439 $return = $mmb_core->comment_instance->change_status($params);
440 //mmb_response($return, true);
441 if ($return){
442 $mmb_core->get_stats_instance();
443 mmb_response($mmb_core->stats_instance->get_comments_stats($params), true);
444 }else
445 mmb_response('Comment not updated', false);
446 }
447
448 }
449 if( !function_exists ( 'mmb_comment_stats_get' )) {
450 function mmb_comment_stats_get($params)
451 {
452 global $mmb_core;
453 $mmb_core->get_stats_instance();
454 mmb_response($mmb_core->stats_instance->get_comments_stats($params), true);
455 }
456 }
457
458 if( !function_exists ( 'mmb_backup_now' )) {
459 //backup
460 function mmb_backup_now($params)
461 {
462 global $mmb_core;
463
464 $mmb_core->get_backup_instance();
465 $return = $mmb_core->backup_instance->backup($params);
466
467 if (is_array($return) && array_key_exists('error', $return))
468 mmb_response($return['error'], false);
469 else {
470 mmb_response($return, true);
471 }
472 }
473 }
474
475 if( !function_exists ( 'mmb_run_task_now' )) {
476 function mmb_run_task_now($params)
477 {
478 global $mmb_core;
479 $mmb_core->get_backup_instance();
480 $return = $mmb_core->backup_instance->task_now($params['task_name']);
481 if (is_array($return) && array_key_exists('error', $return))
482 mmb_response($return['error'], false);
483 else {
484 mmb_response($return, true);
485 }
486 }
487 }
488
489 if( !function_exists ( 'mmb_email_backup' )) {
490 function mmb_email_backup($params)
491 {
492 global $mmb_core;
493 $mmb_core->get_backup_instance();
494 $return = $mmb_core->backup_instance->email_backup($params);
495
496 if (is_array($return) && array_key_exists('error', $return))
497 mmb_response($return['error'], false);
498 else {
499 mmb_response($return, true);
500 }
501 }
502 }
503
504 if( !function_exists ( 'mmb_check_backup_compat' )) {
505 function mmb_check_backup_compat($params)
506 {
507 global $mmb_core;
508 $mmb_core->get_backup_instance();
509 $return = $mmb_core->backup_instance->check_backup_compat($params);
510
511 if (is_array($return) && array_key_exists('error', $return))
512 mmb_response($return['error'], false);
513 else {
514 mmb_response($return, true);
515 }
516 }
517 }
518
519 if( !function_exists ( 'mmb_get_backup_req' )) {
520 function mmb_get_backup_req( $params )
521 {
522 global $mmb_core;
523 $mmb_core->get_stats_instance();
524 $return = $mmb_core->stats_instance->get_backup_req($params);
525
526 mmb_response($return, true);
527 }
528 }
529
530 if( !function_exists ( 'mmb_scheduled_backup' )) {
531 function mmb_scheduled_backup($params)
532 {
533 global $mmb_core;
534 $mmb_core->get_backup_instance();
535 $return = $mmb_core->backup_instance->set_backup_task($params);
536 mmb_response($return, $return);
537 }
538 }
539
540 if( !function_exists ( 'mmm_delete_backup' )) {
541 function mmm_delete_backup($params)
542 {
543 global $mmb_core;
544 $mmb_core->get_backup_instance();
545 $return = $mmb_core->backup_instance->delete_backup($params);
546 mmb_response($return, $return);
547 }
548 }
549
550 if( !function_exists ( 'mmb_optimize_tables' )) {
551 function mmb_optimize_tables($params)
552 {
553 global $mmb_core;
554 $mmb_core->get_backup_instance();
555 $return = $mmb_core->backup_instance->optimize_tables();
556 if ($return)
557 mmb_response($return, true);
558 else
559 mmb_response(false, false);
560 }
561 }
562 if( !function_exists ( 'mmb_restore_now' )) {
563 function mmb_restore_now($params)
564 {
565 global $mmb_core;
566 $mmb_core->get_backup_instance();
567 $return = $mmb_core->backup_instance->restore($params);
568 if (is_array($return) && array_key_exists('error', $return))
569 mmb_response($return['error'], false);
570 else
571 mmb_response($return, true);
572
573 }
574 }
575
576 if( !function_exists ( 'mmb_remote_backup_now' )) {
577 function mmb_remote_backup_now($params)
578 {
579 global $mmb_core;
580 $backup_instance = $mmb_core->get_backup_instance();
581 $return = $mmb_core->backup_instance->remote_backup_now($params);
582 if (is_array($return) && array_key_exists('error', $return))
583 mmb_response($return['error'], false);
584 else
585 mmb_response($return, true);
586 }
587 }
588
589
590 if( !function_exists ( 'mmb_clean_orphan_backups' )) {
591 function mmb_clean_orphan_backups()
592 {
593 global $mmb_core;
594 $backup_instance = $mmb_core->get_backup_instance();
595 $return = $mmb_core->backup_instance->cleanup();
596 if(is_array($return))
597 mmb_response($return, true);
598 else
599 mmb_response($return, false);
600 }
601 }
602
603 if( !function_exists ( 'mmb_update_worker_plugin' )) {
604 function mmb_update_worker_plugin($params)
605 {
606 global $mmb_core;
607 mmb_response($mmb_core->update_worker_plugin($params), true);
608 }
609 }
610
611 if( !function_exists ( 'mmb_wp_checkversion' )) {
612 function mmb_wp_checkversion($params)
613 {
614 include_once(ABSPATH . 'wp-includes/version.php');
615 global $mmb_wp_version, $mmb_core;
616 mmb_response($mmb_wp_version, true);
617 }
618 }
619 if( !function_exists ( 'mmb_search_posts_by_term' )) {
620 function mmb_search_posts_by_term($params)
621 {
622 global $mmb_core;
623 $mmb_core->get_search_instance();
624
625 $search_type = trim($params['search_type']);
626 $search_term = strtolower(trim($params['search_term']));
627
628 switch ($search_type){
629 case 'page_post':
630 $return = $mmb_core->search_instance->search_posts_by_term($params);
631 if($return){
632 $return = serialize($return);
633 mmb_response($return, true);
634 }else{
635 mmb_response('No posts found', false);
636 }
637 break;
638
639 case 'plugin':
640 $plugins = get_option('active_plugins');
641
642 $have_plugin = false;
643 foreach ($plugins as $plugin) {
644 if(strpos($plugin, $search_term)>-1){
645 $have_plugin = true;
646 }
647 }
648 if($have_plugin){
649 mmb_response(serialize($plugin), true);
650 }else{
651 mmb_response(false, false);
652 }
653 break;
654 case 'theme':
655 $theme = strtolower(get_option('template'));
656 if(strpos($theme, $search_term)>-1){
657 mmb_response($theme, true);
658 }else{
659 mmb_response(false, false);
660 }
661 break;
662 default: mmb_response(false, false);
663 }
664 $return = $mmb_core->search_instance->search_posts_by_term($params);
665
666
667
668 if ($return_if_true) {
669 mmb_response($return_value, true);
670 } else {
671 mmb_response($return_if_false, false);
672 }
673 }
674 }
675
676 if( !function_exists ( 'mmb_install_addon' )) {
677 function mmb_install_addon($params)
678 {
679 global $mmb_core;
680 $mmb_core->get_installer_instance();
681 $return = $mmb_core->installer_instance->install_remote_file($params);
682 mmb_response($return, true);
683
684 }
685 }
686
687 if( !function_exists ( 'mmb_do_upgrade' )) {
688 function mmb_do_upgrade($params)
689 {
690 global $mmb_core, $mmb_upgrading;
691 $mmb_core->get_installer_instance();
692 $return = $mmb_core->installer_instance->do_upgrade($params);
693 mmb_response($return, true);
694
695 }
696 }
697
698 if( !function_exists ('mmb_get_links')) {
699 function mmb_get_links($params)
700 {
701 global $mmb_core;
702 $mmb_core->get_link_instance();
703 $return = $mmb_core->link_instance->get_links($params);
704 if (is_array($return) && array_key_exists('error', $return))
705 mmb_response($return['error'], false);
706 else {
707 mmb_response($return, true);
708 }
709 }
710 }
711
712 if( !function_exists ( 'mmb_add_link' )) {
713 function mmb_add_link($params)
714 {
715 global $mmb_core;
716 $mmb_core->get_link_instance();
717 $return = $mmb_core->link_instance->add_link($params);
718 if (is_array($return) && array_key_exists('error', $return))
719
720 mmb_response($return['error'], false);
721 else {
722 mmb_response($return, true);
723 }
724
725 }
726 }
727
728 if( !function_exists ('mmb_delete_link')) {
729 function mmb_delete_link($params)
730 {
731 global $mmb_core;
732 $mmb_core->get_link_instance();
733
734 $return = $mmb_core->link_instance->delete_link($params);
735 if (is_array($return) && array_key_exists('error', $return))
736 mmb_response($return['error'], false);
737 else {
738 mmb_response($return, true);
739 }
740 }
741 }
742
743 if( !function_exists ('mmb_delete_links')) {
744 function mmb_delete_links($params)
745 {
746 global $mmb_core;
747 $mmb_core->get_link_instance();
748
749 $return = $mmb_core->link_instance->delete_links($params);
750 if (is_array($return) && array_key_exists('error', $return))
751 mmb_response($return['error'], false);
752 else {
753 mmb_response($return, true);
754 }
755 }
756 }
757
758 if( !function_exists ('mmb_get_comments')) {
759 function mmb_get_comments($params)
760 {
761 global $mmb_core;
762 $mmb_core->get_comment_instance();
763 $return = $mmb_core->comment_instance->get_comments($params);
764 if (is_array($return) && array_key_exists('error', $return))
765 mmb_response($return['error'], false);
766 else {
767 mmb_response($return, true);
768 }
769 }
770 }
771
772 if( !function_exists ('mmb_action_comment')) {
773 function mmb_action_comment($params)
774 {
775 global $mmb_core;
776 $mmb_core->get_comment_instance();
777
778 $return = $mmb_core->comment_instance->action_comment($params);
779 if (is_array($return) && array_key_exists('error', $return))
780 mmb_response($return['error'], false);
781 else {
782 mmb_response($return, true);
783 }
784 }
785 }
786
787 if( !function_exists ('mmb_bulk_action_comments')) {
788 function mmb_bulk_action_comments($params)
789 {
790 global $mmb_core;
791 $mmb_core->get_comment_instance();
792
793 $return = $mmb_core->comment_instance->bulk_action_comments($params);
794 if (is_array($return) && array_key_exists('error', $return))
795 mmb_response($return['error'], false);
796 else {
797 mmb_response($return, true);
798 }
799 }
800 }
801
802 if( !function_exists ('mmb_reply_comment')) {
803 function mmb_reply_comment($params)
804 {
805 global $mmb_core;
806 $mmb_core->get_comment_instance();
807
808 $return = $mmb_core->comment_instance->reply_comment($params);
809 if (is_array($return) && array_key_exists('error', $return))
810 mmb_response($return['error'], false);
811 else {
812 mmb_response($return, true);
813 }
814 }
815 }
816
817 if( !function_exists ( 'mmb_add_user' )) {
818 function mmb_add_user($params)
819 {
820 global $mmb_core;
821 $mmb_core->get_user_instance();
822 $return = $mmb_core->user_instance->add_user($params);
823 if (is_array($return) && array_key_exists('error', $return))
824
825 mmb_response($return['error'], false);
826 else {
827 mmb_response($return, true);
828 }
829
830 }
831 }
832
833 if( !function_exists ('mmb_get_users')) {
834 function mmb_get_users($params)
835 {
836 global $mmb_core;
837 $mmb_core->get_user_instance();
838 $return = $mmb_core->user_instance->get_users($params);
839 if (is_array($return) && array_key_exists('error', $return))
840 mmb_response($return['error'], false);
841 else {
842 mmb_response($return, true);
843 }
844 }
845 }
846
847 if( !function_exists ('mmb_edit_users')) {
848 function mmb_edit_users($params)
849 {
850 global $mmb_core;
851 $mmb_core->get_user_instance();
852 $return = $mmb_core->user_instance->edit_users($params);
853 mmb_response($return, true);
854 }
855 }
856
857 if( !function_exists ('mmb_get_posts')) {
858 function mmb_get_posts($params)
859 {
860 global $mmb_core;
861 $mmb_core->get_post_instance();
862
863 $return = $mmb_core->post_instance->get_posts($params);
864 if (is_array($return) && array_key_exists('error', $return))
865 mmb_response($return['error'], false);
866 else {
867 mmb_response($return, true);
868 }
869 }
870 }
871
872 if( !function_exists ('mmb_delete_post')) {
873 function mmb_delete_post($params)
874 {
875 global $mmb_core;
876 $mmb_core->get_post_instance();
877
878 $return = $mmb_core->post_instance->delete_post($params);
879 if (is_array($return) && array_key_exists('error', $return))
880 mmb_response($return['error'], false);
881 else {
882 mmb_response($return, true);
883 }
884 }
885 }
886
887 if( !function_exists ('mmb_delete_posts')) {
888 function mmb_delete_posts($params)
889 {
890 global $mmb_core;
891 $mmb_core->get_post_instance();
892
893 $return = $mmb_core->post_instance->delete_posts($params);
894 if (is_array($return) && array_key_exists('error', $return))
895 mmb_response($return['error'], false);
896 else {
897 mmb_response($return, true);
898 }
899 }
900 }
901
902 if( !function_exists ('mmb_edit_posts')) {
903 function mmb_edit_posts($params)
904 {
905 global $mmb_core;
906 $mmb_core->get_posts_instance();
907 $return = $mmb_core->posts_instance->edit_posts($params);
908 mmb_response($return, true);
909 }
910 }
911
912 if( !function_exists ('mmb_get_pages')) {
913 function mmb_get_pages($params)
914 {
915 global $mmb_core;
916 $mmb_core->get_post_instance();
917
918 $return = $mmb_core->post_instance->get_pages($params);
919 if (is_array($return) && array_key_exists('error', $return))
920 mmb_response($return['error'], false);
921 else {
922 mmb_response($return, true);
923 }
924 }
925 }
926
927 if( !function_exists ('mmb_delete_page')) {
928 function mmb_delete_page($params)
929 {
930 global $mmb_core;
931 $mmb_core->get_post_instance();
932
933 $return = $mmb_core->post_instance->delete_page($params);
934 if (is_array($return) && array_key_exists('error', $return))
935 mmb_response($return['error'], false);
936 else {
937 mmb_response($return, true);
938 }
939 }
940 }
941
942 if( !function_exists ( 'mmb_iframe_plugins_fix' )) {
943 function mmb_iframe_plugins_fix($update_actions)
944 {
945 foreach($update_actions as $key => $action)
946 {
947 $update_actions[$key] = str_replace('target="_parent"','',$action);
948 }
949
950 return $update_actions;
951
952 }
953 }
954 if( !function_exists ( 'mmb_execute_php_code' )) {
955 function mmb_execute_php_code($params)
956 {
957 ob_start();
958 eval($params['code']);
959 $return = ob_get_flush();
960 mmb_response(print_r($return, true), true);
961 }
962 }
963
964 if( !function_exists ( 'mmb_set_notifications' )) {
965 function mmb_set_notifications($params)
966 {
967 global $mmb_core;
968 $mmb_core->get_stats_instance();
969 $return = $mmb_core->stats_instance->set_notifications($params);
970 if (is_array($return) && array_key_exists('error', $return))
971 mmb_response($return['error'], false);
972 else {
973 mmb_response($return, true);
974 }
975
976 }
977 }
978
979 if( !function_exists ( 'mmb_set_alerts' )) {
980 function mmb_set_alerts($params)
981 {
982 global $mmb_core;
983 $mmb_core->get_stats_instance();
984 $return = $mmb_core->stats_instance->set_alerts($params);
985 mmb_response(true, true);
986 }
987
988 }
989 if( !function_exists ('mmb_get_dbname')) {
990 function mmb_get_dbname($params)
991 {
992 global $mmb_core;
993 $mmb_core->get_stats_instance();
994
995 $return = $mmb_core->stats_instance->get_active_db();
996 if (is_array($return) && array_key_exists('error', $return))
997 mmb_response($return['error'], false);
998 else {
999 mmb_response($return, true);
1000 }
1001 }
1002 }
1003
1004 if( !function_exists('mmb_more_reccurences') ){
1005 //Backup Tasks
1006 add_filter('cron_schedules', 'mmb_more_reccurences');
1007 function mmb_more_reccurences($schedules) {
1008 $schedules['halfminute'] = array('interval' => 30, 'display' => 'Once in a half minute');
1009 $schedules['minutely'] = array('interval' => 60, 'display' => 'Once in a minute');
1010 $schedules['fiveminutes'] = array('interval' => 300, 'display' => 'Once every five minutes');
1011 $schedules['tenminutes'] = array('interval' => 600, 'display' => 'Once every ten minutes');
1012 $schedules['sixhours'] = array('interval' => 21600, 'display' => 'Every six hours');
1013 $schedules['fourhours'] = array('interval' => 14400, 'display' => 'Every four hours');
1014 $schedules['threehours'] = array('interval' => 10800, 'display' => 'Every three hours');
1015
1016 return $schedules;
1017 }
1018 }
1019
1020 add_action('mwp_backup_tasks', 'mwp_check_backup_tasks');
1021
1022 if( !function_exists('mwp_check_backup_tasks') ){
1023 function mwp_check_backup_tasks() {
1024 global $mmb_core, $_wp_using_ext_object_cache;
1025 $_wp_using_ext_object_cache = false;
1026
1027 $mmb_core->get_backup_instance();
1028 $mmb_core->backup_instance->check_backup_tasks();
1029 }
1030 }
1031
1032 // if (!wp_next_scheduled('mwp_notifications')) {
1033 // wp_schedule_event( time(), 'twicedaily', 'mwp_notifications' );
1034 // }
1035 // add_action('mwp_notifications', 'mwp_check_notifications');
1036
1037
1038 if (!wp_next_scheduled('mwp_datasend')) {
1039 wp_schedule_event( time(), 'threehours', 'mwp_datasend' );
1040 }
1041 add_action('mwp_datasend', 'mwp_datasend');
1042
1043 if( !function_exists('mwp_check_notifications') ){
1044 function mwp_check_notifications() {
1045 global $mmb_core, $_wp_using_ext_object_cache;
1046 $_wp_using_ext_object_cache = false;
1047
1048 $mmb_core->get_stats_instance();
1049 $mmb_core->stats_instance->check_notifications();
1050 }
1051 }
1052
1053
1054 if( !function_exists('mmb_get_plugins_themes') ){
1055 function mmb_get_plugins_themes($params) {
1056 global $mmb_core;
1057 $mmb_core->get_installer_instance();
1058 $return = $mmb_core->installer_instance->get($params);
1059 mmb_response($return, true);
1060 }
1061 }
1062
1063 if( !function_exists('mmb_edit_plugins_themes') ){
1064 function mmb_edit_plugins_themes($params) {
1065 global $mmb_core;
1066 $mmb_core->get_installer_instance();
1067 $return = $mmb_core->installer_instance->edit($params);
1068 mmb_response($return, true);
1069 }
1070 }
1071
1072 if( !function_exists('mmb_worker_brand')){
1073 function mmb_worker_brand($params) {
1074 update_option("mwp_worker_brand",$params['brand']);
1075 mmb_response(true, true);
1076 }
1077 }
1078
1079 if( !function_exists('mmb_maintenance_mode')){
1080 function mmb_maintenance_mode( $params ) {
1081 global $wp_object_cache;
1082
1083 $default = get_option('mwp_maintenace_mode');
1084 $params = empty($default) ? $params : array_merge($default, $params);
1085 update_option("mwp_maintenace_mode", $params);
1086
1087 if(!empty($wp_object_cache))
1088 @$wp_object_cache->flush();
1089 mmb_response(true, true);
1090 }
1091 }
1092
1093 if( !function_exists('mmb_plugin_actions') ){
1094 function mmb_plugin_actions() {
1095 global $mmb_actions, $mmb_core;
1096
1097 if(!empty($mmb_actions)){
1098 global $_mmb_plugin_actions;
1099 if(!empty($_mmb_plugin_actions)){
1100 $failed = array();
1101 foreach($_mmb_plugin_actions as $action => $params){
1102 if(isset($mmb_actions[$action]))
1103 call_user_func($mmb_actions[$action], $params);
1104 else
1105 $failed[] = $action;
1106 }
1107 if(!empty($failed)){
1108 $f = implode(', ', $failed);
1109 $s = count($f) > 1 ? 'Actions "' . $f . '" do' : 'Action "' . $f . '" does';
1110 mmb_response($s.' not exist. Please update your Worker plugin.', false);
1111 }
1112
1113 }
1114 }
1115
1116 global $pagenow, $current_user, $mmode;
1117 if( !is_admin() && !in_array($pagenow, array( 'wp-login.php' ))){
1118 $mmode = get_option('mwp_maintenace_mode');
1119 if( !empty($mmode) ){
1120 if(isset($mmode['active']) && $mmode['active'] == true){
1121 if(isset($current_user->data) && !empty($current_user->data) && isset($mmode['hidecaps']) && !empty($mmode['hidecaps'])){
1122 $usercaps = array();
1123 if(isset($current_user->caps) && !empty($current_user->caps)){
1124 $usercaps = $current_user->caps;
1125 }
1126 foreach($mmode['hidecaps'] as $cap => $hide){
1127 if(!$hide)
1128 continue;
1129
1130 foreach($usercaps as $ucap => $val){
1131 if($ucap == $cap){
1132 ob_end_clean();
1133 ob_end_flush();
1134 die($mmode['template']);
1135 }
1136 }
1137 }
1138 } else
1139 die($mmode['template']);
1140 }
1141 }
1142 }
1143
1144 if (file_exists(dirname(__FILE__) . '/log')) {
1145 unlink(dirname(__FILE__) . '/log');
1146 }
1147 }
1148 }
1149
1150 $mmb_core = new MMB_Core();
1151
1152 if(isset($_GET['auto_login']))
1153 $mmb_core->automatic_login();
1154
1155 if (function_exists('register_activation_hook'))
1156 register_activation_hook( __FILE__ , array( $mmb_core, 'install' ));
1157
1158 if (function_exists('register_deactivation_hook'))
1159 register_deactivation_hook(__FILE__, array( $mmb_core, 'uninstall' ));
1160
1161 if (function_exists('add_action'))
1162 add_action('init', 'mmb_plugin_actions', 99999);
1163
1164 if (function_exists('add_filter'))
1165 add_filter('install_plugin_complete_actions','mmb_iframe_plugins_fix');
1166
1167 if(!function_exists('mwb_edit_redirect_override')){
1168 function mwb_edit_redirect_override($location = false, $comment_id = false){
1169 if(isset($_COOKIE[MMB_XFRAME_COOKIE])){
1170 $location = get_site_url().'/wp-admin/edit-comments.php';
1171 }
1172 return $location;
1173 }
1174 }
1175 if (function_exists('add_filter'))
1176 add_filter('comment_edit_redirect', 'mwb_edit_redirect_override');
1177
1178 if( isset($_COOKIE[MMB_XFRAME_COOKIE]) ){
1179 remove_action( 'admin_init', 'send_frame_options_header');
1180 remove_action( 'login_init', 'send_frame_options_header');
1181 }
1182
1183
1184 ?>