public function onActionResponse(MWP_Event_ActionResponse $event)
 {
     if ($event->getRequest()->getAction() !== 'add_site') {
         return;
     }
     if ($event->getRequest()->getProtocol() >= 100) {
         return;
     }
     $params = $event->getRequest()->getParams();
     $this->context->requireWpRewrite();
     $this->context->requireTaxonomies();
     $this->context->requirePostTypes();
     $this->context->requireTheme();
     $this->context->requireCookieConstants();
     $stats = new MMB_Stats();
     if (!empty($params['notifications'])) {
         $this->context->optionSet('mwp_notifications', $params['notifications']);
     }
     $event->setData($stats->get_initial_stats());
 }
Exemplo n.º 2
0
 function set_hit_count($fix_count = false)
 {
     global $mmb_core;
     $uptime_robot = array("74.86.158.106", "74.86.179.130", "74.86.179.131", "46.137.190.132", "122.248.234.23", "74.86.158.107");
     //don't let uptime robot to affect visit count
     if ($fix_count || !is_admin() && !MMB_Stats::is_bot() && !isset($_GET['doing_wp_cron']) && !in_array($_SERVER['REMOTE_ADDR'], $uptime_robot)) {
         $date = date('Y-m-d');
         $user_hit_count = (array) get_option('user_hit_count');
         if (!$user_hit_count) {
             $user_hit_count[$date] = 1;
             update_option('user_hit_count', $user_hit_count);
         } else {
             $dated_keys = array_keys($user_hit_count);
             $last_visit_date = $dated_keys[count($dated_keys) - 1];
             $days = intval((strtotime($date) - strtotime($last_visit_date)) / 60 / 60 / 24);
             if ($days > 1) {
                 $date_to_add = date('Y-m-d', strtotime($last_visit_date));
                 for ($i = 1; $i < $days; $i++) {
                     if (count($user_hit_count) > 14) {
                         $shifted = @array_shift($user_hit_count);
                     }
                     $next_key = strtotime('+1 day', strtotime($date_to_add));
                     if ($next_key == $date) {
                         break;
                     } else {
                         $user_hit_count[$next_key] = 0;
                     }
                 }
             }
             if (!isset($user_hit_count[$date])) {
                 $user_hit_count[$date] = 0;
             }
             if (!$fix_count) {
                 $user_hit_count[$date] = (int) $user_hit_count[$date] + 1;
             }
             if (count($user_hit_count) > 14) {
                 $shifted = @array_shift($user_hit_count);
             }
             update_option('user_hit_count', $user_hit_count);
         }
     }
 }
Exemplo n.º 3
0
 function mmb_parse_request()
 {
     global $mmb_core, $wp_db_version, $wpmu_version, $_wp_using_ext_object_cache, $_mwp_data, $_mwp_auth;
     if (empty($_mwp_auth)) {
         MMB_Stats::set_hit_count();
         return;
     }
     ob_start();
     $_wp_using_ext_object_cache = false;
     @set_time_limit(600);
     if ($_mwp_data['action'] === 'add_site') {
         mmb_add_site($_mwp_data['params']);
         mmb_response('You should never see this.', false);
     }
     /* 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($_mwp_data['params']['secure'])) {
         if ($decrypted = $mmb_core->_secure_data($_mwp_data['params']['secure'])) {
             $decrypted = maybe_unserialize($decrypted);
             if (is_array($decrypted)) {
                 foreach ($decrypted as $key => $val) {
                     if (!is_numeric($key)) {
                         $_mwp_data['params'][$key] = $val;
                     }
                 }
                 unset($_mwp_data['params']['secure']);
             } else {
                 $_mwp_data['params']['secure'] = $decrypted;
             }
         }
     }
     if (isset($_mwp_data['setting'])) {
         $mmb_core->save_options($_mwp_data['setting']);
     }
     if (!$mmb_core->register_action_params($_mwp_data['action'], $_mwp_data['params'])) {
         global $_mmb_plugin_actions;
         $_mmb_plugin_actions[$_mwp_data['action']] = $_mwp_data['params'];
     }
     ob_end_clean();
 }
Exemplo n.º 4
0
Arquivo: init.php Projeto: juslee/e27
 function mmb_parse_request()
 {
     if (!isset($HTTP_RAW_POST_DATA)) {
         $HTTP_RAW_POST_DATA = file_get_contents('php://input');
     }
     ob_start();
     global $current_user, $mmb_core, $new_actions, $wp_db_version, $wpmu_version, $_wp_using_ext_object_cache, $_mmb_options;
     /*$data = array();
     		if(substr($HTTP_RAW_POST_DATA, 0, 15) == "mwp_a=managewp&"){
     			$HTTP_RAW_POST_DATA = str_replace("mwp_a=managewp&", "", $HTTP_RAW_POST_DATA);
     			parse_str($HTTP_RAW_POST_DATA, $data);
     		}*/
     if (substr($HTTP_RAW_POST_DATA, 0, 7) == "action=") {
         $HTTP_RAW_POST_DATA = str_replace("action=", "", $HTTP_RAW_POST_DATA);
     }
     $data = base64_decode($HTTP_RAW_POST_DATA);
     if ($data) {
         $data = mmb_parse_data(@unserialize($data));
         $num = @extract($data);
         //$signature = base64_decode($signature);
     }
     if (isset($action)) {
         $_wp_using_ext_object_cache = false;
         @set_time_limit(600);
         if (!$mmb_core->check_if_user_exists($params['username'])) {
             mmb_response('Username <b>' . $params['username'] . '</b> 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();
 }