38217-vm/wp-content/plugins/mainwp/modules/api-backups/classes/class-api-backups-overview.php
2026-02-05 17:08:59 +03:00

123 lines
3.3 KiB
PHP

<?php
/**
* =======================================
* MainWP API Backups Overview
* =======================================
*
* @package MainWP\Dashboard
* @version 5.0
*/
namespace MainWP\Dashboard\Module\ApiBackups;
/**
* MainWP API Backups Overview
*/
class Api_Backups_Overview {
/**
* Public static variable to hold the single instance of the class.
*
* @var mixed Default null
*/
public static $instance = null;
/**
* Get Instance
*
* Creates public static instance.
*
* @static
*
* @return Api_Backups_Overview
*/
public static function get_instance() {
if ( null === static::$instance ) {
static::$instance = new self();
}
return static::$instance;
}
/**
* Constructor.
*
* Run each time the class is called.
*/
public function __construct() {
}
/**
* Sites Page Check
*
* Checks if the current page is individual site Cache Control page.
*
* @return bool True if correct, false if not.
*/
public static function is_managesites_page() {
if ( isset( $_GET['page'] ) && ( 'ManageSitesApiBackups' === $_GET['page'] ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended
return true;
}
return false;
}
/**
* Get current tab.
*/
public function get_current_tab() {
$curent_tab = 'backups';
if ( isset( $_GET['tab'] ) && 'settings' === $_GET['tab'] ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended
$curent_tab = 'settings';
}
return $curent_tab;
}
/**
* Render Tabs.
*
* Renders the page tabs.
*/
public function render_individual_tabs() {
do_action( 'mainwp_pageheader_sites', 'ApiBackups' );
?>
<div>
<?php
if ( static::is_managesites_page() ) {
$site_id = isset( $_GET['id'] ) ? intval( $_GET['id'] ) : 0; //phpcs:ignore WordPress.Security.NonceVerification.Recommended
$website = Api_Backups_Helper::get_website_by_id( $site_id );
if ( empty( $site_id ) || empty( $website ) ) {
echo '<div class="ui yellow message">' . esc_html__( 'Error: empty site ID', 'mainwp' ) . '</div>';
} else {
$curent_tab = $this->get_current_tab();
if ( 'backups' === $curent_tab ) :
Api_Backups_3rd_Party::instance()->render_api_backups_site( $website );
elseif ( 'settings' === $curent_tab ) :
Api_Backups_Settings::get_instance()->render_settings_content( true );
endif;
}
}
?>
</div>
<?php
do_action( 'mainwp_pagefooter_sites', 'ApiBackups' );
}
/**
* Render backups list.
*/
public function render_backups_list() {
if ( ! \mainwp_current_user_can( 'dashboard', 'manage_api_backups' ) ) {
\mainwp_do_not_have_permissions( esc_html__( 'manage api backups', 'mainwp' ) );
return;
}
Api_Backups_Admin::render_header();
?>
<div id="mainwp-module-api-backups-dashboard">
<?php Api_Backups_3rd_Party::render_mainwp_backups_page(); ?>
</div>
<?php
}
}