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; }
/** * @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]; }