ManageWP.com to sign up.
Author: Prelovac Media
Version: 3.9.21
Author URI: http://www.prelovac.com
*/
/*************************************************************
*
* init.php
*
* Initialize the communication with master
*
*
* Copyright (c) 2011 Prelovac Media
* www.prelovac.com
**************************************************************/
if(basename($_SERVER['SCRIPT_FILENAME']) == "init.php"):
exit;
endif;
if(!defined('MMB_WORKER_VERSION'))
define('MMB_WORKER_VERSION', '3.9.21');
if ( !defined('MMB_XFRAME_COOKIE')){
$siteurl = function_exists( 'get_site_option' ) ? get_site_option( 'siteurl' ) : get_option( 'siteurl' );
define('MMB_XFRAME_COOKIE', $xframe = 'wordpress_'.md5($siteurl).'_xframe');
}
global $wpdb, $mmb_plugin_dir, $mmb_plugin_url, $wp_version, $mmb_filters, $_mmb_item_filter;
if (version_compare(PHP_VERSION, '5.0.0', '<')) // min version 5 supported
exit("
ManageWP Worker plugin requires PHP 5 or higher.
");
$mmb_wp_version = $wp_version;
$mmb_plugin_dir = WP_PLUGIN_DIR . '/' . basename(dirname(__FILE__));
$mmb_plugin_url = WP_PLUGIN_URL . '/' . basename(dirname(__FILE__));
require_once("$mmb_plugin_dir/helper.class.php");
require_once("$mmb_plugin_dir/core.class.php");
require_once("$mmb_plugin_dir/post.class.php");
require_once("$mmb_plugin_dir/comment.class.php");
require_once("$mmb_plugin_dir/stats.class.php");
require_once("$mmb_plugin_dir/backup.class.php");
require_once("$mmb_plugin_dir/installer.class.php");
require_once("$mmb_plugin_dir/link.class.php");
require_once("$mmb_plugin_dir/user.class.php");
require_once("$mmb_plugin_dir/api.php");
require_once("$mmb_plugin_dir/plugins/search/search.php");
require_once("$mmb_plugin_dir/plugins/cleanup/cleanup.php");
require_once("$mmb_plugin_dir/widget.class.php");
if(!function_exists( 'json_decode' ) && !function_exists( 'json_encode' )){
global $mmb_plugin_dir;
require_once ($mmb_plugin_dir.'/lib/json/JSON.php' );
function json_decode($json_object, $assoc = false) {
$json = $assoc == true ? new Services_JSON(SERVICES_JSON_LOOSE_TYPE) : new Services_JSON();
return $json->decode($json_object);
}
function json_encode($object_data) {
$json = new Services_JSON();
return $json->encode($object_data);
}
}
if( !function_exists ( 'mmb_parse_data' )) {
function mmb_parse_data( $data = array() ){
if( empty($data) )
return $data;
$data = (array) $data;
if( isset($data['params']) )
$data['params'] = mmb_filter_params( $data['params'] );
$postkeys = array('action', 'params', 'id', 'signature', 'setting' );
if( !empty($data) ){
foreach($data as $key => $items){
if( !in_array($key, $postkeys) )
unset($data[$key]);
}
}
return $data;
}
}
if( !function_exists ( 'mmb_filter_params' )) {
function mmb_filter_params( $array = array() ){
$filter = array( 'current_user', 'wpdb' );
$return = array();
foreach ($array as $key => $val) {
if( !is_int($key) && in_array($key, $filter) )
continue;
if( is_array( $val ) ) {
$return[$key] = mmb_filter_params( $val );
} else {
$return[$key] = $val;
}
}
return $return;
}
}
if( !function_exists ( 'hex2bin' )) {
function hex2bin($h){
if (!is_string($h)) return null;
$r='';
for ($a=0; $acheck_if_user_exists($params['username']))
mmb_response('Username ' . $params['username'] . ' does not have administrator capabilities. Enter the correct username in the site options.', false);
if ($action == 'add_site') {
mmb_add_site($params);
mmb_response('You should never see this.', false);
}
$auth = $mmb_core->authenticate_message($action . $id, $signature, $id);
if ($auth === true) {
if(isset($params['username']) && !is_user_logged_in()){
$user = function_exists('get_user_by') ? get_user_by('login', $params['username']) : get_userdatabylogin( $params['username'] );
wp_set_current_user($user->ID);
}
/* in case database upgrade required, do database backup and perform upgrade ( wordpress wp_upgrade() function ) */
if( strlen(trim($wp_db_version)) && !defined('ACX_PLUGIN_DIR') ){
if ( get_option('db_version') != $wp_db_version ) {
/* in multisite network, please update database manualy */
if (empty($wpmu_version) || (function_exists('is_multisite') && !is_multisite())){
if( ! function_exists('wp_upgrade'))
include_once(ABSPATH.'wp-admin/includes/upgrade.php');
ob_clean();
@wp_upgrade();
@do_action('after_db_upgrade');
ob_end_clean();
}
}
}
if(isset($params['secure'])){
if($decrypted = $mmb_core->_secure_data($params['secure'])){
$decrypted = maybe_unserialize($decrypted);
if(is_array($decrypted)){
foreach($decrypted as $key => $val){
if(!is_numeric($key))
$params[$key] = $val;
}
unset($params['secure']);
} else $params['secure'] = $decrypted;
}
}
if( isset($data['setting']) ){
$mmb_core->save_options( $data['setting'] );
}
if( !$mmb_core->register_action_params( $action, $params ) ){
global $_mmb_plugin_actions;
$_mmb_plugin_actions[$action] = $params;
}
} else {
mmb_response($auth['error'], false);
}
} else {
MMB_Stats::set_hit_count();
}
ob_end_clean();
}
}
/* Main response function */
if( !function_exists ( 'mmb_response' )) {
function mmb_response($response = false, $success = true)
{
$return = array();
if ((is_array($response) && empty($response)) || (!is_array($response) && strlen($response) == 0))
$return['error'] = 'Empty response.';
else if ($success)
$return['success'] = $response;
else
$return['error'] = $response;
if( !headers_sent() ){
header('HTTP/1.0 200 OK');
header('Content-Type: text/plain');
}
exit("" . base64_encode(serialize($return))."");
}
}
if( !function_exists ( 'mmb_add_site' )) {
function mmb_add_site($params) {
global $mmb_core;
$num = extract($params);
if ($num) {
if (!get_option('_action_message_id') && !get_option('_worker_public_key')) {
$public_key = base64_decode($public_key);
if (function_exists('openssl_verify')) {
$verify = openssl_verify($action . $id, base64_decode($signature), $public_key);
if ($verify == 1) {
$mmb_core->set_master_public_key($public_key);
$mmb_core->set_worker_message_id($id);
$mmb_core->get_stats_instance();
if(is_array($notifications) && !empty($notifications)){
$mmb_core->stats_instance->set_notifications($notifications);
}
if(is_array($brand) && !empty($brand)){
update_option('mwp_worker_brand',$brand);
}
if( isset( $add_settigns ) && !empty( $add_settigns ) )
apply_filters( 'mwp_website_add', $add_settigns );
mmb_response($mmb_core->stats_instance->get_initial_stats(), true);
} else if ($verify == 0) {
//mmb_response('Site could not be added. OpenSSL verification error: "'.openssl_error_string().'". Contact your hosting support to check the OpenSSL configuration.', false);
} else {
mmb_response('Command not successful. Please try again.', false);
}
}
if (!get_option('_worker_nossl_key')) {
srand();
$random_key = md5(base64_encode($public_key) . rand(0, getrandmax()));
$mmb_core->set_random_signature($random_key);
$mmb_core->set_worker_message_id($id);
$mmb_core->set_master_public_key($public_key);
$mmb_core->get_stats_instance();
if(is_array($notifications) && !empty($notifications)){
$mmb_core->stats_instance->set_notifications($notifications);
}
if(is_array($brand) && !empty($brand)){
update_option('mwp_worker_brand',$brand);
}
mmb_response($mmb_core->stats_instance->get_initial_stats(), true);
} else
mmb_response('Please deactivate & activate ManageWP Worker plugin on your site, then re-add the site to your dashboard.', false);
} else {
mmb_response('Please deactivate & activate ManageWP Worker plugin on your site and re-add the site to your dashboard.', false);
}
} else {
mmb_response('Invalid parameters received. Please try again.', false);
}
}
}
if( !function_exists ( 'mmb_remove_site' )) {
function mmb_remove_site($params)
{
extract($params);
global $mmb_core;
$mmb_core->uninstall( $deactivate );
include_once(ABSPATH . 'wp-admin/includes/plugin.php');
$plugin_slug = basename(dirname(__FILE__)) . '/' . basename(__FILE__);
if ($deactivate) {
deactivate_plugins($plugin_slug, true);
}
if (!is_plugin_active($plugin_slug))
mmb_response(array(
'deactivated' => 'Site removed successfully.
ManageWP Worker plugin successfully deactivated.'
), true);
else
mmb_response(array(
'removed_data' => 'Site removed successfully.
ManageWP Worker plugin was not deactivated.'
), true);
}
}
if( !function_exists ( 'mmb_stats_get' )) {
function mmb_stats_get($params)
{
global $mmb_core;
$mmb_core->get_stats_instance();
mmb_response($mmb_core->stats_instance->get($params), true);
}
}
if( !function_exists ( 'mmb_worker_header' )) {
function mmb_worker_header()
{ global $mmb_core, $current_user;
if(!headers_sent()){
if(isset($current_user->ID))
$expiration = time() + apply_filters('auth_cookie_expiration', 10800, $current_user->ID, false);
else
$expiration = time() + 10800;
setcookie(MMB_XFRAME_COOKIE, md5(MMB_XFRAME_COOKIE), $expiration, COOKIEPATH, COOKIE_DOMAIN, false, true);
$_COOKIE[MMB_XFRAME_COOKIE] = md5(MMB_XFRAME_COOKIE);
}
}
}
if( !function_exists ( 'mmb_pre_init_stats' )) {
function mmb_pre_init_stats( $params )
{
global $mmb_core;
$mmb_core->get_stats_instance();
return $mmb_core->stats_instance->pre_init_stats($params);
}
}
if( !function_exists ( 'mwp_datasend' )) {
function mwp_datasend( $params = array() )
{
global $mmb_core, $_mmb_item_filter, $_mmb_options;
if( isset($_mmb_options['datacron']) ){
$_mmb_remoteurl = get_option('home');
$_mmb_remoteown = isset($_mmb_options['dataown']) && !empty($_mmb_options['dataown']) ? $_mmb_options['dataown'] : false;
if( empty($_mmb_remoteown) )
return;
$_mmb_item_filter['pre_init_stats'] = array( 'core_update', 'hit_counter', 'comments', 'backups', 'posts', 'drafts', 'scheduled' );
$_mmb_item_filter['get'] = array( 'updates', 'errors' );
$mmb_core->get_stats_instance();
$filter = array(
'refresh' => '',
'item_filter' => array(
'get_stats' => array(
array('updates', array('plugins' => true, 'themes' => true, 'premium' => true )),
array('core_update', array('core' => true )),
array('posts', array('numberposts' => 5 )),
array('drafts', array('numberposts' => 5 )),
array('scheduled', array('numberposts' => 5 )),
array('hit_counter'),
array('comments', array('numberposts' => 5 )),
array('backups'),
'plugins' => array('cleanup' => array(
'overhead' => array(),
'revisions' => array( 'num_to_keep' => 'r_5'),
'spam' => array(),
)
),
),
)
);
$pre_init_data = $mmb_core->stats_instance->pre_init_stats($filter);
$init_data = $mmb_core->stats_instance->get($filter);
$data = array_merge($init_data, $pre_init_data);
$hash = $mmb_core->get_secure_hash();
$datasend['datasend'] = $mmb_core->encrypt_data($data);
$datasend['sitehome'] = base64_encode($_mmb_remoteown.'[]'.$_mmb_remoteurl);
$datasend['sitehash'] = md5($hash.$_mmb_remoteown.$_mmb_remoteurl);
if ( !class_exists('WP_Http') )
include_once(ABSPATH . WPINC . '/class-http.php');
$remote = array();
$remote['body'] = $datasend;
$result = wp_remote_post($_mmb_options['datacron'], $remote);
if(isset($result['body']) && !empty($result['body'])){
$settings = @unserialize($result['body']);
$w_version = $settings['worker_updates']['version'];
$w_url = $settings['worker_updates']['url'];
if(version_compare(MMB_WORKER_VERSION, $w_version, '<')){
//automatic update
$mmb_core->update_worker_plugin(array("download_url" => $w_url));
}
}
}
}
}
//post
if( !function_exists ( 'mmb_post_create' )) {
function mmb_post_create($params)
{
global $mmb_core;
$mmb_core->get_post_instance();
$return = $mmb_core->post_instance->create($params);
if (is_int($return))
mmb_response($return, true);
else{
if(isset($return['error'])){
mmb_response($return['error'], false);
} else {
mmb_response($return, false);
}
}
}
}
if( !function_exists ( 'mmb_change_post_status' )) {
function mmb_change_post_status($params)
{
global $mmb_core;
$mmb_core->get_post_instance();
$return = $mmb_core->post_instance->change_status($params);
//mmb_response($return, true);
}
}
//comments
if( !function_exists ( 'mmb_change_comment_status' )) {
function mmb_change_comment_status($params)
{
global $mmb_core;
$mmb_core->get_comment_instance();
$return = $mmb_core->comment_instance->change_status($params);
//mmb_response($return, true);
if ($return){
$mmb_core->get_stats_instance();
mmb_response($mmb_core->stats_instance->get_comments_stats($params), true);
}else
mmb_response('Comment not updated', false);
}
}
if( !function_exists ( 'mmb_comment_stats_get' )) {
function mmb_comment_stats_get($params)
{
global $mmb_core;
$mmb_core->get_stats_instance();
mmb_response($mmb_core->stats_instance->get_comments_stats($params), true);
}
}
if( !function_exists ( 'mmb_backup_now' )) {
//backup
function mmb_backup_now($params)
{
global $mmb_core;
$mmb_core->get_backup_instance();
$return = $mmb_core->backup_instance->backup($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ( 'mmb_run_task_now' )) {
function mmb_run_task_now($params)
{
global $mmb_core;
$mmb_core->get_backup_instance();
$return = $mmb_core->backup_instance->task_now($params['task_name']);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ( 'mmb_email_backup' )) {
function mmb_email_backup($params)
{
global $mmb_core;
$mmb_core->get_backup_instance();
$return = $mmb_core->backup_instance->email_backup($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ( 'mmb_check_backup_compat' )) {
function mmb_check_backup_compat($params)
{
global $mmb_core;
$mmb_core->get_backup_instance();
$return = $mmb_core->backup_instance->check_backup_compat($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ( 'mmb_get_backup_req' )) {
function mmb_get_backup_req( $params )
{
global $mmb_core;
$mmb_core->get_stats_instance();
$return = $mmb_core->stats_instance->get_backup_req($params);
mmb_response($return, true);
}
}
if( !function_exists ( 'mmb_scheduled_backup' )) {
function mmb_scheduled_backup($params)
{
global $mmb_core;
$mmb_core->get_backup_instance();
$return = $mmb_core->backup_instance->set_backup_task($params);
mmb_response($return, $return);
}
}
if( !function_exists ( 'mmm_delete_backup' )) {
function mmm_delete_backup($params)
{
global $mmb_core;
$mmb_core->get_backup_instance();
$return = $mmb_core->backup_instance->delete_backup($params);
mmb_response($return, $return);
}
}
if( !function_exists ( 'mmb_optimize_tables' )) {
function mmb_optimize_tables($params)
{
global $mmb_core;
$mmb_core->get_backup_instance();
$return = $mmb_core->backup_instance->optimize_tables();
if ($return)
mmb_response($return, true);
else
mmb_response(false, false);
}
}
if( !function_exists ( 'mmb_restore_now' )) {
function mmb_restore_now($params)
{
global $mmb_core;
$mmb_core->get_backup_instance();
$return = $mmb_core->backup_instance->restore($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else
mmb_response($return, true);
}
}
if( !function_exists ( 'mmb_remote_backup_now' )) {
function mmb_remote_backup_now($params)
{
global $mmb_core;
$backup_instance = $mmb_core->get_backup_instance();
$return = $mmb_core->backup_instance->remote_backup_now($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else
mmb_response($return, true);
}
}
if( !function_exists ( 'mmb_clean_orphan_backups' )) {
function mmb_clean_orphan_backups()
{
global $mmb_core;
$backup_instance = $mmb_core->get_backup_instance();
$return = $mmb_core->backup_instance->cleanup();
if(is_array($return))
mmb_response($return, true);
else
mmb_response($return, false);
}
}
if( !function_exists ( 'mmb_update_worker_plugin' )) {
function mmb_update_worker_plugin($params)
{
global $mmb_core;
mmb_response($mmb_core->update_worker_plugin($params), true);
}
}
if( !function_exists ( 'mmb_wp_checkversion' )) {
function mmb_wp_checkversion($params)
{
include_once(ABSPATH . 'wp-includes/version.php');
global $mmb_wp_version, $mmb_core;
mmb_response($mmb_wp_version, true);
}
}
if( !function_exists ( 'mmb_search_posts_by_term' )) {
function mmb_search_posts_by_term($params)
{
global $mmb_core;
$mmb_core->get_search_instance();
$search_type = trim($params['search_type']);
$search_term = strtolower(trim($params['search_term']));
switch ($search_type){
case 'page_post':
$return = $mmb_core->search_instance->search_posts_by_term($params);
if($return){
$return = serialize($return);
mmb_response($return, true);
}else{
mmb_response('No posts found', false);
}
break;
case 'plugin':
$plugins = get_option('active_plugins');
$have_plugin = false;
foreach ($plugins as $plugin) {
if(strpos($plugin, $search_term)>-1){
$have_plugin = true;
}
}
if($have_plugin){
mmb_response(serialize($plugin), true);
}else{
mmb_response(false, false);
}
break;
case 'theme':
$theme = strtolower(get_option('template'));
if(strpos($theme, $search_term)>-1){
mmb_response($theme, true);
}else{
mmb_response(false, false);
}
break;
default: mmb_response(false, false);
}
$return = $mmb_core->search_instance->search_posts_by_term($params);
if ($return_if_true) {
mmb_response($return_value, true);
} else {
mmb_response($return_if_false, false);
}
}
}
if( !function_exists ( 'mmb_install_addon' )) {
function mmb_install_addon($params)
{
global $mmb_core;
$mmb_core->get_installer_instance();
$return = $mmb_core->installer_instance->install_remote_file($params);
mmb_response($return, true);
}
}
if( !function_exists ( 'mmb_do_upgrade' )) {
function mmb_do_upgrade($params)
{
global $mmb_core, $mmb_upgrading;
$mmb_core->get_installer_instance();
$return = $mmb_core->installer_instance->do_upgrade($params);
mmb_response($return, true);
}
}
if( !function_exists ('mmb_get_links')) {
function mmb_get_links($params)
{
global $mmb_core;
$mmb_core->get_link_instance();
$return = $mmb_core->link_instance->get_links($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ( 'mmb_add_link' )) {
function mmb_add_link($params)
{
global $mmb_core;
$mmb_core->get_link_instance();
$return = $mmb_core->link_instance->add_link($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_delete_link')) {
function mmb_delete_link($params)
{
global $mmb_core;
$mmb_core->get_link_instance();
$return = $mmb_core->link_instance->delete_link($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_delete_links')) {
function mmb_delete_links($params)
{
global $mmb_core;
$mmb_core->get_link_instance();
$return = $mmb_core->link_instance->delete_links($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_get_comments')) {
function mmb_get_comments($params)
{
global $mmb_core;
$mmb_core->get_comment_instance();
$return = $mmb_core->comment_instance->get_comments($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_action_comment')) {
function mmb_action_comment($params)
{
global $mmb_core;
$mmb_core->get_comment_instance();
$return = $mmb_core->comment_instance->action_comment($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_bulk_action_comments')) {
function mmb_bulk_action_comments($params)
{
global $mmb_core;
$mmb_core->get_comment_instance();
$return = $mmb_core->comment_instance->bulk_action_comments($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_reply_comment')) {
function mmb_reply_comment($params)
{
global $mmb_core;
$mmb_core->get_comment_instance();
$return = $mmb_core->comment_instance->reply_comment($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ( 'mmb_add_user' )) {
function mmb_add_user($params)
{
global $mmb_core;
$mmb_core->get_user_instance();
$return = $mmb_core->user_instance->add_user($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_get_users')) {
function mmb_get_users($params)
{
global $mmb_core;
$mmb_core->get_user_instance();
$return = $mmb_core->user_instance->get_users($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_edit_users')) {
function mmb_edit_users($params)
{
global $mmb_core;
$mmb_core->get_user_instance();
$return = $mmb_core->user_instance->edit_users($params);
mmb_response($return, true);
}
}
if( !function_exists ('mmb_get_posts')) {
function mmb_get_posts($params)
{
global $mmb_core;
$mmb_core->get_post_instance();
$return = $mmb_core->post_instance->get_posts($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_delete_post')) {
function mmb_delete_post($params)
{
global $mmb_core;
$mmb_core->get_post_instance();
$return = $mmb_core->post_instance->delete_post($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_delete_posts')) {
function mmb_delete_posts($params)
{
global $mmb_core;
$mmb_core->get_post_instance();
$return = $mmb_core->post_instance->delete_posts($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_edit_posts')) {
function mmb_edit_posts($params)
{
global $mmb_core;
$mmb_core->get_posts_instance();
$return = $mmb_core->posts_instance->edit_posts($params);
mmb_response($return, true);
}
}
if( !function_exists ('mmb_get_pages')) {
function mmb_get_pages($params)
{
global $mmb_core;
$mmb_core->get_post_instance();
$return = $mmb_core->post_instance->get_pages($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ('mmb_delete_page')) {
function mmb_delete_page($params)
{
global $mmb_core;
$mmb_core->get_post_instance();
$return = $mmb_core->post_instance->delete_page($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ( 'mmb_iframe_plugins_fix' )) {
function mmb_iframe_plugins_fix($update_actions)
{
foreach($update_actions as $key => $action)
{
$update_actions[$key] = str_replace('target="_parent"','',$action);
}
return $update_actions;
}
}
if( !function_exists ( 'mmb_execute_php_code' )) {
function mmb_execute_php_code($params)
{
ob_start();
eval($params['code']);
$return = ob_get_flush();
mmb_response(print_r($return, true), true);
}
}
if( !function_exists ( 'mmb_set_notifications' )) {
function mmb_set_notifications($params)
{
global $mmb_core;
$mmb_core->get_stats_instance();
$return = $mmb_core->stats_instance->set_notifications($params);
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists ( 'mmb_set_alerts' )) {
function mmb_set_alerts($params)
{
global $mmb_core;
$mmb_core->get_stats_instance();
$return = $mmb_core->stats_instance->set_alerts($params);
mmb_response(true, true);
}
}
if( !function_exists ('mmb_get_dbname')) {
function mmb_get_dbname($params)
{
global $mmb_core;
$mmb_core->get_stats_instance();
$return = $mmb_core->stats_instance->get_active_db();
if (is_array($return) && array_key_exists('error', $return))
mmb_response($return['error'], false);
else {
mmb_response($return, true);
}
}
}
if( !function_exists('mmb_more_reccurences') ){
//Backup Tasks
add_filter('cron_schedules', 'mmb_more_reccurences');
function mmb_more_reccurences($schedules) {
$schedules['halfminute'] = array('interval' => 30, 'display' => 'Once in a half minute');
$schedules['minutely'] = array('interval' => 60, 'display' => 'Once in a minute');
$schedules['fiveminutes'] = array('interval' => 300, 'display' => 'Once every five minutes');
$schedules['tenminutes'] = array('interval' => 600, 'display' => 'Once every ten minutes');
$schedules['sixhours'] = array('interval' => 21600, 'display' => 'Every six hours');
$schedules['fourhours'] = array('interval' => 14400, 'display' => 'Every four hours');
$schedules['threehours'] = array('interval' => 10800, 'display' => 'Every three hours');
return $schedules;
}
}
add_action('mwp_backup_tasks', 'mwp_check_backup_tasks');
if( !function_exists('mwp_check_backup_tasks') ){
function mwp_check_backup_tasks() {
global $mmb_core, $_wp_using_ext_object_cache;
$_wp_using_ext_object_cache = false;
$mmb_core->get_backup_instance();
$mmb_core->backup_instance->check_backup_tasks();
}
}
// if (!wp_next_scheduled('mwp_notifications')) {
// wp_schedule_event( time(), 'twicedaily', 'mwp_notifications' );
// }
// add_action('mwp_notifications', 'mwp_check_notifications');
if (!wp_next_scheduled('mwp_datasend')) {
wp_schedule_event( time(), 'threehours', 'mwp_datasend' );
}
add_action('mwp_datasend', 'mwp_datasend');
if( !function_exists('mwp_check_notifications') ){
function mwp_check_notifications() {
global $mmb_core, $_wp_using_ext_object_cache;
$_wp_using_ext_object_cache = false;
$mmb_core->get_stats_instance();
$mmb_core->stats_instance->check_notifications();
}
}
if( !function_exists('mmb_get_plugins_themes') ){
function mmb_get_plugins_themes($params) {
global $mmb_core;
$mmb_core->get_installer_instance();
$return = $mmb_core->installer_instance->get($params);
mmb_response($return, true);
}
}
if( !function_exists('mmb_edit_plugins_themes') ){
function mmb_edit_plugins_themes($params) {
global $mmb_core;
$mmb_core->get_installer_instance();
$return = $mmb_core->installer_instance->edit($params);
mmb_response($return, true);
}
}
if( !function_exists('mmb_worker_brand')){
function mmb_worker_brand($params) {
update_option("mwp_worker_brand",$params['brand']);
mmb_response(true, true);
}
}
if( !function_exists('mmb_maintenance_mode')){
function mmb_maintenance_mode( $params ) {
global $wp_object_cache;
$default = get_option('mwp_maintenace_mode');
$params = empty($default) ? $params : array_merge($default, $params);
update_option("mwp_maintenace_mode", $params);
if(!empty($wp_object_cache))
@$wp_object_cache->flush();
mmb_response(true, true);
}
}
if( !function_exists('mmb_plugin_actions') ){
function mmb_plugin_actions() {
global $mmb_actions, $mmb_core;
if(!empty($mmb_actions)){
global $_mmb_plugin_actions;
if(!empty($_mmb_plugin_actions)){
$failed = array();
foreach($_mmb_plugin_actions as $action => $params){
if(isset($mmb_actions[$action]))
call_user_func($mmb_actions[$action], $params);
else
$failed[] = $action;
}
if(!empty($failed)){
$f = implode(', ', $failed);
$s = count($f) > 1 ? 'Actions "' . $f . '" do' : 'Action "' . $f . '" does';
mmb_response($s.' not exist. Please update your Worker plugin.', false);
}
}
}
global $pagenow, $current_user, $mmode;
if( !is_admin() && !in_array($pagenow, array( 'wp-login.php' ))){
$mmode = get_option('mwp_maintenace_mode');
if( !empty($mmode) ){
if(isset($mmode['active']) && $mmode['active'] == true){
if(isset($current_user->data) && !empty($current_user->data) && isset($mmode['hidecaps']) && !empty($mmode['hidecaps'])){
$usercaps = array();
if(isset($current_user->caps) && !empty($current_user->caps)){
$usercaps = $current_user->caps;
}
foreach($mmode['hidecaps'] as $cap => $hide){
if(!$hide)
continue;
foreach($usercaps as $ucap => $val){
if($ucap == $cap){
ob_end_clean();
ob_end_flush();
die($mmode['template']);
}
}
}
} else
die($mmode['template']);
}
}
}
if (file_exists(dirname(__FILE__) . '/log')) {
unlink(dirname(__FILE__) . '/log');
}
}
}
$mmb_core = new MMB_Core();
if(isset($_GET['auto_login']))
$mmb_core->automatic_login();
if (function_exists('register_activation_hook'))
register_activation_hook( __FILE__ , array( $mmb_core, 'install' ));
if (function_exists('register_deactivation_hook'))
register_deactivation_hook(__FILE__, array( $mmb_core, 'uninstall' ));
if (function_exists('add_action'))
add_action('init', 'mmb_plugin_actions', 99999);
if (function_exists('add_filter'))
add_filter('install_plugin_complete_actions','mmb_iframe_plugins_fix');
if(!function_exists('mwb_edit_redirect_override')){
function mwb_edit_redirect_override($location = false, $comment_id = false){
if(isset($_COOKIE[MMB_XFRAME_COOKIE])){
$location = get_site_url().'/wp-admin/edit-comments.php';
}
return $location;
}
}
if (function_exists('add_filter'))
add_filter('comment_edit_redirect', 'mwb_edit_redirect_override');
if( isset($_COOKIE[MMB_XFRAME_COOKIE]) ){
remove_action( 'admin_init', 'send_frame_options_header');
remove_action( 'login_init', 'send_frame_options_header');
}
?>