public function get_value_merge_tag($value, $input_id, $entry, $form, $modifier, $raw_value, $url_encode, $esc_html, $format, $nl2br) { $use_value = $modifier == 'value'; $use_price = in_array($modifier, array('price', 'currency')); $format_currency = $modifier == 'currency'; if (is_array($raw_value) && (string) intval($input_id) != $input_id) { $items = array($input_id => $value); //float input Ids. (i.e. 4.1 ). Used when targeting specific checkbox items } elseif (is_array($raw_value)) { $items = $raw_value; } else { $items = array($input_id => $raw_value); } $ary = array(); foreach ($items as $input_id => $item) { if ($use_value) { list($val, $price) = rgexplode('|', $item, 2); } elseif ($use_price) { list($name, $val) = rgexplode('|', $item, 2); if ($format_currency) { $val = GFCommon::to_money($val, rgar($entry, 'currency')); } } elseif ($this->type == 'post_category') { $use_id = strtolower($modifier) == 'id'; $item_value = GFCommon::format_post_category($item, $use_id); $val = RGFormsModel::is_field_hidden($form, $this, array(), $entry) ? '' : $item_value; } else { $val = RGFormsModel::is_field_hidden($form, $this, array(), $entry) ? '' : RGFormsModel::get_choice_text($this, $raw_value, $input_id); } $ary[] = GFCommon::format_variable_value($val, $url_encode, $esc_html, $format); } return GFCommon::implode_non_blank(', ', $ary); }
public static function get_field_results($form_id, $data, $field, $search_criteria) { if (empty($data['entry_count']) || empty($data['field_data'])) { return esc_html__('No entries for this field', 'gravityforms'); } $field_data = $data['field_data']; $entry_count = $data['entry_count']; if (empty($field_data[$field->id])) { return esc_html__('No entries for this field', 'gravityforms'); } $field_results = ''; $field_type = GFFormsModel::get_input_type($field); switch ($field_type) { case 'radio': case 'checkbox': case 'select': case 'rating': case 'multiselect': $results = $field_data[$field->id]; $non_zero_results = is_array($results) ? array_filter($results) : $results; if (empty($non_zero_results)) { $field_results .= esc_html__('No entries for this field', 'gravityforms'); return $field_results; } $choices = $field->choices; $data_table = array(); $data_table[] = array(esc_html__('Choice', 'gravityforms'), esc_html__('Frequency', 'gravityforms')); foreach ($choices as $choice) { $text = $choice['text']; $val = $results[$choice['value']]; $data_table[] = array($text, $val); } $bar_height = 40; $chart_area_height = count($choices) * $bar_height; $chart_options = array('isStacked' => true, 'height' => $chart_area_height + $bar_height, 'chartArea' => array('top' => 0, 'left' => 200, 'height' => $chart_area_height, 'width' => '100%'), 'series' => array('0' => array('color' => 'silver', 'visibleInLegend' => 'false')), 'hAxis' => array('viewWindowMode' => 'explicit', 'viewWindow' => array('min' => 0), 'title' => esc_html__('Frequency', 'gravityforms'))); $data_table_json = htmlentities(json_encode($data_table), ENT_QUOTES, 'UTF-8', true); $options_json = htmlentities(json_encode($chart_options), ENT_QUOTES, 'UTF-8', true); $div_id = 'gresults-results-chart-field-' . $field->id; $height = ''; // = sprintf("height:%dpx", (count($choices) * $bar_height)); $field_results .= sprintf('<div class="gresults-chart-wrapper" style="width: 100%%;%s" id=%s data-datatable=\'%s\' data-options=\'%s\' data-charttype="bar" ></div>', $height, $div_id, $data_table_json, $options_json); break; case 'likert': $results = $field_data[$field->id]; $multiple_rows = $field->gsurveyLikertEnableMultipleRows ? true : false; $scoring_enabled = $field->gsurveyLikertEnableScoring && class_exists('GFSurvey') ? true : false; $n = 100; $xr = 255; $xg = 255; $xb = 255; $yr = 100; $yg = 250; $yb = 100; $field_results .= "<div class='gsurvey-likert-field-results'>"; $field_results .= "<table class='gsurvey-likert'>"; $field_results .= '<tr>'; if ($multiple_rows) { $field_results .= '<td></td>'; } foreach ($field->choices as $choice) { $field_results .= "<td class='gsurvey-likert-choice-label'>" . $choice['text'] . '</td>'; } if ($multiple_rows && $scoring_enabled) { $field_results .= sprintf('<td>%s %s</td>', esc_html__('Average Score', 'gravityforms'), gform_tooltip('gresults_average_row_score', null, true)); } $field_results .= '</tr>'; foreach ($field->gsurveyLikertRows as $row) { $row_text = $row['text']; $row_value = $row['value']; $max = 0; foreach ($field->choices as $choice) { if ($multiple_rows) { $choice_value = rgar($choice, 'value'); $results_row = rgar($results, $row_value); $results_for_choice = rgar($results_row, $choice_value); $max = max(array($max, $results_for_choice)); } else { $max = max(array($max, $results[$choice['value']])); } } $field_results .= '<tr>'; if ($multiple_rows) { $field_results .= "<td class='gsurvey-likert-row-label'>" . $row_text . '</td>'; } foreach ($field->choices as $choice) { $val = $multiple_rows ? $results[$row_value][$choice['value']] : $results[$choice['value']]; $percent = $max > 0 ? round($val / $max * 100, 0) : 0; $red = (int) ($xr + $percent * ($yr - $xr) / ($n - 1)); $green = (int) ($xg + $percent * ($yg - $xg) / ($n - 1)); $blue = (int) ($xb + $percent * ($yb - $xb) / ($n - 1)); $clr = 'rgb(' . $red . ',' . $green . ',' . $blue . ')'; $field_results .= "<td class='gsurvey-likert-results' style='background-color:{$clr}'>" . $val . '</td>'; } if ($multiple_rows && $scoring_enabled) { $row_sum = $results[$row_value]['row_score_sum']; $average_row_score = $row_sum == 0 ? 0 : round($row_sum / $entry_count, 3); $field_results .= "<td class='gsurvey-likert-results'>" . $average_row_score . '</td>'; } $field_results .= '</tr>'; if (false === $multiple_rows) { break; } } $field_results .= '</table>'; $field_results .= '</div>'; if ($scoring_enabled) { $sum = $results['sum_of_scores']; $average_score = $sum == 0 ? 0 : round($sum / $entry_count, 3); if ($multiple_rows) { $average_global_score_tooltip = gform_tooltip('gresults_average_global_score', null, true); $field_results .= sprintf("<div class='gsurvey-likert-score'>%s %s: %s</div>", esc_html__('Average global score', 'gravityforms'), $average_global_score_tooltip, $average_score); } else { $field_results .= sprintf("<div class='gsurvey-likert-score'>%s %s: %s</div>", esc_html__('Average score', 'gravityforms'), gform_tooltip('gresults_average_score', null, true), $average_score); } } break; case 'rank': $results = $field_data[$field->id]; arsort($results); $field_results .= "<div class='gsurvey-rank-field-results'>"; $field_results .= ' <table>'; $field_results .= " <tr class='gresults-results-field-table-header'>"; $field_results .= " <td class='gresults-rank-field-label'>"; $field_results .= esc_html__('Item', 'gravityforms'); $field_results .= ' </td>'; $field_results .= " <td class='gresults-rank-field-score'>"; $field_results .= esc_html__('Total Score', 'gravityforms') . ' ' . gform_tooltip('gresults_total_score', null, true); $field_results .= ' </td>'; $field_results .= " <td class='gresults-rank-field-rank'>"; $field_results .= esc_html__('Aggregate Rank', 'gravityforms') . ' ' . gform_tooltip('gresults_agg_rank', null, true); $field_results .= ' </td>'; $field_results .= ' </tr>'; $agg_rank = 1; foreach ($results as $choice_val => $score) { $field_results .= '<tr>'; $field_results .= " <td class='gresults-rank-field-label' style='text-align:left;'>"; $field_results .= RGFormsModel::get_choice_text($field, $choice_val); $field_results .= ' </td>'; $field_results .= " <td class='gresults-rank-field-score'>"; $field_results .= $score; $field_results .= ' </td>'; $field_results .= " <td class='gresults-rank-field-rank'>"; $field_results .= $agg_rank; $field_results .= ' </td>'; $field_results .= '</tr>'; $agg_rank++; } $field_results .= '</table>'; $field_results .= '</div>'; break; default: $page_size = 5; $offset = 0; $field_id = $field->id; $more_remaining = false; $default_field_results = self::get_default_field_results($form_id, $field, $search_criteria, $offset, $page_size, $more_remaining); $field_results .= "<div class='gresults-results-field-sub-label'>" . esc_html__('Latest values:', 'gravityforms') . '</div>'; $field_results .= "<ul id='gresults-results-field-content-{$field_id}' class='gresults-results-field-content' data-offset='{$offset}'>"; $field_results .= $default_field_results; $field_results .= '</ul>'; if ($more_remaining) { $field_results .= "<a id='gresults-results-field-more-link-{$field_id}' class='gresults-results-field-more-link' href='javascript:void(0)' onclick='gresults.getMoreResults({$form_id},{$field_id})'>" . esc_html__('Show more', 'gravityforms') . '</a>'; } break; } return $field_results; }
public static function get_field_results($form_id, $data, $field, $search_criteria) { $field_data = $data["field_data"]; $entry_count = $data["entry_count"]; $field_results = ""; if (empty($field_data[$field["id"]])) { $field_results .= __("No entries for this field", "gravityforms"); return $field_results; } $field_type = GFFormsModel::get_input_type($field); switch ($field_type) { case "radio": case "checkbox": case "select": case "rating": case "multiselect": $results = $field_data[$field["id"]]; $non_zero_results = is_array($results) ? array_filter($results) : $results; if (empty($non_zero_results)) { $field_results .= __("No entries for this field", "gravityforms"); return $field_results; } $choices = $field["choices"]; $data_table = array(); $data_table[] = array(__('Choice', "gravityforms"), __('Frequency', "gravityforms")); foreach ($choices as $choice) { $text = $choice["text"]; $val = $results[$choice['value']]; $data_table[] = array($text, $val); } $bar_height = 40; $chart_area_height = count($choices) * $bar_height; $chart_options = array('isStacked' => true, 'height' => $chart_area_height + $bar_height, 'chartArea' => array('top' => 0, 'left' => 200, 'height' => $chart_area_height, 'width' => '100%'), 'series' => array('0' => array('color' => 'silver', 'visibleInLegend' => 'false')), 'hAxis' => array('viewWindowMode' => 'explicit', 'viewWindow' => array('min' => 0), 'title' => __('Frequency', "gravityforms"))); $data_table_json = htmlentities(json_encode($data_table), ENT_QUOTES, 'UTF-8', true); $options_json = htmlentities(json_encode($chart_options), ENT_QUOTES, 'UTF-8', true); $div_id = "gresults-results-chart-field-" . $field["id"]; $height = ""; // = sprintf("height:%dpx", (count($choices) * $bar_height)); $field_results .= sprintf('<div class="gresults-chart-wrapper" style="width: 100%%;%s" id=%s data-datatable=\'%s\' data-options=\'%s\' data-charttype="bar" ></div>', $height, $div_id, $data_table_json, $options_json); break; case "likert": $results = $field_data[$field["id"]]; $multiple_rows = rgar($field, "gsurveyLikertEnableMultipleRows") ? true : false; $n = 100; $xr = 255; $xg = 255; $xb = 255; $yr = 100; $yg = 250; $yb = 100; $field_results .= "<div class='gsurvey-likert-field-results'>"; $field_results .= "<table class='gsurvey-likert'>"; $field_results .= "<tr>"; if ($multiple_rows) { $field_results .= "<td></td>"; } foreach ($field["choices"] as $choice) { $field_results .= "<td class='gsurvey-likert-choice-label'>" . $choice['text'] . "</td>"; } $field_results .= "</tr>"; foreach ($field["gsurveyLikertRows"] as $row) { $row_text = $row["text"]; $row_value = $row["value"]; $max = 0; foreach ($field["choices"] as $choice) { if ($multiple_rows) { $choice_value = rgar($choice, "value"); $results_row = rgar($results, $row_value); $results_for_choice = rgar($results_row, $choice_value); $max = max(array($max, $results_for_choice)); } else { $max = max(array($max, $results[$choice['value']])); } } $field_results .= "<tr>"; if ($multiple_rows) { $field_results .= "<td class='gsurvey-likert-row-label'>" . $row_text . "</td>"; } foreach ($field["choices"] as $choice) { $val = $multiple_rows ? $results[$row_value][$choice['value']] : $results[$choice['value']]; $percent = $max > 0 ? round($val / $max * 100, 0) : 0; $red = (int) ($xr + $percent * ($yr - $xr) / ($n - 1)); $green = (int) ($xg + $percent * ($yg - $xg) / ($n - 1)); $blue = (int) ($xb + $percent * ($yb - $xb) / ($n - 1)); $clr = 'rgb(' . $red . ',' . $green . ',' . $blue . ')'; $field_results .= "<td class='gsurvey-likert-results' style='background-color:{$clr}'>" . $val . "</td>"; } $field_results .= "</tr>"; if (false === $multiple_rows) { break; } } $field_results .= "</table>"; $field_results .= "</div>"; if (rgar($field, "gsurveyLikertEnableScoring") && class_exists("GFSurvey")) { $sum = $results["sum_of_scores"]; $average_score = $sum == 0 ? 0 : round($sum / $entry_count, 3); $field_results .= "<div class='gsurvey-likert-score'>" . __("Average score: ", "gravityforms") . $average_score . "</div>"; } break; case "rank": $results = $field_data[$field["id"]]; arsort($results); $field_results .= "<div class='gsurvey-rank-field-results'>"; $field_results .= " <table>"; $field_results .= " <tr class='gresults-results-field-table-header'>"; $field_results .= " <td class='gresults-rank-field-label'>"; $field_results .= __("Item", "gravityforms"); $field_results .= " </td>"; $field_results .= " <td class='gresults-rank-field-score'>"; $field_results .= __("Total Score", "gravityforms") . " " . gform_tooltip("gresults_total_score", null, true); $field_results .= " </td>"; $field_results .= " <td class='gresults-rank-field-rank'>"; $field_results .= __("Aggregate Rank", "gravityforms") . " " . gform_tooltip("gresults_agg_rank", null, true); $field_results .= " </td>"; $field_results .= " </tr>"; $agg_rank = 1; foreach ($results as $choice_val => $score) { $field_results .= "<tr>"; $field_results .= " <td class='gresults-rank-field-label' style='text-align:left;'>"; $field_results .= RGFormsModel::get_choice_text($field, $choice_val); $field_results .= " </td>"; $field_results .= " <td class='gresults-rank-field-score'>"; $field_results .= $score; $field_results .= " </td>"; $field_results .= " <td class='gresults-rank-field-rank'>"; $field_results .= $agg_rank; $field_results .= " </td>"; $field_results .= "</tr>"; $agg_rank++; } $field_results .= "</table>"; $field_results .= "</div>"; break; default: $page_size = 5; $offset = 0; $field_id = $field["id"]; $field_results .= "<div class='gresults-results-field-sub-label'>" . __("Latest values:", "gravityforms") . "</div>"; $field_results .= "<ul id='gresults-results-field-content-{$field_id}' class='gresults-results-field-content' data-offset='{$page_size}'>"; $more_remaining = false; $field_results .= self::get_default_field_results($form_id, $field, $search_criteria, $offset, $page_size, $more_remaining); $field_results .= "</ul>"; if ($more_remaining) { $field_results .= "<a id='gresults-results-field-more-link-{$field_id}' class='gresults-results-field-more-link' href='javascript:void(0)' onclick='gresults.getMoreResults({$form_id},{$field_id})'>Show more</a>"; } break; } return $field_results; }
public static function get_option_info($value, $option, $use_choice_text) { if (empty($value)) { return array(); } list($name, $price) = explode("|", $value); if ($use_choice_text) { $name = RGFormsModel::get_choice_text($option, $name); } return array("name" => $name, "price" => $price); }
/** * Format the entry value for display on the entry detail page and for the {all_fields} merge tag. * * @param string|array $value The field value. * @param string $currency The entry currency code. * @param bool|false $use_text When processing choice based fields should the choice text be returned instead of the value. * @param string $format The format requested for the location the merge is being used. Possible values: html, text or url. * @param string $media The location where the value will be displayed. Possible values: screen or email. * * @return string */ public function get_value_entry_detail($value, $currency = '', $use_text = false, $format = 'html', $media = 'screen') { $ordered_values = !empty($value) ? explode(',', $value) : ''; $new_value = ''; if (is_array($ordered_values)) { switch ($format) { case 'text': $c = 1; foreach ($ordered_values as &$ordered_value) { $ordered_value = $c++ . '. ' . RGFormsModel::get_choice_text($this, $ordered_value); } $new_value = implode(', ', $ordered_values); break; default: foreach ($ordered_values as $ordered_value) { $new_value .= sprintf('<li>%s</li>', RGFormsModel::get_choice_text($this, $ordered_value)); } $new_value = sprintf("<ol class='gsurvey-rank-entry'>%s</ol>", $new_value); } } return $new_value; }
/** * Display the radio field type * * @package GravityView * @subpackage GravityView/templates/fields */ $gravityview_view = GravityView_View::getInstance(); extract($gravityview_view->getCurrentField()); $display_type = isset($field_settings['choice_display']) ? $field_settings['choice_display'] : 'value'; $output = ''; if (floatval($field_id) === floor(floatval($field_id))) { if ('value' === $display_type) { // For the complete field value $output = $display_value; } else { $output = RGFormsModel::get_choice_text($field, $display_value); } } else { // For part of the field value $entry_keys = array_keys($entry); foreach ($entry_keys as $input_key) { if (is_numeric($input_key) && floatval($input_key) === floatval($field_id)) { if (in_array($field['type'], array('radio', 'checkbox')) && !empty($entry[$input_key])) { $output = apply_filters('gravityview_field_tick', '<span class="dashicons dashicons-yes"></span>', $entry, $field); } else { $output = $entry[$input_key]; } } } } echo $output;
/** * Format the entry value before it is used in entry exports and by framework add-ons using GFAddOn::get_field_value(). * * @param array $entry The entry currently being processed. * @param string $input_id The field or input ID. * @param bool|false $use_text When processing choice based fields should the choice text be returned instead of the value. * @param bool|false $is_csv Is the value going to be used in the .csv entries export? * * @return string */ public function get_value_export($entry, $input_id = '', $use_text = false, $is_csv = false) { if (empty($input_id)) { $input_id = $this->id; } return RGFormsModel::get_choice_text($this, rgar($entry, $input_id)); }
public function get_product_fields($form, $lead, $use_choice_text = false, $use_admin_label = false) { $products = array(); foreach ($form["fields"] as $field) { $id = $field["id"]; $lead_value = RGFormsModel::get_lead_field_value($lead, $field); $quantity_field = GFCommon::get_product_fields_by_type($form, array("quantity"), $id); $quantity = sizeof($quantity_field) > 0 ? RGFormsModel::get_lead_field_value($lead, $quantity_field[0]) : 1; switch ($field["type"]) { case "product": //ignore products that have been hidden by conditional logic $is_hidden = RGFormsModel::is_field_hidden($form, $field, array(), $lead); if ($is_hidden) { continue; } //if single product, get values from the multiple inputs if (is_array($lead_value)) { $product_quantity = sizeof($quantity_field) == 0 && !rgar($field, "disableQuantity") ? rgget($id . ".3", $lead_value) : $quantity; if (empty($product_quantity)) { continue; } if (!rgget($id, $products)) { $products[$id] = array(); } $products[$id]["name"] = $use_admin_label && !rgempty("adminLabel", $field) ? $field["adminLabel"] : $lead_value[$id . ".1"]; $products[$id]["price"] = rgar($lead_value, $id . ".2"); $products[$id]["quantity"] = $product_quantity; } else { if (!empty($lead_value)) { if (empty($quantity)) { continue; } if (!rgar($products, $id)) { $products[$id] = array(); } if ($field["inputType"] == "price") { $name = $field["label"]; $price = $lead_value; } else { list($name, $price) = explode("|", $lead_value); } $products[$id]["name"] = !$use_choice_text ? $name : RGFormsModel::get_choice_text($field, $name); $products[$id]["price"] = $price; $products[$id]["quantity"] = $quantity; $products[$id]["options"] = array(); } } if (isset($products[$id])) { $options = GFCommon::get_product_fields_by_type($form, array("option"), $id); foreach ($options as $option) { $option_value = RGFormsModel::get_lead_field_value($lead, $option); $option_label = empty($option["adminLabel"]) ? $option["label"] : $option["adminLabel"]; if (is_array($option_value)) { foreach ($option_value as $value) { $option_info = GFCommon::get_option_info($value, $option, $use_choice_text); if (!empty($option_info)) { $products[$id]["options"][] = array("field_label" => rgar($option, "label"), "option_name" => rgar($option_info, "name"), "option_label" => $option_label . ": " . rgar($option_info, "name"), "price" => rgar($option_info, "price")); } } } else { if (!empty($option_value)) { $option_info = GFCommon::get_option_info($option_value, $option, $use_choice_text); $products[$id]["options"][] = array("field_label" => rgar($option, "label"), "option_name" => rgar($option_info, "name"), "option_label" => $option_label . ": " . rgar($option_info, "name"), "price" => rgar($option_info, "price")); } } } } break; } } $shipping_field = GFCommon::get_fields_by_type($form, array("shipping")); $shipping_price = $shipping_name = ""; if (!empty($shipping_field) && !RGFormsModel::is_field_hidden($form, $shipping_field[0], array(), $lead)) { $shipping_price = RGFormsModel::get_lead_field_value($lead, $shipping_field[0]); $shipping_name = $shipping_field[0]["label"]; if ($shipping_field[0]["inputType"] != "singleshipping") { list($shipping_method, $shipping_price) = explode("|", $shipping_price); $shipping_name = $shipping_field[0]["label"] . " ({$shipping_method})"; } } $shipping_price = GFCommon::to_number($shipping_price); $product_info = array("products" => $products, "shipping" => array("name" => $shipping_name, "price" => $shipping_price)); $product_info = apply_filters("gform_product_info_{$form["id"]}", apply_filters("gform_product_info", $product_info, $form, $lead), $form, $lead); return $product_info; }
public function display_poll_on_entry_print($value, $field, $lead, $form) { $new_value = $value; if ($field['type'] == 'poll' && is_array($field['choices'])) { if ($field['inputType'] == 'checkbox') { foreach ($field['choices'] as $choice) { $val = $choice['value']; $text = RGFormsModel::get_choice_text($field, $val); $new_value = str_replace($val, $text, $new_value); } } else { //replacing value with text $new_value = RGFormsModel::get_choice_text($field, $value); } } return $new_value; }
/** * Format the Poll field values for display on the entry detail page and print entry. * * @param string|array $value The field value. * @param GF_Field $field The field currently being processed. * @param array $entry The entry object currently being processed. * @param array $form The form object currently being processed. * * @return string|array */ public function display_poll_on_entry_detail($value, $field, $entry, $form) { if ($field->type == 'poll') { if ($field->is_entry_detail()) { $results = $this->gpoll_get_results($form['id'], $field->id, 'green', true, true, $entry); $new_value = sprintf('<div class="gpoll_entry">%s</div>', rgar($results, 'summary')); $this->gpoll_add_scripts = true; //if original response is not in results display below $selected_values = $this->get_selected_values($form['id'], $field->id, $entry); $possible_choices = $this->get_possible_choices($form['id'], $field->id); foreach ($selected_values as $selected_value) { if (!in_array($selected_value, $possible_choices)) { $new_value = sprintf('%s<h2>%s</h2>%s', $new_value, esc_html__('Original Response', 'gravityformspolls'), $value); break; } } return $new_value; } elseif (is_array($field->choices)) { if ($field->inputType == 'checkbox') { foreach ($field->choices as $choice) { $val = rgar($choice, 'value'); $text = rgar($choice, 'text'); $value = str_replace($val, $text, $value); } } else { $value = RGFormsModel::get_choice_text($field, $value); } } } return $value; }
public function display_survey_fields_on_entry_detail($value, $field, $lead, $form) { if (rgar($field, 'type') !== 'survey') { return $value; } $new_value = $value; $field_type = GFFormsModel::get_input_type($field); switch ($field_type) { case 'likert': $new_value = $this->get_survey_field_content('', $field, $value, $lead['id'], $form['id'], $lead); // if original response is not in results display below // TODO - handle orphaned responses (original choice is deleted) break; case 'rank': $new_value = $this->get_rank_entry_value_formatted($field, $value); break; case 'rating': $new_value = GFCommon::selection_display($value, $field, $currency = '', $use_text = true); break; case 'radio': case 'checkbox': case 'select': if (isset($field['inputs']) && is_array($field['inputs'])) { foreach ($field['choices'] as $choice) { $val = rgar($choice, 'value'); $text = RGFormsModel::get_choice_text($field, $val); $new_value = str_replace($val, $text, $new_value); } } else { $new_value = RGFormsModel::get_choice_text($field, $value); } break; } return $new_value; }
/** * If the field is a Poll type radio, select or checkbox then replace the choice value with the choice text. * * @param string $value The field value. * @param GF_Field|null $field The field object being processed or null. * * @return string */ public function maybe_format_field_values($value, $field) { if (is_object($field) && $field->type == 'quiz') { switch ($field->inputType) { case 'radio': case 'select': return RGFormsModel::get_choice_text($field, $value); case 'checkbox': if (is_array($value)) { foreach ($value as &$choice) { if (!empty($choice)) { $choice = RGFormsModel::get_choice_text($field, $choice); } } } else { foreach ($field->choices as $choice) { $val = rgar($choice, 'value'); $text = rgar($choice, 'text'); $value = str_replace($val, $text, $value); } } } } return $value; }
public function display_poll_on_entry_print($value, $field, $lead, $form) { $new_value = $value; if ($field["type"] == "poll" && is_array($field["choices"])) { if ($field["inputType"] == "checkbox") { foreach ($field["choices"] as $choice) { $val = $choice["value"]; $text = RGFormsModel::get_choice_text($field, $val); $new_value = str_replace($val, $text, $new_value); } } else { //replacing value with text $new_value = RGFormsModel::get_choice_text($field, $value); } } return $new_value; }
/** * Format the Survey field values so they use the choice text instead of values before they are sent to Zapier. * * @param string|array $value The field value. * @param int $form_id The ID of the form currently being processed. * @param string $field_id The ID of the field currently being processed. * @param array $entry The entry object currently being processed. * * @return string|array */ public function zapier_field_value($value, $form_id, $field_id, $entry) { if (!rgblank($value)) { $form_meta = RGFormsModel::get_form_meta($form_id); $field = RGFormsModel::get_field($form_meta, $field_id); if (is_object($field) && $field->type == 'survey') { switch ($field->inputType) { case 'likert': if (is_array($value)) { foreach ($value as $key => &$row) { if (!empty($row)) { $row = $field->get_column_text($value, false, $key); } } } else { return $field->get_column_text($value); } break; case 'rank': case 'rating': case 'radio': case 'select': return $field->get_value_export($entry, $field_id, true); case 'checkbox': foreach ($value as &$choice) { if (!empty($choice)) { $choice = RGFormsModel::get_choice_text($field, $choice); } } } } } return $value; }
public function merge_tag_filter($value, $merge_tag, $options, $field, $raw_value) { if ($merge_tag == 'all_fields' && $field['type'] == 'quiz' && is_array($field['choices'])) { if ($field['inputType'] == 'checkbox') { //parse checkbox string (from $value variable) and replace values with text foreach ($raw_value as $key => $val) { $text = RGFormsModel::get_choice_text($field, $val); $value = str_replace($val, $text, $value); } } else { //replacing value with text $value = RGFormsModel::get_choice_text($field, $value); } } return $value; }