PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Admin / MenuFactory.php
codepress-admin-columns / classes / Admin Last commit date
Asset 2 days ago Banner 2 days ago Colors 2 days ago MenuGroupFactory 2 days ago MenuPageFactory 2 days ago Notice 2 days ago Page 2 days ago PageFactory 2 days ago Preference 2 days ago Type 2 days ago View 2 days ago Admin.php 2 days ago AdminLoader.php 2 days ago AdminNetwork.php 2 days ago AdminScripts.php 2 days ago HelpTab.php 2 days ago Helpable.php 2 days ago Menu.php 2 days ago MenuFactory.php 2 days ago MenuFactoryInterface.php 2 days ago MenuGroupFactory.php 2 days ago MenuListFactory.php 2 days ago MenuListItems.php 2 days ago MenuPageFactory.php 2 days ago PageFactoryInterface.php 2 days ago PageNetworkRequestHandler.php 2 days ago PageNetworkRequestHandlers.php 2 days ago PageRequestHandler.php 2 days ago PageRequestHandlers.php 2 days ago RenderableHead.php 2 days ago RequestHandlerInterface.php 2 days ago ScreenOption.php 2 days ago ScreenOptions.php 2 days ago Scripts.php 2 days ago Tooltip.php 2 days ago UninitializedScreens.php 2 days ago
MenuFactory.php
99 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Admin;
6
7 use AC\Admin\Type\MenuItem;
8 use AC\AdminColumns;
9 use AC\Asset\Location;
10 use AC\Deprecated\Hooks;
11 use AC\Type\Url\Site;
12 use AC\Type\Url\UtmTags;
13
14 class MenuFactory implements MenuFactoryInterface
15 {
16 protected string $url;
17
18 protected Location $location;
19
20 private Hooks $hooks;
21
22 public function __construct(string $url, AdminColumns $plugin, Hooks $hooks)
23 {
24 $this->url = $url;
25 $this->location = $plugin->get_location();
26 $this->hooks = $hooks;
27 }
28
29 protected function create_menu_link(string $slug): string
30 {
31 return add_query_arg(
32 [
33 RequestHandlerInterface::PARAM_PAGE => Admin::NAME,
34 RequestHandlerInterface::PARAM_TAB => $slug,
35 ],
36 $this->url
37 );
38 }
39
40 public function create(string $current): Menu
41 {
42 $menu = new Menu();
43
44 $items = [
45 Page\Columns::NAME => __('Columns', 'codepress-admin-columns'),
46 Page\Settings::NAME => __('Settings', 'codepress-admin-columns'),
47 Page\Addons::NAME => __('Add-ons', 'codepress-admin-columns'),
48 ];
49
50 $hook_count = $this->hooks->get_count();
51
52 if ($hook_count > 0) {
53 $menu->add_item(
54 new MenuItem(
55 Page\Help::NAME,
56 $this->create_menu_link(Page\Help::NAME),
57 sprintf(
58 '%s %s',
59 __('Help', 'codepress-admin-columns'),
60 '<span class="ac-badge">' . $hook_count . '</span>'
61 ),
62 sprintf('-%s %s', Page\Help::NAME, $current === Page\Help::NAME ? '-active' : ''),
63 '',
64 20
65 )
66 );
67 }
68
69 foreach ($items as $slug => $label) {
70 $menu->add_item(
71 new MenuItem(
72 $slug,
73 $this->create_menu_link($slug),
74 $label,
75 sprintf('-%s %s', $slug, $current === $slug ? '-active' : '')
76 )
77 );
78 }
79
80 $url = (new UtmTags(Site::create_admin_columns_pro(), 'upgrade'))->get_url();
81
82 $menu->add_item(
83 new MenuItem(
84 'pro',
85 $url,
86 sprintf('%s %s', 'Upgrade to Pro', '<span class="dashicons dashicons-external"></span>'),
87 '-pro',
88 '_blank',
89 30
90 ),
91 );
92
93 do_action('ac/admin/page/menu', $menu);
94
95 return $menu;
96 }
97
98 }
99