PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 4.2.0
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v4.2.0
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 3.5.2 All 199 releases
betterdocs / includes / Editors / BlockEditor / Blocks / SearchForm.php

SearchForm.php in BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot 4.2.0, at includes/Editors/BlockEditor/Blocks/SearchForm.php

110 lines 5.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPDeveloper\BetterDocs\Editors\BlockEditor\Blocks;
4
5 use WPDeveloper\BetterDocs\Editors\BlockEditor\Block;
6
7 class SearchForm extends Block {
8 public $view_wrapper = 'betterdocs-search-form-wrapper';
9
10 protected $editor_styles = [
11 'betterdocs-search',
12 'betterdocs-search-modal'
13 ];
14
15 protected $frontend_styles = [
16 'betterdocs-search',
17 'betterdocs-search-modal'
18 ];
19 protected $frontend_scripts = [
20 'betterdocs-search',
21 'betterdocs-search-modal'
22 ];
23
24 /**
25 * unique name of block
26 * @return string
27 */
28 public function get_name() {
29 return 'searchbox';
30 }
31
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' => false, //for search modal
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 }
51
52 public function render( $attributes, $content ) {
53 $settings = $this->attributes;
54
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');
73 echo '<div class="' . esc_attr( $settings['blockId'] ) . '">';
74 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'] ) . '"]' );
75 echo '</div>';
76 }
77 }
78
79 public function view_params() {
80 $settings = &$this->attributes;
81
82 $_shortcode_attributes = apply_filters(
83 'betterdocs_elementor_search_form_params',
84 [
85 'placeholder' => esc_html( $settings['placeholderText'] ),
86 'heading' => isset( $settings['searchHeading'] ) ? esc_html( $settings['searchHeading'] ) : '',
87 'subheading' => isset( $settings['searchSubHeading'] ) ? esc_html( $settings['searchSubHeading'] ) : '',
88 'heading_tag' => isset( $settings['searchHeadingTag'] ) ? esc_attr( $settings['searchHeadingTag'] ) : 'h2',
89 'subheading_tag' => isset( $settings['searchSubHeadingTag'] ) ? esc_attr( $settings['searchSubHeadingTag'] ) : 'h3'
90 ],
91 $this->attributes
92 );
93
94 // Debug: Log the shortcode attributes after filter
95 error_log('SearchForm Block - _shortcode_attributes after filter: ' . print_r($_shortcode_attributes, true));
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 }
109 }
110