Exemplo n.º 1
0
 public function __construct()
 {
     add_filter('mainwp_getspecificdir', array('MainWP_Utility', 'getMainWPSpecificDir'), 10, 1);
     add_filter('mainwp_is_multi_user', array(&$this, 'isMultiUser'));
     add_filter('mainwp_qq2fileuploader', array(&$this, 'filter_qq2FileUploader'), 10, 2);
     add_action('mainwp_select_sites_box', array(&$this, 'select_sites_box'), 10, 8);
     add_action('mainwp_prepareinstallplugintheme', array('MainWP_Install_Bulk', 'prepareInstall'));
     add_action('mainwp_performinstallplugintheme', array('MainWP_Install_Bulk', 'performInstall'));
     add_filter('mainwp_getwpfilesystem', array('MainWP_Utility', 'getWPFilesystem'));
     add_filter('mainwp_getspecificurl', array('MainWP_Utility', 'getMainWPSpecificUrl'), 10, 1);
     add_filter('mainwp_getdownloadurl', array('MainWP_Utility', 'getDownloadUrl'), 10, 2);
     add_action('mainwp_renderToolTip', array('MainWP_Utility', 'renderToolTip'), 10, 4);
     add_action('mainwp_renderHeader', array('MainWP_UI', 'renderHeader'), 10, 2);
     add_action('mainwp_renderFooter', array('MainWP_UI', 'renderFooter'), 10, 0);
     add_action('mainwp_renderImage', array('MainWP_UI', 'renderImage'), 10, 4);
     add_action('mainwp_notify_user', array(&$this, 'notifyUser'), 10, 3);
     add_action('mainwp_activePlugin', array(&$this, 'activePlugin'), 10, 0);
     add_action('mainwp_deactivePlugin', array(&$this, 'deactivePlugin'), 10, 0);
     add_action('mainwp_upgradePluginTheme', array(&$this, 'upgradePluginTheme'), 10, 0);
     //Internal hook - deprecated
     add_filter('mainwp_getUserExtension', array(&$this, 'getUserExtension'));
     add_filter('mainwp_getwebsitesbyurl', array(&$this, 'getWebsitesByUrl'));
     add_filter('mainwp_getWebsitesByUrl', array(&$this, 'getWebsitesByUrl'));
     //legacy
     add_filter('mainwp_getErrorMessage', array(&$this, 'getErrorMessage'), 10, 2);
     add_filter('mainwp_getwebsitesbygroupids', array(&$this, 'hookGetWebsitesByGroupIds'), 10, 2);
     //Cache hooks
     add_filter('mainwp_cache_getcontext', array(&$this, 'cache_getcontext'));
     add_action('mainwp_cache_echo_body', array(&$this, 'cache_echo_body'));
     add_action('mainwp_cache_init', array(&$this, 'cache_init'));
     add_action('mainwp_cache_add_context', array(&$this, 'cache_add_context'), 10, 2);
     add_action('mainwp_cache_add_body', array(&$this, 'cache_add_body'), 10, 2);
     add_filter('mainwp_getmetaboxes', array(&$this, 'getMetaBoxes'), 10, 0);
     add_filter('mainwp_getnotificationemail', array('MainWP_Utility', 'getNotificationEmail'), 10, 0);
     add_filter('mainwp-extension-available-check', array(MainWP_Extensions::getClassName(), 'isExtensionAvailable'));
     add_filter('mainwp-extension-decrypt-string', array(&$this, 'hookDecryptString'));
     add_action('mainp_log_debug', array(&$this, 'mainwp_log_debug'), 10, 1);
     add_action('mainp_log_info', array(&$this, 'mainwp_log_info'), 10, 1);
     add_action('mainp_log_warning', array(&$this, 'mainwp_log_warning'), 10, 1);
 }
Exemplo n.º 2
0
 public static function getPluginInformation($pSlug)
 {
     $extensions = MainWP_Extensions::loadExtensions();
     $rslt = null;
     if (is_array($extensions)) {
         foreach ($extensions as $ext) {
             if ($pSlug == $ext['api'] && isset($ext['apiManager']) && !empty($ext['apiManager'])) {
                 $args = array();
                 $args['plugin_name'] = $ext['api'];
                 $args['version'] = $ext['version'];
                 $args['product_id'] = $ext['product_id'];
                 $args['api_key'] = $ext['api_key'];
                 $args['activation_email'] = $ext['activation_email'];
                 $args['instance'] = $ext['instance_id'];
                 $args['software_version'] = $ext['software_version'];
                 $rslt = MainWP_Api_Manager::instance()->request_plugin_information($args);
                 break;
             }
         }
     }
     return $rslt;
 }
Exemplo n.º 3
0
 public function hookEnableExtension($slug)
 {
     return MainWP_Extensions::enableExtension($slug);
 }
Exemplo n.º 4
0
 public static function installPlugin($url, $activatePlugin = false)
 {
     $hasWPFileSystem = MainWP_Utility::getWPFilesystem();
     /** @global WP_Filesystem_Base $wp_filesystem */
     global $wp_filesystem;
     if (file_exists(ABSPATH . '/wp-admin/includes/screen.php')) {
         include_once ABSPATH . '/wp-admin/includes/screen.php';
     }
     include_once ABSPATH . '/wp-admin/includes/template.php';
     include_once ABSPATH . '/wp-admin/includes/misc.php';
     include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php';
     include_once ABSPATH . '/wp-admin/includes/plugin.php';
     $installer = new WP_Upgrader();
     $ssl_verifyhost = get_option('mainwp_sslVerifyCertificate');
     $ssl_api_verifyhost = get_option('mainwp_api_sslVerifyCertificate') === false || get_option('mainwp_api_sslVerifyCertificate') == 1 ? 1 : 0;
     if ($ssl_verifyhost === '0' || $ssl_api_verifyhost == 0) {
         add_filter('http_request_args', array(MainWP_Extensions::getClassName(), 'noSSLFilterFunction'), 99, 2);
     }
     add_filter('http_request_args', array(MainWP_Extensions::getClassName(), 'http_request_reject_unsafe_urls'), 99, 2);
     $result = $installer->run(array('package' => $url, 'destination' => WP_PLUGIN_DIR, 'clear_destination' => false, 'clear_working' => true, 'hook_extra' => array()));
     remove_filter('http_request_args', array(MainWP_Extensions::getClassName(), 'http_request_reject_unsafe_urls'), 99, 2);
     if ($ssl_verifyhost === '0') {
         remove_filter('http_request_args', array(MainWP_Extensions::getClassName(), 'noSSLFilterFunction'), 99);
     }
     $error = $output = $plugin_slug = null;
     if (is_wp_error($result)) {
         $error = $result->get_error_codes();
         if (is_array($error)) {
             if ($error[0] == 'folder_exists') {
                 $error = __('Destination folder already exists.', 'mainwp');
             } else {
                 $error = implode(', ', $error);
             }
         }
     } else {
         $path = $result['destination'];
         foreach ($result['source_files'] as $srcFile) {
             // to fix bug
             if ($srcFile == 'readme.txt') {
                 continue;
             }
             $thePlugin = get_plugin_data($path . $srcFile);
             if ($thePlugin != null && $thePlugin != '' && $thePlugin['Name'] != '') {
                 $output .= __('Successfully installed the plugin', 'mainwp') . ' ' . $thePlugin['Name'] . ' ' . $thePlugin['Version'];
                 $plugin_slug = $result['destination_name'] . '/' . $srcFile;
                 if ($activatePlugin) {
                     activate_plugin($path . $srcFile, '', false, true);
                     do_action('mainwp_api_extension_activated', $path . $srcFile);
                 }
                 break;
             }
         }
     }
     if (!empty($error)) {
         $return['error'] = $error;
     } else {
         MainWP_Extensions::enableExtension($plugin_slug);
         $return['result'] = 'SUCCESS';
         $return['output'] = $output;
         $return['slug'] = $plugin_slug;
     }
     return $return;
 }
Exemplo n.º 5
0
 function apply_filter($filter, $value = array())
 {
     $output = apply_filters($filter, $value);
     if (!is_array($output)) {
         return array();
     }
     for ($i = 0; $i < count($output); $i++) {
         if (!isset($output[$i]['plugin']) || !isset($output[$i]['key'])) {
             unset($output[$i]);
             continue;
         }
         if (!MainWP_Extensions::hookVerify($output[$i]['plugin'], $output[$i]['key'])) {
             unset($output[$i]);
             continue;
         }
     }
     return $output;
 }
Exemplo n.º 6
0
    public static function render(&$extensions)
    {
        $loader_url = '<i class="fa fa-spinner fa-pulse"></i>';
        if (mainwp_current_user_can('dashboard', 'manage_extensions')) {
            ?>

		<?php 
        }
        ?>
		<div class="postbox">
		<div class="handlediv"><br></div>
		<h3 class="mainwp_box_title">
			<span><?php 
        printf(_n('%d Installed MainWP Extension', '%d Installed MainWP Extensions', count($extensions) == 1 ? 1 : 2, 'mainwp'), count($extensions));
        ?>
</span>
		</h3>


		<div id="mainwp-extensions-wrap">
			<?php 
        if (count($extensions) == 0) {
            ?>
				<div class="inside">
					<div class="mainwp_info-box-blue">
						<h3><?php 
            _e('What are Extensions?', 'mainwp');
            ?>
</h3>
						<?php 
            _e('Extensions are specific features or tools created for the purpose of expanding the basic functionality of MainWP.', 'mainwp');
            ?>
						<h3><?php 
            _e('Why have Extensions?', 'mainwp');
            ?>
</h3>
						<?php 
            _e('The core of MainWP has been designed to provide the functions most needed by our users and minimize code bloat. Extensions offer custom functions and features so that each user can tailor their MainWP to their specific needs.', 'mainwp');
            ?>
						<p>
							<a href="https://extensions.mainwp.com/"><?php 
            _e('Download your first extension now.', 'mainwp');
            ?>
</a>
						</p>
					</div>
				</div>
			<?php 
        } else {
            ?>
				<div style="background: #eee; padding: 1em .6em;">
					<a class="mainwp_action left mainwp_action_down" href="#" id="mainwp-extensions-expand"><?php 
            _e('Expand', 'mainwp');
            ?>
</a><a class="mainwp_action right" href="#" id="mainwp-extensions-collapse"><?php 
            _e('Collapse', 'mainwp');
            ?>
</a>
					<?php 
            if (mainwp_current_user_can('dashboard', 'manage_extensions')) {
                ?>
						<div style="float: right; margin-top: -3px;">
							<a href="#" class="button mainwp-extensions-disable-all"><?php 
                _e('Disable All', 'mainwp');
                ?>
</a>
							<a href="#" class="button-primary mainwp-extensions-enable-all"><?php 
                _e('Enable All', 'mainwp');
                ?>
</a>
							<a href="<?php 
                echo admin_url('plugin-install.php?tab=upload');
                ?>
" class="mainwp-upgrade-button button-primary button"><?php 
                _e('Install New Extension', 'mainwp');
                ?>
</a>
						</div>
						<div style="clear: both;"></div>
					<?php 
            }
            ?>
				</div>
				<div id="mainwp-extensions-list">
					<?php 
            $user_can_manage_extensions = mainwp_current_user_can('dashboard', 'manage_extensions');
            if (isset($extensions) && is_array($extensions)) {
                foreach ($extensions as $extension) {
                    if (!mainwp_current_user_can('extension', dirname($extension['slug']))) {
                        continue;
                    }
                    $active = MainWP_Extensions::isExtensionActivated($extension['plugin']);
                    $enabled = MainWP_Extensions::isExtensionEnabled($extension['plugin']);
                    $queue_status = '';
                    if (isset($extension['apiManager']) && $extension['apiManager']) {
                        $queue_status = 'status="queue"';
                    }
                    ?>
							<div class="mainwp-extensions-childHolder" extension_slug="<?php 
                    echo $extension['slug'];
                    ?>
" <?php 
                    echo $queue_status;
                    ?>
 license-status="<?php 
                    echo $active ? 'activated' : 'deactivated';
                    ?>
">
								<table style="width: 100%">
									<td class="mainwp-extensions-childIcon">
										<?php 
                    if (isset($extension['iconURI']) && $extension['iconURI'] != '') {
                        ?>
											<img title="<?php 
                        echo $extension['name'];
                        ?>
" src="<?php 
                        echo MainWP_Utility::removeHttpPrefix($extension['iconURI']);
                        ?>
" class="mainwp-extensions-img large <?php 
                        echo $enabled ? '' : 'mainwp-extension-icon-desaturated';
                        ?>
" /><?php 
                    } else {
                        ?>
											<img title="MainWP Placeholder" src="<?php 
                        echo plugins_url('images/extensions/placeholder.png', dirname(__FILE__));
                        ?>
" class="mainwp-extensions-img large <?php 
                        echo $enabled ? '' : 'mainwp-extension-icon-desaturated';
                        ?>
" /><?php 
                    }
                    ?>
									</td>
									<td valign="top">
										<table style="width: 100%">
											<tr>
												<td class="mainwp-extensions-childName">
													<?php 
                    if (isset($extension['direct_page']) && !empty($extension['direct_page'])) {
                        ?>
														<a href="<?php 
                        echo admin_url('admin.php?page=' . $extension['direct_page']);
                        ?>
" style="text-decoration: none;">
															<?php 
                        echo $extension['name'];
                        ?>
														</a>
													<?php 
                    } else {
                        if (isset($extension['callback'])) {
                            ?>
														<a href="<?php 
                            echo admin_url('admin.php?page=' . $extension['page']);
                            ?>
" style="text-decoration: none;">
															<?php 
                            echo $extension['name'];
                            ?>
														</a>
													<?php 
                        } else {
                            echo $extension['name'];
                        }
                    }
                    ?>
												</td>
												<td class="mainwp-extensions-childVersion">V. <?php 
                    echo $extension['version'];
                    ?>
</td>
												<td class="mainwp-extensions-childActions">
													<?php 
                    if (isset($extension['apiManager']) && $extension['apiManager']) {
                        ?>
														<?php 
                        if ($active) {
                            ?>
															<a href="javascript:void(0)" class="api-status activated" ><?php 
                            _e('Activated', 'mainwp');
                            ?>
</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
														<?php 
                        } else {
                            ?>
															<a href="javascript:void(0)" class="api-status deactivated" title="Not Activated"><?php 
                            _e('Deactivated', 'mainwp');
                            ?>
</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
														<?php 
                        }
                        ?>
													<?php 
                    }
                    ?>


													<?php 
                    if ($enabled) {
                        ?>
														<button href="#" <?php 
                        echo $user_can_manage_extensions ? 'class="button mainwp-extensions-disable"' : 'disabled="disabled"';
                        ?>
 ><?php 
                        _e('Disable', 'mainwp');
                        ?>
</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
													<?php 
                    } else {
                        ?>
														<button <?php 
                        echo $user_can_manage_extensions ? 'class="button-primary mainwp-extensions-enable"' : 'disabled="disabled"';
                        ?>
 ><?php 
                        _e('Enable', 'mainwp');
                        ?>
</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
													<?php 
                    }
                    ?>

													<?php 
                    if (isset($extension['apiManager']) && $extension['apiManager']) {
                        ?>
														<?php 
                        if ($user_can_manage_extensions) {
                            ?>
															<?php 
                            if ($active) {
                                ?>
																<a href="#" class="mainwp-extensions-api-activation" style="font-size: 28px;"><i class="fa fa-lock"></i></a>
															<?php 
                            } else {
                                ?>
																<a href="#" class="mainwp-extensions-api-activation" style="font-size: 28px;"><i class="fa fa-unlock"></i></a>
															<?php 
                            }
                            ?>
														<?php 
                        } else {
                            ?>
															<?php 
                            if ($active) {
                                ?>
																<span style="font-size: 28px; color: #e5e5e5;"><i class="fa fa-lock"></i></span>
															<?php 
                            } else {
                                ?>
																<span style="font-size: 28px; color: #e5e5e5;"><i class="fa fa-unlock"></i></span>
															<?php 
                            }
                            ?>
														<?php 
                        }
                        ?>
													<?php 
                    } else {
                        ?>
														<span style="font-size: 28px; color: #e5e5e5;"><i class="fa fa-lock"></i></span>
													<?php 
                    }
                    ?>

													<?php 
                    if (isset($extension['direct_page']) && !empty($extension['direct_page'])) {
                        ?>
														<a href="<?php 
                        echo admin_url('admin.php?page=' . $extension['direct_page']);
                        ?>
" style="font-size: 28px;"><i class="fa fa-wrench"></i></a>
													<?php 
                    } else {
                        if (isset($extension['callback'])) {
                            ?>
														<a href="<?php 
                            echo admin_url('admin.php?page=' . $extension['page']);
                            ?>
" style="font-size: 28px;"><i class="fa fa-wrench"></i></a>
													<?php 
                        } else {
                            ?>
														<span style="font-size: 28px; color: #e5e5e5;"><i class="fa fa-wrench"></i></span>
													<?php 
                        }
                    }
                    ?>

													<?php 
                    if (false && $user_can_manage_extensions) {
                        ?>
														<a href="#" class="mainwp-extensions-trash" style="font-size: 28px"><i class="fa fa-trash"></i></a>
													<?php 
                    } else {
                        ?>
														<span style="font-size: 28px; color: #e5e5e5;"><i class="fa fa-trash"></i></span>
													<?php 
                    }
                    ?>
												</td>
											</tr>
											<tr class="mainwp-extensions-extra mainwp-extension-description">
												<td colspan="3">
													<br/><br/><?php 
                    echo preg_replace('/\\<cite\\>.*\\<\\/cite\\>/', '', $extension['description']);
                    ?>
													<br/><br/></td>
											</tr>
											<tr class="mainwp-extensions-links">
												<td colspan="3">
													<?php 
                    printf(__('By %s', 'mainwp'), str_replace(array('http:', 'https:'), '', $extension['author']));
                    ?>
													<?php 
                    echo isset($extension['DocumentationURI']) && !empty($extension['DocumentationURI']) ? ' | <a href="' . str_replace(array('http:', 'https:'), '', $extension['DocumentationURI']) . '" target="_blank" title="' . __('Documentation', 'mainwp') . '">' . __('Documentation', 'mainwp') . '</a>' : '';
                    ?>
													<?php 
                    echo isset($extension['SupportForumURI']) && !empty($extension['SupportForumURI']) ? ' | <a href="' . str_replace(array('http:', 'https:'), '', $extension['SupportForumURI']) . '" target="_blank" title="' . __('Support Forum', 'mainwp') . '">' . __('Support Forum', 'mainwp') . '</a>' : '';
                    ?>
													<?php 
                    if (isset($extension['apiManager']) && $extension['apiManager']) {
                        ?>
														<?php 
                        echo ' | <a href="#" class="mainwp-extensions-api-activation" >' . __('Enter Activation API', 'mainwp') . '</a>';
                        ?>
													<?php 
                    }
                    ?>
												</td>
											</tr>
											<?php 
                    if (isset($extension['apiManager']) && $extension['apiManager']) {
                        ?>
												<tr class="mainwp-extensions-api-row">
													<td colspan="3">
														<div class="api-row-div">
															<span>
																<input type="text" class="input api_key" placeholder="<?php 
                        esc_attr_e('API License Key', 'mainwp');
                        ?>
" value="<?php 
                        echo $extension['api_key'];
                        ?>
"/>
																<input type="text" class="input api_email" placeholder="<?php 
                        esc_attr_e('API License Email', 'mainwp');
                        ?>
" value="<?php 
                        echo $extension['activation_email'];
                        ?>
"/>
																<input type="button" class="button-primary mainwp-extensions-activate" value="<?php 
                        esc_attr_e('Activate', 'mainwp');
                        ?>
">
																<span class="mainwp_loading"><i class="fa fa-spinner fa-pulse"></i></span>
															</span>
															<span style="float:right">
																<?php 
                        _e('Deactivate License Key', 'mainwp');
                        ?>
																<input type="checkbox" class="mainwp-extensions-deactivate-chkbox" <?php 
                        echo $extension['deactivate_checkbox'] == 'on' ? 'checked' : '';
                        ?>
>
																<input type="button" class="button-primary mainwp-extensions-deactivate" value="<?php 
                        _e('Deactivate', 'mainwp');
                        ?>
">
															</span>
														</div>
														<span class="activate-api-status hidden"></span>
													</td>
												</tr>
											<?php 
                    }
                    ?>
										</table>
									</td>
								</table>
							</div>

							<?php 
                }
            }
            ?>

				</div>
				<?php 
        }
        ?>
		</div></div><?php 
        self::mainwpAvailableExtensions($extensions);
    }
Exemplo n.º 7
0
 function init()
 {
     //Page: ManageBackups
     $this->addAction('mainwp_addbackup', array(&$this, 'mainwp_addbackup'));
     if (mainwp_current_user_can('dashboard', 'edit_backup_tasks')) {
         $this->addAction('mainwp_updatebackup', array(&$this, 'mainwp_updatebackup'));
     }
     if (mainwp_current_user_can('dashboard', 'delete_backup_tasks')) {
         $this->addAction('mainwp_removebackup', array(&$this, 'mainwp_removebackup'));
     }
     $this->addAction('mainwp_pausebackup', array(&$this, 'mainwp_pausebackup'));
     $this->addAction('mainwp_resumebackup', array(&$this, 'mainwp_resumebackup'));
     add_action('wp_ajax_mainwp_site_dirs', array(&$this, 'mainwp_site_dirs'));
     //ok
     add_action('wp_ajax_mainwp_backuptask_get_sites', array(&$this, 'mainwp_backuptask_get_sites'));
     //ok
     if (mainwp_current_user_can('dashboard', 'run_backup_tasks')) {
         $this->addAction('mainwp_backuptask_run_site', array(&$this, 'mainwp_backuptask_run_site'));
     }
     $this->addAction('mainwp_backup_upload_file', array(&$this, 'mainwp_backup_upload_file'));
     //Page: ManageSites
     $this->addAction('mainwp_checkwp', array(&$this, 'mainwp_checkwp'));
     $this->addAction('mainwp_addwp', array(&$this, 'mainwp_addwp'));
     if (mainwp_current_user_can('dashboard', 'test_connection')) {
         $this->addAction('mainwp_testwp', array(&$this, 'mainwp_testwp'));
     }
     $this->addAction('mainwp_removesite', array(&$this, 'mainwp_removesite'));
     $this->addAction('mainwp_notes_save', array(&$this, 'mainwp_notes_save'));
     add_action('wp_ajax_mainwp_reconnectwp', array(&$this, 'mainwp_reconnectwp'));
     //ok
     add_action('wp_ajax_mainwp_updatechildsite_value', array(&$this, 'mainwp_updatechildsite_value'));
     //ok
     //Page: ManageGroups
     $this->addAction('mainwp_group_rename', array(&$this, 'mainwp_group_rename'));
     add_action('wp_ajax_mainwp_group_delete', array(&$this, 'mainwp_group_delete'));
     //ok
     $this->addAction('mainwp_group_add', array(&$this, 'mainwp_group_add'));
     add_action('wp_ajax_mainwp_group_getsites', array(&$this, 'mainwp_group_getsites'));
     //ok
     $this->addAction('mainwp_group_updategroup', array(&$this, 'mainwp_group_updategroup'));
     //Page: InstallPlugins/Themes
     add_action('wp_ajax_mainwp_preparebulkinstallplugintheme', array(&$this, 'mainwp_preparebulkinstallplugintheme'));
     //ok
     $this->addAction('mainwp_installbulkinstallplugintheme', array(&$this, 'mainwp_installbulkinstallplugintheme'));
     add_action('wp_ajax_mainwp_preparebulkuploadplugintheme', array(&$this, 'mainwp_preparebulkuploadplugintheme'));
     //ok
     $this->addAction('mainwp_installbulkuploadplugintheme', array(&$this, 'mainwp_installbulkuploadplugintheme'));
     $this->addAction('mainwp_cleanbulkuploadplugintheme', array(&$this, 'mainwp_cleanbulkuploadplugintheme'));
     //Page: BulkAddUser
     $this->addAction('mainwp_bulkadduser', array(&$this, 'mainwp_bulkadduser'));
     add_action('wp_ajax_mainwp_bulkuploadadduser', array(&$this, 'mainwp_bulkuploadadduser'));
     //ok - to check
     $this->addAction('mainwp_importuser', array(&$this, 'mainwp_importuser'));
     //Widget: RightNow
     $this->addAction('mainwp_syncsites', array(&$this, 'mainwp_syncsites'));
     $this->addAction('mainwp_upgradewp', array(&$this, 'mainwp_upgradewp'));
     $this->addAction('mainwp_upgradeplugintheme', array(&$this, 'mainwp_upgradeplugintheme'));
     add_action('wp_ajax_mainwp_ignoreplugintheme', array(&$this, 'mainwp_ignoreplugintheme'));
     //ok
     add_action('wp_ajax_mainwp_unignoreplugintheme', array(&$this, 'mainwp_unignoreplugintheme'));
     //ok
     add_action('wp_ajax_mainwp_ignorepluginsthemes', array(&$this, 'mainwp_ignorepluginsthemes'));
     //ok
     add_action('wp_ajax_mainwp_unignorepluginsthemes', array(&$this, 'mainwp_unignorepluginsthemes'));
     //ok
     add_action('wp_ajax_mainwp_unignoreabandonedplugintheme', array(&$this, 'mainwp_unignoreabandonedplugintheme'));
     //ok
     add_action('wp_ajax_mainwp_unignoreabandonedpluginsthemes', array(&$this, 'mainwp_unignoreabandonedpluginsthemes'));
     //ok
     add_action('wp_ajax_mainwp_dismissoutdateplugintheme', array(&$this, 'mainwp_dismissoutdateplugintheme'));
     //ok
     add_action('wp_ajax_mainwp_dismissoutdatepluginsthemes', array(&$this, 'mainwp_dismissoutdatepluginsthemes'));
     //ok
     $this->addAction('mainwp_trust_plugin', array(&$this, 'mainwp_trust_plugin'));
     $this->addAction('mainwp_trust_theme', array(&$this, 'mainwp_trust_theme'));
     $this->addAction('mainwp_checkbackups', array(&$this, 'mainwp_checkbackups'));
     $this->addAction('mainwp_syncerrors_dismiss', array(&$this, 'mainwp_syncerrors_dismiss'));
     //Page: backup
     if (mainwp_current_user_can('dashboard', 'run_backup_tasks')) {
         $this->addAction('mainwp_backup_run_site', array(&$this, 'mainwp_backup_run_site'));
     }
     if (mainwp_current_user_can('dashboard', 'execute_backups')) {
         $this->addAction('mainwp_backup', array(&$this, 'mainwp_backup'));
     }
     $this->addAction('mainwp_backup_checkpid', array(&$this, 'mainwp_backup_checkpid'));
     $this->addAction('mainwp_createbackup_getfilesize', array(&$this, 'mainwp_createbackup_getfilesize'));
     $this->addAction('mainwp_backup_download_file', array(&$this, 'mainwp_backup_download_file'));
     $this->addAction('mainwp_backup_delete_file', array(&$this, 'mainwp_backup_delete_file'));
     $this->addAction('mainwp_backup_getfilesize', array(&$this, 'mainwp_backup_getfilesize'));
     $this->addAction('mainwp_backup_upload_getprogress', array(&$this, 'mainwp_backup_upload_getprogress'));
     $this->addAction('mainwp_backup_upload_checkstatus', array(&$this, 'mainwp_backup_upload_checkstatus'));
     //Page: CloneSite
     //        add_action('wp_ajax_mainwp_clonesite_check_backups', array(&$this, 'mainwp_clonesite_check_backups'));
     //        add_action('wp_ajax_mainwp_clone', array(&$this, 'mainwp_clone'));
     //        add_action('wp_ajax_mainwp_clone_test_ftp', array(&$this, 'mainwp_clone_test_ftp'));
     if (mainwp_current_user_can('dashboard', 'manage_security_issues')) {
         //Page: SecurityIssues
         add_action('wp_ajax_mainwp_securityIssues_request', array(&$this, 'mainwp_securityIssues_request'));
         //ok
         add_action('wp_ajax_mainwp_securityIssues_fix', array(&$this, 'mainwp_securityIssues_fix'));
         //ok
         add_action('wp_ajax_mainwp_securityIssues_unfix', array(&$this, 'mainwp_securityIssues_unfix'));
         //ok
     }
     //Page: ManageTips
     add_action('wp_ajax_mainwp_managetips_update', array(&$this, 'mainwp_managetips_update'));
     //ok
     add_action('wp_ajax_mainwp_tips_update', array(&$this, 'mainwp_tips_update'));
     //ok
     add_action('wp_ajax_mainwp_dismiss_twit', array(&$this, 'mainwp_dismiss_twit'));
     add_action('wp_ajax_mainwp_twitter_dashboard_action', array(&$this, 'mainwp_twitter_dashboard_action'));
     //ok
     add_action('wp_ajax_mainwp_reset_usercookies', array(&$this, 'mainwp_reset_usercookies'));
     //ok
     //Page: OfflineChecks
     if (mainwp_current_user_can('dashboard', 'manage_offline_checks')) {
         add_action('wp_ajax_mainwp_offline_check_save', array(&$this, 'mainwp_offline_check_save'));
         //ok
         add_action('wp_ajax_mainwp_offline_check_save_bulk', array(&$this, 'mainwp_offline_check_save_bulk'));
         //ok
         add_action('wp_ajax_mainwp_offline_check_check', array(&$this, 'mainwp_offline_check_check'));
         //ok
     }
     //Page: Recent Posts
     if (mainwp_current_user_can('dashboard', 'manage_posts')) {
         $this->addAction('mainwp_post_unpublish', array(&$this, 'mainwp_post_unpublish'));
         $this->addAction('mainwp_post_publish', array(&$this, 'mainwp_post_publish'));
         $this->addAction('mainwp_post_trash', array(&$this, 'mainwp_post_trash'));
         $this->addAction('mainwp_post_delete', array(&$this, 'mainwp_post_delete'));
         $this->addAction('mainwp_post_restore', array(&$this, 'mainwp_post_restore'));
         $this->addAction('mainwp_post_approve', array(&$this, 'mainwp_post_approve'));
     }
     //Page: Pages
     if (mainwp_current_user_can('dashboard', 'manage_pages')) {
         $this->addAction('mainwp_page_unpublish', array(&$this, 'mainwp_page_unpublish'));
         $this->addAction('mainwp_page_publish', array(&$this, 'mainwp_page_publish'));
         $this->addAction('mainwp_page_trash', array(&$this, 'mainwp_page_trash'));
         $this->addAction('mainwp_page_delete', array(&$this, 'mainwp_page_delete'));
         $this->addAction('mainwp_page_restore', array(&$this, 'mainwp_page_restore'));
     }
     //Page: Users
     $this->addAction('mainwp_user_delete', array(&$this, 'mainwp_user_delete'));
     $this->addAction('mainwp_user_role_to_administrator', array(&$this, 'mainwp_user_role_to_administrator'));
     $this->addAction('mainwp_user_role_to_editor', array(&$this, 'mainwp_user_role_to_editor'));
     $this->addAction('mainwp_user_role_to_author', array(&$this, 'mainwp_user_role_to_author'));
     $this->addAction('mainwp_user_role_to_contributor', array(&$this, 'mainwp_user_role_to_contributor'));
     $this->addAction('mainwp_user_role_to_subscriber', array(&$this, 'mainwp_user_role_to_subscriber'));
     $this->addAction('mainwp_user_update_password', array(&$this, 'mainwp_user_update_password'));
     //Page: Posts
     add_action('wp_ajax_mainwp_posts_search', array(&$this, 'mainwp_posts_search'));
     //ok
     add_action('wp_ajax_mainwp_get_categories', array(&$this, 'mainwp_get_categories'));
     //ok
     add_action('wp_ajax_mainwp_posts_get_terms', array(&$this, 'mainwp_posts_get_terms'));
     //ok
     add_action('wp_ajax_mainwp_posts_test_post', array(&$this, 'mainwp_posts_test_post'));
     //ok
     //Page: Pages
     add_action('wp_ajax_mainwp_pages_search', array(&$this, 'mainwp_pages_search'));
     //ok
     //Page: User
     add_action('wp_ajax_mainwp_users_search', array(&$this, 'mainwp_users_search'));
     //ok
     add_action('wp_ajax_mainwp_users_query', array(&$this, 'mainwp_users_query'));
     //ok
     //Page: Themes
     add_action('wp_ajax_mainwp_themes_search', array(&$this, 'mainwp_themes_search'));
     //ok
     add_action('wp_ajax_mainwp_themes_search_all', array(&$this, 'mainwp_themes_search_all'));
     //ok
     if (mainwp_current_user_can('dashboard', 'activate_themes')) {
         $this->addAction('mainwp_theme_activate', array(&$this, 'mainwp_theme_activate'));
     }
     if (mainwp_current_user_can('dashboard', 'delete_themes')) {
         $this->addAction('mainwp_theme_delete', array(&$this, 'mainwp_theme_delete'));
     }
     $this->addAction('mainwp_trusted_theme_notes_save', array(&$this, 'mainwp_trusted_theme_notes_save'));
     if (mainwp_current_user_can('dashboard', 'ignore_unignore_updates')) {
         $this->addAction('mainwp_theme_ignore_updates', array(&$this, 'mainwp_theme_ignore_updates'));
     }
     //Page: Plugins
     add_action('wp_ajax_mainwp_plugins_search', array(&$this, 'mainwp_plugins_search'));
     //ok
     add_action('wp_ajax_mainwp_plugins_search_all_active', array(&$this, 'mainwp_plugins_search_all_active'));
     //ok
     if (mainwp_current_user_can('dashboard', 'activate_deactivate_plugins')) {
         $this->addAction('mainwp_plugin_activate', array(&$this, 'mainwp_plugin_activate'));
         $this->addAction('mainwp_plugin_deactivate', array(&$this, 'mainwp_plugin_deactivate'));
     }
     if (mainwp_current_user_can('dashboard', 'delete_plugins')) {
         $this->addAction('mainwp_plugin_delete', array(&$this, 'mainwp_plugin_delete'));
     }
     if (mainwp_current_user_can('dashboard', 'ignore_unignore_updates')) {
         $this->addAction('mainwp_plugin_ignore_updates', array(&$this, 'mainwp_plugin_ignore_updates'));
     }
     $this->addAction('mainwp_trusted_plugin_notes_save', array(&$this, 'mainwp_trusted_plugin_notes_save'));
     //Plugins
     $this->addAction('mainwp_ignorepluginthemeconflict', array(&$this, 'mainwp_ignorepluginthemeconflict'));
     $this->addAction('mainwp_unignorepluginthemeconflicts', array(&$this, 'mainwp_unignorepluginthemeconflicts'));
     //Widget: Plugins
     $this->addAction('mainwp_widget_plugin_activate', array(&$this, 'mainwp_widget_plugin_activate'));
     $this->addAction('mainwp_widget_plugin_deactivate', array(&$this, 'mainwp_widget_plugin_deactivate'));
     $this->addAction('mainwp_widget_plugin_delete', array(&$this, 'mainwp_widget_plugin_delete'));
     //Widget: Themes
     $this->addAction('mainwp_widget_theme_activate', array(&$this, 'mainwp_widget_theme_activate'));
     $this->addAction('mainwp_widget_theme_delete', array(&$this, 'mainwp_widget_theme_delete'));
     //ServerInformation
     add_action('wp_ajax_mainwp_serverInformation', array(&$this, 'mainwp_serverInformation'));
     //ok
     $this->addAction('mainwp_extension_change_view', array(&$this, 'mainwp_extension_change_view'));
     $this->addAction('mainwp_events_notice_hide', array(&$this, 'mainwp_events_notice_hide'));
     $this->addAction('mainwp_showhide_sections', array(&$this, 'mainwp_showhide_sections'));
     $this->addAction('mainwp_autoupdate_and_trust_child', array(&$this, 'mainwp_autoupdate_and_trust_child'));
     $this->addAction('mainwp_installation_warning_hide', array(&$this, 'mainwp_installation_warning_hide'));
     $this->addAction('mainwp_force_destroy_sessions', array(&$this, 'mainwp_force_destroy_sessions'));
     MainWP_Extensions::initAjaxHandlers();
     add_action('wp_ajax_mainwp_childscan', array(&$this, 'mainwp_childscan'));
     //ok
 }
Exemplo n.º 8
0
    public function mwp_setup_install_extension()
    {
        $enscrypt_u = get_option('mainwp_extensions_api_username');
        $enscrypt_p = get_option('mainwp_extensions_api_password');
        $username = !empty($enscrypt_u) ? MainWP_Api_Manager_Password_Management::decrypt_string($enscrypt_u) : "";
        $password = !empty($enscrypt_p) ? MainWP_Api_Manager_Password_Management::decrypt_string($enscrypt_p) : "";
        $backup_method = get_option('mwp_setup_primaryBackup');
        $ext_product_id = $ext_name = $ext_slug = "";
        if (isset($this->backup_extensions[$backup_method])) {
            $ext_product_id = $this->backup_extensions[$backup_method]['product_id'];
            $ext_name = $this->backup_extensions[$backup_method]['name'];
            $ext_slug = $this->backup_extensions[$backup_method]['slug'];
        }
        $ext_installed = false;
        $ext_activated = false;
        $installed_exts = MainWP_Extensions::loadExtensions();
        foreach ($installed_exts as $ext) {
            if (isset($ext['product_id']) && $ext_product_id == $ext['product_id']) {
                $ext_installed = true;
                if ($ext['activated_key'] == 'Activated') {
                    $ext_activated = true;
                }
                break;
            }
        }
        ?>
		<h1><?php 
        _e('Install and Activate', 'mainwp');
        ?>
</h1>
		<form method="post">
			<div class="mwp_setup_install_extension_content">
				<?php 
        echo !empty($ext_name) ? '<p>' . $ext_name . '</p>' : "";
        ?>
				<input type="hidden" name="mwp_setup_extension_product_id" id="mwp_setup_extension_product_id" value="<?php 
        echo esc_attr($ext_product_id);
        ?>
" slug="<?php 
        echo esc_attr($ext_slug);
        ?>
">
				<?php 
        if ($ext_installed) {
            echo '<p><img src="' . plugins_url('images/ok.png', dirname(__FILE__)) . '" alt="Ok"/>&nbsp;' . $ext_name . " was installed on your dashboard.</p>";
            if (!$ext_activated) {
                ?>
					<script type="text/javascript">
						jQuery(document).ready(function () {
							jQuery('#mwp_setup_active_extension').fadeIn(500);
							mainwp_setup_extension_activate(false);
						})
					</script>
				<?php 
            }
        } else {
            ?>
					<div id="mwp_setup-install-extension">
						<p><?php 
            _e("Automatically install the Extension.");
            ?>
</p>
						<span id="mwp_setup_auto_install_loading">
	                        <i class="fa fa-spinner fa-pulse" style="display: none;"></i><span class="status hidden"></span>
	                    </span>
						<script type="text/javascript">
							jQuery(document).ready(function () {
								mainwp_setup_grab_extension(false);
							})
						</script>
					</div>
					<div id="mwp_setup_extension_retry_install" style="display: none;"><p><span class="mwp_setup_loading_wrap">
	                    <input type="button" value="Retry Install Extension" id="mwp_setup_extension_install_btn" class="mainwp-upgrade-button button-primary">
	                        <i style="display: none;" class="fa fa-spinner fa-pulse"></i><span class="status hidden"></span>
	                    </span></p>
					</div>
				<?php 
        }
        ?>
				<?php 
        if ($ext_activated) {
            echo '<p><img src="' . plugins_url('images/ok.png', dirname(__FILE__)) . '" alt="Ok"/>&nbsp;' . $ext_name . " was activated on your dashboard.</p>";
        } else {
            ?>
					<div id="mwp_setup_active_extension" style="display: none;">
						<p><span class="description"><?php 
            _e("Grabing API Key and activate the Extension ...", "mainwp");
            ?>
</span></p>
					    <span id="mwp_setup_grabing_api_key_loading">
		                    <i class="fa fa-spinner fa-pulse" style="display: none;"></i><span class="status hidden"></span>
		                </span>
					</div>
				<?php 
        }
        ?>
			</div>
			<p class="mwp-setup-actions step">
				<input type="submit" class="button-primary button button-large" value="<?php 
        esc_attr_e('Continue', 'mainwp');
        ?>
" name="save_step" />
				<input type="submit" class="button button-large" value="<?php 
        esc_attr_e('Skip this step', 'mainwp');
        ?>
" name="save_step" />
				<a href="<?php 
        echo esc_url($this->get_back_step_link());
        ?>
" class="button button-large"><?php 
        _e('Back', 'mainwp');
        ?>
</a>
				<?php 
        wp_nonce_field('mwp-setup');
        ?>
			</p>
		</form>
		<?php 
    }
    public static function _renderNewSite(&$groups)
    {
        if (!mainwp_current_user_can('dashboard', 'add_sites')) {
            mainwp_do_not_have_permissions(__('add sites', 'mainwp'));
            return;
        }
        $passed_curl_ssl = MainWP_Server_Information::checkCURLSSLInfo();
        ?>
       <div id="mainwp_managesites_add_errors" class="mainwp_info-box-red"></div>
       <div id="mainwp_managesites_add_message" class="mainwp_info-box"></div>
       <div class="postbox" id="mainwp-add-a-single-site">
       <h3 class="mainwp_box_title"><span><i class="fa fa-cog"></i> <?php 
        _e('Add a Single Site', 'mainwp');
        ?>
</span></h3>
       <div class="inside">
        <div id="mainwp-add-site-notice-box" >
       <div id="mainwp-add-site-notice-show" class="mainwp_info-box-blue" style="background-position: 10px 10px !important; display: none; text-align: center;"><a href="#" class="button button-primary" id="mainwp-add-site-notice-show-link"><?php 
        _e('Having trouble adding your site?', 'mainwp');
        ?>
</a></div>
       <div id="mainwp-add-site-notice" class="mainwp_info-box-blue" style="background-position: 10px 25px !important;">
         <p>
			<?php 
        echo sprintf(__('If you are having trouble adding your site please use the %sTest Connection tab%s. This tells you the header response being received by your dashboard from that child site. <br/><strong>The Test Connection feature is specifically testing what your Dashboard can "see" and what your Dashboard "sees" and what my Dashboard "sees" or what your browser "sees" can be completely different things.</strong>', 'mainwp'), '<a href="/wp-admin/admin.php?page=managesites&do=test" style="text-decoration: none;">', '</a>');
        ?>
         </p>
         <p>
           <strong><?php 
        _e('Most common reasons for sites not being added are:', 'mainwp');
        ?>
</strong>
           <ol>
			   <li><strong><?php 
        echo sprintf(__('You have a Security Plugin blocking the connection. If you have a security plugin installed and are having an issue please check the %sPlugin Conflict page%s for how to resolve.', 'mainwp'), '<a href="http://docs.mainwp.com/known-plugin-conflicts/" style="text-decoration: none;">', '</a>');
        ?>
</strong></li>
             <li><?php 
        _e('Your Dashboard is on the same host as your Child site. Some hosts will not allow two sites on the same server to communicate with each other. In this situation you would contact your host for assistance or move your Dashboard or Child site to a different host.', 'mainwp');
        ?>
</li>
             <li><?php 
        _e('You may have recently moved the child site and your Dashboard\'s Server may not have an updated DNS or your server may be experiencing DNS issues.  To check this use the Test Connection tab and verify the IP that shows up with the IP that shows on your Child sites MainWP Server Information page. ', 'mainwp');
        ?>
</li>
             <li class="curl-notice" <?php 
        echo $passed_curl_ssl ? 'style="display: none;"' : '';
        ?>
><?php 
        _e('Your Dashboard or Child site is experiencing SSL or cURL errors which can make it so you are unable to the new Child site.  You can check for these errors on the Server Information page for both the MainWP Dashboard and Child Plugin.', 'mainwp');
        ?>
</li>
           </ol>
         </p>
         <p style="text-align: center;"><a href="#" class="button button-primary" style="text-decoration: none;" id="mainwp-add-site-notice-dismiss"><?php 
        _e('Hide this message', 'mainwp');
        ?>
</a></p>         
       </div>
        </div>
       <form method="POST" action="" enctype="multipart/form-data" id="mainwp_managesites_add_form">
           <table class="form-table">
               <tr class="form-field form-required">
                   <th scope="row"><?php 
        _e('Site Name', 'mainwp');
        ?>
</th>
                   <td>
                            <input type="text"
                                   id="mainwp_managesites_add_wpname"
                                   name="mainwp_managesites_add_wpname"
                                   value=""
                                   class=""/>
                    </td>
               </tr>
               <tr class="form-field form-required">
                   <th scope="row"><?php 
        _e('Site URL', 'mainwp');
        ?>
</th>
                   <td><select id="mainwp_managesites_add_wpurl_protocol" name="mainwp_managesites_add_wpurl_protocol"><option value="http">http://</option><option value="https">https://</option></select> <input type="text"
                               id="mainwp_managesites_add_wpurl"
                               name="mainwp_managesites_add_wpurl"
                               value=""
                               class="" />
                    </td>
               </tr>
               <tr class="form-field form-required">
                   <th scope="row"><?php 
        _e('Administrator Username', 'mainwp');
        ?>
</th>
                   <td>
                        <input type="text"
                               id="mainwp_managesites_add_wpadmin"
                               name="mainwp_managesites_add_wpadmin"
                               value=""
                               class="" />
                    </td>
               </tr>
               <tr>
                   <th scope="row"><?php 
        _e('Groups', 'mainwp');
        ?>
</th>
                   <td>
                        <input type="text"
                               name="mainwp_managesites_add_addgroups"
                               id="mainwp_managesites_add_addgroups"
                               value=""
                               class="regular-text form-control" />
                        <span class="mainwp-form_hint"><?php 
        _e('Separate groups by commas (e.g. Group 1, Group 2)', 'mainwp');
        ?>
</span>
                       <div id="selected_groups" style="display: block; width: 25em">
                           <?php 
        if (count($groups) == 0) {
            echo 'No groups added yet.';
        }
        foreach ($groups as $group) {
            echo '<div class="mainwp_selected_groups_item"><input type="checkbox" name="selected_groups[]" value="' . $group->id . '" /> &nbsp ' . stripslashes($group->name) . '</div>';
        }
        ?>
                       </div>
                       <span class="description"><?php 
        _e('Or assign existing groups.', 'mainwp');
        ?>
</span>
                   </td>
               </tr>
               </table>
               </div>
               </div>

<?php 
        $sync_extensions_options = apply_filters('mainwp-sync-extensions-options', array());
        $working_extensions = MainWP_Extensions::getExtensions();
        $available_exts_data = MainWP_Extensions_View::getAvailableExtensions();
        if (count($working_extensions) > 0 && count($sync_extensions_options) > 0) {
            ?>
	       <div class="postbox" id="mainwp-managesites-exts-options">
                <h3 class="mainwp_box_title"><span><i class="fa fa-cog"></i> <?php 
            _e('Extensions Settings Synchronization', 'mainwp');
            ?>
</span></h3>
                <div class="inside">
                <div class="mainwp_info-box-blue"><?php 
            _e('You have Extensions installed that require an additional plugin to be installed on this new Child site for the Extension to work correctly. From the list below select the plugins you want to install and if you want to apply the Extensions default settings to this Child site.', 'mainwp');
            ?>
</div>
                    <?php 
            foreach ($working_extensions as $slug => $data) {
                $dir_slug = dirname($slug);
                if (!isset($sync_extensions_options[$dir_slug])) {
                    continue;
                }
                $sync_info = isset($sync_extensions_options[$dir_slug]) ? $sync_extensions_options[$dir_slug] : array();
                $ext_name = str_replace("MainWP", "", $data['name']);
                $ext_name = str_replace("Extension", "", $ext_name);
                $ext_data = isset($available_exts_data[dirname($slug)]) ? $available_exts_data[dirname($slug)] : array();
                if (isset($ext_data['img'])) {
                    $img_url = $ext_data['img'];
                } else {
                    $img_url = plugins_url('images/extensions/placeholder.png', dirname(__FILE__));
                }
                $html = '<div class="sync-ext-row" slug="' . $dir_slug . '" ext_name = "' . esc_attr($ext_name) . '"status="queue">';
                $html .= '<br/><img src="' . $img_url . '" height="24" style="margin-bottom: -5px;">' . '<h3 style="display: inline;">' . $ext_name . '</h3><br/><br/>';
                if (isset($sync_info['plugin_slug']) && !empty($sync_info['plugin_slug'])) {
                    $html .= '<div class="sync-install-plugin" slug="' . esc_attr(dirname($sync_info['plugin_slug'])) . '" plugin_name="' . esc_attr($sync_info['plugin_name']) . '"><label><input type="checkbox" class="chk-sync-install-plugin"checked="checked"/> ' . esc_html(sprintf(__('Install %s plugin', 'mainwp'), $sync_info['plugin_name'])) . '</label> <i class="fa fa-spinner fa-pulse" style="display: none"></i> <span class="status"></span></div>';
                    if (!isset($sync_info['no_setting']) || empty($sync_info['no_setting'])) {
                        $html .= '<div class="sync-options options-row"><label><input type="checkbox" checked="checked" /> ' . sprintf(__('Apply %s %ssettings%s', 'mainwp'), $sync_info['plugin_name'], '<a href="admin.php?page=' . $data['page'] . '">', '</a>') . '</label> <i class="fa fa-spinner fa-pulse" style="display: none"></i> <span class="status"></span></div>';
                    }
                } else {
                    $html .= '<div class="sync-global-options options-row"><label><input type="checkbox" checked="checked" /> ' . esc_html(sprintf(__('Apply global %s options', 'mainwp'), trim($ext_name))) . '</label> <i class="fa fa-spinner fa-pulse"  style="display: none"></i> <span class="status"></span></div>';
                }
                $html .= '</div>';
                echo $html;
            }
            ?>
				</div>
			</div>
	<?php 
        }
        ?>

            <div class="postbox" id="mainwp-managesites-adv-options">
                <h3 class="mainwp_box_title"><span><i class="fa fa-cog"></i> <?php 
        _e('Advanced Options', 'mainwp');
        ?>
</span></h3>
                <div class="inside">
                    <table class="form-table">
                        <tr class="form-field form-required">
                             <th scope="row"><?php 
        _e('Child Unique Security
                               ID ', 'mainwp');
        ?>
&nbsp;&nbsp;<?php 
        MainWP_Utility::renderToolTip('The Unique Security ID adds additional protection between the Child plugin and your Main Dashboard. The Unique Security ID will need to match when being added to the Main Dashboard. This is additional security and should not be needed in most situations.');
        ?>
</th>
                             <td>
                             <input type="text"
                                    id="mainwp_managesites_add_uniqueId"
                                    style="width: 350px;"
                                    name="mainwp_managesites_add_uniqueId"
                                    value=""
                                    class=""/>
                            <span class="mainwp-form_hint">The Unique Security ID adds additional protection between the Child plugin and your Main Dashboard. The Unique Security ID will need to match when being added to the Main Dashboard. This is additional security and should not be needed in most situations.</span></td>
                        </tr>
                        <tr class="form-field form-required">
                            <th scope="row"><?php 
        _e('Verify Certificate', 'mainwp');
        ?>
&nbsp;<?php 
        MainWP_Utility::renderToolTip(__('Verify the childs SSL certificate. This should be disabled if you are using out of date or self signed certificates.', 'mainwp'));
        ?>
</th>
                            <td>
                                    <select id="mainwp_managesites_verify_certificate" name="mainwp_managesites_verify_certificate" class="form-control">
                                         <option selected value="1"><?php 
        _e('Yes', 'mainwp');
        ?>
</option>
                                         <option value="0"><?php 
        _e('No', 'mainwp');
        ?>
</option>
                                         <option value="2"><?php 
        _e('Use Global Setting', 'mainwp');
        ?>
</option>
                                    </select> <em><?php 
        _e('Default: Yes', 'mainwp');
        ?>
</em>
                            </td>
                        </tr>
	                    <tr class="form-field form-required">
	                       <th scope="row"><?php 
        _e('SSL Version', 'mainwp');
        ?>
&nbsp;<?php 
        MainWP_Utility::renderToolTip(__('Prefered SSL Version to connect to your site.', 'mainwp'));
        ?>
</th>
	                        <td>
	                            <select id="mainwp_managesites_ssl_version" name="mainwp_managesites_ssl_version">
	                                 <option selected value="auto"><?php 
        _e('Auto detect', 'mainwp');
        ?>
</option>
	                                 <option value="1.x"><?php 
        _e('TLS v1.x', 'mainwp');
        ?>
</option>
	                                 <option value="2"><?php 
        _e('SSL v2', 'mainwp');
        ?>
</option>
	                                 <option value="3"><?php 
        _e('SSL v3', 'mainwp');
        ?>
</option>
	                                 <option value="1.0"><?php 
        _e('TLS v1.0', 'mainwp');
        ?>
</option>
	                                 <option value="1.1"><?php 
        _e('TLS v1.1', 'mainwp');
        ?>
</option>
	                                 <option value="1.2"><?php 
        _e('TLS v1.2', 'mainwp');
        ?>
</option>
	                             </select> <em>(<?php 
        _e('Default: Auto detect', 'mainwp');
        ?>
)</em>
	                        </td>
	                    </tr>

                        <!-- fake fields are a workaround for chrome autofill getting the wrong fields -->
                        <input style="display:none" type="text" name="fakeusernameremembered"/>
                        <input style="display:none" type="password" name="fakepasswordremembered"/>

                        <tr>
                            <td colspan="2"><div class="mainwp_info-box"><?php 
        _e('If your Child Site is protected with HTTP basic authentication, please set the username and password for authentication here.', 'mainwp');
        ?>
</div></td>
                        </tr>

                        <tr class="form-field form-required">
                             <th scope="row"><?php 
        _e('HTTP username ', 'mainwp');
        ?>
</th>
                             <td>
                                     <input type="text"
                                            id="mainwp_managesites_add_http_user"
                                            style="width: 350px;"
                                            name="mainwp_managesites_add_http_user"
                                            value=""
                                            class=""/>
                            </td>
                        </tr>
                        <tr class="form-field form-required">
                             <th scope="row"><?php 
        _e('HTTP password ', 'mainwp');
        ?>
</th>
                             <td>
                                    <input type="password"
                                           id="mainwp_managesites_add_http_pass"
                                           style="width: 350px;"
                                           name="mainwp_managesites_add_http_pass"
                                           value=""
                                           class=""/>
                            </td>
                        </tr>
                    </table>
                    </div>
                </div>

               <div class="postbox" id="mainwp-bulk-upload-sites">
               <h3 class="mainwp_box_title"><span><i class="fa fa-cog"></i> <?php 
        _e('Bulk Upload', 'mainwp');
        ?>
</span></h3>
               <div class="inside">
               <table>
                   <th scope="row"></th>
                   <td>
                       <input type="file" name="mainwp_managesites_file_bulkupload"
                              id="mainwp_managesites_file_bulkupload"
                              accept="text/comma-separated-values"
                              class="regular-text" disabled="disabled"/>
                      <span
                              class="description"><?php 
        _e('File must be in CSV format.', 'mainwp');
        ?>
 <a
                              href="<?php 
        echo plugins_url('csv/sample.csv', dirname(__FILE__));
        ?>
"><?php 
        _e('Click
                          here to download sample CSV file.', 'mainwp');
        ?>
</a></span>

                       <div>
                           <p>
                               <input type="checkbox" name="mainwp_managesites_chk_bulkupload"
                                      id="mainwp_managesites_chk_bulkupload" value="1"/>
                               <label for="mainwp_managesites_chk_bulkupload"><span class="description"><?php 
        _e('Upload file', 'mainwp');
        ?>
</span></label>
                           </p>

                           <p>
                               <input type="checkbox" name="mainwp_managesites_chk_header_first"
                                      disabled="disabled" checked="checked"
                                      id="mainwp_managesites_chk_header_first" value="1"/>
                               <label for="mainwp_managesites_chk_header_first"><span class="description"><?php 
        _e('CSV file contains a header.', 'mainwp');
        ?>
</span></label>
                           </p>
                       </div>
                   </td>
           </table>
           </div>
           </div>



           <p class="submit"><input type="button" name="mainwp_managesites_add"
                                    id="mainwp_managesites_add"
                                    class="button-primary button button-hero" value="<?php 
        _e('Add New Site', 'mainwp');
        ?>
"/></p>
       </form>
<?php 
    }
    public static function render()
    {
        $currentExtensions = self::$extensionsLoaded ? self::$extensions : get_option('mainwp_extensions');
        if (count($currentExtensions) == 0) {
            ?>
			<span class="mainwp-no-extensions">
				<div class="mainwp_info-box-yellow"><?php 
            _e('You have no installed extensions.', 'mainwp');
            ?>
</div>
				<br/>
				<div style="text-align: center">
					<a href="https://mainwp.com/extensions/" target="_blank" class="button button-hero button-primary"><?php 
            _e('Add an Extension Today', 'mainwp');
            ?>
</a>
				</div>
				<br/>
				<h3 style="color: #7fb100;"><?php 
            _e('What are Extensions?', 'mainwp');
            ?>
</h3>
				<p><?php 
            _e('MainWP Extensions are specific features or tools created for the purpose of expanding the basic functionality of the MainWP plugin.', 'mainwp');
            ?>
</p>
				<h3 style="color: #7fb100;"><?php 
            _e('Why have Extensions?', 'mainwp');
            ?>
</h3>
				<p><?php 
            _e('The core of MainWP has been designed to provide the functions most needed by our users and minimize code bloat. Extensions offer custom functions and features so that each user can tailor their MainWP to their specific needs.', 'mainwp');
            ?>
</p>
			</span>
			<?php 
        } else {
            $showGrid = get_option('mainwp_extension_widget_view', 'grid') == 'grid';
            $showList = !$showGrid;
            $available_exts_data = MainWP_Extensions_View::getAvailableExtensions();
            ?>
			<br/>
			<div id="mainwp-extensions-widget-grid" <?php 
            echo !$showGrid ? "style='display:none;'" : '';
            ?>
>
				<?php 
            foreach ($currentExtensions as $extension) {
                if (!mainwp_current_user_can('extension', dirname($extension['slug']))) {
                    continue;
                }
                $ext_data = isset($available_exts_data[dirname($extension['slug'])]) ? $available_exts_data[dirname($extension['slug'])] : array();
                if (isset($ext_data['img'])) {
                    $img_url = $ext_data['img'];
                } else {
                    if (isset($extension['iconURI']) && $extension['iconURI'] != '') {
                        $img_url = MainWP_Utility::removeHttpPrefix($extension['iconURI']);
                    } else {
                        $img_url = plugins_url('images/extensions/placeholder.png', dirname(__FILE__));
                    }
                }
                if (isset($extension['direct_page']) && !empty($extension['direct_page'])) {
                    $ext_page = $extension['direct_page'];
                } else {
                    $ext_page = $extension['page'];
                }
                $active = MainWP_Extensions::isExtensionEnabled($extension['plugin']);
                ?>
					<span class="mainwp-widget-extensions">
						<a href="<?php 
                echo $active ? admin_url('admin.php?page=' . $ext_page) : '';
                ?>
" style="<?php 
                echo $active ? '' : 'pointer-events: none;';
                ?>
">
							<img title="<?php 
                echo $extension['name'];
                ?>
" src="<?php 
                echo $img_url;
                ?>
" class="mainwp-widget-icon <?php 
                echo $active ? '' : 'mainwp-extension-icon-desaturated';
                ?>
"/>
						</a>
						<h4>
							<a href="<?php 
                echo $active ? admin_url('admin.php?page=' . $ext_page) : '';
                ?>
" style="<?php 
                echo $active ? '' : 'pointer-events: none;';
                ?>
"><?php 
                echo $extension['name'];
                ?>
</a>
						</h4>
					</span>
					<?php 
            }
            ?>
			</div>
			<div style="clear: both"></div>

			<table id="mainwp-extensions-widget-list" cellspacing="0" cellpadding="1" <?php 
            echo !$showList ? "style='display:none;'" : '';
            ?>
>
				<tbody>
				<?php 
            foreach ($currentExtensions as $extension) {
                if (!mainwp_current_user_can('extension', dirname($extension['slug']))) {
                    continue;
                }
                $ext_data = isset($available_exts_data[dirname($extension['slug'])]) ? $available_exts_data[dirname($extension['slug'])] : array();
                if (isset($ext_data['img'])) {
                    $img_url = $ext_data['img'];
                } else {
                    if (isset($extension['iconURI']) && $extension['iconURI'] != '') {
                        $img_url = MainWP_Utility::removeHttpPrefix($extension['iconURI']);
                    } else {
                        $img_url = plugins_url('images/extensions/placeholder.png', dirname(__FILE__));
                    }
                }
                if (isset($extension['direct_page']) && !empty($extension['direct_page'])) {
                    $ext_page = $extension['direct_page'];
                } else {
                    $ext_page = $extension['page'];
                }
                $active = MainWP_Extensions::isExtensionEnabled($extension['plugin']);
                ?>
					<tr class="mainwp-widget-extensions-list mainwp-extensions-childHolder" extension_slug="<?php 
                echo $extension['slug'];
                ?>
">
							<td>
								<a href="<?php 
                echo $active ? admin_url('admin.php?page=' . $ext_page) : '';
                ?>
" style="<?php 
                echo $active ? '' : 'pointer-events: none;';
                ?>
"><img title="<?php 
                echo $extension['name'];
                ?>
" src="<?php 
                echo $img_url;
                ?>
" class="mainwp-widget-icon-list <?php 
                echo $active ? '' : 'mainwp-extension-icon-desaturated';
                ?>
"/></a>
							</td>
							<td class="mainwp-extension-widget-title-list">
								<a href="<?php 
                echo $active ? admin_url('admin.php?page=' . $ext_page) : '';
                ?>
" style="<?php 
                echo $active ? '' : 'pointer-events: none;';
                ?>
"><?php 
                echo $extension['name'];
                ?>
</a>
							</td>
							<td class="mainwp-extension-widget-version"><?php 
                echo $extension['version'];
                ?>
</td>
							<td class="mainwp-api-status-check" align="right" style="padding-right: 10px;">
								<?php 
                if (isset($extension['apiManager']) && $extension['apiManager'] && !empty($extension['api_key'])) {
                    ?>
									<span style="color: #7fb100;"><i class="fa fa-unlock"></i> <?php 
                    _e('Activated', 'mainwp');
                    ?>
</span>
								<?php 
                } else {
                    ?>
									<span style="color: #a00;"><i class="fa fa-lock"></i> <?php 
                    _e('Deactivated', 'mainwp');
                    ?>
</span>
								<?php 
                }
                ?>
							</td>
					</tr>
					<?php 
            }
            ?>
				</tbody>
			</table>
			<div style="clear: both; text-align: left; font-size: 12px; padding: .5em; border-top: 1px solid #dfdfdf;">
				<a href="https://mainwp.com/extensions/" target="_blank" class="button mainwp-upgrade-button"><?php 
            _e('GET MORE EXTENSIONS', 'mainwp');
            ?>
</a>
				<span style="float: right;">
					<a href="#" class="mainwp-extension-widget-switch-grid" <?php 
            echo !$showList ? "style='display:none;'" : '';
            ?>
><?php 
            _e('Show Grid View', 'mainwp');
            ?>
</a>
					<a href="#" class="mainwp-extension-widget-switch-list" <?php 
            echo !$showGrid ? "style='display:none;'" : '';
            ?>
><?php 
            _e('Show List View', 'mainwp');
            ?>
</a>
				</span>
			</div>
			<?php 
        }
    }
Exemplo n.º 11
0
 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);
     }
 }