PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 4.9.2
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v4.9.2
4.9.2 4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 All 200 releases
← All changes | includes/Editors/BlockEditor/Blocks/SearchForm.php +93 -35 3.4.04.9.2 View file →
@@ -4,48 +4,106 @@
4 4
5 5 use WPDeveloper\BetterDocs\Editors\BlockEditor\Block;
6 6
7 7 class SearchForm extends Block {
8 - public $view_wrapper = 'betterdocs-search-form-wrapper';
8 + public $view_wrapper = 'betterdocs-search-form-wrapper';
9 9
10 - protected $editor_styles = [
11 - 'betterdocs-search'
12 - ];
10 + protected $editor_styles = [
11 + 'betterdocs-search',
12 + 'betterdocs-search-modal'
13 + ];
13 14
14 - protected $frontend_styles = [
15 - 'betterdocs-search'
16 - ];
17 - protected $frontend_scripts = [
18 - 'betterdocs-search'
19 - ];
15 + protected $frontend_styles = [
16 + 'betterdocs-search',
17 + 'betterdocs-search-modal'
18 + ];
19 + protected $frontend_scripts = [
20 + 'betterdocs-search',
21 + 'betterdocs-search-modal'
22 + ];
20 23
21 - /**
22 - * unique name of block
23 - * @return string
24 - */
25 - public function get_name() {
26 - return 'searchbox';
27 - }
24 + /**
25 + * unique name of block
26 + * @return string
27 + */
28 + public function get_name() {
29 + return 'searchbox';
30 + }
28 31
29 - public function get_default_attributes() {
30 - return [
31 - 'blockId' => '',
32 - 'placeholderText' => __( 'Search', 'betterdocs' )
33 - ];
34 - }
32 + public function get_default_attributes() {
33 + return [
34 + 'blockId' => '',
35 + 'placeholderText' => __( 'Search', 'betterdocs' ),
36 + 'searchLayout' => 'layout-1',
37 + 'searchHeading' => '',
38 + 'searchSubHeading' => '',
39 + 'searchHeadingTag' => 'h2',
40 + 'searchSubHeadingTag' => 'h3',
41 + 'searchButtonLayout2' => true, //for search modal — search button enabled by default
42 + 'categorySearchLayout2' => false, //for search modal
43 + 'popularSearchLayout2' => false, //for search modal,
44 + 'initialFAQNumber' => 5, //for search modal,
45 + 'initialDocsNumber' => 5, //for search modal,
46 + 'searchModalQueryTermIds' => '', //for search modal
47 + 'searchModalQueryDocIds' => '', //for search modal
48 + 'searchModalQueriesFaqGroupIds' => ''
49 + ];
50 + }
35 51
36 - public function render( $attributes, $content ) {
37 - $this->views( 'widgets/search-form' );
38 - }
52 + public function render( $attributes, $content ) {
53 + $settings = $this->attributes;
39 54
40 - public function view_params() {
41 - $settings = &$this->attributes;
55 + if ( isset( $settings['searchLayout'] ) && $settings['searchLayout'] == 'layout-1' ) {
56 + $this->views( 'widgets/search-form' );
57 + } else {
58 + $popular_search = isset( $settings['popularSearchLayout2'] ) ? $settings['popularSearchLayout2'] : false;
59 + $category_search = isset( $settings['categorySearchLayout2'] ) ? $settings['categorySearchLayout2'] : false;
60 + $search_button = isset( $settings['searchButtonLayout2'] ) ? $settings['searchButtonLayout2'] : false;
61 + $number_of_docs = isset( $settings['initialDocsNumber'] ) ? $settings['initialDocsNumber'] : 5;
62 + $number_of_faqs = isset( $settings['initialFAQNumber'] ) ? $settings['initialFAQNumber'] : 5;
63 + $doc_categories_ids = isset( $settings['searchModalQueryTermIds'] ) ? $settings['searchModalQueryTermIds'] : '';
64 + $doc_ids = isset( $settings['searchModalQueryDocIds'] ) ? $settings['searchModalQueryDocIds'] : '';
65 + $faq_categories_ids = isset( $settings['searchModalQueriesFaqGroupIds'] ) ? $settings['searchModalQueriesFaqGroupIds'] : '';
66 + $searchHeading = isset( $settings['searchHeading'] ) ? $settings['searchHeading'] : '';
67 + $subHeading = isset( $settings['searchSubHeading'] ) ? $settings['searchSubHeading'] : '';
68 + $search_modal_layout = isset( $settings['searchModalLayout'] ) ? $settings['searchModalLayout'] : 'layout-1';
69 + $search_modal_search_type = betterdocs()->settings->get('search_modal_search_type');
70 + $headingTag = isset( $settings['searchHeadingTag'] ) ? $settings['searchHeadingTag'] : 'h2';
71 + $subHeadingTag = isset( $settings['searchSubHeadingTag'] ) ? $settings['searchSubHeadingTag'] : 'h3';
72 + $search_modal_search_type = betterdocs()->settings->get('search_modal_search_type');
42 73
43 - $_shortcode_attributes = apply_filters( 'betterdocs_elementor_search_form_params', [
44 - 'placeholder' => esc_html( $settings['placeholderText'] )
45 - ], $this->attributes );
74 + // Add AI Search Suggestions parameter
75 + $enable_ai_suggestions = isset( $settings['enable_ai_powered_search'] ) ? $settings['enable_ai_powered_search'] : false;
76 + echo '<div class="' . esc_attr( $settings['blockId'] ) . '">';
77 + echo do_shortcode( '[betterdocs_search_modal enable_docs_search="'.($search_modal_search_type == 'all' || $search_modal_search_type == 'docs' ? true : false).'" enable_faq_search="'.($search_modal_search_type == 'all' || $search_modal_search_type == 'faq' ? true : false).'" faq_categories_ids="' . esc_attr( $faq_categories_ids ). '" doc_ids="' . esc_attr( $doc_ids ) . '" doc_categories_ids="' . esc_attr( $doc_categories_ids ) . '" number_of_docs="' . esc_attr( $number_of_docs ) . '" number_of_faqs="' . esc_attr( $number_of_faqs ) . '" search_button_text="Search" search_button="' . esc_attr( $search_button ) . '" popular_search="' . esc_attr( $popular_search ) . '" category_search="' . esc_attr( $category_search ) . '" layout="' . esc_attr( $search_modal_layout ) . '" heading="' . esc_attr( $searchHeading ) . '" subheading="' . esc_attr( $subHeading ) . '" heading_tag="' . esc_attr( $headingTag ) . '" subheading_tag="' . esc_attr( $subHeadingTag ) . '" placeholder="' . esc_attr( $settings['placeholderText'] ) . '" enable_ai_powered_search="' . esc_attr( $enable_ai_suggestions ) . '"]' );
78 + echo '</div>';
79 + }
80 + }
46 81
47 - return [
48 - 'shortcode_attr' => $_shortcode_attributes
49 - ];
50 - }
82 + public function view_params() {
83 + $settings = &$this->attributes;
84 +
85 + $_shortcode_attributes = apply_filters(
86 + 'betterdocs_elementor_search_form_params',
87 + [
88 + 'placeholder' => esc_html( $settings['placeholderText'] ),
89 + 'heading' => isset( $settings['searchHeading'] ) ? esc_html( $settings['searchHeading'] ) : '',
90 + 'subheading' => isset( $settings['searchSubHeading'] ) ? esc_html( $settings['searchSubHeading'] ) : '',
91 + 'heading_tag' => isset( $settings['searchHeadingTag'] ) ? esc_attr( $settings['searchHeadingTag'] ) : 'h2',
92 + 'subheading_tag' => isset( $settings['searchSubHeadingTag'] ) ? esc_attr( $settings['searchSubHeadingTag'] ) : 'h3'
93 + ],
94 + $this->attributes
95 + );
96 +
97 + $wrapper_classes = [];
98 + if ( isset( $settings['blockId'] ) && ! empty( $settings['blockId'] ) ) {
99 + $wrapper_classes[] = $settings['blockId'];
100 + }
101 +
102 + return [
103 + 'shortcode_attr' => $_shortcode_attributes,
104 + 'wrapper_attr' => [
105 + 'class' => $wrapper_classes
106 + ]
107 + ];
108 + }
51 109 }