| @@ -1,5 +1,60 @@ | ||
| 1 | 1 | <?php |
| 2 | - $_defined_vars = get_defined_vars(); | |
| 3 | - $_params = isset( $_defined_vars['params'] ) ? $_defined_vars['params'] : []; | |
| 4 | - $view_object->get( 'template-parts/category-list', $_params ); | |
| 5 | -?> | |
| 2 | +// phpcs:disable WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- view template receives variables via extract(); prefixing is impractical. | |
| 3 | + | |
| 4 | +if ( ! defined( 'ABSPATH' ) ) { | |
| 5 | + exit; | |
| 6 | +} | |
| 7 | +use WPDeveloper\BetterDocs\Utils\Helper; | |
| 8 | + | |
| 9 | +$_defined_vars = get_defined_vars(); | |
| 10 | +$_params = isset( $_defined_vars['params'] ) ? $_defined_vars['params'] : []; | |
| 11 | +$pagination = isset( $_params['pagination'] ) ? $_params['pagination'] : false; | |
| 12 | + | |
| 13 | +if ( isset( $archive_layout ) && $archive_layout == 'layout-1' ) { | |
| 14 | + $view_object->get( 'template-parts/category-list', $_params ); | |
| 15 | +} elseif ( isset( $archive_layout ) && $archive_layout == 'layout-3' ) { | |
| 16 | + $post_query = new WP_Query( $_params['query_args'] ); | |
| 17 | + $view_object->get( | |
| 18 | + 'template-parts/archive-doc-list-2', | |
| 19 | + [ | |
| 20 | + 'current_category' => $_params['term'], | |
| 21 | + 'post_query' => $post_query, | |
| 22 | + 'docs_list_title_tag' => isset( $_params['docs_list_title_tag'] ) ? $_params['docs_list_title_tag'] : 'h2' | |
| 23 | + ] | |
| 24 | + ); | |
| 25 | + // Nested subcategories — emitted here (not inside the shared leaf template, | |
| 26 | + // which the block and Customizer archive layouts also use) so it stays | |
| 27 | + // scoped to this widget. Sibling after the grid, so it is not a grid cell. | |
| 28 | + $view_object->get( 'template-parts/archive-nested-categories', $_params ); | |
| 29 | +} elseif ( isset( $_params['query_args'] ) ) { | |
| 30 | + $post_query = new WP_Query( $_params['query_args'] ); | |
| 31 | + $view_object->get( | |
| 32 | + 'template-parts/archive-doc-list', | |
| 33 | + [ | |
| 34 | + 'post_query' => $post_query, | |
| 35 | + 'docs_list_title_tag' => isset( $_params['docs_list_title_tag'] ) ? $_params['docs_list_title_tag'] : 'h2' | |
| 36 | + ] | |
| 37 | + ); | |
| 38 | + // Nested subcategories for Layout 2 (scoped to this widget — see above). | |
| 39 | + $view_object->get( 'template-parts/archive-nested-categories', $_params ); | |
| 40 | +} | |
| 41 | + | |
| 42 | +if ( isset( $pagination ) && $pagination ) { | |
| 43 | + $current_term = isset( $edit_mode ) && $edit_mode && isset( $widget_type ) && $widget_type == 'elementor' ? Helper::get_highest_docs_term() : ( isset( $_params['term'] ) ? $_params['term'] : '' ); | |
| 44 | + $query_args = isset( $_params['query_args'] ) ? $_params['query_args'] : []; | |
| 45 | + $post_query = new WP_Query( $query_args ); | |
| 46 | + $posts_per_page = isset( $_params['posts_per_page'] ) ? $_params['posts_per_page'] : 10; | |
| 47 | + $total_pages = ceil( ( isset( $post_query->found_posts ) ? $post_query->found_posts : 0 ) / $posts_per_page ); | |
| 48 | + | |
| 49 | + $link = ! is_wp_error( get_term_link( $current_term, 'doc_category' ) ) ? get_term_link( $current_term, 'doc_category' ) : ( get_the_ID() != false ? get_permalink( get_the_ID() ) : '' ); | |
| 50 | + | |
| 51 | + $view_object->get( | |
| 52 | + 'template-parts/pagination', | |
| 53 | + [ | |
| 54 | + 'total_pages' => $total_pages, | |
| 55 | + 'link' => $link, | |
| 56 | + 'current_page' => isset( $_params['page'] ) ? $_params['page'] : 1, | |
| 57 | + 'template' => 'doc_category' | |
| 58 | + ] | |
| 59 | + ); | |
| 60 | +} | |