Changed source root directory

This commit is contained in:
2026-03-05 16:30:11 +01:00
parent dc85447ee1
commit 538f85d7a2
5868 changed files with 749734 additions and 99 deletions

View File

@@ -0,0 +1,9 @@
<Files *.php>
Order Deny,Allow
Deny from all
</Files>
<Files index.php>
Order Allow,Deny
Allow from all
</Files>

View File

@@ -0,0 +1,25 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<div id="installer-switch-wrapper">
<span class="btn-group">
<button type="button" id="s1-switch-template-btn-basic" class="s1-switch-template-btn active" title="Enable basic installer mode">
Basic
</button>
<button
type="button"
id="s1-switch-template-btn-advanced"
class="s1-switch-template-btn"
data-template="<?php echo DUPX_Template::TEMPLATE_ADVANCED; ?>"
title="Enable advanced installer mode"
>
Advanced
</button>
</span>
</div>

View File

@@ -0,0 +1,31 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
?>
<div id="next_action" class="bottom-step-action no-display" >
<div class="footer-buttons">
<div class="content-left">
<?php
dupxTplRender('pages-parts/step1/terms-and-conditions');
PrmMng::getInstance()->getHtmlFormParam(PrmMng::PARAM_ACCEPT_TERM_COND);
?>
</div>
<div class="content-right" >
<button
id="s1-deploy-btn"
type="button"
title="<?php echo DUPX_U::esc_attr('To enable this button the checkbox above under the "Terms & Notices" must be checked.'); ?>"
class="default-btn">
Next <i class="fa fa-caret-right"></i>
</button>
</div>
</div>
</div>

View File

@@ -0,0 +1,8 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;

View File

@@ -0,0 +1,16 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/head/header-main', array(
'htmlTitle' => 'Step <span class="step">1</span> of 2: Deployment ' .
'<div class="sub-header">This step will extract the archive file, install & update the database.</div>',
'showInstallerMode' => true,
'showSwitchView' => true,
'showInstallerLog' => false
));

View File

@@ -0,0 +1,12 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/head/header-main', array(
'htmlTitle' => 'Step <span class="step">2</span> of 2: Test Site'
));

View File

@@ -0,0 +1,22 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
use Duplicator\Libs\Snap\SnapJson;
$nextStepPrams = array(
PrmMng::PARAM_CTRL_ACTION => 'ctrl-step4',
DUPX_Security::CTRL_TOKEN => DUPX_CSRF::generate('ctrl-step4')
);
?>
<script>
DUPX.deployStep1 = function () {
DUPX.oneStepDeploy($('#s1-input-form'), <?php echo SnapJson::jsonEncode($nextStepPrams); ?>);
};
</script>

View File

@@ -0,0 +1,23 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<!DOCTYPE html>
<html>
<?php dupxTplRender('pages-parts/boot-error/header'); ?>
<body id="page-boot-error">
<div>
<h1>DUPLICATOR: ISSUE</h1>
Problem on duplicator init.<br>
Message: <b><?php echo htmlspecialchars($message); ?></b>
</div>
<pre><?php
echo $trace;
?></pre>
</body>
</html>

View File

@@ -0,0 +1,32 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/page-header', array(
'paramView' => 'exception',
'bodyId' => 'page-exception',
'bodyClasses' => $bodyClasses
));
?>
<div id="content-inner">
<?php
dupxTplRender('pages-parts/head/header-main', array(
'htmlTitle' => 'Exception error'
));
?>
<div id="main-content-wrapper" >
<?php
dupxTplRender('pages-parts/exception/main', array(
'exception' => $exception
));
?>
</div>
</div>
<?php
dupxTplRender('pages-parts/page-footer');

View File

@@ -0,0 +1,22 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/page-header', array(
'paramView' => 'help',
'bodyId' => 'page-help',
'bodyClasses' => $bodyClasses
));
?>
<div id="content-inner">
<div id="main-content-wrapper" >
<?php dupxTplRender('pages-parts/help/main'); ?>
</div>
</div>
<?php
dupxTplRender('pages-parts/page-footer');

View File

@@ -0,0 +1,29 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/page-header', array(
'paramView' => 'secure',
'bodyId' => 'page-secure',
'bodyClasses' => $bodyClasses,
'skipTopMessages' => true
));
?>
<div id="content-inner">
<?php
dupxTplRender('pages-parts/head/header-main', array(
'htmlTitle' => 'Installer Security'
));
?>
<div id="main-content-wrapper" >
<?php dupxTplRender('pages-parts/secure/main'); ?>
</div>
</div>
<?php
dupxTplRender('scripts/secure-init');
dupxTplRender('pages-parts/page-footer');

View File

@@ -0,0 +1,23 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<!DOCTYPE html>
<html>
<?php dupxTplRender('pages-parts/boot-error/header'); ?>
<body id="page-security-error" >
<div>
<h2>DUPLICATOR: SECURITY CHECK</h2>
An invalid request was made.<br>
Message: <b><?php echo htmlspecialchars($message); ?></b><br>
<br>
In order to protect this request from unauthorized access <b>please restart this install process</b>.<br/>
<small>Reopen your browser and browse to the http(s)://yoursite.com/[hash]_installer.php file again.</small>
</div>
</body>
</html>

View File

@@ -0,0 +1,30 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/page-header', array(
'paramView' => 'step1',
'bodyId' => 'page-step1',
'bodyClasses' => $bodyClasses
));
?>
<div id="content-inner">
<?php dupxTplRender('pages-parts/step1/step-title'); ?>
<div id="main-content-wrapper" class="<?php echo DUPX_Validation_manager::validateOnLoad() ? 'no-display' : ''; ?>">
<?php dupxTplRender('pages-parts/step1/main'); ?>
</div>
<?php
dupxTplRender('parts/ajax-error');
dupxTplRender('parts/progress-bar', array(
'display' => DUPX_Validation_manager::validateOnLoad()
));
?>
</div>
<?php
dupxTplRender('scripts/step1-init');
dupxTplRender('pages-parts/page-footer');

View File

@@ -0,0 +1,28 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/page-header', array(
'paramView' => 'step2',
'bodyId' => 'page-step2',
'bodyClasses' => $bodyClasses
));
?>
<div id="content-inner">
<?php dupxTplRender('pages-parts/step2/step-title'); ?>
<div id="main-content-wrapper" >
<?php dupxTplRender('pages-parts/step2/main'); ?>
</div>
<?php
dupxTplRender('parts/ajax-error');
dupxTplRender('parts/progress-bar');
?>
</div>
<?php
dupxTplRender('scripts/step2-init');
dupxTplRender('pages-parts/page-footer');

View File

@@ -0,0 +1,28 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/page-header', array(
'paramView' => 'step3',
'bodyId' => 'page-step3',
'bodyClasses' => $bodyClasses
));
?>
<div id="content-inner">
<?php dupxTplRender('pages-parts/step3/step-title'); ?>
<div id="main-content-wrapper" >
<?php dupxTplRender('pages-parts/step3/main'); ?>
</div>
<?php
dupxTplRender('parts/ajax-error');
dupxTplRender('parts/progress-bar');
?>
</div>
<?php
dupxTplRender('scripts/step3-init');
dupxTplRender('pages-parts/page-footer');

View File

@@ -0,0 +1,28 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/page-header', array(
'paramView' => 'step4',
'bodyId' => 'page-step4',
'bodyClasses' => $bodyClasses
));
?>
<div id="content-inner">
<?php dupxTplRender('pages-parts/step4/step-title'); ?>
<div id="main-content-wrapper" >
<?php dupxTplRender('pages-parts/step4/main'); ?>
</div>
<?php
dupxTplRender('parts/ajax-error');
dupxTplRender('parts/progress-bar');
?>
</div>
<?php
dupxTplRender('scripts/step4-init');
dupxTplRender('pages-parts/page-footer');

View File

@@ -0,0 +1,14 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
/* Variables */
/* @var $bodyId string */
/* @var $bodyClasses string */
?>
<body id="<?php echo $bodyId; ?>" class="<?php echo $bodyClasses; ?>" >

View File

@@ -0,0 +1,23 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="noindex,nofollow">
<title>Duplicator - issue</title>
<link rel="apple-touch-icon" sizes="180x180" href="favicon/pro01_apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon/pro01_favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon/pro01_favicon-16x16.png">
<link rel="manifest" href="favicon/site.webmanifest">
<link rel="mask-icon" href="favicon/pro01_safari-pinned-tab.svg" color="#5bbad5">
<link rel="shortcut icon" href="favicon/pro01_favicon.ico">
<meta name="msapplication-TileColor" content="#00aba9">
<meta name="msapplication-config" content="favicon/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
</head>

View File

@@ -0,0 +1,44 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
use Duplicator\Libs\Snap\SnapString;
$recoveryLink = PrmMng::getInstance()->getValue(PrmMng::PARAM_RECOVERY_LINK);
if (SnapString::isHTML($exception->getMessage())) {
$message = $exception->getMessage();
} else {
$message = '<b>' . DUPX_U::esc_html($exception->getMessage()) . '</b>';
}
?>
<div id="ajaxerr-data">
<b style="color:#B80000;">INSTALL ERROR!</b>
<p>
Message: <?php echo $message; ?><br>
Please see the <?php DUPX_View_Funcs::installerLogLink(); ?> file for more details.
</p>
<hr>
Trace:
<pre class="exception-trace"><?php
echo $exception->getTraceAsString();
?></pre>
</div>
<?php if (!empty($recoveryLink)) { ?>
<p class="text-center">
<a href="<?php echo DUPX_U::esc_url($recoveryLink); ?>" class="default-btn" target="_parent">
<i class="fas fa-undo-alt"></i> Restore Recovery Point
</a>
</p>
<?php } ?>
<div style="text-align:center; margin:10px auto 0px auto">
<?php $url = DUPX_Constants::DUP_SITE_URL . 'contact/?form=1'; ?>
<i style='font-size:11px'>See online help for more details at <a href='<?php echo DUPX_U::esc_attr($url); ?>' target='_blank'>duplicator.com</a></i>
</div>

View File

@@ -0,0 +1,47 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
$versionDup = DUPX_ArchiveConfig::getInstance()->version_dup;
$cssList = array(
'assets/normalize.css',
'assets/font-awesome/css/all.min.css',
'assets/fonts/dots/dots-font.css',
'assets/js/password-strength/password.css',
'assets/js/tippy/dup-pro-tippy.css',
'vendor/select2/css/select2.css'
);
$jsList = array(
'assets/inc.libs.js',
'assets/js/popper/popper.min.js',
'assets/js/tippy/tippy-bundle.umd.min.js',
'assets/js/duplicator-tooltip.js',
'vendor/select2/js/select2.js'
);
/* CSS */
foreach ($cssList as $css) {
?>
<link rel="stylesheet" href="<?php echo DUPX_INIT_URL . '/' . $css . '?ver=' . $versionDup; ?>" type="text/css" media="all" >
<?php
}
require(DUPX_INIT . '/assets/inc.libs.css.php');
require(DUPX_INIT . '/assets/inc.css.php');
/* JAVASCRIPT */
foreach ($jsList as $js) {
?>
<script src="<?php echo DUPX_INIT_URL . '/' . $js . '?ver=' . $versionDup; ?>" ></script>
<?php
}
require(DUPX_INIT . '/assets/inc.js.php');
dupxTplRender('scripts/dupx-functions');
?>
<script type="text/javascript" src="assets/js/password-strength/password.js"></script>

View File

@@ -0,0 +1,8 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;

View File

@@ -0,0 +1,41 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
// @var $showInstallerMode bool
// @var $showSwitchView bool
//$showInstallerMode = !isset($showInstallerMode) ? true : $showInstallerMode;
$showInstallerMode = false;
$showSwitchView = !isset($showSwitchView) ? false : $showSwitchView;
$showInstallerLog = !isset($showInstallerLog) ? false : $showInstallerLog;
?>
<div id="header-main-wrapper" >
<div class="hdr-main">
<?php echo $htmlTitle; ?>
</div>
<div class="hdr-secodary">
<?php if ($showInstallerMode) { ?>
<div class="dupx-modes">
<?php echo DUPX_InstallerState::getInstance()->getHtmlModeHeader(); ?>
</div>
<?php
}
if ($showInstallerLog) {
?>
<div class="installer-log" >
<?php DUPX_View_Funcs::installerLogLink(); ?>
</div>
<?php
}
if ($showSwitchView) {
dupxTplRender('pages-parts/step1/actions/switch-template');
}
?>
</div>
</div>

View File

@@ -0,0 +1,22 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
$archiveConfig = DUPX_ArchiveConfig::getInstance();
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="noindex,nofollow">
<link rel="apple-touch-icon" sizes="180x180" href="favicon/pro01_apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="favicon/pro01_favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon/pro01_favicon-16x16.png">
<link rel="manifest" href="favicon/site.webmanifest">
<link rel="mask-icon" href="favicon/pro01_safari-pinned-tab.svg">
<link rel="shortcut icon" href="favicon/pro01_favicon.ico">
<meta name="msapplication-TileColor" content="#00aba9">
<meta name="msapplication-config" content="favicon/browserconfig.xml">
<meta name="theme-color" content="#ffffff">

View File

@@ -0,0 +1,50 @@
<?php
$archiveConfig = DUPX_ArchiveConfig::getInstance();
?>
<div id="dialog-server-details" title="Setup Information" style="display:none">
<!-- DETAILS -->
<div class="dlg-serv-info">
<?php
$ini_path = php_ini_loaded_file();
$ini_max_time = ini_get('max_execution_time');
$ini_memory = ini_get('memory_limit');
$ini_error_path = ini_get('error_log');
?>
<div class="hdr">SERVER DETAILS</div>
<label>Try CDN Request:</label>
<?php echo (DUPX_U::tryCDN("ajax.aspnetcdn.com", 443) && DUPX_U::tryCDN("ajax.googleapis.com", 443)) ? 'Yes' : 'No'; ?><br/>
<label>Web Server:</label> <?php echo DUPX_U::esc_html($_SERVER['SERVER_SOFTWARE']); ?><br/>
<label>PHP Version:</label> <?php echo DUPX_U::esc_html(phpversion()); ?><br/>
<label>PHP SAPI:</label> <?php echo DUPX_U::esc_html(php_sapi_name()); ?><br/>
<label>PHP ZIP Archive:</label> <?php echo class_exists('ZipArchive') ? 'Is Installed' : 'Not Installed'; ?> <br/>
<label>PHP max_execution_time:</label> <?php echo $ini_max_time === false ? 'unable to find' : DUPX_U::esc_html($ini_max_time); ?><br/>
<label>PHP memory_limit:</label> <?php echo empty($ini_memory) ? 'unable to find' : DUPX_U::esc_html($ini_memory); ?><br/>
<label>Error Log Path:</label> <?php echo empty($ini_error_path) ? 'unable to find' : '/dup-installer/php_error__[HASH].log' ?><br/>
<br/>
<div class="hdr">PACKAGE BUILD DETAILS</div>
<label>Plugin Version:</label> <?php echo DUPX_U::esc_html($archiveConfig->version_dup); ?><br/>
<label>WordPress Version:</label> <?php echo DUPX_U::esc_html($archiveConfig->version_wp); ?><br/>
<label>PHP Version:</label> <?php echo DUPX_U::esc_html($archiveConfig->version_php); ?><br/>
<label>Database Version:</label> <?php echo DUPX_U::esc_html($archiveConfig->version_db); ?><br/>
<label>Operating System:</label> <?php echo DUPX_U::esc_html($archiveConfig->version_os); ?><br/>
</div>
</div>
<script>
DUPX.openServerDetails = function ()
{
$("#dialog-server-details").dialog({
resizable: false,
height: "auto",
width: 700,
modal: true,
position: {my: 'top', at: 'top+150'},
buttons: {"OK": function () {
$(this).dialog("close");
}}
});
}
</script>

View File

@@ -0,0 +1,13 @@
<?php
use Duplicator\Installer\Utils\InstallerLinkManager;
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<div id="addtional-help-content">
For additional help please visit
<a href="<?php echo InstallerLinkManager::getDocUrl('', 'install', 'additional help'); ?>" target="_blank">
Duplicator Migration and Backup Online Help
</a>
</div>

View File

@@ -0,0 +1,59 @@
<?php
/**
*
* @package templates/default
*/
use Duplicator\Installer\Utils\InstallerLinkManager;
use Duplicator\Libs\Snap\SnapUtil;
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
$archiveConfig = DUPX_ArchiveConfig::getInstance();
$open_section = SnapUtil::filterInputDefaultSanitizeString(INPUT_GET, 'open_section');
?>
<!-- =========================================
HELP FORM -->
<div id="main-help">
<div class="help-online"><br/>
<i class="far fa-file-alt fa-sm"></i> For complete help visit <br/>
<a href="<?php echo InstallerLinkManager::getDocUrl('', 'install', 'help header'); ?>" target="_blank">
Duplicator Migration and Backup Online Help
</a> <br/>
<small>The <sup class="hlp-pro-lbl">Pro</sup> tag indicates the feature is only available in Duplicator Pro</small>
</div>
<?php
$step_pass_data = array(
'open_section' => $open_section,
);
dupxTplRender('pages-parts/help/steps/security', $step_pass_data);
dupxTplRender('pages-parts/help/steps/step-1', $step_pass_data);
dupxTplRender('pages-parts/help/steps/step-2', $step_pass_data);
dupxTplRender('pages-parts/help/steps/step-3', $step_pass_data);
dupxTplRender('pages-parts/help/steps/step-4', $step_pass_data);
dupxTplRender('pages-parts/help/addtional-help');
?>
</div>
<script>
$(document).ready(function ()
{
//Disable href for toggle types
$("section.expandable .expand-header").click(function () {
var section = $(this).parent();
if (section.hasClass('open')) {
section.removeClass('open').addClass('close');
} else {
section.removeClass('close').addClass('open');
}
});
<?php if (!empty($open_section)) { ?>
$("html, body").animate({scrollTop: $('#<?php echo $open_section; ?>').offset().top}, 1000);
<?php } ?>
});
</script>
<!-- END OF VIEW HELP -->

View File

@@ -0,0 +1,132 @@
<?php
use Duplicator\Installer\Utils\InstallerLinkManager;
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<!-- ============================================
SECURITY STEP
============================================== -->
<?php
$sectionId = 'section-security';
$expandClass = $sectionId == $open_section ? 'open' : 'close';
?>
<section id="<?php echo $sectionId; ?>" class="expandable <?php echo $expandClass; ?>" >
<h2 class="header expand-header">Installer Security</h2>
<div class="content" >
<div id="dup-help-installer" class="help-page">
The installer for Duplicator supports these three security modes. Secure-file name, basic password and archive encryption (pro only).
<br/><br/>
<table class="help-opt">
<tr>
<th class="col-opt">Option</th>
<th>Details</th>
</tr>
<tr>
<td class="col-opt"><i class="fas fa-lock"></i> Password</td>
<td>
In the upper right corner of the installer is an icon that indicates if the installer is password protected (locked) or
no password (unlocked).
<br/><br/>
<b><i class="fas fa-lock"></i> Locked</b>
"Locked" means a password is protecting each step of the installer. This option is recommended on all installers that are accessible
via a public URL. The option is not required but strongly recommended, unless using secure-file name or archive encryption.
<br/><br/>
<b><i class="fas fa-unlock"></i> Unlocked</b>
"Unlocked" indicates the installer is not password protected. While it is not required to have a password set it is recommended.
If your URL has little to no traffic or has never been the target of an attack then running the installer quickly and then removing the
installer files without a password could be performed but is not recommended, unless using secure-file name or archive encryption.
</td>
</tr>
<tr>
<td class="col-opt">
<i class="fas fa-shield-alt"></i> Secure-File <br/>
<small>Archive File Name</small>
</td>
<td>
When Duplicator creates a site archive it generates three separate files. The archive.zip/daf, installer.php, and a log
of the build process. All three files are built with a secure-file name and stored to a storage location either on the server or in
the cloud. Examples of the files will look something like the following:
<ul>
<li>my-name_64fc6df76c17f2023225_20220816004809_<b>archive.zip</b></li>
<li>my-name_64fc6df76c17f2023225_20220816004809_<b>installer.php</b></li>
<li>my-name_64fc6df76c17f2023225_20220816004809_<b>.log</b></li>
</ul><br/>
A secure-file name has the following descriptors <i>[name]_[hash]_[time]</i> built into the file name.
<ul>
<li><b>[name]</b> This is the name given to the package when it is created.</li>
<li><b>[hash]</b> This is a uniquely generated series of characters almost impossible to guess.</li>
<li><b>[time]</b> This is the date and time the package was created down-to the second</li>
</ul><br/>
All files are initially created this way and should not be changed with the exception of the installer.php. The installer can be renamed
or setup to be downloaded as just 'installer.php'. It is strongly recommended to use the secure-file format on the installer to provide a
higher level of security. The secure-file format helps prevent unauthorized users on public servers. Archive and log file names should
never be changed or modified.
<ul>
<li><b>Basic:</b> installer.php</li>
<li><b>Secure:</b> <i>[name]_[hash]_[time]_installer.php</i> (recommended)</li>
</ul>
<i class="fas fa-info-circle"></i> Archive File Name Tip: The secure-file archive name can be viewed the following ways:
<ul>
<li>Goto: WordPress Admin Duplicator Packages Details of the site where the package was built</li>
<li>Copy the name from any cPanel, file explorer, or FTP client where it was downloaded/uploaded</li>
<li>
Search for 'package_name' in the <i>archive.zip/daf//dup-installer/<b>dup-archive__[hash].txt</b></i> file<br/>
<small>Example of hashed file name in archive file would be <i>dup-archive__3b8ded1-19035119.txt</i></small>
</li>
</ul>
</td>
</tr>
</table>
<br/><br/>
<b>Password Security</b><br/>
The installer can provide basic password protection, with the password being set at package creation time.
This setting is optional and can be turned on/off via the package creation screens.
<small>
For forgotten passwords users can log in to the site where the package was created and check the package details for the original password.
For detail on how to override this setting visit the online FAQ for
<a
href="<?php echo InstallerLinkManager::getDocUrl('how-to-fix-installer-security-protection-issues', 'install', 'help security'); ?>"
target="_blankopen_section"
>
more details
</a>.
</small>
<br/><br/>
<b>Secure-File Security</b><br/>
When you attempt an <i class="maroon">"Overwrite Install"</i> using the "installer.php" filename on a public server (non-localhost) and
have not set a password, the installer will prompt for the filename of the associated archive.zip/daf file. This is to prevent an outside
entity from executing the installer. To complete the install, simply copy the filename of the archive and paste (or type) it into the
archive filename box.
<small>
Using a secure-file installer name (Settings &gt; Packages), renames the installer to something unique, setting a password or installing
from localhost will cause the archive filename to no longer be required.
</small>
<br/><br/>
<b>Archive Encryption</b>
<sup class="hlp-pro-lbl">Pro</sup><br/>
The archive encryption is the most secure and recommended encryption method. This option is set during the package creation process and encrypts
the archive.zip/daf file. The archive file cannot be opened without a password which can be done from either the installer file or from a client
side program like 7-Zip, WinZip, iZip etc.
<br/><br/>
<i>
Note: Even though the installer has a password protection feature, it should only be used for the short term while the installer is being used.
All installer files should and must be removed after the install is completed. Files should not to be left on the server for any long duration
of time to prevent any security related issues. It is absolutely required and recommended to remove <u>all</u> installer files after installation
is completed by logging into the WordPress admin and following the Duplicator prompts.
</i>
</div>
</div>
</section>

View File

@@ -0,0 +1,24 @@
<?php
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<!-- ============================================
STEP 1
============================================== -->
<?php
$sectionId = 'section-step-1';
$expandClass = $sectionId == $open_section ? 'open' : 'close';
?>
<section id="<?php echo $sectionId; ?>" class="expandable <?php echo $expandClass; ?>" >
<h2 class="header expand-header">
Step <span class="step">1</span>: Deployment
</h2>
<div class="content" >
<div id="dup-help-scanner" class="help-page">
<?php
dupxTplRender('pages-parts/help/steps/step1-parts/basic-step1-setup');
dupxTplRender('pages-parts/help/steps/step1-parts/advanced-step1-options');
dupxTplRender('pages-parts/help/steps/step1-parts/validation-step1');
?>
</div>
</div>
</section>

View File

@@ -0,0 +1,87 @@
<?php
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<!-- ============================================
STEP 2
============================================== -->
<?php
$sectionId = 'section-step-2';
$expandClass = $sectionId == $open_section ? 'open' : 'close';
?>
<section id="<?php echo $sectionId; ?>" class="expandable <?php echo $expandClass; ?>" >
<h2 class="header expand-header">
Step <span class="step">2</span>: Install Database
<sup>Advanced Mode</sup>
</h2>
<div class="content" >
<div id="dup-help-step1" class="help-page">
<!-- OPTIONS-->
<h3>Import and Update</h3>
Step 2 options only show when Advanced mode is enabled. This step controls which tables will be included in the install and the table
character set and collation type. The tables tab shows the original table names with the number of rows and size.
<br/><br/>
By default, all tables will be imported and updated during the install process. If a table is not imported then it cannot be updated. The update
process performs a full scan on the imported table finding all old URLs and server paths and updating them with the new paths of the new server.
The update process will also include all "Search and Replace" options found in Step 3.
<br/><br/>
<h4>
<i class="far fa-folder fa-fw"></i>
Table Tab
</h4>
These are the advanced options for importing and updating tables. All tables are included by default.
<table class="help-opt">
<tr>
<th class="col-opt">Option</th>
<th>Details</th>
</tr>
<tr>
<td class="col-opt">Import</td>
<td>
Indicates the table will be imported into the database. This includes the creation of the table and all its data. Turn off this
switch to prevent the table from being added to the database. This option is on by default for all tables. If excluding a table be
sure you know the underlying impact of not including it. If you are not sure then it is recommended to keep this value on.
</td>
</tr>
<tr>
<td class="col-opt">Update</td>
<td>
Indicates the table will be processed for URL replacement as well as custom search and replace. Turn off this switch to prevent
the replacement processing. Option is on by default.
</td>
</tr>
</table>
<br/><br/><br/>
<h4>
<i class="far fa-folder fa-fw"></i>
Advanced Tab
</h4>
These are the advanced options for setting the charset and collation types for all tables in the database.
<table class="help-opt">
<tr>
<th class="col-opt">Option</th>
<th>Details</th>
</tr>
<tr>
<td class="col-opt">Charset</td>
<td>
When the database is populated from the SQL script it will use this value as part of its connection. Only change this value if you
know what your database character set should be. Visit the
<a href="https://dev.mysql.com/doc/refman/8.0/en/charset.html" target="_blank">Character Sets, Collations, Unicode manual</a> for
more details.
</td>
</tr>
<tr>
<td class="col-opt">Collation</td>
<td>
When the database is populated from the SQL script it will use this value as part of its connection. Only change this value if you
know what your database collation set should be.
</td>
</tr>
</table>
<br/><br/>
</div>
</div>
</section>

View File

@@ -0,0 +1,238 @@
<?php
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<!-- ============================================
STEP 3
============================================== -->
<?php
$sectionId = 'section-step-3';
$expandClass = $sectionId == $open_section ? 'open' : 'close';
?>
<section id="<?php echo $sectionId; ?>" class="expandable <?php echo $expandClass; ?>" >
<h2 class="header expand-header">
Step <span class="step">3</span>: Update Data
<sup>Advanced Mode</sup>
</h2>
<div class="content" >
<a class="help-target" name="help-s3"></a>
<div id="dup-help-step2" class="help-page">
<!-- SETTINGS-->
<h4>
<i class="far fa-folder fa-fw"></i>
Engine Tab
</h4>
This option controls how the database is updated when migrating to the new site.
<br/><br/>
<table class="help-opt">
<tr>
<th class="col-opt">Option</th>
<th>Details</th>
</tr>
<tr>
<td colspan="2" class="section">Custom Search and Replace</td>
</tr>
<tr>
<td class="col-opt"><i>Overview</i></td>
<td>
<sup class="hlp-pro-lbl">Pro</sup>
Permits adding as many custom search and replace items as needed. Use extreme caution when using this feature as it can have
unintended consequences as it will search the entire database. It is recommended to only use highly unique items such as full URL or
file paths with this option.
</td>
</tr>
<tr>
<td colspan="2" class="section">Database Scan Options</td>
</tr>
<tr>
<td class="col-opt">Cleanup</td>
<td>
<sup class="hlp-pro-lbl">Pro</sup>
The checkbox labeled "Remove schedules &amp; storage endpoints" will empty the Duplicator schedule and storage settings.
It is recommended that this remain enabled so that you do not have unwanted schedules and storage options.
</td>
</tr>
<tr>
<td class="col-opt">Skip Path<br/> Replace</td>
<td>
This is an advanced option that should be used when trying to install from either the "/" or "/html" location. The following
conditions are set with this option when the install location is detected.
<ul>
<li>Source folder is <i>/</i> the parameter should be visible in read-only mode and not checkable.</li>
<li>Source folder is <i>/html</i> the parameter must be check by default and kept checked.</li>
<li>In other cases, the parameter must be inactive by default and checkable.</li>
</ul>
This option helps to resolve issues when the install path is either <i>"/" or "/html"</i>. In case the source path is /html this option
is required to prevent data update conflicts. For example the html_type option in the wp_options table with data such as
<i>text/html</i> is replaced with text/[new_path] which can lead to other issues therefore this option is required to be checked to
prevent those types of database update issues.
</td>
</tr>
<tr>
<td class="col-opt">Email<br/> Domains</td>
<td>The domain portion of all email addresses will be updated if this option is enabled.</td>
</tr>
<tr>
<td class="col-opt">Database<br/> Search</td>
<td>
Database full search forces a scan of every single cell in the database. If it is not checked then only text-based columns are searched
which makes the update process much faster. Use this option if you have issues with data not updating correctly.
</td>
</tr>
<tr>
<td class="col-opt">Cross<br/>Search</td>
<td>
<sup class="hlp-pro-lbl">Pro</sup>
This option enables the searching and replacing of subsite domains and paths that link to each other within a Multisite network.
Check this option if hyperlinks of at least one subsite point to another subsite. Uncheck this option there if there are at least
<?php echo 10; ?> subsites and no subsites hyperlinking to each other.
<br/>
<i>
Note: Checking this option in this scenario would unnecessarily load your server. Check this option if you are unsure if
you need this option.
</i>
</td>
</tr>
<tr>
<td class="col-opt">Post GUID</td>
<td>
If you're moving a site keep this value checked.
For more details see the
<a href="https://wordpress.org/support/article/changing-the-site-url/#important-guid-note" target="_blank">
notes on GUIDS
</a>.
Changing values in the posts table GUID column can cause RSS readers to evaluate that the posts are new and may show them in feeds again.
</td>
</tr>
<tr>
<td class="col-opt">Serialized<br/> Max Size</td>
<td>
Large serialized objects can cause a fatal error when Duplicator attempts to transform them. <br>
If a fatal error is generated, lower this limit. <br>
If a warning of this type appears in the final report: <br>
<code>
DATA-REPLACE ERROR: Serialization <br/>
ENGINE: serialize data too big to convert; data len: XXX Max size: YYY <br/>
DATA: .....
</code>
and you think that the serialized object is necessary you can increase the limit or <i>set it to 0 to have no limit</i>.
</td>
</tr>
</table>
<br/><br/><br/>
<h4>
<i class="far fa-folder fa-fw"></i>
Admin Account Tab
</h4>
Create a new WordPress administrator or update the existing password of an exiting user.
<table class="help-opt">
<tr>
<th class="col-opt">Option</th>
<th>Details</th>
</tr>
<tr>
<td colspan="2" class="section">Admin Password Reset</td>
</tr>
<tr>
<td class="col-opt"><i>Overview</i></td>
<td>
Use this feature to change the password of an existing WordPress admin account. This feature can come in handy if the password
was forgotten or if it needs to be changed.
</td>
</tr>
<tr>
<td colspan="2" class="section">New Admin Account</td>
</tr>
<tr>
<td class="col-opt">Create<br/> New User</td>
<td>Create a new user account.</td>
</tr>
<tr>
<td class="col-opt">Username</td>
<td>
Username of the user being created. This will be used as the login for the new administrator account.
Please note that usernames are not changeable from the within the WordPress UI. Mandatory Field.
</td>
</tr>
<tr>
<td class="col-opt">Password</td>
<td>Password of the user being created. Must be at least 6 characters long. Required field when creating a new user.</td>
</tr>
<tr>
<td class="col-opt">Email</td>
<td>The email of the new user. A mandatory field when creating a new user.</td>
</tr>
<tr>
<td class="col-opt">Nickname</td>
<td>
The nickname of the new user will be created. It is optional to create a new user.
If you do not enter a nickname, the username will become the nickname.
</td>
</tr>
<tr>
<td class="col-opt">First Name</td>
<td>First name of the user being created. Optional.</td>
</tr>
<tr>
<td class="col-opt">Last Name</td>
<td>Last name of the user being created. Optional.</td>
</tr>
</table>
<br/><br/><br/>
<h4>
<i class="far fa-folder fa-fw"></i>
Plugins Tab
</h4>
This section controls all plugins registered with the site and listed in the Plugin list table. All plugins are grouped as Active or Inactive
plugins. Check all plugins that need to remain active and uncheck all plugins which should not be active. If running the installer in "Safe Mode"
then all plugins except needed ones will be disabled.
<br/><br/><br/>
<h4>
<i class="far fa-folder fa-fw"></i>
WP-Config Tab
</h4>
In this section, you can configure different constants in the wp-config.php file.
<table class="help-opt">
<tr>
<th class="col-opt">Option</th>
<th>Details</th>
</tr>
<tr>
<td class="col-opt">Add/Remove<br/> Switch</td>
<td>
<sup class="hlp-pro-lbl">Pro</sup>
Each wp-config value has an associated switch that controls the insertion and removal of the constant.<br>
If the switch is deactivated, the constant will be removed from wp-config.php
</td>
</tr>
<tr>
<td class="col-opt">Constants</td>
<td>
The wp-config tab contains the list of constants that can be modified directly by the installer.<br>
See the <a href="https://wordpress.org/support/article/editing-wp-config-php/" target="_blank">
WordPress documentation for more information
</a>.
</td>
</tr>
<tr>
<td class="col-opt">Auth Keys</td>
<td>
Generate New Unique Authentication Keys and Salts.
Defines: AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, NONCE_SALT
</td>
</tr>
</table>
<br/><br/>
</div>
</div>
</section>

View File

@@ -0,0 +1,42 @@
<?php
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<!-- ============================================
STEP 4
============================================== -->
<?php
$sectionId = 'section-step-4';
$expandClass = $sectionId == $open_section ? 'open' : 'close';
?>
<section id="<?php echo $sectionId; ?>" class="expandable <?php echo $expandClass; ?>" >
<h2 class="header expand-header">
Step <span class="step">4</span>: Test Site
</h2>
<div class="content" >
<a class="help-target" name="help-s4"></a>
<div id="dup-help-step3" class="help-page">
<h3>Final Steps</h3>
<b>Review Install Report</b><br/>
The install report is designed to give you a synopsis of the possible errors and warnings that may exist after the installation is completed.
<br/><br/>
<b>Test Site</b><br/>
After the install is complete run through your entire site and test all pages and posts.
<br/><br/>
<b>Final Security Cleanup</b><br/>
When completed with the installation please delete all installation files.
<b>Leaving these files on your server can be a security risk!</b> You can remove
all these files by logging into your WordPress admin and following the remove notification links or by deleting these file manually.
Be sure these files/directories are removed. Optionally it is also recommended to remove the archive.zip/daf file.
<ul>
<li>dup-installer</li>
<li>installer.php</li>
<li>installer-backup.php</li>
<li>dup-installer-bootlog__[HASH].txt</li>
<li>archive.zip/daf</li>
</ul>
</div>
</div>
</section>

View File

@@ -0,0 +1,432 @@
<?php
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<h3>
Options
<small style='font-size:11px; color:#888'>Advanced mode</small>
</h3>
The advanced options are only shown when the installer mode is set to "Advanced." This section allows users to change or set advanced options,
configure additional database settings and set other configuration options in the wp-config.php file.
<br/><br/>
<!-- ********************************************
ADVANCED TAB
******************************************** -->
<h4>
<i class="far fa-folder fa-fw"></i>
Advanced Tab
</h4>
These are the advanced options for advanced users.
<table class="help-opt">
<tr>
<th class="col-opt">Option</th>
<th>Details</th>
</tr>
<tr>
<td colspan="2" class="section">
Processing
</td>
</tr>
<tr>
<td class="col-opt">Extraction<br/> Mode</td>
<td>
<b>Manual Archive Extraction</b><br/>
Set the Extraction value to "Manual Archive Extraction" when the archive file has already been manually extracted on the server. This can be
done through your host's control panel such as cPanel or by your host directly. This setting can be helpful if you have a large archive file
or are having issues with the installer extracting the file due to timeout issues.
<br/><br/>
<b>PHP ZipArchive</b><br/>
This extraction method will use the PHP <a href="http://php.net/manual/en/book.zip.php" target="_blank">ZipArchive</a> code to extract the
archive zip file.
<br/><br/>
<b>PHP ZipArchive Chunking</b><br/>
This extraction method will use the PHP <a href="http://php.net/manual/en/book.zip.php" target="_blank">ZipArchive</a> code with multiple
execution threads to extract the archive zip file.
<br/><br/>
<b>Shell-Exec Unzip</b><br/>
This extraction method will use the PHP <a href="http://php.net/manual/en/function.shell-exec.php" target="_blank">shell_exec</a>
to call the system unzip command on the server. This is the default mode that is used if it's available on the server.
<br/><br/>
<b>DupArchive</b><br/>
This extraction method will use the DupArchive extractor code to extract the daf-based archive file.
</td>
</tr>
<tr>
<td>Server<br/>Throttling</td>
<td>
If the current host is a budget host that monitors CPU usage, then users might want to consider checking this box to help slow down the
process and not kick off any high-usage monitors.
<br/>
</td>
</tr>
<tr>
<td colspan="2" class="section">
Extraction Flow
</td>
</tr>
<tr>
<td>Archive Action</td>
<td>
<b>Extract files over current files</b><br/>
The existing site files will be overwritten with the contents of the archive.zip/daf.
<br/><br/>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Remove WordPress core and content and extract</b><br/>
The existing WordPress core files and WordPress content directory will be removed, and then the archive will be extracted.
<br/><br/>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Remove all files except add-on sites and extract</b><br/>
All files except an add-on site will be removed, and then the archive will be extracted. An add-on site is a site/domain that is stored in a
directory off of your main site that has been "added on" to your main hosting account. For instance, when you purchased a hosting account it
could be for a.com. Then after that, you decided to add b.com and c.com to the same hosting account. The structure of this setup is often the
following although it can vary some:
<ul>
<li>/public_html - contains files for a.com</li>
<li>/public_html/b.com - contains files for b.com</li>
<li>/public_html/c.com - contains files for c.com</li>
</ul>
The directories /public_html/b.com and c.com contain the files for the add-on sites b.com and c.com (so the option above means that b.com and c.com
would be preserved and not deleted when you installed to a.com)
</td>
</tr>
<tr>
<td class="col-opt">Skip Files</td>
<td>
<b>Extract all files</b><br/>
Extract all files from the package archive. This option is selected by default.
<br/><br/>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Skip extraction of WordPress core files</b><br/>
Extract all files except WordPress core files. Choose this option to extract only the wp-content folder and other non-core WordPress
files and directories.
<br/><br/>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Skip extraction of WordPress core files and plugins/themes existing on host</b><br/>
Extract all files except WordPress core files and existing plugins/themes on the current host.
<br/><br/>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Extract only media files and new plugins and themes</b><br/>
Extract all media files, new plugins, and new themes. The installer will not extract plugins and themes that already exist on the destination site.
</td>
</tr>
<tr>
<td class="col-opt">File Times</td>
<td>
When the archive is extracted it should show the current date-time or keep the original time it had when it was built.
This setting will be applied to all files and directories.
<i>Note: Setting the Original time is currently only supported when using the ZipArchive Format.</i>
</td>
</tr>
<tr>
<td class="col-opt">File<br/> Permissions</td>
<td>
Switch on and set permissions in either octal or symbolic values to assign permissions to files. This option is not available on Windows machines.
</td>
</tr>
<tr>
<td class="col-opt">Directory<br/> Permissions</td>
<td>
Switch on and set permissions in either octal or symbolic values to assign permissions to directories. This option is not available on
Windows machines.
</td>
</tr>
<tr>
<td colspan="2" class="section">
Configuration Files
</td>
</tr>
<tr>
<td class="col-opt">
WordPress<br/>
<small> wp-config</small>
</td>
<td>
<b>Do nothing</b><br/>
This option simply does nothing. The wp-config file does not get backed up, renamed, or created. This advanced option assumes you already
know how it should behave in the new environment. This option is for advanced technical persons.
<br/><br/>
<b>Modify original</b><br/>
This is the default recommended option which will modify the original wp-config file.
<br/><br/>
<b>Create new from wp-config sample</b><br/>
This option creates a new wp-config file by modifying the wp-config-sample.php file.
The new wp-config.php file will behave as if it was created in a fresh, default WordPress installation.
<br/><br/>
</td>
</tr>
<tr>
<td class="col-opt">
Apache<br/>
<small>.htaccess</small>
</td>
<td>
<b>Do nothing</b><br/>
This option simply does nothing. The .htaccess is not backed up, renamed, or created. This advanced option assumes you already have your
.htaccess file set up and know how it should behave in the new environment. When the package is built it will always create an .htaccess file
at this location:
<code>
/dup-installer/original_files_[HASH]/.htaccess
</code>
Since the file is already in the archive file it will show up when the archive is extracted.
<br/><br/>
<b>Retain original from Archive.zip/daf</b><br/>
This option simply copies the /dup-installer/original_files_[HASH]/.htaccess file to the .htaccess file. Please note this option will cause issues
with the install process if the .htaccess is not properly set up to handle the new server environment. This is an advanced option and should
only be used if you know how to properly configure your .htaccess configuration.
<br/><br/>
<b>Create New</b><br/>
This is the default recommended option which will create a new .htaccess file. The new .htaccess file is streamlined to help
guarantee no conflicts are created during install.
<br/><br/>
<small>
<b>Notes:</b> Inside the archive.zip or archive.daf will be a copy of the original .htaccess (Apache) file that was set up with your
packaged site. The .htaccess file is copied to /dup-installer/original_files_[HASH]/source_site_htaccess. When using either "Create New"
or "Retain original from Archive.zip/daf" an existing .htaccess file will be backed up to a
/wp-content/backups-dup-lite/installer/original_files_[HASH]/source_site_htaccess.
<i>This change will not made until the final step is completed, to avoid any issues the .htaccess might cause during the install</i>
</small>
</td>
</tr>
<tr>
<td class="col-opt">
General<br/>
<small>php.ini, .user.ini,<br/> web.config</small>
</td>
<td>
<b>OVERVIEW</b><hr/>
When the archive is built it will always create an original backup of the php.ini, .user.ini, and web.config files ("Config Files") if they exist.
The backups will be in the following location within the archive file without an extension.
<code>
<b>Original File Backups</b><br/>
archive.zip|daf/dup-installer/original_files_[HASH]/<i>[location]</i>_<b>phpini</b> <br/>
archive.zip|daf/dup-installer/original_files_[HASH]/<i>[location]</i>_<b>userini</b> <br/>
archive.zip|daf/dup-installer/original_files_[HASH]/<i>[location]</i>_<b>webconfig</b>
</code>
If there are "Config Files" on the new server, backups may also optionally be created. Backup <i>[location]</i> is defined by the following:
<ul>
<li><b>source_site</b> Backup of original file when the archive was created on the source host</li>
<li><b>installer_host</b> Backup of original file before the installer starts on active host</li>
</ul><br/>
<b>ACTIONS</b><hr/>
<b>Do nothing</b><br/>
This option performs no actions and assumes you already have your configuration files set up properly; either on the server or in the archive.
If the same "Config Files" exist in both the deploy directory and the archive, then the archive files will overwrite any configuration files
that exist at the same location in the archive.
<br/><br/><br/>
<b>Retain original from Archive.zip/daf</b>
<ol>
<li>
Moves any existing "Config Files" on the new host to the following location:
<code>
/dup-installer/original_files_[HASH]/installer_host_[CONFIG-TYPE]<br/>
<small> An existing "Config File" resides on the server before the archive is extracted or step 1 is ran.</small>
</code>
</li>
<li>
The installer last step copies all "Config Files" from the archive backups to the correct location on the new host.
They are copied from this location:<br/>
<code>
/dup-installer/original_files_[HASH]/<b>source_site</b>_[CONFIG-TYPE]
</code>
</li>
</ol><br/>
<b>Reset</b>
<ol>
<li>
Moves any existing "Config Files" on the new host to the following location:
<code>
/dup-installer/original_files_[HASH]/installer_host_[CONFIG-TYPE]<br/>
<small> An existing "Config File" resides on the server before the archive is extracted or step 1 is ran.</small>
</code>
</li>
<li>
If any "Config Files" already exist in the archive they will be deployed "as is" to the location that matches the
archive file structure.
</li>
</ol>
</td>
</tr>
<tr>
<td colspan="2" class="section">
General
</td>
</tr>
<tr>
<td class="col-opt">Logging</td>
<td>
The level of detail that will be sent to the log file (installer-log.txt). The recommended setting for most installs should be "Light."
Note if you use Debug the amount of data written can be very large. Debug is only recommended for support.
</td>
</tr>
<tr>
<td class="col-opt">Cleanup</td>
<td>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Remove disabled plugins/themes</b><br/>
Remove all inactive plugins and themes when installing site. Inactive users will also be removed during subsite to standalone migrations.
<br/><br/>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Remove users without permissions</b><br/>
Removes users that currently do not have any permissions associated with their accounts.
</td>
</tr>
<tr>
<td class="col-opt">Safe Mode</td>
<td>
Safe mode is designed to configure the site with specific options at install time to help overcome issues that may happen during the install
where the site is having issues. These options should only be used if you run into issues after you have tried to run an install.
<br/><br/>
<b>Disabled</b><br/>
This is the default. This option will not apply any additional settings at install time.
<br/><br/>
<b>Enabled</b><br/>
When enabled the safe mode option will disable all the plugins at install time.
<i>Note: When this option is set you will need to manually re-enable the plugins that need to be enabled after the install from the
WordPress admin plugins page.</i>
</td>
</tr>
</table>
<br/><br/>
<!-- ********************************************
DATABASE TAB
******************************************** -->
<h4>
<i class="far fa-folder fa-fw"></i>
Database Tab
</h4>
These are the advanced options for database configuration.
<table class="help-opt">
<tr>
<th class="col-opt">Option</th>
<th>Details</th>
</tr>
<tr>
<td class="col-opt">Table Prefix</td>
<td>
<sup class="hlp-pro-lbl">Pro</sup>
This option allows changing the table prefix to other than the package creation site's table prefix. The table prefix is the value placed in the
front of your database tables. It is possible to have multiple installations in one database if you give each WordPress site a unique prefix.
</td>
</tr>
<tr>
<td class="col-opt">Mode</td>
<td>
Modes affect the SQL syntax MySQL supports (and others such as MariaDB) . This setting performs various data validation checks. This makes
it easier to use MySQL in different environments and to use MySQL together with other database servers. It is very useful when running into
conversion issues. The following options are supported:
<ul>
<li><b>Default:</b> This is the recommended setting to use. It will use the current Database mode setting.</li>
<li><b>Disable:</b> This will prevent the database engine from running in any mode.</li>
<li><b>Custom:</b> This option will allow you to enter a custom set of mode commands. See the documentation link below for options.</li>
</ul>
For a full overview please see the <a href="https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html" target="_blank">MySQL mode</a> and
<a href="https://mariadb.com/kb/en/sql-mode/" target="_blank">MariaDB mode</a> specific to your version. To add a custom setting enable the
Custom radio button and enter in the mode(s) that needs to be applied.
</td>
</tr>
<tr>
<td class="col-opt">Processing</td>
<td>
<b>Chunking mode</b><br/>
Split the work of inserting data across several requests. If your host throttles requests or you're on a shared server that is being heavily
utilized by other sites then you should choose this option. This is the default option.
<br/><br/>
<b>Single step</b><br/>
Perform data insertion in a single request. This is typically a bit faster than chunking, however it is more susceptible to problems when the
database is large or the host is constrained.
</td>
</tr>
<tr>
<td class="col-opt">Create</td>
<td>
Run all CREATE SQL statements at once. This option should be checked when source database tables have foreign key relationships.
When choosing this option there might be a chance of a timeout error. Uncheck this option to split CREATE queries in chunks.
This option is checked by default.
</td>
</tr>
<tr>
<td class="col-opt">Objects</td>
<td>
Allow or Ignore objects for "Views," "Stored Procedures," "Functions" and "DEFINER" statements. Typically the defaults
for these settings should be used. In the event you see an error such as <i class="maroon">"'Access denied; you need (at least one of)
the SUPER privilege(s) for this operation"</i> then changing the value for each operation should be considered.
</td>
</tr>
</table>
<br/><br/>
<!-- ********************************************
URL/PATH TAB
******************************************** -->
<h4>
<i class="far fa-folder fa-fw"></i>
URLs &amp; Paths Tab
<sup class="hlp-pro-lbl">Pro</sup>
</h4>
In the tab "URLs &amp; Paths," you can read the current path of all the various path configurations for the WordPress site. These are advanced options
that should only be edited if you know the correct path. These options are editable in the Pro version.
<ul>
<li>
WordPress core path
</li>
<li>
WordPress core URL
</li>
<li>
WP-content path
</li>
<li>
WP-content URL
</li>
<li>
Uploads path
</li>
<li>
Uploads URL
</li>
<li>
Plugins path
</li>
<li>
Plugins URL
</li>
<li>
MU-plugins path
</li>
<li>
MU-plugins URL
</li>
</ul>
These paths and URLs are set automatically by the package installer. You can set these paths and URLs manually. If you are changing it,
please make sure you are putting the right path or URL.
<br/><br/><br/>

View File

@@ -0,0 +1,355 @@
<?php
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Utils\InstallerLinkManager;
?>
If no passwords were set on the installer or archive file then users will initially see step one of the installer. The installer has two operating views
that can be toggled via the Basic and Advanced buttons in the right-hand corner of the application. These installer views can only be chosen on step 1.
An overview of each view is explained below.
<br/><br/>
<b><i class="fas fa-angle-double-right"></i> Views:</b>
<ul>
<li>
<b>Basic:</b>
This is a simple two-step mode with all options set to the defaults. This is the default mode. The Basic view is the easiest and fastest and
covers most setup types. This is the recommended view for most installs.
</li>
<li>
<b>Advanced:</b>
This four-step mode allows for higher levels of customization with various detail settings. The Advanced view allows users to implement and apply
additional settings/features to the install process. <br/>
<small class="hlp-lite-only">This is the only mode that Duplicator supported before version 1.5</small>
</li>
</ul>
<!-- ===================================
OVERVIEW -->
<h3>Overview</h3>
The overview section allows users to identify the status, mode and select from the install type based on the user's install status. Additionally there are
other details about the archive file. Below is an overview of the various status, mode and install types. <br/>
<small class="hlp-lite-only">
Note: Duplicator Lite supports only single WordPress sites, while
<a href="<?php echo InstallerLinkManager::getCampaignUrl('installer', "Help section - Get Pro for Multisite"); ?>" target="_blank">
Duplicator Pro
</a> supports single and multisite websites.
</small>
<br/><br/>
<h4>
<i class="far fa-folder fa-fw"></i>
Installation Tab
</h4>
This section will give an overview of the various install modes, methods and types that are currently being used.
<br/><br/>
<b><i class="fas fa-angle-double-right"></i> Status:</b>
<ul>
<li>
<b>Install - Single Site</b><br/>
This will perform the installation of a single WordPress site based on the associated method.
</li>
<li>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Install - Multisite-Subdomain:</b><br/>
This is a full Multisite installation subdomain (i.e. subdomain.mysite.com) install. All sites in the network will be extracted and installed.
</li>
<li>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Install - Multisite-Subfolder:</b><br/>
This is a full Multisite installation via sub-folders install. All sites in the network will be extracted and installed.
</li>
<li>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Install - Standalone Site:</b><br/>
This installation converts the selected subsite into a standalone website.
</li>
<li>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Install - Archive Single Site into Subdomain/Subfolder Multisite:</b><br/>
This installation will insert the package site into the current multisite subdomain/subfolder setup.
</li>
<li>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Install - Selected Subsite in Subdomain/Subfolder Multisite:</b><br/>
This installation will insert the selected subsite of the package into the current subdomain/subfolder multisite installation.
</li>
<li>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Recovery - [Site Type]:</b><br/>
This status is enabled when the installer detects recovery mode installer was launched. This process will overwrite this site from the recovery
point made on a specific date. The site type will represent the type of site being recovered.
</li>
<li>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Restore Site Backup:</b><br/>
This method is enabled when the installer detects an archive is imported that matches the current setup. The restore backup status restores the
original site by not performing any processing on the database or tables to ensure an exact copy of the original site exists. Restore has the
following status types: <i>Restore: Single Site Backup, Restore - Multisite-Subdomain Backup, Restore - Multisite-Subfolder Backup</i>
</li>
</ul>
<b><i class="fas fa-angle-double-right"></i> Mode:</b>
<ul>
<li>
<b>Standard Install</b>
<ul>
<li>Includes both files and tables in the archive file.</li>
<li>The files and tables are determined by filters enabled during the archive build process.</li>
<li>Method is enabled when there is no existing WordPress site present in the current install directory.</li>
</ul>
</li>
<li>
<b>Standard Install - Database Only</b>
<ul>
<li>Includes only database tables in the archive file.</li>
<li>The tables are determined by filters enabled during the archive build process.</li>
<li>
Method is enabled when the archive only contains the database and there is no existing WordPress site present in the
current install directory.
</li>
</ul>
</li>
<li>
<b>Overwrite Install</b><br/>
<ul>
<li>Includes both files and tables in the archive file.</li>
<li>The files and tables are determined by filters enabled during the archive build process.</li>
<li>Method is enabled when the installer detects an existing WordPress site is present.</li>
</ul>
</li>
<li>
<b>Overwrite Install - Database Only</b><br/>
<ul>
<li>Includes only database tables in the archive file.</li>
<li>The tables are determined by filters enabled during the archive build process.</li>
<li>Method is enabled when the installer detects an existing WordPress site is present.</li>
</ul>
</li>
<li>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Custom Install</b><br/>
<ul>
<li>When the mode is custom this indicates the install is specifically driven by the status type.</li>
<li>See the status type of the install for all exact install details.</li>
</ul>
</li>
</ul>
<b><i class="fas fa-angle-double-right"></i> Install Type:</b>
<ul>
<li><b>Full/Restore:</b> This is the default install type.</li>
<li><sup class="hlp-pro-lbl">Pro</sup> <b>Convert:</b> This is a Multisite feature used to convert a network subsite to a standalone site.</li>
<li><sup class="hlp-pro-lbl">Pro</sup> <b>Import:</b> This is a Multisite feature used to import a subsite into a Multisite network.</li>
</ul>
<small>* The Restore, Convert and Import types are only visible when the installer detects that it can perform the action.</small>
<br/><br/>
<h4>
<i class="far fa-folder fa-fw"></i>
Archive Tab
</h4>
The archive tab shows various details about the archive file and site details related to the site that was archived. With Duplicator the following
install modes are currently supported:
<ul>
<li>
<b><a href="<?php echo InstallerLinkManager::getDocUrl('classic-install', 'install', 'Classic Install'); ?>" target="_blank">Classic Install:</a></b>
With this mode users can install to an empty directory like a new WordPress install does.
</li>
<li>
<b><a href="<?php echo InstallerLinkManager::getDocUrl('overwrite-install', 'install', 'Overwrite Install'); ?>" target="_blank">
Overwrite Install:
</a></b>
This mode allows users to quickly overwrite an existing WordPress site in a few clicks.
</li>
<li>
<sup class="hlp-pro-lbl">Pro</sup>
<b><a href="<?php echo InstallerLinkManager::getDocUrl('import-install', 'install', 'Import Install'); ?>" target="_blank">Import Install:</a></b>
Drag and drop or use a URL for super-fast installs. This Pro-only feature will import both Pro and Lite archives.
<ul>
<li><b>Import File:</b> Drag and drop an existing Duplicator Lite or Pro archive and quickly replace the existing WordPress site</li>
<li><b>Import Link:</b> Provide a link to an existing Duplicator Lite or Pro archive and quickly replace the existing WordPress site.</li>
</ul>
</li>
</ul>
<br/><br/><br/>
<!-- ===================================
SETUP -->
<h3>Setup</h3>
<h4>
<i class="far fa-folder fa-fw"></i>
Database Tab
</h4>
The database connection inputs allow you to connect to an existing database or create a new database along with the other actions below. There are currently
two options you can use to perform the database setup:
<ol>
<li>
<b>Default:</b> This option requires knowledge about the existing server, and requires the database be created ahead of time on most hosts.
</li>
<li>
<sup class="hlp-pro-lbl">Pro</sup>
<b>cPanel:</b>
The cPanel option is for hosts that support <a href="https://cpanel.net">cPanel software</a>. This option will automatically show you the existing
databases and users in your cPanel server and allow you to create new databases directly from the installer.
</li>
</ol>
<table class="help-opt">
<tr>
<th class="col-opt">Option</th>
<th>Details</th>
</tr>
<tr>
<td colspan="2" class="section">
Default
</td>
</tr>
<tr>
<td class="col-opt">Action</td>
<td>
<b>Empty Database</b><br/>
DELETE all tables in the database you are connecting to. Please make sure you have backups of all your data before using this part of the
installer, as this option WILL remove all data.
<br/><br/>
<b>Backup Existing Tables</b><br/>
Create a backup of all existing tables by performing a RENAME of all tables in the database with a prefix of
"<?php echo $GLOBALS['DB_RENAME_PREFIX'] ?>". This makes room for the new tables to be created.
<br/><br/>
<b>Skip Database Extraction</b><br/>
This option requires that you manually run your own SQL import to an existing database before running the installer.
When this action is selected the
dup-database__[hash].sql file found inside the dup-installer folder of the archive.zip file will NOT be processed. The database you're connecting to
should already be a valid WordPress installed database. This option is viable when you need to perform custom SQL work or advanced installs.
<br/><br/>
<b>Create New Database</b><br/>
Will attempt to create a new database if it does not exist. This option will not work on most hosting providers (due to host restrictions) but
will work on most local systems. If the database does not exist then you will need to log in to your host's database management system and create
the database. <i>If your host supports cPanel then you can use this option to create a new database after logging in via your cPanel account.</i>
<br/><br/>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Overwrite Existing Tables</b><br/>
Overwrite only the tables that are extracted. This option is useful if you want to install WordPress in a database containing other WordPress
installations or applications. <i>Note: When performing an install alongside another installation be sure to change the prefix since only those
tables with the same prefix will be overwritten while tables of a different prefix will be retained. </i>
<br/><br/>
</td>
</tr>
<tr>
<td class="col-opt">Host</td>
<td>The name of the host server that the database resides on.
Most times this will be "localhost," however each hosting provider will have its own naming
convention so please check with your server administrator or host to determine the proper host name.
To add a port number, just append it to the host i.e. "localhost:3306."</td>
</tr>
<tr>
<td class="col-opt">Database</td>
<td>
The name of the database to which this installation will connect and install the new tables and data into.
Some hosts will require a prefix while others do not.
Be sure to know exactly how your host requires the database name to be entered.
</td>
</tr>
<tr>
<td class="col-opt">User</td>
<td>
The name of MySQL/MariaDB database server user.
This is a special account that has privileges to access a database and can read from or write to that database.
<i>This is <b>not</b> the WordPress administrator account</i>.
</td>
</tr>
<tr>
<td class="col-opt">Password</td>
<td>The password of the MySQL/MariaDB database server user.</td>
</tr>
<tr>
<td colspan="2" class="section">
cPanel <sup class="hlp-pro-lbl">Pro</sup>
</td>
</tr>
<tr>
<td class="col-opt">Host</td>
<td><sup class="hlp-pro-lbl">Pro</sup>
This should be the primary domain account URL that is associated with your host. Most hosts will require you to register a primary domain name.
This should be the URL that you place in the host field. For example if your primary domain name is "mysite.com" then you would enter in
"https://mysite.com:2083." The port 2083 is the common port number that cPanel works on. If you do not know your primary domain name please
contact your hosting provider or server administrator.
</td>
</tr>
<tr>
<td class="col-opt">Username</td>
<td>
<sup class="hlp-pro-lbl">Pro</sup>
The cPanel username used to login to your cPanel account. <i>This is <b>not</b> the same thing as your WordPress administrator account</i>.
If you're unsure of this name please contact your hosting provider or server administrator.
</td>
</tr>
<tr>
<td class="col-opt">Password</td>
<td>
<sup class="hlp-pro-lbl">Pro</sup>
The password of the cPanel user.
</td>
</tr>
<tr>
<td class="col-opt">Troubleshoot</td>
<td>
<sup class="hlp-pro-lbl">Pro</sup>
<b>Common cPanel Connection Issues:</b><br/>
- Your host does not use <a href="http://cpanel.com" target="_blank">cPanel software</a>. <br/>
- Your host has disabled cPanel API access. <br/>
- Your host has configured cPanel to work differently (please contact your host). <br/>
<?php $url = InstallerLinkManager::getDocUrl('what-host-providers-are-recommended-for-duplicator', 'install', 'cpanel issues'); ?>
- View a list of valid cPanel <a href='<?php echo DUPX_U::esc_attr($url); ?>' target='_blank'>Supported Hosts</a>.
</td>
</tr>
</table>
<br/><br/>
<h4>
<i class="far fa-folder fa-fw"></i>
Settings Tab
</h4>
The settings options allow users to change the "Site Title," "Site URL" and "Site Path". By default and in most cases the "Site URL" and "Site Path"
should not need to be changed. In Basic mode these values are read-only. In order to edit them switch to the "Advanced" mode found in the upper right
corner of the installer wizard.
<table class="help-opt">
<tr>
<th class="col-opt">Option</th>
<th>Details</th>
</tr>
<tr>
<td class="col-opt">Site Title</td>
<td>
The name of the WordPress website. On most websites this value will be the name used to bookmark the site or the name of the browser tab
used to view the page.
</td>
</tr>
<tr>
<td class="col-opt">Site URL</td>
<td>
The New Site URL input field is auto-filled with the installation site URL. By default you have no need to change it. For details see WordPress
<a href="https://wordpress.org/support/article/changing-the-site-url/" target="_blank">Site URL</a> &amp;
<a href="https://wordpress.org/support/article/giving-wordpress-its-own-directory/" target="_blank">Alternate Directory</a>.
This value should only be changed if you know what you want the value to be. The old URL value is listed as a read-only and will show the URL
of the site when the package was created. These values should not be changed, unless you know the underlying reasons.
</td>
</tr>
<tr>
<td class="col-opt">Site Path</td>
<td>
This is the physical server path where your WordPress site resides. For hosted server check with your hosting provider for the correct
path location. These values should not be changed, unless you know the underlying reasons.
</td>
</tr>
</table>
<br/><br/><br/>

View File

@@ -0,0 +1,27 @@
<?php
use Duplicator\Installer\Utils\InstallerLinkManager;
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<!-- ===================================
VALIDATION-->
<h3>Validation</h3>
The system validation checks help to make sure the system is ready for install. During installation the website will be in maintenance mode and not
accessible to users. The series of checks will alert if there are any items that need attention. An overview of the different status codes can all
be found online in the FAQ titled
<a
href="<?php echo InstallerLinkManager::getDocUrl('how-to-fix-installer-validation-checks', 'install', 'validation fixes'); ?>"
target="_blank"
>
How to fix installer validation checks?
</a>
<br/><br/>
The validation process requires a connection to the database before starting. Enter in all the Database Connection fields and click the "Validate" button
to start the validation process. If the database connection is not successful, details about how to solve the issue will be provided. If the database
connection is successful then additional system checks will be performed to help users identify any potential issues that might arise during the install
process.

View File

@@ -0,0 +1,76 @@
<?php
use Duplicator\Installer\Utils\InstallerLinkManager;
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<!-- ============================================
STEP 3
============================================== -->
<?php
$sectionId = 'section-troubleshoot';
$expandClass = $sectionId == $open_section ? 'open' : 'close';
?>
<section id="<?php echo $sectionId; ?>" class="expandable <?php echo $expandClass; ?>" >
<h2 class="header expand-header">Troubleshooting Tips</h2>
<div class="content" >
<div id="troubleshoot" class="help-page">
<div style="padding: 0px 10px 10px 10px;">
<b>Common Quick Fix Issues:</b>
<ul>
<?php $url = InstallerLinkManager::getDocUrl('what-host-providers-are-recommended-for-duplicator', 'install', 'help troubleshoot'); ?>
<li>Use a <a href='<?php echo DUPX_U::esc_attr($url); ?>' target='_blank'>Duplicator approved hosting provider</a></li>
<li>Validate directory and file permissions (see below)</li>
<li>Validate web server configuration file (see below)</li>
<li>Clear your browsers cache</li>
<li>Deactivate and reactivate all plugins</li>
<li>Resave a plugins settings if it reports errors</li>
<li>Make sure your root directory is empty</li>
</ul>
<b>Permissions:</b><br/>
Not all operating systems are alike.
Therefore, when you move a package (zip/daf file) from one location to another the file and directory permissions may not always stick.
If this is the case then check your WordPress directories and make sure its permissions are set to 755.
For files make sure the permissions are set to 644 (this does not apply to Windows servers).
Also pay attention to the owner/group attributes. For a full overview of the correct file changes see
the <a href='http://codex.wordpress.org/Hardening_WordPress#File_permissions' target='_blank'>WordPress permissions codex</a>
<br/><br/>
<b>Web server configuration files:</b><br/>
For Apache web server the root .htaccess file was copied to htaccess__[HASH].
A new stripped-down .htaccess file was created to help simplify access issues.
For IIS web server the web.config file was copied to web.config.orig, however no new web.config file was created.
If you have not altered this file manually then resaving your permalinks and resaving
your plugins should resolve most all changes that were made to the root web configuration file.
If you're still experiencing issues then open the .orig file and do a compare to see what changes need to be made. <br/><br/>
<b>Plugin Notes:</b><br/>
It's impossible to know how all 3rd party plugins function.
Duplicator attempts to fix the new install URL for settings stored in the WordPress options table.
Please validate that all plugins retained their settings after installing.
If you experience issues try to bulk deactivate all plugins then bulk reactivate them on your new duplicated site.
If you run into issues where a plugin does not retain its data then try to resave the plugin's settings.
<br/><br/>
<b>Cache Systems:</b><br/>
Any type of cache system such as Super Cache, W3 Cache, etc. should be emptied before you create a package.
Another alternative is to include the cache directory in the directory exclusion path list found in the options dialog.
Including a directory such as \pathtowordpress\wp-content\w3tc\ (the w3 Total Cache directory) will exclude this directory from being packaged.
In is highly recommended to always perform a cache empty when you first fire up your new site even if you excluded your cache directory.
<br/><br/>
<b>Trying Again:</b><br/>
If you need to retry and reinstall this package you can easily run the process again by deleting all files except
the installer and package file and then browse to the installer again.
<br/><br/>
<b>Additional Notes:</b><br/>
If you have made changes to your PHP files directly this might have an impact on your duplicated site.
Be sure all changes made will correspond to the site's new location.
Only the package (zip/daf file) and the installer (php file) should be in the directory where you are installing the site.
Please read through our knowledge base before submitting any issues.
If you have a large log file that needs to be evaluated please email the file, or attach it to a help ticket.
</div>
</div>
</div>
</section>

View File

@@ -0,0 +1,24 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
use Duplicator\Installer\Utils\InstallerUpsell;
dupxTplRender('parts/education/did-you-know-blurb', array(
'features' => InstallerUpsell::getProFeatureList()
));
?>
</div>
<?php
dupxTplRender('parts/education/footer-cta');
PrmMng::getInstance()->getParamsHtmlInfo();
?>
</body>
</html>

View File

@@ -0,0 +1,37 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
$archiveConfig = DUPX_ArchiveConfig::getInstance();
/* Variables */
/* @var $paramView string */
/* @var $bodyId string */
/* @var $bodyClasses string */
?><!DOCTYPE html>
<html>
<head>
<?php dupxTplRender('pages-parts/head/meta'); ?>
<title>Duplicator</title>
<?php dupxTplRender('pages-parts/head/css-scripts'); ?>
<?php dupxTplRender('pages-parts/head/css-template-custom'); ?>
</head>
<?php
dupxTplRender('pages-parts/body/body-tag', array(
'bodyId' => $bodyId,
'bodyClasses' => $bodyClasses
));
?>
<div id="content">
<?php
dupxTplRender('parts/top-header.php', array(
'paramView' => $paramView
));
if (!isset($skipTopMessages) || $skipTopMessages !== true) {
dupxTplRender('parts/top-messages.php');
}

View File

@@ -0,0 +1,81 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
switch (DUPX_Security::getInstance()->getSecurityType()) {
case DUPX_Security::SECURITY_PASSWORD:
$errorMsg = 'Invalid Password! Please try again...';
break;
case DUPX_Security::SECURITY_ARCHIVE:
$errorMsg = 'Invalid Archive name! Please try again...';
break;
case DUPX_Security::SECURITY_NONE:
default:
$errorMsg = '';
break;
}
?>
<form method="post" id="i1-pass-form" class="content-form" data-parsley-validate="" autocomplete="off" >
<div id="pwd-check-fail" class="error-pane no-display">
<p>
<?php echo $errorMsg; ?>
</p>
</div>
<div class="margin-top-0 margin-bottom-2">
<div class="text-right" >
<span id="pass-quick-link" class="link-style" onclick="jQuery('#pass-quick-help-info').toggleClass('no-display');" >
<i>Why do I see this screen?</i>
</span>
</div>
<div id="pass-quick-help-info" class="box info no-display">
This screen will show under the following conditions:
<br/><br/>
<b><i class="fas fa-lock"></i> Password:</b>
If the installer was password protected when created then the password input below should be enabled. <br/>
<small>If the input is disabled then no password was set during the build process.</small>
<br/><br/>
<b><i class="fas fa-shield-alt"></i> Secure-File:</b>
If the archive file is on a public server under these conditions:
<ul>
<li>Running a basic installer name <i>(installer.php)</i> with no installer password.</li>
<li>Running with the <i class="maroon">"Overwrite Install"</i> method active and no installer password.</li>
</ul>
Validate the 'Archive File Name' input with the secure-file name it was created with <i>([name]_[hash]_[time]_archive.zip)</i>. <br/>
<small>If the archive file name input is disabled or hidden then it can be ignored.</small>
</div>
</div>
<div class="dupx-opts" >
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_SECURE_PASS);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_SECURE_ARCHIVE_HASH);
?>
</div>
<div class="footer-buttons" >
<div class="content-center" >
<button type="submit" name="secure-btn" id="secure-btn" class="default-btn" >Submit</button>
</div>
</div>
</form>
<script>
//DOCUMENT LOAD
$(document).ready(function()
{
$('#param_item_secure-pass').focus();
$('#param_item_secure-archive').focus();
});
</script>

View File

@@ -0,0 +1,12 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/step1/actions/error');
dupxTplRender('pages-parts/step1/actions/validate');
dupxTplRender('pages-parts/step1/actions/next');

View File

@@ -0,0 +1,27 @@
<?php
/**
*
* @package templates/default
*/
use Duplicator\Installer\Utils\InstallerLinkManager;
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<div id="error_action" class="bottom-step-action margin-top-2 no-display" >
<div class="s1-err-msg" >
<i>
This installation will not be able to proceed until the archive and validation sections both pass.
Please adjust your servers settings click validate buttom or contact your server administrator,
hosting provider or visit the resources below for additional help.
</i>
<div style="padding:10px">
<?php $url = InstallerLinkManager::getCategoryUrl(InstallerLinkManager::TROUBLESHOOTING_CAT, 'install', 'Technical FAQs'); ?>
&raquo; <a href="<?php echo DUPX_U::esc_attr($url); ?>" target="_blank">Technical FAQs</a> <br/>
&raquo; <a href="<?php echo InstallerLinkManager::getDocUrl('', 'install', 'Online Documentation'); ?>" target="_blank">
Online Documentation
</a> <br/>
</div>
</div>
</div>

View File

@@ -0,0 +1,15 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<div id="hard_warning_action" class="bottom-step-action margin-top-2 no-display" >
<p>
It is not recommended but possible to continue with the installation before<br>
the problems indicated in the validation have been solved.
</p>
</div>

View File

@@ -0,0 +1,31 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
?>
<div id="next_action" class="bottom-step-action no-display" >
<div class="footer-buttons margin-top-2">
<div class="content-left">
<?php
dupxTplRender('pages-parts/step1/terms-and-conditions');
PrmMng::getInstance()->getHtmlFormParam(PrmMng::PARAM_ACCEPT_TERM_COND);
?>
</div>
<div class="content-right" >
<button
id="s1-deploy-btn"
type="button"
title="<?php echo DUPX_U::esc_attr('To enable this button the checkbox above under the "Terms & Notices" must be checked.'); ?>"
class="default-btn">
Next <i class="fa fa-caret-right"></i>
</button>
</div>
</div>
</div>

View File

@@ -0,0 +1,25 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<div id="installer-switch-wrapper">
<span class="btn-group">
<button
type="button"
id="s1-switch-template-btn-basic"
class="s1-switch-template-btn"
data-template="<?php echo DUPX_Template::TEMPLATE_BASE; ?>"
title="Enable basic installer mode"
>
Basic
</button>
<button type="button" id="s1-switch-template-btn-advanced" class="s1-switch-template-btn active" title="Enable advanced installer mode">
Advanced
</button>
</span>
</div>

View File

@@ -0,0 +1,20 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<div id="validate_action" class="bottom-step-action margin-top-2" >
<div class="footer-buttons" >
<div class="content-left">
</div>
<div class="content-right" >
<button id="validate-button" type="button" class="default-btn">
Validate <i class="far fa-check-circle"></i>
</button>
</div>
</div>
</div>

View File

@@ -0,0 +1,61 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
$cpnlCanSel = true;
$cpnlDisplay = 'no-display';
$basicDisplay = '';
if ($cpnlCanSel && $paramsManager->getValue(PrmMng::PARAM_DB_VIEW_MODE) === 'cpnl') {
$cpnlDisplay = '';
$basicDisplay = 'no-display';
}
?>
<div id="base-setup-area-header" class="hdr-sub1 toggle-hdr close" data-type="toggle" data-target="#base-setup-area">
<a href="javascript:void(0)"><i class="fa fa-minus-square"></i>Setup</a>
</div>
<div id="base-setup-area" class="hdr-sub1-area dupx-opts">
<div id="s1-area-setup-tabs" class="hdr-sub1-area tabs-area dupx-opts" >
<div class="tabs">
<ul>
<li>
<a href="#tabs-1-setup">Database</a>
</li>
<li>
<a href="#tabs-2-setup">Settings</a>
</li>
</ul>
<div id="tabs-1-setup">
<?php
if ($cpnlCanSel) {
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_VIEW_MODE);
}
?>
<div class="s2-basic-pane <?php echo $basicDisplay; ?>">
<?php dupxTplRender('pages-parts/step1/database-tabs/basic-db-connection'); ?>
</div>
<?php if ($cpnlCanSel) { ?>
<div class="s2-cpnl-pane <?php echo $cpnlDisplay; ?>">
<?php
dupxTplRender('pages-parts/step1/database-tabs/cpanel-panel');
?>
</div>
<?php } ?>
</div>
<div id="tabs-2-setup">
<?php dupxTplRender('pages-parts/step1/options-tabs/settings'); ?>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,31 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
?>
<div id="next_action" class="bottom-step-action no-display" >
<div class="footer-buttons">
<div class="content-left">
<?php
dupxTplRender('pages-parts/step1/terms-and-conditions');
PrmMng::getInstance()->getHtmlFormParam(PrmMng::PARAM_ACCEPT_TERM_COND);
?>
</div>
<div class="content-right" >
<button
id="s1-deploy-btn"
type="button"
title="<?php echo DUPX_U::esc_attr('To enable this button the checkbox above under the "Terms & Notices" must be checked.'); ?>"
class="default-btn">
Next <i class="fa fa-caret-right"></i>
</button>
</div>
</div>
</div>

View File

@@ -0,0 +1,56 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$state = DUPX_InstallerState::getInstance();
$paramsManager = PrmMng::getInstance();
if ($state->getMode() === DUPX_InstallerState::MODE_OVR_INSTALL && $paramsManager->getValue(PrmMng::PARAM_DB_DISPLAY_OVERWIRE_WARNING)) {
$displayOverwrite = true;
} else {
$displayOverwrite = false;
}
?>
<div id="s2-db-basic">
<div class="hdr-sub3 database-setup-title">
<i class="fas fa-database"></i> Database Connection
</div>
<?php if ($displayOverwrite) : ?>
<div id="s2-db-basic-overwrite">
<b style='color:maroon'>Ready to connect to existing sites database? </b><br/>
<div class="warn-text">
The existing site's database settings are ready to be applied below.
If you want to connect to this database and replace all its data then
click the 'Apply button' to set the placeholder values.
To use different database settings click the 'Reset button' to clear and set new values.
<br/><br/>
<i>
<i class="fas fa-exclamation-triangle fa-sm"></i>
Warning: Please note that reusing an existing site's database will <u>overwrite</u> all of its data. If you're not 100% sure about
using these database settings, then create a new database and use the new credentials instead.
</i>
</div>
<div class="btn-area">
<input type="button" value="Apply" class="secondary-btn small" onclick="DUPX.checkOverwriteParameters()">
<input type="button" value="Reset" class="secondary-btn small" onclick="DUPX.resetParameters()">
</div>
</div>
<?php
endif;
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_ACTION);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_HOST);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_NAME);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_USER);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_PASS);
?>
</div>

View File

@@ -0,0 +1,64 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
use Duplicator\Installer\Utils\InstallerLinkManager;
$paramsManager = PrmMng::getInstance();
$wpHostUrl = InstallerLinkManager::getCampaignUrl('installer', "For cPanel Get Pro");
$freeStep2Url = InstallerLinkManager::getCampaignUrl('installer', "With Pro use cPanel without leaving");
$freeNoteUrl = InstallerLinkManager::getCampaignUrl('installer', "With Pro improve cPanel workflow");
$pageURL = DUPX_HTTP::get_page_url(false);
$hostScheme = parse_url($pageURL, PHP_URL_SCHEME);
$hostName = parse_url($pageURL, PHP_URL_HOST);
$currentHostUrl = "{$hostScheme}://{$hostName}";
$cpanelURL = DUPX_U::esc_url('https://' . $_SERVER['SERVER_NAME'] . ':2083');
?>
<div class="hdr-sub3 database-setup-title">cPanel Connection</div>
<div class="s2-gopro">
<h2>
cPanel Connectivity
</h2>
<div class="s1-cpanel-whatis">
<a href="https://cpanel.net" target="cpanel">What is cPanel?</a>
</div>
<?php if (DUPX_HTTP::is_url_active($currentHostUrl, 2083)) : ?>
<div class='s1-cpanel-login'>
Click the link below to login to this server's cPanel<br/>
<a href="<?php echo $cpanelURL; ?>" target="cpanel">[<?php echo DUPX_U::esc_html($currentHostUrl); ?>:2083]</a><br/>
<small><i>cPanel support is available only in Duplicator Pro with participating hosts.</i></small>
</div>
<?php else : ?>
<div class='s1-cpanel-off'>
This server does not appear to support cPanel!<br/>
Consider <a href="<?php echo DUPX_U::esc_url($wpHostUrl); ?>" target="cpanel">upgrading</a> to a host that does.<br/>
<small><i>cPanel support is available only in Duplicator Pro with participating hosts.</i></small>
</div>
<?php endif; ?>
<a target="_blank" href="<?php echo DUPX_U::esc_url($freeStep2Url); ?>"><b>Duplicator Pro</b></a> cPanel connectivity allows the following
<i>without leaving this installer:</i>
<ul>
<li>Directly login to cPanel</li>
<li>Instantly create new databases &amp; users</li>
<li>Preview and select existing databases &amp; users</li>
</ul>
<small>
Note: Hosts that support cPanel provide remote access to server resources, allowing operations such as direct database and user creation.
<a target="_blank" href="<?php echo DUPX_U::esc_url($freeNoteUrl); ?>">Duplicator Pro</a>
supports cPanel API access, which can help improve and speed up your workflow.
</small>
</div>

View File

@@ -0,0 +1,39 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<div class="hdr-sub3">Extraction Settings</div>
<div class="help-target">
<?php // DUPX_View_Funcs::helpIconLink('step2'); ?>
</div>
<?php
if (DUPX_InstallerState::isRestoreBackup()) {
dupxTplRender('parts/restore-backup-mode-notice');
}
if (DUPX_Custom_Host_Manager::getInstance()->isManaged()) {
$paramsManager->setFormNote(PrmMng::PARAM_DB_TABLE_PREFIX, 'The table prefix must be set according to the managed hosting where you install the site.');
}
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_TABLE_PREFIX);
?>
<div class="param-wrapper" >
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_MYSQL_MODE);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_MYSQL_MODE_OPTS);
?>
</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_ENGINE);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_SPLIT_CREATES);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_VIEW_CREATION);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_PROC_CREATION);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_FUNC_CREATION);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_REMOVE_DEFINER);

View File

@@ -0,0 +1,58 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$archiveConfig = DUPX_ArchiveConfig::getInstance();
?>
<div id="tabs-2">
<table class="s1-archive-local">
<tr>
<td colspan="2"><div class="hdr-sub3">Archive File</div></td>
</tr>
<tr>
<td>Created:</td>
<td><?php echo $archiveConfig->created; ?> </td>
</tr>
<tr>
<td>Size:</td>
<td><?php echo DUPX_U::readableByteSize(DUPX_Conf_Utils::archiveSize()); ?> </td>
</tr>
<tr>
<td>Archive:</td>
<td><?php echo DUPX_ArchiveConfig::getInstance()->package_name; ?> </td>
</tr>
</table>
<table class="s1-archive-local">
<tr>
<td colspan="2"><div class="hdr-sub3">Site Details</div></td>
</tr>
<tr>
<td>Site:</td>
<td><?php echo DUPX_U::esc_html($archiveConfig->blogname); ?> </td>
</tr>
<tr>
<td>URL:</td>
<td><?php echo DUPX_U::esc_html(rtrim($archiveConfig->getRealValue('siteUrl'), '/')); ?> </td>
</tr>
<tr>
<td>Notes:</td>
<td><?php echo strlen($archiveConfig->package_notes) ? "{$archiveConfig->package_notes}" : " - no notes - "; ?></td>
</tr>
<?php if ($archiveConfig->exportOnlyDB) : ?>
<tr>
<td>Mode:</td>
<td>Archive only database was enabled during package package creation.</td>
</tr>
<?php endif; ?>
</table>
</div>

View File

@@ -0,0 +1,21 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<div id="tabs-1">
<?php dupxTplRender('pages-parts/step1/info-tabs/overview-description'); ?>
<div class="margin-top-1" >
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_INST_TYPE);
?>
</div>
</div>

View File

@@ -0,0 +1,31 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
$hostManager = DUPX_Custom_Host_Manager::getInstance();
$overwriteMode = (DUPX_InstallerState::getInstance()->getMode() === DUPX_InstallerState::MODE_OVR_INSTALL);
?>
<div id="overview-description-wrapper" class="box <?php echo $overwriteMode ? 'warning-easy' : 'info'; ?>" >
<?php
dupxTplRender('pages-parts/step1/info-tabs/overviews/restore-backup');
dupxTplRender('pages-parts/step1/info-tabs/overviews/type-single-site');
if (($identifier = $hostManager->isManaged()) !== false) {
$hostObj = $hostManager->getHosting($identifier);
?>
<hr class="separator">
<h3>
<b><?php echo $hostObj->getLabel(); ?></b> managed hosting detected
</h3>
<p>
The installation is occurring on a WordPress managed host.
Managed hosts are more restrictive than standard shared hosts so some installer settings cannot be changed.
These settings include new path, new URL, database connection data, and wp-config settings.
</p>
<?php } ?>
</div>

View File

@@ -0,0 +1,59 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
if (DUPX_InstallerState::instTypeAvaiable(DUPX_InstallerState::INSTALL_RBACKUP_SINGLE_SITE)) {
$instTypeClass = 'install-type-' . DUPX_InstallerState::INSTALL_RBACKUP_SINGLE_SITE;
} else {
return;
}
$overwriteMode = (DUPX_InstallerState::getInstance()->getMode() === DUPX_InstallerState::MODE_OVR_INSTALL);
$display = DUPX_InstallerState::getInstance()->isInstType(
array(
DUPX_InstallerState::INSTALL_RBACKUP_SINGLE_SITE
)
);
?>
<div class="overview-description <?php echo $instTypeClass . ($display ? '' : ' no-display'); ?>">
<div class="details">
<div class="help-icon">
<i><?php DUPX_View_Funcs::helpLink('step1', '<i class="far fa-question-circle"></i>'); ?></i>
</div>
<table>
<tr>
<td>Views:</td>
<td>
Try
<span class="link-style" onclick="DUPX.blinkAnimation('s1-switch-template-btn-basic', 400, 3)">Basic</span>
<sup class="hlp-new-lbl">new</sup> or
<span class="link-style" onclick="DUPX.blinkAnimation('s1-switch-template-btn-advanced', 400, 3)">Advanced</span> views
</td>
</tr>
<tr>
<td>Status:</td>
<td>Restore Single Site Backup</td>
</tr>
<tr>
<td>Mode:</td>
<td>
<?php
echo $overwriteMode ? '<i class="fas fa-exclamation-triangle"></i>&nbsp;' : '';
echo DUPX_InstallerState::getInstance()->getHtmlModeHeader();
if ($overwriteMode) {
echo '<div class="overwrite">
This will clear all site data and the current archive will be installed. This process cannot be undone!
</div>';
}
?>
</td>
</tr>
</table>
</div>
</div>

View File

@@ -0,0 +1,54 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
if (DUPX_InstallerState::instTypeAvaiable(DUPX_InstallerState::INSTALL_SINGLE_SITE)) {
$instTypeClass = 'install-type-' . DUPX_InstallerState::INSTALL_SINGLE_SITE;
} else {
return;
}
$overwriteMode = (DUPX_InstallerState::getInstance()->getMode() === DUPX_InstallerState::MODE_OVR_INSTALL);
$display = DUPX_InstallerState::getInstance()->isInstType(DUPX_InstallerState::INSTALL_SINGLE_SITE);
?>
<div class="overview-description <?php echo $instTypeClass . ($display ? '' : ' no-display'); ?>">
<div class="details">
<div class="help-icon">
<i><?php DUPX_View_Funcs::helpLink('step1', '<i class="far fa-question-circle"></i>'); ?></i>
</div>
<table>
<tr>
<td>View:</td>
<td>
Try
<span class="link-style" onclick="DUPX.blinkAnimation('s1-switch-template-btn-basic', 400, 3)">Basic</span>
<sup class="hlp-new-lbl">new</sup> or
<span class="link-style" onclick="DUPX.blinkAnimation('s1-switch-template-btn-advanced', 400, 3)">Advanced</span> views
</td>
</tr>
<tr>
<td>Status:</td>
<td>Standard Single Site Setup</td>
</tr>
<tr>
<td>Mode:</td>
<td>
<?php
echo $overwriteMode ? '<i class="fas fa-exclamation-triangle"></i>&nbsp;' : '';
echo DUPX_InstallerState::getInstance()->getHtmlModeHeader();
if ($overwriteMode) {
echo '<div class="overwrite">
This will clear all site data and the current archive will be installed. This process cannot be undone!
</div>';
}
?>
</td>
</tr>
</table>
</div>
</div>

View File

@@ -0,0 +1,28 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<div id="overview-area-header" class="hdr-sub1 toggle-hdr close" data-type="toggle" data-target="#s1-area-archive-file">
<a id="s1-area-archive-file-link"><i class="fa fa-minus-square"></i>Overview</a>
</div>
<div id="s1-area-archive-file" class="hdr-sub1-area tabs-area dupx-opts" >
<div class="tabs">
<ul>
<li>
<a href="#tabs-1">Installation</a>
</li>
<li>
<a href="#tabs-2">Archive</a>
</li>
</ul>
<?php
dupxTplRender('pages-parts/step1/info-tabs/general');
dupxTplRender('pages-parts/step1/info-tabs/archive');
?>
</div>
</div>

View File

@@ -0,0 +1,20 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<form id="s1-input-form" method="post" class="content-form" autocomplete="off" >
<div class="main-form-content" >
<?php
dupxTplRender('pages-parts/step1/info');
dupxTplRender('pages-parts/step1/base-setup');
dupxTplRender('pages-parts/step1/options');
dupxTplRender('parts/validation/validate-area');
?>
</div>
<?php dupxTplRender('pages-parts/step1/actions-part'); ?>
</form>

View File

@@ -0,0 +1,63 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
use Duplicator\Libs\Snap\SnapOS;
$paramsManager = PrmMng::getInstance();
$archiveConfig = DUPX_ArchiveConfig::getInstance();
?>
<div class="help-target">
<?php //DUPX_View_Funcs::helpIconLink('step1'); ?>
</div>
<div class="hdr-sub3">Processing</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_ARCHIVE_ENGINE);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_ZIP_THROTTLING);
?>
<div class="hdr-sub3 margin-top-2">Extraction Flow</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_ARCHIVE_ACTION);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_ARCHIVE_ENGINE_SKIP_WP_FILES);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_FILE_TIME);
if (!SnapOS::isWindows()) {
?>
<div class="param-wrapper" >
<?php $paramsManager->getHtmlFormParam(PrmMng::PARAM_SET_FILE_PERMS); ?>
&nbsp;
<?php $paramsManager->getHtmlFormParam(PrmMng::PARAM_FILE_PERMS_VALUE); ?>
</div>
<div class="param-wrapper" >
<?php $paramsManager->getHtmlFormParam(PrmMng::PARAM_SET_DIR_PERMS); ?>
&nbsp;
<?php $paramsManager->getHtmlFormParam(PrmMng::PARAM_DIR_PERMS_VALUE); ?>
</div>
<?php
}
?>
<div class="hdr-sub3 margin-top-2">Configuration Files</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONFIG);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_HTACCESS_CONFIG);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_OTHER_CONFIG);
?>
<div class="hdr-sub3 margin-top-2">General</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_USERS_MODE);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_LOGGING);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_REMOVE_RENDUNDANT);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_REMOVE_USERS_WITHOUT_PERMISSIONS);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_SAFE_MODE);

View File

@@ -0,0 +1,19 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<div class="hdr-sub3 margin-top-2">Engine Settings</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_ARCHIVE_ENGINE);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_ARCHIVE_ENGINE_SKIP_WP_FILES);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_ENGINE);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_ZIP_THROTTLING);

View File

@@ -0,0 +1,41 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
use Duplicator\Installer\Utils\InstallerUpsell;
$paramsManager = PrmMng::getInstance();
?>
<div class="hdr-sub3">
Secondary URLs and paths
<sup
class="pro-flag pro-flag-close"
data-tooltip-title="Upgrade Features"
data-tooltip="<?php echo DUPX_U::esc_attr(
'<p>Enhancements for full customization of all WordPress paths and URLs are available in Duplicator Pro.</p>' .
InstallerUpsell::getCampaignTooltipHTML(array('utm_medium' => 'installer', 'utm_content' => "Secondary URLs and paths"))
); ?>">*
</sup>
</div>
<div id="other-path-url-options">
<small>*All of these options are configurable with Duplicator Pro.</small>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_PATH_WP_CORE_NEW);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_SITE_URL);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_PATH_CONTENT_NEW);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_URL_CONTENT_NEW);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_PATH_UPLOADS_NEW);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_URL_UPLOADS_NEW);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_PATH_PLUGINS_NEW);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_URL_PLUGINS_NEW);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_PATH_MUPLUGINS_NEW);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_URL_MUPLUGINS_NEW);
?>
</div>

View File

@@ -0,0 +1,20 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<div class="hdr-sub3">General</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_BLOGNAME);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_URL_NEW);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_PATH_NEW);

View File

@@ -0,0 +1,34 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<div id="options-area-header" class="hdr-sub1 toggle-hdr open" data-type="toggle" data-target="#step1-options-wrapper">
<a href="javascript:void(0)"><i class="fa fa-plus-square"></i>Options</a>
</div>
<div id="step1-options-wrapper" class="hdr-sub1-area tabs-area no-display">
<div class="tabs">
<ul>
<li><a href="#tabs-advanced">Advanced</a></li>
<li><a href="#tabs-database">Database</a></li>
<li>
<a href="#tabs-other">
URLs & Paths
</a>
</li>
</ul>
<div id="tabs-advanced" class="dupx-opts" >
<?php dupxTplRender('pages-parts/step1/options-tabs/advanced'); ?>
</div>
<div id="tabs-database" class="dupx-opts" >
<?php dupxTplRender('pages-parts/step1/database-tabs/db-options'); ?>
</div>
<div id="tabs-other" class="dupx-opts" >
<?php dupxTplRender('pages-parts/step1/options-tabs/other-urls-path'); ?>
</div>
</div>
</div>

View File

@@ -0,0 +1,85 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
/**
* Variables
*
* @var int $tableCount
*/
$paramsManager = PrmMng::getInstance();
$recoveryLink = PrmMng::getInstance()->getValue(PrmMng::PARAM_RECOVERY_LINK);
$txtTable = $tableCount . ' table' . ($tableCount == 1 ? '' : 's');
?>
<div id="db-install-dialog-confirm" title="Install Confirmation" style="display:none">
<p>
<i>Run installer with these settings?</i>
</p>
<div class="hdr-sub3">
Site Settings
</div>
<table class="margin-bottom-1 margin-left-1 dup-s1-confirm-dlg">
<tr>
<td>Install Type: &nbsp; </td>
<td><?php echo DUPX_InstallerState::installTypeToString(); ?></td>
</tr>
<tr>
<td>New URL:</td>
<td><i id="dlg-url-new"><?php echo DUPX_U::esc_html($paramsManager->getValue(PrmMng::PARAM_URL_NEW)); ?></i></td>
</tr>
<tr>
<td>New Path:</td>
<td><i id="dlg-path-new"><?php echo DUPX_U::esc_html($paramsManager->getValue(PrmMng::PARAM_PATH_NEW)); ?></i></td>
</tr>
</table>
<div class="hdr-sub3">
Database Settings
</div>
<table class="margin-left-1 margin-bottom-1 dup-s1-confirm-dlg">
<tr>
<td>Server:</td>
<td><?php echo DUPX_U::esc_html($paramsManager->getValue(PrmMng::PARAM_DB_HOST)); ?></td>
</tr>
<tr>
<td>Name:</td>
<td><?php echo DUPX_U::esc_html($paramsManager->getValue(PrmMng::PARAM_DB_NAME)); ?></td>
</tr>
<tr>
<td>User:</td>
<td><?php echo DUPX_U::esc_html($paramsManager->getValue(PrmMng::PARAM_DB_USER)); ?></td>
</tr>
<tr>
<td>Data:</td>
<?php if ($tableCount > 0) : ?>
<td class="maroon">
<?php echo $tableCount . " existing table" . ($tableCount == 1 ? '' : 's') . " will be overwritten or modified in the database"; ?>
</td>
<?php else : ?>
<td>
No existing tables will be overwritten in the database
</td>
<?php endif; ?>
</tr>
</table>
<?php if ($tableCount > 0) { ?>
<div class="margn-bottom-1" >
<small class="maroon">
<i class="fas fa-exclamation-circle"></i>
NOTICE: Be sure the database parameters are correct! This database contains <b><u><?php echo $txtTable; ?></u></b> that will be modified
and/or removed! Only proceed if the data is no longer needed. Entering the wrong information WILL overwrite an existing database.
Make sure to have backups of all your data before proceeding.
</small>
</div>
<?php } ?>
</div>

View File

@@ -0,0 +1,15 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/head/header-main', array(
'htmlTitle' => 'Step <span class="step">1</span> of 4: Deployment <div class="sub-header">This step will extract the archive file contents.</div>',
'showInstallerMode' => true,
'showSwitchView' => true,
'showInstallerLog' => false
));

View File

@@ -0,0 +1,97 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<div id="dialog-terms" title="Terms and Notices" style="display:none">
<div id="s1-warning-msg">
<b>TERMS &amp; NOTICES</b> <br/><br/>
<b>Disclaimer:</b>
The Duplicator software and installer should be used at your own risk.
Users should always back up or have backups of your database and files before running this installer.
If you're not sure about how to use this tool then please enlist the guidance of a technical professional.
<u>Always</u> test this installer in a sandbox environment
before trying to deploy into a production environment.
Be sure that if anything happens during the install that you have a backup recovery plan in place.
By accepting this agreement the users of this software do not hold liable Snapcreek LLC or any of its affiliates
liable for any issues that might occur during use of this software.
<br/><br/>
<b>Database:</b>
Do not connect to an existing database unless you are 100% sure you want to remove all of it's data.
Connecting to a database that already exists will permanently
DELETE all data in that database.
This tool is designed to populate and fill a database with NEW data
from a duplicated database using the SQL script in the package name above.
<br/><br/>
<b>Setup:</b>
Only the archive and installer file should be in the install directory,
unless you have manually extracted the package and selected the 'Manual Archive Extraction' option under options.
All other files will be OVERWRITTEN during install. Make sure you have full backups of all your databases and files
before continuing with an installation.
Manual extraction requires that all contents in the package are extracted to the same directory as the installer file.
Manual extraction is only needed when your server does not support the ZipArchive extension.
Please see the online help for more details.
<br/><br/>
<b>After Install:</b> When you are done with the installation you must remove these files/directories:
<ul>
<li>dup-installer</li>
<li>installer.php</li>
<li>installer-backup.php</li>
<li>dup-installer-bootlog__[HASH].txt</li>
</ul>
These files contain sensitive information and should not remain on a production system for system integrity and security protection.
<br/><br/>
<b>License Overview</b><br/>
Duplicator is licensed under the GPL v3 https://www.gnu.org/licenses/gpl-3.0.en.html
including the following disclaimers and limitation of liability.
<br/><br/>
<b>Disclaimer of Warranty</b><br/>
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
<br/><br/>
<b>Limitation of Liability</b><br/>
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER,
OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO
OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
<br/><br/>
</div>
</div>
<script>
/**
* View the terms an notices section */
DUPX.viewTerms = function ()
{
$( "#dialog-terms" ).dialog({
resizable: false,
height: 600,
width: 550,
modal: true,
position: { my: 'top', at: 'top+150' },
buttons: {
"OK": function() {
$(this).dialog("close");
}
}
});
}
</script>

View File

@@ -0,0 +1,49 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<form
id='s2-input-form'
method="post"
class="content-form"
autocomplete="off"
data-parsley-validate="true"
data-parsley-excluded="input[type=hidden], [disabled], :hidden"
>
<div class="main-form-content" >
<!-- START TABS -->
<div class="hdr-sub1-area tabs-area">
<div id="tabs" class="no-display">
<ul>
<li><a href="#tabs-database-tables">Tables</a></li>
<li><a href="#tabs-database-general">Advanced</a></li>
</ul>
<div id="tabs-database-tables">
<?php dupxTplRender('pages-parts/step2/options-tabs/tables'); ?>
</div>
<div id="tabs-database-general">
<?php dupxTplRender('pages-parts/step2/options-tabs/general'); ?>
</div>
</div>
</div>
</div>
<div class="footer-buttons margin-top-2">
<div class="content-left">
</div>
<div class="content-right" >
<button id="s2-next-btn-basic" type="button" onclick="DUPX.runDeployment()" class="default-btn">
Next <i class="fa fa-caret-right"></i>
</button>
</div>
</div>
</form>

View File

@@ -0,0 +1,31 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<div class="help-target">
<?php //DUPX_View_Funcs::helpIconLink('step2'); ?>
</div>
<div class="dupx-opts">
<?php
if (DUPX_InstallerState::isRestoreBackup()) {
dupxTplRender('parts/restore-backup-mode-notice');
} else {
?>
<div class="hdr-sub3">
Charset & Collation
</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_CHARSET);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_COLLATE);
}
?>
</div>

View File

@@ -0,0 +1,32 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<div class="help-target">
<?php //DUPX_View_Funcs::helpIconLink('step2'); ?>
</div>
<div class="dupx-opts">
<?php
if (DUPX_InstallerState::isRestoreBackup()) {
dupxTplRender('parts/restore-backup-mode-notice');
} else {
?>
<div class="hdr-sub3">
Import and Update
</div>
<small>
To exclude a table from install click the "Import" checkbox. To prevent a table from being updated with the new site data click the "Update" checkbox.
</small><br/>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_DB_TABLES);
}?>
</div>

View File

@@ -0,0 +1,12 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/head/header-main', array(
'htmlTitle' => 'Step <span class="step">2</span> of 4: Install Database <div class="sub-header">This step will install the database from the archive.</div>'
));

View File

@@ -0,0 +1,28 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<!-- =========================================
VIEW: STEP 3- INPUT -->
<form id='s3-input-form' method="post" class="content-form" autocomplete="off">
<div class="main-form-content" >
<?php dupxTplRender('pages-parts/step3/options'); ?>
</div>
<div class="footer-buttons margin-top-2">
<div class="content-left">
</div>
<div class="content-right" >
<button id="s3-next" type="button" onclick="DUPX.runSiteUpdate()" class="default-btn"> Next <i class="fa fa-caret-right"></i> </button>
</div>
</div>
</form>

View File

@@ -0,0 +1,23 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<div class="help-target">
<?php //DUPX_View_Funcs::helpIconLink('step3'); ?>
</div>
<div class="hdr-sub3"> <b>Activate Plugins Settings</b></div>
<?php
if (DUPX_InstallerState::isRestoreBackup()) {
dupxTplRender('parts/restore-backup-mode-notice');
}
$paramsManager->getHtmlFormParam(PrmMng::PARAM_PLUGINS);

View File

@@ -0,0 +1,54 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
use Duplicator\Installer\Utils\InstallerUpsell;
$paramsManager = PrmMng::getInstance();
if (DUPX_InstallerState::isRestoreBackup()) {
?>
<div class="hdr-sub3">Search & replace settings</div>
<?php
dupxTplRender('parts/restore-backup-mode-notice');
return;
}
?>
<div class="help-target">
<?php //DUPX_View_Funcs::helpIconLink('step3'); ?>
</div>
<div class="hdr-sub3">
Custom Search and Replace
<sup class="pro-flag pro-flag-close"
data-tooltip-title="Upgrade Features"
data-tooltip="<?php echo DUPX_U::esc_attr(
'<p>Enhance the install experiance with custom search and replace features.</p>' .
InstallerUpsell::getCampaignTooltipHTML(array('utm_medium' => 'installer', 'utm_content' => "Custom Search and Replace"))
); ?>">*
</sup>
</div>
<p style="text-align: center;" >
Add additional search and replace URLs to replace additional data.<br/>
<i>This option is available in Duplicator Pro.</i>
</p>
<div class="hdr-sub3 margin-top-2">Database Scan Options</div>
<div class="dupx-opts">
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_SKIP_PATH_REPLACE);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_EMAIL_REPLACE);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_FULL_SEARCH);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_POSTGUID);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_MAX_SERIALIZE_CHECK);
?>
</div>

View File

@@ -0,0 +1,26 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<div class="help-target">
<?php //DUPX_View_Funcs::helpIconLink('step3'); ?>
</div>
<?php
if (DUPX_InstallerState::isRestoreBackup()) {
?>
<div class="hdr-sub3">User settings</div>
<?php
dupxTplRender('parts/restore-backup-mode-notice');
} else {
dupxTplRender('pages-parts/step3/usersParts/usersPwdReset');
dupxTplRender('pages-parts/step3/usersParts/newAdminUser');
}

View File

@@ -0,0 +1,88 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
use Duplicator\Installer\Utils\InstallerUpsell;
$paramsManager = PrmMng::getInstance();
?>
<div class="help-target">
<?php //DUPX_View_Funcs::helpIconLink('step3'); ?>
</div>
<div class="hdr-sub3">
WP-Config File Setup
<sup
class="pro-flag pro-flag-close"
data-tooltip-title="Upgrade Features"
data-tooltip="<?php echo DUPX_U::esc_attr(
'<p>Quickly and easily edit all your WordPress wp-config.php settings directly from the installer with Duplicator Pro</p>' .
InstallerUpsell::getCampaignTooltipHTML(array('utm_medium' => 'installer', 'utm_content' => "WP-Config File Setup"))
); ?>"
aria-expanded="false">*
</sup>
</div>
<div class="dupx-opts">
<?php
if (DUPX_InstallerState::isRestoreBackup()) {
dupxTplRender('parts/restore-backup-mode-notice');
} else {
?>
<small>
See the <a href="https://wordpress.org/support/article/editing-wp-config-php/" target="_blank">WordPress documentation</a>
for more information and specifications. All items are fully editable in Duplicator Pro.
</small>
<div class="hdr-sub3 margin-top-2">CONTENT <small class="silver">Posts/Pages</small></div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_DISALLOW_FILE_EDIT);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_DISALLOW_FILE_MODS);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_AUTOSAVE_INTERVAL);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WP_POST_REVISIONS);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_EMPTY_TRASH_DAYS);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_IMAGE_EDIT_OVERWRITE);
?>
<div class="hdr-sub3 margin-top-2">SECURITY</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_FORCE_SSL_ADMIN);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_AUTOMATIC_UPDATER_DISABLED);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WP_AUTO_UPDATE_CORE);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_GEN_WP_AUTH_KEY);
?>
<div class="hdr-sub3 margin-top-2">CRON</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_ALTERNATE_WP_CRON);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_DISABLE_WP_CRON);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WP_CRON_LOCK_TIMEOUT);
?>
<div class="hdr-sub3 margin-top-2">DEBUG</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WP_DEBUG);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WP_DEBUG_LOG);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WP_DEBUG_DISPLAY);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_SCRIPT_DEBUG);
?>
<div class="hdr-sub3 margin-top-2">SYSTEM</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WP_CACHE);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WPCACHEHOME);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WP_MEMORY_LIMIT);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WP_MAX_MEMORY_LIMIT);
?>
<div class="hdr-sub3 margin-top-2">GENERAL</div>
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WP_DISABLE_FATAL_ERROR_HANDLER);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_MYSQL_CLIENT_FLAGS);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_CONCATENATE_SCRIPTS);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_SAVEQUERIES);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_COOKIE_DOMAIN);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_CONF_WP_TEMP_DIR);
}
?>
</div>

View File

@@ -0,0 +1,58 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
$wpConfig = $paramsManager->getValue(PrmMng::PARAM_WP_CONFIG);
$skipWpConfig = ($wpConfig == 'nothing' || $wpConfig == 'original');
?>
<!-- ==========================
OPTIONS -->
<div class="hdr-sub1" >
Options
</div>
<!-- START TABS -->
<div class="hdr-sub1-area tabs-area">
<div id="tabs" class="no-display">
<ul>
<li><a href="#tabs-search-rules">Engine</a></li>
<li><a href="#tabs-admin-account">Admin Account</a></li>
<li><a href="#tabs-plugins">Plugins</a></li>
<?php if (!$skipWpConfig) { ?>
<li><a href="#tabs-wp-config-file">WP-Config</a></li>
<?php } ?>
</ul>
<!-- =====================
SEARCH RULES TAB -->
<div id="tabs-search-rules">
<?php dupxTplRender('pages-parts/step3/options-tabs/search-rules'); ?>
</div>
<!-- =====================
ADMIN TAB -->
<div id="tabs-admin-account">
<?php dupxTplRender('pages-parts/step3/options-tabs/users'); ?>
</div>
<!-- =====================
PLUGINS TAB -->
<div id="tabs-plugins">
<?php dupxTplRender('pages-parts/step3/options-tabs/plugins'); ?>
</div>
<?php if (!$skipWpConfig) { ?>
<!-- =====================
WP-CONFIG TAB -->
<div id="tabs-wp-config-file">
<?php dupxTplRender('pages-parts/step3/options-tabs/wp-config'); ?>
</div>
<?php } ?>
</div>
</div>

View File

@@ -0,0 +1,13 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/head/header-main', array(
'htmlTitle' => 'Step <span class="step">3</span> of 4: ' .
'Update Data <div class="sub-header">This step will update the database and config files to match your new sites values.</div>'
));

View File

@@ -0,0 +1,32 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<div class="hdr-sub3 margin-top-2">New Admin Account</div>
<p style="text-align: center">
<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>
</p>
<div class="dupx-opts">
<?php $paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_ADMIN_CREATE_NEW); ?>
<div id="new-admin-fields-wrapper" >
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_ADMIN_NAME);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_ADMIN_PASSWORD);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_ADMIN_MAIL);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_ADMIN_NICKNAME);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_ADMIN_FIRST_NAME);
$paramsManager->getHtmlFormParam(PrmMng::PARAM_WP_ADMIN_LAST_NAME);
?>
</div>
</div>

View File

@@ -0,0 +1,19 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
?>
<div class="hdr-sub3">Admin Password Reset</div>
<div class="dupx-opts">
<?php
$paramsManager->getHtmlFormParam(PrmMng::PARAM_USERS_PWD_RESET);
?>
</div>

View File

@@ -0,0 +1,35 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
$safe_mode = $paramsManager->getValue(PrmMng::PARAM_SAFE_MODE);
?>
<div class="flex-final-button-wrapper" >
<div class="button-wrapper" >
<a id="s4-final-btn" class="default-btn" href="<?php echo htmlspecialchars(DUPX_InstallerState::getAdminLogin()); ?>" target="_blank">
<i class="fab fa-wordpress"></i> Admin Login
</a>
</div>
<div class="content-wrapper" >
Click the Admin Login button to login and finalize this install.<br />
<?php $paramsManager->getHtmlFormParam(PrmMng::PARAM_AUTO_CLEAN_INSTALLER_FILES); ?>
</div>
</div>
<!-- WARN: SAFE MODE MESSAGES -->
<div class="s4-warn final-step-warn-item" style="display:<?php echo ($safe_mode > 0 ? 'block' : 'none') ?>">
<b><i class="fas fa-exclamation-triangle"></i> SAFE MODE:</b>
Safe mode has <u>deactivated</u> all plugins. Please be sure to enable your plugins after logging in.
<i>
If you notice that problems arise when activating
the plugins then active them one-by-one to isolate the plugin that could be causing the issue.
</i>
</div>

View File

@@ -0,0 +1,40 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
use Duplicator\Installer\Utils\InstallerLinkManager;
use Duplicator\Libs\Snap\SnapURL;
$paramsManager = PrmMng::getInstance();
$nManager = DUPX_NOTICE_MANAGER::getInstance();
$archiveConfig = DUPX_ArchiveConfig::getInstance();
?>
<div class="sub-title">
<b>Review</b>
</div>
<ul class="final-review-actions" >
<li>
Review this site's <a href="<?php echo DUPX_U::esc_url($paramsManager->getValue(PrmMng::PARAM_URL_NEW)); ?>" target="_blank">front-end</a>
<!--or re-run the installer and
<span class="link-style" data-go-step-one-url="<?php echo SnapURL::urlEncodeAll(DUPX_CSRF::getVal('installerOrigCall')); ?>" >
go back to step 1
</span> -->
</li>
<li>
<?php
$wpconfigNotice = $nManager->getFinalReporNoticeById('wp-config-changes');
$htaccessNorice = $nManager->getFinalReporNoticeById('htaccess-changes');
?>
Review the <?php echo $wpconfigNotice->longMsg; ?> and <?php echo $htaccessNorice->longMsg; ?>
</li>
<li>
For additional help visit the <a href="<?php echo InstallerLinkManager::getDocUrl('', 'install', 'final review'); ?>" target='_blank'>online FAQs</a>
</li>
</ul>

View File

@@ -0,0 +1,56 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
$paramsManager = PrmMng::getInstance();
$nManager = DUPX_NOTICE_MANAGER::getInstance();
$finalReportData = $paramsManager->getValue(PrmMng::PARAM_FINAL_REPORT_DATA);
?>
<div id="s4-install-report" >
<div id="s4-notice-reports" class="report-sections-list">
<?php
$nManager->displayFinalRepostSectionHtml('general', 'General Notices Report');
$nManager->displayFinalRepostSectionHtml('files', 'Files Notices Report');
$nManager->displayFinalRepostSectionHtml('database', 'Database Notices Report');
$nManager->displayFinalRepostSectionHtml('search_replace', 'Search and Replace Notices Report');
$nManager->displayFinalRepostSectionHtml('plugins', 'Plugins Actions Report');
?>
</div>
<table class="s4-report-results" >
<tr>
<th colspan="4">Database Report</th>
</tr>
<tr style="font-weight:bold">
<td style="width:150px"></td>
<td>Tables</td>
<td>Rows</td>
<td>Cells</td>
</tr>
<tr>
<td>Created</td>
<td><span><?php echo $finalReportData['extraction']['table_count']; ?></span></td>
<td><span><?php echo $finalReportData['extraction']['table_rows']; ?></span></td>
<td>n/a</td>
</tr>
<tr>
<td>Scanned</td>
<td><span><?php echo $finalReportData['replace']['scan_tables']; ?></span></td>
<td><span><?php echo $finalReportData['replace']['scan_rows']; ?></span></td>
<td><span><?php echo $finalReportData['replace']['scan_cells']; ?></span></td>
</tr>
<tr>
<td>Updated</td>
<td><span><?php echo $finalReportData['replace']['updt_tables']; ?></span></td>
<td><span><?php echo $finalReportData['replace']['updt_rows']; ?></span></td>
<td><span><?php echo $finalReportData['replace']['updt_cells']; ?></span></td>
</tr>
</table>
</div>

View File

@@ -0,0 +1,15 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<div id="important-final-step-warning">
<b><i class="fa fa-exclamation-triangle"></i> FINAL STEPS:</b>
Login into the WordPress Admin to remove all <?php DUPX_View_Funcs::helpLink('step4', 'installation files'); ?> and finalize the install process.
This install is <u>NOT</u> complete until all installer files have been completely removed. Leaving installer files on this server can
lead to security issues.
</div>

View File

@@ -0,0 +1,45 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
$nManager = DUPX_NOTICE_MANAGER::getInstance();
$noticesCount = DUPX_Ctrl_S4::getNoticesCount();
?>
<div class="sub-title">
<b>Install Result</b>
</div>
<table id="report-summary" class="s4-report-results margin-bottom-2">
<tbody>
<tr>
<td class="desc" >General Notices</td>
<td class="count" >(<?php echo $noticesCount['general']; ?>)</td>
<td class="badge" ><?php $nManager->getSectionErrLevelHtml('general'); ?></td>
</tr>
<tr>
<td class="desc" >Files Status</td>
<td class="count" >(<?php echo $noticesCount['files']; ?>)</td>
<td class="badge" > <?php $nManager->getSectionErrLevelHtml('files'); ?></td>
</tr>
<tr>
<td class="desc" >Database Status</td>
<td class="count" >(<?php echo $noticesCount['database']; ?>)</td>
<td class="badge" ><?php $nManager->getSectionErrLevelHtml('database'); ?></td>
</tr>
<tr>
<td class="desc" >Search and Replace Status</td>
<td class="count" >(<?php echo $noticesCount['search_replace']; ?>)</td>
<td class="badge" > <?php $nManager->getSectionErrLevelHtml('search_replace'); ?></td>
</tr>
<tr>
<td class="desc" >Plugins Status</td>
<td class="count" >(<?php echo $noticesCount['plugins']; ?>)</td>
<td class="badge" > <?php $nManager->getSectionErrLevelHtml('plugins'); ?></td>
</tr>
</tbody>
</table>

View File

@@ -0,0 +1,14 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/step4/actions/admin-login-button');
dupxTplRender('pages-parts/step4/important-final-notice');
dupxTplRender('pages-parts/step4/installer-result-summary');
dupxTplRender('pages-parts/step4/final-review-actions');
dupxTplRender('pages-parts/step4/full-report');

View File

@@ -0,0 +1,12 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
dupxTplRender('pages-parts/head/header-main', array(
'htmlTitle' => 'Step <span class="step">4</span> of 4: Test Site'
));

View File

@@ -0,0 +1,48 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Params\PrmMng;
use Duplicator\Installer\Utils\InstallerLinkManager;
$recoveryLink = PrmMng::getInstance()->getValue(PrmMng::PARAM_RECOVERY_LINK);
?>
<div id="ajaxerr-area" class="no-display">
<p>
<b>ERROR:</b> <div class="message"></div>
<i>Please try again an issue has occurred.</i>
</p>
<div>Please see the <?php DUPX_View_Funcs::installerLogLink(); ?> file for more details.</div>
<div id="ajaxerr-data">
<div class="html-content" ></div>
<pre class="pre-content"></pre>
</div>
<p>
<b>Additional Resources:</b><br/>
&raquo;
<a target='_blank' href='<?php echo InstallerLinkManager::getDocUrl('', 'install', 'Help Resources'); ?>'>
Help Resources
</a><br/>
&raquo;
<a target='_blank' href='<?php echo InstallerLinkManager::getCategoryUrl(InstallerLinkManager::TROUBLESHOOTING_CAT, 'install', 'Technical FAQ'); ?>'>
Technical FAQ
</a>
</p>
<p class="text-center">
<input id="ajax-error-try-again" type="button" class="default-btn" value="&laquo; Try Again" />
<?php if (!empty($recoveryLink)) { ?>
<a href="<?php echo DUPX_U::esc_url($recoveryLink); ?>" class="default-btn" target="_parent">
<i class="fas fa-undo-alt"></i> Restore Recovery Point
</a>
<?php } ?>
</p>
<p class="text-center">
<?php $url = DUPX_Constants::DUP_SITE_URL . 'contact/'; ?>
<i style='font-size:11px'>See online help for more details at <a href='<?php echo DUPX_U::esc_attr($url); ?>' target='_blank'>duplicator.com</a></i>
</p>
</div>

View File

@@ -0,0 +1,27 @@
<?php
/**
*
* @package Duplicator
* @copyright (c) 2023, Snap Creek LLC
*/
use Duplicator\Installer\Core\Params\PrmMng;
use Duplicator\Installer\Utils\InstallerLinkManager;
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
/**
* Variables
*
* @var string[] $features
*/
$feature = $features[array_rand($features)];
?>
<div id="duplicator-did-you-know" class="no-display">
<i class="fas fa-info-circle"></i>Did you know Duplicator Pro has: <?php echo $feature; ?>?
<a href="<?php echo InstallerLinkManager::getCampaignUrl('scan_did-you-know', $feature);?>" target="_blank">
Upgrade To Pro
</a>
<?php PrmMng::getInstance()->getHtmlFormParam(PrmMng::PARAM_SUBSCRIBE_EMAIL); ?>
</div>

View File

@@ -0,0 +1,58 @@
<?php
/**
*
* @package Duplicator
* @copyright (c) 2023, Snap Creek LLC
*/
use Duplicator\Installer\Utils\InstallerUpsell;
use Duplicator\Installer\Utils\InstallerLinkManager;
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
/**
* Variables
*
* @var string $featuresHTML
*/
?>
<div class="dup-settings-lite-cta">
<h5>Get Duplicator Pro and Unlock all the Powerful Features</h5>
<p>
Thanks for being a loyal Duplicator Lite user. Upgrade to Duplicator Pro to unlock all the awesome features and
experience why Duplicator is consistently rated the best WordPress migration plugin.
</p>
<p>
<?php
printf(
'We know that you will truly love Duplicator. It has over 4000+ five star ratings (%s) and is active on ' .
'over 1 million websites.',
str_repeat('<i class="fa fa-star" aria-hidden="true"></i>', 5)
);
?>
</p>
<h6>Pro Features:</h6>
<ul class="list">
<?php
foreach (InstallerUpsell::getCalloutCTAFeatureList() as $feature) {
?>
<li class="item">
<span>
<?php echo $feature; ?>
</span>
</li>
<?php
};
?>
</ul>
<p>
<a href="<?php echo DUPX_U::esc_url(InstallerLinkManager::getCampaignUrl('installer-footer-callout')); ?>" target="_blank" rel="noopener noreferrer">
Get Duplicator Pro Today and Unlock all the Powerful Features »
</a>
</p>
<p>
<strong>Bonus:</strong> Duplicator Lite users get <span class="green"><?php echo DUPX_Constants::UPSELL_DEFAULT_DISCOUNT; ?>% off regular price</span>,
automatically applied at checkout.
</p>
</div>

View File

@@ -0,0 +1,43 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
/* Variables */
/* @var $currentAction string */
?>
<div
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_Extraction::ACTION_DO_NOTHING .
($currentAction == DUP_Extraction::ACTION_DO_NOTHING ? '' : ' no-display'); ?>"
>
Note: <b>Files are extracted over existing files.</b>
After install, the destination folder will contain a combination of the old site files and the files extracted from the archive.
This option is the most conservative option for those who want to make sure they do not want to lose data.
</div>
<div
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_Extraction::ACTION_REMOVE_ALL_FILES .
($currentAction == DUP_Extraction::ACTION_REMOVE_ALL_FILES ? '' : ' no-display'); ?>"
>
Note: Before extracting the package files, <b>all files and folders in the installation folder will be removed</b>
except for folders that contain WordPress installations or Duplicator backup folders<br>
This option is recommended for those who want to delete all files related to old installations or external applications.
</div>
<div
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_Extraction::ACTION_REMOVE_UPLOADS .
($currentAction == DUP_Extraction::ACTION_REMOVE_UPLOADS ? '' : ' no-display'); ?>"
>
Note: Before extracting the package files, <b>all current media files will be removed</b> (wp-content/uploads)<br>
This option is for those who want to avoid having old site media mixed with new but have other files/folders
in the home path that they don't want to delete.
</div>
<div
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_Extraction::ACTION_REMOVE_WP_FILES .
($currentAction == DUP_Extraction::ACTION_REMOVE_WP_FILES ? '' : ' no-display'); ?>"
>
Note: Before extracting the package files, <b>all current WordPress core and content files and folders will be removed</b> (wp-include, wp-content ... )<br>
This option is for those who want to avoid having old site media mixed with new but have other files/folders
in the home path that they don't want to delete.
</div>

View File

@@ -0,0 +1,21 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<span class="s2-warning-emptydb">
Warning: The selected 'Action' above will remove <u>all data</u> from this database!
</span>
<span class="s2-warning-renamedb">
Notice: The selected 'Action' will rename <u>all existing tables</u> from the database name above with a prefix <?php echo $GLOBALS['DB_RENAME_PREFIX']; ?>
The prefix is only applied to existing tables and not the new tables that will be installed.
</span>
<span class="s2-warning-manualdb">
Notice: The 'Skip Database Extraction' action will prevent the SQL script (dup-database__[HASH].sql) in the archive from being executed.
The database above should already be pre-populated with the data for the site. The updates routines for updating the site URL and paths will be the
only SQL database commands applied to the database.
</span>

View File

@@ -0,0 +1,36 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
/* Variables */
/* @var $currentSkipMode string */
?>
<div
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_Extraction::FILTER_NONE .
($currentSkipMode == DUP_Extraction::FILTER_NONE ? '' : ' no-display'); ?>"
>
All Files in the archive are going to be extracted.
</div>
<div
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_Extraction::FILTER_SKIP_WP_CORE .
($currentSkipMode == DUP_Extraction::FILTER_SKIP_WP_CORE ? '' : ' no-display'); ?>"
>
When this option is chosen the wordpress core files, if any, are not modified. They are not deleted and/or extracted.
</div>
<div
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_Extraction::FILTER_SKIP_CORE_PLUG_THEMES .
($currentSkipMode == DUP_Extraction::FILTER_SKIP_CORE_PLUG_THEMES ? '' : ' no-display'); ?>"
>
When this option is chosen the wordpress core files, if any, are not modified. They are not deleted and/or extracted. </br>
Also, if a plugin (theme) exists on BOTH the host and and the archive, the contents of the host plugin (theme) are going to be kept.
</div>
<div
class="dynamic-sub-note dynamic-sub-note-<?php echo DUP_Extraction::FILTER_ONLY_MEDIA_PLUG_THEMES .
($currentSkipMode == DUP_Extraction::FILTER_ONLY_MEDIA_PLUG_THEMES ? '' : ' no-display'); ?>"
>
When this option is chosen only the "uploads" folder and plugins (themes) that don't exist on the host are going to be extracted.
</div>

View File

@@ -0,0 +1,17 @@
<?php
/**
*
* @package Duplicator/Installer
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<p>
<b>Import:</b> Adds all users from the source site to the target site. Does not remove or alter existing target users.
</p>
<p>
<b>Ignore:</b> Don't import users from the source site.
All content on the source site will be assigned to the <u>content author</u> selected user.
</p>

View File

@@ -0,0 +1,21 @@
<?php
/**
*
* @package Duplicator/Installer
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<p>
<b>Overwrite:</b> Overwrites users is the classic mode, users from the source site will be installed and those from the target site will be discarded.
</p>
<p>
<b>Keep:</b> Keeps all users of the target site by discarding users of the source site.
All content on the source site will be assigned to the <u>content author</u> selected user.
</p>
<p>
<b>Merge:</b> Merges users from the target site with users from the source site.
The target site users will be unchanged and the source site users will be added by remapping ids and logins if duplicated.
</p>

View File

@@ -0,0 +1,24 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
/** @var bool $display */
if (!isset($display)) {
$display = false;
}
?><div id="progress-area" class="<?php echo $display ? '' : 'no-display'; ?>">
<div style="width:500px; margin:auto">
<div class="progress-text"><i class="fas fa-circle-notch fa-spin"></i> <span id="progress-title"></span> <span id="progress-pct"></span></div>
<div id="secondary-progress-text"></div>
<div id="progress-notice"></div>
<div id="progress-bar"></div>
<h3>Please Wait...</h3><br/><br/>
<div id="progress-bottom-text"></div>
</div>
</div>

View File

@@ -0,0 +1,33 @@
<?php
/**
*
* @package Duplicator/Installer
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
/** @var int $numAdded */
/** @var int $numChanged */
/** @var string $csvUrl */
?>
<p>
<b><?php echo $numAdded; ?></b> users have been added<br>
<b><?php echo $numChanged; ?></b> users were already present and therefore have been modified
</p>
<?php if ($numAdded == 0 && $numChanged == 0) { ?>
<p>
No users have been imported and/or modified, all users from the source site are in the target site.
</p>
<?php } elseif ($csvUrl) { ?>
A CSV report has been generated with the list of all the users added/modified and the mapping of the modifications<br>
<a href="<?php echo DUPX_U::esc_url($csvUrl); ?>" download="import_users.csv">
Download import CSV report
</a><br>
<i>Note: This report does not contain users who were already at the target site.</i>
<?php } else { ?>
<p>
Csv report rile can't be generated
</p>
<?php } ?>

View File

@@ -0,0 +1,13 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<p>
<b>Restore backup mode is enabled</b> so most options are disabled.<br>
If you want to activate these options to change the migration website you need to restart the installer and deactivate the <b>Restore backup mode</b> option
</p>

View File

@@ -0,0 +1,21 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
$archiveConfig = DUPX_ArchiveConfig::getInstance();
?>
<table cellspacing="0" class="header-wizard">
<tr>
<td style="width:100%;">
<div class="dupx-branding-header">
<i class="fa fa-bolt fa-sm"></i> Duplicator help
</div>
</td>
</tr>
</table>

View File

@@ -0,0 +1,43 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
use Duplicator\Installer\Core\Hooks\HooksMng;
$archiveConfig = DUPX_ArchiveConfig::getInstance();
/* Variables */
/* @var $paramView string */
?>
<table cellspacing="0" class="header-wizard">
<tr>
<td style="width:100%;">
<div class="dupx-branding-header">
<i class="fa fa-bolt fa-sm"></i>
<?php echo HooksMng::getInstance()->applyFilters('dupx_main_header', 'Duplicator'); ?>
</div>
</td>
<td class="wiz-dupx-version">
<a href="javascript:void(0)" onclick="DUPX.openServerDetails()">version:<?php echo $archiveConfig->version_dup; ?></a>
<?php DUPX_View_Funcs::helpLockLink(); ?>
<div style="padding: 6px 0">
<?php if ($paramView !== 'help') { ?>
<?php
DUPX_View_Funcs::installerLogLink();
echo '<span>&nbsp;|&nbsp;</span>';
DUPX_View_Funcs::helpLink($paramView, 'Help<i class="fas fa-question-circle main-help-icon fa-sm"></i>');
?>
<?php } else { ?>
&nbsp;
<?php } ?>
</div>
</td>
</tr>
</table>
<?php
dupxTplRender('pages-parts/head/server-details');

View File

@@ -0,0 +1,24 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
?>
<div id="page-top-messages">
<?php
/* * ************************* */
/* * * NOTICE MANAGER TESTS ** */
//DUPX_NOTICE_MANAGER::testNextStepFullMessageData();
//DUPX_NOTICE_MANAGER::testNextStepMessaesLevels();
//DUPX_NOTICE_MANAGER::testFinalReporMessaesLevels();
//DUPX_NOTICE_MANAGER::testFinalReportFullMessages();
/* * ************************* */
DUPX_NOTICE_MANAGER::getInstance()->nextStepLog();
// display and remove next step notices
DUPX_NOTICE_MANAGER::getInstance()->displayStepMessages();
?>
</div>

View File

@@ -0,0 +1,47 @@
<?php
/**
*
* @package templates/default
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
/* Variables */
/* @var $isOk bool */
/* @var $isNewSubSite bool */
/* @var $message string */
/* @var $affectedTableCount array */
/* @var $affectedTables array */
$statusClass = $isOk ? 'green' : 'red';
?>
<div class="sub-title">STATUS</div>
<?php if ($isOk) : ?>
<?php if ($isNewSubSite) : ?>
<p class="green">
Adding a new subsite into WordPress does not require removing or renaming any tables.
</p>
<?php else : ?>
<p class="green">
The chosen Database Action does not affect any tables in the selected database.
</p>
<?php endif; ?>
<?php else : ?>
<p class="red">
The chosen Database Action will result in the modification of <b><?php echo $affectedTableCount; ?></b>
table(s).
</p>
<div class="sub-title">DETAILS</div>
<p><?php echo $message; ?></p>
<div class="s1-validate-flagged-tbl-list">
<ul>
<?php foreach ($affectedTables as $table) : ?>
<li><?php echo htmlentities($table); ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>

View File

@@ -0,0 +1,49 @@
<?php
/**
* @package Duplicator
* @copyright (c) 2022, Snap Creek LLC
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
/**
* Variables
*
* @var int $lowerCaseTableNames
* @var array<string[]> $duplicateTableNames
* @var string[] $reduntantTableNames
*/
?>
<div class="sub-title">STATUS</div>
<p class="red">
The following tables have the same name but different casing. Underlined tables are going to be excluded from the database extraction.
</p>
<ul>
<?php foreach ($duplicateTableNames as $tableName => $tableNames) { ?>
<li>
<?php
foreach ($tableNames as $index => $name) {
if (in_array($name, $reduntantTableNames)) { ?>
<u class="red"><b><?php echo $name; ?></b></u>
<?php
} else {
echo $name;
}
if ($index < (count($tableNames) - 1)) {
echo ', ';
}
}
?>
</li>
<?php } ?>
</ul>
<div class="sub-title">DETAILS</div>
<p>
The database setting <b>lower_case_table_names</b> is set to <b>[<?php echo $lowerCaseTableNames; ?>]</b> which doesn't allow case sensitive table names.
This will cause issues trying to create tables with the same case insensitive table name. To change the filtered tables switch to "Advanced" and
mode and choose the tables to extract in Step 2.
</p>

Some files were not shown because too many files have changed in this diff Show More