<?php
add_shortcode('gform_preview', 'do_gform_preview');
function do_gform_preview($atts, $content = null) {
extract( shortcode_atts( array(
'field' => '',
'raw' => false,
), $atts ) );
$form_id = rgpost('gform_submit');
$field_id = $field;
if(!$field_id || !$form_id)
return '';
$form = RGFormsModel::get_form_meta($form_id);
$field = RGFormsModel::get_field($form, $field_id);
$is_hidden = RGFormsModel::is_field_hidden($form, $field, array());
if($is_hidden)
return '';
if(is_array($field['inputs']) && intval($field_id) == $field_id) {
$value = array();
foreach($field['inputs'] as $input) {
$value[(string)$input['id']] = gform_get_input_value($input['id'], $field, $form);
}
} else {
$value = gform_get_input_value($field_id, $field, $form);
}
if(!$raw) {
if(!$field) {
$display_value = rgpost($field_id);
} else if(in_array(RGFormsModel::get_input_type($field), array('fileupload'))) {
$display_value = gform_preview_image_display($field, $value, $form);
} else {
$currency = GFCommon::get_currency();
$display_value = GFCommon::get_lead_field_display($field, $value, $currency);
}
$display_value = !$display_value && !array_empty($value) ? $value : $display_value;
} else {
$display_value = $value;
}
if($content && $display_value)
$display_value = sprintf($content, $display_value);
$display_value = apply_filters('gws_preview_value', $display_value, $value, $content);
return do_shortcode($display_value);
}
function gform_get_input_value($input_id, $field, $form) {
$input_name = "input_" . str_replace('.', '_', $input_id);
$value = rgpost($input_name);
/*if(!$value)
$value = RGFormsModel::get_default_value($field, $input_id);*/
if(in_array(RGFormsModel::get_input_type($field), array('fileupload', 'post_image'))) {
return gform_preview_image_value($input_name, $field, $form);
}
return RGFormsModel::prepare_value($form, $field, $value, $input_name, false);
}
function gform_preview_image_value($input_name, $field, $form, $raw = false) {
$file_info = RGFormsModel::get_temp_filename($form['id'], $input_name);
$source = RGFormsModel::get_upload_url($form['id']) . "/tmp/" . $file_info["temp_filename"];
if(!$file_info)
return '';
switch(RGFormsModel::get_input_type($field)){
case "post_image":
$image_title = isset($_POST["{$input_name}_1"]) ? strip_tags($_POST["{$input_name}_1"]) : "";
$image_caption = isset($_POST["{$input_name}_4"]) ? strip_tags($_POST["{$input_name}_4"]) : "";
$image_description = isset($_POST["{$input_name}_7"]) ? strip_tags($_POST["{$input_name}_7"]) : "";
$value = !empty($source) ? $source . "|:|" . $image_title . "|:|" . $image_caption . "|:|" . $image_description : "";
break;
case "fileupload" :
$value = $source;
break;
}
return $value;
}
function gform_preview_image_display($field, $value, $form) {
switch(RGFormsModel::get_input_type($field)){
case "fileupload" :
$input_name = "input_" . str_replace('.', '_', $field['id']);
$file_info = RGFormsModel::get_temp_filename($form['id'], $input_name);
$file_path = $value;
if(!empty($file_path)){
$file_path = esc_attr(str_replace(" ", "%20", $file_path));
$value = "<a href='$file_path' target='_blank' title='" . __("Click to view", "gravityforms") . "'>" . $file_info['uploaded_filename'] . "</a>";
}
return $value;
break;
}
return $value;
}
if(!function_exists('array_empty')) {
function array_empty($mixed) {
if (is_array($mixed)) {
foreach ($mixed as $value) {
if (!array_empty($value)) {
return false;
}
}
}
elseif (!empty($mixed)) {
return false;
}
return true;
}
}