PluginProbe
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder / 2.8.0
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder v2.8.0
2.12.0 2.11.1 2.11.0 2.10.0 2.9.0 2.7.4 2.7.5 2.7.6 2.7.7 2.8.0 2.8.1 2.9.1 trunk 1.0 1.0-beta1 1.0-beta2 1.0-beta3 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.2.0 1.2.1 All 78 releases
ablocks / includes / admin / menu.php

menu.php in aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder 2.8.0, at includes/admin/menu.php

108 lines 3.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace ABlocks\Admin;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit;
6 }
7
8 use ABlocks\Helper;
9
10 class Menu {
11
12 public static function init() {
13 $self = new self();
14 add_action( 'admin_menu', array( $self, 'admin_menu' ) );
15 add_action( 'admin_head', array( $self, 'add_admin_menu_css' ) );
16 }
17
18 /**
19 * Add admin menu page
20 *
21 * @return void
22 */
23 public function admin_menu() {
24 $icon_url = $this->get_toplevel_menu_icon_url();
25 $page_title = $this->get_toplevel_menu_title();
26 add_menu_page( $page_title, $page_title, 'manage_options', ABLOCKS_PLUGIN_SLUG, [ $this, 'load_main_template' ], $icon_url, 30 );
27 foreach ( Helper::get_admin_menu_list() as $item_key => $item ) {
28 add_submenu_page( $item['parent_slug'], $item['title'], $item['title'], $item['capability'], $item_key, [ $this, 'load_main_template' ] );
29 }
30
31 $this->register_theme_demo_importer_menu();
32 }
33 public function get_toplevel_menu_icon_url() {
34 // phpcs:disable
35 if ( isset( $_GET['page'] ) && 'ablocks' === $_GET['page'] ) {
36 $icon_url = 'data:image/svg+xml;base64, ' . base64_encode( file_get_contents( ABLOCKS_ASSETS_PATH . 'images/menu-icon-expand.svg' ) );
37 return apply_filters( 'ablocks/admin/toplevel_active_menu_icon', $icon_url );
38 }
39 $icon_url = 'data:image/svg+xml;base64, ' . base64_encode( file_get_contents( ABLOCKS_ASSETS_PATH . 'images/menu-icon.svg' ) );
40 return apply_filters( 'ablocks/admin/toplevel_inactive_menu_icon', $icon_url );
41 }
42 public function load_main_template() {
43 $preloader_html = apply_filters( 'ablocks/preloader', Helper::get_preloader_html() );
44 echo '<div id="ablockswrap" class="ablockswrap">' . wp_kses_post( $preloader_html ) . '</div>';
45 }
46 public function get_toplevel_menu_title() {
47 return apply_filters( 'ablocks/admin/toplevel_menu_title', __( 'aBlocks', 'ablocks' ) );
48 }
49
50 /**
51 * Register sub-menu for theme based demo-import.
52 *
53 * @return void
54 */
55 public function register_theme_demo_importer_menu() {
56 $demo_config = Helper::get_theme_demo_config();
57 if ( empty($demo_config['demos']) && !$demo_config['preloaded_demo']) {
58 return;
59 }
60
61 add_submenu_page(
62 'themes.php',
63 $demo_config['page_title'],
64 $demo_config['menu_title'],
65 'manage_options',
66 $demo_config['menu_slug'],
67 [ $this, 'load_demo_importer_template' ]
68 );
69 }
70
71 public function load_demo_importer_template() {
72 echo '<div id="ablocks-theme-demo-importer"></div>';
73 }
74
75 function add_admin_menu_css() {
76 echo '<style>
77 #adminmenu li.toplevel_page_ablocks a.toplevel_page_ablocks > .wp-menu-image {
78 display: flex;
79 justify-content: center;
80 align-items: center;
81 }
82 #adminmenu li.toplevel_page_ablocks a.toplevel_page_ablocks > .wp-menu-image img {
83 max-width: 20px;
84 height: auto;
85 padding: 0 !important;
86 }
87 #adminmenu li.toplevel_page_ablocks ul li a, #adminmenu li.toplevel_page_ablocks .wp-submenu > li > a {
88 padding: 7px 12px;
89 }
90
91 #adminmenu li.toplevel_page_ablocks ul.wp-submenu li {
92 clear: both;
93 }
94 #adminmenu li.toplevel_page_ablocks ul.wp-submenu li.wp-first-item a[href^="admin.php?page=ablocks"]:after,
95 #adminmenu li.toplevel_page_ablocks ul.wp-submenu li.wp-first-item a[href*="admin.php?page=ablocks"]:after,
96 #adminmenu li.toplevel_page_ablocks ul.wp-submenu li a[href*="admin.php?page=ablocks-tools"]:after,
97 #adminmenu li.toplevel_page_ablocks ul.wp-submenu li a[href^="admin.php?page=ablocks-tools"]:after {
98 border-bottom: 1px solid hsla(0,0%,100%,.2);
99 display: block;
100 float: left;
101 margin: 15px -15px 7px;
102 content: "";
103 width: calc(100% + 26px);
104 }
105 </style>';
106 }
107 }
108