.*?<', $str ) ) );
}
/*
* Convert hex color values to RGB values
*/
function admin_search_RGB( $hex ) {
if ( $hex[ 0 ] == '#' )
$hex = substr( $hex, 1 );
if ( strlen( $hex ) == 3 ) {
$hex = $hex[ 0 ] . $hex[ 0 ] . $hex[ 1 ] . $hex[ 1 ] . $hex[ 2 ] . $hex[ 2 ];
}
return hexdec( $hex[ 0 ] . $hex[ 1 ] ) . ' ' . hexdec( $hex[ 2 ] . $hex[ 3 ] ) . ' ' . hexdec( $hex[ 4 ] . $hex[ 5 ] );
}
/*
* Add plugin assets
*/
function admin_search_load_plugin_assets() {
if ( isset( $_GET[ 'admin_search_preview' ] ) && $_GET[ 'admin_search_preview' ] ) {
add_filter( 'show_admin_bar', '__return_false' );
wp_register_script( 'admin-search-preview-script', '', [], '', true );
wp_enqueue_script( 'admin-search-preview-script' );
wp_add_inline_script( 'admin-search-preview-script', "window.parent.postMessage({display:true},'" . get_site_url() . "');" );
}
if ( ! is_user_logged_in() ) {
return;
}
if ( ! current_user_can( 'edit_others_pages' ) ) {
return;
}
if ( ! is_admin() && ! admin_search_setting( 'show_when_viewing_site' ) ) {
return;
}
if ( ! is_admin_bar_showing() ) {
return;
}
wp_enqueue_style( 'admin-search-stylesheet', plugin_dir_url( __FILE__ ) . 'assets/style.css', array(), ADMIN_SEARCH_VERSION );
wp_enqueue_script( 'jquery-ui-draggable' );
wp_enqueue_script( 'admin-search-script', plugin_dir_url( __FILE__ ) . 'assets/script.js', array( 'jquery', 'jquery-ui-draggable', 'wp-util', 'underscore' ), ADMIN_SEARCH_VERSION );
$formatted_menu = array();
if ( is_admin() ) {
global $menu, $submenu;
if ( current_user_can( 'manage_options' ) ) {
foreach ( $menu as $menu_item ) {
if ( ! $menu_item[ 0 ] ) {
continue;
}
$menu_item_name = admin_search_sanitize_menu_name( $menu_item[ 0 ] );
$menu_item_title = $menu_item_name;
$menu_item_url = $menu_item[ 2 ];
if ( isset( $submenu[ $menu_item[ 2 ] ] ) ) {
foreach ( $submenu[ $menu_item[ 2 ] ] as $submenu_item ) {
if ( ! $submenu_item[ 0 ] ) {
continue;
}
if ( ! current_user_can( $submenu_item[ 1 ] ) ) {
continue;
}
$submenu_item_name = admin_search_sanitize_menu_name( $submenu_item[ 0 ] );
$submenu_item_title = $submenu_item_name;
$submenu_item_url = $submenu_item[ 2 ];
if ( strpos( $submenu_item_url, '.php' ) === false ) {
$submenu_item_url = 'admin.php?page=' . $submenu_item_url;
}
$formatted_menu[ $submenu_item[ 2 ] ] = array(
'edit_post_link' => admin_url( $submenu_item_url ),
'name' => strtolower( $submenu_item_name . ' ' . $menu_item_name ),
'title' => $submenu_item_title,
'status' => null
);
if ( strpos( $submenu_item_name, $menu_item_name ) === false ) {
$formatted_menu[ $submenu_item[ 2 ] ][ 'status' ] = $menu_item_name;
}
}
continue;
}
if ( ! current_user_can( $menu_item[ 1 ] ) ) {
continue;
}
if ( strpos( $menu_item_url, '.php' ) === false ) {
$menu_item_url = 'admin.php?page=' . $menu_item_url;
}
$formatted_menu[ $menu_item[ 2 ] ] = array(
'edit_post_link' => admin_url( $menu_item_url ),
'name' => strtolower( $menu_item_name ),
'title' => $menu_item_title,
'status' => null
);
}
}
}
$inline_script = "var admin_search={site_url:'" . get_site_url() . "',ajax_url:'" . admin_url( 'admin-ajax.php' );
$inline_script .= "',display_on_keypress:";
$inline_script .= admin_search_setting( 'display_on_keypress' ) ? 'true' : 'false';
$inline_script .= ",include_admin_pages:";
$inline_script .= admin_search_setting( 'include_admin_pages' ) ? 'true' : 'false';
$inline_script .= ",menu:" . json_encode( $formatted_menu );
$inline_script .= ",admin_pages_label:'" . addslashes( htmlentities( __( 'Admin Pages', 'admin-search' ) ) );
$inline_script .= "'}";
wp_add_inline_script( 'admin-search-script', $inline_script );
global $_wp_admin_css_colors;
$inline_style = "";
if ( is_admin() && ! in_array( get_user_option( 'admin_color' ), array( 'light', 'modern' ) ) ) {
$scheme = $_wp_admin_css_colors[ get_user_option( 'admin_color' ) ];
$inline_style .= ":root{--as-background-color:" . $scheme -> colors[ 1 ];
$inline_style .= ";--as-background-color-rgb:" . admin_search_RGB( $scheme -> colors[ 1 ] );
$inline_style .= ";--as-focus-color:" . $scheme -> colors[ 2 ];
$inline_style .= ";--as-focus-text-color:" . $scheme -> colors[ 3 ];
$inline_style .= ";--as-primary-color:" . $scheme -> icon_colors[ 'current' ];
$inline_style .= ";--as-primary-color-rgb:" . admin_search_RGB( $scheme -> icon_colors[ 'current' ] );
$inline_style .= "}@media (min-width:783px){:root{--as-background-color:" . $scheme -> colors[ 0 ];
$inline_style .= ";--as-background-color-rgb:" . admin_search_RGB( $scheme -> colors[ 0 ] );
$inline_style .= "}}";
}
wp_add_inline_style( 'admin-search-stylesheet', $inline_style );
}
add_action( 'admin_enqueue_scripts', 'admin_search_load_plugin_assets' );
add_action( 'wp_enqueue_scripts', 'admin_search_load_plugin_assets' );
/*
* Add search button to admin bar
*/
function admin_search_add_wb_item( $admin_bar ) {
if ( ! is_user_logged_in() ) {
return;
}
if ( ! current_user_can( 'edit_others_pages' ) ) {
return;
}
if ( ! is_admin() && ! admin_search_setting( 'show_when_viewing_site' ) ) {
return;
}
if ( ! is_admin_bar_showing() ) {
return;
}
$admin_bar -> add_menu( array(
'id' => 'admin-search-toggle',
'title' => '' . __( 'Search WordPress', 'admin-search' ) . '',
'href' => '#',
'meta' => array(
'title' => __( 'Search', 'admin-search' ),
'onclick' => 'admin_search_modal( { toggle : true } ); return false'
),
) );
}
add_action( 'admin_bar_menu', 'admin_search_add_wb_item', 100 );
/*
* Add search UI template compontents
*/
function admin_search_ui() {
if ( ! is_user_logged_in() ) {
return;
}
if ( ! current_user_can( 'edit_others_pages' ) ) {
return;
}
if ( ! is_admin() && ! admin_search_setting( 'show_when_viewing_site' ) ) {
return;
}
if ( ! is_admin_bar_showing() ) {
return;
}
$loading_indicator = '';
?>