public static function refresh() { $output = array(); $parseError = true; try { $output['api_status'] = MainWPAPISettings::testAPIs('main', true, null, null, false, true); } catch (Exception $e) { if ($e->getMessage() == 'MAX_ACCOUNTS') { $output['api_status'] = MAINWP_API_INVALID; $output['error'] = MainWPAPISettingsView::maximumInstallationsReached(); } else { $parseError = false; $output['api_status'] = 'ERROR'; $output['error'] = $e->getMessage(); } } if ($parseError && stristr($output['api_status'], 'ERROR')) { $output['error'] = substr($output['api_status'], 6); $output['api_status'] = 'ERROR'; } return $output; }
function mainwp_cronconflicts_action() { MainWPLogger::Instance()->info('CRON :: conflicts'); $lastCronConflicts = get_option('mainwp_cron_last_cronconflicts'); if ($lastCronConflicts !== false && time() - $lastCronConflicts < 60 * 60 * 48) { return; } MainWPUtility::update_option('mainwp_cron_last_cronconflicts', time()); MainWPAPISettings::testAPIs(); if (true || $this->isAPIValid()) { if (!isset($GLOBALS['pagenow'])) { $GLOBALS['pagenow'] = ''; } $url = get_home_url(); try { $cronjobs = get_option('mainwp_cron_jobs'); if ($cronjobs === false) { $cronjobs = 0; } if ($cronjobs && !(get_option('mainwp_wp_cron') === false || get_option('mainwp_wp_cron') == 1)) { $cronjobs = false; } $result = MainWPUtility::http_post("do=getConflicts&url=" . urlencode($url) . "&username="******"&cron=" . $cronjobs, "mainwp.com", "/versioncontrol/rqst.php", 80, 'main', true); } catch (Exception $e) { MainWPLogger::Instance()->warning('An error occured when trying to reach the MainWP server: ' . $e->getMessage()); } if (isset($result[1])) { $result = $result[1]; } else { return; } $result = json_decode($result, true); $pluginConflicts = explode("\n", $result['pluginConflicts']); $themeConflicts = explode("\n", $result['themeConflicts']); $newPluginConflicts = array(); foreach ($pluginConflicts as $pluginConflict) { $lastIndex = strrpos($pluginConflict, ' '); if (!$lastIndex) { $newPluginConflicts[$pluginConflict] = false; } else { $newPluginConflicts[substr($pluginConflict, 0, $lastIndex)] = substr($pluginConflict, $lastIndex); } } $newThemeConflicts = array(); foreach ($themeConflicts as $themeConflict) { $lastIndex = strrpos($themeConflict, ' '); if (!$lastIndex) { $newThemeConflicts[$themeConflict] = false; } else { $newThemeConflicts[substr($themeConflict, 0, $lastIndex)] = substr($themeConflict, $lastIndex); } } MainWPUtility::update_option('mainwp_pluginConflicts', $newPluginConflicts); MainWPUtility::update_option('mainwp_themeConflicts', $newThemeConflicts); return; } }
public static function isExtensionEnabled($pluginFile) { $slug = plugin_basename($pluginFile); $snEnabledExtensions = get_option('mainwp_extloaded'); if (!is_array($snEnabledExtensions)) { $snEnabledExtensions = array(); } $active = in_array($slug, $snEnabledExtensions); // To fix bug self::loadExtensions(); if (isset(self::$extensions)) { foreach (self::$extensions as $extension) { if ($extension['plugin'] == $pluginFile) { if (isset($extension['mainwp']) && $extension['mainwp'] == true) { if (isset($extension['api_key']) && !empty($extension['api_key'])) { if (isset($extension['activated_key']) && $extension['activated_key'] == "Activated") { $active = true; } else { $active = false; } } else { if (isset($extension['api']) && MainWPAPISettings::testAPIs($extension['api']) != 'VALID') { $active = false; } } } else { if (isset($extension['apilink']) && isset($extension['locked']) && $extension['locked'] == true) { $active = false; } } break; } } } //return ($active ? array('key' => wp_create_nonce($pluginFile . '-SNNonceAdder')) : false); return $active ? array('key' => md5($pluginFile . '-SNNonceAdder')) : false; }
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="mainwp_info-box-yellow"> <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> <?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> <?php } ?> </div> <div id="mainwp-extensions-list"> <?php if (isset($extensions) && is_array($extensions)) { foreach ($extensions as $extension) { if (!mainwp_current_user_can("extension", dirname($extension['slug']))) { continue; } $active = MainWPExtensions::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 MainWPUtility::removeHttpPrefix($extension['iconURI']); ?> " class="mainwp-extensions-img large <?php echo $active ? '' : '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 $active ? '' : '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 ($active) { ?> <?php if (isset($extension['apiManager']) && $extension['apiManager'] && !empty($extension['api_key'])) { ?> <a href="javascript:void(0)" class="api-status activated" ><?php _e('Activated', 'mainwp'); ?> </a> <?php if (mainwp_current_user_can("dashboard", "manage_extensions")) { ?> <a href="#" class="mainwp-extensions-api-activation" style="font-size: 28px;"><i class="fa fa-unlock"></i></a> <?php } ?> <?php } else { ?> <?php if (mainwp_current_user_can("dashboard", "manage_extensions")) { ?> <a href="#" class="button mainwp-extensions-disable"><?php _e('Disable', 'mainwp'); ?> </a> <span style="font-size: 28px;"><i class="fa fa-unlock"></i></span> <?php } // ?> <?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 (mainwp_current_user_can("dashboard", "manage_extensions")) { ?> <span style="font-size: 28px; color: #e5e5e5;"><i class="fa fa-trash"></i></span> <?php } // ?> <?php } else { $apilink = ''; $locked = false; if (isset($extension['mainwp']) && $extension['mainwp'] == true) { //MainWP plugin, check if it requires authentication if (isset($extension['api'])) { $apilink = admin_url('admin.php?page=Settings'); //plugin locked (api not valid) $locked = MainWPAPISettings::testAPIs($extension['api']) != 'VALID'; } } else { //Third party plugin, check if it requires authentication if (isset($extension['apilink'])) { $apilink = $extension['apilink']; //plugin locked $locked = isset($extension['locked']) && $extension['locked'] == true; } } ?> <?php if (isset($extension['apiManager']) && $extension['apiManager'] && !empty($extension['api_key'])) { ?> <a href="javascript:void(0)" class="api-status deactivated" title="Not Activated"><?php _e('Deactivated', 'mainwp'); ?> </a> <?php if (mainwp_current_user_can("dashboard", "manage_extensions")) { ?> <a href="#" class="mainwp-extensions-api-activation"><i class="fa fa-lock image-api-status"></i></a> <?php } ?> <?php } else { ?> <?php if (mainwp_current_user_can("dashboard", "manage_extensions")) { ?> <button class="button-primary mainwp-extensions-enable" <?php echo $locked ? 'disabled' : ''; ?> ><?php _e('Enable', 'mainwp'); ?> </button> <?php if ($apilink != '') { ?> <a href="<?php echo $apilink; ?> " style="font-size: 28px;"><i class="fa fa-<?php echo (!$locked ? 'un' : '') . 'lock'; ?> "></i></a> <?php } else { ?> <i class="fa fa-unlock"></i></a> <?php } ?> <?php } ?> <?php } ?> <?php 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 { ?> <img src="<?php echo plugins_url('images/extensions/settings-freeze.png', dirname(__FILE__)); ?> " title="Settings" /> <?php } ?> <?php if (mainwp_current_user_can("dashboard", "manage_extensions")) { ?> <a href="#" class="mainwp-extensions-trash" style="font-size: 28px"><i class="fa fa-trash"></i></a> <?php } ?> <?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') . '</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 echo __("API License Key", "mainwp"); ?> " value="<?php echo $extension["api_key"]; ?> "/> <input type="text" class="input api_email" placeholder="<?php echo __("API License Email", "mainwp"); ?> " value="<?php echo $extension["activation_email"]; ?> "/> <input type="button" class="button-primary mainwp-extensions-activate" value="<?php _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); }