public function __construct() { add_filter('mainwp_getspecificdir', array('MainWPUtility', '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('MainWPInstallBulk', 'prepareInstall')); add_action('mainwp_performinstallplugintheme', array('MainWPInstallBulk', 'performInstall')); add_filter('mainwp_getwpfilesystem', array('MainWPUtility', 'getWPFilesystem')); add_filter('mainwp_getspecificurl', array('MainWPUtility', 'getMainWPSpecificUrl'), 10, 1); add_filter('mainwp_getdownloadurl', array('MainWPUtility', 'getDownloadUrl'), 10, 2); add_action('mainwp_renderToolTip', array('MainWPUtility', 'renderToolTip'), 10, 4); add_action('mainwp_renderHeader', array('MainWPUI', 'renderHeader'), 10, 2); add_action('mainwp_renderFooter', array('MainWPUI', 'renderFooter'), 10, 0); add_action('mainwp_renderImage', array('MainWPUI', '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('MainWPUtility', 'getNotificationEmail'), 10, 0); add_filter('mainwp-extension-available-check', array(MainWPExtensions::getClassName(), 'isExtensionAvailable')); add_filter('mainwp-extension-decrypt-string', array(&$this, 'hookDecryptString')); }
public function __construct($mainwp_plugin_file) { MainWPSystem::$instance = $this; $this->update(); $this->plugin_slug = plugin_basename($mainwp_plugin_file); list($t1, $t2) = explode('/', $this->plugin_slug); $this->slug = str_replace('.php', '', $t2); $this->apiStatus = MainWPAPISettings::testAPIs('main'); if (is_admin()) { include_once ABSPATH . 'wp-admin' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'plugin.php'; //Version information from wordpress $pluginData = get_plugin_data($mainwp_plugin_file); $this->current_version = $pluginData['Version']; $currentVersion = get_option('mainwp_plugin_version'); if (version_compare($currentVersion, $this->current_version, '<')) { update_option('mainwp_reset_user_tips', array()); MainWPUtility::update_option('mainwp_reset_user_cookies', array()); //delete_option('mainwp_api_sslVerifyCertificate'); } MainWPUtility::update_option('mainwp_plugin_version', $this->current_version); } if (get_option("mainwp_upgradeVersionInfo") != "" && get_option("mainwp_upgradeVersionInfo") != null) { $this->upgradeVersionInfo = unserialize(get_option("mainwp_upgradeVersionInfo")); } else { $this->upgradeVersionInfo = null; } $this->handleSettingsPost(); $ssl_api_verifyhost = get_option('mainwp_api_sslVerifyCertificate') === false || get_option('mainwp_api_sslVerifyCertificate') == 1 ? 1 : 0; if ($ssl_api_verifyhost == 0) { add_filter('http_request_args', array(MainWPExtensions::getClassName(), 'noSSLFilterExtensionUpgrade'), 99, 2); } MainWPExtensions::init(); add_action('in_plugin_update_message-' . $this->plugin_slug, array($this, 'in_plugin_update_message'), 10, 2); add_action('init', array(&$this, 'localization')); // define the alternative API for updating checking add_filter('site_transient_update_plugins', array(&$this, 'check_update_custom')); // Define the alternative response for information checking add_filter('pre_set_site_transient_update_plugins', array(&$this, 'pre_check_update_custom')); add_filter('plugins_api', array(&$this, 'check_info'), 10, 3); $this->metaboxes = new MainWPMetaBoxes(); MainWPMain::get(); //init main dashboard MainWPManageSites::init(); new MainWPHooks(); //Init the hooks //Change menu & widgets add_action('admin_menu', array(&$this, 'new_menus')); //Change footer add_filter('update_footer', array(&$this, 'update_footer'), 15); //Add js add_action('admin_head', array(&$this, 'admin_head')); add_action('admin_enqueue_scripts', array(&$this, 'admin_enqueue_styles')); add_action('admin_enqueue_scripts', array(&$this, 'admin_enqueue_scripts')); //Add body class add_action('admin_body_class', array(&$this, 'admin_body_class')); //Handle the bulkpost add_action('publish_bulkpost', array(&$this, 'publish_bulkpost')); add_action('save_post', array(&$this, 'save_bulkpost')); add_action('save_post', array(&$this, 'save_bulkpage')); add_action('add_meta_boxes_bulkpost', array('MainWPPost', 'addStickyOption')); //Handle the bulkpage add_action('publish_bulkpage', array(&$this, 'publish_bulkpage')); //Add meta boxes for the bulkpost add_action('admin_init', array(&$this, 'admin_init')); //Create the post types for bulkpost/... add_action('init', array(&$this, 'create_post_type')); add_action('init', array(&$this, 'parse_init')); add_action('init', array(&$this, 'init'), 9999); //Remove the pages from the menu which I use in AJAX add_action('admin_menu', array(&$this, 'admin_menu')); //Add custom error messages add_filter('post_updated_messages', array(&$this, 'post_updated_messages')); add_action('login_form', array(&$this, 'login_form')); add_action('admin_print_styles', array(&$this, 'admin_print_styles')); add_filter('admin_footer', array($this, 'admin_footer')); MainWPInstallBulk::init(); do_action('mainwp_cronload_action'); //Cron every 5 minutes add_action('mainwp_cronofflinecheck_action', array($this, 'mainwp_cronofflinecheck_action')); add_action('mainwp_cronstats_action', array($this, 'mainwp_cronstats_action')); add_action('mainwp_cronbackups_action', array($this, 'mainwp_cronbackups_action')); add_action('mainwp_cronbackups_continue_action', array($this, 'mainwp_cronbackups_continue_action')); add_action('mainwp_cronconflicts_action', array($this, 'mainwp_cronconflicts_action')); add_action('mainwp_cronupdatescheck_action', array($this, 'mainwp_cronupdatescheck_action')); add_action('mainwp_cronpingchilds_action', array($this, 'mainwp_cronpingchilds_action')); add_filter('cron_schedules', array('MainWPUtility', 'getCronSchedules')); $useWPCron = get_option('mainwp_wp_cron') === false || get_option('mainwp_wp_cron') == 1; if (($sched = wp_next_scheduled('mainwp_cronofflinecheck_action')) == false) { if ($useWPCron) { wp_schedule_event(time(), '5minutely', 'mainwp_cronofflinecheck_action'); } } else { if (!$useWPCron) { wp_unschedule_event($sched, 'mainwp_cronofflinecheck_action'); } } if (($sched = wp_next_scheduled('mainwp_cronstats_action')) == false) { if ($useWPCron) { wp_schedule_event(time(), 'hourly', 'mainwp_cronstats_action'); } } else { if (!$useWPCron) { wp_unschedule_event($sched, 'mainwp_cronstats_action'); } } if (($sched = wp_next_scheduled('mainwp_cronbackups_action')) == false) { if ($useWPCron) { wp_schedule_event(time(), 'hourly', 'mainwp_cronbackups_action'); } } else { if (!$useWPCron) { wp_unschedule_event($sched, 'mainwp_cronbackups_action'); } } if (($sched = wp_next_scheduled('mainwp_cronbackups_continue_action')) == false) { if ($useWPCron) { wp_schedule_event(time(), '5minutely', 'mainwp_cronbackups_continue_action'); } } else { if (!$useWPCron) { wp_unschedule_event($sched, 'mainwp_cronbackups_continue_action'); } } if (($sched = wp_next_scheduled('mainwp_cronconflicts_action')) == false) { if ($useWPCron) { wp_schedule_event(time(), 'twicedaily', 'mainwp_cronconflicts_action'); } } else { if (!$useWPCron) { wp_unschedule_event($sched, 'mainwp_cronconflicts_action'); } } if (($sched = wp_next_scheduled('mainwp_cronremotedestinationcheck_action')) != false) { wp_unschedule_event($sched, 'mainwp_cronremotedestinationcheck_action'); } if (($sched = wp_next_scheduled('mainwp_cronpingchilds_action')) == false) { if ($useWPCron) { wp_schedule_event(time(), 'daily', 'mainwp_cronpingchilds_action'); } } else { if (!$useWPCron) { wp_unschedule_event($sched, 'mainwp_cronpingchilds_action'); } } if (($sched = wp_next_scheduled('mainwp_cronupdatescheck_action')) == false) { if ($useWPCron) { wp_schedule_event(time(), 'minutely', 'mainwp_cronupdatescheck_action'); } } else { if (!$useWPCron) { wp_unschedule_event($sched, 'mainwp_cronupdatescheck_action'); } } add_action('plugin_action_links_' . $this->plugin_slug, array(&$this, 'plugin_action_links')); add_action('admin_notices', array(&$this, 'admin_notices')); add_filter('mainwp-activated-check', array(&$this, 'activated_check')); add_filter('mainwp-activated-sub-check', array(&$this, 'activated_sub_check')); add_filter('mainwp-extension-enabled-check', array(MainWPExtensions::getClassName(), 'isExtensionEnabled')); add_filter('mainwp-getsites', array(MainWPExtensions::getClassName(), 'hookGetSites'), 10, 4); add_filter('mainwp-getdbsites', array(MainWPExtensions::getClassName(), 'hookGetDBSites'), 10, 5); add_filter('mainwp-getgroups', array(MainWPExtensions::getClassName(), 'hookGetGroups'), 10, 4); add_action('mainwp_fetchurlsauthed', array(&$this, 'filter_fetchUrlsAuthed'), 10, 7); add_filter('mainwp_fetchurlauthed', array(&$this, 'filter_fetchUrlAuthed'), 10, 5); add_filter('mainwp_getdashboardsites', array(MainWPExtensions::getClassName(), 'hookGetDashboardSites'), 10, 7); add_filter('mainwp-manager-getextensions', array(MainWPExtensions::getClassName(), 'hookManagerGetExtensions')); add_action('mainwp_bulkpost_metabox_handle', array($this, 'hookBulkPostMetaboxHandle')); add_action('mainwp_bulkpage_metabox_handle', array($this, 'hookBulkPageMetaboxHandle')); $this->posthandler = new MainWPPostHandler(); do_action('mainwp-activated'); MainWPPost::init(); MainWPSettings::init(); MainWPManageBackups::init(); MainWPUser::init(); MainWPPage::init(); MainWPThemes::init(); MainWPPlugins::init(); MainWPRightNow::init(); }
static function installPlugin($url) { $hasWPFileSystem = MainWPUtility::getWPFilesystem(); 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(MainWPExtensions::getClassName(), 'noSSLFilterFunction'), 99, 2); } add_filter('http_request_args', array(MainWPExtensions::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(MainWPExtensions::getClassName(), 'http_request_reject_unsafe_urls'), 99, 2); if ($ssl_verifyhost === '0') { remove_filter('http_request_args', array(MainWPExtensions::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; break; } } } if (!empty($error)) { $return['error'] = $error; } else { $return['result'] = 'SUCCESS'; $return['output'] = $output; $return['slug'] = $plugin_slug; } return $return; }
public static function initMenu() { add_submenu_page('mainwp_tab', __('Extensions', 'mainwp'), ' <span id="mainwp-Extensions">' . __('Extensions', 'mainwp') . '</span>', 'read', 'Extensions', array(MainWPExtensions::getClassName(), 'render')); }