public static function syncSite(&$pWebsite = null, $pForceFetch = false, $pAllowDisconnect = true) { if ($pWebsite == null) { return false; } $userExtension = MainWP_DB::Instance()->getUserExtensionByUserId($pWebsite->userid); if ($userExtension == null) { return false; } MainWP_Utility::endSession(); try { $pluginDir = $pWebsite->pluginDir; if ($pluginDir == '') { $pluginDir = $userExtension->pluginDir; } $cloneEnabled = apply_filters('mainwp_clone_enabled', false); $cloneSites = array(); if ($cloneEnabled) { $disallowedCloneSites = get_option('mainwp_clone_disallowedsites'); if ($disallowedCloneSites === false) { $disallowedCloneSites = array(); } $websites = MainWP_DB::Instance()->query(MainWP_DB::Instance()->getSQLWebsitesForCurrentUser()); if ($websites) { while ($websites && ($website = @MainWP_DB::fetch_object($websites))) { if (in_array($website->id, $disallowedCloneSites)) { continue; } if ($website->id == $pWebsite->id) { continue; } $cloneSites[$website->id] = array('name' => $website->name, 'url' => $website->url, 'extauth' => $website->extauth, 'size' => $website->totalsize); } @MainWP_DB::free_result($websites); } } $pluginConflicts = get_option('mainwp_pluginConflicts'); if ($pluginConflicts !== false) { $pluginConflicts = array_keys($pluginConflicts); } $themeConflicts = get_option('mainwp_themeConflicts'); if ($themeConflicts !== false) { $themeConflicts = array_keys($themeConflicts); } $othersData = apply_filters('mainwp-sync-others-data', array(), $pWebsite); $information = MainWP_Utility::fetchUrlAuthed($pWebsite, 'stats', array('optimize' => get_option('mainwp_optimize') == 1 ? 1 : 0, 'heatMap' => MainWP_Extensions::isExtensionAvailable('mainwp-heatmap-extension') ? $userExtension->heatMap : 0, 'pluginDir' => $pluginDir, 'cloneSites' => !$cloneEnabled ? 0 : urlencode(json_encode($cloneSites)), 'pluginConflicts' => json_encode($pluginConflicts), 'themeConflicts' => json_encode($themeConflicts), 'othersData' => json_encode($othersData), 'server' => get_admin_url(), 'numberdaysOutdatePluginTheme' => get_option('mainwp_numberdays_Outdate_Plugin_Theme', 365)), true, $pForceFetch); $return = self::syncInformationArray($pWebsite, $information, '', 1, false, $pAllowDisconnect); return $return; } catch (MainWP_Exception $e) { $sync_errors = ''; $offline_check_result = 1; if ($e->getMessage() == 'HTTPERROR') { $sync_errors = __('HTTP error', 'mainwp') . ($e->getMessageExtra() != null ? ' - ' . $e->getMessageExtra() : ''); $offline_check_result = -1; } else { if ($e->getMessage() == 'NOMAINWP') { $sync_errors = __('MainWP not detected', 'mainwp'); $offline_check_result = 1; } } return self::syncInformationArray($pWebsite, $information, $sync_errors, $offline_check_result, true, $pAllowDisconnect); } }