function mainwp_updatechildsite_value()
 {
     $this->secure_request();
     MainWPManageSites::updateChildsiteValue();
 }
Exemple #2
0
 function new_menus()
 {
     if (MainWPUtility::isAdmin()) {
         //Adding the page to manage your added sites/groups
         //The first page which will display the post area etc..
         MainWPSecurityIssues::initMenu();
         MainWPManageSites::initMenu();
         MainWPPost::initMenu();
         MainWPPage::initMenu();
         MainWPThemes::initMenu();
         MainWPPlugins::initMenu();
         MainWPUser::initMenu();
         MainWPManageBackups::initMenu();
         MainWPOfflineChecks::initMenu();
         MainWPBulkUpdateAdminPasswords::initMenu();
         MainWPManageGroups::initMenu();
         MainWPSettings::initMenu();
         MainWPExtensions::initMenu();
         do_action('mainwp_admin_menu');
         MainWPDocumentation::initMenu();
         MainWPServerInformation::initMenu();
         MainWPChildScan::initMenu();
         MainWPAPISettings::initMenu();
     }
 }
    public static function renderBackupSite(&$website)
    {
        if (!mainwp_current_user_can("dashboard", "execute_backups")) {
            mainwp_do_not_have_permissions("execute backups");
            return;
        }
        $primaryBackupMethods = apply_filters("mainwp-getprimarybackup-methods", array());
        if (!is_array($primaryBackupMethods)) {
            $primaryBackupMethods = array();
        }
        $remote_destinations = apply_filters('mainwp_backups_remote_get_destinations', null, array('website' => $website->id));
        $hasRemoteDestinations = $remote_destinations == null ? $remote_destinations : count($remote_destinations);
        ?>

        <div class="error below-h2" style="display: none;" id="ajax-error-zone"></div>
        <div id="ajax-information-zone" class="updated" style="display: none;"></div>
        
        <?php 
        if (count($primaryBackupMethods) == 0) {
            ?>
            <tr>
                <div class="mainwp_info-box"><?php 
            _e('Did you know that MainWP has Extensions for working with popular backup plugins? Visit the <a href="https://extensions.mainwp.com/product-category/mainwp-extensions/backups/" target="_blank" ?>Extensions Site</a> for options.', 'mainwp');
            ?>
</div>
            </tr>
        <?php 
        }
        ?>

        	<div class="postbox" id="mainwp-backup-details">
                <h3 class="mainwp_box_title"><span><i class="fa fa-hdd-o"></i> <?php 
        _e('Backup Details', 'mainwp');
        ?>
</span></h3>
                <div class="inside">
                <?php 
        if (!MainWPUtility::can_edit_website($website)) {
            die('This is not your website.');
        }
        MainWPManageSites::showBackups($website);
        ?>
                </div>
            </div>
            <div class="postbox" id="mainwp-backup-optins-site">
            <h3 class="mainwp_box_title"><span><i class="fa fa-hdd-o"></i> <?php 
        _e('Backup Options', 'mainwp');
        ?>
</span></h3>
            <div class="inside">
            <form method="POST" action="" id="mainwp_backup_sites_page">
            <table class="form-table">
                <tbody>
                <tr>
                    <th scope="row"><?php 
        _e('Backup File Name:', 'mainwp');
        ?>
</th>
                    <td><input type="text" name="backup_filename" id="backup_filename" value="" class="mainwp-field mainwp-file-name" /><span class="mainwp-form_hint" style="display: inline; max-width: 500px;"><?php 
        _e('Allowed Structure Tags:', 'mainwp');
        ?>
 <strong>%sitename%</strong>, <strong>%url%</strong>, <strong>%date%</strong>, <strong>%time%</strong>, <strong>%type%</strong></span>
                    </td>
                </tr>
                <tr><td colspan="2"><hr /></td></tr>
                <tr>
                    <th scope="row"><?php 
        _e('Backup Type:', 'mainwp');
        ?>
</th>
                    <td>
                        <a class="mainwp_action left mainwp_action_down" href="#" id="backup_type_full"><?php 
        _e('FULL BACKUP', 'mainwp');
        ?>
</a><a class="mainwp_action right" href="#" id="backup_type_db"><?php 
        _e('DATABASE BACKUP', 'mainwp');
        ?>
</a>
                    </td>
                </tr>
                <tr class="mainwp_backup_exclude_files_content"><td colspan="2"><hr /></td></tr>
                <tr class="mainwp-exclude-suggested">
                    <th scope="row" style="vertical-align: top"><?php 
        _e('Suggested Exclude', 'mainwp');
        ?>
:</th>
                    <td><p style="background: #7fb100; color: #ffffff; padding: .5em;"><?php 
        _e('Every WordPress website is different but the sections below generally do not need to be backed up and since many of them are large in size they can even cause issues with your backup including server timeouts.', 'mainwp');
        ?>
</p></td>
                </tr>
                <tr class="mainwp-exclude-backup-locations">
                    <td colspan="2"><h4><i class="fa fa-cloud-upload"></i> <?php 
        _e('Known Backup Locations', 'mainwp');
        ?>
</h4></td>
                </tr>
                <tr class="mainwp-exclude-backup-locations">
                    <td><label for="mainwp-known-backup-locations"><?php 
        _e('Exclude', 'mainwp');
        ?>
</label><input type="checkbox" id="mainwp-known-backup-locations" checked></td>
                    <td class="mainwp-td-des"><a href="#" id="mainwp-show-kbl-folders"><?php 
        _e('+ Show Excluded Folders', 'mainwp');
        ?>
</a><a href="#" id="mainwp-hide-kbl-folders"><?php 
        _e('- Hide Excluded Folders', 'mainwp');
        ?>
</a><br/>
                        <textarea id="mainwp-kbl-content" disabled></textarea>
                        <br/><?php 
        _e('This adds known backup locations of popular WordPress backup plugins to the exclude list.  Old backups can take up a lot of space and can cause your current MainWP backup to timeout.', 'mainwp');
        ?>
</td>
                </tr>
                <tr class="mainwp-exclude-separator"><td colspan="2" style="padding: 0 !important;"><hr /></td></tr>
                <tr class="mainwp-exclude-cache-locations">
                    <td colspan="2"><h4><i class="fa fa-cubes"></i> <?php 
        _e('Known Cache Locations', 'mainwp');
        ?>
</h4></td>
                </tr>
                <tr class="mainwp-exclude-cache-locations">
                    <td><label for="mainwp-known-cache-locations"><?php 
        _e('Exclude', 'mainwp');
        ?>
</label><input type="checkbox" id="mainwp-known-cache-locations" checked></td>
                    <td class="mainwp-td-des"><a href="#" id="mainwp-show-kcl-folders"><?php 
        _e('+ Show Excluded Folders', 'mainwp');
        ?>
</a><a href="#" id="mainwp-hide-kcl-folders"><?php 
        _e('- Hide Excluded Folders', 'mainwp');
        ?>
</a><br/>
                        <textarea id="mainwp-kcl-content" disabled></textarea>
                        <br/><?php 
        _e('This adds known cache locations of popular WordPress cache plugins to the exclude list.  A cache can be massive with thousands of files and can cause your current MainWP backup to timeout.  Your cache will be rebuilt by your caching plugin when the backup is restored.', 'mainwp');
        ?>
</td>
                </tr>
                <tr class="mainwp-exclude-separator"><td colspan="2" style="padding: 0 !important;"><hr /></td></tr>
                <tr class="mainwp-exclude-nonwp-folders">
                    <td colspan="2"><h4><i class="fa fa-folder"></i> <?php 
        _e('Non-WordPress Folders', 'mainwp');
        ?>
</h4></td>
                </tr>
                <tr class="mainwp-exclude-nonwp-folders">
                    <td><label for="mainwp-non-wordpress-folders"><?php 
        _e('Exclude', 'mainwp');
        ?>
</label><input type="checkbox" id="mainwp-non-wordpress-folders" checked></td>
                    <td class="mainwp-td-des"><a href="#" id="mainwp-show-nwl-folders"><?php 
        _e('+ Show Excluded Folders', 'mainwp');
        ?>
</a><a href="#" id="mainwp-hide-nwl-folders"><?php 
        _e('- Hide Excluded Folders', 'mainwp');
        ?>
</a><br/>
                        <textarea id="mainwp-nwl-content" disabled></textarea>
                        <br/><?php 
        _e('This adds folders that are not part of the WordPress core (wp-admin, wp-content and wp-include) to the exclude list. Non-WordPress folders can contain a large amount of data or may be a sub-domain or add-on domain that should be backed up individually and not with this backup.', 'mainwp');
        ?>
</td>
                </tr>
                <tr class="mainwp-exclude-separator"><td colspan="2" style="padding: 0 !important;"><hr /></td></tr>
                <tr class="mainwp-exclude-zips">
                    <td colspan="2"><h4><i class="fa fa-file-archive-o"></i> <?php 
        _e('ZIP Archives', 'mainwp');
        ?>
</h4></td>
                </tr>
                <tr class="mainwp-exclude-zips">
                    <td><label for="mainwp-zip-archives"><?php 
        _e('Exclude', 'mainwp');
        ?>
</label><input type="checkbox" id="mainwp-zip-archives" checked></td>
                    <td class="mainwp-td-des"><?php 
        _e('Zip files can be large and are often not needed for a WordPress backup. Be sure to deselect this option if you do have zip files you need backed up.', 'mainwp');
        ?>
</td>
                </tr>
                <tr class="mainwp-exclude-separator"><td colspan="2" style="padding: 0 !important;"><hr /></td></tr>
                <tr class="mainwp_backup_exclude_files_content">
                    <th scope="row" style="vertical-align: top"><h4 class="mainwp-custom-excludes"><i class="fa fa-minus-circle"></i> <?php 
        _e('Custom Excludes', 'mainwp');
        ?>
</h4></th>
                    <td>
                        <p style="background: #7fb100; color: #ffffff; padding: .5em;"><?php 
        _e('Exclude any additional files that you do not need backed up for this site. Click a folder name to drill down into the directory.', 'mainwp');
        ?>
</p>
                        <br />
                        <?php 
        printf(__('Click directories to navigate. Click the red sign ( <img style="margin-bottom: -3px;" src="%s"> ) to exclude a folder.', 'mainwp'), plugins_url('images/exclude.png', dirname(__FILE__)));
        ?>
<br /><br />
                        <table class="mainwp_excluded_folders_cont">
                            <tr>
                                <td style="width: 280px;">
                                    <div id="backup_exclude_folders"
                                         siteid="<?php 
        echo $website->id;
        ?>
"
                                         class="mainwp_excluded_folders"></div>
                                </td>
                                <td>
                                    <?php 
        _e('Excluded files & directories:', 'mainwp');
        ?>
<br/>
                                    <textarea id="excluded_folders_list"></textarea>
                                </td>
                            </tr>
                        </table>
                        <span class="description"><strong><?php 
        _e('ATTENTION:', 'mainwp');
        ?>
</strong> <?php 
        _e('Do not exclude any folders if you are using this backup to clone or migrate the wordpress installation.', 'mainwp');
        ?>
</span>
                    </td>
                </tr>
                <?php 
        if ($hasRemoteDestinations !== null) {
            ?>
                <tr><td colspan="2"><hr /></td></tr>
                <tr>
                    <th scope="row"><?php 
            _e('Store Backup In:', 'mainwp');
            ?>
</th>
                    <td>
                        <a class="mainwp_action left <?php 
            echo !$hasRemoteDestinations ? 'mainwp_action_down' : '';
            ?>
" href="#" id="backup_location_local"><?php 
            _e('LOCAL SERVER ONLY', 'mainwp');
            ?>
</a><a class="mainwp_action right <?php 
            echo $hasRemoteDestinations ? 'mainwp_action_down' : '';
            ?>
" href="#" id="backup_location_remote"><?php 
            _e('REMOTE DESTINATION', 'mainwp');
            ?>
</a>
                    </td>
                </tr>
                <tr class="mainwp_backup_destinations" <?php 
            echo !$hasRemoteDestinations ? 'style="display: none;"' : '';
            ?>
>
                    <th scope="row"><?php 
            _e('Backup Subfolder:', 'mainwp');
            ?>
</th>
                    <td><input type="text" id="backup_subfolder" name="backup_subfolder"
                                                           value="MainWP Backups/%url%/%type%/%date%"/><span class="mainwp-form_hint" style="display: inline; max-width: 500px;">Allowed Structure Tags: <strong>%sitename%</strong>, <strong>%url%</strong>, <strong>%date%</strong>, <strong>%task%</strong>, <strong>%type%</strong></span></td>
                </tr>
                <?php 
        }
        ?>
                    <?php 
        do_action('mainwp_backups_remote_settings', array('website' => $website->id));
        ?>

                <?php 
        $globalArchiveFormat = get_option('mainwp_archiveFormat');
        if ($globalArchiveFormat == false) {
            $globalArchiveFormat = 'tar.gz';
        }
        if ($globalArchiveFormat == 'zip') {
            $globalArchiveFormatText = 'Zip';
        } else {
            if ($globalArchiveFormat == 'tar') {
                $globalArchiveFormatText = 'Tar';
            } else {
                if ($globalArchiveFormat == 'tar.gz') {
                    $globalArchiveFormatText = 'Tar GZip';
                } else {
                    if ($globalArchiveFormat == 'tar.bz2') {
                        $globalArchiveFormatText = 'Tar BZip2';
                    }
                }
            }
        }
        $backupSettings = MainWPDB::Instance()->getWebsiteBackupSettings($website->id);
        $archiveFormat = $backupSettings->archiveFormat;
        $useGlobal = $archiveFormat == 'global';
        ?>
                <tr><td colspan="2"><hr /></td></tr>
                <tr>
                    <th scope="row"><?php 
        _e('Archive Format', 'mainwp');
        ?>
</th>
                    <td>
                        <table class="mainwp-nomarkup">
                            <tr>
                                <td valign="top">
                                    <span class="mainwp-select-bg"><select name="mainwp_archiveFormat" id="mainwp_archiveFormat">
                                        <option value="global" <?php 
        if ($useGlobal) {
            ?>
selected<?php 
        }
        ?>
>Global setting (<?php 
        echo $globalArchiveFormatText;
        ?>
)</option>
                                        <option value="zip" <?php 
        if ($archiveFormat == 'zip') {
            ?>
selected<?php 
        }
        ?>
>Zip</option>
                                        <option value="tar" <?php 
        if ($archiveFormat == 'tar') {
            ?>
selected<?php 
        }
        ?>
>Tar</option>
                                        <option value="tar.gz" <?php 
        if ($archiveFormat == 'tar.gz') {
            ?>
selected<?php 
        }
        ?>
>Tar GZip</option>
                                        <option value="tar.bz2" <?php 
        if ($archiveFormat == 'tar.bz2') {
            ?>
selected<?php 
        }
        ?>
>Tar BZip2</option>
                                    </select><label></label></span>
                                </td>
                                <td>
                                    <i>
                                    <span id="info_global" class="archive_info" <?php 
        if (!$useGlobal) {
            ?>
style="display: none;"<?php 
        }
        ?>
><?php 
        if ($globalArchiveFormat == 'zip') {
            ?>
Uses PHP native Zip-library, when missing, the PCLZip library included in Wordpress will be used. (Good compression, fast with native zip-library)<?php 
        } elseif ($globalArchiveFormat == 'tar') {
            ?>
Uses PHP native Zip-library, when missing, the PCLZip library included in Wordpress will be used. (Good compression, fast with native zip-library)<?php 
        } elseif ($globalArchiveFormat == 'tar.gz') {
            ?>
Creates a GZipped tar-archive. (Good compression, fast, low memory usage)<?php 
        } elseif ($globalArchiveFormat == 'tar.bz2') {
            ?>
Creates a BZipped tar-archive. (Best compression, fast, low memory usage)<?php 
        }
        ?>
</span>
                                    <span id="info_zip" class="archive_info" <?php 
        if ($archiveFormat != 'zip') {
            ?>
style="display: none;"<?php 
        }
        ?>
>Uses PHP native Zip-library, when missing, the PCLZip library included in Wordpress will be used. (Good compression, fast with native zip-library)</span>
                                    <span id="info_tar" class="archive_info" <?php 
        if ($archiveFormat != 'tar') {
            ?>
style="display: none;"<?php 
        }
        ?>
>Creates an uncompressed tar-archive. (No compression, fast, low memory usage)</span>
                                    <span id="info_tar.gz" class="archive_info" <?php 
        if ($archiveFormat != 'tar.gz') {
            ?>
style="display: none;"<?php 
        }
        ?>
>Creates a GZipped tar-archive. (Good compression, fast, low memory usage)</span>
                                    <span id="info_tar.bz2" class="archive_info" <?php 
        if ($archiveFormat != 'tar.bz2') {
            ?>
style="display: none;"<?php 
        }
        ?>
>Creates a BZipped tar-archive. (Best compression, fast, low memory usage)</span>
                                    </i>
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>

                <?php 
        $maximumFileDescriptorsOverride = $website->maximumFileDescriptorsOverride == 1;
        $maximumFileDescriptorsAuto = $website->maximumFileDescriptorsAuto == 1;
        $maximumFileDescriptors = $website->maximumFileDescriptors;
        ?>
                <tr class="archive_method archive_zip" <?php 
        if ($archiveFormat != 'zip') {
            ?>
style="display: none;"<?php 
        }
        ?>
>
                    <th scope="row"><?php 
        _e('Maximum File Descriptors on Child', 'mainwp');
        ?>
 <?php 
        MainWPUtility::renderToolTip('The maximum number of open file descriptors on the child hosting.', 'http://docs.mainwp.com/maximum-number-of-file-descriptors/');
        ?>
</th>
                    <td>
                        <div class="mainwp-radio" style="float: left;">
                          <input type="radio" value="" name="mainwp_options_maximumFileDescriptorsOverride" id="mainwp_options_maximumFileDescriptorsOverride_global" <?php 
        echo !$maximumFileDescriptorsOverride ? 'checked="true"' : '';
        ?>
"/>
                          <label for="mainwp_options_maximumFileDescriptorsOverride_global"></label>
                        </div>Global Setting (<a href="<?php 
        echo admin_url('admin.php?page=Settings');
        ?>
">Change Here</a>)<br/>
                        <div class="mainwp-radio" style="float: left;">
                          <input type="radio" value="override" name="mainwp_options_maximumFileDescriptorsOverride" id="mainwp_options_maximumFileDescriptorsOverride_override" <?php 
        echo $maximumFileDescriptorsOverride ? 'checked="true"' : '';
        ?>
"/>
                          <label for="mainwp_options_maximumFileDescriptorsOverride_override"></label>
                        </div><?php 
        _e('Override', 'mainwp');
        ?>
<br/><br />

                        <div style="float: left"><?php 
        _e('Auto detect:', 'mainwp');
        ?>
&nbsp;</div><div class="mainwp-checkbox"><input type="checkbox" id="mainwp_maximumFileDescriptorsAuto" name="mainwp_maximumFileDescriptorsAuto" <?php 
        echo $maximumFileDescriptorsAuto ? 'checked="checked"' : '';
        ?>
 /> <label for="mainwp_maximumFileDescriptorsAuto"></label></div><div style="float: left"><i>(<?php 
        _e('Enter a fallback value because not all hosts support this function.', 'mainwp');
        ?>
)</i></div><div style="clear:both"></div>
                        <input type="text" name="mainwp_options_maximumFileDescriptors" id="mainwp_options_maximumFileDescriptors"
                               value="<?php 
        echo $maximumFileDescriptors;
        ?>
"/><span class="mainwp-form_hint"><?php 
        _e('The maximum number of open file descriptors on the child hosting.  0 sets unlimited.', 'mainwp');
        ?>
</span>
                    </td>
                </tr>
                <tr class="archive_method archive_zip" <?php 
        if ($archiveFormat != 'zip') {
            ?>
style="display: none;"<?php 
        }
        ?>
>
                    <th scope="row"><?php 
        _e('Load files in memory before zipping', 'mainwp');
        ?>
 <?php 
        MainWPUtility::renderToolTip('This causes the files to be opened and closed immediately, using less simultaneous I/O operations on the disk. For huge sites with a lot of files we advise to disable this, memory usage will drop but we will use more file handlers when backing up.', 'http://docs.mainwp.com/load-files-memory/');
        ?>
</th>
                    <td>
                        <input type="radio" name="mainwp_options_loadFilesBeforeZip" id="mainwp_options_loadFilesBeforeZip_global" value="1" <?php 
        if ($website->loadFilesBeforeZip == false || $website->loadFilesBeforeZip == 1) {
            ?>
checked="true"<?php 
        }
        ?>
/> Global setting (<a href="<?php 
        echo admin_url('admin.php?page=Settings');
        ?>
">Change Here</a>)<br />
                        <input type="radio" name="mainwp_options_loadFilesBeforeZip" id="mainwp_options_loadFilesBeforeZip_yes" value="2" <?php 
        if ($website->loadFilesBeforeZip == 2) {
            ?>
checked="true"<?php 
        }
        ?>
/> Yes<br />
                        <input type="radio" name="mainwp_options_loadFilesBeforeZip" id="mainwp_options_loadFilesBeforeZip_no" value="0" <?php 
        if ($website->loadFilesBeforeZip == 0) {
            ?>
checked="true"<?php 
        }
        ?>
/> No<br />
                    </td>
                </tr>
            </table>

                <input type="hidden" name="site_id" id="backup_site_id" value="<?php 
        echo $website->id;
        ?>
"/>
                <input type="hidden" name="backup_site_full_size" id="backup_site_full_size" value="<?php 
        echo $website->totalsize;
        ?>
"/>
                <input type="hidden" name="backup_site_db_size" id="backup_site_db_size" value="<?php 
        echo $website->dbsize;
        ?>
"/>

                <p class="submit"><input type="button" name="backup_btnSubmit" id="backup_btnSubmit"
                                         class="button-primary"
                                         value="Backup Now"/></p>

            </form>
            </div>
        </div>

    <div id="managesite-backup-status-box" title="Backup <?php 
        echo stripslashes($website->name);
        ?>
" style="display: none; text-align: center">
        <div style="height: 190px; overflow: auto; margin-top: 20px; margin-bottom: 10px; text-align: left" id="managesite-backup-status-text">
        </div>
        <input id="managesite-backup-status-close" type="button" name="Close" value="Cancel" class="button" />
    </div>
    <?php 
    }
    public static function renderMetabox()
    {
        $website = MainWPUtility::get_current_wpid();
        if (!$website) {
            return;
        }
        $website = MainWPDB::Instance()->getWebsiteById($website);
        MainWPManageSites::showBackups($website);
        ?>
        <?php 
        if (mainwp_current_user_can("dashboard", "execute_backups")) {
            ?>
        <hr />
        <div style="text-align: center;"><a href="<?php 
            echo admin_url('admin.php?page=managesites&backupid=' . $website->id);
            ?>
" class="button-primary"><?php 
            _e('Backup Now', 'mainwp');
            ?>
</a></div>
        <?php 
        }
        ?>
        <?php 
    }
 public static function add_options()
 {
     $option = 'per_page';
     $args = array('label' => MainWPManageSitesView::sitesPerPage(), 'default' => 10, 'option' => 'mainwp_managesites_per_page');
     add_screen_option($option, $args);
     if (false === get_user_option('mainwp_default_hide_actions_column')) {
         global $current_user;
         $hidden = get_user_option("manage" . MainWPManageSites::$page . "columnshidden");
         if (!is_array($hidden)) {
             $hidden = array();
         }
         $hidden[] = 'site_actions';
         update_user_option($current_user->ID, "manage" . MainWPManageSites::$page . "columnshidden", $hidden, true);
         update_user_option($current_user->ID, "mainwp_default_hide_actions_column", 1);
     }
     self::$sitesTable = new MainWPManageSites_List_Table();
 }
    public static function render()
    {
        if (!mainwp_current_user_can("dashboard", "manage_dashboard_settings")) {
            mainwp_do_not_have_permissions("manage dashboard settings");
            return;
        }
        $updated = MainWPOptions::handleSettingsPost();
        $updated |= MainWPManageSites::handleSettingsPost();
        $updated |= MainWPOfflineChecks::handleSettingsPost();
        $updated |= MainWPFootprint::handleSettingsPost();
        self::renderHeader('');
        ?>
        <?php 
        if ($updated) {
            ?>
        <div id="ajax-information-zone" class="updated"><p><?php 
            _e('Your settings have been saved.', 'mainwp');
            ?>
</p></div>
        <?php 
        }
        MainWPAPISettingsView::renderForumSignup();
        ?>

        <form method="POST" action="admin.php?page=Settings" id="mainwp-settings-page-form">
            <?php 
        MainWPOptions::renderSettings();
        MainWPManageSites::renderSettings();
        MainWPOfflineChecks::renderSettings();
        MainWPFootprint::renderSettings();
        MainWPAPISettingsView::renderSettings();
        ?>
            <p class="submit"><input type="submit" name="submit" id="submit" class="button-primary" value="<?php 
        _e('Save Settings', 'mainwp');
        ?>
"/>
            </p>             
        </form>
    <?php 
        self::renderFooter('');
    }