?? GreyFile — Mystic File Browser

Current path: home/webdevt/www/demo2/wp-content/themes/spacious/inc/widgets/



?? Go up: /home/webdevt/www/demo2/wp-content/themes/spacious/inc

?? Viewing: class-spacious-service-widget.php

<?php
/**
 * Featured service widget to show pages.
 */

class spacious_service_widget extends WP_Widget {
	function __construct() {
		$widget_ops  = array(
			'classname'                   => 'widget_service_block',
			'description'                 => __( 'Display some pages as services. Best for Business Top or Bottom sidebar.', 'spacious' ),
			'customize_selective_refresh' => true,
		);
		$control_ops = array(
			'width'  => 200,
			'height' => 250,
		);
		parent::__construct( false, $name = __( 'TG: Services', 'spacious' ), $widget_ops, $control_ops );
	}

	function form( $instance ) {
		for ( $i = 0; $i < 6; $i++ ) {
			$var              = 'page_id' . $i;
			$defaults[ $var ] = '';
		}
		$instance = wp_parse_args( (array) $instance, $defaults );
		for ( $i = 0; $i < 6; $i++ ) {
			$var = 'page_id' . $i;
			$var = absint( $instance[ $var ] );
		}
		?>
		<?php for ( $i = 0; $i < 6; $i++ ) { ?>
			<p>
				<label for="<?php echo $this->get_field_id( key( $defaults ) ); ?>"><?php _e( 'Page', 'spacious' ); ?>
					:</label>
				<?php
				wp_dropdown_pages(
					array(
						'show_option_none' => ' ',
						'name'             => $this->get_field_name( key( $defaults ) ),
						'selected'         => $instance[ key( $defaults ) ],
					)
				);
				?>
			</p>
			<?php
			next( $defaults );// forwards the key of $defaults array
		}
		$read_more_text = ! empty( $instance['read_more_text'] ) ? $instance['read_more_text'] : __( 'Read more', 'spacious' );
		?>
		<p>
			<label for="<?php echo $this->get_field_id( 'read_more_text' ); ?>"><?php _e( 'Read More Text:', 'spacious' ); ?></label>
			<input class="widefat" id="<?php echo $this->get_field_id( 'read_more_text' ); ?>" name="<?php echo $this->get_field_name( 'read_more_text' ); ?>" type="text" value="<?php echo esc_attr( $read_more_text ); ?>" />
		</p>
		<?php
	}

	function update( $new_instance, $old_instance ) {
		$instance = $old_instance;
		for ( $i = 0; $i < 6; $i++ ) {
			$var              = 'page_id' . $i;
			$instance[ $var ] = absint( $new_instance[ $var ] );
		}
		$instance['read_more_text'] = sanitize_text_field( $new_instance['read_more_text'] );

		return $instance;
	}

	function widget( $args, $instance ) {
		extract( $args );
		extract( $instance );

		global $post;
		$page_array     = array();
		$read_more_text = ! empty( $instance['read_more_text'] ) ? $instance['read_more_text'] : __( 'Read more', 'spacious' );
		for ( $i = 0; $i < 6; $i++ ) {
			$var     = 'page_id' . $i;
			$page_id = isset( $instance[ $var ] ) ? $instance[ $var ] : '';

			if ( ! empty( $page_id ) ) {
				array_push( $page_array, $page_id );
			}// Push the page id in the array
		}
		$get_featured_pages = new WP_Query(
			array(
				'posts_per_page' => - 1,
				'post_type'      => array( 'page' ),
				'post__in'       => $page_array,
				'orderby'        => 'post__in',
			)
		);
		echo $before_widget;
		?>
		<?php
		$j = 1;
		while ( $get_featured_pages->have_posts() ) :
			$get_featured_pages->the_post();
			$page_title = get_the_title();
			if ( $j % 2 == 1 && $j > 1 ) {
				$service_class = 'tg-one-third';
			} elseif ( $j % 3 == 1 && $j > 1 ) {
				$service_class = 'tg-one-third tg-after-three-blocks-clearfix';
			} else {
				$service_class = 'tg-one-third';
			}
			?>
			<div class="<?php echo $service_class; ?>">
				<?php
				if ( has_post_thumbnail() ) {
					$title_attribute = get_the_title( $post->ID );
					$thumb_id        = get_post_thumbnail_id( get_the_ID() );
					$img_altr        = get_post_meta( $thumb_id, '_wp_attachment_image_alt', true );
					$img_alt         = ! empty( $img_altr ) ? $img_altr : $title_attribute;
					echo '<div class="service-image">' . get_the_post_thumbnail(
						$post->ID,
						'featured',
						array(
							'title' => esc_attr( $title_attribute ),
							'alt'   => esc_attr( $img_alt ),
						)
					) . '</div>';
				}
				?>
				<?php echo $before_title; ?>
				<a title="<?php the_title_attribute(); ?>" href="<?php the_permalink(); ?>"><?php echo $page_title; ?></a><?php echo $after_title; ?>
				<?php the_excerpt(); ?>
				<div class="more-link-wrap">
					<a class="more-link" title="<?php the_title_attribute(); ?>" href="<?php the_permalink(); ?>"><?php echo esc_html( $read_more_text ); ?></a>
				</div>
			</div>
			<?php ++$j; ?>
			<?php
		endwhile;
		// Reset Post Data
		wp_reset_query();
		?>
		<?php
		echo $after_widget;
	}
}


??

??