예제 #1
0
    public static function render()
    {
        $current_wpid = MainWP_Utility::get_current_wpid();
        if (!MainWP_Utility::ctype_digit($current_wpid)) {
            return;
        }
        $website = MainWP_DB::Instance()->getWebsiteById($current_wpid, true);
        ?>
		<div id="mainwp-notes-area">
			<div id="mainwp-notes-note" style="padding-bottom: 1em;">
				<?php 
        if ($website->note == '') {
            echo 'No Saved Notes';
        } else {
            echo $website->note;
        }
        ?>
			</div>
			<div style="text-align: center; border-top: 1px Solid #f4f4f4; padding-top: 1em;">
				<a href="#" class="mainwp_notes_show_all button button-primary" id="mainwp_notes_<?php 
        echo $website->id;
        ?>
"><?php 
        _e('Edit Notes', 'mainwp');
        ?>
</a>
			</div>
		</div>
		<?php 
    }
예제 #2
0
 public function sync($args, $assoc_args)
 {
     $websites = MainWP_DB::Instance()->query(MainWP_DB::Instance()->getSQLWebsitesForCurrentUser());
     WP_CLI::line('Syncing ' . MainWP_DB::num_rows($websites) . ' sites');
     $warnings = 0;
     $errors = 0;
     while ($websites && ($website = @MainWP_DB::fetch_object($websites))) {
         WP_CLI::line('  -> ' . $website->name . ' (' . $website->url . ')');
         try {
             if (MainWP_Sync::syncSite($website)) {
                 WP_CLI::success('  Sync succeeded');
             } else {
                 WP_CLI::warning('  Sync failed');
                 $warnings++;
             }
         } catch (Exception $e) {
             WP_CLI::error('  Sync failed');
             $errors++;
         }
     }
     @MainWP_DB::free_result($websites);
     if ($errors > 0) {
         WP_CLI::error('Sync completed with errors');
     } else {
         if ($warnings > 0) {
             WP_CLI::warning('Sync completed with warnings');
         } else {
             WP_CLI::success('Sync completed');
         }
     }
 }
 public static function handleSettingsPost()
 {
     if (isset($_POST['submit'])) {
         $userExtension = MainWP_DB::Instance()->getUserExtension();
         $userExtension->heatMap = !isset($_POST['mainwp_options_footprint_heatmap']) ? 1 : 0;
         $userExtension->pluginDir = !isset($_POST['mainwp_options_footprint_plugin_folder']) ? 'default' : 'hidden';
         MainWP_DB::Instance()->updateUserExtension($userExtension);
         return true;
     }
     return false;
 }
 public static function addSite($website)
 {
     $error = '';
     $message = '';
     if ($website) {
         $error = __('Your site is already added to MainWP', 'mainwp');
     } else {
         try {
             //Add
             if (function_exists('openssl_pkey_new')) {
                 $conf = array('private_key_bits' => 384);
                 $conf_loc = MainWP_System::get_openssl_conf();
                 if (!empty($conf_loc)) {
                     $conf['config'] = $conf_loc;
                 }
                 $res = openssl_pkey_new($conf);
                 @openssl_pkey_export($res, $privkey, null, $conf);
                 $pubkey = openssl_pkey_get_details($res);
                 $pubkey = $pubkey['key'];
             } else {
                 $privkey = '-1';
                 $pubkey = '-1';
             }
             $url = $_POST['managesites_add_wpurl'];
             $pluginConflicts = get_option('mainwp_pluginConflicts');
             if ($pluginConflicts !== false) {
                 $pluginConflicts = array_keys($pluginConflicts);
             }
             $themeConflicts = get_option('mainwp_themeConflicts');
             if ($themeConflicts !== false) {
                 $themeConflicts = array_keys($themeConflicts);
             }
             // to fix bug
             if (is_array($pluginConflicts)) {
                 $pluginConflicts = array_filter($pluginConflicts);
             }
             if (is_array($themeConflicts)) {
                 $themeConflicts = array_filter($themeConflicts);
             }
             $verifyCertificate = !isset($_POST['verify_certificate']) || empty($_POST['verify_certificate']) ? null : $_POST['verify_certificate'];
             $sslVersion = MainWP_Utility::getCURLSSLVersion(!isset($_POST['ssl_version']) || empty($_POST['ssl_version']) ? null : $_POST['ssl_version']);
             $addUniqueId = isset($_POST['managesites_add_uniqueId']) ? $_POST['managesites_add_uniqueId'] : '';
             $http_user = isset($_POST['managesites_add_http_user']) ? $_POST['managesites_add_http_user'] : '';
             $http_pass = isset($_POST['managesites_add_http_pass']) ? $_POST['managesites_add_http_pass'] : '';
             $information = MainWP_Utility::fetchUrlNotAuthed($url, $_POST['managesites_add_wpadmin'], 'register', array('pubkey' => $pubkey, 'server' => get_admin_url(), 'uniqueId' => $addUniqueId, 'pluginConflicts' => json_encode($pluginConflicts), 'themeConflicts' => json_encode($themeConflicts)), false, $verifyCertificate, $http_user, $http_pass, $sslVersion);
             if (isset($information['error']) && $information['error'] != '') {
                 $error = $information['error'];
             } else {
                 if (isset($information['register']) && $information['register'] == 'OK') {
                     //Add website to database
                     $groupids = array();
                     $groupnames = array();
                     if (isset($_POST['groupids'])) {
                         foreach ($_POST['groupids'] as $group) {
                             $groupids[] = $group;
                         }
                     }
                     if (isset($_POST['groupnames']) && $_POST['groupnames'] != '' || isset($_POST['groupnames_import']) && $_POST['groupnames_import'] != '') {
                         if ($_POST['groupnames']) {
                             $tmpArr = explode(',', $_POST['groupnames']);
                         } else {
                             if ($_POST['groupnames_import']) {
                                 $tmpArr = explode(';', $_POST['groupnames_import']);
                             }
                         }
                         foreach ($tmpArr as $tmp) {
                             $group = MainWP_DB::Instance()->getGroupByNameForUser(trim($tmp));
                             if ($group) {
                                 if (!in_array($group->id, $groupids)) {
                                     $groupids[] = $group->id;
                                 }
                             } else {
                                 $groupnames[] = trim($tmp);
                             }
                         }
                     }
                     if (!isset($information['uniqueId']) || empty($information['uniqueId'])) {
                         $addUniqueId = '';
                     }
                     $http_user = isset($_POST['managesites_add_http_user']) ? $_POST['managesites_add_http_user'] : '';
                     $http_pass = isset($_POST['managesites_add_http_pass']) ? $_POST['managesites_add_http_pass'] : '';
                     global $current_user;
                     $id = MainWP_DB::Instance()->addWebsite($current_user->ID, $_POST['managesites_add_wpname'], $_POST['managesites_add_wpurl'], $_POST['managesites_add_wpadmin'], base64_encode($pubkey), base64_encode($privkey), $information['nossl'], isset($information['nosslkey']) ? $information['nosslkey'] : null, $groupids, $groupnames, $verifyCertificate, $addUniqueId, $http_user, $http_pass, $sslVersion);
                     $message = sprintf(__('Site successfully added - Visit the Site\'s %sDashboard%s now.', 'mainwp'), '<a href="admin.php?page=managesites&dashboard=' . $id . '" style="text-decoration: none;" title="' . __('Dashboard', 'mainwp') . '">', '</a>');
                     $website = MainWP_DB::Instance()->getWebsiteById($id);
                     MainWP_Sync::syncInformationArray($website, $information);
                 } else {
                     $error = __('Undefined error.', 'mainwp');
                 }
             }
         } catch (MainWP_Exception $e) {
             if ($e->getMessage() == 'HTTPERROR') {
                 $error = 'HTTP error' . ($e->getMessageExtra() != null ? ' - ' . $e->getMessageExtra() : '');
             } else {
                 if ($e->getMessage() == 'NOMAINWP') {
                     $error = __('No MainWP Child plugin detected, first install and activate the plugin and add your site to MainWP afterwards. If you continue experiencing this issue please ', 'mainwp');
                     if ($e->getMessageExtra() != null) {
                         $error .= sprintf(__('test your connection %shere%s or ', 'mainwp'), '<a href="' . admin_url('admin.php?page=managesites&do=test&site=' . urlencode($e->getMessageExtra())) . '">', '</a>');
                     }
                     $error .= sprintf(__('post as much information as possible on the error in the %ssupport forum%s.', 'mainwp'), '<a href="https://mainwp.com/forum/">', '</a>');
                 } else {
                     $error = $e->getMessage();
                 }
             }
         }
     }
     return array($message, $error);
 }
예제 #5
0
 function mainwp_force_destroy_sessions()
 {
     $this->secure_request('mainwp_force_destroy_sessions');
     $website_id = isset($_POST['website_id']) ? (int) $_POST['website_id'] : 0;
     if (!MainWP_DB::Instance()->getWebsiteById($website_id)) {
         die(json_encode(array('error' => array('message' => __('This website does not exist', 'mainwp')))));
     }
     $website = MainWP_DB::Instance()->getWebsiteById($website_id);
     if (!MainWP_Utility::can_edit_website($website)) {
         die(json_encode(array('error' => array('message' => __('You cannot edit this website', 'mainwp')))));
     }
     try {
         $information = MainWP_Utility::fetchUrlAuthed($website, 'settings_tools', array('action' => 'force_destroy_sessions'));
         global $mainWP;
         if ($mainWP->getVersion() == '2.0.22' || $mainWP->getVersion() == '2.0.23') {
             if (get_option('mainwp_fixed_security_2022') != 1) {
                 update_option('mainwp_fixed_security_2022', 1);
             }
         }
     } catch (Exception $e) {
         $information = array('error' => __('fetchUrlAuthed exception', 'mainwp'));
     }
     die(json_encode($information));
 }
 public static function action($pAction)
 {
     $plugin = $_POST['plugin'];
     $websiteIdEnc = $_POST['websiteId'];
     if (empty($plugin)) {
         die(json_encode(array('error' => 'Invalid Request.')));
     }
     $websiteId = $websiteIdEnc;
     if (!MainWP_Utility::ctype_digit($websiteId)) {
         die(json_encode(array('error' => 'Invalid Request.')));
     }
     $website = MainWP_DB::Instance()->getWebsiteById($websiteId);
     if (!MainWP_Utility::can_edit_website($website)) {
         die(json_encode(array('error' => 'You can not edit this website.')));
     }
     try {
         $information = MainWP_Utility::fetchUrlAuthed($website, 'plugin_action', array('action' => $pAction, 'plugin' => $plugin));
     } catch (MainWP_Exception $e) {
         die(json_encode(array('error' => $e->getMessage())));
     }
     if (!isset($information['status']) || $information['status'] != 'SUCCESS') {
         die(json_encode(array('error' => 'Unexpected error.')));
     }
 }
    public static function renderMetabox()
    {
        $website = MainWP_Utility::get_current_wpid();
        if (!$website) {
            return;
        }
        $website = MainWP_DB::Instance()->getWebsiteById($website);
        MainWP_Manage_Sites::showBackups($website);
        ?>
		<?php 
        if (mainwp_current_user_can('dashboard', 'execute_backups')) {
            ?>
			<hr/>
			<div style="text-align: center;">
				<a href="<?php 
            echo admin_url('admin.php?page=managesites&backupid=' . $website->id);
            ?>
" class="button-primary"><?php 
            _e('Backup Now', 'mainwp');
            ?>
</a>
			</div>
		<?php 
        }
        ?>
		<?php 
    }
예제 #8
0
 public function mwp_setup_notification_save()
 {
     check_admin_referer('mwp-setup');
     $important_notification = !isset($_POST['mwp_setup_options_important_notification']) ? 0 : 1;
     update_option('mwp_setup_importantNotification', $important_notification);
     MainWP_Utility::update_option('mainwp_notificationOnBackupFail', $important_notification);
     MainWP_Utility::update_option('mainwp_automaticDailyUpdate', $important_notification ? 2 : 0);
     $userExtension = MainWP_DB::Instance()->getUserExtension();
     $userExtension->offlineChecksOnlineNotification = $important_notification;
     $userExtension->user_email = isset($_POST['mwp_setup_options_email']) && !empty($_POST['mwp_setup_options_email']) ? $_POST['mwp_setup_options_email'] : "";
     MainWP_DB::Instance()->updateUserExtension($userExtension);
     wp_redirect($this->get_next_step_link());
     exit;
 }
예제 #9
0
 /**
  * @param string $pluginFile Extension plugin file to verify
  * @param string $key The child-key
  * @param int $groupid The id of the group you wish to retrieve
  * @param bool $for_manager
  *
  * @return array|bool An array of arrays, the inner-array contains the id/name/array of site ids for the supplied groupid/all groups. False when something goes wrong.
  */
 public static function hookGetGroups($pluginFile, $key, $groupid, $for_manager = false)
 {
     if (!self::hookVerify($pluginFile, $key)) {
         return false;
     }
     if ($for_manager && (!defined('MWP_TEAMCONTROL_PLUGIN_SLUG') || !mainwp_current_user_can('extension', dirname(MWP_TEAMCONTROL_PLUGIN_SLUG)))) {
         return false;
     }
     if (isset($groupid)) {
         $group = MainWP_DB::Instance()->getGroupById($groupid);
         if (!MainWP_Utility::can_edit_group($group)) {
             return false;
         }
         $websites = MainWP_DB::Instance()->getWebsitesByGroupId($group->id);
         $websitesOut = array();
         foreach ($websites as $website) {
             $websitesOut[] = $website->id;
         }
         return array(array('id' => $groupid, 'name' => $group->name, 'websites' => $websitesOut));
     }
     $groups = MainWP_DB::Instance()->getGroupsAndCount(null, $for_manager);
     $output = array();
     foreach ($groups as $group) {
         $websites = MainWP_DB::Instance()->getWebsitesByGroupId($group->id);
         $websitesOut = array();
         foreach ($websites as $website) {
             if (in_array($website->id, $websitesOut)) {
                 continue;
             }
             $websitesOut[] = $website->id;
         }
         $output[] = array('id' => $group->id, 'name' => $group->name, 'websites' => $websitesOut);
     }
     return $output;
 }
 function display_rows()
 {
     foreach ($this->items as $item) {
         $sites = $item->sites == '' ? array() : explode(',', $item->sites);
         $groups = $item->groups == '' ? array() : explode(',', $item->groups);
         foreach ($groups as $group) {
             $websites = MainWP_DB::Instance()->getWebsitesByGroupId($group);
             if ($websites == null) {
                 continue;
             }
             foreach ($websites as $website) {
                 if (!in_array($website->id, $sites)) {
                     $sites[] = $website->id;
                 }
             }
         }
         $item->the_sites = $sites;
         $this->single_row($item);
     }
 }
예제 #11
0
 function update()
 {
     MainWP_DB::Instance()->update();
     MainWP_DB::Instance()->install();
 }
예제 #12
0
    public static function renderSites($renew, $pExit = true)
    {
        $current_wpid = MainWP_Utility::get_current_wpid();
        if ($current_wpid) {
            $sql = MainWP_DB::Instance()->getSQLWebsiteById($current_wpid);
        } else {
            $sql = MainWP_DB::Instance()->getSQLWebsitesForCurrentUser();
        }
        $websites = MainWP_DB::Instance()->query($sql);
        $allPages = array();
        if ($websites) {
            while ($websites && ($website = @MainWP_DB::fetch_object($websites))) {
                if ($website->recent_pages == '') {
                    continue;
                }
                $pages = json_decode($website->recent_pages, 1);
                if (count($pages) == 0) {
                    continue;
                }
                foreach ($pages as $page) {
                    $page['website'] = (object) array('id' => $website->id, 'url' => $website->url);
                    $allPages[] = $page;
                }
            }
            @MainWP_DB::free_result($websites);
        }
        $recent_pages_published = MainWP_Utility::getSubArrayHaving($allPages, 'status', 'publish');
        $recent_pages_published = MainWP_Utility::sortmulti($recent_pages_published, 'dts', 'desc');
        $recent_pages_draft = MainWP_Utility::getSubArrayHaving($allPages, 'status', 'draft');
        $recent_pages_draft = MainWP_Utility::sortmulti($recent_pages_draft, 'dts', 'desc');
        $recent_pages_pending = MainWP_Utility::getSubArrayHaving($allPages, 'status', 'pending');
        $recent_pages_pending = MainWP_Utility::sortmulti($recent_pages_pending, 'dts', 'desc');
        $recent_pages_trash = MainWP_Utility::getSubArrayHaving($allPages, 'status', 'trash');
        $recent_pages_trash = MainWP_Utility::sortmulti($recent_pages_trash, 'dts', 'desc');
        ?>
		<div class="clear">
			<a href="<?php 
        echo admin_url('admin.php?page=PageBulkAdd&select=' . ($current_wpid ? $current_wpid : 'all'));
        ?>
" class="button-primary" style="float: right"><?php 
        _e('Add New', 'mainwp');
        ?>
</a>
			<a class="mainwp_action left mainwp_action_down recent_posts_published_lnk" href="#"><?php 
        _e('Published', 'mainwp');
        ?>
 (<?php 
        echo count($recent_pages_published);
        ?>
)</a><a class="mainwp_action mid recent_posts_draft_lnk" href="#"><?php 
        _e('Draft', 'mainwp');
        ?>
 (<?php 
        echo count($recent_pages_draft);
        ?>
)</a><a class="mainwp_action mid recent_posts_pending_lnk" href="#"><?php 
        _e('Pending', 'mainwp');
        ?>
 (<?php 
        echo count($recent_pages_pending);
        ?>
)</a><a class="mainwp_action right recent_posts_trash_lnk" href="#"><?php 
        _e('Trash', 'mainwp');
        ?>
 (<?php 
        echo count($recent_pages_trash);
        ?>
)</a><br/><br/>

			<div class="recent_posts_published">
				<?php 
        for ($i = 0; $i < count($recent_pages_published) && $i < 5; $i++) {
            if (!isset($recent_pages_published[$i]['title']) || $recent_pages_published[$i]['title'] == '') {
                $recent_pages_published[$i]['title'] = '(No Title)';
            }
            if (isset($recent_pages_published[$i]['dts'])) {
                if (!stristr($recent_pages_published[$i]['dts'], '-')) {
                    $recent_pages_published[$i]['dts'] = MainWP_Utility::formatTimestamp(MainWP_Utility::getTimestamp($recent_pages_published[$i]['dts']));
                }
            }
            ?>
					<div class="mainwp-row mainwp-recent">
						<input class="postId" type="hidden" name="id" value="<?php 
            echo $recent_pages_published[$i]['id'];
            ?>
"/>
						<input class="websiteId" type="hidden" name="id" value="<?php 
            echo $recent_pages_published[$i]['website']->id;
            ?>
"/>
						<span class="mainwp-left-col" style="width: 60% !important; margin-right: 1em;"><a href="<?php 
            echo $recent_pages_published[$i]['website']->url;
            ?>
?p=<?php 
            echo $recent_pages_published[$i]['id'];
            ?>
" target="_blank"><?php 
            echo htmlentities($recent_pages_published[$i]['title'], ENT_COMPAT | ENT_HTML401, 'UTF-8');
            ?>
</a></span>
						<span class="mainwp-mid-col">
							<a href="<?php 
            echo admin_url('admin.php?page=CommentBulkManage&siteid=' . $recent_pages_published[$i]['website']->id . '&postid=' . $recent_pages_published[$i]['id']);
            ?>
" title="<?php 
            echo $recent_pages_published[$i]['comment_count'];
            ?>
" class="post-com-count" style="display: inline-block !important;">
								<span class="comment-count"><?php 
            echo $recent_pages_published[$i]['comment_count'];
            ?>
</span>
							</a>
						</span>
						<span class="mainwp-right-col">
							<a href="<?php 
            echo $recent_pages_published[$i]['website']->url;
            ?>
" target="_blank">
								<i class="fa fa-external-link"></i> <?php 
            echo MainWP_Utility::getNiceURL($recent_pages_published[$i]['website']->url);
            ?>
							</a>
							<br/>
							<?php 
            echo $recent_pages_published[$i]['dts'];
            ?>
						</span>

						<div style="clear: left;"></div>
						<div class="mainwp-row-actions">
							<a href="#" class="mainwp-post-unpublish"><?php 
            _e('Unpublish', 'mainwp');
            ?>
</a> |
							<a href="admin.php?page=SiteOpen&websiteid=<?php 
            echo $recent_pages_published[$i]['website']->id;
            ?>
&location=<?php 
            echo base64_encode('post.php?action=editpost&post=' . $recent_pages_published[$i]['id'] . '&action=edit');
            ?>
" title="Edit this post"><?php 
            _e('Edit', 'mainwp');
            ?>
</a> |
							<a href="#" class="mainwp-post-trash"><?php 
            _e('Trash', 'mainwp');
            ?>
</a>|
							<a href="<?php 
            echo $recent_pages_published[$i]['website']->url . (substr($recent_pages_published[$i]['website']->url, -1) != '/' ? '/' : '') . '?p=' . $recent_pages_published[$i]['id'];
            ?>
" target="_blank" title="View '<?php 
            echo $recent_pages_published[$i]['title'];
            ?>
'" rel="permalink"><?php 
            _e('View', 'mainwp');
            ?>
</a> |
							<a href="admin.php?page=PageBulkManage" class="mainwp-post-viewall"><?php 
            _e('View All', 'mainwp');
            ?>
</a>
						</div>
						<div class="mainwp-row-actions-working">
							<i class="fa fa-spinner fa-pulse"></i> <?php 
            _e('Please wait', 'mainwp');
            ?>
							<div>&nbsp;</div>
						</div>
					</div>
				<?php 
        }
        ?>
			</div>

			<div class="recent_posts_draft" style="display: none">
				<?php 
        for ($i = 0; $i < count($recent_pages_draft) && $i < 5; $i++) {
            if (!isset($recent_pages_draft[$i]['title']) || $recent_pages_draft[$i]['title'] == '') {
                $recent_pages_draft[$i]['title'] = '(No Title)';
            }
            if (isset($recent_pages_draft[$i]['dts'])) {
                if (!stristr($recent_pages_draft[$i]['dts'], '-')) {
                    $recent_pages_draft[$i]['dts'] = MainWP_Utility::formatTimestamp(MainWP_Utility::getTimestamp($recent_pages_draft[$i]['dts']));
                }
            }
            ?>
					<div class="mainwp-row mainwp-recent">
						<input class="postId" type="hidden" name="id" value="<?php 
            echo $recent_pages_draft[$i]['id'];
            ?>
"/>
						<input class="websiteId" type="hidden" name="id" value="<?php 
            echo $recent_pages_draft[$i]['website']->id;
            ?>
"/>
						<span class="mainwp-left-col" style="width: 60% !important;  margin-right: 1em;"><a href="<?php 
            echo $recent_pages_draft[$i]['website']->url;
            ?>
?p=<?php 
            echo $recent_pages_draft[$i]['id'];
            ?>
" target="_blank"><?php 
            echo htmlentities($recent_pages_draft[$i]['title'], ENT_COMPAT | ENT_HTML401, 'UTF-8');
            ?>
</a></span>
						<span class="mainwp-mid-col">
							<a href="<?php 
            echo admin_url('admin.php?page=CommentBulkManage&siteid=' . $recent_pages_draft[$i]['website']->id . '&postid=' . $recent_pages_draft[$i]['id']);
            ?>
" title="<?php 
            echo $recent_pages_draft[$i]['comment_count'];
            ?>
" class="post-com-count" style="display: inline-block !important;">
								<span class="comment-count"><?php 
            echo $recent_pages_draft[$i]['comment_count'];
            ?>
</span>
							</a>
						</span>
						<span class="mainwp-right-col"><?php 
            echo MainWP_Utility::getNiceURL($recent_pages_draft[$i]['website']->url);
            ?>
							<br/><?php 
            echo $recent_pages_draft[$i]['dts'];
            ?>
</span>

						<div style="clear: left;"></div>
						<div class="mainwp-row-actions">
							<a href="#" class="mainwp-post-publish"><?php 
            _e('Publish', 'mainwp');
            ?>
</a> |
							<a href="admin.php?page=SiteOpen&websiteid=<?php 
            echo $recent_pages_draft[$i]['website']->id;
            ?>
&location=<?php 
            echo base64_encode('post.php?action=editpost&post=' . $recent_pages_draft[$i]['id'] . '&action=edit');
            ?>
" title="Edit this post"><?php 
            _e('Edit', 'mainwp');
            ?>
</a> |
							<a href="#" class="mainwp-post-trash"><?php 
            _e('Trash', 'mainwp');
            ?>
</a> |
							<a href="admin.php?page=PostBulkManage" class="mainwp-post-viewall"><?php 
            _e('View All', 'mainwp');
            ?>
</a>
						</div>
						<div class="mainwp-row-actions-working">
							<i class="fa fa-spinner fa-pulse"></i> <?php 
            _e('Please wait', 'mainwp');
            ?>
						</div>
						<div>&nbsp;</div>
					</div>
				<?php 
        }
        ?>
			</div>

			<div class="recent_posts_pending" style="display: none">
				<?php 
        for ($i = 0; $i < count($recent_pages_pending) && $i < 5; $i++) {
            if (!isset($recent_pages_pending[$i]['title']) || $recent_pages_pending[$i]['title'] == '') {
                $recent_pages_pending[$i]['title'] = '(No Title)';
            }
            if (isset($recent_pages_pending[$i]['dts'])) {
                if (!stristr($recent_pages_pending[$i]['dts'], '-')) {
                    $recent_pages_pending[$i]['dts'] = MainWP_Utility::formatTimestamp(MainWP_Utility::getTimestamp($recent_pages_pending[$i]['dts']));
                }
            }
            ?>
					<div class="mainwp-row mainwp-recent">
						<input class="postId" type="hidden" name="id" value="<?php 
            echo $recent_pages_pending[$i]['id'];
            ?>
"/>
						<input class="websiteId" type="hidden" name="id" value="<?php 
            echo $recent_pages_pending[$i]['website']->id;
            ?>
"/>
						<span class="mainwp-left-col" style="width: 60% !important;  margin-right: 1em;"><a href="<?php 
            echo $recent_pages_pending[$i]['website']->url;
            ?>
?p=<?php 
            echo $recent_pages_pending[$i]['id'];
            ?>
" target="_blank"><?php 
            echo htmlentities($recent_pages_pending[$i]['title'], ENT_COMPAT | ENT_HTML401, 'UTF-8');
            ?>
</a></span>
                    <span class="mainwp-mid-col">
                            <a href="<?php 
            echo admin_url('admin.php?page=CommentBulkManage&siteid=' . $recent_pages_pending[$i]['website']->id . '&postid=' . $recent_pages_pending[$i]['id']);
            ?>
" title="<?php 
            echo $recent_pages_pending[$i]['comment_count'];
            ?>
" class="post-com-count" style="display: inline-block !important;">
	                            <span class="comment-count"><?php 
            echo $recent_pages_pending[$i]['comment_count'];
            ?>
</span>
                            </a>
                    </span>
						<span class="mainwp-right-col"><?php 
            echo MainWP_Utility::getNiceURL($recent_pages_pending[$i]['website']->url);
            ?>
							<br/><?php 
            echo $recent_pages_pending[$i]['dts'];
            ?>
</span>

						<div style="clear: left;"></div>
						<div class="mainwp-row-actions">
							<a href="#" class="mainwp-post-publish"><?php 
            _e('Publish', 'mainwp');
            ?>
</a> |
							<a href="admin.php?page=SiteOpen&websiteid=<?php 
            echo $recent_pages_pending[$i]['website']->id;
            ?>
&location=<?php 
            echo base64_encode('post.php?action=editpost&post=' . $recent_pages_pending[$i]['id'] . '&action=edit');
            ?>
" title="Edit this post"><?php 
            _e('Edit', 'mainwp');
            ?>
</a> |
							<a href="#" class="mainwp-post-trash"><?php 
            _e('Trash', 'mainwp');
            ?>
</a> |
							<a href="admin.php?page=PostBulkManage" class="mainwp-post-viewall"><?php 
            _e('View All', 'mainwp');
            ?>
</a>
						</div>
						<div class="mainwp-row-actions-working">
							<i class="fa fa-spinner fa-pulse"></i> <?php 
            _e('Please wait', 'mainwp');
            ?>
						</div>
						<div>&nbsp;</div>
					</div>
				<?php 
        }
        ?>
			</div>
			<div class="recent_posts_trash" style="display: none">
				<?php 
        for ($i = 0; $i < count($recent_pages_trash) && $i < 5; $i++) {
            if (!isset($recent_pages_trash[$i]['title']) || $recent_pages_trash[$i]['title'] == '') {
                $recent_pages_trash[$i]['title'] = '(No Title)';
            }
            if (isset($recent_pages_trash[$i]['dts'])) {
                if (!stristr($recent_pages_trash[$i]['dts'], '-')) {
                    $recent_pages_trash[$i]['dts'] = MainWP_Utility::formatTimestamp(MainWP_Utility::getTimestamp($recent_pages_trash[$i]['dts']));
                }
            }
            ?>
					<div class="mainwp-row mainwp-recent">
						<input class="postId" type="hidden" name="id" value="<?php 
            echo $recent_pages_trash[$i]['id'];
            ?>
"/>
						<input class="websiteId" type="hidden" name="id" value="<?php 
            echo $recent_pages_trash[$i]['website']->id;
            ?>
"/>
						<span class="mainwp-left-col" style="width: 60% !important;  margin-right: 1em;"><?php 
            echo $recent_pages_trash[$i]['title'];
            ?>
</span>
						<span class="mainwp-mid-col">
							<a href="<?php 
            echo admin_url('admin.php?page=CommentBulkManage&siteid=' . $recent_pages_trash[$i]['website']->id . '&postid=' . $recent_pages_trash[$i]['id']);
            ?>
" title="<?php 
            echo $recent_pages_trash[$i]['comment_count'];
            ?>
" class="post-com-count" style="display: inline-block !important;">
								<span class="comment-count"><?php 
            echo $recent_pages_trash[$i]['comment_count'];
            ?>
</span>
							</a>
						</span>
						<span class="mainwp-right-col"><?php 
            echo MainWP_Utility::getNiceURL($recent_pages_trash[$i]['website']->url);
            ?>
							<br/><?php 
            echo $recent_pages_trash[$i]['dts'];
            ?>
</span>

						<div style="clear: left;"></div>
						<div class="mainwp-row-actions">
							<a href="#" class="mainwp-post-restore"><?php 
            _e('Restore', 'mainwp');
            ?>
</a> |
							<a href="#" class="mainwp-post-delete delete" style="color: red;"><?php 
            _e('Delete Permanently', 'mainwp');
            ?>
</a>
						</div>
						<div class="mainwp-row-actions-working">
							<i class="fa fa-spinner fa-pulse"></i> <?php 
            _e('Please wait', 'mainwp');
            ?>
						</div>
						<div>&nbsp;</div>
					</div>
				<?php 
        }
        ?>
			</div>
		</div>
		<div class="clear"></div>
		<?php 
        if ($pExit == true) {
            exit;
        }
    }
    function extra_tablenav($which)
    {
        ?>


		<div class="alignleft actions">
			<form method="GET" action="">
				<input type="hidden" value="<?php 
        echo esc_attr($_REQUEST['page']);
        ?>
" name="page"/>
				<select name="g">
					<option value=""><?php 
        _e('All Groups', 'mainwp');
        ?>
</option>
					<?php 
        $groups = MainWP_DB::Instance()->getGroupsForCurrentUser();
        foreach ($groups as $group) {
            echo '<option value="' . $group->id . '" ' . (isset($_REQUEST['g']) && $_REQUEST['g'] == $group->id ? 'selected' : '') . '>' . stripslashes($group->name) . '</option>';
        }
        ?>
				</select>

				<input type="hidden" value="<?php 
        echo $_REQUEST['page'];
        ?>
" name="page"/>
				<select name="status">
					<option value=""><?php 
        _e('All Statuses', 'mainwp');
        ?>
</option>
					<option value="online" <?php 
        echo isset($_REQUEST['status']) && $_REQUEST['status'] == 'online' ? 'selected' : '';
        ?>
>Online</option>
					<option value="offline" <?php 
        echo isset($_REQUEST['status']) && $_REQUEST['status'] == 'offline' ? 'selected' : '';
        ?>
>Offline</option>
					<option value="disconnected" <?php 
        echo isset($_REQUEST['status']) && $_REQUEST['status'] == 'disconnected' ? 'selected' : '';
        ?>
>Disconnected</option>
					<option value="update" <?php 
        echo isset($_REQUEST['status']) && $_REQUEST['status'] == 'update' ? 'selected' : '';
        ?>
>Available update</option>
				</select>
				<input type="submit" value="<?php 
        _e('Display');
        ?>
" class="button" name="">
			</form>
		</div>

		<div class="alignleft actions">
			<form method="GET" action="">
				<input type="hidden" value="<?php 
        echo $_REQUEST['page'];
        ?>
" name="page"/>
				<input type="text" value="<?php 
        echo isset($_REQUEST['s']) ? esc_attr($_REQUEST['s']) : '';
        ?>
"
					autocompletelist="sites" name="s" class="mainwp_autocomplete"/>
				<datalist id="sites">
					<?php 
        if (MainWP_DB::is_result($this->items)) {
            while ($this->items && ($item = @MainWP_DB::fetch_array($this->items))) {
                echo '<option>' . $item['name'] . '</option>';
            }
            MainWP_DB::data_seek($this->items, 0);
        }
        ?>
				</datalist>
				<input type="submit" value="<?php 
        _e('Search Sites');
        ?>
" class="button" name=""/>
			</form>
		</div>
		<?php 
    }
예제 #14
0
 public function query($sql)
 {
     if ($sql == null) {
         return false;
     }
     $result = @self::_query($sql, $this->wpdb->dbh);
     if (!$result || @MainWP_DB::num_rows($result) == 0) {
         return false;
     }
     return $result;
 }
예제 #15
0
 public static function doImport()
 {
     if (isset($_POST['select_by'])) {
         $selected_sites = array();
         if (isset($_POST['selected_sites']) && is_array($_POST['selected_sites'])) {
             foreach ($_POST['selected_sites'] as $selected) {
                 $selected_sites[] = $selected;
             }
         }
         $selected_groups = array();
         if (isset($_POST['selected_groups']) && is_array($_POST['selected_groups'])) {
             foreach ($_POST['selected_groups'] as $selected) {
                 $selected_groups[] = $selected;
             }
         }
     }
     $user_to_add = array('user_pass' => $_POST['pass1'], 'user_login' => $_POST['user_login'], 'user_url' => $_POST['url'], 'user_email' => $_POST['email'], 'first_name' => $_POST['first_name'], 'last_name' => $_POST['last_name'], 'role' => $_POST['role']);
     $ret = array();
     $dbwebsites = array();
     $not_valid = array();
     $error_sites = '';
     if ($_POST['select_by'] == 'site') {
         //Get all selected websites
         foreach ($selected_sites as $url) {
             if (!empty($url)) {
                 $website = MainWP_DB::Instance()->getWebsitesByUrl($url);
                 if ($website) {
                     $dbwebsites[$website[0]->id] = MainWP_Utility::mapSite($website[0], array('id', 'url', 'name', 'adminname', 'nossl', 'privkey', 'nosslkey'));
                 } else {
                     $not_valid[] = __("Error - The website doesn't exist in the Network.", 'mainwp') . " " . $url;
                     $error_sites .= $url . ';';
                 }
             }
         }
     } else {
         //Get all websites from the selected groups
         foreach ($selected_groups as $group) {
             if (MainWP_DB::Instance()->getGroupsByName($group)) {
                 $websites = MainWP_DB::Instance()->query(MainWP_DB::Instance()->getSQLWebsitesByGroupName($group));
                 if ($websites) {
                     while ($websites && ($website = @MainWP_DB::fetch_object($websites))) {
                         $dbwebsites[$website->id] = MainWP_Utility::mapSite($website, array('id', 'url', 'name', 'adminname', 'nossl', 'privkey', 'nosslkey'));
                     }
                     @MainWP_DB::free_result($websites);
                 } else {
                     $not_valid[] = __('Error - These are not websites in the group. ', 'mainwp') . $group;
                     $error_sites .= $group . ';';
                 }
             } else {
                 $not_valid[] = __("Error - The group doesn't exist in the Network. ", 'mainwp') . $group;
                 $error_sites .= $group . ';';
             }
         }
     }
     if (count($dbwebsites) > 0) {
         $post_data = array('new_user' => base64_encode(serialize($user_to_add)), 'send_password' => isset($_POST['send_password']) ? $_POST['send_password'] : '');
         $output = new stdClass();
         $output->ok = array();
         $output->errors = array();
         MainWP_Utility::fetchUrlsAuthed($dbwebsites, 'newuser', $post_data, array(MainWP_Bulk_Add::getClassName(), 'PostingBulk_handler'), $output);
     }
     $ret['ok_list'] = $ret['error_list'] = array();
     foreach ($dbwebsites as $website) {
         if (isset($output->ok[$website->id]) && $output->ok[$website->id] == 1) {
             $ret['ok_list'][] = 'New user(s) created: ' . stripslashes($website->name);
         } else {
             $ret['error_list'][] = $output->errors[$website->id] . ' ' . stripslashes($website->name);
             $error_sites .= $website->url . ';';
         }
     }
     foreach ($not_valid as $val) {
         $ret['error_list'][] = $val;
     }
     $ret['failed_logging'] = '';
     if (!empty($error_sites)) {
         $error_sites = rtrim($error_sites, ';');
         $ret['failed_logging'] = $_POST['user_login'] . ',' . $_POST['email'] . ',' . $_POST['first_name'] . ',' . $_POST['last_name'] . ',' . $_POST['url'] . ',' . $_POST['pass1'] . ',' . intval($_POST['send_password']) . ',' . $_POST['role'] . ',' . $error_sites . ',';
     }
     $ret['line_number'] = $_POST['line_number'];
     die(json_encode($ret));
 }
예제 #16
0
 public static function performUpload()
 {
     MainWP_Utility::endSession();
     //Fetch info..
     $post_data = array('url' => json_encode(explode('||', $_POST['urls'])), 'type' => $_POST['type']);
     if ($_POST['activatePlugin'] == 'true') {
         $post_data['activatePlugin'] = 'yes';
     }
     if ($_POST['overwrite'] == 'true') {
         $post_data['overwrite'] = true;
     }
     $output = new stdClass();
     $output->ok = array();
     $output->errors = array();
     $websites = array(MainWP_DB::Instance()->getWebsiteById($_POST['siteId']));
     MainWP_Utility::fetchUrlsAuthed($websites, 'installplugintheme', $post_data, array(MainWP_Install_Bulk::getClassName(), 'InstallPluginTheme_handler'), $output);
     die(json_encode($output));
 }
예제 #17
0
 public static function getCurrentArchiveExtension($website = false, $task = false)
 {
     $useSite = true;
     if ($task != false) {
         if ($task->archiveFormat == 'global') {
             $useGlobal = true;
             $useSite = false;
         } else {
             if ($task->archiveFormat == '' || $task->archiveFormat == 'site') {
                 $useGlobal = false;
                 $useSite = true;
             } else {
                 $archiveFormat = $task->archiveFormat;
                 $useGlobal = false;
                 $useSite = false;
             }
         }
     }
     if ($useSite) {
         if ($website == false) {
             $useGlobal = true;
         } else {
             $backupSettings = MainWP_DB::Instance()->getWebsiteBackupSettings($website->id);
             $archiveFormat = $backupSettings->archiveFormat;
             $useGlobal = $archiveFormat == 'global';
         }
     }
     if ($useGlobal) {
         $archiveFormat = get_option('mainwp_archiveFormat');
         if ($archiveFormat === false) {
             $archiveFormat = 'tar.gz';
         }
     }
     return $archiveFormat;
 }
예제 #18
0
    public static function renderSettings()
    {
        $userExtension = MainWP_DB::Instance()->getUserExtension();
        $pluginDir = $userExtension == null || ($userExtension->pluginDir == null || $userExtension->pluginDir == '') ? 'default' : $userExtension->pluginDir;
        $user_email = MainWP_Utility::getNotificationEmail();
        $siteview = $userExtension->site_view;
        $snAutomaticDailyUpdate = get_option('mainwp_automaticDailyUpdate');
        $backup_before_upgrade = get_option('mainwp_backup_before_upgrade');
        $lastAutomaticUpdate = MainWP_DB::Instance()->getWebsitesLastAutomaticSync();
        if ($lastAutomaticUpdate == 0) {
            $nextAutomaticUpdate = 'Any minute';
        } else {
            if (MainWP_DB::Instance()->getWebsitesCountWhereDtsAutomaticSyncSmallerThenStart() > 0 || MainWP_DB::Instance()->getWebsitesCheckUpdatesCount() > 0) {
                $nextAutomaticUpdate = 'Processing your websites.';
            } else {
                $nextAutomaticUpdate = MainWP_Utility::formatTimestamp(MainWP_Utility::getTimestamp(mktime(0, 0, 0, date('n'), date('j') + 1)));
            }
        }
        if ($lastAutomaticUpdate == 0) {
            $lastAutomaticUpdate = 'Never';
        } else {
            $lastAutomaticUpdate = MainWP_Utility::formatTimestamp(MainWP_Utility::getTimestamp($lastAutomaticUpdate));
        }
        ?>
		<div class="postbox" id="mainwp-hide-child-plugin-settings">
			<h3 class="mainwp_box_title">
				<span><i class="fa fa-cog"></i> <?php 
        _e('Network Optimization', 'mainwp');
        ?>
</span></h3>

			<div class="inside">
				<div class="mainwp_info-box-red" style="margin-top: 5px;"><?php 
        _e('<strong>STOP BEFORE TURNING ON!</strong> Hiding the Child Plugin does require the plugin to make changes to your .htaccess file that in rare instances or server configurations could cause problems.', 'mainwp');
        ?>
</div>
				<table class="form-table">
					<tbody>
					<tr>
						<th scope="row"><?php 
        _e('Hide MainWP Child Plugin from Search Engines', 'mainwp');
        ?>
<br/>
							<em style="font-size: 12px;">(<?php 
        _e('does not hide from users', 'mainwp');
        ?>
)</em>
						</th>
						<td>
							<table>
								<tr>
									<td valign="top" style="padding-left: 0; padding-right: 5px; padding-top: 0px; padding-bottom: 0px; vertical-align: top;">
										<div class="mainwp-checkbox">
											<input type="checkbox" value="hidden" name="mainwp_options_footprint_plugin_folder" id="mainwp_options_footprint_plugin_folder_default" <?php 
        echo $pluginDir == 'hidden' ? 'checked="true"' : '';
        ?>
/><label for="mainwp_options_footprint_plugin_folder_default"></label>
										</div>
									</td>
									<td valign="top" style="padding: 0">
										<label for="mainwp_options_footprint_plugin_folder_default">
											<em><?php 
        _e('This will make anyone including Search Engines trying find your Child Plugin encounter a 404 page. Hiding the Child Plugin does require the plugin to make changes to your .htaccess file that in rare instances or server configurations could cause problems.', 'mainwp');
        ?>
</em>
										</label>
									</td>
								</tr>
							</table>
						</td>
					</tr>
					<tr>
						<th scope="row"><?php 
        _e('Optimize for Shared Hosting or Big Networks', 'mainwp');
        ?>
 <?php 
        MainWP_Utility::renderToolTip(__('Updates will be cached for quick loading. A manual refresh from the Dashboard is required to view new plugins, themes, pages or users. Recommended for Networks over 50 sites.', 'mainwp'));
        ?>
</th>
						<td>
							<div class="mainwp-checkbox">
								<input type="checkbox" name="mainwp_optimize"
									   id="mainwp_optimize" <?php 
        echo get_option('mainwp_optimize') == 1 ? 'checked="true"' : '';
        ?>
 />
								<label for="mainwp_optimize"></label>
							</div>
						</td>
					</tr>
					</tbody>
				</table>
			</div>
		</div>

		<div class="postbox" id="mainwp-global-options-settings">
			<h3 class="mainwp_box_title">
				<span><i class="fa fa-cog"></i> <?php 
        _e('Global Options', 'mainwp');
        ?>
</span></h3>

			<div class="inside">
				<table class="form-table">
					<tbody>
					<tr>
						<th scope="row"><?php 
        _e('Notification Email', 'mainwp');
        MainWP_Utility::renderToolTip(__('This address is used to send monitoring alerts.', 'mainwp'));
        ?>
</th>
						<td>
							<input type="text" class="" name="mainwp_options_email" size="35" value="<?php 
        echo $user_email;
        ?>
"/><span class="mainwp-form_hint"><?php 
        _e('This address is used to send monitoring alerts.', 'mainwp');
        ?>
</span>
						</td>
					</tr>
					<tr>
						<th scope="row"><?php 
        _e('Use WP-Cron', 'mainwp');
        MainWP_Utility::renderToolTip(__('When not using WP-Cron you will need to set up a cron job via your hosting.', 'mainwp'), 'http://docs.mainwp.com/disable-wp-cron/');
        ?>
</th>
						<td>
							<div class="mainwp-checkbox">
								<input type="checkbox" name="mainwp_options_wp_cron"
									id="mainwp_options_wp_cron" <?php 
        echo get_option('mainwp_wp_cron') == 1 || get_option('mainwp_wp_cron') === false ? 'checked="true"' : '';
        ?>
/>
								<label for="mainwp_options_wp_cron"></label>
							</div>
						</td>
					</tr>
					<?php 
        if (MainWP_Utility::isAdmin()) {
            ?>
						<tr>
							<th scope="row"><?php 
            _e('Show Basic SEO Stats', 'mainwp');
            MainWP_Utility::renderToolTip(__('This requires your Dashboard to query the Google servers for this information.', 'mainwp'));
            ?>
</th>
							<td>
								<div class="mainwp-checkbox">
									<input type="checkbox" name="mainwp_seo"
										id="mainwp_seo" <?php 
            echo get_option('mainwp_seo') == 1 ? 'checked="true"' : '';
            ?>
/>
									<label for="mainwp_seo"></label>
								</div>
							</td>
						</tr>
					<?php 
        }
        ?>
					</tbody>
				</table>
			</div>
		</div>

		<div class="postbox" id="mainwp-upgrade-options-settings">
			<h3 class="mainwp_box_title">
				<span><i class="fa fa-cog"></i> <?php 
        _e('Upgrade Options', 'mainwp');
        ?>
</span></h3>

			<div class="inside">
				<table class="form-table">
					<tbody>
					<tr>
						<th scope="row"><?php 
        _e('Require Backup Before Upgrade', 'mainwp');
        MainWP_Utility::renderToolTip(__('With this option enabled, when you try to upgrade a plugin, theme or WordPress core, MainWP will check if there is a full backup created for the site(s) you are trying to upgrade in last 7 days. If you have a fresh backup of the site(s) MainWP will proceed to the upgrade process, if not it will ask you to create a full backup.', 'mainwp'));
        ?>
</th>
						<td>
							<div class="mainwp-checkbox">
								<input type="checkbox" name="mainwp_backup_before_upgrade" id="mainwp_backup_before_upgrade" size="35" <?php 
        echo $backup_before_upgrade == 1 ? 'checked="true"' : '';
        ?>
/>
								<label for="mainwp_backup_before_upgrade"></label>
							</div>
						</td>
					</tr>
					<tr>
						<th scope="row"><?php 
        _e('Automatic Daily Update', 'mainwp');
        MainWP_Utility::renderToolTip(__('Choose to have MainWP install updates, or notify you by email of available updates.  Updates apply to WordPress Core files, Plugins and Themes.', 'mainwp'));
        ?>
</th>
						<td>
							<table class="mainwp-nomarkup">
								<tr>
									<td valign="top">
										<span class="mainwp-select-bg">
											<select name="mainwp_automaticDailyUpdate" id="mainwp_automaticDailyUpdate">
												<option value="2" <?php 
        if ($snAutomaticDailyUpdate === false || $snAutomaticDailyUpdate == 2) {
            ?>
selected<?php 
        }
        ?>
>E-mail Notifications of New Updates</option>
												<option value="1" <?php 
        if ($snAutomaticDailyUpdate == 1) {
            ?>
selected<?php 
        }
        ?>
>Install Trusted Updates</option>
												<option value="0" <?php 
        if ($snAutomaticDailyUpdate !== false && $snAutomaticDailyUpdate == 0) {
            ?>
selected<?php 
        }
        ?>
>Off</option>
											</select>
											<label></label>
										</span>
										<br/><em><?php 
        _e('Last run: ', 'mainwp');
        echo $lastAutomaticUpdate;
        ?>
</em>
										<br /><em><?php 
        _e('Next run: ', 'mainwp');
        echo $nextAutomaticUpdate;
        ?>
</em>
									</td>
								</tr>
							</table>
						</td>
					</tr>
					<tr>
						<th scope="row"><?php 
        _e('Abandoned Plugins/Thems Tolerance', 'mainwp');
        MainWP_Utility::renderToolTip(__("In case the plugin or theme author didn't release an update for the set number of days, the plugin/theme will be marked and Possibly Abandoned.", 'mainwp'));
        ?>
</th>
						<td>
							<input type="text" name="mainwp_numberdays_Outdate_Plugin_Theme" class=""
								id="mainwp_numberdays_Outdate_Plugin_Theme" value="<?php 
        echo get_option('mainwp_numberdays_Outdate_Plugin_Theme') === false ? 365 : get_option('mainwp_numberdays_Outdate_Plugin_Theme');
        ?>
"/>
						</td>
					</tr>

					</tbody>
				</table>
			</div>
		</div>

		<div class="postbox" id="mainwp-date-return-options-settings">
			<h3 class="mainwp_box_title"><span><i class="fa fa-cog"></i> <?php 
        _e('Data Return Options', 'mainwp');
        ?>
</span>
			</h3>

			<div class="inside">
				<table class="form-table">
					<tbody>
					<tr>
						<th scope="row"><?php 
        _e('Maximum Number of Posts/Pages', 'mainwp');
        MainWP_Utility::renderToolTip(__('0 for unlimited, CAUTION: a large amount will decrease the speed and might crash the communication.', 'mainwp'));
        ?>
</th>
						<td>
							<input type="text" name="mainwp_maximumPosts" class=""
								id="mainwp_maximumPosts" value="<?php 
        echo get_option('mainwp_maximumPosts') === false ? 50 : get_option('mainwp_maximumPosts');
        ?>
"/>
						</td>
					</tr>
					<tr>
						<th scope="row"><?php 
        _e('Maximum Number of Comments', 'mainwp');
        MainWP_Utility::renderToolTip(__('0 for unlimited, CAUTION: a large amount will decrease the speed and might crash the communication.', 'mainwp'));
        ?>
</th>
						<td>
							<input type="text" name="mainwp_maximumComments" class=""
								id="mainwp_maximumComments" value="<?php 
        echo get_option('mainwp_maximumComments') === false ? 50 : get_option('mainwp_maximumComments');
        ?>
"/>
						</td>
					</tr>
					</tbody>
				</table>
			</div>
		</div>
		<?php 
    }
예제 #19
0
    public static function renderDashboardBody($websites, $pDashboard, $pScreenLayout)
    {
        $opts = get_option('mainwp_opts_showhide_sections', false);
        $hide_shortcuts = is_array($opts) && isset($opts['welcome_shortcuts']) && $opts['welcome_shortcuts'] == 'hide' ? true : false;
        ?>
		<form action="admin-post.php" method="post">
			<?php 
        wp_nonce_field('mainwp_tab-general');
        ?>
			<?php 
        wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false);
        ?>
			<?php 
        wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false);
        ?>
			<input type="hidden" name="action" value="save_howto_testPages_general"/>

			<div id="mainwp-welocme-bar" class="welcome-panel" style="padding-left: 2em;">
				<table id="mainwp-refresh-bar" width="100%">
					<tbody>
					<tr>
						<td>
							<div id="mainwp-welocme-bar-top">
                    <span style="float:right;">
                    <a style="font-size: 18px;" class="button-hero button mainwp-upgrade-button" id="dashboard_refresh" title="<?php 
        echo MainWP_Right_Now::renderLastUpdate();
        ?>
"><i class="fa fa-refresh"></i> <?php 
        _e('Sync Data with Child Sites', 'mainwp');
        ?>
</a>
                    <a style="font-size: 18px;" class="button-hero button-primary button" target="_blank" href="https://extensions.mainwp.com"><i class="fa fa-cart-plus"></i> <?php 
        _e('Get New Extensions', 'mainwp');
        ?>
</a>
                    </span>
								<?php 
        $current_wp_id = MainWP_Utility::get_current_wpid();
        $website = null;
        if (!empty($current_wp_id)) {
            $website = $websites[0];
        }
        $imgfavi = '';
        if ($website !== null) {
            if (get_option('mainwp_use_favicon', 1) == 1) {
                $favi = MainWP_DB::Instance()->getWebsiteOption($website, 'favi_icon', '');
                $favi_url = MainWP_Utility::get_favico_url($favi, $website);
                $imgfavi = '<img src="' . $favi_url . '" width="16" height="16" style="vertical-align:middle;"/>&nbsp;';
            }
        }
        if ($website !== null) {
            if (time() - $website->dtsSync > 60 * 60 * 24) {
                ?>
<h3>
										<i class="fa fa-flag"></i> <?php 
                _e('Your MainWP Dashboard has not been synced for 24 hours!', 'mainwp');
                ?>
										</h3>
										<p class="about-description"><?php 
                _e('Click the Sync Data button to get the latest data from child sites.', 'mainwp');
                ?>
</p>
										<?php 
            } else {
                ?>
										<h3><?php 
                echo sprintf(__('Welcome to %s Dashboard!', 'mainwp'), stripslashes($website->name));
                ?>
</h3>
										<p class="about-description"><?php 
                echo sprintf(__('This information is only for %s%s', 'mainwp'), $imgfavi, MainWP_Utility::getNiceURL($website->url, true));
                ?>
</p>
										<?php 
            }
        } else {
            $sync_status = MainWP_DB::Instance()->getLastSyncStatus();
            if ($sync_status === 'not_synced') {
                ?>
<h3>
										<i class="fa fa-flag"></i> <?php 
                _e('Your MainWP Dashboard has not been synced for 24 hours!', 'mainwp');
                ?>
										</h3>
										<p class="about-description"><?php 
                _e('Click the Sync Data button to get the latest data from child sites.', 'mainwp');
                ?>
</p>
										<?php 
            } else {
                if ($sync_status === 'all_synced') {
                    ?>
										<h3><?php 
                    echo __('All sites have been synced within the last 24 hours!', 'mainwp');
                    ?>
</h3>
										<p class="about-description"><?php 
                    echo __('Manage your WordPress sites with ease.', 'mainwp');
                    ?>
</p>
										<?php 
                } else {
                    ?>
										<h3><i class="fa fa-flag"></i> <?php 
                    echo __("Some child sites didn't sync correctly!", 'mainwp');
                    ?>
</h3>
										<p class="about-description"><?php 
                    echo __('Check the Sync Status widget to review sites that have not been synced.', 'mainwp');
                    ?>
</p>
										<?php 
                }
            }
        }
        ?>
							</div>
							<br/>
							<span style="float: right; margin-right: 1em;"><a id="mainwp-link-showhide-welcome-shortcuts" status="<?php 
        echo $hide_shortcuts ? 'hide' : 'show';
        ?>
" href="#"><?php 
        echo $hide_shortcuts ? __('Show Shortcuts', 'mainwp') : __('Hide Shortcuts', 'mainwp');
        ?>
</a></span>

							<div id="mainwp-welcome-bar-shotcuts" style="clear: both;<?php 
        echo $hide_shortcuts ? 'display: none;' : '';
        ?>
">
								<div class="welcome-panel-column">
									<h4><?php 
        _e('Get Started', 'mainwp');
        ?>
</h4>
									<ul>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=managesites&do=new"><i class="fa fa-globe"></i> <?php 
        _e('Add New Site', 'mainwp');
        ?>
											</a></li>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=ManageGroups"><i class="fa fa-globe"></i> <?php 
        _e('Create Child Site Groups', 'mainwp');
        ?>
											</a></li>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=ManageBackupsAddNew"><i class="fa fa-hdd-o"></i> <?php 
        _e('Schedule Backups', 'mainwp');
        ?>
											</a></li>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=Settings"><i class="fa fa-cogs"></i> <?php 
        _e('Check MainWP Settings', 'mainwp');
        ?>
											</a></li>

									</ul>
								</div>
								<div class="welcome-panel-column">
									<h4><?php 
        _e('Next Steps', 'mainwp');
        ?>
</h4>
									<ul>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=PostBulkAdd"><i class="fa fa-file-text"></i> <?php 
        _e('Add Post to Child Site(s)', 'mainwp');
        ?>
											</a></li>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=PageBulkAdd"><i class="fa fa-file"></i> <?php 
        _e('Add Page to Child Site(s)', 'mainwp');
        ?>
											</a></li>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=PluginsInstall"><i class="fa fa-plug"></i> <?php 
        _e('Add Plugin to Child Site(s)', 'mainwp');
        ?>
											</a></li>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=ThemesInstall"><i class="fa fa-paint-brush"></i> <?php 
        _e('Add Theme to Child Site(s)', 'mainwp');
        ?>
											</a></li>
									</ul>
								</div>
								<div class="welcome-panel-column welcome-panel-last">
									<h4><?php 
        _e('More Actions', 'mainwp');
        ?>
</h4>
									<ul>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=managesites&do=test"><i class="fa fa-globe"></i> <?php 
        _e('Test Connection', 'mainwp');
        ?>
											</a></li>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=Extensions"><i class="fa fa-plug"></i> <?php 
        _e('Manage Extensions', 'mainwp');
        ?>
											</a></li>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=ServerInformation"><i class="fa fa-server"></i> <?php 
        _e('Check MainWP Requirements', 'mainwp');
        ?>
											</a></li>
										<li>
											<a href="<?php 
        echo get_admin_url();
        ?>
admin.php?page=DashboardOptions"><i class="fa fa-cogs"></i> <?php 
        _e('Set Your Preferences', 'mainwp');
        ?>
											</a></li>
									</ul>
								</div>
							</div>
							<div id="dashboard_refresh_statusextra" style="display: none">
								<i class="fa fa-spinner fa-pulse"></i></div>
			</div>
			<div id="mainwp_dashboard_refresh_status"></div>
			</td></tr></tbody>
			</table>
			</div>
			<div id="mainwp_main_errors" class="mainwp_error"></div>
		</form>

		<div id="mainwp-dashboard-info-box">
		<?php 
        if (empty($current_wp_id) && MainWP_Twitter::enabledTwitterMessages()) {
            $filter = array('upgrade_everything', 'upgrade_all_wp_core', 'upgrade_all_plugins', 'upgrade_all_themes');
            foreach ($filter as $what) {
                $twitters = MainWP_Twitter::getTwitterNotice($what);
                if (is_array($twitters)) {
                    foreach ($twitters as $timeid => $twit_mess) {
                        $sendText = "";
                        if (!empty($twit_mess)) {
                            if (!empty($sendText)) {
                                $sendText = MainWP_Twitter::getTwitToSend($what, $timeid);
                                ?>
								<div class="mainwp-tips mainwp_info-box-blue twitter">
									<span class="mainwp-tip" twit-what="<?php 
                                echo $what;
                                ?>
"
										  twit-id="<?php 
                                echo $timeid;
                                ?>
"><?php 
                                echo $twit_mess;
                                ?>
</span>&nbsp;<?php 
                                MainWP_Twitter::genTwitterButton($sendText);
                                ?>
									<span><a href="#" class="mainwp-dismiss-twit"><i
												class="fa fa-times-circle"></i> <?php 
                                _e('Dismiss', 'mainwp');
                                ?>
										</a></span></div>
								<?php 
                            }
                        }
                    }
                }
            }
            ?>
		<?php 
        }
        ?>
		</div>


		<div id="dashboard-widgets-wrap">

			<?php 
        require_once ABSPATH . 'wp-admin/includes/dashboard.php';
        wp_dashboard();
        ?>

			<div class="clear"></div>
		</div><!-- dashboard-widgets-wrap -->
		<?php 
    }
예제 #20
0
 public static function checkBackups()
 {
     //if (get_option('mainwp_backup_before_upgrade') != 1) return true;
     if (!is_array($_POST['sites'])) {
         return true;
     }
     $global_backup_before_upgrade = get_option('mainwp_backup_before_upgrade');
     $output = array();
     foreach ($_POST['sites'] as $siteId) {
         $website = MainWP_DB::Instance()->getWebsiteById($siteId);
         if ($website->backup_before_upgrade == 0 || $website->backup_before_upgrade == 2 && $global_backup_before_upgrade == 0) {
             continue;
         }
         $dir = MainWP_Utility::getMainWPSpecificDir($siteId);
         //Check if backup ok
         $lastBackup = -1;
         if (file_exists($dir) && ($dh = opendir($dir))) {
             while (($file = readdir($dh)) !== false) {
                 if ($file != '.' && $file != '..') {
                     $theFile = $dir . $file;
                     if (MainWP_Utility::isArchive($file) && !MainWP_Utility::isSQLArchive($file) && filemtime($theFile) > $lastBackup) {
                         $lastBackup = filemtime($theFile);
                     }
                 }
             }
             closedir($dh);
         }
         $output['sites'][$siteId] = $lastBackup < time() - 7 * 24 * 60 * 60 ? false : true;
     }
     return $output;
 }
예제 #21
0
 public static function getPostMeta($postId, $keys, $value, $websiteId)
 {
     if (!MainWP_Utility::ctype_digit($postId)) {
         return;
     }
     if (!MainWP_Utility::ctype_digit($websiteId)) {
         return;
     }
     $website = MainWP_DB::Instance()->getWebsiteById($websiteId);
     if (!MainWP_Utility::can_edit_website($website)) {
         return;
     }
     try {
         $results = MainWP_Utility::fetchUrlAuthed($website, 'get_post_meta', array('id' => base64_encode($postId), 'keys' => base64_encode($keys), 'value' => base64_encode($value)));
     } catch (MainWP_Exception $e) {
         return;
     }
     return $results;
 }
 public static function mainwpOptions()
 {
     $mainwp_options = array('mainwp_options_footprint_plugin_folder_default' => __('Hide Network on Child Sites', 'mainwp'), 'mainwp_wp_cron' => __('Use WP-Cron', 'mainwp'), 'mainwp_optimize' => __('Optimize for Shared Hosting or Big Networks', 'mainwp'), 'mainwp_seo' => __('Show Basic SEO Stats', 'mainwp'), 'select_mainwp_options_siteview' => __('View Upgrades per Site', 'mainwp'), 'mainwp_backup_before_upgrade' => __('Require Backup Before Upgrade', 'mainwp'), 'mainwp_automaticDailyUpdate' => __('Automatic Daily Update', 'mainwp'), 'mainwp_numberdays_Outdate_Plugin_Theme' => __('Abandoned Plugins/Thems Tolerance', 'mainwp'), 'mainwp_maximumPosts' => __('Maximum Number of Posts/Pages', 'mainwp'), 'mainwp_maximumComments' => __('Maximum Number of Comments', 'mainwp'), 'mainwp_primaryBackup' => __('Primary Backup System', 'mainwp'), 'mainwp_backupsOnServer' => __('Backups on Server', 'mainwp'), 'mainwp_backupOnExternalSources' => __('Backups on Remote Storage', 'mainwp'), 'mainwp_archiveFormat' => __('Backup Archive Format', 'mainwp'), 'mainwp_notificationOnBackupFail' => __('Send Email if a Backup Fails', 'mainwp'), 'mainwp_notificationOnBackupStart' => __('Send Email if a Backup Starts', 'mainwp'), 'mainwp_chunkedBackupTasks' => __('Execute Backup Tasks in Chunks', 'mainwp'), 'mainwp_options_offlinecheck_onlinenotification' => __('Online Notifications', 'mainwp'), 'mainwp_maximumRequests' => __('Maximum simultaneous requests', 'mainwp'), 'mainwp_minimumDelay' => __('Minimum delay between requests', 'mainwp'), 'mainwp_maximumIPRequests' => __('Maximum simultaneous requests per ip', 'mainwp'), 'mainwp_minimumIPDelay' => __('Minimum delay between requests to the same ip', 'mainwp'));
     $options_value = array();
     $userExtension = MainWP_DB::Instance()->getUserExtension();
     foreach ($mainwp_options as $opt => $label) {
         $value = get_option($opt, false);
         switch ($opt) {
             case 'mainwp_options_footprint_plugin_folder_default':
                 $pluginDir = $userExtension == null || ($userExtension->pluginDir == null || $userExtension->pluginDir == '') ? 'default' : $userExtension->pluginDir;
                 $value = $pluginDir == 'hidden' ? 'Yes' : 'No';
                 break;
             case 'select_mainwp_options_siteview':
                 $siteview = $userExtension == null || ($userExtension->site_view == null || $userExtension->site_view == '') ? 0 : $userExtension->site_view;
                 $value = $siteview == 1 ? 'Yes' : 'No';
                 break;
             case 'mainwp_options_offlinecheck_onlinenotification':
                 $onlineNotifications = $userExtension == null || ($userExtension->offlineChecksOnlineNotification == null || $userExtension->offlineChecksOnlineNotification == '') ? 0 : $userExtension->offlineChecksOnlineNotification;
                 $value = $onlineNotifications == 1 ? 'Yes' : 'No';
                 break;
             case 'mainwp_primaryBackup':
                 $value = __('Default MainWP Backups', 'mainwp');
                 break;
             case 'mainwp_numberdays_Outdate_Plugin_Theme':
             case 'mainwp_maximumPosts':
             case 'mainwp_maximumComments':
                 break;
             case 'mainwp_archiveFormat':
                 if ($value === false || $value == 'tar.gz') {
                     $value = 'Tar GZip';
                 } else {
                     if ($value == 'tar') {
                         $value = 'Tar';
                     } else {
                         if ($value == 'zip') {
                             $value = 'Zip';
                         } else {
                             if ($value == 'tar.bz2') {
                                 $value = 'Tar BZip2';
                             }
                         }
                     }
                 }
                 break;
             case 'mainwp_automaticDailyUpdate':
                 if ($value === false || $value == 2) {
                     $value = 'E-mail Notifications of New Updates';
                 } else {
                     if ($value == 1) {
                         $value = 'Install Trusted Updates';
                     } else {
                         $value = 'Off';
                     }
                 }
                 break;
             case 'mainwp_maximumRequests':
                 $value = $value === false ? 4 : $value;
                 break;
             case 'mainwp_maximumIPRequests':
                 $value = $value === false ? 1 : $value;
                 break;
             case 'mainwp_minimumIPDelay':
                 $value = $value === false ? 1000 : $value;
                 break;
             case 'mainwp_minimumDelay':
                 $value = $value === false ? 200 : $value;
                 break;
             default:
                 $value = empty($value) ? 'No' : 'Yes';
                 break;
         }
         $options_value[$opt] = array('label' => $label, 'value' => $value);
     }
     $primaryBackup = get_option('mainwp_primaryBackup');
     $primaryBackupMethods = apply_filters("mainwp-getprimarybackup-methods", array());
     if (!is_array($primaryBackupMethods)) {
         $primaryBackupMethods = array();
     }
     if (count($primaryBackupMethods) > 0) {
         $chk = false;
         foreach ($primaryBackupMethods as $method) {
             if ($primaryBackup == $method['value']) {
                 $value = $method['title'];
                 $chk = true;
                 break;
             }
         }
         if ($chk) {
             $options_value['mainwp_primaryBackup'] = array('label' => __('Primary Backup System', 'mainwp'), 'value' => $value);
         }
     }
     return $options_value;
 }
예제 #23
0
    public static function renderSettings()
    {
        $userExtension = MainWP_DB::Instance()->getUserExtension();
        $onlineNotifications = $userExtension == null || ($userExtension->offlineChecksOnlineNotification == null || $userExtension->offlineChecksOnlineNotification == '') ? '0' : $userExtension->offlineChecksOnlineNotification;
        ?>
		<div class="postbox" id="mainwp-offline-check-options-settings">
			<h3 class="mainwp_box_title">
				<span><i class="fa fa-cog"></i> <?php 
        _e('Offline Check Options', 'mainwp');
        ?>
</span></h3>

			<div class="inside">
				<div class="mainwp_info-box-red">
					<strong>IMPORTANT:</strong> This feature is being retired and replaced by the Free MainWP Advanced Uptime Monitor Extension which provides more advanced monitoring system.<br/>
					<a href="https://mainwp.com/extension/advanced-uptime-monitor/">Get the Free MainWP Advanced Uptime Monitor Extension here!</a>
				</div>
				<table class="form-table">
					<tbody>
					<tr>
						<th scope="row"><?php 
        _e('Online Notifications', 'mainwp');
        ?>
&nbsp;<?php 
        MainWP_Utility::renderToolTip(__('Network will monitor your sites for downtime and uptime.  By default emails are only sent when your site is down.', 'mainwp'));
        ?>
</th>
						<td>
							<div class="mainwp-checkbox">
								<input type="checkbox" name="mainwp_options_offlinecheck_onlinenotification"
									id="mainwp_options_offlinecheck_onlinenotification" <?php 
        echo $onlineNotifications == 1 ? 'checked="true"' : '';
        ?>
 />
								<label for="mainwp_options_offlinecheck_onlinenotification"></label>
							</div><?php 
        _e('Enable notifications even when the website is online', 'mainwp');
        ?>
						</td>
					</tr>
					</tbody>
				</table>
			</div>
		</div>
		<?php 
    }
예제 #24
0
    public static function renderSites()
    {
        $sql = MainWP_DB::Instance()->getSQLWebsitesForCurrentUser();
        $websites = MainWP_DB::Instance()->query($sql);
        if (!$websites) {
            return;
        }
        $all_sites_synced = true;
        $top_row = true;
        ?>

		<div class="clear">
			<div id="wp_syncs">
				<?php 
        ob_start();
        @MainWP_DB::data_seek($websites, 0);
        while ($websites && ($website = @MainWP_DB::fetch_object($websites))) {
            if (empty($website) || $website->sync_errors != '') {
                continue;
            }
            if (time() - $website->dtsSync < 60 * 60 * 24) {
                continue;
            }
            $all_sites_synced = false;
            $lastSyncTime = !empty($website->dtsSync) ? MainWP_Utility::formatTimestamp(MainWP_Utility::getTimestamp($website->dtsSync)) : '';
            ?>
					<div class="<?php 
            echo $top_row ? 'mainwp-row-top' : 'mainwp-row';
            ?>
 mainwp_wp_sync" site_id="<?php 
            echo $website->id;
            ?>
" site_name="<?php 
            echo rawurlencode($website->name);
            ?>
">
						<span class="mainwp-left-col"><a href="<?php 
            echo admin_url('admin.php?page=managesites&dashboard=' . $website->id);
            ?>
"><?php 
            echo stripslashes($website->name);
            ?>
</a><input type="hidden" id="wp_sync<?php 
            echo $website->id;
            ?>
" /></span>
						<span class="mainwp-mid-col wordpressInfo" id="wp_sync_<?php 
            echo $website->id;
            ?>
">
							<?php 
            echo $lastSyncTime;
            ?>
						</span>
						<span class="mainwp-right-col wordpressAction">
							<div id="wp_syncs_<?php 
            echo $website->id;
            ?>
">
								<a class="mainwp-upgrade-button button" onClick="rightnow_wp_sync('<?php 
            echo $website->id;
            ?>
')"><?php 
            _e('Sync Now', 'mainwp');
            ?>
</a>
							</div>
						</span>
					</div>
					<?php 
            $top_row = false;
        }
        $output = ob_get_clean();
        if ($all_sites_synced) {
            echo esc_html__('All sites have been synced within the last 24 hours', 'mainwp') . ".";
        } else {
            echo '<div class="mainwp_info-box-red">' . esc_html__('Sites not synced in the last 24 hours.', 'mainwp') . '</div>';
            echo $output;
        }
        ?>
			</div>
		</div>
		<?php 
        @MainWP_DB::free_result($websites);
    }
예제 #25
0
 public static function saveTrustedThemeNote()
 {
     $slug = urldecode($_POST['slug']);
     $note = $_POST['note'];
     $userExtension = MainWP_DB::Instance()->getUserExtension();
     $trustedThemesNotes = json_decode($userExtension->trusted_themes_notes, true);
     if (!is_array($trustedThemesNotes)) {
         $trustedThemesNotes = array();
     }
     $trustedThemesNotes[$slug] = $note;
     $userExtension->trusted_themes_notes = json_encode($trustedThemesNotes);
     MainWP_DB::Instance()->updateUserExtension($userExtension);
 }
예제 #26
0
 public static function updateTipSettings()
 {
     if (MainWP_Utility::ctype_digit($_POST['status'])) {
         $userExtension = MainWP_DB::Instance()->getUserExtension();
         $userExtension->tips = $_POST['status'];
         MainWP_DB::Instance()->updateUserExtension($userExtension);
     }
 }
예제 #27
0
 public static function renderRestore()
 {
     if (!isset($_GET['websiteid'])) {
         exit;
     }
     $id = $_GET['websiteid'];
     $website = MainWP_DB::Instance()->getWebsiteById($id);
     if (!MainWP_Utility::can_edit_website($website)) {
         exit;
     }
     $file = '';
     if (isset($_GET['f'])) {
         $file = base64_decode(esc_attr(esc_html($_GET['f'])));
     }
     MainWP_Site_Open::openSiteRestore($website, $file, esc_attr(esc_html($_GET['size'])));
 }
예제 #28
0
 /**
  * List information about theme upgrades
  *
  * ## OPTIONS
  *
  * [<websiteid>]
  * : The id (or ids, comma separated) of the child sites that need to be listed/upgraded, when omitted all childsites are used.
  *
  * [--list]
  * : Get a list of themes with available upgrades
  *
  * [--upgrade=<theme>]
  * : Upgrade the themes
  *
  * [--upgrade-all]
  * : Upgrade all themes
  *
  * ## EXAMPLES
  *
  *     wp mainwp theme 2,5 --list
  *     wp mainwp theme --list
  *     wp mainwp theme 2,5 --upgrade-all
  *     wp mainwp theme 2,5 --upgrade=twentysixteen
  *
  * @synopsis [<websiteid>] [--list] [--upgrade=<theme>] [--upgrade-all]
  */
 public function theme($args, $assoc_args)
 {
     $sites = array();
     if (count($args) > 0) {
         $args_exploded = explode(',', $args[0]);
         foreach ($args_exploded as $arg) {
             if (!is_numeric(trim($arg))) {
                 WP_CLI::error('Child site ids should be numeric.');
             }
             $sites[] = trim($arg);
         }
     }
     if (isset($assoc_args['list'])) {
         $websites = MainWP_DB::Instance()->query(MainWP_DB::Instance()->getSQLWebsitesForCurrentUser());
         $userExtension = MainWP_DB::Instance()->getUserExtension();
         $websites_to_upgrade = array();
         while ($websites && ($website = @MainWP_DB::fetch_object($websites))) {
             if (count($sites) > 0 && !in_array($website->id, $sites)) {
                 continue;
             }
             $theme_upgrades = json_decode($website->theme_upgrades, true);
             if (is_array($theme_upgrades)) {
                 $ignored_themes = json_decode($website->ignored_themes, true);
                 if (is_array($ignored_themes)) {
                     $theme_upgrades = array_diff_key($theme_upgrades, $ignored_themes);
                 }
                 $ignored_themes = json_decode($userExtension->ignored_themes, true);
                 if (is_array($ignored_themes)) {
                     $theme_upgrades = array_diff_key($theme_upgrades, $ignored_themes);
                 }
                 $tmp = array();
                 foreach ($theme_upgrades as $theme_upgrade) {
                     $tmp[] = array('name' => $theme_upgrade['update']['theme'], 'version' => $theme_upgrade['Version'], 'new_version' => $theme_upgrade['update']['new_version']);
                 }
                 $websites_to_upgrade[] = array('id' => $website->id, 'name' => $website->name, 'themes' => $tmp);
             }
         }
         $idLength = strlen('id');
         $nameLength = strlen('name');
         $themeLength = strlen('theme');
         $oldVersionLength = strlen('version');
         $newVersionLength = strlen('new version');
         foreach ($websites_to_upgrade as $website_to_upgrade) {
             if ($idLength < strlen($website_to_upgrade['id'])) {
                 $idLength = strlen($website_to_upgrade['id']);
             }
             if ($nameLength < strlen($website_to_upgrade['name'])) {
                 $nameLength = strlen($website_to_upgrade['name']);
             }
             foreach ($website_to_upgrade['themes'] as $theme_to_upgrade) {
                 if ($themeLength < strlen($theme_to_upgrade['name'])) {
                     $themeLength = strlen($theme_to_upgrade['name']);
                 }
                 if ($oldVersionLength < strlen($theme_to_upgrade['version'])) {
                     $oldVersionLength = strlen($theme_to_upgrade['version']);
                 }
                 if ($newVersionLength < strlen($theme_to_upgrade['new_version'])) {
                     $newVersionLength = strlen($theme_to_upgrade['new_version']);
                 }
             }
         }
         WP_CLI::line(sprintf("+%'--" . ($idLength + 2) . "s+%'--" . ($nameLength + 2) . "s+%'--" . ($themeLength + 2) . "s+%'--" . ($oldVersionLength + 2) . "s+%'--" . ($newVersionLength + 2) . "s+", '', '', '', '', ''));
         WP_CLI::line(sprintf("| %-" . $idLength . "s | %-" . $nameLength . "s | %-" . $themeLength . "s | %-" . $oldVersionLength . "s | %-" . $newVersionLength . "s |", 'id', 'name', 'theme', 'version', 'new version'));
         WP_CLI::line(sprintf("+%'--" . ($idLength + 2) . "s+%'--" . ($nameLength + 2) . "s+%'--" . ($themeLength + 2) . "s+%'--" . ($oldVersionLength + 2) . "s+%'--" . ($newVersionLength + 2) . "s+", '', '', '', '', ''));
         foreach ($websites_to_upgrade as $website_to_upgrade) {
             if ($idLength < strlen($website_to_upgrade['id'])) {
                 $idLength = strlen($website_to_upgrade['id']);
             }
             if ($nameLength < strlen($website_to_upgrade['name'])) {
                 $nameLength = strlen($website_to_upgrade['name']);
             }
             $i = 0;
             foreach ($website_to_upgrade['themes'] as $theme_to_upgrade) {
                 if ($i == 0) {
                     WP_CLI::line(sprintf("| %-" . $idLength . "s | %-" . $nameLength . "s | %-" . $themeLength . "s | %-" . $oldVersionLength . "s | %-" . $newVersionLength . "s |", $website_to_upgrade['id'], $website_to_upgrade['name'], $theme_to_upgrade['name'], $theme_to_upgrade['version'], $theme_to_upgrade['new_version']));
                 } else {
                     WP_CLI::line(sprintf("| %-" . $idLength . "s | %-" . $nameLength . "s | %-" . $themeLength . "s | %-" . $oldVersionLength . "s | %-" . $newVersionLength . "s |", '', '', $theme_to_upgrade['name'], $theme_to_upgrade['version'], $theme_to_upgrade['new_version']));
                 }
                 $i++;
             }
         }
         WP_CLI::line(sprintf("+%'--" . ($idLength + 2) . "s+%'--" . ($nameLength + 2) . "s+%'--" . ($themeLength + 2) . "s+%'--" . ($oldVersionLength + 2) . "s+%'--" . ($newVersionLength + 2) . "s+", '', '', '', '', ''));
     } else {
         if (isset($assoc_args['upgrade']) || isset($assoc_args['upgrade-all'])) {
             //slugs to upgrade
             $themeSlugs = array();
             if (isset($assoc_args['upgrade'])) {
                 $themeSlugs = explode(',', $assoc_args['upgrade']);
             }
             $websites = MainWP_DB::Instance()->query(MainWP_DB::Instance()->getSQLWebsitesForCurrentUser());
             $userExtension = MainWP_DB::Instance()->getUserExtension();
             while ($websites && ($website = @MainWP_DB::fetch_object($websites))) {
                 if (count($sites) > 0 && !in_array($website->id, $sites)) {
                     continue;
                 }
                 $theme_upgrades = json_decode($website->theme_upgrades, true);
                 if (is_array($theme_upgrades)) {
                     $ignored_themes = json_decode($website->ignored_themes, true);
                     if (is_array($ignored_themes)) {
                         $theme_upgrades = array_diff_key($theme_upgrades, $ignored_themes);
                     }
                     $ignored_themes = json_decode($userExtension->ignored_themes, true);
                     if (is_array($ignored_themes)) {
                         $theme_upgrades = array_diff_key($theme_upgrades, $ignored_themes);
                     }
                     $tmp = array();
                     foreach ($theme_upgrades as $key => $theme_upgrade) {
                         if (count($themeSlugs) > 0 && !in_array($theme_upgrade['update']['slug'], $themeSlugs)) {
                             continue;
                         }
                         $tmp[] = $key;
                     }
                     if (count($tmp) == 0) {
                         WP_CLI::line('No available theme upgrades for ' . $website->name);
                         continue;
                     }
                     WP_CLI::line('Upgrading ' . count($tmp) . ' themes for ' . $website->name);
                     try {
                         MainWP_Right_Now::upgradePluginThemeTranslation($website->id, 'theme', implode(',', $tmp));
                         WP_CLI::success('Upgrades completed');
                     } catch (Exception $e) {
                         WP_CLI::error('Upgrades failed: ' . MainWP_Error_Helper::getConsoleErrorMessage($e));
                     }
                 }
             }
         }
     }
 }
예제 #29
0
 public function hookGetWebsitesByGroupIds($ids, $userId = null)
 {
     return MainWP_DB::Instance()->getWebsitesByGroupIds($ids, $userId);
 }
    public static function render()
    {
        $current_wpid = MainWP_Utility::get_current_wpid();
        if (!MainWP_Utility::ctype_digit($current_wpid)) {
            return;
        }
        $website = MainWP_DB::Instance()->getWebsiteById($current_wpid, true);
        ?>
		<div class="mainwp-row-top">
			<div style="display: inline-block; width: 100px;"><?php 
        _e('Groups:', 'mainwp');
        ?>
</div>
			<?php 
        echo $website->groups == '' ? 'None' : $website->groups;
        ?>
		</div>
		<div class="mainwp-row">
			<div style="display: inline-block; width: 100px;"><?php 
        _e('Notes:', 'mainwp');
        ?>
</div>
			<a href="#" class="mainwp_notes_show_all" id="mainwp_notes_<?php 
        echo $website->id;
        ?>
"><i class="fa fa-pencil"></i> <?php 
        _e('Open Notes', 'mainwp');
        ?>
			</a><img src="<?php 
        echo plugins_url('images/notes.png', dirname(__FILE__));
        ?>
" class="mainwp_notes_img" id="mainwp_notes_img_<?php 
        echo $website->id;
        ?>
" <?php 
        if ($website->note == '') {
            echo 'style="display: none;"';
        }
        ?>
 />
		</div>
		<span style="display: none"
			id="mainwp_notes_<?php 
        echo $website->id;
        ?>
_note"><?php 
        echo $website->note;
        ?>
</span>
		<div class="mainwp-row">
			<div style="display: inline-block; width: 100px;"><?php 
        _e('Go to:', 'mainwp');
        ?>
</div>
			<a href="admin.php?page=SiteOpen&newWindow=yes&websiteid=<?php 
        echo $website->id;
        ?>
" target="_blank"><i class="fa fa-external-link"></i> <?php 
        _e('WP Admin', 'mainwp');
        ?>
			</a> |
			<a target="_blank" href="<?php 
        echo $website->url;
        ?>
"><i class="fa fa-external-link"></i> <?php 
        _e('Front Page', 'mainwp');
        ?>
			</a>
		</div>
		<div class="mainwp-row">
			<div style="display: inline-block; width: 100px;"><?php 
        _e('Child Site:', 'mainwp');
        ?>
</div>
			<a href="admin.php?page=managesites&id=<?php 
        echo $website->id;
        ?>
"><i class="fa fa-pencil-square-o"></i> <?php 
        _e('Edit', 'mainwp');
        ?>
			</a> |
			<a target="_blank" href="admin.php?page=managesites&scanid=<?php 
        echo $website->id;
        ?>
"><i class="fa fa-shield"></i> <?php 
        _e('Security Scan', 'mainwp');
        ?>
			</a>
		</div>

		<?php 
        do_action('mainwp_shortcuts_widget', $website);
        ?>
		<div id="mainwp_notes_overlay" class="mainwp_overlay"></div>
		<div id="mainwp_notes" class="mainwp_popup">
			<a id="mainwp_notes_closeX" class="mainwp_closeX" style="display: inline; "></a>

			<div id="mainwp_notes_title" class="mainwp_popup_title">
				<a href="<?php 
        echo admin_url('admin.php?page=managesites&dashboard=' . $website->id);
        ?>
"><?php 
        echo stripslashes($website->name);
        ?>
</a>
			</div>
			<div id="mainwp_notes_content">
            <textarea style="width: 580px !important; height: 300px;"
	            id="mainwp_notes_note"></textarea>
			</div>
			<div><em>Allowed HTML Tags: &lt;p&gt;, &lt;strong&gt;, &lt;em&gt;, &lt;br/&gt;, &lt;hr/&gt;, &lt;a&gt; </em>
			</div>
			<br/>

			<form>
				<div style="float: right" id="mainwp_notes_status"></div>
				<input type="button" class="button cont button-primary" id="mainwp_notes_save" value="<?php 
        _e('Save Note', 'mainwp');
        ?>
"/>
				<input type="button" class="button cont" id="mainwp_notes_cancel" value="<?php 
        _e('Close', 'mainwp');
        ?>
"/>
				<input type="hidden" id="mainwp_notes_websiteid" value=""/>
			</form>
		</div>
		<?php 
    }