Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
jet-engine
/
framework
/
admin-bar
:
jet-admin-bar.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Admin Bar module * * Version: 1.0.0 */ // If this file is called directly, abort. if ( ! defined( 'WPINC' ) ) { die; } if ( ! class_exists( 'Jet_Admin_Bar' ) ) { /** * Admin Bar management module. */ class Jet_Admin_Bar { /** * A reference to an instance of this class. * * @access private * @var object */ private static $instance = null; /** * A reference to an instance of this class. * * @access private * @var object */ public $args = array(); /** * Module version. * * @var string */ protected $version = '1.0.0'; private $items = array(); private $default_parent_item = 'jet_plugins'; /** * Constructor. * * @param array $args * @access public * @return void */ public function __construct( $args = array() ) { if ( is_admin() || ! is_admin_bar_showing() ) { return; } remove_action( 'wp_body_open', 'wp_admin_bar_render', 0 ); add_action( 'init', array( $this, 'register_default_items' ) ); add_action( 'admin_bar_menu', array( $this, 'register_items' ), 99 ); add_action( 'wp_enqueue_scripts', array( $this, 'add_inline_style' ) ); } /** * Register default items. */ public function register_default_items() { $this->register_parent_item( $this->default_parent_item, array( 'title' => 'Edit with JetPlugins', ) ); } /** * Register items. * * @param WP_Admin_Bar $wp_admin_bar */ public function register_items( $wp_admin_bar ) { foreach ( $this->items as $parent_id => $parent_args ) { if ( empty( $parent_args['children'] ) ) { continue; } $_parent_args = $parent_args; $_parent_args['id'] = $parent_id; unset( $_parent_args['children'] ); $wp_admin_bar->add_menu( $_parent_args ); // Register children items. $parent_args['children'] = $this->sort_children_items( $parent_args['children'] ); foreach ( $parent_args['children'] as $child_id => $child_args ) { $child_args['id'] = $child_id; $child_args = $this->prepare_child_item_args( $child_args ); $wp_admin_bar->add_menu( $child_args ); } } } /** * Sorting children items. * * @param array $children * @return array */ public function sort_children_items( $children ) { $children = wp_list_sort( $children, array( 'priority' => 'ASC', 'sub_title' => 'ASC' ), null, true ); return $children; } /** * Register parent item. * * @param string $id * @param array $args */ public function register_parent_item( $id = null, $args = array() ) { $args['id'] = $id; $this->items[ $id ] = $args; } /** * Register child item. * * @param string $id * @param array $args */ public function register_item( $id = null, $args = array() ) { $default_args = array( 'title' => '', 'sub_title' => '', 'href' => '', 'parent' => $this->default_parent_item, // Additional arguments 'class' => '', 'target_blank' => true, 'priority' => 10, ); $args = array_merge( $default_args, $args ); if ( $this->has_item( $id, $args ) ) { return; } $this->items[ $args['parent'] ]['children'][ $id ] = $args; } /** * Prepare child item arguments. * * @param array $args * @return array */ public function prepare_child_item_args( $args ) { if ( ! empty( $args['sub_title'] ) ) { $args['title'] = sprintf( '<span class="jet-ab-title">%1$s</span><span class="jet-ab-sub-title">%2$s</span>', $args['title'], $args['sub_title'] ); } $classes = array( 'jet-ab-item' ); if ( ! empty( $args['class'] ) ) { $classes[] = $args['class']; } $args['meta']['class'] = join( ' ', $classes ); if ( $args['target_blank'] ) { $args['meta']['target'] = '_blank'; } unset( $args['sub_title'] ); unset( $args['class'] ); unset( $args['target_blank'] ); unset( $args['priority'] ); return $args; } /** * Register child item by post ID. * * @param int $post_id * @param array $args */ public function register_post_item( $post_id = null, $args = array() ) { if ( empty( $post_id ) ) { return; } $id = 'edit_post_' . $post_id; if ( $this->has_item( $id, $args ) ) { return; } $post = get_post( $post_id ); if ( empty( $post ) ) { return; } $default_args = array( 'title' => $post->post_title, 'sub_title' => $this->get_post_type_label( $post->post_type ), 'href' => $this->get_edit_url( $post_id ), ); $args = array_merge( $default_args, $args ); $this->register_item( $id, $args ); } public function has_item( $id, $args ) { $args['parent'] = ! empty( $args['parent'] ) ? $args['parent'] : $this->default_parent_item; return isset( $this->items[ $args['parent'] ]['children'][ $id ] ); } public function get_post_type_label( $post_type ) { $post_type_obj = get_post_type_object( $post_type ); return $post_type_obj->labels->singular_name; } public function get_edit_url( $id ) { $is_build_with_elementor = ! ! get_post_meta( $id, '_elementor_edit_mode', true ); if ( $is_build_with_elementor && class_exists( 'Elementor\Plugin' ) ) { $edit_url = Elementor\Plugin::instance()->documents->get( $id )->get_edit_url(); } else { $edit_url = get_edit_post_link( $id, '' ); } return $edit_url; } public function add_inline_style() { $css = ' #wpadminbar #wp-admin-bar-jet_plugins > .ab-item::before { content: ""; width: 20px; height: 18px; top: 3px; background-size: contain; background-repeat: no-repeat; background-position: center center; background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIwIDFINEMyLjM0MzE1IDEgMSAyLjM0MzE1IDEgNFYyMEMxIDIxLjY1NjkgMi4zNDMxNSAyMyA0IDIzSDIwQzIxLjY1NjkgMjMgMjMgMjEuNjU2OSAyMyAyMFY0QzIzIDIuMzQzMTUgMjEuNjU2OSAxIDIwIDFaTTQgMEMxLjc5MDg2IDAgMCAxLjc5MDg2IDAgNFYyMEMwIDIyLjIwOTEgMS43OTA4NiAyNCA0IDI0SDIwQzIyLjIwOTEgMjQgMjQgMjIuMjA5MSAyNCAyMFY0QzI0IDEuNzkwODYgMjIuMjA5MSAwIDIwIDBINFoiIGZpbGw9IiNhN2FhYWQiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIxLjYyOTMgNi4wMDA2NkMyMS45NDAyIDUuOTgxNDggMjIuMTE3NiA2LjM4NTc4IDIxLjkxMSA2LjY0Mjc3TDIwLjA3MjIgOC45MzAzNUMxOS44NTY5IDkuMTk4MjQgMTkuNDU1NiA5LjAyNjk4IDE5LjQ1OTggOC42NjlMMTkuNDcwOCA3Ljc0MDg0QzE5LjQ3MjIgNy42MTkyMyAxOS40MjE2IDcuNTAzOTggMTkuMzM0MyA3LjQyOTc1TDE4LjY2NzYgNi44NjMyMUMxOC40MTA1IDYuNjQ0NyAxOC41Mzc4IDYuMTkxMzQgMTguODYxOSA2LjE3MTM1TDIxLjYyOTMgNi4wMDA2NlpNNi45OTgzNSAxMi4wMDhDNi45OTgzNSAxNC4xOTkzIDUuMjA3MDYgMTUuOTc1MSAyLjk5OTY3IDE1Ljk3NTFDMi40NDY1NSAxNS45NzUxIDIgMTUuNTI5MyAyIDE0Ljk4MjdDMiAxNC40MzYxIDIuNDQ2NTUgMTMuOTkyOCAyLjk5OTY3IDEzLjk5MjhDNC4xMDMzNiAxMy45OTI4IDQuOTk5MDEgMTMuMTAzNiA0Ljk5OTAxIDEyLjAwOFY5LjAzMzIzQzQuOTk5MDEgOC40ODQxMyA1LjQ0NTU2IDguMDQwODIgNS45OTg2OCA4LjA0MDgyQzYuNTUxNzkgOC4wNDA4MiA2Ljk5ODM1IDguNDg0MTMgNi45OTgzNSA5LjAzMzIzVjEyLjAwOFpNMTcuNzc2NSAxMi4wMDhDMTcuNzc2NSAxMy4xMDM2IDE4LjY3MjEgMTMuOTkyOCAxOS43NzU4IDEzLjk5MjhDMjAuMzI5IDEzLjk5MjggMjAuNzc1NSAxNC40MzM2IDIwLjc3NTUgMTQuOTgyN0MyMC43NzU1IDE1LjUzMTggMjAuMzI5IDE1Ljk3NTEgMTkuNzc1OCAxNS45NzUxQzE3LjU2ODQgMTUuOTc1MSAxNS43NzcyIDE0LjE5OTMgMTUuNzc3MiAxMi4wMDhWOS4wMzMyM0MxNS43NzcyIDguNDg0MTMgMTYuMjIzNyA4LjA0MDgyIDE2Ljc3NjggOC4wNDA4MkMxNy4zMyA4LjA0MDgyIDE3Ljc3NjUgOC40ODY2NSAxNy43NzY1IDkuMDMzMjNWOS45MjIzN0gxOC41NzA3QzE5LjEyMzggOS45MjIzNyAxOS41NzI5IDEwLjM2ODIgMTkuNTcyOSAxMC45MTczQzE5LjU3MjkgMTEuNDY2NCAxOS4xMjM4IDExLjkxMjIgMTguNTcwNyAxMS45MTIySDE3Ljc3NjVWMTIuMDA4Wk0xNS4yMDM4IDEwLjYxNzZDMTUuMjA2MyAxMC42MTUxIDE1LjIwODggMTAuNjE1MSAxNS4yMDg4IDEwLjYxNTFDMTQuODk0MiA5Ljc5MzkzIDE0LjMwNTYgOS4wNzM1NSAxMy40ODM1IDguNjAwMDFDMTEuNTc1NSA3LjUwMTgxIDkuMTM5NzkgOC4xNTE2NiA4LjA0MTE3IDEwLjA1MDhDNi45NDAwMSAxMS45NDc1IDcuNTk0NjIgMTQuMzczMSA5LjUwMDA4IDE1LjQ2ODhDMTAuOTAzMiAxNi4yNzQ5IDEyLjU5MyAxNi4xMzM4IDEzLjgyNjEgMTUuMjQ3MkwxMy44MTg0IDE1LjIzNzFDMTQuMTAyNiAxNS4wNjMzIDE0LjI5MDQgMTQuNzUxIDE0LjI5MDQgMTQuMzk1OEMxNC4yOTA0IDEzLjg0OTIgMTMuODQzOCAxMy40MDU5IDEzLjI5MzIgMTMuNDA1OUMxMy4wMjY4IDEzLjQwNTkgMTIuNzgzMyAxMy41MDkyIDEyLjYwNTcgMTMuNjgwNUMxMi4wMDY5IDE0LjA4MSAxMS4yMTAyIDE0LjE0MzkgMTAuNTM3OCAxMy43NzYyTDE0LjU2NDQgMTEuOTE5OEMxNC43OTc4IDExLjg0OTMgMTUuMDA1OSAxMS42OTMxIDE1LjEzNTMgMTEuNDY2NEMxNS4yOTI2IDExLjE5NjkgMTUuMzA3OCAxMC44ODcxIDE1LjIwMzggMTAuNjE3NlpNMTIuNDg2NCAxMC4zMTUzQzEyLjYwNTcgMTAuMzgzMyAxMi43MTIyIDEwLjQ2MTQgMTIuODExMiAxMC41NDcxTDkuNDk3NTQgMTIuMDcwOUM5LjQ4OTkzIDExLjcyMDggOS41NzYyIDExLjM2NTcgOS43NjM5NSAxMS4wNDA3QzEwLjMxNDUgMTAuMDkzNyAxMS41MzI0IDkuNzY4NzQgMTIuNDg2NCAxMC4zMTUzWiIgZmlsbD0iI2E3YWFhZCIvPjwvc3ZnPg==")!important; } #wpadminbar .jet-ab-item .ab-item { display: flex; justify-content: space-between; align-items: center; gap: 10px; } #wpadminbar .jet-ab-title { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; width: 100%; } #wpadminbar .jet-ab-sub-title { padding: 4px 8px; font-size: 11px; line-height: 9px; background: #55595c; border-radius: 3px; } '; wp_add_inline_style( 'admin-bar', $css ); } /** * Returns the instance. * * @param array $args * @access public * @return object */ public static function get_instance( array $args = array() ) { // If the single instance hasn't been set, set it now. if ( null == self::$instance ) { self::$instance = new self( $args ); } return self::$instance; } } }