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); }
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; }
public function hookEnableExtension($slug) { return MainWP_Extensions::enableExtension($slug); }
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; }
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; }
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> <?php } else { ?> <a href="javascript:void(0)" class="api-status deactivated" title="Not Activated"><?php _e('Deactivated', 'mainwp'); ?> </a> <?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> <?php } else { ?> <button <?php echo $user_can_manage_extensions ? 'class="button-primary mainwp-extensions-enable"' : 'disabled="disabled"'; ?> ><?php _e('Enable', 'mainwp'); ?> </button> <?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); }
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 }
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"/> ' . $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"/> ' . $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 . '" />   ' . 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'); ?> <?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'); ?> <?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'); ?> <?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 } }
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); } }