function display_x_fields_data($adid, $single = true)
 {
     global $wpdb;
     $ad = AWPCP_Ad::find_by_id($adid);
     $fields = awpcp_get_extra_fields_by_category($ad->ad_category_id, array('hide_private' => true, 'context' => $single ? 'single' : 'listings'));
     $show_empty = get_awpcp_option('show-empty-extra-fields-in-ads');
     $visible = array();
     foreach ($fields as $i => $field) {
         $value = (array) get_field_value($adid, $field->field_name);
         if ($show_empty || !empty($value) && strlen($value[0]) > 0) {
             $visible[] = array('field' => $field, 'value' => $value);
         }
     }
     $allow_html_in_labels = get_awpcp_option('allow-html-in-extra-field-labels');
     $count = count($visible);
     $columns = get_awpcp_option('display-extra-fields-in-columns', 1);
     $rows = ceil($count / $columns);
     $shown = 0;
     $classes = array('awpcp-extra-fields', 'awpcp-extra-fields-columns-' . $columns, 'clearfix');
     $html = '<div class="' . join(' ', $classes) . '">';
     foreach ($visible as $i => $data) {
         $field = $data['field'];
         $value = $data['value'];
         $classes = array('cladinfo', 'awpcp-extra-field-' . $field->field_name);
         $css = awpcp_get_grid_item_css_class($classes, $shown, $columns, $rows);
         $field_label = stripslashes($field->field_label_view);
         $field_label = $allow_html_in_labels ? $field_label : esc_html($field_label);
         if ($show_empty || !empty($value) && strlen($value[0]) > 0) {
             $html .= '<div class="' . esc_attr(join(' ', $css)) . '">';
             $html .= '<label>' . $field_label . ':</label> ';
             if (count($value) > 1) {
                 $html .= '<ul class="awpcp-extra-field-value-list">';
                 foreach ($value as $v) {
                     $v = awpcp_extra_fields_render_field_single_value($field, $v);
                     $html .= '<li>' . $v . '</li>';
                 }
                 $html .= '</ul>';
             } else {
                 if (count($value) > 0) {
                     $value = awpcp_extra_fields_render_field_single_value($field, $value[0]);
                     if ($field->field_input_type === 'Textarea Input') {
                         $html .= sprintf('<div class="awpcp-extra-field-value">%s</div>', $value);
                     } else {
                         $html .= sprintf('<span class="awpcp-extra-field-value">%s</span>', $value);
                     }
                 }
             }
             $html .= '</div>';
             $shown++;
         }
     }
     $html .= '</div>';
     return $html;
 }
Esempio n. 2
0
/**
 * @since 3.0
 */
function awpcp_do_placeholder_images($ad, $placeholder)
{
    global $wpdb;
    global $awpcp_imagesurl;
    static $replacements = array();
    if (isset($replacements[$ad->ad_id])) {
        return $replacements[$ad->ad_id][$placeholder];
    }
    $placeholders = array('featureimg' => '', 'awpcpshowadotherimages' => '', 'images' => '', 'awpcp_image_name_srccode' => '');
    $url = awpcp_listing_renderer()->get_view_listing_url($ad);
    $thumbnail_width = get_awpcp_option('displayadthumbwidth');
    if (awpcp_are_images_allowed()) {
        $images_uploaded = $ad->count_image_files();
        $primary_image = awpcp_media_api()->get_ad_primary_image($ad);
        $gallery_name = 'awpcp-gallery-' . $ad->ad_id;
        if ($primary_image) {
            $large_image = $primary_image->get_large_image_url('large');
            $thumbnail = $primary_image->get_primary_thumbnail_url('primary');
            if (get_awpcp_option('show-click-to-enlarge-link', 1)) {
                $link = '<a class="thickbox enlarge" href="%s">%s</a>';
                $link = sprintf($link, $large_image, __('Click to enlarge image.', 'AWPCP'));
            } else {
                $link = '';
            }
            // single ad
            $content = '<div class="awpcp-ad-primary-image">';
            $content .= '<a class="awpcp-listing-primary-image-thickbox-link thickbox thumbnail" href="%s" rel="%s">';
            $content .= '<img class="thumbshow" src="%s"/>';
            $content .= '</a>%s';
            $content .= '</div>';
            $placeholders['featureimg'] = sprintf($content, esc_attr($large_image), $gallery_name, esc_attr($thumbnail), $link);
            // listings
            $content = '<a class="awpcp-listing-primary-image-listing-link" href="%s"><img src="%s" width="%spx" border="0" alt="%s" /></a>';
            $content = sprintf($content, $url, $thumbnail, $thumbnail_width, awpcp_esc_attr($ad->ad_title));
            $placeholders['awpcp_image_name_srccode'] = $content;
        }
        if ($images_uploaded >= 1) {
            $results = awpcp_media_api()->find_public_images_by_ad_id($ad->ad_id);
            $columns = get_awpcp_option('display-thumbnails-in-columns', 0);
            $rows = $columns > 0 ? ceil(count($results) / $columns) : 0;
            $shown = 0;
            $images = array();
            foreach ($results as $image) {
                $large_image = $image->get_url('large');
                $thumbnail = $image->get_url('thumbnail');
                if ($columns > 0) {
                    $css = join(' ', awpcp_get_grid_item_css_class(array(), $shown, $columns, $rows));
                } else {
                    $css = '';
                }
                $content = '<li class="%s">';
                $content .= '<a class="thickbox" href="%s" rel="%s">';
                $content .= '<img class="thumbshow" src="%s" />';
                $content .= '</a>';
                $content .= '</li>';
                $images[] = sprintf($content, esc_attr($css), esc_attr($large_image), esc_attr($gallery_name), esc_attr($thumbnail));
                $shown = $shown + 1;
            }
            $placeholders['awpcpshowadotherimages'] = join('', $images);
            $content = '<ul class="awpcp-single-ad-images">%s</ul>';
            $placeholders['images'] = sprintf($content, $placeholders['awpcpshowadotherimages']);
        }
    }
    // fallback thumbnail
    if (awpcp_are_images_allowed() && empty($placeholders['awpcp_image_name_srccode'])) {
        $thumbnail = sprintf('%s/adhasnoimage.png', $awpcp_imagesurl);
        $content = '<a class="awpcp-listing-primary-image-listing-link" href="%s"><img src="%s" width="%spx" border="0" alt="%s" /></a>';
        $content = sprintf($content, $url, $thumbnail, $thumbnail_width, awpcp_esc_attr($ad->ad_title));
        $placeholders['awpcp_image_name_srccode'] = $content;
    }
    $placeholders['featureimg'] = apply_filters('awpcp-featured-image-placeholder', $placeholders['featureimg'], 'single', $ad);
    $placeholders['awpcp_image_name_srccode'] = apply_filters('awpcp-featured-image-placeholder', $placeholders['awpcp_image_name_srccode'], 'listings', $ad);
    $placeholders['featured_image'] = $placeholders['featureimg'];
    $placeholders['imgblockwidth'] = "{$thumbnail_width}px";
    $placeholders['thumbnail_width'] = "{$thumbnail_width}px";
    $replacements[$ad->ad_id] = apply_filters('awpcp-placeholders-image', $placeholders, $ad);
    return $replacements[$ad->ad_id][$placeholder];
}