Browse Source

Fix sorting. Fix coding standards.

pull/68/head
Dac Chartrand 8 years ago
parent
commit
69b678e9e1
  1. 2
      functions.php
  2. 8
      inc/admin/namespace.php
  3. 49
      inc/helpers/namespace.php
  4. 2
      partials/content-front-page.php

2
functions.php

@ -61,4 +61,4 @@ add_action( 'admin_enqueue_scripts', '\Aldine\Admin\admin_scripts' );
add_action( 'wp_ajax_pressbooks_aldine_update_catalog', '\Aldine\Admin\update_catalog' ); add_action( 'wp_ajax_pressbooks_aldine_update_catalog', '\Aldine\Admin\update_catalog' );
add_filter( 'wpmu_blogs_columns', '\Aldine\Admin\catalog_columns' ); add_filter( 'wpmu_blogs_columns', '\Aldine\Admin\catalog_columns' );
add_action( 'manage_blogs_custom_column', '\Aldine\Admin\catalog_column', 1, 3 ); add_action( 'manage_blogs_custom_column', '\Aldine\Admin\catalog_column', 1, 3 );
add_action( 'manage_sites_custom_column', '\Aldine\Admin\catalog_column', 1, 3 ); add_action( 'manage_sites_custom_column', '\Aldine\Admin\catalog_column', 1, 3 );

8
inc/admin/namespace.php

@ -45,7 +45,7 @@ function update_catalog() {
$blog_id = absint( $_POST['book_id'] ); $blog_id = absint( $_POST['book_id'] );
$in_catalog = $_POST['in_catalog']; $in_catalog = $_POST['in_catalog'];
if ( $in_catalog == 'true' ) { if ( $in_catalog === 'true' ) {
update_blog_option( $blog_id, \Aldine\Admin\BLOG_OPTION, 1 ); update_blog_option( $blog_id, \Aldine\Admin\BLOG_OPTION, 1 );
} else { } else {
delete_blog_option( $blog_id, \Aldine\Admin\BLOG_OPTION ); delete_blog_option( $blog_id, \Aldine\Admin\BLOG_OPTION );
@ -68,9 +68,9 @@ function catalog_columns( $columns ) {
*/ */
function catalog_column( $column, $blog_id ) { function catalog_column( $column, $blog_id ) {
if ( 'in_catalog' == $column && ! is_main_site( $blog_id ) ) { ?> if ( 'in_catalog' === $column && ! is_main_site( $blog_id ) ) { ?>
<input class="in-catalog" type="checkbox" name="in_catalog" value="1" aria-labelledby="in_catalog" <?php checked( get_blog_option( $blog_id, \Aldine\Admin\BLOG_OPTION ), 1 ); ?> <?php <input class="in-catalog" type="checkbox" name="in_catalog" value="1" aria-label="<?php echo esc_attr_x( 'Show in Catalog', 'pressbooks-aldine' ); ?>" <?php checked( get_blog_option( $blog_id, \Aldine\Admin\BLOG_OPTION ), 1 ); ?> <?php
if ( ! get_blog_option( $blog_id, 'blog_public' ) ) { ?>disabled="disabled" title="<?php _e( 'This book is private, so you can&rsquo;t display it in your catalog.', 'pressbooks-aldine' ); ?>"<?php } ?> /> if ( ! get_blog_option( $blog_id, 'blog_public' ) ) { ?>disabled="disabled" title="<?php echo esc_attr_x( 'This book is private, so you can&rsquo;t display it in your catalog.', 'pressbooks-aldine' ); ?>"<?php } ?> />
<?php } <?php }
} }

49
inc/helpers/namespace.php

@ -7,6 +7,9 @@
namespace Aldine\Helpers; namespace Aldine\Helpers;
use Pressbooks\Book;
use function \Pressbooks\Metadata\book_information_to_schema;
/** /**
* @param int $page * @param int $page
* @param int $per_page * @param int $per_page
@ -30,24 +33,32 @@ function get_catalog_data( $page = 1, $per_page = 10, $orderby = 'title', $licen
$args = apply_filters( $args = apply_filters(
'pb_aldine_catalog_query_args', 'pb_aldine_catalog_query_args',
/** @deprecated */ /** @deprecated */
apply_filters( 'pb_publisher_catalog_query_args', [ 'public' => '1' ] ) apply_filters(
'pb_publisher_catalog_query_args',
[
'public' => '1',
'network_id' => get_network()->site_id,
]
)
); );
/** @var \WP_Site $site */ /** @var \WP_Site $site */
$sites = new \WP_Site_Query( $args );
$sites_in_catalog = []; $sites_in_catalog = [];
$sites = new \WP_Site_Query( $args );
foreach ( $sites->sites as $site ) { foreach ( $sites->sites as $site ) {
// TODO: Each call to get_blog_option() is a call to switch_to_blog(). Not good. Use [ https://core.trac.wordpress.org/ticket/37923 ] when available. // TODO: Using switch_to_blog() is a performance problem. Use [ https://core.trac.wordpress.org/ticket/37923 ] when available.
if ( get_blog_option( $site->blog_id, \Aldine\Admin\BLOG_OPTION ) ) { switch_to_blog( $site->blog_id );
if ( get_option( \Aldine\Admin\BLOG_OPTION ) ) {
$site->pb_title = get_bloginfo( 'name' ); // Cool hack! :face_with_rolling_eyes:
$sites_in_catalog[] = $site; $sites_in_catalog[] = $site;
} }
restore_current_blog();
} }
if ( $orderby === 'latest' ) { if ( $orderby === 'latest' ) {
$sites_in_catalog = wp_list_sort( $sites_in_catalog, $orderby, 'desc' ); $sites_in_catalog = wp_list_sort( $sites_in_catalog, 'last_updated', 'DESC' );
} else { } else {
$sites_in_catalog = wp_list_sort( $sites_in_catalog, $orderby ); $sites_in_catalog = wp_list_sort( $sites_in_catalog, 'pb_title', 'ASC' ); //
} }
$total_pages = ceil( count( $sites_in_catalog ) / $per_page ); $total_pages = ceil( count( $sites_in_catalog ) / $per_page );
@ -59,9 +70,7 @@ function get_catalog_data( $page = 1, $per_page = 10, $orderby = 'title', $licen
} }
switch_to_blog( $site->blog_id ); switch_to_blog( $site->blog_id );
$schema = \Pressbooks\Metadata\book_information_to_schema( $schema = book_information_to_schema( Book::getBookInformation() );
\Pressbooks\Book::getBookInformation()
);
$book['title'] = $schema['name']; $book['title'] = $schema['name'];
$book['date-published'] = $schema['datePublished'] ?? ''; $book['date-published'] = $schema['datePublished'] ?? '';
$book['subject'] = $schema['about'][0]['identifier'] ?? ''; $book['subject'] = $schema['about'][0]['identifier'] ?? '';
@ -99,6 +108,7 @@ function get_catalog_licenses() {
* Get licenses currently in use. * Get licenses currently in use.
* *
* @param array $catalog_data * @param array $catalog_data
*
* @return array * @return array
*/ */
function get_available_licenses( $catalog_data ) { function get_available_licenses( $catalog_data ) {
@ -119,6 +129,7 @@ function get_available_licenses( $catalog_data ) {
* Get subjects currently in use. * Get subjects currently in use.
* *
* @param array $catalog_data * @param array $catalog_data
*
* @return array * @return array
*/ */
function get_available_subjects( $catalog_data ) { function get_available_subjects( $catalog_data ) {
@ -136,15 +147,16 @@ function get_available_subjects( $catalog_data ) {
* Return the default (non-page) menu items. * Return the default (non-page) menu items.
* *
* @param string $items * @param string $items
*
* @return string $items * @return string $items
*/ */
function get_default_menu( $items = '' ) { function get_default_menu( $items = '' ) {
$link = ( is_front_page() ) ? network_home_url( '#main' ) : network_home_url( '/' ); $link = ( is_front_page() ) ? network_home_url( '#main' ) : network_home_url( '/' );
$items = sprintf( $items = sprintf(
'<li><a href="%1$s">%2$s</a></li>', '<li><a href="%1$s">%2$s</a></li>',
$link, $link,
__( 'Home', 'pressbooks-aldine' ) __( 'Home', 'pressbooks-aldine' )
) . $items; ) . $items;
if ( get_option( 'pb_network_contact_form' ) ) { if ( get_option( 'pb_network_contact_form' ) ) {
$items .= sprintf( $items .= sprintf(
'<li><a href="%1$s">%2$s</a></li>', '<li><a href="%1$s">%2$s</a></li>',
@ -180,9 +192,10 @@ function get_default_menu( $items = '' ) {
); );
} }
/* @codingStandardsIgnoreStart $items .= sprintf( /* @codingStandardsIgnoreStart $items .= sprintf(
'<li class="header__search js-search"><div class="header__search__form">%s</div></li>', * '<li class="header__search js-search"><div class="header__search__form">%s</div></li>',
get_search_form( false ) * get_search_form( false )
); @codingStandardsIgnoreEnd */ * ); @codingStandardsIgnoreEnd
*/
return $items; return $items;
} }
@ -191,6 +204,7 @@ function get_default_menu( $items = '' ) {
* Echo the default menu. * Echo the default menu.
* *
* @param string $items * @param string $items
*
* @return null * @return null
*/ */
function default_menu( $args = [], $items = '' ) { function default_menu( $args = [], $items = '' ) {
@ -272,6 +286,7 @@ function handle_contact_form_submission() {
* Does a page have page sections? * Does a page have page sections?
* *
* @param int $post_id The page. * @param int $post_id The page.
*
* @return bool * @return bool
*/ */
function has_sections( $post_id ) { function has_sections( $post_id ) {

2
partials/content-front-page.php

@ -17,7 +17,7 @@ $front_page_catalog = get_option( 'pb_front_page_catalog' );
$latest_books_title = get_option( 'pb_front_page_catalog_title', __( 'Our Latest Titles', 'pressbooks-aldine' ) ); $latest_books_title = get_option( 'pb_front_page_catalog_title', __( 'Our Latest Titles', 'pressbooks-aldine' ) );
if ( get_option( 'pb_front_page_catalog' ) ) { if ( get_option( 'pb_front_page_catalog' ) ) {
$page = ( get_query_var( 'page' ) ) ? get_query_var( 'page' ) : 1; $page = ( get_query_var( 'page' ) ) ? get_query_var( 'page' ) : 1;
$catalog_data = get_catalog_data( $page, 3 ); $catalog_data = get_catalog_data( $page, 3, 'latest' );
$previous_page = ( $page > 1 ) ? $page - 1 : 0; $previous_page = ( $page > 1 ) ? $page - 1 : 0;
$next_page = $page + 1; $next_page = $page + 1;
} }

Loading…
Cancel
Save