forked from LiveCarta/LiveCartaWP
Changed source root directory
This commit is contained in:
@@ -0,0 +1,176 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* custom hosting manager
|
||||
* singleton class
|
||||
*
|
||||
* Standard: PSR-2
|
||||
*
|
||||
* @package SC\DUPX\HOST
|
||||
* @link http://www.php-fig.org/psr/psr-2/
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
require_once(DUPLICATOR_PLUGIN_PATH . '/classes/host/interface.host.php');
|
||||
require_once(DUPLICATOR_PLUGIN_PATH . '/classes/host/class.godaddy.host.php');
|
||||
require_once(DUPLICATOR_PLUGIN_PATH . '/classes/host/class.wpengine.host.php');
|
||||
require_once(DUPLICATOR_PLUGIN_PATH . '/classes/host/class.wordpresscom.host.php');
|
||||
require_once(DUPLICATOR_PLUGIN_PATH . '/classes/host/class.liquidweb.host.php');
|
||||
require_once(DUPLICATOR_PLUGIN_PATH . '/classes/host/class.pantheon.host.php');
|
||||
require_once(DUPLICATOR_PLUGIN_PATH . '/classes/host/class.flywheel.host.php');
|
||||
|
||||
class DUP_Custom_Host_Manager
|
||||
{
|
||||
const HOST_GODADDY = 'godaddy';
|
||||
const HOST_WPENGINE = 'wpengine';
|
||||
const HOST_WORDPRESSCOM = 'wordpresscom';
|
||||
const HOST_LIQUIDWEB = 'liquidweb';
|
||||
const HOST_PANTHEON = 'pantheon';
|
||||
const HOST_FLYWHEEL = 'flywheel';
|
||||
|
||||
/**
|
||||
*
|
||||
* @var DUP_Custom_Host_Manager
|
||||
*/
|
||||
protected static $instance = null;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $initialized = false;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var DUP_Host_interface[]
|
||||
*/
|
||||
private $customHostings = array();
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string[]
|
||||
*/
|
||||
private $activeHostings = array();
|
||||
|
||||
/**
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function getInstance()
|
||||
{
|
||||
if (is_null(self::$instance)) {
|
||||
self::$instance = new self();
|
||||
}
|
||||
return self::$instance;
|
||||
}
|
||||
|
||||
private function __construct()
|
||||
{
|
||||
$this->customHostings[DUP_WPEngine_Host::getIdentifier()] = new DUP_WPEngine_Host();
|
||||
$this->customHostings[DUP_GoDaddy_Host::getIdentifier()] = new DUP_GoDaddy_Host();
|
||||
$this->customHostings[DUP_WordpressCom_Host::getIdentifier()] = new DUP_WordpressCom_Host();
|
||||
$this->customHostings[DUP_Liquidweb_Host::getIdentifier()] = new DUP_Liquidweb_Host();
|
||||
$this->customHostings[DUP_Pantheon_Host::getIdentifier()] = new DUP_Pantheon_Host();
|
||||
$this->customHostings[DUP_Flywheel_Host::getIdentifier()] = new DUP_Flywheel_Host();
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
if ($this->initialized) {
|
||||
return true;
|
||||
}
|
||||
foreach ($this->customHostings as $cHost) {
|
||||
if (!($cHost instanceof DUP_Host_interface)) {
|
||||
throw new Exception('Host must implement DUP_Host_interface');
|
||||
}
|
||||
if ($cHost->isHosting()) {
|
||||
$this->activeHostings[] = $cHost->getIdentifier();
|
||||
$cHost->init();
|
||||
}
|
||||
}
|
||||
$this->initialized = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getActiveHostings()
|
||||
{
|
||||
return $this->activeHostings;
|
||||
}
|
||||
|
||||
public function isHosting($identifier)
|
||||
{
|
||||
return in_array($identifier, $this->activeHostings);
|
||||
}
|
||||
|
||||
public function isManaged()
|
||||
{
|
||||
if ($this->isHosting(self::HOST_WORDPRESSCOM)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($this->isHosting(self::HOST_GODADDY)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($this->isHosting(self::HOST_WPENGINE)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($this->isHosting(self::HOST_LIQUIDWEB)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($this->isHosting(self::HOST_PANTHEON)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($this->isHosting(self::HOST_FLYWHEEL)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($this->WPConfigIsNotWriteable()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($this->notAccessibleCoreDirPresent()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function WPConfigIsNotWriteable()
|
||||
{
|
||||
$wpConfigPath = duplicator_get_abs_path() . "/wp-config.php";
|
||||
|
||||
return file_exists($wpConfigPath) && !is_writeable($wpConfigPath);
|
||||
}
|
||||
|
||||
public function notAccessibleCoreDirPresent()
|
||||
{
|
||||
$absPath = duplicator_get_abs_path();
|
||||
$coreDirs = array(
|
||||
$absPath . '/wp-admin',
|
||||
$absPath . '/wp-includes',
|
||||
WP_CONTENT_DIR
|
||||
);
|
||||
|
||||
foreach ($coreDirs as $coreDir) {
|
||||
if (file_exists($coreDir) && !is_writeable($coreDir)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getHosting($identifier)
|
||||
{
|
||||
if ($this->isHosting($identifier)) {
|
||||
return $this->activeHostings[$identifier];
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Flywheel custom hosting class
|
||||
*
|
||||
* Standard: PSR-2
|
||||
*
|
||||
* @package SC\DUPX\HOST
|
||||
* @link http://www.php-fig.org/psr/psr-2/
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
class DUP_Flywheel_Host implements DUP_Host_interface
|
||||
{
|
||||
public static function getIdentifier()
|
||||
{
|
||||
return DUP_Custom_Host_Manager::HOST_FLYWHEEL;
|
||||
}
|
||||
|
||||
public function isHosting()
|
||||
{
|
||||
$path = duplicator_get_home_path() . '/.fw-config.php';
|
||||
return apply_filters('duplicator_host_check', file_exists($path), self::getIdentifier());
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Libs\Snap\SnapIO;
|
||||
|
||||
class DUP_GoDaddy_Host implements DUP_Host_interface
|
||||
{
|
||||
public static function getIdentifier()
|
||||
{
|
||||
return DUP_Custom_Host_Manager::HOST_GODADDY;
|
||||
}
|
||||
|
||||
public function isHosting()
|
||||
{
|
||||
return apply_filters(
|
||||
'duplicator_godaddy_host_check',
|
||||
file_exists(SnapIO::safePathUntrailingslashit(WPMU_PLUGIN_DIR) . '/gd-system-plugin.php')
|
||||
);
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
add_filter('duplicator_defaults_settings', array(__CLASS__, 'defaultsSettings'));
|
||||
}
|
||||
|
||||
public static function defaultsSettings($defaults)
|
||||
{
|
||||
$defaults['archive_build_mode'] = DUP_Archive_Build_Mode::DupArchive;
|
||||
return $defaults;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* wpengine custom hosting class
|
||||
*
|
||||
* Standard: PSR-2
|
||||
*
|
||||
* @package SC\DUPX\HOST
|
||||
* @link http://www.php-fig.org/psr/psr-2/
|
||||
*/
|
||||
|
||||
use Duplicator\Libs\Snap\SnapIO;
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
class DUP_Liquidweb_Host implements DUP_Host_interface
|
||||
{
|
||||
const TEST = 0;
|
||||
|
||||
public static function getIdentifier()
|
||||
{
|
||||
return DUP_Custom_Host_Manager::HOST_LIQUIDWEB;
|
||||
}
|
||||
|
||||
public function isHosting()
|
||||
{
|
||||
return apply_filters(
|
||||
'duplicator_liquidweb_host_check',
|
||||
file_exists(SnapIO::safePathUntrailingslashit(WPMU_PLUGIN_DIR) . '/liquid-web.php')
|
||||
);
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* godaddy custom hosting class
|
||||
*
|
||||
* Standard: PSR-2
|
||||
*
|
||||
* @package SC\DUPX\HOST
|
||||
* @link http://www.php-fig.org/psr/psr-2/
|
||||
*/
|
||||
|
||||
use Duplicator\Libs\Snap\SnapIO;
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
class DUP_Pantheon_Host implements DUP_Host_interface
|
||||
{
|
||||
public static function getIdentifier()
|
||||
{
|
||||
return DUP_Custom_Host_Manager::HOST_PANTHEON;
|
||||
}
|
||||
|
||||
public function isHosting()
|
||||
{
|
||||
return apply_filters(
|
||||
'duplicator_pantheon_host_check',
|
||||
file_exists(SnapIO::safePathUntrailingslashit(WPMU_PLUGIN_DIR) . '/pantheon.php')
|
||||
);
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* godaddy custom hosting class
|
||||
*
|
||||
* Standard: PSR-2
|
||||
*
|
||||
* @package SC\DUPX\HOST
|
||||
* @link http://www.php-fig.org/psr/psr-2/
|
||||
*/
|
||||
|
||||
use Duplicator\Libs\Snap\SnapIO;
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
class DUP_WordpressCom_Host implements DUP_Host_interface
|
||||
{
|
||||
public static function getIdentifier()
|
||||
{
|
||||
return DUP_Custom_Host_Manager::HOST_WORDPRESSCOM;
|
||||
}
|
||||
|
||||
public function isHosting()
|
||||
{
|
||||
return apply_filters(
|
||||
'duplicator_pro_wordpress_host_check',
|
||||
file_exists(SnapIO::safePathUntrailingslashit(WPMU_PLUGIN_DIR) . '/wpcomsh-loader.php')
|
||||
);
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Libs\Snap\SnapIO;
|
||||
|
||||
// New encryption class
|
||||
|
||||
class DUP_WPEngine_Host implements DUP_Host_interface
|
||||
{
|
||||
public function init()
|
||||
{
|
||||
add_filter('duplicator_installer_file_path', array(__CLASS__, 'installerFilePath'), 10, 1);
|
||||
add_filter('duplicator_global_file_filters_on', '__return_true');
|
||||
add_filter('duplicator_global_file_filters', array(__CLASS__, 'globalFileFilters'), 10, 1);
|
||||
add_filter('duplicator_defaults_settings', array(__CLASS__, 'defaultsSettings'));
|
||||
}
|
||||
|
||||
public static function getIdentifier()
|
||||
{
|
||||
return DUP_Custom_Host_Manager::HOST_WPENGINE;
|
||||
}
|
||||
|
||||
|
||||
public function isHosting()
|
||||
{
|
||||
return apply_filters(
|
||||
'duplicator_wp_engine_host_check',
|
||||
file_exists(SnapIO::safePathUntrailingslashit(WPMU_PLUGIN_DIR) . '/wpengine-security-auditor.php')
|
||||
);
|
||||
}
|
||||
|
||||
public static function installerFilePath($path)
|
||||
{
|
||||
$path_info = pathinfo($path);
|
||||
$newPath = $path;
|
||||
if ('php' == $path_info['extension']) {
|
||||
$newPath = substr_replace($path, '.txt', -4);
|
||||
}
|
||||
return $newPath;
|
||||
}
|
||||
|
||||
public static function globalFileFilters($files)
|
||||
{
|
||||
$files[] = wp_normalize_path(WP_CONTENT_DIR) . '/mysql.sql';
|
||||
return $files;
|
||||
}
|
||||
|
||||
public static function defaultsSettings($defaults)
|
||||
{
|
||||
$defaults['package_zip_flush'] = '1';
|
||||
return $defaults;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* interface for specific hostings class
|
||||
*
|
||||
* Standard: PSR-2
|
||||
*
|
||||
* @package SC\DUPX\HOST
|
||||
* @link http://www.php-fig.org/psr/psr-2/
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
|
||||
interface DUP_Host_interface
|
||||
{
|
||||
/**
|
||||
* return the current host itentifier
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getIdentifier();
|
||||
|
||||
/**
|
||||
* @return bool true if is current host
|
||||
*/
|
||||
public function isHosting();
|
||||
|
||||
/**
|
||||
* the init function.
|
||||
* is called only if isHosting is true
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function init();
|
||||
}
|
||||
Reference in New Issue
Block a user