diff --git a/inc/admin/namespace.php b/inc/admin/namespace.php index 1b7ddf6..0ea4914 100644 --- a/inc/admin/namespace.php +++ b/inc/admin/namespace.php @@ -7,6 +7,8 @@ namespace Aldine\Admin; use PressbooksMix\Assets; +const BLOG_OPTION = 'pressbooks_aldine_in_catalog'; + /** * @param string $hook */ @@ -41,9 +43,9 @@ function update_catalog() { $in_catalog = $_POST['in_catalog']; if ( $in_catalog == 'true' ) { - update_blog_option( $blog_id, 'in_catalog', 1 ); + update_blog_option( $blog_id, \Aldine\Admin\BLOG_OPTION, 1 ); } else { - delete_blog_option( $blog_id, 'in_catalog' ); + delete_blog_option( $blog_id, \Aldine\Admin\BLOG_OPTION ); } } @@ -64,7 +66,7 @@ function catalog_columns( $columns ) { function catalog_column( $column, $blog_id ) { if ( 'in_catalog' == $column && ! is_main_site( $blog_id ) ) { ?> - disabled="disabled" title="" /> set_query_params([ - 'page' => $page, - 'per_page' => $per_page, - ]); - $response = rest_do_request( $request ); - $pages = $response->headers['X-WP-TotalPages']; - $data = rest_get_server()->response_to_data( $response, true ); - $books = []; - foreach ( $data as $key => $book ) { - $book['title'] = $book['metadata']['name']; - $book['date-published'] = ( isset( $book['metadata']['datePublished'] ) ) ? - $book['metadata']['datePublished'] : - ''; - $book['subject'] = ( isset( $book['metadata']['about'][0] ) ) - ? $book['metadata']['about'][0]['identifier'] - : ''; - $books[] = $book; - } - if ( $orderby === 'latest' ) { - $books = wp_list_sort( $books, $orderby, 'desc' ); - } else { - $books = wp_list_sort( $books, $orderby ); + + if ( ! defined( 'PB_PLUGIN_VERSION' ) ) { + return [ 'pages' => 0, 'books' => [] ]; // Bail + } + + $request = new \WP_REST_Request( 'GET', '/pressbooks/v2/books' ); + $request->set_query_params( + [ + 'page' => $page, + 'per_page' => $per_page, + ] + ); + $response = rest_do_request( $request ); + $pages = $response->headers['X-WP-TotalPages']; + $data = rest_get_server()->response_to_data( $response, true ); + $books = []; + foreach ( $data as $key => $book ) { + if ( ! get_blog_option( $book['id'], \Aldine\Admin\BLOG_OPTION ) ) { + continue; // Skip } - return [ 'pages' => $pages, 'books' => $books ]; + $book['title'] = $book['metadata']['name']; + $book['date-published'] = $book['metadata']['datePublished'] ?? ''; + $book['subject'] = $book['metadata']['about'][0]['identifier'] ?? ''; + $books[] = $book; + } + + if ( $orderby === 'latest' ) { + $books = wp_list_sort( $books, $orderby, 'desc' ); } else { - return [ 'pages' => 0, 'books' => [] ]; + $books = wp_list_sort( $books, $orderby ); } + + return [ 'pages' => $pages, 'books' => $books ]; } /**