Example #1
0
 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'));
 }
 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_installbulksearch', array(&$this, 'mainwp_installbulksearch'));
     //ok
     add_action('wp_ajax_mainwp_installbulknavsearch', array(&$this, 'mainwp_installbulknavsearch'));
     //ok
     add_action('wp_ajax_mainwp_installbulknavupload', array(&$this, 'mainwp_installbulknavupload'));
     //ok
     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: API
     add_action('wp_ajax_mainwp_api_test', array(&$this, 'mainwp_api_test'));
     //ok
     add_action('wp_ajax_mainwp_api_refresh', array(&$this, 'mainwp_api_refresh'));
     //ok
     //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_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'));
     MainWPExtensions::initAjaxHandlers();
     add_action('wp_ajax_mainwp_childscan', array(&$this, 'mainwp_childscan'));
     //ok
 }
    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://extensions.mainwp.com/" 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;
            ?>
          <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;
                }
                if (isset($extension['direct_page']) && !empty($extension['direct_page'])) {
                    $ext_page = $extension['direct_page'];
                } else {
                    $ext_page = $extension['page'];
                }
                $active = MainWPExtensions::isExtensionEnabled($extension['plugin']);
                ?>
        	    	<span class="mainwp-widget-extensions">
                    <?php 
                if (isset($extension['iconURI']) && $extension['iconURI'] != '') {
                    ?>
<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 MainWPUtility::removeHttpPrefix($extension['iconURI']);
                    ?>
" class="mainwp-widget-icon <?php 
                    echo $active ? '' : 'mainwp-extension-icon-desaturated';
                    ?>
" /></a><?php 
                } else {
                    ?>
<a href="<?php 
                    echo $active ? admin_url('admin.php?page=' . $ext_page) : '';
                    ?>
" style="<?php 
                    echo $active ? '' : 'pointer-events: none;';
                    ?>
"><img title="MainWP Placeholder" src="<?php 
                    echo plugins_url('images/extensions/placeholder.png', dirname(__FILE__));
                    ?>
" class="mainwp-widget-icon <?php 
                    echo $active ? '' : 'mainwp-extension-icon-desaturated';
                    ?>
" /></a><?php 
                }
                ?>
                    <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;
                }
                if (isset($extension['direct_page']) && !empty($extension['direct_page'])) {
                    $ext_page = $extension['direct_page'];
                } else {
                    $ext_page = $extension['page'];
                }
                $active = MainWPExtensions::isExtensionEnabled($extension['plugin']);
                ?>
                     <tr class="mainwp-widget-extensions-list mainwp-extensions-childHolder" extension_slug="<?php 
                echo $extension['slug'];
                ?>
">
                       <?php 
                if (isset($extension['iconURI']) && $extension['iconURI'] != '') {
                    ?>
                             <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 MainWPUtility::removeHttpPrefix($extension['iconURI']);
                    ?>
" 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>
                                    <?php 
                } else {
                    ?>
                           <td><a href="<?php 
                    echo $active ? admin_url('admin.php?page=' . $ext_page) : '';
                    ?>
" style="<?php 
                    echo $active ? '' : 'pointer-events: none;';
                    ?>
"><img title="MainWP Placeholder" src="<?php 
                    echo plugins_url('images/extensions/placeholder.png', dirname(__FILE__));
                    ?>
" 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>
                        <?php 
                }
                ?>
                    </tr>
                <?php 
            }
            ?>
            </tbody>
            </table>
            <div style="clear: both; text-align: left; font-size: 12px; padding: .5em; border-top: 1px solid #dfdfdf;"><a href="https://extensions.mainwp.com/" 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 
        }
    }
Example #4
0
 function apply_filter($filter)
 {
     $output = apply_filters($filter, array());
     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 (!MainWPExtensions::hookVerify($output[$i]['plugin'], $output[$i]['key'])) {
             unset($output[$i]);
             continue;
         }
     }
     return $output;
 }
Example #5
0
 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;
 }
Example #6
0
 public static function getPluginInformation($pSlug)
 {
     $extensions = MainWPExtensions::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 = MainWPApiManager::instance()->request_plugin_information($args);
                 break;
             }
         }
     }
     return $rslt;
 }
Example #7
0
 public static function syncSite(&$pWebsite = null, $pForceFetch = false, $pAllowDisconnect = true)
 {
     if ($pWebsite == null) {
         return false;
     }
     $userExtension = MainWPDB::Instance()->getUserExtensionByUserId($pWebsite->userid);
     if ($userExtension == null) {
         return false;
     }
     MainWPUtility::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 = MainWPDB::Instance()->query(MainWPDB::Instance()->getSQLWebsitesForCurrentUser());
             if ($websites) {
                 while ($websites && ($website = @MainWPDB::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);
                 }
                 @MainWPDB::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 = MainWPUtility::fetchUrlAuthed($pWebsite, 'stats', array('optimize' => get_option("mainwp_optimize") == 1 ? 1 : 0, 'heatMap' => MainWPExtensions::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)), true, $pForceFetch);
         $return = self::syncInformationArray($pWebsite, $information, '', 1, false, $pAllowDisconnect);
         return $return;
     } catch (MainWPException $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);
     }
 }
    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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                        <?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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                            <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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                        <?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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                        <?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);
    }