Your IP : 216.73.216.95


Current Path : /var/test/www/ya/wp-content/themes/youthy/framework/widgets/
Upload File :
Current File : /var/test/www/ya/wp-content/themes/youthy/framework/widgets/widget-slider.php

<?php

 // MeanThemes Homepage Widget for Sliders.

 /*

   *
   * This widget uses the Custom post type for meanthemes_sliders (via the MeanThemes tools plugin)
   *

 */

 // Register widget
 add_action('widgets_init', 'meanthemes_home_sliders_widget');
 function meanthemes_home_sliders_widget() {
   register_widget( 'meanthemes_home_sliders' );
 }

 // Setup widget class
 class meanthemes_home_sliders extends WP_Widget {

   function __construct() {

        $widget_name = __( 'MT Homepage: Sliders' , 'meanthemes' );
        $widget_classname = "meanthemes_home_sliders";
        $widget_description = __('This widget includes the sliders you have set up via the "Sliders" Custom Post Type, with a few extra options.', 'meanthemes');


      // Set widget classname and description from above
       $widget_ops = array(
         'classname' => $widget_classname,
         'description' => $widget_description,
        );
       parent::__construct('meanthemes_home_sliders-widget',
       $widget_name,
       $widget_ops);


   }



   // Setup widget output
   function widget($args, $instance) {

     extract($args);

     // Variables from the widget settings.





     if ( isset( $instance[ 'post_amount' ] ) ) {
       $post_amount = $instance[ 'post_amount' ];
     } else {
       $post_amount = "";
     }

     if ( $post_amount === "" ) {

       $posts_per_page = 3;

     } else {

       $posts_per_page = $post_amount;

     }

     if ( isset( $instance[ 'slide' ] ) ) {
       $slide = $instance[ 'slide' ];
     } else {
       $slide = "";
     }

     if ( $slide === "" ) {

       $slide = 'slide';

     } else {

       $slide = $slide;

     }


     if ( isset( $instance[ 'auto_rotate' ] ) ) {
       $auto_rotate = $instance[ 'auto_rotate' ];
     } else {
       $auto_rotate = "";
     }

     if ( $auto_rotate === "" ) {

       $auto_rotate = 'true';

     } else {

       $auto_rotate = $auto_rotate;

     }

     if ( isset( $instance[ 'slideshow_speed' ] ) ) {
       $slideshow_speed = $instance[ 'slideshow_speed' ];
     } else {
       $slideshow_speed = "";
     }

     if ( $slideshow_speed === "" ) {

       $slideshow_speed = '7000';

     } else {

       $slideshow_speed = $slideshow_speed;

     }





     // Widget HTML output
     ?>

     <section class="home-widget widget-sliders" id="<?php echo esc_attr( $this->id ); ?>">


       <?php

         // Get All Slider Posts
         wp_reset_postdata();
         $main_query = new WP_Query( array ( 'post_type' => 'slider', 'posts_per_page' => $posts_per_page ) );

         if ( $main_query->have_posts() ) { ?>


             <div class="loop slider-loop">

               <div class="owl-carousel">

         <?php }

         while ( $main_query->have_posts() ) : $main_query->the_post();

         global $post;

           ?>

           <?php
           // Get the slider image so we can use it as the background
              if ( has_post_thumbnail() ) {
               $slider_image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'slider' );
              }

            ?>

           <div <?php post_class( 'slider-item' ); ?> id="post-<?php the_ID(); ?>">


              <div class="slider-inner"<?php if ( has_post_thumbnail() ) { ?> style="background-image: url( <?php echo esc_url( $slider_image[0] ); ?>);"<?php } ?>>

                   <h2><?php esc_html( the_title() ); ?></h2>
                   <?php if ( get_the_content() ) { ?>
                     <div class="slider-content">
                       <?php the_content(); ?>
                     </div>
                   <?php } ?>

                   <?php // Get custom meta for the button
                   $prefix = '_slider_';
                   $button_text = get_post_meta($post->ID, $prefix . 'button_text', true);
                   $button_link = get_post_meta($post->ID, $prefix . 'button_link', true);
                   $button_color = get_post_meta($post->ID, $prefix . 'button_color', true);

                   if ( $button_text && $button_link ) { ?>

                     <div class="slider-btn-wrapper">
                       <?php if ( $button_color ) { ?>
                         <style>#post-<?php the_ID(); ?> .btn, #post-<?php the_ID(); ?> .btn:hover { background-color: <?php echo esc_html( $button_color ); ?> !important; }</style>
                         <?php } ?>
                       <a class="btn" href="<?php echo esc_url( $button_link ); ?>" title="<?php echo esc_html( $button_text ); ?>"><?php echo esc_html( $button_text ); ?> <i class="fa fa-arrow-right"></i></a>
                     </div>

                   <?php }

                   ?>

            </div>
          </div>


           <?php

         endwhile;

         if ( $main_query->have_posts() ) { ?>


            </div>

           </div>
         <?php }

          ?>



     </section>

     <script>
     jQuery(document).ready(function() {
       "use strict";
         var owl = jQuery(".home-widget#<?php echo esc_attr( $this->id ); ?> .owl-carousel");

           owl.owlCarousel({
                pagination: true,
                navigation: false,
                <?php if ( $auto_rotate === "true" ) { ?>
                  autoPlay: <?php echo esc_js( $slideshow_speed ); ?>,
                <?php } ?>
                singleItem: true,
                <?php if ( $slide === "fade" ) { ?>
                  transitionStyle: "<?php echo esc_js( $slide ); ?>",
                <?php } ?>


           });


    });

     </script>


     <?php

   }

   // Variables for updating widget, these should match above but use santization methods

   function update($new_instance, $old_instance) {
     $instance = $old_instance;
     $instance['post_amount'] = esc_attr( $new_instance['post_amount'] );
     $instance['slide'] = esc_attr( $new_instance['slide'] );
     $instance['auto_rotate'] = esc_attr( $new_instance['auto_rotate'] );
     $instance['slideshow_speed'] = esc_attr( $new_instance['slideshow_speed'] );



     return $instance;
   }


   // Setup widget form that appears in Appearance > Widgets

   function form($instance) {

     // Again set the variables... again!
     $defaults = array(
       "post_amount" => "",
       "slide" => "",
       "auto_rotate"  => "",
       "slideshow_speed" => ""

     );
     $instance = wp_parse_args( (array) $instance, $defaults );

     ?>

      <p>
        <label for="<?php echo esc_attr( $this->get_field_id('slide') ); ?>"><?php _e( 'Slide or Fade:' , 'meanthemes' ); ?></label><br />
        <select name="<?php echo esc_attr( $this->get_field_name('slide') ); ?>" id="<?php echo esc_attr( $this->get_field_id('slide') ); ?>">
          <option value="fade" <?php if ( $instance['slide'] !== 'slide' ) { ?>selected<?php } ?>>Fade</option>
          <option value="slide" <?php if ( $instance['slide'] !== 'fade' ) { ?>selected<?php } ?>>Slide</option>
       </select>
      </p>

      <p>
        <label for="<?php echo esc_attr( $this->get_field_id('auto_rotate') ); ?>"><?php _e( 'Auto rotate:' , 'meanthemes' ); ?></label><br />
        <select name="<?php echo esc_attr( $this->get_field_name('auto_rotate') ); ?>" id="<?php echo esc_attr( $this->get_field_id('auto_rotate') ); ?>">
          <option value="false" <?php if ( $instance['auto_rotate'] !== 'true' ) { ?>selected<?php } ?>>No</option>
          <option value="true" <?php if ( $instance['auto_rotate'] !== 'false' ) { ?>selected<?php } ?>>Yes</option>
       </select>
      </p>

      <p>
        <label for="<?php echo esc_attr( $this->get_field_id('slideshow_speed') ); ?>"><?php _e( 'Slideshow Speed:' , 'meanthemes' ); ?></label><br />
        <select name="<?php echo esc_attr( $this->get_field_name('slideshow_speed') ); ?>" id="<?php echo esc_attr( $this->get_field_id('slideshow_speed') ); ?>">
          <option value="7000" <?php if ( $instance['slideshow_speed'] === '7000' ) { ?>selected<?php } ?>>7 seconds</option>
          <option value="1000" <?php if ( $instance['slideshow_speed'] === '1000' ) { ?>selected<?php } ?>>1 second</option>
          <option value="2000" <?php if ( $instance['slideshow_speed'] === '2000' ) { ?>selected<?php } ?>>2 seconds</option>
          <option value="3000" <?php if ( $instance['slideshow_speed'] === '3000' ) { ?>selected<?php } ?>>3 seconds</option>
          <option value="4000" <?php if ( $instance['slideshow_speed'] === '4000' ) { ?>selected<?php } ?>>4 seconds</option>
          <option value="5000" <?php if ( $instance['slideshow_speed'] === '5000' ) { ?>selected<?php } ?>>5 seconds</option>
          <option value="6000" <?php if ( $instance['slideshow_speed'] === '6000' ) { ?>selected<?php } ?>>6 seconds</option>
          <option value="7000" <?php if ( $instance['slideshow_speed'] === '7000' ) { ?>selected<?php } ?>>7 seconds</option>
          <option value="8000" <?php if ( $instance['slideshow_speed'] === '8000' ) { ?>selected<?php } ?>>8 seconds</option>
          <option value="9000" <?php if ( $instance['slideshow_speed'] === '9000' ) { ?>selected<?php } ?>>9 seconds</option>
          <option value="10000" <?php if ( $instance['slideshow_speed'] === '10000' ) { ?>selected<?php } ?>>10 seconds</option>
          <option value="11000" <?php if ( $instance['slideshow_speed'] === '11000' ) { ?>selected<?php } ?>>11 seconds</option>
          <option value="12000" <?php if ( $instance['slideshow_speed'] === '12000' ) { ?>selected<?php } ?>>12 seconds</option>
          <option value="13000" <?php if ( $instance['slideshow_speed'] === '13000' ) { ?>selected<?php } ?>>13 seconds</option>
          <option value="14000" <?php if ( $instance['slideshow_speed'] === '14000' ) { ?>selected<?php } ?>>14 seconds</option>
          <option value="15000" <?php if ( $instance['slideshow_speed'] === '15000' ) { ?>selected<?php } ?>>15 seconds</option>
       </select>
      </p>



     <p>
       <label for="<?php echo esc_attr( $this->get_field_id('post_amount') ); ?>"><?php _e( 'Show this number of posts:' , 'meanthemes' ); ?></label><br />
       <input type="number" name="<?php echo esc_attr( $this->get_field_name('post_amount') ); ?>" id="<?php echo esc_attr( $this->get_field_id('post_amount') ); ?>" value="<?php if ( $instance['post_amount'] === '' ) { echo '3'; } else { echo esc_attr( $instance['post_amount'] ); } ?>" class="widefat" />
     </p>

     <?php
   }
 }

?>