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 |