PluginProbe ʕ •ᴥ•ʔ
Superb Addons: Blocks, Patterns, Pre-built Pages, Sliders, Popups, Free Forms, Animations & More / 4.0.0
Superb Addons: Blocks, Patterns, Pre-built Pages, Sliders, Popups, Free Forms, Animations & More v4.0.0
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 1 month ago class-encryption-notice.php 1 month ago class-enhancement-settings-component.php 1 month ago class-feature-request-box.php 1 month ago class-input-api-key.php 1 month ago class-input-checkbox.php 1 month ago class-link-box.php 1 month ago class-modal-feedback.php 1 month ago class-modal.php 1 month ago class-navigation.php 1 month ago class-newsletter-form.php 1 month ago class-outdated-browser-warning.php 1 month ago class-premium-box.php 1 month ago class-premium-feature-list.php 1 month ago class-review-box.php 1 month ago class-support-box.php 1 month ago class-support-link-boxes.php 1 month ago
class-navigation.php
105 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">
71 <span class="sba-wizard-topbar-flow"><?php echo esc_html__('Theme Designer', 'superb-blocks'); ?></span>
72 <span class="sba-wizard-topbar-step"></span>
73 </div>
74 <?php endif; ?>
75 <div class="superbaddons-admindashboard-navigation-shortcuts">
76 <?php if (!$this->has_premium) : ?>
77 <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>
78 <?php endif; ?>
79 <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>
80 <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>
81 <span class="superbaddons-admindashboard-navigation-shortcuts-item">
82 <?php echo esc_html(SUPERBADDONS_VERSION); ?>
83 <?php if ($this->has_premium) : ?>
84 <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"); ?>" />
85 <?php endif; ?>
86 </span>
87 </div>
88 </div>
89 <?php if (!$this->hide_navigation_items) : ?>
90 <div class="superbaddons-admindashboard-navigation-bottomlevel">
91 <?php foreach ($this->pages as $pagekey => $pagetitle) : ?>
92 <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' : ''; ?>">
93 <?php echo esc_html($pagetitle); ?>
94 <?php if ($pagekey == DashboardController::SUPPORT && $this->issue_detected) : ?>
95 <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"); ?>" />
96 <?php endif; ?>
97 </a>
98 <?php endforeach; ?>
99 </div>
100 <?php endif; ?>
101 </div>
102 <?php
103 }
104 }
105