<?php
/** Blog posts Elementor widget. */
defined( 'ABSPATH' ) || exit;

class Shabnam_Elementor_Blog extends Shabnam_Elementor_Widget_Base {
	public function get_name() { return 'shabnam-muchwow-blog'; }
	public function get_title() { return __( 'وبلاگ MuchWOW', 'shabnam-muchwow' ); }
	public function get_icon() { return 'eicon-posts-grid'; }

	protected function register_controls() {
		$this->start_controls_section( 'content', array( 'label' => __( 'محتوا', 'shabnam-muchwow' ) ) );
		$this->add_control( 'label', array( 'label' => __( 'برچسب بالای عنوان', 'shabnam-muchwow' ), 'type' => \Elementor\Controls_Manager::TEXT, 'default' => 'مجله' ) );
		$this->add_control( 'title', array( 'label' => __( 'عنوان', 'shabnam-muchwow' ), 'type' => \Elementor\Controls_Manager::TEXT, 'default' => 'از مجله بخوانید' ) );
		$this->add_control( 'subtitle', array( 'label' => __( 'توضیح کوتاه', 'shabnam-muchwow' ), 'type' => \Elementor\Controls_Manager::TEXTAREA, 'default' => 'تازه‌ترین مقاله‌ها، راهنماها و خبرهای سایت را دنبال کنید.' ) );
		$this->add_control( 'count', array( 'label' => __( 'تعداد نوشته‌ها', 'shabnam-muchwow' ), 'type' => \Elementor\Controls_Manager::NUMBER, 'min' => 2, 'max' => 12, 'step' => 1, 'default' => 3 ) );
		$this->add_control( 'columns', array( 'label' => __( 'تعداد ستون‌ها', 'shabnam-muchwow' ), 'type' => \Elementor\Controls_Manager::SELECT, 'default' => '3', 'options' => array( '1' => '۱', '2' => '۲', '3' => '۳', '4' => '۴' ) ) );
		$this->add_control( 'button_text', array( 'label' => __( 'متن دکمه', 'shabnam-muchwow' ), 'type' => \Elementor\Controls_Manager::TEXT, 'default' => 'مشاهده همه نوشته‌ها' ) );
		$this->shabnam_add_url_control( 'button_url', __( 'لینک دکمه', 'shabnam-muchwow' ), function_exists( 'shabnam_blog_url' ) ? shabnam_blog_url() : home_url( '/' ) );
		$this->end_controls_section();
		$this->shabnam_register_common_style_controls();
	}

	protected function render() {
		$s     = $this->get_settings_for_display();
		$count   = max( 2, min( 12, absint( $s['count'] ) ) );
		$columns = max( 1, min( 4, absint( $s['columns'] ) ) );
		$query   = function_exists( 'shabnam_home_blog_query' ) ? shabnam_home_blog_query( array( 'posts_per_page' => $count, 'shabnam_home_blog_count' => $count ) ) : new WP_Query( array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => $count, 'no_found_rows' => true ) );
		if ( ! $query->have_posts() ) {
			$is_editor = function_exists( 'shabnam_elementor_is_editor_request' ) && shabnam_elementor_is_editor_request();
			if ( $is_editor && current_user_can( 'edit_posts' ) ) {
				$counts = wp_count_posts( 'post' );
				$drafts = isset( $counts->draft ) ? (int) $counts->draft : 0;
				if ( $drafts > 0 ) {
					echo '<div class="shabnam-section-card shabnam-blog-editor-notice p-4"><strong>' . esc_html__( 'نوشته‌های شما پیش‌نویس هستند.', 'shabnam-muchwow' ) . '</strong><p>' . esc_html( sprintf( __( '%d نوشته پیش‌نویس پیدا شد. پیش‌نویس‌ها در سایت عمومی نمایش داده نمی‌شوند؛ آن‌ها را منتشر کنید تا کارت‌های وبلاگ در صفحه اصلی ظاهر شوند.', 'shabnam-muchwow' ), $drafts ) ) . '</p></div>';
				} else {
					echo '<div class="shabnam-section-card shabnam-blog-editor-notice p-4">' . esc_html__( 'نوشته منتشرشده‌ای پیدا نشد. وضعیت نوشته‌ها و تنظیم دسته‌بندی وبلاگ را بررسی کنید.', 'shabnam-muchwow' ) . '</div>';
				}
			}
			return;
		}
		foreach ( array( 'label', 'title', 'subtitle', 'button_text' ) as $key ) { $this->add_inline_editing_attributes( $key, 'none' ); }
		$this->add_link_attributes( 'button_url', $s['button_url'] );
		?>
		<section class="shabnam-home-blog section panel overflow-hidden shabnam-elementor-section" id="blog"><div class="section-outer panel py-6 sm:py-8 lg:py-9 xl:py-10"><div class="container sm:max-w-md xl:max-w-lg">
		<div class="section-header panel sm:max-w-800px mx-auto mb-5 sm:mb-7 text-center"><div class="category"><div class="-rotate-2"><span class="fs-5 xl:fs-4 text-secondary fw-bold" <?php echo $this->get_render_attribute_string( 'label' ); ?>><?php echo esc_html( $s['label'] ); ?></span></div></div><h2 class="h4 sm:h3 xl:h2 mb-0 mt-2 text-white" <?php echo $this->get_render_attribute_string( 'title' ); ?>><?php echo esc_html( $s['title'] ); ?></h2><?php if ( $s['subtitle'] ) : ?><p class="fs-5 mt-2 text-white text-opacity-70" <?php echo $this->get_render_attribute_string( 'subtitle' ); ?>><?php echo esc_html( $s['subtitle'] ); ?></p><?php endif; ?></div>
		<div class="shabnam-blog-grid" style="--shcd-blog-columns:<?php echo esc_attr( $columns ); ?>"><?php while ( $query->have_posts() ) : $query->the_post(); get_template_part( 'template-parts/content', 'card' ); endwhile; ?></div>
		<div class="section-footer panel d-flex justify-center mt-5 sm:mt-6"><a class="btn btn-md sm:btn-xl px-4 border border-3 border-black bg-gradient-45n from-secondary to-tertiary contrast-shadow -rotate-2 hover:rotate-0" <?php echo $this->get_render_attribute_string( 'button_url' ); ?>><span class="text-black" <?php echo $this->get_render_attribute_string( 'button_text' ); ?>><?php echo esc_html( $s['button_text'] ); ?></span></a></div>
		</div></div></section>
		<?php
		wp_reset_postdata();
	}
}
