PluginProbe ʕ •ᴥ•ʔ
Superb Addons: Blocks, Patterns, Pre-built Pages, Sliders, Popups, Free Forms, Animations & More / 4.0.7
Superb Addons: Blocks, Patterns, Pre-built Pages, Sliders, Popups, Free Forms, Animations & More v4.0.7
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 4.0.2 4.0.1 4.0.0 trunk 1.0.0 2.0.0 2.0.1 2.0.2 2.0.3 3.0 3.0.1 3.0.2 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.2 3.1.3 3.2.0 3.2.1 3.2.2 3.2.4 3.2.5 3.2.7 3.2.8 3.2.9 3.3.0 3.3.1 3.3.2 3.4.0 3.4.1 3.4.2 3.4.5 3.4.6 3.5.0 3.5.1 3.5.2 3.5.3 3.5.4 3.5.6 3.5.7 3.5.8 3.5.9 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1
superb-blocks / src / components / admin / class-navigation.php
superb-blocks / src / components / admin Last commit date
class-content-box-large.php 3 days ago class-encryption-notice.php 3 days ago class-enhancement-settings-component.php 3 days ago class-feature-request-box.php 3 days ago class-input-api-key.php 3 days ago class-input-checkbox.php 3 days ago class-link-box.php 3 days ago class-modal-feedback.php 3 days ago class-modal.php 3 days ago class-navigation.php 3 days ago class-newsletter-form.php 3 days ago class-outdated-browser-warning.php 3 days ago class-premium-box.php 3 days ago class-premium-feature-list.php 3 days ago class-review-box.php 3 days ago class-support-box.php 3 days ago class-support-link-boxes.php 3 days ago
class-navigation.php
122 lines
1 <?php
2
3 namespace SuperbAddons\Components\Admin;
4
5 use SuperbAddons\Admin\Controllers\DashboardController;
6 use SuperbAddons\Admin\Controllers\RewriteCheckController;
7 use SuperbAddons\Admin\Utils\AdminLinkSource;
8 use SuperbAddons\Admin\Utils\AdminLinkUtil;
9 use SuperbAddons\Data\Controllers\KeyController;
10
11 defined('ABSPATH') || exit();
12
13 class Navigation
14 {
15 private $pages;
16 private $active_page;
17 private $issue_detected = false;
18 private $has_premium = false;
19 private $hide_navigation_items = false;
20 private $theme_designer = false;
21
22 public function __construct($hide_navigation_items = false, $theme_designer = false)
23 {
24 $HasRegisteredKey = KeyController::HasRegisteredKey();
25 if ($HasRegisteredKey) {
26 $this->has_premium = KeyController::HasValidPremiumKey();
27 $KeyStatus = KeyController::GetKeyStatus();
28 if (!$KeyStatus['active'] || $KeyStatus['expired'] || !$KeyStatus['verified'] || $KeyStatus['exceeded']) {
29 $this->issue_detected = true;
30 }
31 }
32
33 if (!$this->issue_detected && RewriteCheckController::HasDetectedIssue()) {
34 $this->issue_detected = true;
35 }
36
37 $this->theme_designer = $theme_designer;
38
39 if ($hide_navigation_items) {
40 $this->hide_navigation_items = true;
41 $this->pages = array();
42 $this->Render();
43 return;
44 }
45
46 // No need to verify nonce here, as we are simply reading the value to determine the current page
47 // phpcs:ignore WordPress.Security.NonceVerification.Recommended
48 $this->active_page = isset($_GET['page']) ? sanitize_text_field(wp_unslash($_GET['page'])) : DashboardController::DASHBOARD;
49 $pages = array_merge(array(DashboardController::MENU_SLUG => __("Dashboard", "superb-blocks")), apply_filters('superbaddons/admin/navigation/pages', array()));
50 $this->pages = array_merge($pages, array(
51 DashboardController::PAGE_WIZARD => __("Theme Designer", "superb-blocks"),
52 DashboardController::FORMS => __("Forms", "superb-blocks"),
53 DashboardController::ADDITIONAL_CSS => __("Custom CSS", "superb-blocks"),
54 DashboardController::SETTINGS => __("Settings", "superb-blocks"),
55 DashboardController::SUPPORT => __("Get Help", "superb-blocks"),
56 ));
57 $this->Render();
58 }
59
60 private function Render()
61 {
62 ?>
63 <div class="superbaddons-admindashboard-navigation <?php echo $this->hide_navigation_items ? 'superbaddons-admindashboard-navigation-items-hidden' : ''; ?>">
64 <div class="superbaddons-admindashboard-navigation-toplevel">
65 <a href="<?php echo esc_url(admin_url('admin.php?page=' . DashboardController::MENU_SLUG)); ?>" class="superbaddons-admindashboard-navigation-logo-wrapper">
66 <img src="<?php echo esc_url(SUPERBADDONS_ASSETS_PATH . '/img/icon-superb.svg'); ?>" />
67 <span class="superbaddons-element-text-md superbaddons-element-text-800 superbaddons-element-text-dark">Superb Addons</span>
68 </a>
69 <?php if ($this->theme_designer) : ?>
70 <div class="sba-wizard-topbar-info-wrapper">
71 <div class="sba-wizard-topbar-info">
72 <span class="sba-wizard-topbar-flow"><?php echo esc_html__('Theme Designer', 'superb-blocks'); ?></span>
73 <span class="sba-wizard-topbar-step"></span>
74 </div>
75 <span class="tooltip-right"
76 tabindex="0"
77 data-tooltip="Colors will match your theme style after the setup is complete.">
78
79 <svg xmlns="http://www.w3.org/2000/svg"
80 width="25"
81 height="25"
82 fill="currentColor"
83 viewBox="0 0 256 256">
84 <path d="M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z"></path>
85 </svg>
86 </span>
87 </div>
88 <?php endif; ?>
89 <div class="superbaddons-admindashboard-navigation-shortcuts">
90 <?php if (!$this->has_premium) : ?>
91 <a class="superbaddons-admindashboard-navigation-shortcuts-item" target="_blank" href="<?php echo esc_url(AdminLinkUtil::GetLink(AdminLinkSource::NAVIGATION)); ?>" title="<?php echo esc_attr__("Get Premium", "superb-blocks"); ?>"><img src="<?php echo esc_url(SUPERBADDONS_ASSETS_PATH . '/img/color-crown.svg'); ?>" alt="<?php echo esc_attr__("Get Premium", "superb-blocks"); ?>" /></a>
92 <?php endif; ?>
93 <a class="superbaddons-admindashboard-navigation-shortcuts-item" target="_blank" href="<?php echo esc_url(AdminLinkUtil::GetLink(AdminLinkSource::DEFAULT, array("url" => "https://superbthemes.com/contact/"))); ?>" title="<?php echo esc_attr__("Contact Support", "superb-blocks"); ?>"><img src="<?php echo esc_url(SUPERBADDONS_ASSETS_PATH . '/img/help.svg'); ?>" alt="<?php echo esc_attr__("Contact Support", "superb-blocks"); ?>" /></a>
94 <a class="superbaddons-admindashboard-navigation-shortcuts-item" target="_blank" href="<?php echo esc_url(AdminLinkUtil::GetLink(AdminLinkSource::DEFAULT, array("url" => "https://superbthemes.com/documentation/"))); ?>" title="<?php echo esc_attr__("View Documentation", "superb-blocks"); ?>"><img src="<?php echo esc_url(SUPERBADDONS_ASSETS_PATH . '/img/file.svg'); ?>" alt="<?php echo esc_attr__("View Documentation", "superb-blocks"); ?>" /></a>
95 <span class="superbaddons-admindashboard-navigation-shortcuts-item superbaddons-admindashboard-navigation-shortcuts-version">
96 <?php echo esc_html(SUPERBADDONS_VERSION); ?>
97 <?php if ($this->has_premium) : ?>
98 <img class="superbaddons-element-ml1" src="<?php echo esc_url(SUPERBADDONS_ASSETS_PATH . '/img/purple-crown.svg'); ?>" alt="<?php echo esc_attr__("Premium License", "superb-blocks"); ?>" />
99 <?php endif; ?>
100 </span>
101 <?php if (!$this->has_premium) : ?>
102 <a class="superbaddons-element-button-pro superbaddons-admindashboard-navigation-shortcuts-unlock" target="_blank" href="<?php echo esc_url(AdminLinkUtil::GetLink(AdminLinkSource::NAVIGATION_CTA)); ?>"><?php echo esc_html__("Unlock All Features", "superb-blocks"); ?></a>
103 <?php endif; ?>
104 </div>
105 </div>
106 <?php if (!$this->hide_navigation_items) : ?>
107 <div class="superbaddons-admindashboard-navigation-bottomlevel">
108 <?php foreach ($this->pages as $pagekey => $pagetitle) : ?>
109 <a href="<?php echo esc_url(admin_url('admin.php?page=' . $pagekey)); ?>" class="superbaddons-admindashboard-navigation-bottomlevel-item <?php echo $pagekey == $this->active_page ? 'superbaddons-admindashboard-active' : ''; ?>">
110 <?php echo esc_html($pagetitle); ?>
111 <?php if ($pagekey == DashboardController::SUPPORT && $this->issue_detected) : ?>
112 <img class="superbaddons-admindashboard-navigation-bottomlevel-item-issue-img" src="<?php echo esc_url(SUPERBADDONS_ASSETS_PATH . '/img/color-warning-octagon.svg'); ?>" alt="<?php echo esc_attr__("Issue Detected", "superb-blocks"); ?>" />
113 <?php endif; ?>
114 </a>
115 <?php endforeach; ?>
116 </div>
117 <?php endif; ?>
118 </div>
119 <?php
120 }
121 }
122