interactive-image-map-builder
Last commit date
assets
1 year ago
settings
1 year ago
functions.php
2 years 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 | ?> |