@ -7,47 +7,49 @@
namespace Aldine\Helpers;
use Pressbooks\Licensing;
/**
* Get catalog data.
*
* @param int $page
* @param int $per_page
* @param string $orderby
* @param string $license
* @param string $subject
*
* @return array
*/
function get_catalog_data( $page = 1, $per_page = 10, $orderby = 'title', $license = '', $subject = '' ) {
if ( defined( 'PB_PLUGIN_VERSION' ) ) {
$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 ) {
$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 ];
}
/**