芝麻web文件管理V1.00
编辑当前文件:/home/ezdajrnh/public_html/wp-content/plugins/google-site-kit/includes/Core/Admin/Pointers.php
get_method_proxy( 'enqueue_pointers' ) ); } /** * Enqueues pointer scripts. * * @since 1.83.0 * * @param string $hook_suffix The current admin page. */ private function enqueue_pointers( $hook_suffix ) { if ( empty( $hook_suffix ) ) { return; } $pointers = $this->get_pointers(); if ( empty( $pointers ) ) { return; } $active_pointers = array_filter( $pointers, function ( Pointer $pointer ) use ( $hook_suffix ) { return $pointer->is_active( $hook_suffix ); } ); if ( empty( $active_pointers ) ) { return; } wp_enqueue_style( 'wp-pointer' ); // Dashboard styles are required where pointers are used to ensure proper styling. wp_enqueue_style( 'googlesitekit-wp-dashboard-css' ); wp_enqueue_script( 'wp-pointer' ); add_action( 'admin_print_footer_scripts', function () use ( $active_pointers ) { foreach ( $active_pointers as $pointer ) { $this->print_pointer_script( $pointer ); } } ); } /** * Gets pointers. * * @since 1.83.0 * * @return Pointer[] Array of pointers. */ private function get_pointers() { /** * Filters the list of available pointers. * * @since 1.83.0 * * @param array $pointers List of Pointer instances. */ $pointers = apply_filters( 'googlesitekit_admin_pointers', array() ); return array_filter( $pointers, function ( $pointer ) { return $pointer instanceof Pointer; } ); } /** * Prints script for a given pointer. * * @since 1.83.0 * @since 1.166.0 Updated to support buttons and header dismiss icon. * * @param Pointer $pointer Pointer to print. */ private function print_pointer_script( $pointer ) { $content = $pointer->get_content(); if ( empty( $content ) ) { return; } $buttons = $pointer->get_buttons(); if ( $buttons ) { // Content including buttons escaped below in the inline script with wp_kses. $content .= '
' . $buttons . '
'; } $class = array( 'wp-pointer' ); if ( $pointer->get_class() ) { $class[] = $pointer->get_class(); } $kses_title = array( 'span' => array( 'class' => array() ), 'button' => array( 'class' => array(), 'type' => array(), 'data-action' => array(), ), ); $kses_content = array( 'a' => array( 'href' => array(), 'class' => array(), 'target' => array(), 'rel' => array(), 'data-action' => array(), ), 'h4' => array(), 'p' => array( 'class' => array() ), 'br' => array(), 'strong' => array(), 'em' => array(), 'button' => array( 'class' => array(), 'type' => array(), 'data-action' => array(), ), 'div' => array( 'class' => array() ), ); BC_Functions::wp_print_inline_script_tag( <<<'JS' ( function ( $, wp, config ) { function initPointer() { const options = { content: '
' + config.title + '
' + config.content, position: JSON.parse( config.position ), pointerWidth: 420, pointerClass: config.class, close: function() { wp.ajax.post( 'dismiss-wp-pointer', { pointer: config.slug } ); }, buttons: function( event, container ) { container.pointer.on( 'click', '[data-action="dismiss"]', function() { container.element.pointer( 'close' ); } ); } }; $( '#' + config.targetId ).pointer( options ).pointer( 'open' ); } $( initPointer ); } )( window.jQuery, window.wp, { ...document.currentScript.dataset } ); JS , array( 'data-slug' => $pointer->get_slug(), 'data-class' => implode( ' ', $class ), 'data-target-id' => $pointer->get_target_id(), 'data-title' => wp_kses( $pointer->get_title(), $kses_title ), 'data-content' => wp_kses( $content, $kses_content ), 'data-position' => wp_json_encode( $pointer->get_position() ), ) ); } }