PluginProbe ʕ •ᴥ•ʔ
Spider Elements – Premium Elementor Widgets & Addons Library / trunk
Spider Elements – Premium Elementor Widgets & Addons Library vtrunk
trunk 1.0.0 1.1.0 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.7.0 1.8.0 1.9.0
spider-elements / includes / Admin / dashboard / elements.php
spider-elements / includes / Admin / dashboard Last commit date
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>