芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/wp-content/plugins/bdthemes-element-pack/modules/faq/widgets/faq.php
ep_is_edit_mode() ) { return [ 'ep-styles' ]; } else { return [ 'ep-font', 'ep-faq' ]; } } public function get_script_depends() { if ( $this->ep_is_edit_mode() ) { return [ 'ep-scripts' ]; } else { return [ 'ep-faq' ]; } } public function get_custom_help_url() { return 'https://youtu.be/jGGdCuSjesY'; } public function on_import( $element ) { if ( is_plugin_active( 'bdthemes-faq/bdthemes-faq.php' ) ) { if ( ! get_post_type_object( $element['settings']['posts_post_type'] ) ) { $element['settings']['posts_post_type'] = 'faq'; } } else { if ( ! get_post_type_object( $element['settings']['posts_post_type'] ) ) { $element['settings']['posts_post_type'] = 'post'; } } return $element; } public function get_query() { return $this->_query; } public function has_widget_inner_wrapper(): bool { return ! \Elementor\Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' ); } protected function is_dynamic_content(): bool { return true; } protected function register_controls() { $this->start_controls_section( 'section_content_layout', [ 'label' => esc_html__( 'Layout', 'bdthemes-element-pack' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'multicolumns', [ 'label' => __( 'Multi Columns', 'bdthemes-element-pack' ) . BDTEP_NC, 'type' => Controls_Manager::SWITCHER, ] ); $this->add_responsive_control( 'item_spacing', [ 'label' => __( 'Item Spacing', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'selectors' => [ '{{WRAPPER}} .bdt-faq .bdt-faq-item + .bdt-faq-item' => 'margin-top: {{SIZE}}{{UNIT}}', ], ] ); $this->add_responsive_control( 'item_column_gap', [ 'label' => __( 'Column Gap', 'bdthemes-element-pack' ) . BDTEP_NC, 'type' => Controls_Manager::SLIDER, 'selectors' => [ '{{WRAPPER}} .bdt-faq.bdt-faq-multi-columns' => 'grid-column-gap: {{SIZE}}{{UNIT}}', ], 'condition' => [ 'multicolumns' => 'yes' ] ] ); $this->add_control( 'collapsible', [ 'label' => __( 'Collapsible All Item', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'separator' => 'before', ] ); $this->add_control( 'multiple', [ 'label' => __( 'Multiple Open', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SWITCHER, ] ); $this->add_control( 'icon', [ 'label' => __( 'Show Icon', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', ] ); $this->add_control( 'closed_icon', [ 'label' => __( 'Icon', 'bdthemes-element-pack' ), 'type' => Controls_Manager::ICONS, // 'default' => [ // 'value' => 'far fa-question-circle', // 'library' => 'fa-regular', // ], 'recommended' => [ 'fa-solid' => [ 'question', 'question-circle', 'plus', 'plus-circle', 'plus-square', ], 'fa-regular' => [ 'question-circle', 'plus-square', 'arrow-alt-circle-right', 'caret-square-right', ], ], 'skin' => 'inline', 'label_block' => false, 'condition' => [ 'icon' => 'yes', ], ] ); $this->add_control( 'opened_icon', [ 'label' => __( 'Active Icon', 'bdthemes-element-pack' ), 'type' => Controls_Manager::ICONS, // 'default' => [ // 'value' => 'fas fa-check', // 'library' => 'fa-solid', // ], 'recommended' => [ 'fa-solid' => [ 'check', 'check-circle', 'check-double', 'check-square', 'calendar-check', 'clipboard-check', 'spell-check', 'user-check', ], 'fa-regular' => [ 'check-circle', 'check-square', 'calendar-check', 'arrow-alt-circle-down', 'caret-square-down', ], ], 'skin' => 'inline', 'label_block' => false, 'condition' => [ 'icon' => 'yes', ], ] ); $this->add_control( 'show_filter_bar', [ 'label' => esc_html__( 'Filter Bar', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SWITCHER, 'separator' => 'before', ] ); $post_types = $this->getGroupControlQueryPostTypes(); foreach ( $post_types as $key => $post_type ) { $taxonomies = $this->get_taxonomies( $key ); if ( ! $taxonomies[ $key ] ) { continue; } $this->add_control( 'taxonomy_' . $key, [ 'label' => __( 'Taxonomies', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SELECT, 'options' => $taxonomies[ $key ], 'default' => key( $taxonomies[ $key ] ), 'condition' => [ 'posts_source' => $key, 'show_filter_bar' => 'yes' ], ] ); } $this->add_control( 'active_hash', [ 'label' => esc_html__( 'Hash Location', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'no', 'condition' => [ 'show_filter_bar' => 'yes', ], ] ); $this->add_control( 'hash_top_offset', [ 'label' => esc_html__( 'Top Offset ', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px', '' ], 'range' => [ 'px' => [ 'min' => 1, 'max' => 1000, 'step' => 5, ], ], 'default' => [ 'unit' => 'px', 'size' => 70, ], 'condition' => [ 'active_hash' => 'yes', 'show_filter_bar' => 'yes', ], ] ); $this->add_control( 'hash_scrollspy_time', [ 'label' => esc_html__( 'Scrollspy Time', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'ms', '' ], 'range' => [ 'px' => [ 'min' => 500, 'max' => 5000, 'step' => 1000, ], ], 'default' => [ 'unit' => 'px', 'size' => 1000, ], 'condition' => [ 'active_hash' => 'yes', 'show_filter_bar' => 'yes', ], ] ); $this->add_control( 'excerpt_length', [ 'label' => __( 'Text Limit', 'bdthemes-element-pack' ), 'description' => esc_html__( 'It\'s just work for main content, but not working with excerpt. If you set 0 so you will get full main content.', 'bdthemes-element-pack' ), 'type' => Controls_Manager::NUMBER, 'default' => 50, 'separator' => 'before', ] ); $this->add_control( 'strip_shortcode', [ 'label' => esc_html__( 'Strip Shortcode', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', ] ); $this->add_control( 'show_read_more', [ 'label' => __( 'Read More', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', ] ); $this->add_control( 'active_item', [ 'label' => __( 'Active Item No', 'bdthemes-element-pack' ), 'type' => Controls_Manager::NUMBER, 'min' => 1, 'max' => 20, ] ); $this->add_control( 'schema_activity', [ 'label' => __( 'Schema Active', 'bdthemes-element-pack' ), 'description' => __( 'Warning: If you have multiple FAQ widgets on the same page so don\'t activate schema for both FAQ widgets so you will get errors on the google index. Activate the only one which you want to show on google search.', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'separator' => 'before', ] ); $this->end_controls_section(); //New Query Builder Settings $this->start_controls_section( 'section_post_query_builder', [ 'label' => __( 'Query', 'bdthemes-element-pack' ) . BDTEP_NC, 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->register_query_builder_controls(); if ( is_plugin_active( 'bdthemes-faq/bdthemes-faq.php' ) ) { $this->update_control( 'posts_source', [ 'label' => __( 'Source', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SELECT, 'options' => $this->getGroupControlQueryPostTypes(), 'default' => 'faq', ] ); } $this->end_controls_section(); $this->start_controls_section( 'section_content_button', [ 'label' => esc_html__( 'Read More Button', 'bdthemes-element-pack' ), 'condition' => [ 'show_read_more' => 'yes', ], ] ); $this->add_control( 'more_button_button_text', [ 'label' => esc_html__( 'Text', 'bdthemes-element-pack' ), 'type' => Controls_Manager::TEXT, 'placeholder' => esc_html__( 'Read More', 'bdthemes-element-pack' ), 'default' => esc_html__( 'Read More', 'bdthemes-element-pack' ), 'label_block' => true, ] ); $this->add_control( 'faq_more_button_icon', [ 'label' => esc_html__( 'Icon', 'bdthemes-element-pack' ), 'type' => Controls_Manager::ICONS, 'fa4compatibility' => 'more_button_icon', ] ); $this->add_control( 'more_button_icon_align', [ 'label' => esc_html__( 'Icon Position', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SELECT, 'default' => 'right', 'options' => [ 'left' => esc_html__( 'Before', 'bdthemes-element-pack' ), 'right' => esc_html__( 'After', 'bdthemes-element-pack' ), ], 'condition' => [ 'faq_more_button_icon[value]!' => '', ], ] ); $this->add_responsive_control( 'more_button_icon_indent', [ 'label' => esc_html__( 'Icon Spacing', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 8, ], 'range' => [ 'px' => [ 'max' => 50, ], ], 'condition' => [ 'faq_more_button_icon[value]!' => '', ], 'selectors' => [ '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-button-icon-align-right' => is_rtl() ? 'margin-right: {{SIZE}}{{UNIT}};' : 'margin-left: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-button-icon-align-left' => is_rtl() ? 'margin-left: {{SIZE}}{{UNIT}};' : 'margin-right: {{SIZE}}{{UNIT}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'section_toggle_style_title', [ 'label' => __( 'Title', 'bdthemes-element-pack' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'align', [ 'label' => __( 'Alignment', 'bdthemes-element-pack' ), 'type' => Controls_Manager::CHOOSE, 'options' => [ 'left' => [ 'title' => __( 'Left', 'bdthemes-element-pack' ), 'icon' => 'eicon-text-align-left', ], 'center' => [ 'title' => __( 'Center', 'bdthemes-element-pack' ), 'icon' => 'eicon-text-align-center', ], 'right' => [ 'title' => __( 'Right', 'bdthemes-element-pack' ), 'icon' => 'eicon-text-align-right', ], ], 'default' => 'left', 'toggle' => false, 'label_block' => false, 'render_type' => 'template', 'selectors' => [ '{{WRAPPER}} .bdt-faq-title-text' => 'justify-content: {{VALUE}};', ], ] ); $this->start_controls_tabs( 'tabs_title_style' ); $this->start_controls_tab( 'tab_title_normal', [ 'label' => __( 'Normal', 'bdthemes-element-pack' ), ] ); $this->add_control( 'glassmorphism_effect', [ 'label' => esc_html__( 'Glassmorphism', 'bdthemes-element-pack' ) . BDTEP_NC, 'type' => Controls_Manager::SWITCHER, 'description' => sprintf( __( 'This feature will not work in the Firefox browser untill you enable browser compatibility so please %1s look here %2s', 'bdthemes-element-pack' ), '
', '
' ), ] ); $this->add_control( 'glassmorphism_blur_level', [ 'label' => __( 'Blur Level', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 0, 'step' => 1, 'max' => 50, ] ], 'default' => [ 'size' => 5 ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-accordion-title' => 'backdrop-filter: blur({{SIZE}}px); -webkit-backdrop-filter: blur({{SIZE}}px);' ], 'condition' => [ 'glassmorphism_effect' => 'yes', ] ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'title_background', 'types' => [ 'classic', 'gradient' ], 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-accordion-title', ] ); $this->add_control( 'title_color', [ 'label' => __( 'Text Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-accordion-title' => 'color: {{VALUE}};', ], 'separator' => 'before', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'title_border', 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-faq-item .bdt-accordion-title', ] ); $this->add_responsive_control( 'title_radius', [ 'label' => __( 'Border Radius', 'bdthemes-element-pack' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-faq-item .bdt-accordion-title' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow: hidden;', ], ] ); $this->add_responsive_control( 'title_padding', [ 'label' => __( 'Padding', 'bdthemes-element-pack' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-accordion-title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'title_margin', [ 'label' => __( 'Margin', 'bdthemes-element-pack' ) . BDTEP_NC, 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-faq-title-text' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'title_shadow', 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-faq-item .bdt-accordion-title', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'title_typography', 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-accordion-title', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_title_active', [ 'label' => __( 'Active', 'bdthemes-element-pack' ), ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'active_title_background', 'types' => [ 'classic', 'gradient' ], 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-faq-item.bdt-open .bdt-accordion-title', ] ); $this->add_control( 'active_title_color', [ 'label' => __( 'Text Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-faq-item.bdt-open .bdt-accordion-title' => 'color: {{VALUE}};', ], 'separator' => 'before', ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'active_title_shadow', 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-faq-item.bdt-open .bdt-accordion-title', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'active_title_border', 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-faq-item.bdt-open .bdt-accordion-title', ] ); $this->add_responsive_control( 'active_title_radius', [ 'label' => __( 'Border Radius', 'bdthemes-element-pack' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-faq-item.bdt-open .bdt-accordion-title' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow: hidden;', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_title_hover', [ 'label' => __( 'Hover', 'bdthemes-element-pack' ), ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'hover_title_background', 'types' => [ 'classic', 'gradient' ], 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-faq-item .bdt-accordion-title:hover', ] ); $this->add_control( 'hover_title_color', [ 'label' => __( 'Text Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-faq-item .bdt-accordion-title:hover' => 'color: {{VALUE}};', ], 'separator' => 'before', ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'hover_title_shadow', 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-faq-item .bdt-accordion-title:hover', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'hover_title_border', 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-faq-item .bdt-accordion-title:hover', ] ); $this->add_responsive_control( 'hover_title_radius', [ 'label' => __( 'Border Radius', 'bdthemes-element-pack' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-faq-item .bdt-accordion-title:hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow: hidden;', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'section_toggle_style_icon', [ 'label' => __( 'Icon', 'bdthemes-element-pack' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'icon_align', [ 'label' => __( 'Alignment', 'bdthemes-element-pack' ) . BDTEP_NC, 'type' => Controls_Manager::CHOOSE, 'options' => [ 'left' => [ 'title' => __( 'Start', 'bdthemes-element-pack' ), 'icon' => 'eicon-h-align-left', ], 'right' => [ 'title' => __( 'End', 'bdthemes-element-pack' ), 'icon' => 'eicon-h-align-right', ], ], 'default' => is_rtl() ? 'right' : 'left', 'toggle' => false, 'label_block' => false, ] ); $this->start_controls_tabs( 'tabs_icon_style' ); $this->start_controls_tab( 'tab_icon_normal', [ 'label' => __( 'Normal', 'bdthemes-element-pack' ), ] ); $this->add_control( 'icon_color', [ 'label' => __( 'Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-accordion-title .bdt-accordion-icon' => 'color: {{VALUE}};', '{{WRAPPER}} .bdt-accordion .bdt-accordion-title .bdt-accordion-icon svg' => 'fill: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'icon_background_color', 'selector' => '{{WRAPPER}} .bdt-accordion-icon' ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'icon_border', 'selector' => '{{WRAPPER}} .bdt-accordion-icon', ] ); $this->add_responsive_control( 'icon_border_radius', [ 'label' => esc_html__( 'Border Radius', 'bdthemes-element-pack' ) . BDTEP_NC, 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'icon_padding', [ 'label' => esc_html__( 'Padding', 'bdthemes-element-pack' ) . BDTEP_NC, 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion-icon' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'icon_space', [ 'label' => __( 'Spacing', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 10 ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion-icon.bdt-flex-align-left' => is_rtl() ? 'margin-left: {{SIZE}}{{UNIT}};' : 'margin-right: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .bdt-accordion-icon.bdt-flex-align-right' => is_rtl() ? 'margin-right: {{SIZE}}{{UNIT}};' : 'margin-left: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'icon_size', [ 'label' => __( 'Icon Size', 'bdthemes-element-pack' ) . BDTEP_NC, 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 10, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion-title .bdt-accordion-icon' => 'font-size: {{SIZE}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'icon_box_shadow', 'selector' => '{{WRAPPER}} .bdt-accordion-icon', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_icon_active', [ 'label' => __( 'Active', 'bdthemes-element-pack' ), ] ); $this->add_control( 'icon_active_color', [ 'label' => __( 'Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-faq-item.bdt-open .bdt-accordion-icon' => 'color: {{VALUE}};', '{{WRAPPER}} .bdt-accordion .bdt-faq-item.bdt-open .bdt-accordion-icon svg' => 'fill: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'icon_active_background_color', 'selector' => '{{WRAPPER}} .bdt-faq-item.bdt-open .bdt-accordion-icon' ] ); $this->add_control( 'icon_active_border_color', [ 'label' => esc_html__( 'Border Color', 'bdthemes-element-pack' ) . BDTEP_NC, 'type' => Controls_Manager::COLOR, 'condition' => [ 'icon_border_border!' => '', ], 'selectors' => [ '{{WRAPPER}} .bdt-faq-item.bdt-open .bdt-accordion-icon' => 'border-color: {{VALUE}};', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_icon_hover', [ 'label' => __( 'Hover', 'bdthemes-element-pack' ), ] ); $this->add_control( 'icon_hover_color', [ 'label' => __( 'Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-faq-item:hover .bdt-accordion-icon' => 'color: {{VALUE}};', '{{WRAPPER}} .bdt-accordion .bdt-faq-item:hover .bdt-accordion-icon svg' => 'fill: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'icon_hover_background_color', 'selector' => '{{WRAPPER}} .bdt-faq-item:hover .bdt-accordion-icon' ] ); $this->add_control( 'icon_hover_border_color', [ 'label' => esc_html__( 'Border Color', 'bdthemes-element-pack' ) . BDTEP_NC, 'type' => Controls_Manager::COLOR, 'condition' => [ 'icon_border_border!' => '', ], 'selectors' => [ '{{WRAPPER}} .bdt-faq-item:hover .bdt-accordion-icon' => 'border-color: {{VALUE}};', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'section_toggle_style_content', [ 'label' => __( 'Content', 'bdthemes-element-pack' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'content_glassmorphism_effect', [ 'label' => esc_html__( 'Glassmorphism', 'bdthemes-element-pack' ) . BDTEP_NC, 'type' => Controls_Manager::SWITCHER, 'description' => sprintf( __( 'This feature will not work in the Firefox browser untill you enable browser compatibility so please %1s look here %2s', 'bdthemes-element-pack' ), '
', '
' ), ] ); $this->add_control( 'content_glassmorphism_blur_level', [ 'label' => __( 'Blur Level', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 0, 'step' => 1, 'max' => 50, ] ], 'default' => [ 'size' => 5 ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-accordion-content' => 'backdrop-filter: blur({{SIZE}}px); -webkit-backdrop-filter: blur({{SIZE}}px);' ], 'condition' => [ 'content_glassmorphism_effect' => 'yes', ] ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'content_background_color', 'types' => [ 'classic', 'gradient' ], 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-accordion-content', ] ); $this->add_control( 'content_color', [ 'label' => __( 'Text Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-accordion-content' => 'color: {{VALUE}};', ], 'separator' => 'before', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'content_border', 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-accordion-content', ] ); $this->add_responsive_control( 'content_radius', [ 'label' => __( 'Border Radius', 'bdthemes-element-pack' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-accordion-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow: hidden;', ], ] ); $this->add_responsive_control( 'content_padding', [ 'label' => __( 'Padding', 'bdthemes-element-pack' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-accordion-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'content_spacing', [ 'label' => __( 'Spacing', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}} .bdt-accordion .bdt-accordion-content' => 'margin-top: {{SIZE}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'content_shadow', 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-accordion-content', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'content_typography', 'selector' => '{{WRAPPER}} .bdt-accordion .bdt-accordion-content', ] ); $this->end_controls_section(); $this->register_style_controls_filter(); $this->start_controls_section( 'section_style_more_button', [ 'label' => esc_html__( 'Read More Button', 'bdthemes-element-pack' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'show_read_more' => 'yes', ], ] ); $this->add_responsive_control( 'more_button_spacing', [ 'label' => esc_html__( 'Spacing', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'max' => 35, ], ], 'selectors' => [ '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button' => 'margin-top: {{SIZE}}{{UNIT}};', ], ] ); $this->start_controls_tabs( 'tabs_more_button_style' ); $this->start_controls_tab( 'tab_more_button_normal', [ 'label' => esc_html__( 'Normal', 'bdthemes-element-pack' ), ] ); $this->add_control( 'more_button_text_color', [ 'label' => esc_html__( 'Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button' => 'color: {{VALUE}};', '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button svg' => 'fill: {{VALUE}};', ], ] ); $this->add_control( 'more_button_background_color', [ 'label' => esc_html__( 'Background Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button' => 'background-color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'more_button_border', 'label' => esc_html__( 'Border', 'bdthemes-element-pack' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button', 'separator' => 'before', ] ); $this->add_responsive_control( 'more_button_border_radius', [ 'label' => esc_html__( 'Border Radius', 'bdthemes-element-pack' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'more_button_padding', [ 'label' => esc_html__( 'Padding', 'bdthemes-element-pack' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'more_button_shadow', 'selector' => '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'more_button_typography', 'label' => esc_html__( 'Typography', 'bdthemes-element-pack' ), 'selector' => '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_more_button_hover', [ 'label' => esc_html__( 'Hover', 'bdthemes-element-pack' ), ] ); $this->add_control( 'more_button_hover_color', [ 'label' => esc_html__( 'Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button:hover' => 'color: {{VALUE}};', '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button:hover svg' => 'fill: {{VALUE}};', ], ] ); $this->add_control( 'more_button_background_hover_color', [ 'label' => esc_html__( 'Background Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button:hover' => 'background-color: {{VALUE}};', ], ] ); $this->add_control( 'more_button_hover_border_color', [ 'label' => esc_html__( 'Border Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'more_button_border_border!' => '', ], 'selectors' => [ '{{WRAPPER}} .bdt-faq .bdt-faq-item .bdt-faq-button:hover' => 'border-color: {{VALUE}};', ], ] ); $this->add_control( 'more_button_hover_animation', [ 'label' => esc_html__( 'Animation', 'bdthemes-element-pack' ), 'type' => Controls_Manager::HOVER_ANIMATION, ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); } public function get_taxonomies( $post_type = '' ) { $_taxonomies = []; if ( $post_type ) { $taxonomies = get_taxonomies( [ 'public' => true, 'object_type' => [ $post_type ] ], 'object' ); $tax = array_diff_key( wp_list_pluck( $taxonomies, 'label', 'name' ), [] ); $_taxonomies[ $post_type ] = count( $tax ) !== 0 ? $tax : ''; } return $_taxonomies; } /** * Get post query builder arguments */ public function query_posts( $posts_per_page ) { $settings = $this->get_settings(); $args = []; if ( $posts_per_page ) { $args['posts_per_page'] = $posts_per_page; } $default = $this->getGroupControlQueryArgs(); $args = array_merge( $default, $args ); $this->_query = new \WP_Query( $args ); } public function filter_menu_terms() { $settings = $this->get_settings_for_display(); if ( isset ( $settings[ 'taxonomy_' . $settings['posts_source'] ] ) ) : $taxonomy = $settings[ 'taxonomy_' . $settings['posts_source'] ]; $categories = get_the_terms( get_the_ID(), $taxonomy ); $_categories = []; if ( $categories ) { foreach ( $categories as $category ) { $_categories[ $category->slug ] = strtolower( $category->slug ); } } return implode( ' ', $_categories ); endif; } protected function filter_menu_categories() { $settings = $this->get_settings_for_display(); $include_Categories = $settings['posts_include_term_ids']; $exclude_Categories = $settings['posts_exclude_term_ids']; $post_options = []; if ( isset ( $settings[ 'taxonomy_' . $settings['posts_source'] ] ) ) { $taxonomy = $settings[ 'taxonomy_' . $settings['posts_source'] ]; $params = [ 'taxonomy' => $taxonomy, 'hide_empty' => true, 'include' => $include_Categories, 'exclude' => $exclude_Categories, ]; $post_categories = get_terms( $params ); if ( is_wp_error( $post_categories ) ) { return $post_options; } if ( false !== $post_categories and is_array( $post_categories ) ) { foreach ( $post_categories as $category ) { $post_options[ $category->slug ] = $category->name; } } } return $post_options; } public function render_title() { $settings = $this->get_settings_for_display(); $faq_icon = get_post_meta( get_the_ID(), 'bdthemes_faq_icon', true ); $faq_icon = ( ! empty ( $faq_icon ) ) ? $faq_icon : 'ep-icon-question'; // if ('left' == $settings['align']) { // $this->add_render_attribute('faq_title', 'class', 'bdt-accordion-title bdt-faq-align-left', true); // } elseif ('right' == $settings['align']) { // $this->add_render_attribute('faq_title', 'class', 'bdt-accordion-title bdt-faq-align-right', true); // } elseif ('center' == $settings['align']) { // $this->add_render_attribute('faq_title', 'class', 'bdt-accordion-title bdt-faq-align-center', true); // } else { // } $this->add_render_attribute( 'faq_title', 'class', 'bdt-accordion-title', true ); $this->add_render_attribute( 'faq_title', 'itemprop', 'name', true ); ?>
print_render_attribute_string( 'faq_title' ); ?>>
'true' ] ); ?>
'true' ] ); ?>
get_settings_for_display(); $strip_shortcode = $this->get_settings_for_display( 'strip_shortcode' ); ?>
itemprop="text" > get_settings_for_display( 'excerpt_length' ), $strip_shortcode ) ); } ?>
get_settings_for_display(); $animation = ( $settings['more_button_hover_animation'] ) ? ' elementor-animation-' . $settings['more_button_hover_animation'] : ''; if ( ! isset ( $settings['more_button_icon'] ) && ! Icons_Manager::is_migration_allowed() ) { // add old default $settings['more_button_icon'] = 'fas fa-arrow-right'; } $migrated = isset ( $settings['__fa4_migrated']['faq_more_button_icon'] ); $is_new = empty ( $settings['more_button_icon'] ) && Icons_Manager::is_migration_allowed(); if ( 'yes' == $settings['show_read_more'] ) : ?>
'true', 'class' => 'fa-fw' ] ); else : ?>
get_settings_for_display(); $faq_categories = $this->filter_menu_categories(); $this->add_render_attribute( [ 'bdt-faq-hash-data' => [ 'data-hash-settings' => [ wp_json_encode( array_filter( [ "id" => 'bdt-faq-' . $this->get_id(), 'activeHash' => isset ( $settings['active_hash'] ) ? $settings['active_hash'] : 'no', 'hashTopOffset' => isset ( $settings['hash_top_offset'] ) ? $settings['hash_top_offset']['size'] : 70, 'hashScrollspyTime' => isset ( $settings['hash_scrollspy_time'] ) ? $settings['hash_scrollspy_time']['size'] : 1000, ] ) ), ], ], ] ); ?>
print_render_attribute_string( 'bdt-faq-hash-data' ); ?>>
$category ) : printf( '
%2$s
', esc_attr( $key ), esc_html( $category ) ); endforeach; ?>
$category ) : printf( '
%2$s
', esc_attr( $key ), esc_html( $category ) ); endforeach; ?>
add_render_attribute( [ 'bdt-faq-settings' => [ 'id' => $id, 'class' => 'bdt-accordion', 'data-bdt-accordion' => [ wp_json_encode( [ "targets" => "> div > .bdt-faq-item", "collapsible" => $settings["collapsible"] ? true : false, "multiple" => $settings["multiple"] ? true : false, "transition" => "ease-in-out", "active" => ( "" !== $settings["active_item"] ) ? $settings["active_item"] - 1 : false, ] ), ], ], ] ); $this->add_render_attribute( [ 'bdt-faq-settings' => [ 'class' => ( 'yes' != $settings["multicolumns"] ) ? 'bdt-faq' : 'bdt-faq bdt-faq-multi-columns', ], ] ); $this->add_render_attribute( 'faq-wrapper', 'class', 'bdt-faq-wrapper' ); if ( $settings['show_filter_bar'] ) { $this->add_render_attribute( 'faq-wrapper', 'data-bdt-filter', 'target: #bdt-accordion-' . $this->get_id() . ' > div' ); } if ( $settings['multicolumns'] ) { $this->add_render_attribute( 'faq-multicolumns', 'data-bdt-filter', 'target: .bdt-multicolumns-' . $this->get_id() ); } ?>
print_render_attribute_string( 'faq-multicolumns' ) ?>>
print_render_attribute_string( 'faq-wrapper' ); ?>> render_filter_menu(); } ?>
print_render_attribute_string( 'bdt-faq-settings' ); ?> itemscope itemtype="https://schema.org/FAQPage" >
get_settings_for_display(); global $post; $element_key = 'faq-item-' . $post->ID; $this->add_render_attribute( $element_key, 'class', 'bdt-faq-item' ); if ( $settings['schema_activity'] == 'yes' ) { $this->add_render_attribute( $element_key, 'itemscope' ); $this->add_render_attribute( $element_key, 'itemprop', 'mainEntity' ); $this->add_render_attribute( $element_key, 'itemtype', 'https://schema.org/Question' ); } if ( $settings['show_filter_bar'] ) { $this->add_render_attribute( $element_key, 'data-filter', $this->filter_menu_terms(), true ); } if ( 'left' == $settings['align'] ) { $this->add_render_attribute( 'faq_content', 'class', 'bdt-accordion-content bdt-faq-align-left', true ); } elseif ( 'right' == $settings['align'] ) { $this->add_render_attribute( 'faq_content', 'class', 'bdt-accordion-content bdt-faq-align-right', true ); } elseif ( 'center' == $settings['align'] ) { $this->add_render_attribute( 'faq_content', 'class', 'bdt-accordion-content bdt-faq-align-center', true ); } else { $this->add_render_attribute( 'faq_content', 'class', 'bdt-accordion-content', true ); } if ( $settings['schema_activity'] == 'yes' ) { $this->add_render_attribute( 'faq_content', 'itemscope' ); $this->add_render_attribute( 'faq_content', 'itemprop', 'acceptedAnswer', true ); $this->add_render_attribute( 'faq_content', 'itemtype', 'https://schema.org/Answer', true ); } ?>
print_render_attribute_string( $element_key ); ?>> render_title(); ?>
print_render_attribute_string( 'faq_content' ); ?>> render_excerpt(); $this->render_more_button_button( $post ); ?>
ID, 'bdt_faq_image_id', true); * $image = wp_get_attachment_image($image_id, 'large'); */ $settings = $this->get_settings_for_display(); $id = 'bdt-accordion-' . $this->get_id(); $this->query_posts( $settings['posts_per_page'] ); $wp_query = $this->get_query(); if ( ! $wp_query->found_posts ) { return; } $this->render_header( $settings, $id ); $total_item = $settings['posts_per_page']; $half_item = ceil( $settings['posts_per_page'] / 2 ); $count = 0; $this->add_render_attribute( 'accordion-settings', 'class', 'bdt-faq-column' ); while ( $wp_query->have_posts() ) { $wp_query->the_post(); if ( 'yes' != $settings["multicolumns"] ) { $this->render_post( $settings ); } else { if ( $count == 0 ) { echo '
get_render_attribute_string( 'accordion-settings' ) ) . '>'; $this->render_post( $settings ); } elseif ( $count < $half_item ) { $this->render_post( $settings ); } elseif ( $count == $half_item ) { printf( '
', 'bdt-faq-column bdt-multicolumns-' . esc_attr( $this->get_id() ) ); $this->render_post( $settings ); } elseif ( $count > $half_item ) { $this->render_post( $settings ); } elseif ( $count == $total_item ) { echo '
'; } $count++; } } $this->render_footer(); wp_reset_postdata(); } }