Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
start_controls_section(
'section_layout',
[
'label' => esc_html__( 'Layout', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_CONTENT,
]
);
$this->add_control(
'element_list',
[
'label' => esc_html__( 'Style', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'default' => '1',
'options' => [
'1' => esc_html__( 'One', 'animation-addons-for-elementor' ),
'2' => esc_html__( 'Two', 'animation-addons-for-elementor' ),
'3' => esc_html__( 'Three', 'animation-addons-for-elementor' ),
'4' => esc_html__( 'Four', 'animation-addons-for-elementor' ),
'5' => esc_html__( 'Five', 'animation-addons-for-elementor' ),
'6' => esc_html__( 'Six', 'animation-addons-for-elementor' ),
],
]
);
$this->add_responsive_control(
'columns',
[
'label' => esc_html__( 'Columns', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'render_type' => 'template',
'default' => '3',
'tablet_default' => '2',
'mobile_default' => '1',
'options' => [
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4',
'5' => '5',
'6' => '6',
],
'selectors' => [
'{{WRAPPER}} .wcf-posts' => 'grid-template-columns: repeat({{VALUE}}, 1fr);',
],
]
);
$this->add_control(
'posts_per_page',
[
'label' => esc_html__( 'Posts Per Page', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::NUMBER,
'default' => 6,
]
);
$this->add_group_control(
Group_Control_Image_Size::get_type(),
[
'name' => 'thumbnail_size',
'exclude' => [ 'custom' ],
'default' => 'medium',
'prefix_class' => 'elementor-portfolio--thumbnail-size-',
]
);
$this->add_control(
'show_title',
[
'label' => esc_html__( 'Show Title', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'default' => 'yes',
'label_off' => esc_html__( 'Off', 'animation-addons-for-elementor' ),
'label_on' => esc_html__( 'On', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'title_length',
[
'label' => esc_html__( 'Title Length (words)', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::NUMBER,
'min' => 5,
'max' => 100,
'condition' => [
'show_title' => 'yes',
],
]
);
$this->add_control(
'title_length_line',
[
'label' => esc_html__( 'Title Length (lines)', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::NUMBER,
'min' => 1,
'max' => 5,
'condition' => [
'show_title' => 'yes',
],
'selectors' => [
'{{WRAPPER}} .wcf-posts .title a' => '-webkit-line-clamp: {{VALUE}}; white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden;',
],
]
);
$this->add_control(
'title_tag',
[
'label' => esc_html__( 'Title HTML Tag', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'options' => [
'h1' => 'H1',
'h2' => 'H2',
'h3' => 'H3',
'h4' => 'H4',
'h5' => 'H5',
'h6' => 'H6',
'div' => 'div',
'span' => 'span',
'p' => 'p',
],
'default' => 'h3',
'condition' => [
'show_title' => 'yes',
],
]
);
$this->add_control(
'show_highlited_title',
[
'label' => esc_html__( 'Highlited Title', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => esc_html__( 'Show', 'animation-addons-for-elementor' ),
'label_off' => esc_html__( 'Hide', 'animation-addons-for-elementor' ),
'default' => 'yes',
]
);
$this->add_control(
'highlight_title_length',
[
'label' => esc_html__( 'Title Length', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::NUMBER,
'min' => 1,
'max' => 100,
'condition' => [
'show_highlited_title' => 'yes',
],
]
);
$this->add_control(
'show_excerpt',
[
'label' => esc_html__( 'Show Excerpt', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => esc_html__( 'Show', 'animation-addons-for-elementor' ),
'label_off' => esc_html__( 'Hide', 'animation-addons-for-elementor' ),
'default' => 'yes',
]
);
$this->add_control(
'excerpt_length',
[
'label' => esc_html__( 'Excerpt Length', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::NUMBER,
'min' => 5,
'max' => 100,
'default' => 30,
'condition' => [
'show_excerpt' => 'yes',
],
]
);
$this->add_control(
'show_date',
[
'label' => esc_html__( 'Show Date', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => esc_html__( 'Show', 'animation-addons-for-elementor' ),
'label_off' => esc_html__( 'Hide', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'show_comment',
[
'label' => esc_html__( 'Show Comment', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => esc_html__( 'Show', 'animation-addons-for-elementor' ),
'label_off' => esc_html__( 'Hide', 'animation-addons-for-elementor' ),
'default' => 'yes',
]
);
$this->add_control(
'show_author',
[
'label' => esc_html__( 'Show Author', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => esc_html__( 'Show', 'animation-addons-for-elementor' ),
'label_off' => esc_html__( 'Hide', 'animation-addons-for-elementor' ),
'default' => 'yes',
]
);
$this->add_control(
'show_taxonomy',
[
'label' => esc_html__( 'Show Taxonomy', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => esc_html__( 'Show', 'animation-addons-for-elementor' ),
'label_off' => esc_html__( 'Hide', 'animation-addons-for-elementor' ),
'default' => 'yes',
]
);
$this->add_control(
'post_thumb_icon',
[
'label' => esc_html__( 'Default Icon', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::ICONS,
'fa4compatibility' => 'icon',
'skin' => 'inline',
'label_block' => false,
'condition' => [
'element_list' => '6',
],
]
);
$this->add_control(
'video_selected_icon',
[
'label' => esc_html__( 'Video Icon', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::ICONS,
'fa4compatibility' => 'icon',
'skin' => 'inline',
'label_block' => false,
'condition' => [
'element_list' => '6',
],
]
);
$this->add_control(
'post_audio_icon',
[
'label' => esc_html__( 'Audio Icon', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::ICONS,
'fa4compatibility' => 'icon',
'skin' => 'inline',
'label_block' => false,
'condition' => [
'element_list' => '6',
],
]
);
$this->add_control(
'post_gallery_icon',
[
'label' => esc_html__( 'Gallery Icon', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::ICONS,
'fa4compatibility' => 'icon',
'skin' => 'inline',
'label_block' => false,
'condition' => [
'element_list' => '6',
],
]
);
$this->add_control(
'post_taxonomy',
[
'label' => esc_html__( 'Taxonomy', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SELECT2,
'label_block' => true,
'default' => 'category',
'options' => $this->get_taxonomies(),
'condition' => [
'show_taxonomy' => 'yes',
],
]
);
$this->add_control(
'show_read_more',
[
'label' => esc_html__( 'Read More', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'label_on' => esc_html__( 'Show', 'animation-addons-for-elementor' ),
'label_off' => esc_html__( 'Hide', 'animation-addons-for-elementor' ),
'default' => 'yes',
'separator' => 'before',
]
);
$this->add_control(
'read_more_text',
[
'label' => esc_html__( 'Read More Text', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'default' => esc_html__( 'Read More', 'animation-addons-for-elementor' ),
'condition' => [ 'show_read_more' => 'yes' ],
]
);
$this->add_control(
'selected_icon',
[
'label' => esc_html__( 'Icon', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::ICONS,
'fa4compatibility' => 'icon',
'skin' => 'inline',
'label_block' => false,
'condition' => [ 'show_read_more' => 'yes' ],
]
);
$this->add_control(
'icon_align',
[
'label' => esc_html__( 'Icon Position', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'default' => 'left',
'options' => [
'left' => esc_html__( 'Before', 'animation-addons-for-elementor' ),
'right' => esc_html__( 'After', 'animation-addons-for-elementor' ),
],
'condition' => [ 'show_read_more' => 'yes' ],
]
);
$this->add_control(
'icon_indend',
[
'label' => esc_html__( 'Icon Spacing', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .link' => 'gap: {{SIZE}}{{UNIT}};',
],
'condition' => [ 'show_read_more' => 'yes' ],
]
);
$this->end_controls_section();
//query
$this->register_query_controls();
//layout style
$this->register_design_layout_controls();
//Thumbnail style
$this->start_controls_section(
'section_style_post_image',
[
'label' => esc_html__( 'Thumbnail', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_responsive_control(
'thumb_width',
[
'label' => esc_html__( 'Width', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', '%', 'em', 'rem', 'vh', 'custom' ],
'range' => [
'px' => [
'min' => 1,
'max' => 1000,
],
'vh' => [
'min' => 1,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .thumb img' => 'width: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'thumb_height',
[
'label' => esc_html__( 'Height', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', '%', 'em', 'rem', 'vh', 'custom' ],
'range' => [
'px' => [
'min' => 1,
'max' => 500,
],
'vh' => [
'min' => 1,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .thumb img' => 'height: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'thumb_icon_color',
[
'label' => esc_html__( 'Icon Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} .thumb_icon' => 'color: {{VALUE}}; fill: {{VALUE}};',
],
'condition' => [
'element_list' => '6',
],
]
);
$this->add_responsive_control(
'thumb_icon_size',
[
'label' => esc_html__( 'Icon Size', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', '%', 'em', 'rem', 'vw', 'custom' ],
'range' => [
'px' => [
'min' => 6,
'max' => 300,
],
],
'selectors' => [
'{{WRAPPER}} .thumb_icon' => 'font-size: {{SIZE}}{{UNIT}};',
],
'condition' => [
'element_list' => '6',
],
]
);
$this->end_controls_section();
// Content style
$this->start_controls_section(
'section_style_post_content',
[
'label' => esc_html__( 'Content', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_group_control(
Group_Control_Background::get_type(),
[
'name' => 'content_background',
'types' => [ 'classic', 'gradient' ],
'exclude' => [ 'image' ],
'selector' => '{{WRAPPER}} .content',
'separator' => 'before',
]
);
$this->add_responsive_control(
'content_padding',
[
'label' => esc_html__( 'Padding', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%', 'em', 'rem', 'vw', 'custom' ],
'selectors' => [
'{{WRAPPER}} .content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'content_bg_even_heading',
[
'label' => esc_html__( 'Background for Even Items', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$this->add_group_control(
Group_Control_Background::get_type(),
[
'name' => 'content_bg_even',
'types' => [ 'classic', 'gradient' ],
'exclude' => [ 'image' ],
'selector' => '{{WRAPPER}} .wcf-post:nth-child(even) .content',
'label' => ''
]
);
$this->end_controls_section();
//Tile
$this->start_controls_section(
'section_style_post_title',
[
'label' => esc_html__( 'Title', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'show_title' => 'yes',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'title_typography',
'label' => esc_html__( 'Title Typography', 'animation-addons-for-elementor' ),
'selector' => '{{WRAPPER}} .title, {{WRAPPER}} .title a',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'highlited_title_typography',
'label' => esc_html__( 'Highlight Title', 'animation-addons-for-elementor' ),
'selector' => '{{WRAPPER}} .title span.highlight',
]
);
$this->add_responsive_control(
'title_padding',
[
'label' => esc_html__( 'Padding', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'selectors' => [
'{{WRAPPER}} .title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'title_border',
'selector' => '{{WRAPPER}} .title',
]
);
$this->start_controls_tabs( 'tabs_title_style' );
$this->start_controls_tab(
'tab_title_normal',
[
'label' => esc_html__( 'Normal', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'title_color',
[
'label' => esc_html__( 'Title Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .title, {{WRAPPER}} .title a' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'highlited_title_color',
[
'label' => esc_html__( 'Highlited Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .title span.highlight' => 'color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_tile_hover',
[
'label' => esc_html__( 'Hover', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'title_color_hover',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .title:hover, {{WRAPPER}} .title a:hover, {{WRAPPER}} .title span.highlight:hover' => 'color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_responsive_control(
'title_spacing',
[
'label' => esc_html__( 'Spacing', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'range' => [
'px' => [
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
]
);
$this->end_controls_section();
//Excerpt
$this->start_controls_section(
'section_style_post_excerpt',
[
'label' => esc_html__( 'Excerpt', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'show_excerpt' => 'yes',
],
]
);
$this->add_control(
'excerpt_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .desc, {{WRAPPER}} .desc p' => 'color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'excerpt_typography',
'selector' => '{{WRAPPER}} .desc, {{WRAPPER}} .desc p',
]
);
$this->add_responsive_control(
'excerpt_spacing',
[
'label' => esc_html__( 'Spacing', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'range' => [
'px' => [
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .desc' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
]
);
$this->end_controls_section();
//Taxonomy
$this->start_controls_section(
'section_style_post_taxonomy',
[
'label' => esc_html__( 'Taxonomy', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'show_taxonomy' => 'yes',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'taxonomy_typography',
'selector' => '{{WRAPPER}} .wcf-taxonomy a',
]
);
$this->add_responsive_control(
'taxonomy_padding',
[
'label' => esc_html__( 'Padding', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'selectors' => [
'{{WRAPPER}} .wcf-taxonomy a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->start_controls_tabs(
'taxonomy_style_tabs'
);
$this->start_controls_tab(
'taxonomy_normal_tab',
[
'label' => esc_html__( 'Normal', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'taxonomy_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-taxonomy a' => 'color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Background::get_type(),
[
'name' => 'taxonomy_bg',
'types' => [ 'classic', 'gradient' ],
'selector' => '{{WRAPPER}} .wcf-taxonomy a',
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'taxonomy_hover_tab',
[
'label' => esc_html__( 'Hover', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'taxonomy_h_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-taxonomy a:hover' => 'color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Background::get_type(),
[
'name' => 'taxonomy_h_bg',
'types' => [ 'classic', 'gradient' ],
'selector' => '{{WRAPPER}} .wcf-taxonomy a:hover',
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_control(
'taxonomy_border',
[
'label' => esc_html__( 'Border', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'default' => '',
'options' => [
'' => esc_html__( 'Show', 'animation-addons-for-elementor' ),
'0' => esc_html__( 'Hide', 'animation-addons-for-elementor' ),
],
'selectors' => [
'{{WRAPPER}} .wcf-taxonomy::before' => 'width: {{VALUE}};',
],
'condition' => [
'element_list' => [ '2', '5' ],
],
]
);
$this->add_control(
'tax_border_color',
[
'label' => esc_html__( 'Border Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-taxonomy::before' => 'background-color: {{VALUE}};',
],
'condition' => [
'element_list' => [ '2', '5' ],
'taxonomy_border!' => '0',
],
]
);
$this->add_responsive_control(
'taxonomy_spacing',
[
'label' => esc_html__( 'Spacing', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'range' => [
'px' => [
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .wcf-taxonomy' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
]
);
$this->end_controls_section();
//Meta
$this->start_controls_section(
'section_style_post_meta',
[
'label' => esc_html__( 'Meta', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_control(
'view_meta_icon',
[
'label' => esc_html__( 'View Icon', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::ICONS,
'skin' => 'inline',
'label_block' => false,
'default' => [
'value' => 'far fa-flag',
'library' => 'fa-regular',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'meta_typography',
'selector' => '{{WRAPPER}} .wcf-meta a, {{WRAPPER}} .wcf-meta span, {{WRAPPER}} .author_views a, {{WRAPPER}} .author_views span.posts_views',
]
);
$this->add_responsive_control(
'meta_padding',
[
'label' => esc_html__( 'Padding', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'selectors' => [
'{{WRAPPER}} .wcf-meta a, {{WRAPPER}} .wcf-meta span, {{WRAPPER}} .author_views a, {{WRAPPER}} .author_views span.posts_views' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->start_controls_tabs(
'meta_style_tabs'
);
$this->start_controls_tab(
'meta_normal_tab',
[
'label' => esc_html__( 'Normal', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'meta_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-meta a, {{WRAPPER}} .wcf-meta span, {{WRAPPER}} .author_views a, {{WRAPPER}} .author_views span.posts_views' => 'color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Background::get_type(),
[
'name' => 'meta_bg',
'types' => [ 'classic', 'gradient' ],
'selector' => '{{WRAPPER}} .wcf-meta a, {{WRAPPER}} .wcf-meta span, {{WRAPPER}} .author_views a, {{WRAPPER}} .author_views span.posts_views',
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'meta_hover_tab',
[
'label' => esc_html__( 'Hover', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'meta_h_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-meta a:hover' => 'color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Background::get_type(),
[
'name' => 'meta_h_bg',
'types' => [ 'classic', 'gradient' ],
'selector' => '{{WRAPPER}} .wcf-meta a:hover',
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_control(
'meta_border',
[
'label' => esc_html__( 'Border', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'default' => '',
'options' => [
'' => esc_html__( 'Show', 'animation-addons-for-elementor' ),
'0' => esc_html__( 'Hide', 'animation-addons-for-elementor' ),
],
'selectors' => [
'{{WRAPPER}} .wcf-meta::before' => 'width: {{VALUE}};',
],
'condition' => [
'element_list' => [ '2', '5' ],
],
]
);
$this->add_control(
'meta_border_color',
[
'label' => esc_html__( 'Border Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-meta::before' => 'background-color: {{VALUE}};',
],
'condition' => [
'element_list' => [ '2', '5' ],
'meta_border!' => '0',
],
]
);
$this->add_responsive_control(
'meta_spacing',
[
'label' => esc_html__( 'Spacing', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'range' => [
'px' => [
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .wcf-meta' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
]
);
$this->end_controls_section();
// Date style
$this->start_controls_section(
'section_style_post_dates',
[
'label' => esc_html__( 'Date Style', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'element_list' => '6',
],
]
);
$this->add_responsive_control(
'date_width',
[
'label' => esc_html__( 'Width', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', '%', 'em', 'rem', 'vw', 'custom' ],
'range' => [
'px' => [
'min' => 0,
'max' => 1000,
],
'%' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .post_video_date' => 'flex: 0 0 {{SIZE}}{{UNIT}}',
],
]
);
$this->add_responsive_control(
'content_date_padding',
[
'label' => esc_html__( 'Padding', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%', 'em', 'rem', 'vw', 'custom' ],
'selectors' => [
'{{WRAPPER}} .post_video_date .wcf-meta_video' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'day_color',
[
'label' => esc_html__( 'Day Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} span.meta_day' => 'color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'day_typography',
'selector' => '{{WRAPPER}} span.meta_day',
]
);
$this->add_responsive_control(
'name_space',
[
'label' => esc_html__( 'Spacing', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', '%', 'em', 'rem', 'vw', 'custom' ],
'default' => [
'size' => 5,
],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .wcf-meta_video span.meta_day' => 'margin-bottom: {{SIZE}}{{UNIT}}',
],
]
);
$this->add_control(
'day_number_color',
[
'label' => esc_html__( 'Day Color ( Number )', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} span.meta_year' => 'color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'day_number_typography',
'selector' => '{{WRAPPER}} span.meta_year',
]
);
$this->add_responsive_control(
'number_space',
[
'label' => esc_html__( 'Spacing', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', '%', 'em', 'rem', 'vw', 'custom' ],
'default' => [
'size' => 5,
],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .wcf-meta_video span.meta_year' => 'margin-bottom: {{SIZE}}{{UNIT}}',
],
]
);
$this->add_control(
'day_month_color',
[
'label' => esc_html__( 'Month Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} span.meta_month' => 'color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'day_month_typography',
'selector' => '{{WRAPPER}} span.meta_month',
]
);
$this->end_controls_section();
//Author
$this->start_controls_section(
'section_style_post_author',
[
'label' => esc_html__( 'Author', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [ 'element_list' => '4' ]
]
);
$this->add_control(
'author_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .author .author-bio p' => 'color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'author_typography',
'selector' => '{{WRAPPER}} .author .author-bio p',
]
);
$this->add_responsive_control(
'author_spacing',
[
'label' => esc_html__( 'Spacing', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'range' => [
'px' => [
'max' => 300,
],
],
'selectors' => [
'{{WRAPPER}} .author' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'author_name_color',
[
'label' => esc_html__( 'Name Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'separator' => 'before',
'selectors' => [
'{{WRAPPER}} .author .author-bio a' => 'color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'author_name_typography',
'label' => esc_html__( 'Name Typography', 'animation-addons-for-elementor' ),
'selector' => '{{WRAPPER}} .author .author-bio a',
'condition' => [ 'element_list' => '4' ]
]
);
$this->end_controls_section();
//Read More
$this->start_controls_section(
'style_post_read_more',
[
'label' => esc_html__( 'Read More', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'show_read_more' => 'yes',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'read_more_typography',
'selector' => '{{WRAPPER}} .link',
]
);
$this->add_responsive_control(
'read_more_icon_size',
[
'label' => esc_html__( 'Icon Size', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', '%' ],
'range' => [
'px' => [
'min' => 1,
'max' => 100,
'step' => 1,
],
'%' => [
'min' => 1,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .link i' => 'font-size: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .link svg' => 'font-size: {{SIZE}}{{UNIT}};',
],
]
);
$this->start_controls_tabs(
'tabs_read_more_style',
);
$this->start_controls_tab(
'tab_read_more_normal',
[
'label' => esc_html__( 'Normal', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'read_more_color',
[
'label' => esc_html__( 'Text Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} .link' => 'color: {{VALUE}};',
'{{WRAPPER}} .link svg' => 'fill: {{VALUE}};',
'{{WRAPPER}} .link:after' => 'background-color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Background::get_type(),
[
'name' => 'read_more_background',
'types' => [ 'classic', 'gradient' ],
'exclude' => [ 'image' ],
'selector' => '{{WRAPPER}} .link',
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_read-more_hover',
[
'label' => esc_html__( 'Hover', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'read_more_text_hover_color',
[
'label' => esc_html__( 'Text Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .link:hover' => 'color: {{VALUE}};',
'{{WRAPPER}} .link:hover svg' => 'fill: {{VALUE}};',
'{{WRAPPER}} .link:hover:after' => 'background-color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Background::get_type(),
[
'name' => 'read_more_hover_background',
'types' => [ 'classic', 'gradient' ],
'exclude' => [ 'image' ],
'selector' => '{{WRAPPER}} .link:hover',
]
);
$this->add_control(
'read_more_hover_border_color',
[
'label' => esc_html__( 'Border Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .link:hover' => 'border-color: {{VALUE}};',
],
'condition' => [
'read_more_border_border!' => '',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'read_more_border',
'selector' => '{{WRAPPER}} .link',
'separator' => 'before',
]
);
$this->add_responsive_control(
'read_more_border_radius',
[
'label' => esc_html__( 'Border Radius', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
'selectors' => [
'{{WRAPPER}} .link' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'read_more_padding',
[
'label' => esc_html__( 'Padding', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%', 'em', 'rem', 'vw', 'custom' ],
'selectors' => [
'{{WRAPPER}} .link' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'read_more_shadow',
'selector' => '{{WRAPPER}} .link',
]
);
$this->add_control(
'read_more_line',
[
'label' => esc_html__( 'Animated Border', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'default' => '',
'options' => [
'' => esc_html__( 'Show', 'animation-addons-for-elementor' ),
'0' => esc_html__( 'Hide', 'animation-addons-for-elementor' ),
],
'selectors' => [
'{{WRAPPER}} .link:after' => 'width: {{VALUE}};',
],
]
);
$this->add_responsive_control(
'read_more_spacing',
[
'label' => esc_html__( 'Spacing', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'range' => [
'px' => [
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .link' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
]
);
$this->end_controls_section();
//pagination
$this->register_pagination_section_controls();
//hover color
$this->start_controls_section(
'section_style_hover_post_content',
[
'label' => esc_html__( 'Hover', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
//tile
$this->add_control(
'heading_title_hover_style',
[
'label' => esc_html__( 'Title', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
'condition' => [
'show_title' => 'yes',
],
]
);
$this->add_control(
'title_hover_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-post:hover .title, {{WRAPPER}} .wcf-post:hover .title a' => 'color: {{VALUE}};',
],
'condition' => [
'show_title' => 'yes',
],
]
);
//excerpt
$this->add_control(
'heading_excerpt_hover_style',
[
'label' => esc_html__( 'Excerpt', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'show_excerpt' => 'yes',
],
]
);
$this->add_control(
'excerpt_hover_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-post:hover .desc, {{WRAPPER}} .wcf-post:hover .desc p' => 'color: {{VALUE}};',
],
'condition' => [
'show_excerpt' => 'yes',
],
]
);
//taxonomy
$this->add_control(
'heading_taxonomy_hover_style',
[
'label' => esc_html__( 'Taxonomy', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'show_taxonomy' => 'yes',
],
]
);
$this->add_control(
'taxonomy_hover_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-post:hover .wcf-taxonomy a' => 'color: {{VALUE}};',
],
'condition' => [
'show_taxonomy' => 'yes',
],
]
);
//meta
$this->add_control(
'heading_meta_hover_style',
[
'label' => esc_html__( 'Meta', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$this->add_control(
'meta_hover_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-post:hover .wcf-meta a, {{WRAPPER}} .wcf-post:hover .wcf-meta span' => 'color: {{VALUE}};',
],
]
);
//author
$this->add_control(
'heading_author_hover_style',
[
'label' => esc_html__( 'Author', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [ 'element_list' => '4' ]
]
);
$this->add_control(
'author_hover_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-post:hover .author .author-bio p' => 'color: {{VALUE}};',
],
'condition' => [ 'element_list' => '4' ]
]
);
$this->add_control(
'author_name_hover_color',
[
'label' => esc_html__( 'Name Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'separator' => 'before',
'selectors' => [
'{{WRAPPER}} .wcf-post:hover .author .author-bio a' => 'color: {{VALUE}};',
],
'condition' => [ 'element_list' => '4' ]
]
);
//read more
$this->add_control(
'heading_read_more_hover_style',
[
'label' => esc_html__( 'Read More', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'show_read_more' => 'yes',
],
]
);
$this->add_control(
'read_more_hover_text_color',
[
'label' => esc_html__( 'Text Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-post:hover .link' => 'color: {{VALUE}};',
'{{WRAPPER}} .wcf-post:hover .link svg' => 'fill: {{VALUE}};',
'{{WRAPPER}} .wcf-post:hover .link:after' => 'background-color: {{VALUE}};',
],
'condition' => [
'show_read_more' => 'yes',
],
]
);
$this->add_group_control(
Group_Control_Background::get_type(),
[
'name' => 'read_more_hover_link_background',
'types' => [ 'classic', 'gradient' ],
'exclude' => [ 'image' ],
'selector' => '{{WRAPPER}} .wcf-post:hover .link',
'condition' => [
'show_read_more' => 'yes',
],
]
);
$this->add_control(
'read_more_hover_link_border_color',
[
'label' => esc_html__( 'Border Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wcf-post:hover .link' => 'border-color: {{VALUE}};',
],
'condition' => [
'read_more_border_border!' => '',
'show_read_more' => 'yes',
],
]
);
$this->end_controls_section();
}
protected function register_design_layout_controls() {
$this->start_controls_section(
'section_design_layout',
[
'label' => esc_html__( 'Layout', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_responsive_control(
'column_gap',
[
'label' => esc_html__( 'Columns Gap', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'default' => [
'size' => 30,
],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .wcf-posts' => 'column-gap: {{SIZE}}{{UNIT}}',
'{{WRAPPER}} .wcf__posts.style-6 .wcf-post' => 'column-gap: {{SIZE}}{{UNIT}}',
],
]
);
$this->add_responsive_control(
'row_gap',
[
'label' => esc_html__( 'Rows Gap', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'default' => [
'size' => 35,
],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .wcf-posts' => 'row-gap: {{SIZE}}{{UNIT}}',
],
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'post_border',
'separator' => 'before',
'selector' => '{{WRAPPER}} .wcf-post',
]
);
$this->add_responsive_control(
'post_padding',
[
'label' => esc_html__( 'Padding', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
'selectors' => [
'{{WRAPPER}} .wcf-post' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
//hover effect
$this->add_control(
'el_hover_effects',
[
'label' => esc_html__( 'Hover Effect', 'animation-addons-for-elementor' ),
'description' => esc_html__( 'This effect will work only on image tags.', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'default' => 'effect-zoom-in',
'options' => [
'' => esc_html__( 'None', 'animation-addons-for-elementor' ),
'effect-zoom-in' => esc_html__( 'Zoom In', 'animation-addons-for-elementor' ),
'effect-zoom-out' => esc_html__( 'Zoom Out', 'animation-addons-for-elementor' ),
'left-move' => esc_html__( 'Left Move', 'animation-addons-for-elementor' ),
'right-move' => esc_html__( 'Right Move', 'animation-addons-for-elementor' ),
],
'prefix_class' => 'wcf--image-',
]
);
$this->add_control(
'alignment',
[
'label' => esc_html__( 'Alignment', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::CHOOSE,
'options' => [
'start' => [
'title' => esc_html__( 'Left', 'animation-addons-for-elementor' ),
'icon' => 'eicon-text-align-left',
],
'center' => [
'title' => esc_html__( 'Center', 'animation-addons-for-elementor' ),
'icon' => 'eicon-text-align-center',
],
'end' => [
'title' => esc_html__( 'Right', 'animation-addons-for-elementor' ),
'icon' => 'eicon-text-align-right',
],
],
'selectors' => [
'{{WRAPPER}} .wcf-post' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .content' => 'align-items: {{VALUE}};',
'{{WRAPPER}} .wcf-taxonomy, {{WRAPPER}} .wcf-meta' => 'justify-content: {{VALUE}};',
],
]
);
$this->end_controls_section();
}
public function register_pagination_section_controls() {
$this->start_controls_section(
'section_pagination',
[
'label' => esc_html__( 'Pagination', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'pagination_type',
[
'label' => esc_html__( 'Pagination', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'default' => '',
'options' => [
'' => esc_html__( 'None', 'animation-addons-for-elementor' ),
'numbers_and_prev_next' => esc_html__( 'Numbers', 'animation-addons-for-elementor' ) . ' + ' . esc_html__( 'Previous/Next', 'animation-addons-for-elementor' ),
],
]
);
$this->add_control(
'pagination_list',
[
'label' => esc_html__( 'Style', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'default' => '1',
'options' => [
'1' => esc_html__( 'One', 'animation-addons-for-elementor' ),
'2' => esc_html__( 'Two', 'animation-addons-for-elementor' ),
],
'condition' => [
'pagination_type' => 'numbers_and_prev_next',
],
]
);
$this->add_control(
'pagination_page_limit',
[
'label' => esc_html__( 'Page Limit', 'animation-addons-for-elementor' ),
'default' => '5',
'condition' => [
'pagination_type' => 'numbers_and_prev_next',
],
]
);
$this->add_control(
'pagination_numbers_shorten',
[
'label' => esc_html__( 'Shorten', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'default' => '',
'condition' => [
'pagination_type' => 'numbers_and_prev_next',
],
]
);
$this->add_control(
'navigation_previous_icon',
[
'label' => esc_html__( 'Previous Arrow Icon', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::ICONS,
'fa4compatibility' => 'icon',
'skin' => 'inline',
'label_block' => false,
'skin_settings' => [
'inline' => [
'none' => [
'label' => 'Default',
'icon' => 'eicon-chevron-left',
],
'icon' => [
'icon' => 'eicon-star',
],
],
],
'recommended' => [
'fa-regular' => [
'arrow-alt-circle-left',
'caret-square-left',
],
'fa-solid' => [
'angle-double-left',
'angle-left',
'arrow-alt-circle-left',
'arrow-circle-left',
'arrow-left',
'caret-left',
'caret-square-left',
'chevron-circle-left',
'chevron-left',
'long-arrow-alt-left',
],
],
'condition' => [
'pagination_type' => [
'numbers',
'numbers_and_prev_next',
],
],
]
);
$this->add_control(
'navigation_next_icon',
[
'label' => esc_html__( 'Next Arrow Icon', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::ICONS,
'fa4compatibility' => 'icon',
'skin' => 'inline',
'label_block' => false,
'skin_settings' => [
'inline' => [
'none' => [
'label' => 'Default',
'icon' => 'eicon-chevron-right',
],
'icon' => [
'icon' => 'eicon-star',
],
],
],
'recommended' => [
'fa-regular' => [
'arrow-alt-circle-right',
'caret-square-right',
],
'fa-solid' => [
'angle-double-right',
'angle-right',
'arrow-alt-circle-right',
'arrow-circle-right',
'arrow-right',
'caret-right',
'caret-square-right',
'chevron-circle-right',
'chevron-right',
'long-arrow-alt-right',
],
],
'condition' => [
'pagination_type' => [
'numbers',
'numbers_and_prev_next',
],
],
]
);
$this->add_control(
'pagination_align',
[
'label' => esc_html__( 'Alignment', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::CHOOSE,
'options' => [
'left' => [
'title' => esc_html__( 'Left', 'animation-addons-for-elementor' ),
'icon' => 'eicon-text-align-left',
],
'center' => [
'title' => esc_html__( 'Center', 'animation-addons-for-elementor' ),
'icon' => 'eicon-text-align-center',
],
'right' => [
'title' => esc_html__( 'Right', 'animation-addons-for-elementor' ),
'icon' => 'eicon-text-align-right',
],
],
'default' => 'center',
'selectors' => [
'{{WRAPPER}} .post-pagination' => 'justify-content: {{VALUE}};',
'{{WRAPPER}} .pf-load-more' => 'justify-content: {{VALUE}};',
],
'condition' => [
'pagination_type!' => '',
],
]
);
$this->add_responsive_control(
'pagination_spacing_top',
[
'label' => esc_html__( 'Spacing', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'default' => [
'size' => 70,
],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .post-pagination' => 'margin-top: {{SIZE}}{{UNIT}}',
'{{WRAPPER}} .pf-load-more' => 'margin-top: {{SIZE}}{{UNIT}}',
],
'condition' => [
'pagination_type!' => '',
],
]
);
//load more btn
$this->add_control(
'heading_load_more_button',
[
'label' => esc_html__( 'Button', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'pagination_type' => 'load_more',
],
]
);
$this->add_control(
'load_more_btn_text',
[
'label' => esc_html__( 'Text', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::TEXT,
'default' => esc_html__( 'Load More Works', 'animation-addons-for-elementor' ),
'placeholder' => esc_html__( 'Load More', 'animation-addons-for-elementor' ),
'condition' => [
'pagination_type' => 'load_more',
],
]
);
$this->add_control(
'load_more_btn_icon',
[
'label' => esc_html__( 'Icon', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::ICONS,
'fa4compatibility' => 'icon',
'default' => [
'value' => 'fas fa-arrow-right',
'library' => 'fa-solid',
],
'condition' => [
'pagination_type' => 'load_more',
],
]
);
//load more
$this->end_controls_section();
// Pagination style controls for prev/next and numbers pagination.
$this->start_controls_section(
'section_pagination_style',
[
'label' => esc_html__( 'Pagination', 'animation-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'pagination_type' => 'numbers_and_prev_next',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'pagination_typography',
'selector' => '{{WRAPPER}} .post-pagination .page-numbers',
]
);
$this->add_control(
'pagination_color_heading',
[
'label' => esc_html__( 'Colors', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$this->start_controls_tabs( 'pagination_colors' );
$this->start_controls_tab(
'pagination_color_normal',
[
'label' => esc_html__( 'Normal', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'pagination_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .post-pagination .page-numbers' => 'color: {{VALUE}}; fill: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'pagination_color_hover',
[
'label' => esc_html__( 'Hover', 'animation-addons-for-elementor' ),
]
);
$this->add_control(
'pagination_hover_color',
[
'label' => esc_html__( 'Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .post-pagination .page-numbers:not(.dots):hover, {{WRAPPER}} .post-pagination .page-numbers.current' => 'color: {{VALUE}}; fill: {{VALUE}};',
],
]
);
$this->add_control(
'pagination_hover_bg_color',
[
'label' => esc_html__( 'Background Color', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .post-pagination .page-numbers.current, {{WRAPPER}} .post-pagination .page-numbers:not(.prev, .next, .dots):hover' => 'background-color: {{VALUE}};',
],
'condition' => [
'pagination_list' => '2',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_responsive_control(
'pagination_spacing',
[
'label' => esc_html__( 'Space Between', 'animation-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', 'em', 'rem', 'custom' ],
'separator' => 'before',
'default' => [
'size' => 10,
],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .post-pagination' => 'gap: {{SIZE}}{{UNIT}};',
],
]
);
$this->end_controls_section();
}
public function get_current_page() {
if ( '' === $this->get_settings_for_display( 'pagination_type' ) ) {
return 1;
}
return max( 1, get_query_var( 'paged' ), get_query_var( 'page' ) );
}
/**
* Render the widget output on the frontend.
*
* Written in PHP and used to generate the final HTML.
*
* @since 1.0.0
*
* @access protected
*/
protected function render() {
$settings = $this->get_settings_for_display();
$query = $this->get_query();
if ( ! $query->found_posts ) {
return;
}
//wrapper class
$this->add_render_attribute( 'wrapper', 'class', [
'wcf__posts',
'style-' . $settings['element_list'],
] );
?>
print_render_attribute_string( 'wrapper' ); ?>>render_loop_header();
while ( $query->have_posts() ) {
$query->the_post();
if ( $settings['element_list'] == '6' ) {
$this->render_post_video( $settings );
} else {
$this->render_post( $settings );
}
}
$this->render_loop_footer();
?>
get_settings_for_display();
// If the skin has no pagination, there's nothing to render in the loop footer.
if ( ! isset( $settings['pagination_type'] ) ) {
return;
}
if ( '' === $settings['pagination_type'] ) {
return;
}
//load more
if ( 'load_more' === $settings['pagination_type'] ) {
$current_page = $this->get_current_page();
$next_page = intval( $current_page ) + 1;
$this->add_render_attribute( 'load_more_anchor', [
'data-e-id' => $this->get_id(),
'data-page' => $current_page,
'data-max-page' => $this->get_query()->max_num_pages,
'data-next-page' => $this->next_page_link( $next_page ),
] );
//icon
if ( empty( $settings['icon'] ) && ! Icons_Manager::is_migration_allowed() ) {
// add old default
$settings['icon'] = 'fa fa-arrow-right';
}
if ( ! empty( $settings['icon'] ) ) {
$this->add_render_attribute( 'icon', 'class', $settings['icon'] );
$this->add_render_attribute( 'icon', 'aria-hidden', 'true' );
}
$migrated = isset( $settings['__fa4_migrated']['load_more_btn_icon'] );
$is_new = empty( $settings['icon'] ) && Icons_Manager::is_migration_allowed();
?>
print_render_attribute_string( 'load_more_anchor' ); ?>>
get_query()->max_num_pages;
// Page limit control should not effect in load more mode.
if ( '' !== $settings['pagination_page_limit'] && 'load_more' !== $settings['pagination_type'] ) {
$page_limit = min( $settings['pagination_page_limit'], $page_limit );
}
if ( 2 > $page_limit ) {
return;
}
//number and prev next
if ( 'numbers_and_prev_next' === $settings['pagination_type'] ) {
$paginate_args = [
'current' => $this->get_current_page(),
'total' => $page_limit,
'prev_next' => true,
'prev_text' => sprintf( '%1$s', $this->render_next_prev_button( 'prev' ) ),
'next_text' => sprintf( '%1$s', $this->render_next_prev_button( 'next' ) ),
'show_all' => 'yes' !== $settings['pagination_numbers_shorten'],
'before_page_number' => '' . esc_html__( 'Page', 'animation-addons-for-elementor' ) . '',
];
//pagination class
$this->add_render_attribute( 'pagination', 'class', [
'post-pagination',
'style-' . $settings['pagination_list'],
] );
?>
get_settings( 'navigation_' . $type . '_icon' );
if ( empty( $icon_settings['value'] ) ) {
$icon_settings = [
'library' => 'eicons',
'value' => 'eicon-chevron-' . $direction,
];
}
$text = '';
if ( '1' === $this->get_settings( 'pagination_list' ) ) {
$text = $type;
}
if ( 'next' === $type ) {
return esc_html( $text ) . ' ' . Icons_Manager::try_get_icon_html( $icon_settings, [ 'aria-hidden' => 'true' ] );
} else {
return Icons_Manager::try_get_icon_html( $icon_settings, [ 'aria-hidden' => 'true' ] ) . ' ' . esc_html( $text );
}
}
protected function render_thumbnail( $settings ) {
$settings['thumbnail_size'] = [
'id' => get_post_thumbnail_id(),
];
// PHPCS - `get_permalink` is safe.
?>
get_post_thumbnail_id(),
];
$format = get_post_format();
?>
'true' ] );
} elseif ( 'video' === $format ) {
Icons_Manager::render_icon( $settings['video_selected_icon'], [ 'aria-hidden' => 'true' ] );
} elseif ( 'gallery' === $format ) {
Icons_Manager::render_icon( $settings['post_gallery_icon'], [ 'aria-hidden' => 'true' ] );
} else {
Icons_Manager::render_icon( $settings['post_thumb_icon'], [ 'aria-hidden' => 'true' ] );
}
?>
= $n ) {
// Extract the first N words and wrap them in a span tag
$wrapped_words = array_slice( $words, 0, $n );
$remaining_words = array_slice( $words, $n );
// Create the wrapped portion
$wrapped = '' . implode( ' ', $wrapped_words ) . '';
// Combine the wrapped portion with the remaining words
return $wrapped . ' ' . implode( ' ', $remaining_words );
}
// If there are fewer words than N, wrap the whole text
return '' . $text . '';
}
protected function render_title() {
if ( ! $this->get_settings( 'show_title' ) ) {
return;
}
$tag = $this->get_settings( 'title_tag' );
?>
< class="title">
post_title ) ) {
$max_length = (int) $this->get_settings( 'title_length' );
$title = $this->trim_words( get_the_title(), $max_length );
$highlight_title_length = (int) $this->get_settings( 'highlight_title_length' );
echo wp_kses_post( $this->wcf_wrap_first_n_words( $title, $highlight_title_length ) ); // Wrap first 2 words
} else {
the_title();
}
?>
>
get_settings( 'excerpt_length' );
}
public static function trim_words( $text, $length ) {
if ( $length && str_word_count( $text ) > $length ) {
$text = explode( ' ', $text, $length + 1 );
unset( $text[ $length ] );
$text = implode( ' ', $text );
}
return $text;
}
protected function render_excerpt() {
if ( ! $this->get_settings( 'show_excerpt' ) ) {
return;
}
add_filter( 'excerpt_length', [ $this, 'filter_excerpt_length' ], 20 );
?>
post_excerpt ) ) {
$max_length = (int) $this->get_settings( 'excerpt_length' );
$excerpt = apply_filters( 'the_excerpt', get_the_excerpt() );
$excerpt = $this->trim_words( $excerpt, $max_length );
echo wp_kses_post( $excerpt );
} else {
the_excerpt();
}
?>
get_settings( 'show_date' ) ) {
return;
}
?>
get_settings( 'show_comment' ) ) {
return;
}
?>
get_settings( 'show_author' ) ) {
return;
}
?>
get_settings( 'show_author' ) ) {
return;
}
?>
By
get_settings( 'view_meta_icon' ) ); ?>
get_settings( 'show_author' ) ) {
return;
}
if ( '4' !== $this->get_settings( 'element_list' ) ) {
return;
}
?>
get_settings( 'show_taxonomy' ) ) {
return;
}
$taxonomy = $this->get_settings( 'post_taxonomy' );
if ( empty( $taxonomy ) || ! taxonomy_exists( $taxonomy ) ) {
return;
}
$terms = get_the_terms( get_the_ID(), $taxonomy );
if ( empty( $terms ) ) {
return;
}
?>
%2$s',
esc_url( get_term_link( $term->slug, $taxonomy ) ),
esc_html( $term->name )
);
}
?>
get_settings( 'show_read_more' ) ) {
return;
}
$read_more = $this->get_settings( 'read_more_text' );
$aria_label_text = sprintf(
/* translators: %s: Post title. */
esc_attr__( 'Read more about %s', 'animation-addons-for-elementor' ),
get_the_title()
);
$migrated = isset( $this->get_settings( '__fa4_migrated' )['selected_icon'] );
$is_new = empty( $this->get_settings( 'icon' ) ) && Icons_Manager::is_migration_allowed();
?>
get_settings( 'selected_icon' ), [ 'aria-hidden' => 'true' ] );
else : ?>
>
render_thumbnail( $settings ); ?>
render_author_avatar();
$this->render_post_taxonomy();
$this->render_post_meta();
$this->render_title();
$this->render_excerpt();
$this->render_read_more();
?>
>
render_post_meta_video(); ?>
render_thumbnail_video( $settings ); ?>
render_author_avatar();
$this->render_post_taxonomy();
$this->render_title();
$this->render_author_video();
$this->render_excerpt();
$this->render_read_more();
?>