HEX
Server: Apache
System: Linux d5123.usc1.stableserver.net 5.14.0-570.17.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Sat May 24 12:53:17 EDT 2025 x86_64
User: d5123 (1001)
PHP: 8.4.21
Disabled: NONE
Upload Files
File: /home/d5123/myboofola_com/wp-content/plugins/unusedcss/includes/admin/RapidLoad_Admin_Bar.php
<?php

defined( 'ABSPATH' ) or die();

class RapidLoad_Admin_Bar {
    use RapidLoad_Utils;

    public function __construct()
    {

        add_action( 'wp_after_admin_bar_render', [$this,'rapidload_admin_bar_css'] );
        add_action('admin_bar_menu', [$this, 'add_rapidload_admin_bar_menu'], 100);

        $page = isset($_REQUEST['page']) ? sanitize_text_field(wp_unslash($_REQUEST['page'])) : '';

        if (
            (!is_admin() && is_user_logged_in() && defined('RAPIDLOAD_PAGE_OPTIMIZER_ENABLED')) ||
            (is_admin() && $page === 'rapidload')
        ) {
            add_action('init', function (){
                $this->load_optimizer_scripts();
            });

            add_action('wp_after_admin_bar_render', function () {
                echo '<div id="rapidload-page-optimizer"></div>';
            });
        }



    }

    public function load_optimizer_scripts()
    {
        $options = RapidLoad_Base::fetch_options();

        $page = isset($_REQUEST['page']) ? sanitize_text_field(wp_unslash($_REQUEST['page'])) : '';

        $tag = apply_filters('rapidload/titan/tag', 'latest');

        //$package = "https://unpkg.com/@rapidload/page-optimizer@{$tag}/dist";

        $optimizer_path = 'includes/admin/page-optimizer/dist';

        $debug_titan = apply_filters('rapidload/titan/debug', false);

        if ($debug_titan) {
            $optimizer_path .= '-debug';
        }


        $package = RAPIDLOAD_PLUGIN_URL . $optimizer_path;

        $asset_map_file = RAPIDLOAD_PLUGIN_DIR . '/' . $optimizer_path . '/asset-map.php';
        $indexJS = '/assets/index.js';
        $indexCSS = '/assets/index.css';

        if (file_exists($asset_map_file)) {
            include_once($asset_map_file);
            if (defined('RAPIDLOAD_ASSET_MAP')) {
                $indexJS = isset(RAPIDLOAD_ASSET_MAP['assets/index.js']) ? RAPIDLOAD_ASSET_MAP['assets/index.js'] : $indexJS;
                $indexCSS = isset(RAPIDLOAD_ASSET_MAP['assets/index.css']) ? RAPIDLOAD_ASSET_MAP['assets/index.css'] : $indexCSS;
            }
        }

        $indexJS = '/' . ltrim($indexJS, '/');
        $indexCSS = '/' . ltrim($indexCSS, '/');

        add_action('admin_head', function()use ($package ,  $indexCSS){
            echo '<link id="rapidload-page-optimizer-css" rel="preload" href="' . esc_url($package . $indexCSS) . '" as="style" type="text/css"/>';
        });

        wp_register_script( 'rapidload_page_optimizer', esc_url($package . $indexJS),[], RAPIDLOAD_VERSION, false);

        $current_url = isset($_SERVER['REQUEST_URI']) ? home_url(sanitize_url(wp_unslash($_SERVER['REQUEST_URI']))) : $this->get_current_url();

        if($this->is_admin_url($current_url)){
            $current_url = site_url();
            if(isset($_GET['optimize-url'])){
                $current_url = $this->transform_url(urldecode(sanitize_url(wp_unslash($_GET['optimize-url']))));
            }
        }

        $rapidload_license_data = get_option('rapidload_license_data', null);   

        if($rapidload_license_data){
            $rapidload_license_data = unserialize($rapidload_license_data);
        }

        $data = array(
            'titan_stylesheet_url' => $package .  $indexCSS,
            'load_optimizer' => true,
            'page_optimizer_package_base' => $package,
            'page_optimizer_base' => RAPIDLOAD_PLUGIN_URL .  'includes/admin/page-optimizer/dist',
            'plugin_url' => RAPIDLOAD_PLUGIN_URL,
            'ajax_url' => admin_url( 'admin-ajax.php' ),
            'admin_url' => admin_url(),
            'dashboard_url' => admin_url( 'admin.php?page=rapidload' ),
            'optimizer_url' => defined('RAPIDLOAD_OPTIMIZER_TEST_URL') ? RAPIDLOAD_OPTIMIZER_TEST_URL : $this->transform_url($current_url),
            'nonce' => self::create_nonce( 'uucss_nonce' ),
            'timezone' => get_option('timezone_string', 'UTC'),
            'rapidload_version' => RAPIDLOAD_VERSION,
            'actions' => [
                [
                    'tooltip' => 'Clear Site Cache',
                    'href' => wp_nonce_url( add_query_arg( array(
                        '_cache'  => 'rapidload-cache',
                        '_action' => 'clear',
                    ) ), 'rapidload_cache_clear_cache_nonce' ),
                    'icon' => 'clear_cache'
                ],
                [
                    'tooltip' => 'Clear Page Cache',
                    'href' => wp_nonce_url( add_query_arg( array(
                        '_cache'  => 'rapidload-cache',
                        '_action' => 'clearurl',
                        '_url' => $this->transform_url($this->get_current_url()),
                    ) ), 'rapidload_cache_clear_cache_nonce' ),
                    'icon' => 'clear_page_cache'
                ],
                [
                    'tooltip' => 'Clear CSS/JS/Font Optimizations',
                    'href' => wp_nonce_url( add_query_arg( array(
                        'action' => 'rapidload_purge_all',
                        'clear' => 'true'
                    ) ), 'uucss_nonce', '_nonce' ),
                    'icon' => 'clear_optimization'
                ]
            ],
            'api_root' => defined('RAPIDLOAD_API_URL') ? RAPIDLOAD_API_URL : 'https://api.rapidload.io/api/v1',
            'enable_entire_site' => RapidLoad_DB::get_optimization_count() < 2,
            'rest_url' => RapidLoadRestApi::rest_url(),
            'license_key' => RapidLoad_Base::get_license_key(),
            'test_mode' => boolval(isset($options['rapidload_test_mode']) && $options['rapidload_test_mode'] === "1"),
            'uucss_disable_error_tracking' => boolval(isset($options['uucss_disable_error_tracking']) && $options['uucss_disable_error_tracking'] === "1"),
            'rapidload_titan_gear' => get_option('rapidload_titan_gear', 'turboMax'),
            'rapidload_license_data' => $rapidload_license_data,
            'rapidload_privacy_policy_accepted' => get_option('rapidload_privacy_policy_accepted', false),
            'db_to_be_updated' => RapidLoad_DB::$current_version !== RapidLoad_DB::$db_version,
        );

        wp_localize_script( 'rapidload_page_optimizer', 'rapidload_optimizer', $data );

        wp_enqueue_script( 'rapidload_page_optimizer' );

        function add_module_script_type($tag, $handle) {

            if ($handle === 'rapidload_page_optimizer') {
                $tag = preg_replace("/type=['\"]text\/javascript['\"]/", "type='module'", $tag);

                if (!preg_match("/type=/", $tag)) {
                    $tag = preg_replace("/<script /", "<script type=\"module\" ", $tag);
                }
            }
            return $tag;
        }
        add_filter('script_loader_tag', 'add_module_script_type', 10, 2);

    }

    public function rapidload_admin_bar_css()
    {

        if ( is_admin_bar_showing() ) { ?>


            <style id="rapidload-admin-bar-css">

                #wp-admin-bar-rapidload .rl-node-wrapper {
                    display: flex;
                    gap: 6px;
                    z-index: 9999;
                }

                #wp-admin-bar-rapidload .rl-icon {
                    display: inline-flex;
                }

                #wp-admin-bar-rapidload .rl-icon img {
                    margin: 0 !important;
                }

                /*html.rapidload-optimizer-open,
                .rapidload-optimizer-open body,
                body.rapidload-optimizer-open {
                    overflow: hidden !important;
                }*/

                .rpo-loaded\:with-popup #wp-admin-bar-rapidload .ab-sub-wrapper {
                    display: none !important;
                }

                #wp-admin-bar-rapidload .ab-item {
                    padding: 0 8px 0 7px;
                }

                #rapidload-page-optimizer{
                    margin-left: -20px;
                    /* margin-top: 1px; */
                }

                /*.rl-page-optimizer-loaded #wp-admin-bar-rapidload *,*/
                /*.rl-page-optimizer-loaded #wpadminbar .ab-top-menu > li.hover > .ab-item, #wpadminbar.nojq .quicklinks .ab-top-menu > li > .ab-item:focus,*/
                /*.rl-page-optimizer-loaded #wpadminbar:not(.mobile) .ab-top-menu > li:hover > .ab-item, #wpadminbar:not(.mobile) .ab-top-menu > li > .ab-item:focus {*/
                /*    color: #0c0c0c !important;*/

                /*}*/

            </style>

        <?php }
    }

    public function add_rapidload_admin_bar_menu($wp_admin_bar){

        if(apply_filters('rapidload/tool-bar-menu',true)){

            if ( current_user_can( 'manage_options' ) ) {

                do_action('rapidload/admin-bar-actions', $wp_admin_bar);

                $options = RapidLoad_Base::fetch_options();

                $wp_admin_bar->add_node(array(
                    'id'    => 'rapidload',
                    'title' => '<div id="rl-node-wrapper" class="'. ( isset($options['rapidload_test_mode']) && $options['rapidload_test_mode'] === "1" ? 'rl-node-wrapper rl-test-mode-on' : 'rl-node-wrapper') .'" >
                                    <span class="rl-icon">
                                        <img src="'. esc_url(RAPIDLOAD_PLUGIN_URL . '/assets/images/logo-icon-light.svg') .'" alt="" style="max-width: 100%">
                                    </span>
                                    <span class="rl-label">'.__( 'RapidLoad', 'unusedcss' ) . '</span>
                                    '. ( isset($options['rapidload_test_mode']) && $options['rapidload_test_mode'] === "1" ? ' <span class="rl-input-wrapper-test-mode"><span class="rl-input-test-mode">Test Mode</span></span>' : '' ) . '</div>',
                    'href'  => admin_url( 'admin.php?page=rapidload' ),
                    'meta'  => array( 'class' => '' ),
                ));

                $wp_admin_bar->add_node( array(
                    'id'    => 'rapidload-clear-cache',
                    'title' => '<span class="ab-label">' . __( 'Clear CSS/JS/Font Optimizations', 'unusedcss' ) . '</span>',
                    //'href'  => admin_url( 'admin.php?page=rapidload&action=rapidload_purge_all' ),
                    'href'   => wp_nonce_url( add_query_arg( array(
                        'action' => 'rapidload_purge_all',
                        'clear' => 'true',
                    ) ), 'uucss_nonce', 'nonce' ),
                    'meta'  => array( 'class' => 'rapidload-clear-all', 'title' => 'RapidLoad will clear all the cached files' ),
                    'parent' => 'rapidload'
                ));

            }

        }


    }

    function is_admin_url($url){
        $_url = wp_parse_url(untrailingslashit(admin_url()));
        if(isset($_url['path']) && $this->str_contains($url, $_url['path'])){
            return true;
        }
        return false;
    }
}