elements.php
1 month ago
features.php
5 months ago
integration.php
5 months ago
popup-pro.php
5 months ago
sidebar.php
5 months ago
welcome.php
5 months ago
elements.php
146 lines
| 1 | <?php |
| 2 | if ( ! defined( 'ABSPATH' ) ) { |
| 3 | exit; // Exit if accessed directly |
| 4 | } |
| 5 | |
| 6 | use SPEL\includes\Admin\Module_Settings; |
| 7 | |
| 8 | // Global switcher |
| 9 | $elements = Module_Settings::get_widget_settings(); |
| 10 | $element_opt = get_option( 'spe_widget_settings' ); |
| 11 | $checked_global = ( ! isset( $element_opt['element_global_switcher'] ) || $element_opt['element_global_switcher'] === 'on' ) ? ' checked' : ''; |
| 12 | $docy_widget_list = [ 'docly_cheatsheet', 'spel_videos_playlist', 'docy_tabs', 'docly_alerts_box', 'spel_dynamic_faq' ]; |
| 13 | |
| 14 | // Count widgets for search placeholder |
| 15 | $total_widgets = isset( $elements['spider_elements_widgets'] ) ? count( $elements['spider_elements_widgets'] ) : 0; |
| 16 | ?> |
| 17 | <div id="elements" class="tab-box"> |
| 18 | <div class="elements_tab_menu"> |
| 19 | <div class="tab_contents"> |
| 20 | <div class="icon"> |
| 21 | <i class="icon-element"></i> |
| 22 | </div> |
| 23 | <div class="content"> |
| 24 | <h3><?php esc_html_e( 'Elements', 'spider-elements' ); ?></h3> |
| 25 | </div> |
| 26 | </div> |
| 27 | <div class="menu_right_content"> |
| 28 | <div class="plugin_active_switcher"> |
| 29 | <label class="toggler" id="element_disabled"><?php esc_html_e( 'Disable All', 'spider-elements' ); ?></label> |
| 30 | <div class="toggle"> |
| 31 | <input type="checkbox" data-id="widget-list" id="element_switcher" name="element_global_switcher" |
| 32 | class="check element_global_switcher" <?php echo esc_attr( $checked_global ) ?>> |
| 33 | <label class="b switch" for="element_switcher"></label> |
| 34 | </div> |
| 35 | <label class="toggler" id="element_enabled"><?php esc_html_e( 'Enable All', 'spider-elements' ); ?></label> |
| 36 | </div> |
| 37 | <button type="submit" name="elements-submit" id="elements-submit" class="dashboard_btn save_btn"> |
| 38 | <i class="icon-check"></i> |
| 39 | <?php esc_html_e( 'Save Changes', 'spider-elements' ); ?> |
| 40 | </button> |
| 41 | <?php wp_nonce_field( 'spel_elements_nonce', 'spel_elements_nonce' ); ?> |
| 42 | </div> |
| 43 | </div> |
| 44 | |
| 45 | <!-- Search Box --> |
| 46 | <div class="spel_search_box"> |
| 47 | <span class="search_icon"><i class="icon-search"></i></span> |
| 48 | <input type="text" id="spel_widget_search" placeholder="<?php echo esc_attr( sprintf( __( 'Search %d widgets...', 'spider-elements' ), $total_widgets ) ); ?>"> |
| 49 | <span class="search_count" id="spel_search_count"><?php echo esc_html( $total_widgets ); ?> <?php esc_html_e( 'widgets', 'spider-elements' ); ?></span> |
| 50 | </div> |
| 51 | |
| 52 | <div class="elements_tab" id="elements_filter"> |
| 53 | <div class="filter_data active" data-filter="*"> |
| 54 | <i class="icon-star"></i><?php esc_html_e( 'All', 'spider-elements' ); ?> |
| 55 | </div> |
| 56 | <div class="filter_data" data-filter=".free"> |
| 57 | <i class="icon-gift"></i><?php esc_html_e( 'Free', 'spider-elements' ); ?> |
| 58 | </div> |
| 59 | <div class="filter_data" data-filter=".pro"> |
| 60 | <i class="icon-premium"></i><?php esc_html_e( 'Pro', 'spider-elements' ); ?> |
| 61 | </div> |
| 62 | </div> |
| 63 | |
| 64 | <div class="filter_content ezd-d-flex" id="elements_list"> |
| 65 | <?php |
| 66 | if ( is_array( $elements['spider_elements_widgets'] ) ) { |
| 67 | foreach ( $elements['spider_elements_widgets'] as $item ) { |
| 68 | |
| 69 | $widget_type = $item['widget_type'] ?? ''; |
| 70 | $widget_name = $item['name'] ?? ''; |
| 71 | $widget_label = $item['label'] ?? ''; |
| 72 | $is_pro = $widget_type === 'pro'; |
| 73 | |
| 74 | $is_locked = $is_pro && ! spel_is_premium() && ! ( spel_unlock_docy_theme() && in_array( $widget_name, $docy_widget_list, true ) ); |
| 75 | $is_pro_widget_class = $is_locked ? ' pro_popup' : ''; |
| 76 | $is_pro_widget_attr = $is_locked ? ' disabled' : ''; |
| 77 | |
| 78 | // By default, only free widgets are checked |
| 79 | if ( $is_locked ) { |
| 80 | // Pro widget: unchecked by default |
| 81 | $widget_checked = ! isset( $element_opt[ $widget_name ] ) ? '' : ( $element_opt[ $widget_name ] === 'on' ? ' checked' : '' ); |
| 82 | } else { |
| 83 | // Free widget or unlocked pro: checked by default |
| 84 | $widget_checked = ! isset( $element_opt[ $widget_name ] ) || $element_opt[ $widget_name ] === 'on' ? ' checked' : ''; |
| 85 | } |
| 86 | ?> |
| 87 | <div class="ezd-colum-space-4 <?php echo esc_attr( $item['widget_type'] ) ?>" data-widget-name="<?php echo esc_attr( strtolower( $widget_label ) ); ?>"> |
| 88 | <div class="element_box element_switch badge"> |
| 89 | <div class="element_content"> |
| 90 | <?php |
| 91 | if ( ! empty( $item['icon'] ) ) { ?> |
| 92 | <i class="<?php echo esc_attr( $item['icon'] ) ?>"></i> |
| 93 | <?php |
| 94 | } |
| 95 | if ( ! empty( $item['label'] ) ) { ?> |
| 96 | <label for="<?php echo esc_attr( $item['name'] ) ?>"><?php echo esc_html( $item['label'] ) ?></label> |
| 97 | <?php |
| 98 | } |
| 99 | ?> |
| 100 | </div> |
| 101 | <div class="element_right"> |
| 102 | <?php |
| 103 | if ( ! empty( $item['label'] ) ) { |
| 104 | ?> |
| 105 | <div class="link"> |
| 106 | <?php |
| 107 | if ( ! empty( $item['demo_url'] ) ) { |
| 108 | ?> |
| 109 | <a href="<?php echo esc_url( $item['demo_url'] ) ?>" class="tooltip-top" data-tooltip="<?php echo esc_attr( sprintf( __( 'View %s Widget Demo', 'spider-elements' ), $item['label'] ) ); ?>" target="_blank"> |
| 110 | <img src="<?php echo esc_url( SPEL_IMG . '/dashboard/icon-demo.svg' ) ?>" alt="<?php esc_attr_e( 'Widget Demo', 'spider-elements' ); ?>"> |
| 111 | </a> |
| 112 | <?php |
| 113 | } |
| 114 | if ( ! empty( $item['video_url'] ) ) { |
| 115 | ?> |
| 116 | <a href="<?php echo esc_url( $item['video_url'] ) ?>" class="tooltip-top" data-tooltip="<?php echo esc_attr( sprintf( __( 'View %s Video Tutorial', 'spider-elements' ), $item['label'] ) ); ?>" target="_blank"> |
| 117 | <img src="<?php echo esc_url( SPEL_IMG . '/dashboard/icon-video.svg' ) ?>" alt="<?php esc_attr_e( 'Video Tutorial', 'spider-elements' ); ?>"> |
| 118 | </a> |
| 119 | <?php |
| 120 | } |
| 121 | if ( ! empty( $item['docs_url'] ) ) { |
| 122 | ?> |
| 123 | <a href="<?php echo esc_url( $item['docs_url'] ) ?>" class="tooltip-top" data-tooltip="<?php echo esc_attr( sprintf( __( 'View %s Documentation', 'spider-elements' ), $item['label'] ) ) ?>" target="_blank"> |
| 124 | <img src="<?php echo esc_url( SPEL_IMG . '/dashboard/icon-document.svg' ) ?>" alt="<?php esc_attr_e( 'Documentation', 'spider-elements' ); ?>"> |
| 125 | </a> |
| 126 | <?php |
| 127 | } |
| 128 | ?> |
| 129 | </div> |
| 130 | <?php |
| 131 | } |
| 132 | ?> |
| 133 | <label for="<?php echo esc_attr( $item['name'] ) ?>" class="switch_label<?php echo esc_attr( $is_pro_widget_class ) ?>"> |
| 134 | <input type="checkbox" class="widget_checkbox widget-list" name="<?php echo esc_attr( $item['name'] ) ?>" |
| 135 | id="<?php echo esc_attr( $item['name'] ) ?>" <?php echo esc_attr( $widget_checked . $is_pro_widget_attr ); ?>> |
| 136 | <span class="widget_switcher"></span> |
| 137 | </label> |
| 138 | </div> |
| 139 | </div> |
| 140 | </div> |
| 141 | <?php |
| 142 | } |
| 143 | } |
| 144 | ?> |
| 145 | </div> |
| 146 | </div> |