function _wpbdp_render_single() { global $post; $html = ''; $sticky_status = wpbdp_listings_api()->get_sticky_status($post->ID); $html .= sprintf('<div id="wpbdp-listing-%d" class="wpbdp-listing wpbdp-listing-single %s %s %s" itemscope itemtype="http://schema.org/LocalBusiness">', $post->ID, 'single', $sticky_status, apply_filters('wpbdp_listing_view_css', '', $post->ID)); $html .= apply_filters('wpbdp_listing_view_before', '', $post->ID, 'single'); $html .= wpbdp_capture_action('wpbdp_before_single_view', $post->ID); $sticky_tag = ''; if ($sticky_status == 'sticky') { $sticky_tag = sprintf('<div class="stickytag"><img src="%s" alt="%s" border="0" title="%s"></div>', WPBDP_URL . 'core/images/featuredlisting.png', _x('Featured Listing', 'templates', 'WPBDM'), the_title(null, null, false)); } $d = WPBDP_ListingFieldDisplayItem::prepare_set($post->ID, 'listing'); $listing_fields = implode('', WPBDP_ListingFieldDisplayItem::walk_set('html', $d->fields)); $social_fields = implode('', WPBDP_ListingFieldDisplayItem::walk_set('html', $d->social)); // images $thumbnail_id = wpbdp_listings_api()->get_thumbnail_id($post->ID); $images = wpbdp_listings_api()->get_images($post->ID); $extra_images = array(); if (wpbdp_get_option('allow-images')) { foreach ($images as $img) { // create thumbnail of correct size if needed (only in single view to avoid consuming server resources) _wpbdp_resize_image_if_needed($img->ID); if ($img->ID == $thumbnail_id) { continue; } $full_image_data = wp_get_attachment_image_src($img->ID, 'wpbdp-large', false); $full_image_url = $full_image_data[0]; $extra_images[] = sprintf('<a href="%s" class="thickbox" data-lightbox="wpbdpgal" rel="wpbdpgal" target="_blank">%s</a>', $full_image_url, wp_get_attachment_image($img->ID, 'wpbdp-thumb', false, array('class' => 'wpbdp-thumbnail size-thumbnail', 'alt' => the_title(null, null, false), 'title' => the_title(null, null, false)))); } } $vars = array('actions' => wpbdp_render('parts/listing-buttons', array('listing_id' => $post->ID, 'view' => 'single'), false), 'is_sticky' => $sticky_status == 'sticky', 'sticky_tag' => $sticky_tag, 'title' => get_the_title(), 'main_image' => wpbdp_get_option('allow-images') ? wpbdp_listing_thumbnail(null, 'link=picture&class=wpbdp-single-thumbnail') : '', 'listing_fields' => apply_filters('wpbdp_single_listing_fields', $listing_fields, $post->ID), 'fields' => $d->fields, 'listing_id' => $post->ID, 'extra_images' => $extra_images); $vars = apply_filters('wpbdp_listing_template_vars', $vars, $post->ID); $vars = apply_filters('wpbdp_single_template_vars', $vars, $post->ID); $html .= wpbdp_render('businessdirectory-listing', $vars, true); $social_fields = apply_filters('wpbdp_single_social_fields', $social_fields, $post->ID); if ($social_fields) { $html .= '<div class="social-fields cf">' . $social_fields . '</div>'; } $html .= apply_filters('wpbdp_listing_view_after', '', $post->ID, 'single'); $html .= wpbdp_capture_action('wpbdp_after_single_view', $post->ID); if (wpbdp_get_option('show-comment-form')) { $html .= '<div class="comments">'; ob_start(); comments_template(null, true); $html .= ob_get_contents(); ob_end_clean(); $html .= '</div>'; } $html .= '</div>'; return $html; }
/** * Displays the listing main image. * @since 2.3 */ function wpbdp_listing_thumbnail($listing_id = null, $args = array()) { if (!$listing_id) { $listing_id = get_the_ID(); } $args = wp_parse_args($args, array('link' => 'picture', 'class' => '', 'echo' => false)); $main_image = false; $image_img = ''; $image_link = ''; $image_classes = 'wpbdp-thumbnail attachment-wpbdp-thumb ' . $args['class']; if ($thumbnail_id = wpbdp_listings_api()->get_thumbnail_id($listing_id)) { $main_image = get_post($thumbnail_id); } else { $images = wpbdp_listings_api()->get_images($listing_id); if ($images) { $main_image = $images[0]; } } if (!$main_image && function_exists('has_post_thumbnail') && has_post_thumbnail($listing_id)) { $image_img = get_the_post_thumbnail($listing_id, 'wpbdp-thumb'); } elseif (!$main_image && wpbdp_get_option('use-default-picture')) { $image_img = sprintf('<img src="%s" alt="%s" title="%s" border="0" width="%d" class="%s" />', WPBDP_URL . 'core/images/default-image-big.gif', get_the_title($listing_id), get_the_title($listing_id), wpbdp_get_option('thumbnail-width'), $image_classes); $image_link = $args['link'] == 'picture' ? WPBDP_URL . 'core/images/default-image-big.gif' : ''; } elseif ($main_image) { _wpbdp_resize_image_if_needed($main_image->ID); $image_img = wp_get_attachment_image($main_image->ID, 'wpbdp-thumb', false, array('alt' => get_the_title($listing_id), 'title' => get_the_title($listing_id), 'class' => $image_classes)); if ($args['link'] == 'picture') { $full_image_data = wp_get_attachment_image_src($main_image->ID, 'wpbdp-large'); $image_link = $full_image_data[0]; } } if (!$image_link && $args['link'] == 'listing') { $image_link = get_permalink($listing_id); } if ($image_img) { if (!$image_link) { return $image_img; } else { return sprintf('<div class="listing-thumbnail"><a href="%s" class="%s" %s>%s</a></div>', $image_link, $args['link'] == 'picture' ? 'thickbox' : '', $args['link'] == 'picture' ? 'data-lightbox="wpbdpgal" rel="wpbdpgal"' : '', $image_img); } } return ''; }