File: /home/tvypkwena2lu/public_html/wp-content/plugins/widgets/ele-theme-slider.php
<?php
/**
* Elementor oEmbed Widget.
*
* Elementor widget that inserts an embbedable content into the page, from any given URL.
*
* @since 1.0.0
*/
class Elementor_ThemeSlider_Widget extends \Elementor\Widget_Base {
public function get_name() {
return 'theme_slider';
}
public function get_title() {
return __( 'Theme Slider', 'plugin-name' );
}
public function get_icon() {
return 'eicon-post-slider';
}
public function get_categories() {
return [ 'theme-specific-category' ];
}
protected function _register_controls() {
apply_filters( 'elementor/utils/get_placeholder_image_src', get_template_directory_uri().'/images/banner-1.png' );
$this->start_controls_section(
'content_section',
[
'label' => __( 'Content', 'plugin-name' ),
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
]
);
$repeater = new \Elementor\Repeater();
$repeater->add_control(
'list_title', [
'label' => __( 'Title', 'plugin-domain' ),
'type' => \Elementor\Controls_Manager::TEXT,
'default' => __( 'List Title' , 'plugin-domain' ),
'label_block' => true,
]
);
$repeater->add_control(
'image',
[
'label' => __( 'Choose Image', 'plugin-domain' ),
'type' => \Elementor\Controls_Manager::MEDIA,
'default' => [
'url' => \Elementor\Utils::get_placeholder_image_src(),
],
]
);
$repeater->add_control(
'website_link_label',
[
'label' => __( 'Read More URL Label', 'plugin-domain' ),
'type' => \Elementor\Controls_Manager::TEXT,
'default' => __( 'Buy The Book' , 'plugin-domain' ),
'label_block' => true,
]
);
$repeater->add_control(
'website_link',
[
'label' => __( 'Read More URL', 'plugin-domain' ),
'type' => \Elementor\Controls_Manager::URL,
'placeholder' => __( 'https://your-link.com', 'plugin-domain' ),
'show_external' => true,
'default' => [
'url' => '',
'is_external' => true,
'nofollow' => true,
],
]
);
$repeater->add_control(
'website_link_label_position',
[
'label' => __( 'Read More Lable Position', 'plugin-domain' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'label_on' => __( 'Right', 'your-plugin' ),
'label_off' => __( 'Left', 'your-plugin' ),
'return_value' => 'right',
'default' => '',
]
);
$this->add_control(
'list',
[
'label' => __( 'Slider Items', 'plugin-domain' ),
'type' => \Elementor\Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'default' => [
[
'list_title' => __( 'Book #1', 'plugin-domain' ),
'image' => [
'url'=>__( get_template_directory_uri().'/images/upcoming-book.png', 'plugin-domain' ),
],
'website_link'=> [
'url'=>__( 'http://fcnovel.com', 'plugin-domain' ),
],
'website_link_label'=>__( 'Learn More', 'plugin-domain' ),
'website_link_label_position'=>__( 'left', 'plugin-domain' ),
],
[
'list_title' => __( 'Book #2', 'plugin-domain' ),
'image' => [
'url'=>__( get_template_directory_uri().'/images/book.png', 'plugin-domain' ),
],
'website_link'=> [
'url'=>__( 'https://girlillawarfare.com', 'plugin-domain' ),
],
'website_link_label'=>__( 'Buy The Book', 'plugin-domain' ),
'website_link_label_position'=>__( 'right', 'plugin-domain' ),
],
],
'title_field' => '{{{ list_title }}}',
]
);
$this->add_control(
'show_pager',
[
'label' => __( 'Show Pager', 'plugin-domain' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'label_on' => __( 'Show', 'your-plugin' ),
'label_off' => __( 'Hide', 'your-plugin' ),
'return_value' => 'yes',
'default' => 'yes',
]
);
$this->add_control(
'show_prev_next',
[
'label' => __( 'Show Navigation Arrow', 'plugin-domain' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'label_on' => __( 'Show', 'your-plugin' ),
'label_off' => __( 'Hide', 'your-plugin' ),
'return_value' => 'yes',
'default' => 'yes',
]
);
$this->end_controls_section();
}
protected function render() {
$settings = $this->get_settings_for_display();
//$settings['testimonial_style']
$style='';
//echo '<pre>';
//print_r($settings['list']);
//echo '</pre>';
if(!empty($settings['list'])) {
$slider_item='';
foreach($settings['list'] as $slider){
$readmore='';
if($slider['website_link']['url']) {
$target = $slider['website_link']['is_external'] ? ' target="_blank"' : '';
$nofollow = $slider['website_link']['nofollow'] ? ' rel="nofollow"' : '';
if($slider['website_link_label_position']==='right') {
$readmore_cl='shelf-btn order-1 order-md-2';
$img_cl='img-fluid order-2 order-md-1';
} else {
$readmore_cl='shelf-btn';
$img_cl='img-fluid';
}
if(!empty($slider['website_link_label'])) {
$readmore='<a title="'.$slider['list_title'].'" class="'.$readmore_cl.'" href="'.$slider['website_link']['url']. '"' . $target . $nofollow . '>'.$slider['website_link_label'].'</a>';
}
}
if($slider['image']['id']){
$image=wp_get_attachment_image_src( $slider['image']['id'], 'full' );
$image=$image[0];
} else {
$image=$slider['image']['url'];
}
$slider_item.='
<div class="swiper-slide">
<div class="d-flex flex-nowrap align-items-center align-items-md-end justify-content-center flex-column flex-md-row">
'.$readmore.'
<a href="'.$slider['website_link']['url'].'"><img src="'.$image.'" alt="upcoming-book" class="'.$img_cl.'"></a>
</div>
</div>
';
}
if ( 'yes' === $settings['show_pager'] ) {
$show_pager='<div class="swiper-pagination"></div>';
} else {
$show_pager='';
}
if ( 'yes' === $settings['show_prev_next'] ) {
$show_prev_next='
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
';
} else {
$show_prev_next='';
}
echo '
<div class="row">
<div class="col-12">
<div class="bookshelf-blk">
<div class="book-slider swiper-container">
<div class="swiper-wrapper">
'.$slider_item.'
</div>
<!-- If we need navigation buttons -->
'.$show_pager.'
'.$show_prev_next.'
</div>
</div>
</div>
</div>
';
}
}
}