HEX
Server: Apache
System: Linux p3plzcpnl507484.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: tvypkwena2lu (5224663)
PHP: 7.2.34
Disabled: NONE
Upload Files
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>		
			';
		}
	}

}