| @@ -1,131 +1,99 @@ | ||
| 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. | |
| 2 | + | |
| 3 | 3 | namespace WPDeveloper\BetterDocs\Editors\BlockEditor\Blocks; |
| 4 | 4 | |
| 5 | -if ( ! defined( 'ABSPATH' ) ) { | |
| 6 | - exit; | |
| 7 | -} | |
| 8 | - | |
| 9 | - | |
| 10 | 5 | use WPDeveloper\BetterDocs\Editors\BlockEditor\Block; |
| 11 | 6 | |
| 12 | 7 | class Sidebar extends Block { |
| 13 | 8 | |
| 14 | - public $view_wrapper = 'betterdocs-toc-block'; | |
| 9 | + public $view_wrapper = 'betterdocs-toc-block'; | |
| 15 | 10 | |
| 16 | - protected $editor_styles = [ | |
| 17 | - 'betterdocs-sidebar', | |
| 18 | - 'betterdocs-search-modal', | |
| 19 | - 'betterdocs-extend-search-modal' | |
| 20 | - ]; | |
| 11 | + protected $editor_styles = [ | |
| 12 | + 'betterdocs-sidebar' | |
| 13 | + ]; | |
| 21 | 14 | |
| 22 | - protected $frontend_styles = [ | |
| 23 | - 'betterdocs-sidebar', | |
| 24 | - 'betterdocs-fontawesome' | |
| 25 | - ]; | |
| 15 | + protected $frontend_styles = [ | |
| 16 | + 'betterdocs-sidebar' | |
| 17 | + ]; | |
| 26 | 18 | |
| 27 | - protected $frontend_scripts = [ | |
| 28 | - 'betterdocs', | |
| 29 | - 'betterdocs-category-grid', | |
| 30 | - 'betterdocs-search-modal' | |
| 31 | - ]; | |
| 19 | + protected $frontend_scripts = [ | |
| 20 | + 'betterdocs', | |
| 21 | + 'betterdocs-category-grid' | |
| 22 | + ]; | |
| 32 | 23 | |
| 33 | - public function get_name() { | |
| 34 | - return 'sidebar'; | |
| 35 | - } | |
| 24 | + public function get_name() { | |
| 25 | + return 'sidebar'; | |
| 26 | + } | |
| 36 | 27 | |
| 37 | - public function register_scripts() { | |
| 38 | - if( is_admin() ){ // load for wordpress admin panel only | |
| 39 | - if ( function_exists( 'betterdocs_pro' ) && betterdocs_pro()->assets != null ) { // get the sidebar modal on gutenberg edit mode | |
| 40 | - betterdocs_pro()->assets->enqueue( 'betterdocs-extend-search-modal', 'public/js/extend-search-modal.js', [] ); | |
| 41 | - } | |
| 42 | - $this->assets_manager->enqueue( | |
| 43 | - 'betterdocs-search-modal', | |
| 44 | - 'shortcodes/js/search-modal.js', | |
| 45 | - [ 'jquery' ] | |
| 46 | - ); | |
| 47 | - } | |
| 48 | - } | |
| 49 | - | |
| 50 | 28 | public function get_default_attributes() { |
| 51 | 29 | return [ |
| 52 | - 'blockId' => '', | |
| 53 | - 'sidebar_layout' => 'layout-1', | |
| 54 | - 'selectKB' => '', | |
| 55 | - 'includeCategories' => '', | |
| 56 | - 'excludeCategories' => '', | |
| 57 | - 'terms_per_page' => -1, | |
| 58 | - 'terms_order' => 'asc', | |
| 59 | - 'terms_orderby' => 'doc_category_order', | |
| 60 | - 'docs_per_page' => -1, | |
| 61 | - 'postsOrderBy' => 'title', | |
| 62 | - 'postsOrder' => 'asc', | |
| 63 | - 'enableNestedSubcategory' => false, | |
| 64 | - 'docs_per_subcategory' => 10, | |
| 65 | - 'titleTag' => 'h1', | |
| 66 | - 'show_count' => false, | |
| 67 | - 'enableStickyTOC' => false, | |
| 68 | - 'listIcon' => '', | |
| 69 | - 'listIconImageUrl' => '', | |
| 70 | - 'initialDocsQueryNumber' => 5, | |
| 71 | - 'initialFAQQueryNumber' => 5, | |
| 72 | - 'searchModalQueryTermIds' => '', //for search modal | |
| 73 | - 'searchModalQueryDocIds' => '', //for search modal | |
| 74 | - 'searchModalQueriesFaqGroupIds' => '' | |
| 30 | + 'blockId' => '', | |
| 31 | + 'sidebar_layout' => 'layout-1', | |
| 32 | + 'selectKB' => '', | |
| 33 | + 'includeCategories' => '', | |
| 34 | + 'excludeCategories' => '', | |
| 35 | + 'terms_per_page' => -1, | |
| 36 | + 'terms_order' => 'asc', | |
| 37 | + 'terms_orderby' => 'doc_category_order', | |
| 38 | + 'docs_per_page' => -1, | |
| 39 | + 'docs_orderby' => 'title', | |
| 40 | + 'docs_order' => 'asc', | |
| 41 | + 'enableNestedSubcategory' => false, | |
| 42 | + 'docs_per_subcategory' => 10, | |
| 43 | + 'titleTag' => 'h1', | |
| 44 | + 'show_count' => false, | |
| 45 | + 'enableStickyTOC' => false | |
| 75 | 46 | ]; |
| 76 | 47 | } |
| 77 | 48 | |
| 78 | - public function render( $attributes, $content ) { | |
| 79 | - $layout = isset( $this->attributes['sidebar_layout'] ) ? $this->attributes['sidebar_layout'] : 'layout-1'; | |
| 80 | - $layout = str_replace( 'layout-', '', $layout ); | |
| 81 | - $layout_mapper = [ | |
| 82 | - 1 => 1, | |
| 83 | - 2 => 4, | |
| 84 | - 3 => 5, | |
| 85 | - 4 => 2, | |
| 86 | - 5 => 3, | |
| 87 | - 6 => 6, | |
| 88 | - 7 => 7, | |
| 89 | - 8 => 8, | |
| 90 | - ]; | |
| 91 | - $sidebar_layout = isset( $layout_mapper[ $layout ] ) ? $layout_mapper[ $layout ] : 1; | |
| 49 | + public function render( $attributes, $content ) { | |
| 50 | + $layout = isset( $this->attributes['sidebar_layout'] ) ? $this->attributes['sidebar_layout'] : 'layout-1'; | |
| 51 | + $layout = str_replace( 'layout-', '', $layout ); | |
| 52 | + $layout_mapper = [ | |
| 53 | + 1 => 1, | |
| 54 | + 2 => 4, | |
| 55 | + 3 => 5, | |
| 56 | + 4 => 2, | |
| 57 | + 5 => 3, | |
| 58 | + 6 => 6 | |
| 59 | + ]; | |
| 60 | + $sidebar_layout = $layout_mapper[$layout]; | |
| 92 | 61 | |
| 93 | - if ( ! betterdocs()->is_pro_active() ) { | |
| 94 | - $sidebar_layout = 1; | |
| 95 | - } | |
| 62 | + if ( ! betterdocs()->is_pro_active() ) { | |
| 63 | + $sidebar_layout = 1; | |
| 64 | + } | |
| 96 | 65 | |
| 97 | - add_filter( 'betterdocs_base_terms_args', [ $this, 'filter_base_args' ], 10, 1 ); | |
| 98 | - $this->views( 'templates/sidebars/sidebar-' . $sidebar_layout ); | |
| 99 | - if ( $this->attributes['enableStickyTOC'] && $sidebar_layout == 1 ) { | |
| 100 | - $this->views( 'widgets/sticky-toc-block' ); | |
| 101 | - } | |
| 102 | - remove_filter( 'betterdocs_base_terms_args', [ $this, 'filter_base_args' ], 10 ); | |
| 103 | - } | |
| 66 | + add_filter( 'betterdocs_base_terms_args', [$this, 'filter_base_args'], 10, 1 ); | |
| 67 | + $this->views( 'templates/sidebars/sidebar-' . $sidebar_layout ); | |
| 68 | + if ( $this->attributes['enableStickyTOC'] && $sidebar_layout == 1 ) { | |
| 69 | + $this->views( 'widgets/sticky-toc-block' ); | |
| 70 | + } | |
| 71 | + remove_filter( 'betterdocs_base_terms_args', [$this, 'filter_base_args'], 10 ); | |
| 72 | + } | |
| 104 | 73 | |
| 105 | - public function filter_base_args( $term_args ) { | |
| 106 | - if ( $term_args['orderby'] == 'doc_category_order' ) { | |
| 107 | - $term_args['meta_key'] = 'doc_category_order'; | |
| 108 | - $term_args['orderby'] = 'meta_value_num'; | |
| 109 | - } | |
| 110 | - return $term_args; | |
| 111 | - } | |
| 74 | + public function filter_base_args( $term_args ) { | |
| 75 | + if ( $term_args['orderby'] == 'doc_category_order' ) { | |
| 76 | + $term_args['meta_key'] = 'doc_category_order'; | |
| 77 | + $term_args['orderby'] = 'meta_value_num'; | |
| 78 | + } | |
| 79 | + return $term_args; | |
| 80 | + } | |
| 112 | 81 | |
| 113 | - public function view_params() { | |
| 114 | - $settings = &$this->attributes; | |
| 82 | + public function view_params() { | |
| 83 | + $settings = &$this->attributes; | |
| 115 | 84 | |
| 116 | - $default_multiple_kb = betterdocs()->settings->get( 'multiple_kb' ); | |
| 117 | - $kb_slug = ! empty( $settings['selectKB'] ) && isset( $settings['selectKB'] ) ? json_decode( $settings['selectKB'] )->value : ''; | |
| 118 | - $layout_seven_params = []; | |
| 85 | + $default_multiple_kb = betterdocs()->settings->get( 'multiple_kb' ); | |
| 86 | + $kb_slug = ! empty( $settings['selectKB'] ) && isset( $settings['selectKB'] ) ? json_decode( $settings['selectKB'] )->value : ''; | |
| 119 | 87 | |
| 120 | - if ( $settings['sidebar_layout'] == 'layout-1' || $settings['sidebar_layout'] == 'layout-6' || $settings['sidebar_layout'] == 'layout-7' ) { | |
| 121 | - $settings['show_count'] = true; | |
| 122 | - } | |
| 88 | + if( $settings['sidebar_layout'] == 'layout-1' || $settings['sidebar_layout'] == 'layout-6' ) { | |
| 89 | + $settings['show_count'] = true; | |
| 90 | + } | |
| 123 | 91 | |
| 124 | - $default_view_params = [ | |
| 92 | + return [ | |
| 125 | 93 | 'shortcode_attr' => [ |
| 126 | 94 | 'terms_order' => $settings['terms_order'], |
| 127 | - 'terms_orderby' => $settings['terms_orderby'] == 'doc_category_order' ? 'betterdocs_order' : $settings['terms_orderby'], | |
| 95 | + 'terms_orderby' => $settings['terms_orderby'], | |
| 128 | 96 | 'terms_include' => array_diff( $this->string_to_array( $settings['includeCategories'] ), $this->string_to_array( $settings['excludeCategories'] ) ), |
| 129 | 97 | 'terms_exclude' => isset( $settings['excludeCategories'] ) ? $this->string_to_array( $settings['excludeCategories'] ) : '', |
| 130 | 98 | 'nested_subcategory' => $settings['enableNestedSubcategory'], |
| 131 | 99 | 'multiple_knowledge_base' => $default_multiple_kb, |
| @@ -130,27 +98,12 @@ | ||
| 130 | 98 | 'nested_subcategory' => $settings['enableNestedSubcategory'], |
| 131 | 99 | 'multiple_knowledge_base' => $default_multiple_kb, |
| 132 | 100 | 'kb_slug' => $kb_slug, |
| 133 | 101 | 'sidebar_list' => true, |
| 134 | - 'list_icon_url' => '', | |
| 135 | - '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' ) ) ), | |
| 136 | - 'layout_type' => 'block', | |
| 137 | 102 | 'disable_customizer_style' => true, |
| 138 | 103 | 'posts_per_page' => -1, |
| 139 | 104 | 'title_tag' => $settings['titleTag'], |
| 140 | - 'show_count' => $settings['show_count'], | |
| 141 | - 'orderby' => $settings['postsOrderBy'], | |
| 142 | - 'order' => $settings['postsOrder'] | |
| 105 | + 'show_count' => $settings['show_count'] | |
| 143 | 106 | ] |
| 144 | 107 | ]; |
| 145 | - | |
| 146 | - if ( $settings['sidebar_layout'] == 'layout-7' ) { | |
| 147 | - $default_view_params['number_of_docs'] = $settings['initialDocsQueryNumber']; | |
| 148 | - $default_view_params['number_of_faqs'] = $settings['initialFAQQueryNumber']; | |
| 149 | - $default_view_params['faq_term_ids'] = $settings['searchModalQueriesFaqGroupIds']; | |
| 150 | - $default_view_params['doc_ids'] = $settings['searchModalQueryDocIds']; | |
| 151 | - $default_view_params['doc_term_ids'] = $settings['searchModalQueryTermIds']; | |
| 152 | - } | |
| 153 | - | |
| 154 | - return $default_view_params; | |
| 155 | - } | |
| 108 | + } | |
| 156 | 109 | } |