Current File : /home/inlingua/www/bestbuyind/wp-content/plugins/vayu-blocks/inc/vayu-sites/admin/init.php
<?php 
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}
	
// Exit if accessed directly.
if ( ! class_exists( 'VAYU_BLOCK_SITES_BUILDER_MENU' ) ) {

    /**
	 * vayu block sites Admin Menu Settings
	 */
    class VAYU_BLOCK_SITES_BUILDER_MENU {

        static public $plugin_slug = 'vayu-blocks';

        function __construct()
        {

            if ( ! is_admin() ) {
				return;
			}
            add_action( 'init', __CLASS__ . '::permalink_update');
			add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue' ),8 );

            add_action( 'init', __CLASS__ . '::init_admin_settings', 99 );
            add_action('admin_head', array( $this,'admin_icon_style'));


        }

        function admin_icon_style() {
        $style =  '<style>#adminmenu .toplevel_page_ai-site-builder .wp-menu-image img { padding: 2px 0 0;}</style>';
        $arr = array( 'style' => array());
        echo wp_kses( $style, $arr );
        
        }


        static public function permalink_update(){

            if ( get_option('permalink_structure') ) return;
                            // The new permalink structure you want to set
                $new_permalink_structure = '/%postname%/';

                // Update the permalink structure option
                update_option('permalink_structure', $new_permalink_structure);

                // Flush rewrite rules to apply the changes
                flush_rewrite_rules();
        }


        /**
		 * Admin settings init
		 */
		static public function init_admin_settings() {

            if ( isset( $_REQUEST['page'] ) && strpos( $_REQUEST['page'], self::$plugin_slug ) !== false ) {
				self::save_settings();
			}

            add_action( 'admin_menu', __CLASS__ . '::add_admin_menu', 100 );
        }


        	/**
		 * Save All admin settings here
		 */
		static public function save_settings() {

			// Only admins can save settings.
			if ( ! current_user_can( 'manage_options' ) ) {
				return;
			}
		}


        
        /**
		 * Admin class add
		 *
		 * @since 1.0.0
		 */
        

        static public function admin_classes( $classes ) {
            global $pagenow;
            //themes.php
            if ( in_array( $pagenow, array( 'admin.php' ), true ) ) {

                if(is_admin() && isset($_GET['template']) && 'step'=== sanitize_text_field( $_GET['template']) )
                
                $classes .= ' ai-site-builder';
            }

            return $classes;
        }


        /**
		 * Admin Menu - theme panel
		 *
		 * @since 1.0.0
		 */
        

        static public function add_admin_menu() {

            add_action( 'admin_body_class', __CLASS__ . '::admin_classes');     
        }


        // Add this code to your theme's functions.php or a custom plugin
            function get_plugin_activation_link( $plugin_file ) {
                // Ensure the current user can activate plugins
                if ( ! current_user_can( 'activate_plugins' ) ) {
                    return '';
                }

                // Generate the nonce
                $nonce = wp_create_nonce( 'activate-plugin_' . $plugin_file );

                // Construct the activation URL
                $activation_url = admin_url( 'plugins.php?action=activate&plugin=' . $plugin_file . '&_wpnonce=' . $nonce );

                return $activation_url;
            }


        public function admin_enqueue( $hook = '' ) {
            // && 'toplevel_page_'.self::$plugin_slug !== $hook 
            if ( self::$plugin_slug.'_page_vayu-sites'!== $hook && 'post.php'!==$hook && 'post-new.php'!==$hook && 'toplevel_page_vayu-blocks' !==$hook) {
				return;
			}

            if(isset($_GET['template']) && sanitize_text_field( $_GET['template'] )){

                $dirty_html = '<style> html.wp-toolbar {padding-top: 0 !important; }</style>';

                // Define allowed attributes and tags for inline styles
                $allowed_attributes = array(
                    'style' => array(
                        // Define allowed CSS properties and values
                        'padding' => true,
                        // Add more allowed CSS properties as needed
                    ),
                );

            // Sanitize the HTML with allowed attributes and tags
            $clean_html = wp_kses($dirty_html, $allowed_attributes);

            // Output the sanitized HTML
            echo $clean_html;

            }

			wp_enqueue_style( 'vayu-blocks-sites-admin', VAYU_BLOCKS_SITES_URL . 'admin/assets/css/admin.css', 1.0, 'true' );
            wp_enqueue_script( 'vayu-blocks-sites-block-admin', VAYU_BLOCKS_URL . '/public/build/vayu-sites.js', array( 'wp-element','wp-components', 'wp-i18n','wp-api-fetch','wp-url' ), '1.0', true );
           
            wp_localize_script( 'vayu-blocks-sites-block-admin', 'VAYUB',
            array( 
                'ajaxurl' => admin_url( 'admin-ajax.php' ),
                'vsecurity' =>wp_create_nonce( 'vayu_nonce' ),
                'baseurl' => site_url( '/' ),
                'pluginpath'=>VAYU_BLOCKS_SITES_URL,
                'rootPath' => VAYU_BLOCKS_URL,
                'upgrade'=> esc_url('https://themehunk.com/vayu-blocks'),
                'activate' => $this->get_plugin_activation_link( 'vayu-blocks-pro/vayu-blocks-pro.php' )          
                 )
        );

        }

    }

    new VAYU_BLOCK_SITES_BUILDER_MENU;
}