HEX
Server: Apache/2.4.41
System: Linux mainweb 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64
User: nationalmedicaregrp (1119)
PHP: 8.3.7
Disabled: exec,passthru,shell_exec,system,popen,proc_open,pcntl_exec
Upload Files
File: /home/holamediaagency/public_html/wp-content/plugins/better-robots-txt/admin/Settings.php
<?php
namespace Pagup\BetterRobots;
use Pagup\BetterRobots\Core\Asset;

class Settings {

    public function __construct()
    {

        $settings = new \Pagup\BetterRobots\Controllers\SettingsController;
        $metabox = new \Pagup\BetterRobots\Controllers\MetaboxController;

        // Add settings page
        add_action( 'admin_menu', array( &$settings, 'add_settings' ) );

        add_action( 'wp_ajax_rt__options', array( &$settings, 'save_options' ) );
        add_action( 'wp_ajax_rt__onboarding', array( &$settings, 'onboarding' ) );

        add_filter( 'script_loader_tag', array( &$this, 'add_module_to_script' ), 10, 3 );

        // Add metabox to post-types
        add_action( 'add_meta_boxes', array(&$metabox, 'add_metabox') );

        // Save meta data
        add_action( 'save_post', array(&$metabox, 'metadata'));

        // Add setting link to plugin page
        $plugin_base = ROBOTS_PLUGIN_BASE;
        add_filter( "plugin_action_links_{$plugin_base}", array( &$this, 'setting_link' ) );
        
        // Add styles and scripts
        add_action( 'admin_enqueue_scripts', array( &$this, 'assets') );

    }

    public function setting_link( $links ) {

        array_unshift( $links, '<a href="admin.php?page=better-robots-txt">Settings</a>' );

        return $links;
    }

    public function assets() {

        if ( isset($_GET['page']) && !empty($_GET['page']) && $_GET['page'] === "better-robots-txt" ) {

            if (ROBOTS_PLUGIN_MODE === "prod") {
            
                Asset::style('robots__styles', 'admin/ui/index.css');
                Asset::script('robots__main', 'admin/ui/index.js', array(), true);
            
            } else {
            
                Asset::script_remote('robots__client', 'http://localhost:3213/@vite/client', array(), true, true);
                Asset::script_remote('robots__main', 'http://localhost:3213/src/main.ts', array(), true, true);
            }

        }

        Asset::style('rt_styles', 'admin/assets/app.css');
        Asset::script('rt_script', 'admin/assets/app.js', array(), true);
    
    }

    function add_module_to_script( $tag, $handle, $src ) {

        if (ROBOTS_PLUGIN_MODE === "prod") {
            if ( 'robots__main' === $handle ) {
                $tag = '<script type="module" src="' . esc_url( $src ) . '"></script>';
            }
        } else {
            if ( 'robots__client' === $handle || 'robots__main' === $handle ) {
                $tag = '<script type="module" src="' . esc_url( $src ) . '"></script>';
            }
        }

        return $tag;
    }

}

$settings = new Settings;