← All changes
|
includes/Editors/BlockEditor/Blocks/SearchForm.php
+93
-35
3.4.0
→
4.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 | } |