# slider-blocks/2.2.1/admin/admin.php

GutSlider – All in One Slider and Carousel Blocks for Gutenberg, version 2.2.1. 95 lines.

- Page: https://pluginprobe.com/plugins/slider-blocks/2.2.1/code/admin/admin.php
- Raw: https://pluginprobe.com/plugins/slider-blocks/2.2.1/raw/admin/admin.php
- Modified: 2023-10-07T15:12:18+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/slider-blocks/2.2.1/code/admin/admin.php#L10-L20`.

```php
<?php
/**
 * Plugin Admin Page 
 * 
 */

 if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

 if( ! class_exists( 'GutSlider_Admin' ) ) {

    class GutSlider_Admin {

        /**
         * Constructor
         * return void
         */
        public function __construct() {
            add_action( 'admin_menu', [ $this, 'admin_menu' ] );
            add_action( 'admin_enqueue_scripts', [ $this, 'admin_assests' ] );

            // register settings
            add_action('admin_init', [ $this, 'custom_register_settings' ]);
            add_action( 'rest_api_init', [ $this, 'custom_register_settings' ] );
        }
        
        /**
         * Enqueue admin scripts
         */
        public function admin_assests( $screen ) {

            if( $screen === 'toplevel_page_gutslider-blocks' ){

                $dependencyFile = GUTSLIDER_DIR . '/build/admin/admin.asset.php';
                $dependencies   = file_exists( $dependencyFile ) ? require_once $dependencyFile : [];
            
                wp_enqueue_style( 'gutslider-admin-style', GUTSLIDER_URL . 'build/admin/style-admin.css', [], GUTSLIDER_VERSION );
                wp_enqueue_script( 'gutslider-admin-script', GUTSLIDER_URL . 'build/admin/admin.js', $dependencies[ 'dependencies' ] , GUTSLIDER_VERSION, true );

                // enqueue wp-style
                wp_enqueue_style( 'wp-components' );

            }
        }
    
        /**
         * Add admin menu
         */
        public function admin_menu() {
            add_menu_page( __( 'GutSlider', 'slider-blocks' ), __( 'GutSlider', 'slider-blocks' ), 'manage_options', 'gutslider-blocks', [ $this, 'gutslider_admin_page' ], 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiByeD0iMTIiIGZpbGw9IiNEOUQ5RDkiLz4KPHBhdGggZD0iTTE1IDdIMTEuODIzNUg5VjE3SDE1VjEyLjQxNjdIMTIuODgyNEgxMS44MjM1IiBzdHJva2U9IiMxRDIzMjciIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPgo=', 100 );
        }
    
        /**
         * Admin page
         */
        public function gutslider_admin_page() {
            ?>
                <div id="gutslider"></div>
            <?php
        }

        /**
         * Register settings
         * return void
         */
        public function custom_register_settings() {

            // assets registration 
            register_setting('rest-api-settings', 'swiper_scripts', array(
                'type'              => 'boolean', 
                'default'           => true,     
                'show_in_rest'      => true,     
                'sanitize_callback' => 'rest_sanitize_boolean',
            ));

            // fixed content slider 
            register_setting('rest-api-settings', 'gut_fixed_content_slider', array(
                'type'              => 'boolean', 
                'default'           => true,     
                'show_in_rest'      => true,     
                'sanitize_callback' => 'rest_sanitize_boolean',
            ));

            // any content 
            register_setting('rest-api-settings', 'gut_any_content_slider', array(
                'type'              => 'boolean', 
                'default'           => true,     
                'show_in_rest'      => true,     
                'sanitize_callback' => 'rest_sanitize_boolean',
            ));
        }
    }
 }


new GutSlider_Admin(); // initialize the class
```
