public static function render() { $uploadError = false; $uploadFile = false; if (isset($_REQUEST['upload'])) { if (isset($_FILES['file'])) { if (!function_exists('wp_handle_upload')) { require_once ABSPATH . 'wp-admin/includes/file.php'; } $uploadedfile = $_FILES['file']; $upload_overrides = array('test_form' => false); add_filter('upload_mimes', array('MainWPClone', 'upload_mimes')); $movefile = wp_handle_upload($uploadedfile, $upload_overrides); if ($movefile) { $uploadFile = str_replace(ABSPATH, '', $movefile['file']); } else { $uploadError = __('File could not be uploaded.', 'mainwp-child'); } } else { $uploadError = __('File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.', 'mainwp-child'); } } $sitesToClone = get_option('mainwp_child_clone_sites'); $uploadSizeInBytes = min(MainWPHelper::return_bytes(ini_get('upload_max_filesize')), MainWPHelper::return_bytes(ini_get('post_max_size'))); $uploadSize = MainWPHelper::human_filesize($uploadSizeInBytes); self::renderHeader(); ?> <div id="icon-options-general" class="icon32"><br></div><h2><?php _e('Clone or Restore', 'mainwp-child'); ?> </h2><?php if ($sitesToClone == '0') { echo '<div class="mainwp-child_info-box-red"><strong>' . __('Cloning is currently off - To turn on return to your main dashboard and turn cloning on on the Migrate/Clone page.', 'mainwp-child') . '</strong></div>'; return; } $error = false; MainWPHelper::getWPFilesystem(); global $wp_filesystem; if (!empty($wp_filesystem) && !$wp_filesystem->is_writable(WP_CONTENT_DIR) || empty($wp_filesystem) && !is_writable(WP_CONTENT_DIR)) { echo '<div class="mainwp-child_info-box-red"><strong>' . __('Your content directory is not writable. Please set 0755 permission to ', 'mainwp-child') . basename(WP_CONTENT_DIR) . '. (' . WP_CONTENT_DIR . ')</strong></div>'; $error = true; } ?> <div class="mainwp-child_info-box-green" style="display: none;"><?php _e('Cloning process completed successfully! You will now need to click ', 'mainwp-child'); ?> <a href="<?php echo admin_url('options-permalink.php'); ?> "><?php _e('here', 'mainwp-child'); ?> </a><?php _e(' to re-login to the admin and re-save permalinks.', 'mainwp-child'); ?> </div> <?php if ($uploadFile) { _e('Upload successful.', 'mainwp-child'); ?> <a href="#" id="mainwp-child_uploadclonebutton" class="button-primary" file="<?php echo $uploadFile; ?> "><?php _e('Clone/Restore Website', 'mainwp-child'); ?> </a><?php } else { if ($uploadError) { ?> <div class="mainwp-child_info-box-red"><?php echo $uploadError; ?> </div><?php } if (empty($sitesToClone)) { echo '<div class="mainwp-child_info-box-yellow"><strong>' . __('Cloning is currently on but no sites have been allowed, to allow sites return to your main dashboard and turn cloning on on the Migrate/Clone page.', 'mainwp-child') . '</strong></div>'; } else { ?> <form method="post" action=""> <div class="mainwp-child_select_sites_box"> <div class="postbox"> <div class="mainwp-child_displayby"><?php _e('Display by:', 'mainwp-child'); ?> <a class="mainwp-child_action left mainwp-child_action_down" href="#" id="mainwp-child_displayby_sitename"><?php _e('Site Name', 'mainwp-child'); ?> </a><a class="mainwp-child_action right" href="#" id="mainwp-child_displayby_url"><?php _e('URL', 'mainwp-child'); ?> </a></div><h2><?php _e('Clone Options', 'mainwp-child'); ?> </h2> <div class="inside"> <div id="mainwp-child_clonesite_select_site"> <?php foreach ($sitesToClone as $siteId => $siteToClone) { ?> <div class="clonesite_select_site_item" id="<?php echo $siteId; ?> " rand="<?php echo MainWPHelper::randString(5); ?> "> <div class="mainwp-child_size_label" size="<?php echo $siteToClone['size']; ?> "><?php echo $siteToClone['size']; ?> MB</div> <div class="mainwp-child_name_label"><?php echo $siteToClone['name']; ?> </div> <div class="mainwp-child_url_label"><?php echo MainWPHelper::getNiceURL($siteToClone['url']); ?> </div> </div> <?php } ?> </div> </div> <div class="mainwp-child_clonebutton_container"><?php if (!$error) { ?> <a href="#" id="mainwp-child_clonebutton" class="button-primary"><?php _e('Clone Website', 'mainwp-child'); ?> </a><?php } ?> </div> <div style="clear:both"></div> </div> </div> </form> <br /> <?php } $sitesToClone = get_option('mainwp_child_clone_sites'); ?> <div id="icon-options-general" class="icon32"><br></div><h2><strong><?php _e('Option 1:', 'mainwp-child'); ?> </strong> <?php _e('Restore/Clone From Backup', 'mainwp-child'); ?> </h2> <br /> <div class="mainwp-child_info-box-green"><?php _e('Upload backup in .zip format (Maximum filesize for your server settings: ', 'mainwp-child'); echo $uploadSize; ?> )</div> <i><?php _e('If you have a FULL backup created by your Network dashboard you may restore it by uploading here.', 'mainwp-child'); ?> <br /> <?php _e('A database only backup will not work.', 'mainwp-child'); ?> </i><br /><br /> <form action="<?php echo admin_url('admin.php?page=' . ($sitesToClone != '0' ? 'MainWPClone' : 'MainWPRestore') . '&upload=yes'); ?> " method="post" enctype="multipart/form-data"><input type="file" name="file" id="file" /> <input type="submit" name="submit" id="filesubmit" disabled="disabled" value="<?php _e('Clone/Restore Website', 'mainwp-child'); ?> " /></form> <?php } self::renderCloneFromServer(); self::renderJavaScript(); }
function settings() { if (isset($_POST['submit'])) { if (isset($_POST['requireUniqueSecurityId'])) { MainWPHelper::update_option('mainwp_child_uniqueId', MainWPHelper::randString(8)); } else { MainWPHelper::update_option('mainwp_child_uniqueId', ''); } } ?> <div class="wrap"> <div id="icon-options-general" class="icon32"><br></div><h2><?php _e($this->branding . ' Settings', 'mainwp-child'); ?> </h2> <div class="postbox" style="margin-top: 6em;"> <h3 class="hndle" style="margin: 0 !important; padding: .5em 1em;"><span><?php _e('Connection Settings', 'mainwp-child'); ?> </span></h3> <div class="inside"> <form method="post" action=""> <div class="howto"><?php _e('The Unique Security ID adds additional protection between the Child plugin and your Main Dashboard. The Unique Security ID will need to match when being added to the Main Dashboard. This is additional security and should not be needed in most situations.', 'mainwp-child'); ?> </div> <div style="margin: 1em 0 4em 0;"> <input name="requireUniqueSecurityId" type="checkbox" id="requireUniqueSecurityId" <?php if (get_option('mainwp_child_uniqueId') != '') { echo 'checked'; } ?> /> <label for="requireUniqueSecurityId" style="font-size: 15px;"><?php _e('Require Unique Security ID', 'mainwp-child'); ?> </label> </div> <div> <?php if (get_option('mainwp_child_uniqueId') != '') { echo '<span style="border: 1px dashed #e5e5e5; background: #fafafa; font-size: 24px; padding: 1em 2em;">' . __('Your Unique Security ID is:', 'mainwp-child') . ' <span style="font-weight: bold; color: #7fb100;">' . get_option('mainwp_child_uniqueId') . '</span></span>'; } ?> </div> <p class="submit" style="margin-top: 4em;"> <input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e('Save Changes', 'mainwp-child'); ?> "> </p> </form> </div> </div> </div> <?php }