/** * * Shortcode function for book's cover * * * @since 1.0 * @since 3.0 check if placeholder cover should be used * * @param [array] parameters * @param [string] content * * @return HTML output * * @access public * */ function mbdb_shortcode_cover($attr, $content) { $attr = shortcode_atts(array('width' => '', 'align' => 'right', 'wrap' => 'yes', 'book' => ''), $attr); $image_src = ''; $image_src = mbdb_get_book_data('cover', $attr['book']); if ($image_src === false) { // v3.0 check for placeholder image setting $show_placeholder_cover = mbdb_get_option('show_placeholder_cover'); if (is_array($show_placeholder_cover)) { if (in_array('page', $show_placeholder_cover)) { $image_src = mbdb_get_option('coming-soon'); } else { return mbdb_blank_output('cover', ''); } } else { return mbdb_blank_output('cover', ''); } } return mbdb_output_cover($image_src, $attr); }
function widget($args, $instance) { extract($args); $mbdb_bookID = $instance['mbdb_bookID']; $mbdb_widget_type = apply_filters('mbdb_widget_type', $instance['mbdb_widget_type']); $book = null; do_action('mbdb_widget_pre_get_books', $instance); switch ($mbdb_widget_type) { case 'random': // get book ID of a random book $book = apply_filters('mbdb_widget_random_book_list', MBDB()->books->get_random_book(), $instance); break; case "newest": // get book ID of most recent book $book = apply_filters('mbdb_widget_newest_book_list', MBDB()->books->get_most_recent_book(), $instance); break; case "coming-soon": // get books with future or blank release dates $book = apply_filters('mbdb_widget_coming_soon_book_list', MBDB()->books->get_upcoming_book(), $instance); break; case "specific": // make sure seected book is still a valid book $book = apply_filters('mbdb_widget_specific_book_list', MBDB()->books->get($mbdb_bookID), $instance); break; } $book = apply_filters('mbdb_widget_book', $book, $instance); do_action('mbdb_widget_post_get_books', $instance, $book); //output if ($book == null) { $mbdb_bookID = 0; $mbdb_book_title = ''; } else { $mbdb_bookID = $book->book_id; $mbdb_book_title = get_the_title($mbdb_bookID); } $mbdb_widget_title = apply_filters('mbdb_widget_title', $instance['mbdb_widget_title']); $mbdb_widget_show_title = apply_filters('mbdb_widget_show_title', $instance['mbdb_widget_show_title']); $mbdb_cover_size = apply_filters('mbdb_widget_cover_size', $instance['mbdb_widget_cover_size']); $mbdb_bookID = apply_filters('mbdb_widget_bookID', $mbdb_bookID); $mbdb_book_title = apply_filters('mbdb_widget_book_title', $mbdb_book_title); do_action('mbdb_widget_pre_display'); echo $before_widget; echo $before_title . esc_html($mbdb_widget_title) . $after_title; if ($mbdb_bookID == 0) { echo apply_filters('mbdb_widget_no_books_found', '<em>' . __('No books found', 'mooberry-book-manager') . '</em>'); } else { $image_src = $book->cover; $image_id = $book->cover_id; //$image_src = get_post_meta( $mbdb_bookID, '_mbdb_cover', true ); $book_link = get_permalink($mbdb_bookID); if ($book_link != '') { do_action('mbdb_widget_pre_link', $book_link); echo '<A class="mbm-widget-link" HREF="' . esc_url($book_link) . '"> '; } if (!$image_src || $image_src == '') { // v3.0 check for placeholder image setting $show_placeholder_cover = mbdb_get_option('show_placeholder_cover'); if (is_array($show_placeholder_cover)) { if (in_array('widget', $show_placeholder_cover)) { $image_src = mbdb_get_option('coming-soon'); } } } if ($image_src && $image_src !== '') { do_action('mbdb_widget_pre_image', $image_src); $alt = mbdb_get_alt_text($image_id, __('Book Cover:', 'mooberry-book-manager') . ' ' . $mbdb_book_title); echo '<img class="mbm-widget-cover" style="width:' . esc_attr($mbdb_cover_size) . 'px;padding-top:10px;" src="' . esc_url($image_src) . '" ' . $alt . ' /> '; do_action('mbdb_widget_post_image', $image_src); } if ($mbdb_widget_show_title == 'yes') { if ($mbdb_book_title != '') { do_action('mbdb_widget_pre_book_title', $mbdb_book_title); echo '<P><span class="mbm-widget-title">' . esc_html($mbdb_book_title) . '</span></P>'; do_action('mbdb_widget_post_book_title', $mbdb_book_title); } } if ($book_link != '') { echo '</A>'; do_action('mbdb_widget_post_link'); } } //echo '</div>' . echo $after_widget; do_action('mbdb_widget_post_display'); }