HEX
Server: LiteSpeed
System: Linux spg20.cloudpowerdns.com 5.14.0-611.35.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 25 03:46:09 EST 2026 x86_64
User: carrerup (3153)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //proc/thread-self/root/proc/thread-self/cwd/wp-content/plugins/comment-guestbook/admin/admin.php
<?php
/**
 * CommentGuestbooks Main Admin Class
 *
 * @package comment-guestbook
 */

// declare( strict_types=1 ); Remove for now due to warnings in php <7.0!

namespace WordPress\Plugins\mibuthu\CommentGuestbook\Admin;

use WordPress\Plugins\mibuthu\CommentGuestbook\Config;
use const WordPress\Plugins\mibuthu\CommentGuestbook\PLUGIN_PATH;
use const WordPress\Plugins\mibuthu\CommentGuestbook\PLUGIN_URL;

if ( ! defined( 'WP_ADMIN' ) ) {
	exit();
}

require_once PLUGIN_PATH . 'includes/config.php';

/**
 * The Comment Guestbook Main Admin Class
 *
 * This class handles all CommentGuestbook admin pages.
 */
class Admin {

	/**
	 * Config class instance reference
	 *
	 * @var Config
	 */
	private $config;


	/**
	 * Class constructor which initializes required variables
	 *
	 * @param Config $config_instance The config instance as a reference.
	 */
	public function __construct( &$config_instance ) {
		$this->config = $config_instance;
	}


	/**
	 * Initialize the admin page (register required admin actions)
	 *
	 * @return void
	 */
	public function init_admin_page() {
		add_action( 'admin_menu', [ &$this, 'register_pages' ] );
		add_action( 'plugins_loaded', [ &$this->config, 'version_upgrade' ] );
	}


	/**
	 * Add and register all pages in the admin menu
	 *
	 * @return void
	 */
	public function register_pages() {
		$page = add_submenu_page(
			'edit-comments.php',
			sprintf( __( 'About %1$s', 'comment-guestbook' ), 'Comment Guestbook' ),
			__( 'About Guestbook', 'comment-guestbook' ),
			'edit_posts',
			'cgb_admin_about',
			[ &$this, 'show_about_page' ]
		);
		add_action( 'admin_print_scripts-' . $page, [ &$this, 'embed_about_styles' ] );
		$page = add_submenu_page(
			'options-general.php',
			__( 'Comment Guestbook Settings', 'comment-guestbook' ),
			__( 'Guestbook', 'comment-guestbook' ),
			'manage_options',
			'cgb_admin_settings',
			[ &$this, 'show_settings_page' ]
		);
		add_action( 'admin_print_scripts-' . $page, [ &$this, 'embed_settings_styles' ] );
	}


	/**
	 * Show the plugins about page
	 *
	 * @return void
	 */
	public function show_about_page() {
		require_once PLUGIN_PATH . 'admin/about.php';
		$about = new About();
		$about->show_page();
	}


	/**
	 * Show the plugins settings page
	 *
	 * @return void
	 */
	public function show_settings_page() {
		require_once PLUGIN_PATH . 'admin/settings.php';
		$settings = new Settings( $this->config );
		$settings->show_page();
	}


	/**
	 * Embed the plugins about page styles
	 * TODO: move to admin about class
	 *
	 * @return void
	 */
	public function embed_about_styles() {
		wp_enqueue_style( 'cgb_admin_about', PLUGIN_URL . 'admin/css/about.css', [], '1.0' );
	}


	/**
	 * Embed the plugins settings page styles
	 * TODO: move to admin settings class
	 *
	 * @return void
	 */
	public function embed_settings_styles() {
		wp_enqueue_style( 'cgb_admin_settings', PLUGIN_URL . 'admin/css/settings.css', [], '1.0' );
	}

}