PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 4.9.5
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v4.9.5
4.9.5 4.9.4 4.9.3 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 All 203 releases
← All changes | includes/Editors/BlockEditor/Blocks/Sidebar.php +22 -4 4.5.2 → 4.9.5 View file →
@@ -1,8 +1,13 @@
1 1 <?php
2 +// phpcs:disable WordPress.DB.SlowDBQuery.slow_db_query_meta_query,WordPress.DB.SlowDBQuery.slow_db_query_meta_key,WordPress.DB.SlowDBQuery.slow_db_query_tax_query -- core block query; meta/tax filtering required.
3 +namespace WPDeveloper\BetterDocs\Editors\BlockEditor\Blocks;
2 4
3 -namespace WPDeveloper\BetterDocs\Editors\BlockEditor\Blocks;
5 +if ( ! defined( 'ABSPATH' ) ) {
6 + exit;
7 +}
4 8
9 +
5 10 use WPDeveloper\BetterDocs\Editors\BlockEditor\Block;
6 11
7 12 class Sidebar extends Block {
8 13
@@ -55,8 +60,12 @@
55 60 'docs_per_page' => -1,
56 61 'postsOrderBy' => 'title',
57 62 'postsOrder' => 'asc',
58 63 'enableNestedSubcategory' => false,
64 + // Default follows the global "Lazy Load Sidebar Docs & Subcategories"
65 + // setting, mirroring the Elementor sidebar widget's control default, so
66 + // enabling the setting lazy-loads the block too unless overridden.
67 + 'enableLazyLoad' => (bool) betterdocs()->settings->get( 'archive_lazy_load_descendants' ),
59 68 'docs_per_subcategory' => 10,
60 69 'titleTag' => 'h1',
61 70 'show_count' => false,
62 71 'enableStickyTOC' => false,
@@ -84,9 +93,10 @@
84 93 8 => 8,
85 94 ];
86 95 $sidebar_layout = isset( $layout_mapper[ $layout ] ) ? $layout_mapper[ $layout ] : 1;
87 96
88 - if ( ! betterdocs()->is_pro_active() ) {
97 + // Sidebars 2, 3 and 6 ship in Pro; every other layout's template is in Free.
98 + if ( ! betterdocs()->is_pro_active() && in_array( $sidebar_layout, [ 2, 3, 6 ], true ) ) {
89 99 $sidebar_layout = 1;
90 100 }
91 101
92 102 add_filter( 'betterdocs_base_terms_args', [ $this, 'filter_base_args' ], 10, 1 );
@@ -122,10 +132,9 @@
122 132 'terms_orderby' => $settings['terms_orderby'] == 'doc_category_order' ? 'betterdocs_order' : $settings['terms_orderby'],
123 133 'terms_include' => array_diff( $this->string_to_array( $settings['includeCategories'] ), $this->string_to_array( $settings['excludeCategories'] ) ),
124 134 'terms_exclude' => isset( $settings['excludeCategories'] ) ? $this->string_to_array( $settings['excludeCategories'] ) : '',
125 135 'nested_subcategory' => $settings['enableNestedSubcategory'],
126 - 'multiple_knowledge_base' => $default_multiple_kb,
127 - 'kb_slug' => $kb_slug,
136 + 'lazy_load' => ! empty( $settings['enableLazyLoad'] ),
128 137 'sidebar_list' => true,
129 138 'list_icon_url' => '',
130 139 'list_icon_name' => $settings['sidebar_layout'] == 'layout-4' ? '' : ( ! empty( $this->attributes['listIconImageUrl'] ) ? $this->attributes['listIconImageUrl'] : ( ! empty( $this->attributes['listIcon'] ) ? $this->attributes['listIcon'] : ( ! empty( betterdocs()->settings->get( 'docs_list_icon' ) ) ? betterdocs()->settings->get( 'docs_list_icon' )['url'] : 'list' ) ) ),
131 140 'layout_type' => 'block',
@@ -143,8 +152,17 @@
143 152 $default_view_params['number_of_faqs'] = $settings['initialFAQQueryNumber'];
144 153 $default_view_params['faq_term_ids'] = $settings['searchModalQueriesFaqGroupIds'];
145 154 $default_view_params['doc_ids'] = $settings['searchModalQueryDocIds'];
146 155 $default_view_params['doc_term_ids'] = $settings['searchModalQueryTermIds'];
156 + }
157 +
158 + // Pass a KB scope only when one is explicitly selected on the block. When none is
159 + // set, omit kb_slug so the betterdocs_sidebar_template_shortcode_params filter
160 + // (Pro/MKB) can inject the current knowledge_base context on KB templates — the
161 + // same path the default sidebar uses. (Passing kb_slug='' would block injection.)
162 + if ( ! empty( $kb_slug ) ) {
163 + $default_view_params['shortcode_attr']['kb_slug'] = $kb_slug;
164 + $default_view_params['shortcode_attr']['multiple_knowledge_base'] = (bool) $default_multiple_kb;
147 165 }
148 166
149 167 return $default_view_params;
150 168 }