start_controls_section( 'section_title', [ 'label' => __( 'Title Element', 'addonnest' ) ] ); $this->add_control( 'breaking_news_title', [ 'label' => __( 'Heading Title', 'addonnest' ), 'type' => \Elementor\Controls_Manager::TEXT, 'label_block' => true, 'placeholder' => __( 'Enter your title', 'addonnest' ), 'default' => __( 'Breaking News', 'addonnest' ), ] ); $this->add_control( 'post_number', [ 'label' => __( 'Number of Posts', 'addonnest' ), 'type' => \Elementor\Controls_Manager::NUMBER, 'label_block' => false, 'default' => __( '5', 'addonnest' ), ] ); $this->add_control( 'post_cat', [ 'label' => __( 'News Category', 'addonnest' ), 'type' => \Elementor\Controls_Manager::SELECT, 'options' => addonnest_all_category_list( 'category' ), 'multiple' => true, 'default' => 'allpost' ] ); $this->add_control( 'post_order_by', [ 'label' => __( 'Order', 'addonnest' ), 'type' => \Elementor\Controls_Manager::SELECT, 'default' => 'DESC', 'options' => [ 'DESC' => __( 'Descending', 'addonnest' ), 'ASC' => __( 'Ascending', 'addonnest' ), ], ] ); $this->end_controls_section(); # Title Section end 1 /** * Settings Section */ # Breaking news title $this->start_controls_section( 'news_settings_style', [ 'label' => __( 'Settings', 'addonnest' ), ] ); # Breaking news title text color $this->add_responsive_control( 'section_height_space', [ 'label' => esc_html__( 'Height', 'addonnest' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'default' => [ 'size' => 50, ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}} .breaking-news-ticker' => 'height: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .breaking-news-ticker .ticker' => 'height: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .breaking-news-ticker .ticker-heading' => 'height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'animation_speed', [ 'label' => esc_html__( 'Animation Speed', 'addonnest' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'default' => [ 'size' => 30, ], 'range' => [ 's' => [ 'min' => 1, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}} .breaking-news-ticker .ticker-content' => 'animation-duration: {{SIZE}}s;', ], ] ); # Breaking news headline text border radius color $this->add_responsive_control( 'news_border_radius', [ 'label' => esc_html__( 'Border Radius', 'addonnest' ), 'type' => \Elementor\Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .breaking-news-ticker' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); # Title Section end 1 /** * Heading Section */ # Breaking news title $this->start_controls_section( 'news_title_style', [ 'label' => __( 'Heading Section', 'addonnest' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, ] ); # Breaking news title text color $this->add_control( 'news_title_text_color', [ 'label' => __( 'Text Color', 'addonnest' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .breaking-news-ticker .ticker-heading' => 'color: {{VALUE}};', ], ] ); # Breaking news text background color $this->add_control( 'news_title_backgound_color', [ 'label' => __( 'Backgound Color', 'addonnest' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .breaking-news-ticker .ticker-heading' => 'background: {{VALUE}};', '{{WRAPPER}} .breaking-news-ticker .ticker-item a:hover' => 'color: {{VALUE}};', '{{WRAPPER}} .breaking-news-ticker .ticker-item:before' => 'background-color: {{VALUE}};', '{{WRAPPER}} .breaking-news-ticker .ticker-heading:before' => 'border-left-color: {{VALUE}};', ], ] ); # Breaking news text typography $this->add_group_control( \Elementor\Group_Control_Typography::get_type(), [ 'label' => __( 'Heading Typography', 'addonnest' ), 'name' => 'breaking_news_title_typography', 'selector' => '{{WRAPPER}} .breaking-news-ticker .ticker-heading', ] ); $this->end_controls_section(); /** * Title Section */ # Breaking news headline title $this->start_controls_section( 'news_headline_title_style', [ 'label' => __( 'Headline', 'addonnest' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, ] ); # Breaking news headline title text color $this->add_control( 'news_headline_title_text_color', [ 'label' => __( 'Text Color', 'addonnest' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .breaking-news-ticker .ticker-item' => 'color: {{VALUE}};', '{{WRAPPER}} .breaking-news-ticker .ticker-item a' => 'color: {{VALUE}};', ], ] ); # Breaking news headline title link hover color $this->add_control( 'news_headline_title_link_hover_color', [ 'label' => __( 'Link Hover Color', 'addonnest' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .breaking-news-ticker .ticker-item a:hover' => 'color: {{VALUE}};', ], ] ); # Breaking news headline text background color $this->add_control( 'news_headline_title_backgound_color', [ 'label' => __( 'Backgound Color', 'addonnest' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .breaking-news-ticker' => 'background: {{VALUE}};', ], ] ); # Breaking news headline text typography $this->add_group_control( \Elementor\Group_Control_Typography::get_type(), [ 'label' => __( 'Text Typography', 'addonnest' ), 'name' => 'breaking_news_headline_text_typography', 'selector' => '{{WRAPPER}} .breaking-news-ticker .ticker-item a', ] ); $this->add_responsive_control( 'media_title_space', [ 'label' => esc_html__( 'Title Gap', 'addonnest' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'default' => [ 'size' => 20, ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}} .breaking-news-ticker .ticker-item' => 'padding-left: {{SIZE}}{{UNIT}};', ], ] ); # Breaking news box shadow $this->add_group_control( \Elementor\Group_Control_Box_Shadow::get_type(), [ 'name' => 'box_shadow', 'label' => esc_html__( 'Box Shadow', 'addonnest' ), 'selector' => '{{WRAPPER}} .breaking-news-ticker', ] ); $this->end_controls_section(); } protected function render( ) { $settings = $this->get_settings(); $breaking_news_title = $settings['breaking_news_title']; $post_number = $settings['post_number']; $post_cat = $settings['post_cat']; $post_orderby = $settings['post_order_by']; $animation_speed = isset( $settings['animation_speed']['size'] ) ? $settings['animation_speed']['size'] : 30; # Query Build if( $post_cat == 'allpost' ){ $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => esc_attr($post_number), 'order' => esc_html($post_orderby), ); }else{ $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => esc_attr($post_number), 'order' => esc_html($post_orderby), //phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_tax_query 'tax_query' => array( array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => esc_attr($post_cat), ), ), ); } $data = new \WP_Query( $args ); ?>
have_posts()) : ?> have_posts()) : $data->the_post(); $permalink = get_permalink(); ?>
widgets_manager->register_widget_type( new AddonNest_Widget_Breaking_News() );