333 lines
No EOL
13 KiB
PHP
Executable file
333 lines
No EOL
13 KiB
PHP
Executable file
<?php
|
|
$dbh = DUPX_DB::connect($_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass'], $_POST['dbname'], $_POST['dbport']);
|
|
|
|
$all_tables = DUPX_DB::getTables($dbh);
|
|
$active_plugins = DUPX_U::getActivePlugins($dbh);
|
|
|
|
$old_path = $GLOBALS['FW_WPROOT'];
|
|
$new_path = DUPX_U::setSafePath($GLOBALS['CURRENT_ROOT_PATH']);
|
|
$new_path = ((strrpos($old_path, '/') + 1) == strlen($old_path)) ? DUPX_U::addSlash($new_path) : $new_path;
|
|
?>
|
|
|
|
|
|
<!-- =========================================
|
|
VIEW: STEP 3- INPUT -->
|
|
<form id='s3-input-form' method="post" class="content-form">
|
|
|
|
<!-- POST PARAMS -->
|
|
<input type="hidden" name="action_ajax" value="3" />
|
|
<input type="hidden" name="action_step" value="3" />
|
|
<input type="hidden" name="logging" value="<?php echo $_POST['logging'] ?>" />
|
|
<input type="hidden" name="retain_config" value="<?php echo $_POST['retain_config']; ?>" />
|
|
<input type="hidden" name="archive_name" value="<?php echo $_POST['archive_name'] ?>" />
|
|
<input type="hidden" name="json" value="<?php echo $_POST['json']; ?>" />
|
|
<input type="hidden" name="dbhost" value="<?php echo $_POST['dbhost'] ?>" />
|
|
<input type="hidden" name="dbport" value="<?php echo $_POST['dbport'] ?>" />
|
|
<input type="hidden" name="dbuser" value="<?php echo $_POST['dbuser'] ?>" />
|
|
<input type="hidden" name="dbpass" value="<?php echo htmlentities($_POST['dbpass']) ?>" />
|
|
<input type="hidden" name="dbname" value="<?php echo $_POST['dbname'] ?>" />
|
|
<input type="hidden" name="dbcharset" value="<?php echo $_POST['dbcharset'] ?>" />
|
|
<input type="hidden" name="dbcollate" value="<?php echo $_POST['dbcollate'] ?>" />
|
|
|
|
<div class="dupx-logfile-link"><a href="installer-log.txt?now=<?php echo $GLOBALS['NOW_DATE'] ?>" target="install_log">installer-log.txt</a></div>
|
|
<div class="hdr-main">
|
|
Step <span class="step">3</span> of 4: Update Data
|
|
</div>
|
|
|
|
<!-- ====================================
|
|
NEW SETTINGS
|
|
==================================== -->
|
|
<div class="hdr-sub1" style="margin-top:8px" data-type="toggle" data-target="#s3-new-settings">
|
|
<a href="javascript:void(0)"><i class="dupx-minus-square"></i> New Settings</a>
|
|
</div>
|
|
<div id='s3-new-settings'>
|
|
<table class="s3-table-inputs">
|
|
<tr>
|
|
<td style="width:80px">URL:</td>
|
|
<td>
|
|
<input type="text" name="url_new" id="url_new" value="" />
|
|
<a href="javascript:DUPX.getNewURL('url_new')" style="font-size:12px">get</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Path:</td>
|
|
<td><input type="text" name="path_new" id="path_new" value="<?php echo $new_path ?>" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Title:</td>
|
|
<td><input type="text" name="blogname" id="blogname" value="<?php echo $GLOBALS['FW_BLOGNAME'] ?>" /></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<br/><br/>
|
|
|
|
<!-- ====================================
|
|
OPTIONS
|
|
==================================== -->
|
|
<div class="hdr-sub1" data-type="toggle" data-target="#s3-adv-opts">
|
|
<a href="javascript:void(0)"><i class="dupx-plus-square"></i> Options</a>
|
|
</div>
|
|
<div id='s3-adv-opts' style="display:none;">
|
|
<div class="help-target"><a href="?help#help-s3" target="_blank">[help]</a></div>
|
|
<br/>
|
|
|
|
<div class="hdr-sub3">New Admin Account</div>
|
|
<div style="text-align: center; margin-top:7px">
|
|
<i style="color:gray;font-size: 11px">This feature is optional. If the username already exists the account will NOT be created or updated.</i>
|
|
</div>
|
|
<table class="s3-table-inputs">
|
|
<tr>
|
|
<td>Username:</td>
|
|
<td><input type="text" name="wp_username" id="wp_username" value="" title="4 characters minimum" placeholder="(4 or more characters)" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">Password:</td>
|
|
<td><input type="text" name="wp_password" id="wp_password" value="" title="6 characters minimum" placeholder="(6 or more characters)" /></td>
|
|
</tr>
|
|
</table>
|
|
<br/><br/>
|
|
|
|
<div class="hdr-sub3">Scan Options</div>
|
|
<table class="s3-table-inputs">
|
|
<tr>
|
|
<td>Site URL:</td>
|
|
<td>
|
|
<input type="text" name="siteurl" id="siteurl" value="" />
|
|
<a href="javascript:DUPX.getNewURL('siteurl')" style="font-size:12px">get</a><br/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Old URL:</td>
|
|
<td>
|
|
<input type="text" name="url_old" id="url_old" value="<?php echo $GLOBALS['FW_URL_OLD'] ?>" readonly="readonly" class="readonly" />
|
|
<a href="javascript:DUPX.editOldURL()" id="edit_url_old" style="font-size:12px">edit</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Old Path:</td>
|
|
<td>
|
|
<input type="text" name="path_old" id="path_old" value="<?php echo $old_path ?>" readonly="readonly" class="readonly" />
|
|
<a href="javascript:DUPX.editOldPath()" id="edit_path_old" style="font-size:12px">edit</a>
|
|
</td>
|
|
</tr>
|
|
</table><br/>
|
|
|
|
<table>
|
|
<tr>
|
|
<td style="padding-right:10px">
|
|
<b>Scan Tables:</b>
|
|
<div class="s3-allnonelinks">
|
|
<a href="javascript:void(0)" onclick="$('#tables option').prop('selected',true);">[All]</a>
|
|
<a href="javascript:void(0)" onclick="$('#tables option').prop('selected',false);">[None]</a>
|
|
</div><br style="clear:both" />
|
|
<select id="tables" name="tables[]" multiple="multiple" style="width:315px; height:100px">
|
|
<?php
|
|
foreach( $all_tables as $table ) {
|
|
echo '<option selected="selected" value="' . DUPX_U::escapeHTML( $table ) . '">' . $table . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
|
|
</td>
|
|
<td valign="top">
|
|
<b>Activate Plugins:</b>
|
|
<div class="s3-allnonelinks">
|
|
<a href="javascript:void(0)" onclick="$('#plugins option').prop('selected',true);">[All]</a>
|
|
<a href="javascript:void(0)" onclick="$('#plugins option').prop('selected',false);">[None]</a>
|
|
</div><br style="clear:both" />
|
|
<select id="plugins" name="plugins[]" multiple="multiple" style="width:315px; height:100px">
|
|
<?php
|
|
foreach ($active_plugins as $plugin) {
|
|
echo '<option selected="selected" value="' . DUPX_U::escapeHTML( $plugin ) . '">' . dirname($plugin) . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br/>
|
|
|
|
<input type="checkbox" name="fullsearch" id="fullsearch" value="1" /> <label for="fullsearch">Use Database Full Search Mode </label><br/>
|
|
<input type="checkbox" name="postguid" id="postguid" value="1" /> <label for="postguid">Keep Post GUID Unchanged</label><br/>
|
|
<br/><br/>
|
|
|
|
<!-- WP-CONFIG -->
|
|
<div class="hdr-sub3">WP-Config File</div>
|
|
<table class="dupx-opts dupx-advopts">
|
|
<tr>
|
|
<td>Cache:</td>
|
|
<td style="width:125px"><input type="checkbox" name="cache_wp" id="cache_wp" /> <label for="cache_wp">Keep Enabled</label></td>
|
|
<td><input type="checkbox" name="cache_path" id="cache_path" /> <label for="cache_path">Keep Home Path</label></td>
|
|
</tr>
|
|
<tr>
|
|
<td>SSL:</td>
|
|
<td><input type="checkbox" name="ssl_admin" id="ssl_admin" /> <label for="ssl_admin">Enforce on Admin</label></td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
<br/><br/><br/>
|
|
<br/><br/>
|
|
</div>
|
|
|
|
<div class="dupx-footer-buttons">
|
|
<input id="dup-step3-next" class="default-btn" type="button" value=" Next " onclick="DUPX.runUpdate()" />
|
|
</div>
|
|
</form>
|
|
|
|
|
|
<!-- =========================================
|
|
VIEW: STEP 3 - AJAX RESULT
|
|
========================================= -->
|
|
<form id='s3-result-form' method="post" class="content-form" style="display:none">
|
|
|
|
<div class="dupx-logfile-link"><a href="installer-log.txt" target="install_log">installer-log.txt</a></div>
|
|
<div class="hdr-main">
|
|
Step <span class="step">3</span> of 4: Update Data
|
|
</div>
|
|
|
|
<!-- POST PARAMS -->
|
|
<div class="dupx-debug">
|
|
<input type="hidden" name="action_step" value="4" />
|
|
<input type="hidden" name="archive_name" value="<?php echo $_POST['archive_name'] ?>" />
|
|
<input type="hidden" name="retain_config" value="<?php echo $_POST['retain_config']; ?>" />
|
|
<input type="hidden" name="url_new" id="ajax-url_new" />
|
|
<input type="hidden" name="json" id="ajax-json" />
|
|
<br/>
|
|
<input type='submit' value='manual submit'>
|
|
</div>
|
|
|
|
<!-- PROGRESS BAR -->
|
|
<div id="progress-area">
|
|
<div style="width:500px; margin:auto">
|
|
<h3>Updating Data Replacements Please Wait...</h3>
|
|
<div id="progress-bar"></div>
|
|
<i>This may take several minutes</i>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- AJAX SYSTEM ERROR -->
|
|
<div id="ajaxerr-area" style="display:none">
|
|
<p>Please try again an issue has occurred.</p>
|
|
<div style="padding: 0px 10px 10px 10px;">
|
|
<div id="ajaxerr-data">An unknown issue has occurred with the update data set up process. Please see the installer-log.txt file for more details.</div>
|
|
<div style="text-align:center; margin:10px auto 0px auto">
|
|
<input type="button" class="default-btn" onclick='DUPX.hideErrorResult2()' value="« Try Again" /><br/><br/>
|
|
<i style='font-size:11px'>See online help for more details at <a href='https://snapcreek.com/ticket?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_campaign=problem_resolution&utm_content=inst_step3_ajax' target='_blank'>snapcreek.com</a></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
<script>
|
|
/**
|
|
* Timeout (10000000 = 166 minutes) */
|
|
DUPX.runUpdate = function()
|
|
{
|
|
//Validation
|
|
var wp_username = $.trim($("#wp_username").val()).length || 0;
|
|
var wp_password = $.trim($("#wp_password").val()).length || 0;
|
|
|
|
if ( $.trim($("#url_new").val()) == "" ) {alert("The 'New URL' field is required!"); return false;}
|
|
if ( $.trim($("#siteurl").val()) == "" ) {alert("The 'Site URL' field is required!"); return false;}
|
|
if (wp_username >= 1 && wp_username < 4) {alert("The New Admin Account 'Username' must be four or more characters"); return false;}
|
|
if (wp_username >= 4 && wp_password < 6) {alert("The New Admin Account 'Password' must be six or more characters"); return false;}
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
timeout: 1800000,
|
|
dataType: "json",
|
|
url: window.location.href,
|
|
data: $('#s3-input-form').serialize(),
|
|
beforeSend: function() {
|
|
DUPX.showProgressBar();
|
|
$('#s3-input-form').hide();
|
|
$('#s3-result-form').show();
|
|
},
|
|
success: function(data){
|
|
if (typeof(data) != 'undefined' && data.step3.pass == 1) {
|
|
$("#ajax-url_new").val($("#url_new").val());
|
|
$("#ajax-json").val(escape(JSON.stringify(data)));
|
|
<?php if (! $GLOBALS['DUPX_DEBUG']) : ?>
|
|
setTimeout(function(){$('#s3-result-form').submit();}, 500);
|
|
<?php endif; ?>
|
|
$('#progress-area').fadeOut(1000);
|
|
} else {
|
|
DUPX.hideProgressBar();
|
|
}
|
|
},
|
|
error: function(xhr) {
|
|
var status = "<b>Server Code:</b> " + xhr.status + "<br/>";
|
|
status += "<b>Status:</b> " + xhr.statusText + "<br/>";
|
|
status += "<b>Response:</b> " + xhr.responseText + "";
|
|
status += "<hr/><b>Additional Troubleshooting Tips:</b><br/>";
|
|
status += "- Check the <a href='installer-log.txt' target='install_log'>installer-log.txt</a> file for warnings or errors.<br/>";
|
|
status += "- Check the web server and PHP error logs. <br/>";
|
|
status += "- For timeout issues visit the <a href='https://snapcreek.com/duplicator/docs/faqs-tech/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_campaign=problem_resolution&utm_content=inst_step3_ajax_rundepl#faq-trouble-100-q' target='_blank'>Timeout FAQ Section</a><br/>";
|
|
$('#ajaxerr-data').html(status);
|
|
DUPX.hideProgressBar();
|
|
}
|
|
});
|
|
}
|
|
|
|
/** Returns the windows active url */
|
|
DUPX.getNewURL = function(id)
|
|
{
|
|
var filename= window.location.pathname.split('/').pop() || 'installer.php' ;
|
|
var path = window.location.href.replace(filename, '').replace(/\/$/, '');
|
|
$("#" + id).val(path);
|
|
}
|
|
|
|
/** Allows user to edit the package url */
|
|
DUPX.editOldURL = function()
|
|
{
|
|
var msg = 'This is the URL that was generated when the package was created.\n';
|
|
msg += 'Changing this value may cause issues with the install process.\n\n';
|
|
msg += 'Only modify this value if you know exactly what the value should be.\n';
|
|
msg += 'See "General Settings" in the WordPress Administrator for more details.\n\n';
|
|
msg += 'Are you sure you want to continue?';
|
|
|
|
if (confirm(msg)) {
|
|
$("#url_old").removeAttr('readonly');
|
|
$("#url_old").removeClass('readonly');
|
|
$('#edit_url_old').hide('slow');
|
|
}
|
|
}
|
|
|
|
/** Allows user to edit the package path */
|
|
DUPX.editOldPath = function()
|
|
{
|
|
var msg = 'This is the SERVER URL that was generated when the package was created.\n';
|
|
msg += 'Changing this value may cause issues with the install process.\n\n';
|
|
msg += 'Only modify this value if you know exactly what the value should be.\n';
|
|
msg += 'Are you sure you want to continue?';
|
|
|
|
if (confirm(msg)) {
|
|
$("#path_old").removeAttr('readonly');
|
|
$("#path_old").removeClass('readonly');
|
|
$('#edit_path_old').hide('slow');
|
|
}
|
|
}
|
|
|
|
/** Go back on AJAX result view */
|
|
DUPX.hideErrorResult2 = function()
|
|
{
|
|
$('#s3-result-form').hide();
|
|
$('#s3-input-form').show(200);
|
|
}
|
|
|
|
//DOCUMENT LOAD
|
|
$(document).ready(function()
|
|
{
|
|
DUPX.getNewURL('url_new');
|
|
DUPX.getNewURL('siteurl');
|
|
$("*[data-type='toggle']").click(DUPX.toggleClick);
|
|
$("#wp_password").passStrength({
|
|
shortPass: "top_shortPass",
|
|
badPass: "top_badPass",
|
|
goodPass: "top_goodPass",
|
|
strongPass: "top_strongPass",
|
|
baseStyle: "top_testresult",
|
|
userid: "#wp_username",
|
|
messageloc: 1 });
|
|
});
|
|
</script>
|