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;
}