PluginProbe ʕ •ᴥ•ʔ
Interactive Image Map Builder / 2.3
Interactive Image Map Builder v2.3
3.2 trunk 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 3.1
interactive-image-map-builder / shortcode.php
interactive-image-map-builder Last commit date
assets 1 year ago settings 1 year ago functions.php 1 year ago header.php 2 years ago home.php 2 years ago index.php 1 year ago license.php 2 years ago output-common-css.css 1 year ago output-css.php 2 years ago readme.txt 1 year ago shortcode.php 1 year ago template-menu.php 2 years ago
shortcode.php
215 lines
1 <?php
2 global $wpdb;
3 $style_table = $wpdb->prefix . 'isimb_6310_style';
4 $font_awesome = isimb_6310_get_option('isimb_6310_font_awesome_status');
5 $closeIcon = isimb_6310_get_option('isimb_6310_close_icon');
6 $desktopSize = isimb_6310_get_option('isimb_6310_desktop_size');
7 $mobileSize = isimb_6310_get_option('isimb_6310_mobile_size');
8
9 $closeIcon = $closeIcon ? esc_attr($closeIcon) : 'https://wpmart.org/wp-content/uploads/2022/08/close.png';
10 $desktopSize = $desktopSize ? esc_attr($desktopSize) : 30;
11 $mobileSize = $mobileSize ? esc_attr($mobileSize) : 20;
12
13 $admin_login = 0;
14 if (is_user_logged_in()) {
15 $current_user = wp_get_current_user();
16 if (in_array('editor', $current_user->roles) || in_array('administrator', $current_user->roles)) {
17 $admin_login = 1;
18 }
19 }
20 wp_enqueue_script('jquery');
21
22 $cssData = [];
23 if ($ids) {
24 $styledata = $wpdb->get_row($wpdb->prepare("SELECT * FROM $style_table WHERE id = %d ", $ids), ARRAY_A);
25 if (!$styledata) return;
26 $css = explode("!!##!!", $styledata['css']);
27 $key = explode(",", $css[0]);
28 $value = explode("||##||", $css[1]);
29 $filterKey = [];
30 $filterValue = [];
31 for ($i = 0; $i < count($key); $i++) {
32 $filterKey[] = esc_attr($key[$i]);
33 }
34 for ($i = 0; $i < count($value); $i++) {
35 $filterValue[] = esc_attr($value[$i]);
36 }
37 $cssData = array_combine($filterKey, $filterValue);
38 }
39 $jsonData = isset($cssData['json_data']) ? json_decode(stripslashes(html_entity_decode($cssData['json_data']))) : [];
40 $font_awesome = isimb_6310_get_option('isimb_6310_font_awesome_status');
41 if ($font_awesome != 1) {
42 wp_enqueue_style('isimb-6310-font-awesome-5-0-13', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css');
43 wp_enqueue_style('isimb-6310-font-awesome-4-07', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css');
44 }
45 wp_enqueue_style('isimb-6310-jquery-ui-css', 'https://code.jquery.com/ui/1.13.0/themes/base/jquery-ui.css');
46 wp_enqueue_script('isimb-6310-jquery-ui', 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js', array('jquery'), TRUE);
47 wp_enqueue_style('isimb-6310-owl-carousel', plugins_url('output-common-css.css', __FILE__));
48 include isimb_6310_plugin_url . "output-css.php";
49
50 $image_zoom = isset($cssData['zoom_feature']) ? esc_attr($cssData['zoom_feature']) : 0;
51 $tooltip_position = isset($cssData['tooltip_position']) ? esc_attr($cssData['tooltip_position']) : 0;
52 $top_bottom = isset($cssData['top_bottom']) ? esc_attr($cssData['top_bottom']) : 0;
53 $left_right = isset($cssData['left_right']) ? esc_attr($cssData['left_right']) : 0;
54
55 if ($image_zoom == 2) {
56 $image_zoom = 1;
57 } else {
58 $image_zoom = 0;
59 }
60 ?>
61 <div class="isimb-6310-annotation-box-wrapper isimb-6310-annotation-box-wrapper-<?php echo $ids; ?>">
62 <div class="isimb-6310-zoom-buttons" style="display: none;">
63 <img src="<?php echo isset($cssData['zoom_in_icon']) && $cssData['zoom_in_icon'] ? esc_url($cssData['zoom_in_icon']) : isimb_6310_plugin_dir_url . 'assets/images/zoom-in.png' ?>" alt="" class="isimb-6310-zoom-in">
64 <img src="<?php echo isset($cssData['zoom_out_icon']) && $cssData['zoom_out_icon'] ? esc_url($cssData['zoom_out_icon']) : isimb_6310_plugin_dir_url . 'assets/images/zoom-out.png' ?>" alt="" class="isimb-6310-zoom-out">
65 </div>
66 <div class="isimb-6310-builder-box isimb-6310-builder-box-<?php echo $ids; ?>"
67 data-id="<?php echo $ids; ?>"
68 data-image-zoom="<?php echo $admin_login ? $image_zoom : 0; ?>"
69 data-tooltip-position="<?php echo $admin_login ? $tooltip_position : 0; ?>"
70 data-top-bottom="<?php echo $top_bottom; ?>"
71 data-left-right="<?php echo $left_right; ?>"
72 data-login-status="<?php echo $admin_login; ?>">
73 <div class="isimb-6310-annotation-box-inner">
74 <svg class="isimb-6310-main-svg isimb-6310-main-svg-<?php echo $ids ?>">
75 <?php
76 if ($jsonData) {
77 $counter = 1;
78 foreach ($jsonData as $js) {
79 $jsonCode = json_encode($js);
80 if ($js->viewMoodType == 2) {
81 $classlist = "isimb-6310-pol-loaded isimb-6310-pol-{$ids}-{$counter} isimb-6310-modal-element";
82 } else {
83 $classlist = "isimb-6310-pol-loaded isimb-6310-pol-{$ids}-{$counter}";
84 }
85
86 $url = '';
87 if (isset($js->linkURL) && $js->linkURL) {
88 $url = "data-link-url='{$js->linkURL}'" . (isset($js->openNewTab) && $js->openNewTab ? ' data-target="_blank" ' : '');
89 }
90 echo "<polygon title='' data-id='{$ids}-{$counter}' {$url} class= '{$classlist}' data-json='" . esc_attr($jsonCode) . "' />";
91 $pointCssCode = "
92 .ui-tooltip{
93 padding:0 !important;
94 }
95 .ui-widget-content{
96 border: none !important;
97 background: none;
98 }
99 .ui-widget-shadow{
100 box-shadow: none;
101 }
102 .isimb-6310-main-svg .isimb-6310-pol-{$ids}-{$counter}{
103 fill: " . esc_attr($js->selectAreaColor) . " !important;
104 stroke:" . esc_attr($js->areaBorderColor) . " !important;
105 stroke-width:" . esc_attr($js->areaBorderSize) . "px !important;
106 }
107 .isimb-6310-main-svg .isimb-6310-pol-{$ids}-{$counter}:hover{
108 fill: " . esc_attr($js->selectAreaHoverColor) . " !important;
109 stroke:" . esc_attr($js->areaBorderHoverColor) . " !important;
110 stroke-width:" . esc_attr($js->areaBorderSize) . "px !important;
111 cursor: pointer;
112 filter: drop-shadow(0px 0px " . esc_attr($js->areaShadowith) . "px " . esc_attr($js->areaShadowColor) . ");
113 }
114 ";
115 wp_register_style("isimb-6310-template-{$ids}-{$counter}-css", "");
116 wp_enqueue_style("isimb-6310-template-{$ids}-{$counter}-css");
117 wp_add_inline_style("isimb-6310-template-{$ids}-{$counter}-css", $pointCssCode);
118
119 if ($counter == 4) break;
120 $counter++;
121 }
122 }
123 ?>
124 </svg>
125 <?php
126 $counter = 1;
127 foreach ($jsonData as $js) {
128 isimb_6310_load_templates($js, $counter, $ids);
129 $counter++;
130 }
131 ?>
132 <img src="<?php echo isset($cssData['main_image']) ? $cssData['main_image'] : '' ?>" class="isimb-6310-main-image isimb-6310-img" data-isimb-cls="isimb-6310-main-image isimb-6310-img" data-isimb-value="<?php echo isset($cssData['main_image']) ? $cssData['main_image'] : '' ?>" />
133 <?php
134 $pointCssCode = "
135 .isimb-6310-main-svg-{$ids}{
136 background-image: url(" . (isset($cssData['main_image']) ? $cssData['main_image'] : '') . ");
137 }
138 ";
139 wp_register_style("isimb-6310-template-main-css-{$ids}", "");
140 wp_enqueue_style("isimb-6310-template-main-css-{$ids}");
141 wp_add_inline_style("isimb-6310-template-main-css-{$ids}", $pointCssCode);
142 ?>
143
144 </div>
145 </div>
146 </div>
147
148 <?php
149 $customCSS = $cssData['custom_css'];
150 $customCSS .= "
151 .isimb-6310-close-button{
152 width: {$desktopSize}px;
153 height: {$desktopSize}px;
154 background-image: url('{$closeIcon}');
155 right: -" . ($desktopSize / 2) . "px;
156 top: -" . ($desktopSize / 2) . "px;
157 background-size: cover;
158 }
159 .isimb-6310-close-button-mobile{
160 display: none;
161 }
162 @media screen and (max-width: 767px) {
163 .isimb-6310-close-button{
164 width: {$mobileSize}px;
165 height: {$mobileSize}px;
166 right: -" . ($mobileSize / 2) . "px;
167 top: -" . ($mobileSize / 2) . "px;
168 background-size: cover;
169 }
170 .isimb-6310-close-button-mobile{
171 display: block;
172 }
173 }
174 ";
175 if ($admin_login) {
176 $customCSS .= "
177 .isimb-6310-annotation-box-wrapper-{$ids} .isimb-6310-zoom-buttons{
178 display: " . (isset($cssData['zoom_feature']) && $cssData['zoom_feature'] == 2 && $cssData['display_device'] != 1 ? 'flex' : 'none') . " !important;
179 justify-content: " . (isset($cssData['icon_position']) ? $cssData['icon_position'] : 'flex-start') . ";
180 margin-bottom: 20px;
181 }
182 .isimb-6310-annotation-box-wrapper-{$ids} .isimb-6310-zoom-buttons img{
183 width: " . (isset($cssData['desktop_icon_size']) ? $cssData['desktop_icon_size'] : '30') . "px;
184 height: " . (isset($cssData['desktop_icon_size']) ? $cssData['desktop_icon_size'] : '30') . "px;
185 cursor: pointer;
186 margin: 0 10px;
187 }
188 @media screen and (max-width: 767px) {
189 .isimb-6310-annotation-box-wrapper-{$ids} .isimb-6310-zoom-buttons{
190 display: " . (isset($cssData['zoom_feature']) && $cssData['zoom_feature'] == 2 && $cssData['display_device'] != 2 ? 'flex' : 'none') . " !important;
191 }
192 .isimb-6310-annotation-box-wrapper-{$ids} .isimb-6310-zoom-buttons img{
193 width: " . (isset($cssData['mobile_icon_size']) ? $cssData['mobile_icon_size'] : '25') . "px;
194 height: " . (isset($cssData['mobile_icon_size']) ? $cssData['mobile_icon_size'] : '25') . "px;
195 margin: 0 10px;
196 }
197 }
198 ";
199 }
200
201 if ($admin_login && $image_zoom) {
202 $customCSS .= "
203 .isimb-6310-builder-box-{$ids} .isimb-6310-annotation-box-inner{
204 cursor: grab;
205 }
206 ";
207 }
208
209 wp_register_style("isimb-6310-custom-code-" . esc_attr($ids) . "-css", "");
210 wp_enqueue_style("isimb-6310-custom-code-" . esc_attr($ids) . "-css");
211 wp_add_inline_style("isimb-6310-custom-code-" . esc_attr($ids) . "-css", $customCSS);
212
213 wp_enqueue_script('isimb-6310-output', plugins_url('assets/js/main-output-file.js', __FILE__), array('jquery'), TRUE);
214 wp_enqueue_script('isimb-6310-zoom-in-out-drag', plugins_url('assets/js/zoom-in-out-drag.js', __FILE__), array('jquery'), TRUE);
215 ?>