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 '';
}