Changeset 3090084
- Timestamp:
- 05/21/2024 10:20:36 AM (21 months ago)
- Location:
- sliderx
- Files:
-
- 12 added
- 1 deleted
- 10 edited
-
assets/screenshot-1.png (added)
-
assets/screenshot-2.png (added)
-
assets/screenshot-3.png (added)
-
assets/screenshot-4.png (added)
-
assets/screenshot-5.png (added)
-
assets/screenshot-6.png (added)
-
assets/screenshot-7.png (added)
-
assets/screenshot-8.png (added)
-
assets/screenshot-9.png (added)
-
trunk/assets/css/sliderx.css (modified) (2 diffs)
-
trunk/assets/js/sliderx-script.js (modified) (12 diffs)
-
trunk/assets/js/sliderx.config.js (modified) (1 diff)
-
trunk/classes/SliderX-ajax-handling.php (modified) (8 diffs)
-
trunk/classes/SliderX_dbManagement.php (modified) (1 diff)
-
trunk/includes/api/aitgen-api-client.php (deleted)
-
trunk/includes/api/sliderx-api.php (added)
-
trunk/includes/assets.php (modified) (2 diffs)
-
trunk/includes/helper (added)
-
trunk/includes/helper/sliderX-merge.php (added)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/sliderX.php (modified) (5 diffs)
-
trunk/views/admin/sliderx-admin-menu.php (modified) (27 diffs)
-
trunk/views/public/shortcode/sliderx-shortcode.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
sliderx/trunk/assets/css/sliderx.css
r3087162 r3090084 43 43 } */ 44 44 .sliderX .sliderX-slide { 45 width: 100%; 45 46 height: 100%; 46 47 line-height: 100%; 47 background-size: co ver;48 background-size: contain; 48 49 background-repeat: no-repeat; 50 background-position: center center; 49 51 } 50 52 .sliderX-slide {} … … 111 113 height: 100%; 112 114 flex-flow: column nowrap; 115 position: absolute; 116 top: 0; 113 117 } 114 118 .sliderX_content_inner_wrapper { -
sliderx/trunk/assets/js/sliderx-script.js
r3087162 r3090084 42 42 <!-- Delete Button --> 43 43 <div class="accordionItemAction"> 44 <span type="button" class="btn btn-danger sliderX_itemDelete "><span class="dashicons dashicons-no-alt"></span></span>44 <span type="button" class="btn btn-danger sliderX_itemDelete sliderX_item_remove"><span class="dashicons dashicons-no-alt"></span></span> 45 45 </div> 46 46 </h2> … … 118 118 119 119 }); 120 121 122 123 120 124 121 125 … … 480 484 projectNameInput.removeClass("is-invalid").addClass("is-valid"); 481 485 } 482 483 486 484 487 let editorUrl = $("#xslierEditor_url").val(); … … 724 727 activeStyle : paginationActiveStyle 725 728 } 729 730 const apiUrl = $(".sliderX_api_url").val(); 731 732 console.log(apiUrl); 733 726 734 const sliderXSettings = { 727 735 sliderType, … … 729 737 textContent, 730 738 navigation, 731 pagination 739 pagination, 740 apiUrl 732 741 } 733 742 … … 943 952 let cta_bgColor = $("#sliderx_cta_bg").val() || ''; 944 953 945 946 954 const ctaStyle = { 947 955 alignment : ctaAlignment, … … 950 958 bgColor : cta_bgColor 951 959 } 952 953 960 954 961 const textContent = { … … 1008 1015 activeStyle : paginationActiveStyle 1009 1016 } 1017 1018 const apiUrl = $(".sliderX_api_url").val(); 1010 1019 const sliderXSettings = { 1011 1020 sliderType, … … 1013 1022 textContent, 1014 1023 navigation, 1015 pagination 1024 pagination, 1025 apiUrl 1016 1026 } 1017 1027 … … 1077 1087 1078 1088 1079 1080 1089 // Toggle Settings Options 1081 1090 $(".sliderx_settingsBtn").on("click", function (e) { … … 1111 1120 }); 1112 1121 1113 1114 1115 1122 function copyToClipboard(text) { 1116 1123 $("<input>").val(text).appendTo("body").select(); … … 1119 1126 1120 1127 1121 1122 1123 /* ====== Delete Data ======= */ 1124 1125 $(".sliderx_update_btn").on('click', function (e) { 1128 /* ====== SliderX Delete ======= */ 1129 $(".sliderX_delId").click(function (e) { 1126 1130 e.preventDefault(); 1127 1128 let sliderXSaveBtn = $(this); 1129 1130 // Save the xSlides data and sliderX settings 1131 update_xSlidesData(); 1132 update_sliderXSettings(); 1133 1134 // let sliderXDashboard_url = $(".sliderX_dashboard_url").val(); 1131 const sliderDel_id = $(this).attr('delid'); 1132 1135 1133 // Get the current URL 1136 1134 let currentURL = window.location.href; 1137 1138 1135 // Find the position of the last occurrence of '/' 1139 1136 let lastIndex = currentURL.lastIndexOf('/'); 1140 1141 1137 // Extract the URL up to the last occurrence of '/' 1142 1138 let baseUrl = currentURL.substring(0, lastIndex); 1143 1139 baseUrl = baseUrl+'/admin.php?page=sliderx' 1144 1145 sliderXSaveBtn.text("Updating...."); 1146 // Simulate saving process 1147 setTimeout(function () { 1148 let savingSuccessful = true; 1149 if (savingSuccessful) { 1150 sliderXSaveBtn.text("Updated successfully!"); 1151 } else { 1152 sliderXSaveBtn.text("Save failed. Please try again."); 1153 } 1154 // Redirect to the dashboard URL after 3 seconds 1155 setTimeout(function () { 1156 window.location.href = baseUrl; 1157 }, 500); 1158 }, 1000); 1159 1160 }); 1140 1141 // Send data to PHP script via AJAX 1142 $.ajax({ 1143 url: sliderDelObj.ajaxUrl, 1144 method: 'POST', 1145 data: { 1146 action: 'delete_sliderx_action', 1147 nonce: sliderDelObj.nonce, 1148 delId : sliderDel_id, 1149 }, 1150 success: function(response) { 1151 if (response.success) { 1152 window.location.href = baseUrl; 1153 } 1154 }, 1155 error: function(xhr, status, error) { 1156 // Handle error 1157 console.error('Error saving data:', error); 1158 } 1159 }); 1160 1161 }); 1162 1163 /* ===== SliderX delete slider item ===== */ 1164 $(".sliderX_itemDelete").click(function (e) { 1165 e.preventDefault(); 1166 const slider_id = $(this).attr('slider_id'); 1167 const sliderItem_id = $(this).data('item'); 1168 // Send data to PHP script via AJAX 1169 $.ajax({ 1170 url: sliderItemObj.ajaxUrl, 1171 method: 'POST', 1172 data: { 1173 action: 'delete_sliderxItem_action', 1174 nonce: sliderItemObj.nonce, 1175 sliderId : slider_id, 1176 itemId : sliderItem_id 1177 }, 1178 success: function (response) { 1179 const redirectUrl = response?.data?.redirectUrl 1180 1181 if (response.success) { 1182 window.location.reload(); 1183 } 1184 1185 }, 1186 error: function(xhr, status, error) { 1187 // Handle error 1188 console.error('Error saving data:', error); 1189 } 1190 }); 1191 1192 }); 1193 1194 1195 /* ======= SliderX-- Remove slider item======*/ 1196 $(document).on('click', '.sliderX_item_remove', function (e) { 1197 e.preventDefault(); 1198 let sliderItem = $(this).parent(); 1199 // let groupItem = $(sliderItem).parent(); 1200 sliderItem = sliderItem.closest('.xSlides_item').remove() ; 1201 }); 1202 1203 1204 1205 1206 /* ====== Change Slider Settings ======= */ 1207 // $(document).on('change', '.sliderX_body', function () { 1208 1209 // let sliderxTitleVal = $('#sliderx_title').prop('checked'); 1210 1211 // console.log(sliderxTitleVal); 1212 1213 1214 // }); 1215 1161 1216 1162 1217 -
sliderx/trunk/assets/js/sliderx.config.js
r3087162 r3090084 1 1 "use strict"; 2 2 3 const settingsData = configObj || {};3 const settingsData = configObj.settings || {}; 4 4 5 5 // Iterate over each settings object -
sliderx/trunk/classes/SliderX-ajax-handling.php
r3087162 r3090084 79 79 ); 80 80 } 81 82 81 } 83 82 // Send a JSON response with the status … … 101 100 $sliderId = isset($_POST["sliderId"]) ? intval($_POST["sliderId"]) : 0; 102 101 $settingsData = sliderx_Sanitize($_POST["settingsData"]); 102 $sliderx_apiUrl = $settingsData["apiUrl"]; 103 103 104 104 $sliderType = isset($settingsData["sliderType"]) ? sanitize_text_field( $settingsData["sliderType"]) : ''; … … 109 109 $pagination = wp_json_encode($settingsData["pagination"]); 110 110 111 112 111 $table_name = "{$wpdb->prefix}sliderx_settings"; 113 112 $table_exists = $wpdb->get_var($wpdb->prepare( "SHOW TABLES LIKE %s", $table_name ) ); … … 140 139 'navigation' => $navigation, 141 140 'pagination' => $pagination, 141 'api_url' => $sliderx_apiUrl 142 142 ), 143 143 array('sliderId' => $sliderId) … … 153 153 'navigation' => $navigation, 154 154 'pagination' => $pagination, 155 'api_url' => $sliderx_apiUrl 155 156 ) 156 157 ); … … 220 221 $settingsData = sliderx_Sanitize($_POST["settingsData"]); 221 222 $sliderType = isset($settingsData["sliderType"]) ? sanitize_text_field($settingsData["sliderType"]) : ''; 222 223 $general = wp_json_encode($settingsData["general"]); 223 $sliderx_apiUrl = $settingsData["apiUrl"]; 224 225 $general = wp_json_encode($settingsData["general"]); 224 226 $textContent = wp_json_encode($settingsData["textContent"]); 225 227 $navigation = wp_json_encode($settingsData["navigation"]); … … 256 258 'navigation' => $navigation, 257 259 'pagination' => $pagination, 260 'api_url' => $sliderx_apiUrl 258 261 ), 259 262 array('sliderId' => $updateId) … … 271 274 } 272 275 276 // sliderX Delete 277 public function sliderX_slider_delete() { 278 global $wpdb; 279 // Verify the nonce 280 if (! isset( $_POST['nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash ( $_POST['nonce'] ) ) , 'sliderx_delete_none' ) ) { 281 wp_send_json_error(array('error' => 'Permission check failed')); 282 } 283 284 $slider_delId = isset($_POST["delId"]) ? intval($_POST["delId"]) : ''; 285 // Prepare the queries 286 $queries = [ 287 $wpdb->prepare("DELETE FROM {$wpdb->prefix}sliderx_initial_projectsetup WHERE id = %d", $slider_delId), 288 $wpdb->prepare("DELETE FROM {$wpdb->prefix}sliderx_data WHERE sliderId = %d", $slider_delId), 289 $wpdb->prepare("DELETE FROM {$wpdb->prefix}sliderx_settings WHERE sliderId = %d", $slider_delId) 290 ]; 291 // Execute the queries 292 foreach ($queries as $query) { 293 $wpdb->query($query); 294 } 295 // Send a JSON response with the status 296 wp_send_json_success( array( 297 'status' => "success", 298 ) 299 ); 300 wp_die(); 301 } 302 303 // sliderX Item Delete 304 public function sliderX_sliderItem_delete() { 305 global $wpdb; 306 307 // Verify the nonce 308 if (!isset($_POST['nonce']) || !wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['nonce'])), 'sliderxItem_delete_none')) { 309 wp_send_json_error(array('error' => 'Permission check failed')); 310 } 311 312 $nonce = isset($_POST["nonce"]) ? sanitize_text_field($_POST["nonce"]) : ''; 313 $slider_id = isset($_POST["sliderId"]) ? intval($_POST["sliderId"]) : ''; 314 $item_id = isset($_POST["itemId"]) ? intval($_POST["itemId"]) : ''; 315 316 if (empty($slider_id) || empty($item_id)) { 317 wp_send_json_error(array('error' => 'Invalid sliderId or itemId')); 318 } 319 320 $table_name = "{$wpdb->prefix}sliderx_data"; 321 // Check if the table exists 322 $table_exists = $wpdb->get_var($wpdb->prepare("SHOW TABLES LIKE %s", $table_name)); 323 324 if (!$table_exists) { 325 wp_send_json_error(array('error' => 'Table does not exist')); 326 } 327 328 $dataQuery = $wpdb->get_results($wpdb->prepare("SELECT sliderId, sliderData FROM {$table_name} WHERE sliderId = %d", $slider_id)); 329 330 $item_deleted = false; 331 332 // Loop through slider data 333 foreach ($dataQuery as $row) { 334 $sliderData = json_decode($row->sliderData, true); // Decode JSON data to array 335 336 if (json_last_error() !== JSON_ERROR_NONE) { 337 wp_send_json_error(array('error' => 'Error decoding JSON data')); 338 } 339 340 // Convert item_id to zero-based index 341 $item_index = $item_id - 1; 342 343 // Remove the item if item_index matches 344 if (isset($sliderData[$item_index])) { 345 unset($sliderData[$item_index]); 346 347 // Re-index the array 348 $sliderData = array_values($sliderData); 349 $updatedSliderData = json_encode($sliderData); 350 351 if (json_last_error() !== JSON_ERROR_NONE) { 352 wp_send_json_error(array('error' => 'Error encoding JSON data')); 353 } 354 355 // Update the database with the new JSON data 356 $updated = $wpdb->update( 357 $table_name, 358 array('sliderData' => $updatedSliderData), 359 array('sliderId' => $slider_id) 360 ); 361 362 if ($updated === false) { 363 wp_send_json_error(array('error' => 'Failed to update database')); 364 } 365 366 $item_deleted = true; 367 break; // Break loop since we found and deleted the item 368 } 369 } 370 371 if ($item_deleted) { 372 wp_send_json_success( 373 array( 374 'status' => 'success', 375 'message' => 'Item deleted successfully' 376 )); 377 } else { 378 wp_send_json_error(array('error' => 'Item not found')); 379 } 380 wp_die(); 381 } 382 383 384 385 386 273 387 } 274 388 -
sliderx/trunk/classes/SliderX_dbManagement.php
r3087162 r3090084 80 80 `navigation` TEXT DEFAULT NULL, 81 81 `pagination` TEXT DEFAULT NULL, 82 `api_url` TEXT DEFAULT NULL, 82 83 PRIMARY KEY (`id`) 83 84 ) $charset_collate;"; -
sliderx/trunk/includes/assets.php
r3088870 r3090084 65 65 wp_localize_script( 'sliderx-custom-script', 'updateData', $args ); 66 66 67 $args = array( 68 'ajaxUrl' => admin_url( 'admin-ajax.php' ), 69 'nonce' => wp_create_nonce( 'sliderx_delete_none' ) 70 ); 71 wp_localize_script( 'sliderx-custom-script', 'sliderDelObj', $args ); 72 73 74 $args = array( 75 'ajaxUrl' => admin_url( 'admin-ajax.php' ), 76 'nonce' => wp_create_nonce( 'sliderxItem_delete_none' ) 77 ); 78 wp_localize_script( 'sliderx-custom-script', 'sliderItemObj', $args ); 79 67 80 wp_enqueue_style('sliderx-bootsrap-css'); 68 81 wp_enqueue_style('sliderx-style'); … … 116 129 wp_localize_script( 'sliderx-config-js', 'configObj', array('settings' => $configData) ); 117 130 131 118 132 wp_enqueue_style( 'sliderx-swiper-css' ); 119 133 wp_enqueue_style( 'sliderx-style' ); -
sliderx/trunk/readme.txt
r3087162 r3090084 5 5 Requires at least: 5.4+ 6 6 Tested up to: 6.4.2 7 Stable tag: 1.0. 07 Stable tag: 1.0.1 8 8 Requires PHP: 7.1 9 9 License: GPLv3 or later … … 43 43 == Screenshots == 44 44 45 1. Admin Settings menu 46 2. Dashboard 47 3. Slider configuration 45 1. Admin Dashboard Menu 46 2. Create Project / Slider Option 47 3. Create New Slider / Project Option 48 4. Create New Slider / Project Option 49 5. Choose Slider type Option 50 6. Create Slides / add slider item 51 7. Configure slider settings options 52 8. Save Slider / Carousel 53 9. Use Generated shortcode 54 10.Edit/Update or Delete Create Slider 48 55 49 56 == Upgrade Notice == … … 52 59 53 60 == Changelog == 61 = 1.0.1 = 62 * Slider edit / Delete Option added 63 * Screenshots Updated 64 * Fix minor issues 65 54 66 = 1.0.0 = 55 67 * Initial Release -
sliderx/trunk/sliderX.php
r3087162 r3090084 2 2 /** 3 3 * Plugin Name: SliderX 4 * Description: Create Attractive slider / Carousel on WordPress website .5 * Version: 1.0. 04 * Description: Create Attractive slider / Carousel on WordPress website easily. 5 * Version: 1.0.1 6 6 * Author: Spark Coder 7 7 * Author URI: https://sparkcoder.com … … 42 42 require( SLIDERX_DIR_PATH.'views/public/shortcode/sliderx-shortcode.php' ); 43 43 require( SLIDERX_DIR_PATH.'includes/deactivation.php' ); 44 // require( SLIDERX_DIR_PATH.'includes/api/sliderx-api.php' ); 44 45 45 46 // Dashboard Menu … … 51 52 require( SLIDERX_DIR_PATH.'classes/SliderX_dbManagement.php' ); 52 53 53 54 54 /******* Hook *******/ 55 55 register_activation_hook( __FILE__, array( new SLIDERX_DB_Management(), 'sliderX_newProjectSetup' )); … … 59 59 register_uninstall_hook( __FILE__, 'sliderX_dbTableCleaner'); 60 60 61 62 61 add_shortcode('sliderX', 'sliderX_shortcode' ); 63 62 add_action( 'admin_enqueue_scripts', 'sliderx_admin_assets'); … … 70 69 add_action('wp_ajax_update_sliderXData_action', array( new SLIDERX_Ajax_Handle(), 'sliderX_dataUpdate') ); 71 70 add_action('wp_ajax_update_sliderXSettings_action', array( new SLIDERX_Ajax_Handle(), 'sliderX_settingsUpdate') ); 71 add_action('wp_ajax_delete_sliderx_action', array( new SLIDERX_Ajax_Handle(), 'sliderX_slider_delete') ); 72 add_action('wp_ajax_delete_sliderxItem_action', array( new SLIDERX_Ajax_Handle(), 'sliderX_sliderItem_delete') ); 72 73 } 73 74 } -
sliderx/trunk/views/admin/sliderx-admin-menu.php
r3089182 r3090084 168 168 $pagiActiveColor = isset($pagination_ActiveStyle->color) ? htmlspecialchars($pagination_ActiveStyle->color) : "#007aff"; 169 169 170 // API Url ==== 171 $api_url = ''; 170 172 171 if (isset($_GET['page']) && sanitize_text_field($_GET['page']) === 'sliderx' &&172 isset($_GET['sliderx']) && sanitize_text_field($_GET['sliderx']) === 'slider-editor'):173 173 if (isset($_GET['page']) && sanitize_text_field($_GET['page']) === 'sliderx' && 174 isset($_GET['sliderx']) && sanitize_text_field($_GET['sliderx']) === 'slider-editor'): 175 174 176 ?> 175 177 … … 260 262 </button> 261 263 <!-- Delete Button --> 262 264 <div class="accordionItemAction"> 265 <span type="button" class="btn btn-danger sliderX_itemDelete" ><span class="dashicons dashicons-no-alt"></span></span> 266 </div> 263 267 </h2> 264 268 <div id="sliderX_collapseOne<?php echo esc_attr($i); ?>" class="accordion-collapse collapse" aria-labelledby="headingOne<?php echo esc_attr($i); ?>" data-bs-parent="#sliderx_slidesOne"> … … 346 350 <button class="nav-link" id="sliderx_pagination-tab" data-bs-toggle="tab" data-bs-target="#sliderx_pagination" type="button" role="tab" aria-navigations="sliderx_pagination" aria-selected="false"><?php esc_html_e( "Pagination", "sliderx" ); ?></button> 347 351 </li> 352 353 <?php do_action('sliderX_tab_head'); ?> 354 348 355 </ul> 349 356 <div class="tab-content mt-4" id="sliderxSettings_content"> … … 532 539 </div> 533 540 541 534 542 <!-- Centered Slide -- Switcher --> 535 543 <div class="sliderx_settings_option"> … … 741 749 </div> 742 750 </div> 751 743 752 </div> 744 753 </div> … … 832 841 833 842 <div class="sliderx_type_item_wrapper"> 843 834 844 <div class="sliderx_type_item sliderx_navigation_type_item"> 835 845 <input type="radio" id="sliderx_nav_angle" name="navigationType" value="nav_angle" <?php echo esc_attr($sliderx_navType === "nav_angle") ? "checked" : ""; ?>> … … 841 851 </label> 842 852 </div> 853 854 843 855 <div class="sliderx_type_item sliderx_navigation_type_item"> 844 856 <input type="radio" id="sliderx_nav_arrow" name="navigationType" value="nav_arrow" <?php echo esc_attr($sliderx_navType === "nav_arrow") ? "checked" : ""; ?>> … … 875 887 </div> 876 888 </div> 889 877 890 </div> 878 891 </div> <!--./ Tab navigation --> … … 911 924 912 925 <div class="sliderx_settings_option sliderx_box_option"> 926 913 927 <div class="sliderx_settings_option_title me-2"><?php esc_html_e( 'Pagination Position', 'sliderx' ); ?></div> 914 928 <!-- checkbox options --> … … 925 939 </div> 926 940 </div> 941 927 942 </div> 928 943 … … 952 967 </div> 953 968 </div> 954 955 969 </div> 956 970 </div> … … 961 975 962 976 <div class="sliderx_style_wrapper"> 977 963 978 <div class="sliderx_field_item"> 964 979 <div class="sliderx_label"> … … 986 1001 </div> 987 1002 </div> <!--./ Tab Pagination --> 1003 1004 <?php do_action('sliderX_tab_body', $api_url); ?> 1005 1006 988 1007 989 1008 </div> … … 997 1016 </div> 998 1017 </div> 1018 999 1019 </div> 1000 1020 1001 1021 1002 1022 <!-- Edit / Update markup --> 1003 <?php elseif ( isset( $_GET['page'], $_GET['sliderx'] ) && sanitize_text_field($_GET['page']) === 'sliderx' && sanitize_text_field($_GET['sliderx']) === 'update' ) :1023 <?php elseif ( isset( $_GET['page'], $_GET['sliderx'] ) && sanitize_text_field( $_GET['page'] ) === 'sliderx' && sanitize_text_field( $_GET['sliderx'] ) === 'update' ) : 1004 1024 1005 1025 // Verify the nonce … … 1009 1029 1010 1030 global $wpdb; 1011 1012 1031 $edit_sliderXId = isset($_GET['sliderxId']) ? absint( $_GET['sliderxId'] ) : ''; 1013 1032 … … 1023 1042 $edit_sliderType = isset($edit_sliderXData[0]->sliderType) ? sanitize_text_field($edit_sliderXData[0]->sliderType) : ''; 1024 1043 1025 1026 1044 // Settings Data from database. 1027 1045 $updateSettingsData = $wpdb->get_row( … … 1042 1060 $dimensionRatio = absInt($layout_settings->dimension->ratio ?? 0 ); 1043 1061 $autoHeight = sanitize_text_field($layout_settings->autoHeight ?? "false"); 1044 1045 1062 1046 1063 // Accessing other properties … … 1057 1074 $centeredSlide = isset($updateGeneral->centeredSlide) ? sanitize_text_field($updateGeneral->centeredSlide) : ''; 1058 1075 1059 1060 1076 // Text Content ==== 1061 1077 $updateTextContent = isset( $updateSettingsData->content ) ? json_decode($updateSettingsData->content) : ''; … … 1100 1116 $ctaBg = isset($ctaStyle->bgColor) ? sanitize_hex_color($ctaStyle->bgColor) : "#333333"; 1101 1117 1102 1103 1118 // Decode JSON strings 1104 1119 $updateNavigation = json_decode($updateSettingsData->navigation); … … 1129 1144 $pagiActiveColor = isset($pagination_ActiveStyle->color) ? sanitize_hex_color($pagination_ActiveStyle->color) : "#007aff"; 1130 1145 1146 // updated/ existing api url 1147 $update_ApiUrl = isset( $updateSettingsData->api_url ) ? sanitize_text_field($updateSettingsData->api_url) : ''; 1148 1131 1149 ?> 1132 1150 … … 1161 1179 </div> 1162 1180 </div> 1163 1164 1181 1165 1182 <div class="sliderx_section section_slider_config pb-0 mb-4"> … … 1217 1234 1218 1235 <!-- Delete Button --> 1236 <div class="accordionItemAction"> 1237 <span type="button" class="btn btn-danger sliderX_itemDelete" slider_id="<?php echo esc_attr($edit_sliderXId); ?>" data-item="<?php echo esc_attr($i); ?>"><span class="dashicons dashicons-no-alt"></span></span> 1238 </div> 1239 1219 1240 1220 1241 </h2> … … 1303 1324 <button class="nav-link" id="sliderx_pagination-tab" data-bs-toggle="tab" data-bs-target="#sliderx_pagination" type="button" role="tab" aria-navigations="sliderx_pagination" aria-selected="false"><?php esc_html_e( "Pagination", "sliderx" ); ?></button> 1304 1325 </li> 1326 1327 1328 <?php do_action('sliderX_tab_head'); ?> 1329 1330 1305 1331 </ul> 1306 1332 <div class="tab-content mt-4" id="sliderxSettings_content"> … … 1964 1990 </div> 1965 1991 </div> <!--./ Tab Pagination --> 1992 1993 <?php do_action('sliderX_tab_body', $update_ApiUrl); ?> 1994 1995 1966 1996 </div> 1967 1997 </div> … … 1977 2007 1978 2008 </div> <!-- End of Update Section --> 1979 1980 1981 2009 1982 2010 <!-- ===== Dashboard ====== --> … … 2005 2033 if ($table1_exists && $table2_exists) { 2006 2034 // Both tables exist, retrieve data 2035 // $sliderXData = $wpdb->get_results(" 2036 // SELECT * 2037 // FROM {$wpdb->prefix}sliderx_initial_projectsetup AS projectsetup 2038 // INNER JOIN {$wpdb->prefix}sliderx_data AS sliderxData ON projectsetup.id = sliderxData.sliderId 2039 // "); 2040 // global $wpdb; 2041 2007 2042 $sliderXData = $wpdb->get_results(" 2008 2043 SELECT * 2009 2044 FROM {$wpdb->prefix}sliderx_initial_projectsetup AS projectsetup 2010 2045 INNER JOIN {$wpdb->prefix}sliderx_data AS sliderxData ON projectsetup.id = sliderxData.sliderId 2046 ORDER BY sliderxData.sliderId DESC 2011 2047 "); 2012 2048 2013 2049 // <!-- Created Project Item --> 2014 2050 foreach ($sliderXData as $key => $data) : … … 2035 2071 <div class="sliderx_edit"> 2036 2072 <a href="<?php echo esc_url($updateUrl_with_nonce); ?>"><span class="dashicons dashicons-edit"></span></a> 2073 </div> 2074 <div class="sliderx_delete"> 2075 <a href="" class="sliderX_delId" delId="<?php echo esc_attr($sliderId); ?>"><span class="dashicons dashicons-trash"></span></a> 2037 2076 </div> 2038 2077 </div> -
sliderx/trunk/views/public/shortcode/sliderx-shortcode.php
r3087162 r3090084 1 1 <?php 2 2 /* 3 * @Pakage X-Slider.3 * @Pakage SliderX. 4 4 */ 5 5 require_once(SLIDERX_DIR_PATH . 'includes/helper/sliderX-merge.php'); 6 6 // sliderX Shortcode 7 7 function sliderX_shortcode( $attr ) { … … 17 17 ), $attr ); ob_start(); ?> 18 18 19 19 20 <style> 20 21 21 /* query for Change direction */ 22 22 @media (max-width: 760px) { … … 129 129 $sliderX_width = !empty($dimension->width) ? absint($dimension->width) : ""; 130 130 $sliderX_height = !empty($dimension->height) ? absint($dimension->height) : ""; 131 132 131 $autoHeight = isset($layoutSettings->autoHeight) ? sanitize_text_field($layoutSettings->autoHeight) : ""; 133 132 134 ?> 135 136 137 <style> 133 // Api Url 134 $api_url = isset($sliderSettings[0]->api_url) ? sanitize_text_field($sliderSettings[0]->api_url) : ''; 135 ?> 136 137 138 139 <style> 138 140 /*===== Dynamic Style ====== */ 139 141 <?php echo '#sliderX-' . esc_attr($id); ?> { … … 148 150 } 149 151 150 151 152 /* TextContent */ 152 153 /* ---Title--- */ … … 196 197 } 197 198 198 </style> 199 200 <?php 201 202 if( count($sliderData) > 0 ){ 203 foreach ($sliderData as $key => $data) { 204 205 $sliderId = $data->sliderId; 206 $sliderData = json_decode($data->sliderData); 207 199 </style> 200 201 <?php 202 203 foreach ($sliderData as $key => $data) { 204 $sliderId = $data->sliderId; 205 $sliderData = json_decode($data->sliderData); 206 207 $apiData = array(); 208 // Call the default function 209 $sliderX_data = sliderX_mergeData($sliderData, $apiData); 210 // Apply custom filter to merge data if the hook is used, otherwise use default merge 211 $sliderX_merged_data = apply_filters('sliderX_slider_data', $sliderX_data, $sliderData, $apiData, $api_url); 212 213 ?> 214 215 <div class="swiper sliderX full-width" id="sliderX-<?php echo esc_attr($sliderId); ?>"> 216 <div class="swiper-wrapper"> 217 218 <?php foreach ($sliderX_merged_data as $key => $sliderItemData) : 219 220 $image = $sliderItemData['image']; 221 $xSlide_title = isset($sliderItemData['title']) ? sanitize_text_field($sliderItemData['title']) : ''; 222 $xSlide_subtitle = isset($sliderItemData['subtitle']) ? sanitize_text_field($sliderItemData['subtitle']) : ''; 223 $xSlide_desc = isset($sliderItemData['description']) ? sanitize_text_field($sliderItemData['description']) : ''; 224 $xSlide_btnText1 = isset($sliderItemData['btnText1']) ? sanitize_text_field($sliderItemData['btnText1']) : ''; 225 $xSlide_btnText2 = isset($sliderItemData['btnText2']) ? sanitize_text_field($sliderItemData['btnText2']) : ''; 226 $xSlide_btnLink1 = isset($sliderItemData['btnLink1']) ? sanitize_text_field($sliderItemData['btnLink1']) : ''; 227 $xSlide_btnLink2 = isset($sliderItemData['btnLink2']) ? sanitize_text_field($sliderItemData['btnLink2']) : ''; 228 ?> 229 <div class="swiper-slide sliderX-slide" style="background-image: url(<?php echo esc_url($image); ?>);"> 230 <div class="sliderX_Item"> 231 <!-- <div class="sliderX_image"> 232 <img src="" alt=""> 233 </div> --> 234 <div class="sliderX_content"> 235 <div class="sliderX_content_inner_wrapper"> 236 <?php if($titleVal === "true"): ?> 237 <div class="sliderXContent_title"> 238 <?php 239 if(isset($xSlide_title) && !empty($xSlide_title)){ 240 echo esc_html($xSlide_title); 241 } 242 ?> 243 </div> 244 <?php endif; ?> 245 <?php if($subtitleVal === "true"): ?> 246 <div class="sliderXContent_subtitle"> 247 <?php 248 if(isset($xSlide_subtitle) && !empty($xSlide_subtitle)){ 249 echo esc_html($xSlide_subtitle); 250 } 251 ?> 252 </div> 253 <?php endif; ?> 254 255 <?php if($descriptionVal === "true"): ?> 256 <div class="sliderXContent_description"> 257 <?php 258 if(isset($xSlide_desc) && !empty($xSlide_desc)){ 259 echo esc_html($xSlide_desc); 260 } 261 ?> 262 </div> 263 <?php endif; ?> 264 <?php if($ctaVal === "true"): ?> 265 <div class="sliderX_cta_btn"> 266 <?php if(isset($xSlide_btnText1) && !empty($xSlide_btnText1)): ?> 267 <a class="sliderX_btn" href="<?php echo esc_url($xSlide_btnLink1); ?>"><?php echo esc_html( $xSlide_btnText1 ); ?></a> 268 <?php endif; ?> 269 270 <?php if(isset($xSlide_btnText2) && !empty($xSlide_btnText2)): ?> 271 <a class="sliderX_btn" href="<?php echo esc_url($xSlide_btnLink2); ?>"><?php echo esc_html( $xSlide_btnText2 ); ?></a> 272 <?php endif; ?> 273 274 </div> 275 <?php endif; ?> 276 </div> 277 </div> 278 </div> 279 </div> 280 <?php endforeach; ?> 281 </div> 282 283 <!-- Add Navigation --> 284 <?php 285 if($navigationVal === "true"){ 286 if($navType === "nav_arrow"){ 287 ?> 288 <div class="swiper-button-prev sliderX_nav_prev"></div> 289 <div class="swiper-button-next sliderX_nav_next"></div> 290 <?php 291 }else { 292 ?> 293 <div class="swiper-button-prev"></div> 294 <div class="swiper-button-next"></div> 295 <?php 296 } 297 } 208 298 ?> 209 210 <div class="swiper sliderX full-width" id="sliderX-<?php echo esc_attr($sliderId); ?>"> 211 <div class="swiper-wrapper"> 212 213 <?php foreach ($sliderData as $key => $sliderItemData) : 214 $image = $sliderItemData->image; 215 216 $xSlide_title = isset($sliderItemData->title) ? sanitize_text_field($sliderItemData->title) : ''; 217 $xSlide_subtitle = isset($sliderItemData->subtitle) ? sanitize_text_field($sliderItemData->subtitle) : ''; 218 $xSlide_desc = isset($sliderItemData->description) ? sanitize_text_field($sliderItemData->description) : ''; 219 $xSlide_btnText1 = isset($sliderItemData->btnText1) ? sanitize_text_field($sliderItemData->btnText1) : ''; 220 $xSlide_btnText2 = isset($sliderItemData->btnText2) ? sanitize_text_field($sliderItemData->btnText2) : ''; 221 $xSlide_btnLink1 = isset($sliderItemData->btnLink1) ? sanitize_text_field($sliderItemData->btnLink1) : ''; 222 $xSlide_btnLink2 = isset($sliderItemData->btnLink2) ? sanitize_text_field($sliderItemData->btnLink2) : ''; 223 224 ?> 225 <div class="swiper-slide sliderX-slide" style="background-image: url(<?php echo esc_url($image); ?>);"> 226 <div class="sliderX_Item"> 227 <!-- <div class="sliderX_image"> 228 <img src="" alt=""> 229 </div> --> 230 <div class="sliderX_content"> 231 <div class="sliderX_content_inner_wrapper"> 232 <?php if($titleVal === "true"): ?> 233 <div class="sliderXContent_title"> 234 <?php 235 if(isset($xSlide_title) && !empty($xSlide_title)){ 236 echo esc_html($xSlide_title); 237 } 238 ?> 239 </div> 240 <?php endif; ?> 241 <?php if($subtitleVal === "true"): ?> 242 <div class="sliderXContent_subtitle"> 243 <?php 244 if(isset($xSlide_subtitle) && !empty($xSlide_subtitle)){ 245 echo esc_html($xSlide_subtitle); 246 } 247 ?> 248 </div> 249 <?php endif; ?> 250 251 <?php if($descriptionVal === "true"): ?> 252 <div class="sliderXContent_description"> 253 <?php 254 if(isset($xSlide_desc) && !empty($xSlide_desc)){ 255 echo esc_html($xSlide_desc); 256 } 257 ?> 258 </div> 259 <?php endif; ?> 260 <?php if($ctaVal === "true"): ?> 261 <div class="sliderX_cta_btn"> 262 <?php if(isset($xSlide_btnText1) && !empty($xSlide_btnText1)): ?> 263 <a class="sliderX_btn" href="<?php echo esc_url($xSlide_btnLink1); ?>"><?php echo esc_html( $xSlide_btnText1 ); ?></a> 264 <?php endif; ?> 265 266 <?php if(isset($xSlide_btnText2) && !empty($xSlide_btnText2)): ?> 267 <a class="sliderX_btn" href="<?php echo esc_url($xSlide_btnLink2); ?>"><?php echo esc_html( $xSlide_btnText2 ); ?></a> 268 <?php endif; ?> 269 270 </div> 271 <?php endif; ?> 272 </div> 273 </div> 274 </div> 275 </div> 276 <?php endforeach; ?> 277 </div> 278 279 <!-- Add Navigation --> 280 <?php 281 if($navigationVal === "true"){ 282 if($navType === "nav_arrow"){ 283 ?> 284 <div class="swiper-button-prev sliderX_nav_prev"></div> 285 <div class="swiper-button-next sliderX_nav_next"></div> 286 <?php 287 }else { 288 ?> 289 <div class="swiper-button-prev"></div> 290 <div class="swiper-button-next"></div> 291 <?php 292 } 293 } 294 ?> 295 296 <!-- Add Pagination --> 297 <?php if($paginationVal === "true") : ?> 298 <div class="swiper-pagination"></div> 299 <?php endif; ?> 300 301 </div> 302 303 <?php 304 } 305 } 306 299 <!-- Add Pagination --> 300 <?php if($paginationVal === "true") : ?> 301 <div class="swiper-pagination"></div> 302 <?php endif; ?> 303 304 </div> 305 306 <?php 307 } 307 308 ?> 308 309 309 <?php310 // Get the buffered output and clean the buffer311 $output = ob_get_clean();312 313 return $output;310 <?php 311 // Get the buffered output and clean the buffer 312 $output = ob_get_clean(); 313 314 return $output; 314 315 } 315 316
Note: See TracChangeset
for help on using the changeset viewer.