HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/insiders/wp-load/wp-content/plugins/breadly/lib/slider/slider.php
<?php

add_action( 'init', 'gtm_register_asset_slider' );
function gtm_register_asset_slider() {
	wp_register_script( 'gutenmate-slider', GTM_LIB_URL . 'slider/dist/gutenmate-slider.js', [], GTM_VERSION, true );
	wp_register_style( 'gutenmate-slider', GTM_LIB_URL . 'slider/dist/gutenmate-slider.css', [], GTM_VERSION );
	wp_style_add_data( 'gutenmate-slider', 'rtl', 'replace' );
}

/**
 * Wrap existing content with slider
 * The structure must be like this
 * <div class="container">
 * <div class="item"></div>
 * <div class="item"></div>
 * </div>
 *
 * @param [string] $content
 * @param [array] $swiper_params
 * @param array $options
 * @return void
 */
function gtm_create_slider( $content, $swiper_params=[]) {
	$swiper_params = wp_parse_args( $swiper_params, [
		'loop'         => false,
		'autoHeight'   => true,
		'autoplay'     => false,
		'navigation'   => true,
		'pagination'   => false,
		"spaceBetween" => 24,
	] );

	$p = new WP_HTML_Tag_Processor( $content );

	// Add wrapper class
	$p->next_tag();
	$p->add_class( 'swiper-wrapper' );

	// Move alignment to the slider
	$className = $p->get_attribute( 'class' );
	$align     = '';
	if ( preg_match( '|[^\w\s]?align[^\s]+|', $className, $matches ) ) {
		$align = $matches[0];
		$p->add_class( $align );
	}

	// Add slide class
	while ( $p->next_tag() ) {
		$p->add_class( 'swiper-slide' );
	}

	$block_content = '<div class="gtm-slider swiper-container ' . esc_attr( $align ) . '" data-swiper="' . esc_attr( json_encode( $swiper_params ) ) . '">';
	$block_content .= $p->get_updated_html();

	if ( $swiper_params['navigation'] ) {
		$block_content .= '<div class="swiper-button-prev"></div>';
		$block_content .= '<div class="swiper-button-next"></div>';
	}

	if ( $swiper_params['pagination'] ) {
		$block_content .= '<div class="swiper-pagination"></div>';
	}

	$block_content .= '</div>';

	wp_enqueue_script( 'gutenmate-slider' );
	wp_enqueue_style( 'gutenmate-slider' );

	return $block_content;
}