Skip to content

Commit dccd8d4

Browse files
committed
Stabilize sub-menus
1 parent 7791b18 commit dccd8d4

File tree

3 files changed

+14
-22
lines changed

3 files changed

+14
-22
lines changed

admin/class-bmltenabled-admin.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,19 @@
1010
class BmltEnabled_Admin
1111
{
1212
private bool $menu_created = false;
13+
private string $slug;
1314
/**
1415
* Initialize the class and set its properties.
1516
*
1617
* @since 2.8.0
1718
* @param string $plugin_name The name of this plugin.
1819
* @param string $version The version of this plugin.
1920
*/
20-
public function __construct()
21+
public function __construct($slug)
2122
{
23+
$this->slug = $slug;
2224
}
23-
public function createdMenu()
25+
public function createMenu()
2426
{
2527
$this->menu_created = true;
2628
}
@@ -33,18 +35,16 @@ function admin_menu_link()
3335
if (!current_user_can($cap)) {
3436
$cap = 'manage_bread';
3537
}
36-
$slugs = apply_filters('BmltEnabled_Slugs', []);
3738
$icon = apply_filters("BmltEnabled_IconSVG", 'dashicons-location-alt');
38-
$slug = $slugs[0];
3939
add_menu_page(
4040
'Meeting Lists',
4141
'Meeting Lists',
4242
$cap,
43-
$slug,
43+
$this->slug,
4444
'',
4545
$icon,
4646
null
4747
);
48-
do_action('BmltEnabled_Submenu', $slug);
48+
do_action('BmltEnabled_Submenu', $this->slug);
4949
}
5050
}

admin/class-bread-admin.php

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class Bread_Admin
4444
*/
4545
var $bmltEnabled_admin;
4646
private Bread $bread;
47+
private string $hook;
4748
public function __construct($plugin_name, $version, $bmltEnabled_admin, $bread)
4849
{
4950
$this->plugin_name = $plugin_name;
@@ -62,7 +63,7 @@ public function get_bread_instance(): Bread
6263
*/
6364
public function enqueue_styles($hook)
6465
{
65-
if (!str_ends_with($hook, 'page_class-bread-admin')) {
66+
if (!str_ends_with($hook, $this->hook)) {
6667
return;
6768
}
6869
wp_enqueue_style("jquery-ui", plugin_dir_url(__FILE__) . "css/jquery-ui.min.css", false, "1.2", 'all');
@@ -81,7 +82,7 @@ public function enqueue_styles($hook)
8182
*/
8283
public function enqueue_scripts($hook)
8384
{
84-
if (!str_ends_with($hook, 'page_class-bread-admin')) {
85+
if (!str_ends_with($hook, $this->hook)) {
8586
return;
8687
}
8788
wp_enqueue_script('common');
@@ -431,28 +432,20 @@ function get($url, $cookies = array())
431432
}
432433
return wp_remote_get($url, $args);
433434
}
434-
function submenu_slug($slugs)
435-
{
436-
$this->bmltEnabled_admin->createdMenu();
437-
if (!is_array($slugs)) {
438-
$slugs = array();
439-
}
440-
$slugs[] = basename(__FILE__);
441-
return $slugs;
442-
}
443435
/**
444436
* @desc Adds the options sub-panel
445437
*/
446438
function admin_submenu_link($parent_slug)
447439
{
448440
activate_bread();
449-
global $my_admin_page;
450-
$my_admin_page = add_submenu_page(
441+
$this->bmltEnabled_admin->createMenu();
442+
443+
$this->hook = add_submenu_page(
451444
$parent_slug,
452445
'Printable Meeting Lists',
453446
'Printable Meeting Lists',
454447
'manage_bread',
455-
basename(__FILE__),
448+
'bmlt-enabled-bread',
456449
array(&$this, 'admin_options_page'),
457450
2
458451
);

includes/class-bread.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -485,15 +485,14 @@ private function set_locale()
485485
*/
486486
private function define_admin_hooks()
487487
{
488-
$bmltenabled_admin = new BmltEnabled_Admin();
488+
$bmltenabled_admin = new BmltEnabled_Admin('bmlt-enabled-bread');
489489
$plugin_admin = new Bread_Admin($this->get_plugin_name(), $this->get_version(), $bmltenabled_admin, $this);
490490

491491
$this->loader->add_action('admin_enqueue_scripts', $plugin_admin, 'enqueue_styles');
492492
$this->loader->add_action('admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts');
493493

494494
$this->loader->add_action("admin_menu", $bmltenabled_admin, "admin_menu_link");
495495
$this->loader->add_action("BmltEnabled_Submenu", $plugin_admin, "admin_submenu_link");
496-
$this->loader->add_filter("BmltEnabled_Slugs", $plugin_admin, "submenu_slug");
497496
$this->loader->add_filter('tiny_mce_before_init', $plugin_admin, 'tiny_tweaks');
498497
$this->loader->add_filter('mce_external_plugins', $plugin_admin, 'my_custom_plugins');
499498
$this->loader->add_filter('mce_buttons', $plugin_admin, 'my_register_mce_button');

0 commit comments

Comments
 (0)