Your IP : 216.73.216.0


Current Path : /home/goldnueh/nightviewcafe.in/wp-content/plugins/rishi-companion/includes/
Upload File :
Current File : /home/goldnueh/nightviewcafe.in/wp-content/plugins/rishi-companion/includes/Plugin_Admin.php

<?php
/**
 * Admin area settings and hooks.
 *
 * @package Rishi_Companion
 */

namespace Rishi_Companion;

defined( 'ABSPATH' ) || exit;

/**
 * Global Settings.
 */
class Plugin_Admin {

	/**
	 * Constructor.
	 */
	public function __construct() {
		$this->init();

	}

	/**
	 * Initialization.
	 *
	 * @since 1.0.0
	 * @access private
	 *
	 * @return void
	 */
	private function init() {
		// Create a new Builder_Element_Filter object.
		$builder_element_filter = new Helpers\Builder_Element_Filter();

		// Initialize hooks.
		$this->init_hooks();

		// Allow 3rd party to remove hooks.
		do_action( 'rishi_companion_admin_unhook', $this );
	}

	/**
	 * Initialize hooks.
	 *
	 * @since 1.0.0
	 * @access private
	 *
	 * @return void
	 */
	private function init_hooks() {

		// Add a filter to customize the sections directory.
		add_filter(
			'rishi_customizer_sections_directory',
			function ( $directories ) {
				$directories['Rishi_Companion\\Modules\\Sections\\'] = __DIR__ . '/Modules/Sections';
				return $directories;
			}
		);

		// Enqueue admin scripts.
		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );

		// If the theme mod 'ed_favicon' is set to 'yes', remove the favicon request.
		if ( get_theme_mod( 'ed_favicon', 'yes' ) === 'yes' ) {
			add_action( 'admin_head', array( $this, 'rishi_remove_favicon_request' ), 10 );
			add_action( 'wp_head', array( $this, 'rishi_remove_favicon_request' ), 10 );
		}

		// Add a block category.
		add_filter( 'block_categories_all', array( $this, 'add_block_category' ) );

		// Register post meta.
		add_action( 'init', array( $this, 'register_post_meta' ), 9999999 );

		// Include user meta.
		$this->includes_users_meta();
	}

	/**
	 * Include user meta.
	 *
	 * @return void
	 */
	public function includes_users_meta() {
		include_once plugin_dir_path( RISHI_COMPANION_PLUGIN_FILE ) . '/includes/additions/Users_Meta.php';
	}

	/**
	 * Disable Automatic Favicon Request
	 */
	public function rishi_remove_favicon_request() {
		// Output a blank favicon to prevent automatic requests.
		echo '<link rel="icon" href="data:,">';
	}

	/**
	 * Enqueue Admin Scripts
	 *
	 * @return void
	 */
	public function enqueue_scripts() {
		// Create instances of Plugin_Manager and Module_Manager.
		$plugin_manager    = new Plugin_Manager();
		$module_manager = new Module_Manager();

		// Get the configurations.
		$free_plugins     = $plugin_manager->get_config();
		$rishi_extensions = $module_manager->get_config();

		// Include the dashboard assets.
		$global_deps = include_once plugin_dir_path( RISHI_COMPANION_PLUGIN_FILE ) . '/build/dashboard.asset.php';
		$version     = ( ! empty( $global_deps['version'] ) ) ? $global_deps['version'] : '';

		// Enqueue the dashboard style.
		wp_enqueue_style( 'rishi-companion-dashboard', esc_url( plugin_dir_url( RISHI_COMPANION_PLUGIN_FILE ) ) . 'build/dashboard.css', array(), $version );

		// Register the dashboard script.
		wp_enqueue_script( 'rishi-companion-dashboard', esc_url( plugin_dir_url( RISHI_COMPANION_PLUGIN_FILE ) ) . 'build/dashboard.js', $global_deps['dependencies'], $global_deps['version'], true );

		// Localize the dashboard script.
		wp_localize_script(
			'rishi-companion-dashboard',
			'RishiCompanionDashboard',
			array(
				'ajaxUrl'      => admin_url( 'admin-ajax.php' ),
				'adminURL'     => esc_url( admin_url() ),
				'siteURL'      => esc_url( home_url( '/' ) ),
				'pluginUrl'    => esc_url( plugin_dir_url( RISHI_COMPANION_PLUGIN_FILE ) ),
				'pluginName'   => $free_plugins,
				'extensions'   => $rishi_extensions,
				'customizeURL' => admin_url( '/customize.php?autofocus' ),
				'plugin_data'  => apply_filters( 'rishi_companion_dashboard_localizations', array() ),
				'proActivated' => \function_exists( 'rishi_is_pro_activated' ) ? \rishi_is_pro_activated() : false,
			)
		);
	}

	/**
	 * Add Block Category
	 *
	 * @param array $categories Existing block categories.
	 * @return array Modified block categories.
	 */
	public function add_block_category( $categories ) {
		// Setup category array.
		$rishi_blocks_category = array(
			'slug'  => 'rishi-blocks',
			'title' => __( 'Rishi Blocks', 'rishi-companion' ),
		);

		// Make a new category array and insert ours at position 1.
		$new_categories    = array();
		$new_categories[0] = $rishi_blocks_category;

		// Rebuild categories array.
		foreach ( $categories as $category ) {
			$new_categories[] = $category;
		}

		return $new_categories;
	}

	/**
	 * Register Block meta
	 *
	 * @return void
	 */
	public function register_post_meta() {
		// Register a meta field for the post view count.
		register_post_meta(
			'post',
			'_rishi_post_view_count',
			array(
				'single'            => true,
				'type'              => 'number',
				'show_in_rest'      => true,
				'default'           => 0,
				'sanitize_callback' => 'absint',
				'auth_callback'     => function () {
					return current_user_can( 'edit_posts' );
				},
			)
		);
	}

}