Plugin Directory

Changeset 3090084


Ignore:
Timestamp:
05/21/2024 10:20:36 AM (21 months ago)
Author:
afello
Message:

version 1.0.1 uploaded

Location:
sliderx
Files:
12 added
1 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • sliderx/trunk/assets/css/sliderx.css

    r3087162 r3090084  
    4343} */
    4444.sliderX .sliderX-slide {
     45    width: 100%;
    4546    height: 100%;
    4647    line-height: 100%;
    47     background-size: cover;
     48    background-size: contain;
    4849    background-repeat: no-repeat;
     50    background-position: center center;
    4951}
    5052.sliderX-slide {}
     
    111113    height: 100%;
    112114    flex-flow: column nowrap;
     115    position: absolute;
     116    top: 0;
    113117}
    114118.sliderX_content_inner_wrapper {
  • sliderx/trunk/assets/js/sliderx-script.js

    r3087162 r3090084  
    4242                  <!-- Delete Button -->
    4343                  <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>
    4545                  </div>
    4646              </h2>
     
    118118
    119119  });
     120
     121
     122
     123
    120124 
    121125
     
    480484          projectNameInput.removeClass("is-invalid").addClass("is-valid");
    481485      }
    482 
    483486
    484487      let editorUrl = $("#xslierEditor_url").val();
     
    724727      activeStyle : paginationActiveStyle
    725728    }
     729
     730    const apiUrl = $(".sliderX_api_url").val();
     731
     732    console.log(apiUrl);
     733   
    726734    const sliderXSettings = {
    727735      sliderType,
     
    729737      textContent,
    730738      navigation,
    731       pagination
     739      pagination,
     740      apiUrl
    732741    }
    733742
     
    943952  let cta_bgColor = $("#sliderx_cta_bg").val() || '';
    944953
    945 
    946954  const ctaStyle = {
    947955    alignment : ctaAlignment,
     
    950958    bgColor :  cta_bgColor
    951959  }
    952 
    953960
    954961  const textContent = {
     
    10081015    activeStyle : paginationActiveStyle
    10091016  }
     1017
     1018  const apiUrl = $(".sliderX_api_url").val();
    10101019  const sliderXSettings = {
    10111020    sliderType,
     
    10131022    textContent,
    10141023    navigation,
    1015     pagination
     1024    pagination,
     1025    apiUrl
    10161026  }
    10171027
     
    10771087
    10781088
    1079 
    10801089  // Toggle Settings Options
    10811090  $(".sliderx_settingsBtn").on("click", function (e) {
     
    11111120  });
    11121121
    1113 
    1114 
    11151122  function copyToClipboard(text) {
    11161123    $("<input>").val(text).appendTo("body").select();
     
    11191126
    11201127
    1121 
    1122 
    1123 /* ====== Delete Data ======= */
    1124 
    1125   $(".sliderx_update_btn").on('click', function (e) {
     1128  /* ====== SliderX Delete ======= */
     1129  $(".sliderX_delId").click(function (e) {
    11261130    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
    11351133    // Get the current URL
    11361134    let currentURL = window.location.href;
    1137  
    11381135    // Find the position of the last occurrence of '/'
    11391136    let lastIndex = currentURL.lastIndexOf('/');
    1140  
    11411137    // Extract the URL up to the last occurrence of '/'
    11421138    let baseUrl = currentURL.substring(0, lastIndex);
    11431139    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
    11611216
    11621217
  • sliderx/trunk/assets/js/sliderx.config.js

    r3087162 r3090084  
    11"use strict";
    22
    3 const settingsData = configObj || {};
     3const settingsData = configObj.settings || {};
    44
    55// Iterate over each settings object
  • sliderx/trunk/classes/SliderX-ajax-handling.php

    r3087162 r3090084  
    7979                    );
    8080                }
    81            
    8281            }
    8382            // Send a JSON response with the status
     
    101100            $sliderId = isset($_POST["sliderId"]) ? intval($_POST["sliderId"]) : 0;
    102101            $settingsData = sliderx_Sanitize($_POST["settingsData"]);
     102            $sliderx_apiUrl =  $settingsData["apiUrl"];
    103103
    104104            $sliderType = isset($settingsData["sliderType"]) ? sanitize_text_field( $settingsData["sliderType"]) : '';
     
    109109            $pagination =  wp_json_encode($settingsData["pagination"]);
    110110
    111            
    112111            $table_name = "{$wpdb->prefix}sliderx_settings";
    113112            $table_exists = $wpdb->get_var($wpdb->prepare( "SHOW TABLES LIKE %s", $table_name ) );
     
    140139                            'navigation'  => $navigation,
    141140                            'pagination'  => $pagination,
     141                            'api_url'  => $sliderx_apiUrl
    142142                        ),
    143143                        array('sliderId' => $sliderId)
     
    153153                            'navigation'  => $navigation,
    154154                            'pagination'  => $pagination,
     155                            'api_url'  => $sliderx_apiUrl
    155156                        )
    156157                    );
     
    220221            $settingsData = sliderx_Sanitize($_POST["settingsData"]);
    221222            $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"]);
    224226            $textContent = wp_json_encode($settingsData["textContent"]);
    225227            $navigation =  wp_json_encode($settingsData["navigation"]);
     
    256258                            'navigation'  => $navigation,
    257259                            'pagination'  => $pagination,
     260                            'api_url'  => $sliderx_apiUrl
    258261                        ),
    259262                        array('sliderId' => $updateId)
     
    271274        }
    272275
     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
    273387    }
    274388
  • sliderx/trunk/classes/SliderX_dbManagement.php

    r3087162 r3090084  
    8080                        `navigation` TEXT DEFAULT NULL,
    8181                        `pagination` TEXT DEFAULT NULL,
     82                        `api_url` TEXT DEFAULT NULL,
    8283                        PRIMARY KEY (`id`)
    8384                ) $charset_collate;";
  • sliderx/trunk/includes/assets.php

    r3088870 r3090084  
    6565        wp_localize_script( 'sliderx-custom-script', 'updateData', $args );
    6666
     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
    6780        wp_enqueue_style('sliderx-bootsrap-css');
    6881        wp_enqueue_style('sliderx-style');
     
    116129            wp_localize_script( 'sliderx-config-js', 'configObj', array('settings' => $configData) );
    117130
     131
    118132            wp_enqueue_style( 'sliderx-swiper-css' );
    119133            wp_enqueue_style( 'sliderx-style' );
  • sliderx/trunk/readme.txt

    r3087162 r3090084  
    55Requires at least: 5.4+
    66Tested up to: 6.4.2
    7 Stable tag: 1.0.0
     7Stable tag: 1.0.1
    88Requires PHP: 7.1
    99License: GPLv3 or later
     
    4343== Screenshots ==
    4444
    45 1. Admin Settings menu
    46 2. Dashboard
    47 3. Slider configuration
     451. Admin Dashboard Menu
     462. Create Project / Slider Option
     473. Create New Slider / Project Option
     484. Create New Slider / Project Option
     495. Choose Slider type Option
     506. Create Slides / add slider item
     517. Configure slider settings options
     528. Save Slider / Carousel
     539. Use Generated shortcode
     5410.Edit/Update or Delete Create Slider
    4855
    4956== Upgrade Notice ==
     
    5259
    5360== Changelog ==
     61= 1.0.1 =
     62* Slider edit / Delete Option added
     63* Screenshots Updated
     64* Fix minor issues
     65
    5466= 1.0.0 =
    5567* Initial Release
  • sliderx/trunk/sliderX.php

    r3087162 r3090084  
    22/**
    33 * Plugin Name: SliderX
    4  * Description: Create Attractive slider / Carousel on WordPress website.
    5  * Version: 1.0.0
     4 * Description: Create Attractive slider / Carousel on WordPress website easily.
     5 * Version: 1.0.1
    66 * Author: Spark Coder
    77 * Author URI: https://sparkcoder.com
     
    4242            require( SLIDERX_DIR_PATH.'views/public/shortcode/sliderx-shortcode.php' );
    4343            require( SLIDERX_DIR_PATH.'includes/deactivation.php' );
     44            // require( SLIDERX_DIR_PATH.'includes/api/sliderx-api.php' );
    4445
    4546            // Dashboard Menu
     
    5152            require( SLIDERX_DIR_PATH.'classes/SliderX_dbManagement.php' ); 
    5253
    53            
    5454            /******* Hook *******/
    5555            register_activation_hook( __FILE__, array( new SLIDERX_DB_Management(), 'sliderX_newProjectSetup' ));
     
    5959            register_uninstall_hook( __FILE__, 'sliderX_dbTableCleaner');
    6060           
    61 
    6261            add_shortcode('sliderX', 'sliderX_shortcode' );
    6362            add_action( 'admin_enqueue_scripts', 'sliderx_admin_assets');
     
    7069            add_action('wp_ajax_update_sliderXData_action', array( new SLIDERX_Ajax_Handle(), 'sliderX_dataUpdate') );
    7170            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') );
    7273        }
    7374    }
  • sliderx/trunk/views/admin/sliderx-admin-menu.php

    r3089182 r3090084  
    168168                                $pagiActiveColor = isset($pagination_ActiveStyle->color) ? htmlspecialchars($pagination_ActiveStyle->color) : "#007aff";
    169169
     170                                // API Url ====
     171                                $api_url = '';
    170172                               
    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                                     
    174176                                ?>
    175177
     
    260262                                                                        </button>
    261263                                                                    <!-- 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>
    263267                                                                    </h2>
    264268                                                                    <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">
     
    346350                                                        <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>
    347351                                                    </li>
     352
     353                                                    <?php  do_action('sliderX_tab_head'); ?>
     354
    348355                                                </ul>
    349356                                                <div class="tab-content mt-4" id="sliderxSettings_content">
     
    532539                                                        </div>
    533540
     541
    534542                                                        <!-- Centered Slide -- Switcher -->
    535543                                                        <div class="sliderx_settings_option">
     
    741749                                                                    </div>
    742750                                                                </div>
     751
    743752                                                            </div>
    744753                                                        </div>
     
    832841
    833842                                                                <div class="sliderx_type_item_wrapper">
     843
    834844                                                                    <div class="sliderx_type_item sliderx_navigation_type_item">
    835845                                                                        <input type="radio" id="sliderx_nav_angle" name="navigationType" value="nav_angle" <?php echo esc_attr($sliderx_navType === "nav_angle") ? "checked" : ""; ?>>
     
    841851                                                                        </label>
    842852                                                                    </div>
     853
     854
    843855                                                                    <div class="sliderx_type_item sliderx_navigation_type_item">
    844856                                                                        <input type="radio" id="sliderx_nav_arrow" name="navigationType" value="nav_arrow" <?php echo esc_attr($sliderx_navType === "nav_arrow") ? "checked" : ""; ?>>
     
    875887                                                                </div>
    876888                                                            </div>
     889
    877890                                                        </div>                                                 
    878891                                                    </div> <!--./ Tab navigation -->
     
    911924
    912925                                                                <div class="sliderx_settings_option sliderx_box_option">
     926
    913927                                                                    <div class="sliderx_settings_option_title me-2"><?php esc_html_e( 'Pagination Position', 'sliderx'  ); ?></div>
    914928                                                                    <!-- checkbox options -->
     
    925939                                                                        </div>
    926940                                                                    </div>
     941
    927942                                                                </div>
    928943
     
    952967                                                                            </div>
    953968                                                                        </div>
    954 
    955969                                                                    </div>
    956970                                                                </div>
     
    961975
    962976                                                                    <div class="sliderx_style_wrapper">
     977
    963978                                                                        <div class="sliderx_field_item">
    964979                                                                            <div class="sliderx_label">
     
    9861001                                                        </div>                                                 
    9871002                                                    </div> <!--./ Tab Pagination -->
     1003
     1004                                                    <?php  do_action('sliderX_tab_body', $api_url); ?>
     1005
     1006
    9881007
    9891008                                                </div>
     
    9971016                                        </div>
    9981017                                    </div>
     1018
    9991019                                </div>
    10001020
    10011021
    10021022                                <!-- 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' ) :
    10041024
    10051025                                // Verify the nonce
     
    10091029
    10101030                                global $wpdb;
    1011 
    10121031                                $edit_sliderXId = isset($_GET['sliderxId']) ? absint( $_GET['sliderxId'] ) : '';
    10131032
     
    10231042                                $edit_sliderType = isset($edit_sliderXData[0]->sliderType) ? sanitize_text_field($edit_sliderXData[0]->sliderType) : '';
    10241043                               
    1025 
    10261044                                // Settings Data from database.
    10271045                                $updateSettingsData = $wpdb->get_row(
     
    10421060                                $dimensionRatio = absInt($layout_settings->dimension->ratio ?? 0 );
    10431061                                $autoHeight = sanitize_text_field($layout_settings->autoHeight ?? "false");
    1044 
    10451062
    10461063                                // Accessing other properties
     
    10571074                                $centeredSlide = isset($updateGeneral->centeredSlide) ? sanitize_text_field($updateGeneral->centeredSlide) : '';
    10581075
    1059 
    10601076                                // Text Content ====
    10611077                                $updateTextContent = isset( $updateSettingsData->content ) ? json_decode($updateSettingsData->content) : '';
     
    11001116                                $ctaBg = isset($ctaStyle->bgColor) ? sanitize_hex_color($ctaStyle->bgColor) : "#333333";
    11011117
    1102 
    11031118                                // Decode JSON strings
    11041119                                $updateNavigation = json_decode($updateSettingsData->navigation);
     
    11291144                                $pagiActiveColor = isset($pagination_ActiveStyle->color) ? sanitize_hex_color($pagination_ActiveStyle->color) : "#007aff";
    11301145
     1146                                // updated/ existing api url
     1147                                $update_ApiUrl = isset( $updateSettingsData->api_url ) ? sanitize_text_field($updateSettingsData->api_url) : '';
     1148 
    11311149                                ?>
    11321150
     
    11611179                                    </div>
    11621180                                </div>
    1163 
    11641181
    11651182                                <div class="sliderx_section section_slider_config pb-0 mb-4">
     
    12171234
    12181235                                                                    <!-- 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
    12191240
    12201241                                                                    </h2>
     
    13031324                                                        <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>
    13041325                                                    </li>
     1326
     1327
     1328                                                    <?php  do_action('sliderX_tab_head'); ?>
     1329       
     1330                                                   
    13051331                                                </ul>
    13061332                                                <div class="tab-content mt-4" id="sliderxSettings_content">
     
    19641990                                                        </div>                                                 
    19651991                                                    </div> <!--./ Tab Pagination -->
     1992
     1993                                                    <?php  do_action('sliderX_tab_body', $update_ApiUrl); ?>
     1994
     1995
    19661996                                                </div>
    19671997                                            </div>
     
    19772007
    19782008                                </div> <!-- End of Update Section -->
    1979 
    1980 
    19812009
    19822010                                <!-- ===== Dashboard ====== -->
     
    20052033                                        if ($table1_exists && $table2_exists) {
    20062034                                            // 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
    20072042                                            $sliderXData = $wpdb->get_results("
    20082043                                                SELECT *
    20092044                                                FROM {$wpdb->prefix}sliderx_initial_projectsetup AS projectsetup
    20102045                                                INNER JOIN {$wpdb->prefix}sliderx_data AS sliderxData ON projectsetup.id = sliderxData.sliderId
     2046                                                ORDER BY sliderxData.sliderId DESC
    20112047                                            ");
    2012 
     2048                                           
    20132049                                            // <!-- Created Project Item -->
    20142050                                            foreach ($sliderXData as $key => $data) :
     
    20352071                                                                        <div class="sliderx_edit">
    20362072                                                                            <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>
    20372076                                                                        </div>
    20382077                                                                    </div>
  • sliderx/trunk/views/public/shortcode/sliderx-shortcode.php

    r3087162 r3090084  
    11<?php
    22/*
    3 * @Pakage X-Slider.
     3* @Pakage SliderX.
    44*/
    5 
     5require_once(SLIDERX_DIR_PATH . 'includes/helper/sliderX-merge.php');
    66// sliderX Shortcode
    77function sliderX_shortcode( $attr ) {
     
    1717        ), $attr );  ob_start(); ?>
    1818
     19       
    1920    <style>
    20 
    2121    /* query for Change direction  */
    2222    @media (max-width: 760px) {
     
    129129    $sliderX_width = !empty($dimension->width) ? absint($dimension->width) : "";
    130130    $sliderX_height = !empty($dimension->height) ? absint($dimension->height) : "";
    131    
    132131    $autoHeight = isset($layoutSettings->autoHeight) ? sanitize_text_field($layoutSettings->autoHeight) : "";
    133132
    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>
    138140  /*===== Dynamic Style ====== */
    139141  <?php echo '#sliderX-' . esc_attr($id); ?> {
     
    148150  }
    149151
    150 
    151152  /* TextContent */
    152153  /* ---Title--- */
     
    196197  }
    197198
    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              }
    208298          ?>
    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      }
    307308    ?>
    308309
    309     <?php
    310     // Get the buffered output and clean the buffer
    311     $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;
    314315}
    315316
Note: See TracChangeset for help on using the changeset viewer.