/** * Fetch Field Label * * @access public * @static * @param array $field GravityView field array * @param array $entry Gravity Forms entry array * @param boolean $force_show_label Whether to always show the label, regardless of field settings * @return string */ public static function field_label($field, $entry = array(), $force_show_label = false) { $gravityview_view = GravityView_View::getInstance(); $form = $gravityview_view->getForm(); $label = ''; if (!empty($field['show_label']) || $force_show_label) { $label = $field['label']; // Support Gravity Forms 1.9+ if (class_exists('GF_Field')) { $field_object = RGFormsModel::get_field($form, $field['id']); if ($field_object) { $input = GFFormsModel::get_input($field_object, $field['id']); // This is a complex field, with lables on a per-input basis if ($input) { // Does the input have a custom label on a per-input basis? Otherwise, default label. $label = !empty($input['customLabel']) ? $input['customLabel'] : $input['label']; } else { // This is a field with one label $label = $field_object->get_field_label(true, $field['label']); } } } // Use Gravity Forms label by default, but if a custom label is defined in GV, use it. if (!empty($field['custom_label'])) { $label = self::replace_variables($field['custom_label'], $form, $entry); } $label .= apply_filters('gravityview_render_after_label', '', $field); } // End $field['show_label'] /** * @since 1.7 */ $label = apply_filters('gravityview/template/field_label', $label, $field, $form, $entry); return $label; }
public function get_field_input($form, $value = '', $entry = null) { $is_entry_detail = $this->is_entry_detail(); $is_form_editor = $this->is_form_editor(); if (is_array($value)) { $value = array_values($value); } $form_id = $form['id']; $id = intval($this->id); $field_id = $is_entry_detail || $is_form_editor || $form_id == 0 ? "input_{$id}" : 'input_' . $form_id . "_{$id}"; $form_id = ($is_entry_detail || $is_form_editor) && empty($form_id) ? rgget('id') : $form_id; $size = $this->size; $disabled_text = $is_form_editor ? "disabled='disabled'" : ''; $class_suffix = $is_entry_detail ? '_admin' : ''; $class = $this->emailConfirmEnabled ? '' : $size . $class_suffix; //Size only applies when confirmation is disabled $form_sub_label_placement = rgar($form, 'subLabelPlacement'); $field_sub_label_placement = $this->subLabelPlacement; $is_sub_label_above = $field_sub_label_placement == 'above' || empty($field_sub_label_placement) && $form_sub_label_placement == 'above'; $sub_label_class_attribute = $field_sub_label_placement == 'hidden_label' ? "class='hidden_sub_label'" : ''; $html_input_type = RGFormsModel::is_html5_enabled() ? 'email' : 'text'; $enter_email_field_input = GFFormsModel::get_input($this, $this->id . ''); $confirm_field_input = GFFormsModel::get_input($this, $this->id . '.2'); $enter_email_label = rgar($enter_email_field_input, 'customLabel') != '' ? $enter_email_field_input['customLabel'] : __('Enter Email', 'gravityforms'); $enter_email_label = apply_filters("gform_email_{$form_id}", apply_filters('gform_email', $enter_email_label, $form_id), $form_id); $confirm_email_label = rgar($confirm_field_input, 'customLabel') != '' ? $confirm_field_input['customLabel'] : __('Confirm Email', 'gravityforms'); $confirm_email_label = apply_filters("gform_email_confirm_{$form_id}", apply_filters('gform_email_confirm', $confirm_email_label, $form_id), $form_id); $single_placeholder_attribute = $this->get_field_placeholder_attribute(); $enter_email_placeholder_attribute = $this->get_input_placeholder_attribute($enter_email_field_input); $confirm_email_placeholder_attribute = $this->get_input_placeholder_attribute($confirm_field_input); if ($is_form_editor) { $single_style = $this->emailConfirmEnabled ? "style='display:none;'" : ''; $confirm_style = $this->emailConfirmEnabled ? '' : "style='display:none;'"; if ($is_sub_label_above) { return "<div class='ginput_container ginput_single_email' {$single_style}>\n <input name='input_{$id}' type='{$html_input_type}' class='" . esc_attr($class) . "' disabled='disabled' {$single_placeholder_attribute} />\n <div class='gf_clear gf_clear_complex'></div>\n </div>\n <div class='ginput_complex ginput_container ginput_confirm_email' {$confirm_style} id='{$field_id}_container'>\n <span id='{$field_id}_container' class='ginput_left'>\n <label for='{$field_id}' {$sub_label_class_attribute}>{$enter_email_label}</label>\n <input class='{$class}' type='text' name='input_{$id}' id='{$field_id}' disabled='disabled' {$enter_email_placeholder_attribute}/>\n </span>\n <span id='{$field_id}_2_container' class='ginput_right'>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$confirm_email_label}</label>\n <input class='{$class}' type='text' name='input_{$id}_2' id='{$field_id}_2' disabled='disabled' {$confirm_email_placeholder_attribute}/>\n </span>\n <div class='gf_clear gf_clear_complex'></div>\n </div>"; } else { return "<div class='ginput_container ginput_single_email' {$single_style}>\n <input class='{$class}' name='input_{$id}' type='{$html_input_type}' class='" . esc_attr($class) . "' disabled='disabled' {$single_placeholder_attribute}/>\n <div class='gf_clear gf_clear_complex'></div>\n </div>\n <div class='ginput_complex ginput_container ginput_confirm_email' {$confirm_style} id='{$field_id}_container'>\n <span id='{$field_id}_container' class='ginput_left'>\n <input class='{$class}' type='text' name='input_{$id}' id='{$field_id}' disabled='disabled' {$enter_email_placeholder_attribute}/>\n <label for='{$field_id}' {$sub_label_class_attribute}>{$enter_email_label}</label>\n </span>\n <span id='{$field_id}_2_container' class='ginput_right'>\n <input class='{$class}' type='text' name='input_{$id}_2' id='{$field_id}_2' disabled='disabled' {$confirm_email_placeholder_attribute}/>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$confirm_email_label}</label>\n </span>\n <div class='gf_clear gf_clear_complex'></div>\n </div>"; } } else { $logic_event = $this->get_conditional_logic_event('keyup'); if ($this->emailConfirmEnabled && !$is_entry_detail) { $first_tabindex = $this->get_tabindex(); $last_tabindex = $this->get_tabindex(); $email_value = is_array($value) ? esc_attr($value[0]) : $value; $confirmation_value = is_array($value) ? esc_attr($value[1]) : rgpost('input_' . $this->id . '_2'); $confirmation_disabled = $is_entry_detail ? "disabled='disabled'" : $disabled_text; if ($is_sub_label_above) { return "<div class='ginput_complex ginput_container' id='{$field_id}_container'>\n <span id='{$field_id}_container' class='ginput_left'>\n <label for='{$field_id}'>" . $enter_email_label . "</label>\n <input class='{$class}' type='{$html_input_type}' name='input_{$id}' id='{$field_id}' value='" . $email_value . "' {$first_tabindex} {$logic_event} {$disabled_text} {$enter_email_placeholder_attribute}/>\n </span>\n <span id='{$field_id}_2_container' class='ginput_right'>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$confirm_email_label}</label>\n <input class='{$class}' type='{$html_input_type}' name='input_{$id}_2' id='{$field_id}_2' value='" . $confirmation_value . "' {$last_tabindex} {$confirmation_disabled} {$confirm_email_placeholder_attribute}/>\n </span>\n <div class='gf_clear gf_clear_complex'></div>\n </div>"; } else { return "<div class='ginput_complex ginput_container' id='{$field_id}_container'>\n <span id='{$field_id}_container' class='ginput_left'>\n <input class='{$class}' type='{$html_input_type}' name='input_{$id}' id='{$field_id}' value='" . $email_value . "' {$first_tabindex} {$logic_event} {$disabled_text} {$enter_email_placeholder_attribute}/>\n <label for='{$field_id}' {$sub_label_class_attribute}>{$enter_email_label}</label>\n </span>\n <span id='{$field_id}_2_container' class='ginput_right'>\n <input class='{$class}' type='{$html_input_type}' name='input_{$id}_2' id='{$field_id}_2' value='" . $confirmation_value . "' {$last_tabindex} {$confirmation_disabled} {$confirm_email_placeholder_attribute}/>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$confirm_email_label}</label>\n </span>\n <div class='gf_clear gf_clear_complex'></div>\n </div>"; } } else { $tabindex = $this->get_tabindex(); $value = esc_attr($value); $class = esc_attr($class); return "<div class='ginput_container'>\n <input name='input_{$id}' id='{$field_id}' type='{$html_input_type}' value='{$value}' class='{$class}' {$tabindex} {$logic_event} {$disabled_text} {$single_placeholder_attribute}/>\n </div>"; } } }
public function get_field_input($form, $value = '', $entry = null) { $is_entry_detail = $this->is_entry_detail(); $is_form_editor = $this->is_form_editor(); $form_id = $form['id']; $id = intval($this->id); $field_id = $is_entry_detail || $is_form_editor || $form_id == 0 ? "input_{$id}" : 'input_' . $form_id . "_{$id}"; $form_sub_label_placement = rgar($form, 'subLabelPlacement'); $field_sub_label_placement = rgar($this, 'subLabelPlacement'); $is_sub_label_above = $field_sub_label_placement == 'above' || empty($field_sub_label_placement) && $form_sub_label_placement == 'above'; $sub_label_class_attribute = $field_sub_label_placement == 'hidden_label' ? "class='hidden_sub_label'" : ''; $disabled_text = $is_form_editor ? "disabled='disabled'" : ''; $hour = $minute = $am_selected = $pm_selected = ''; if (!is_array($value) && !empty($value)) { preg_match('/^(\\d*):(\\d*) ?(.*)$/', $value, $matches); $hour = esc_attr($matches[1]); $minute = esc_attr($matches[2]); $the_rest = strtolower(rgar($matches, 3)); $am_selected = strpos($the_rest, 'am') > -1 ? "selected='selected'" : ''; $pm_selected = strpos($the_rest, 'pm') > -1 ? "selected='selected'" : ''; } else { if (is_array($value)) { $value = array_values($value); $hour = esc_attr($value[0]); $minute = esc_attr($value[1]); $am_selected = strtolower(rgar($value, 2)) == 'am' ? "selected='selected'" : ''; $pm_selected = strtolower(rgar($value, 2)) == 'pm' ? "selected='selected'" : ''; } } $hour_input = GFFormsModel::get_input($this, $this->id . '.1'); $minute_input = GFFormsModel::get_input($this, $this->id . '.2'); $hour_placeholder_attribute = $this->get_input_placeholder_attribute($hour_input); $minute_placeholder_attribute = $this->get_input_placeholder_attribute($minute_input); $hour_tabindex = $this->get_tabindex(); $minute_tabindex = $this->get_tabindex(); $ampm_tabindex = $this->get_tabindex(); $is_html5 = RGFormsModel::is_html5_enabled(); $input_type = $is_html5 ? 'number' : 'text'; $max_hour = $this->timeFormat == '24' ? 23 : 12; $hour_html5_attributes = $is_html5 ? "min='0' max='{$max_hour}' step='1'" : ''; $minute_html5_attributes = $is_html5 ? "min='0' max='59' step='1'" : ''; $ampm_field_style = $is_form_editor && $this->timeFormat == '24' ? "style='display:none;'" : ''; if ($is_form_editor || $this->timeFormat != '24') { $am_text = __('AM', 'gravityforms'); $pm_text = __('PM', 'gravityforms'); $ampm_field = $is_sub_label_above ? "<div class='gfield_time_ampm ginput_container' {$ampm_field_style}>\n <label for='{$field_id}_3'> </label>\n <select name='input_{$id}[]' id='{$field_id}_3' {$ampm_tabindex} {$disabled_text}>\n <option value='am' {$am_selected}>{$am_text}</option>\n <option value='pm' {$pm_selected}>{$pm_text}</option>\n </select>\n </div>" : "<div class='gfield_time_ampm ginput_container' {$ampm_field_style}>\n <select name='input_{$id}[]' id='{$field_id}_3' {$ampm_tabindex} {$disabled_text}>\n <option value='am' {$am_selected}>{$am_text}</option>\n <option value='pm' {$pm_selected}>{$pm_text}</option>\n </select>\n </div>"; } else { $ampm_field = ''; } $hour_label = rgar($hour_input, 'customLabel') != '' ? $hour_input['customLabel'] : __('HH', 'gravityforms'); $minute_label = rgar($minute_input, 'customLabel') != '' ? $minute_input['customLabel'] : _x('MM', 'Abbreviation: Minutes', 'gravityforms'); if ($is_sub_label_above) { return "<div class='clear-multi'>\n <div class='gfield_time_hour ginput_container' id='{$field_id}'>\n <label for='{$field_id}_1' {$sub_label_class_attribute}>{$hour_label}</label>\n <input type='{$input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_1' value='{$hour}' {$hour_tabindex} {$hour_html5_attributes} {$disabled_text} {$hour_placeholder_attribute}/> <i>:</i>\n </div>\n <div class='gfield_time_minute ginput_container'>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$minute_label}</label>\n <input type='{$input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_2' value='{$minute}' {$minute_tabindex} {$minute_html5_attributes} {$disabled_text} {$minute_placeholder_attribute}/>\n </div>\n {$ampm_field}\n </div>"; } else { return "<div class='clear-multi'>\n <div class='gfield_time_hour ginput_container' id='{$field_id}'>\n <input type='{$input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_1' value='{$hour}' {$hour_tabindex} {$hour_html5_attributes} {$disabled_text} {$hour_placeholder_attribute}/> <i>:</i>\n <label for='{$field_id}_1' {$sub_label_class_attribute}>{$hour_label}</label>\n </div>\n <div class='gfield_time_minute ginput_container'>\n <input type='{$input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_2' value='{$minute}' {$minute_tabindex} {$minute_html5_attributes} {$disabled_text} {$minute_placeholder_attribute}/>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$minute_label}</label>\n </div>\n {$ampm_field}\n </div>"; } }
public function get_field_input($form, $value = '', $entry = null) { if (is_array($value)) { $value = array_values($value); } $form_id = $form['id']; $is_entry_detail = $this->is_entry_detail(); $is_form_editor = $this->is_form_editor(); $is_admin = $is_entry_detail || $is_form_editor; $id = (int) $this->id; $field_id = $is_entry_detail || $is_form_editor || $form_id == 0 ? "input_{$id}" : 'input_' . $form_id . "_{$id}"; $class_suffix = $is_entry_detail ? '_admin' : ''; $form_sub_label_placement = rgar($form, 'subLabelPlacement'); $field_sub_label_placement = $this->subLabelPlacement; $is_sub_label_above = $field_sub_label_placement == 'above' || empty($field_sub_label_placement) && $form_sub_label_placement == 'above'; $sub_label_class_attribute = $field_sub_label_placement == 'hidden_label' ? "class='hidden_sub_label screen-reader-text'" : ''; $disabled_text = $is_form_editor ? 'disabled="disabled"' : ''; $first_tabindex = $this->get_tabindex(); $last_tabindex = $this->get_tabindex(); $strength_style = !$this->passwordStrengthEnabled ? "style='display:none;'" : ''; $strength_indicator_label = esc_html__('Strength indicator', 'gravityforms'); $strength = $this->passwordStrengthEnabled || $is_admin ? "<div id='{$field_id}_strength_indicator' class='gfield_password_strength' {$strength_style}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{$strength_indicator_label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input type='hidden' class='gform_hidden' id='{$field_id}_strength' name='input_{$id}_strength' />" : ''; $action = !$is_admin ? "gformShowPasswordStrength(\"{$field_id}\");" : ''; $onchange = $this->passwordStrengthEnabled ? "onchange='{$action}'" : ''; $onkeyup = $this->passwordStrengthEnabled ? "onkeyup='{$action}'" : ''; $confirmation_value = rgpost('input_' . $id . '_2'); $password_value = is_array($value) ? $value[0] : $value; $password_value = esc_attr($password_value); $confirmation_value = esc_attr($confirmation_value); $enter_password_field_input = GFFormsModel::get_input($this, $this->id . ''); $confirm_password_field_input = GFFormsModel::get_input($this, $this->id . '.2'); $enter_password_label = rgar($enter_password_field_input, 'customLabel') != '' ? $enter_password_field_input['customLabel'] : esc_html__('Enter Password', 'gravityforms'); $enter_password_label = gf_apply_filters(array('gform_password', $form_id), $enter_password_label, $form_id); $confirm_password_label = rgar($confirm_password_field_input, 'customLabel') != '' ? $confirm_password_field_input['customLabel'] : esc_html__('Confirm Password', 'gravityforms'); $confirm_password_label = gf_apply_filters(array('gform_password_confirm', $form_id), $confirm_password_label, $form_id); $required_attribute = $this->isRequired ? 'aria-required="true"' : ''; $invalid_attribute = $this->failed_validation ? 'aria-invalid="true"' : 'aria-invalid="false"'; $enter_password_placeholder_attribute = GFCommon::get_input_placeholder_attribute($enter_password_field_input); $confirm_password_placeholder_attribute = GFCommon::get_input_placeholder_attribute($confirm_password_field_input); if ($is_sub_label_above) { return "<div class='ginput_complex{$class_suffix} ginput_container ginput_container_password' id='{$field_id}_container'>\n\t\t\t\t\t<span id='{$field_id}_1_container' class='ginput_left'>\n\t\t\t\t\t\t<label for='{$field_id}' {$sub_label_class_attribute}>{$enter_password_label}</label>\n\t\t\t\t\t\t<input type='password' name='input_{$id}' id='{$field_id}' {$onkeyup} {$onchange} value='{$password_value}' {$first_tabindex} {$enter_password_placeholder_attribute} {$required_attribute} {$invalid_attribute} {$disabled_text}/>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span id='{$field_id}_2_container' class='ginput_right'>\n\t\t\t\t\t\t<label for='{$field_id}_2' {$sub_label_class_attribute}>{$confirm_password_label}</label>\n\t\t\t\t\t\t<input type='password' name='input_{$id}_2' id='{$field_id}_2' {$onkeyup} {$onchange} value='{$confirmation_value}' {$last_tabindex} {$confirm_password_placeholder_attribute} {$required_attribute} {$invalid_attribute} {$disabled_text}/>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class='gf_clear gf_clear_complex'></div>\n\t\t\t\t</div>{$strength}"; } else { return "<div class='ginput_complex{$class_suffix} ginput_container ginput_container_password' id='{$field_id}_container'>\n\t\t\t\t\t<span id='{$field_id}_1_container' class='ginput_left'>\n\t\t\t\t\t\t<input type='password' name='input_{$id}' id='{$field_id}' {$onkeyup} {$onchange} value='{$password_value}' {$first_tabindex} {$enter_password_placeholder_attribute} {$required_attribute} {$invalid_attribute} {$disabled_text}/>\n\t\t\t\t\t\t<label for='{$field_id}' {$sub_label_class_attribute}>{$enter_password_label}</label>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span id='{$field_id}_2_container' class='ginput_right'>\n\t\t\t\t\t\t<input type='password' name='input_{$id}_2' id='{$field_id}_2' {$onkeyup} {$onchange} value='{$confirmation_value}' {$last_tabindex} {$confirm_password_placeholder_attribute} {$required_attribute} {$invalid_attribute} {$disabled_text}/>\n\t\t\t\t\t\t<label for='{$field_id}_2' {$sub_label_class_attribute}>{$confirm_password_label}</label>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class='gf_clear gf_clear_complex'></div>\n\t\t\t\t</div>{$strength}"; } }
public function get_field_input($form, $value = '', $entry = null) { $picker_value = ''; if (is_array($value)) { // GFCommon::parse_date() takes a numeric array. $value = array_values($value); } else { $picker_value = $value; } $format = empty($this->dateFormat) ? 'mdy' : esc_attr($this->dateFormat); $date_info = GFCommon::parse_date($value, $format); $day_value = esc_attr(rgget('day', $date_info)); $month_value = esc_attr(rgget('month', $date_info)); $year_value = esc_attr(rgget('year', $date_info)); $is_entry_detail = $this->is_entry_detail(); $is_form_editor = $this->is_form_editor(); $form_id = $form['id']; $id = intval($this->id); $field_id = $is_entry_detail || $is_form_editor || $form_id == 0 ? "input_{$id}" : 'input_' . $form_id . "_{$id}"; $size = $this->size; $disabled_text = $is_form_editor ? "disabled='disabled'" : ''; $class_suffix = $is_entry_detail ? '_admin' : ''; $class = $size . $class_suffix; $form_sub_label_placement = rgar($form, 'subLabelPlacement'); $field_sub_label_placement = rgar($this, 'subLabelPlacement'); $is_sub_label_above = $field_sub_label_placement == 'above' || empty($field_sub_label_placement) && $form_sub_label_placement == 'above'; $sub_label_class_attribute = $field_sub_label_placement == 'hidden_label' ? "class='hidden_sub_label screen-reader-text'" : ''; $month_input = GFFormsModel::get_input($this, $this->id . '.1'); $day_input = GFFormsModel::get_input($this, $this->id . '.2'); $year_input = GFFormsModel::get_input($this, $this->id . '.3'); $month_sub_label = rgar($month_input, 'customLabel') != '' ? $month_input['customLabel'] : esc_html(_x('MM', 'Abbreviation: Month', 'gravityforms')); $day_sub_label = rgar($day_input, 'customLabel') != '' ? $day_input['customLabel'] : esc_html__('DD', 'gravityforms'); $year_sub_label = rgar($year_input, 'customLabel') != '' ? $year_input['customLabel'] : esc_html__('YYYY', 'gravityforms'); $month_placeholder_attribute = GFCommon::get_input_placeholder_attribute($month_input); $day_placeholder_attribute = GFCommon::get_input_placeholder_attribute($day_input); $year_placeholder_attribute = GFCommon::get_input_placeholder_attribute($year_input); $month_placeholder_value = GFCommon::get_input_placeholder_value($month_input); $day_placeholder_value = GFCommon::get_input_placeholder_value($day_input); $year_placeholder_value = GFCommon::get_input_placeholder_value($year_input); $date_picker_placeholder = $this->get_field_placeholder_attribute(); $is_html5 = RGFormsModel::is_html5_enabled(); $date_input_type = $is_html5 ? 'number' : 'text'; $month_html5_attributes = $is_html5 ? "min='1' max='12' step='1'" : ''; $day_html5_attributes = $is_html5 ? "min='1' max='31' step='1'" : ''; $year_min = apply_filters('gform_date_min_year', '1920', $form, $this); $year_max = apply_filters('gform_date_max_year', date('Y') + 1, $form, $this); $year_min_attribute = $is_html5 && is_numeric($year_min) ? "min='{$year_min}'" : ''; $year_max_attribute = $is_html5 && is_numeric($year_max) ? "max='{$year_max}'" : ''; $year_step_attribute = $is_html5 ? "step='1'" : ''; $field_position = substr($format, 0, 3); if ($is_form_editor) { $datepicker_display = in_array($this->dateType, array('datefield', 'datedropdown')) ? 'none' : 'inline'; $datefield_display = $this->dateType == 'datefield' ? 'inline' : 'none'; $dropdown_display = $this->dateType == 'datedropdown' ? 'inline' : 'none'; $icon_display = $this->calendarIconType == 'calendar' ? 'inline' : 'none'; if ($is_sub_label_above) { $month_field = "<div class='gfield_date_month ginput_date' id='gfield_input_date_month' style='display:{$datefield_display}'>\n <label for='{$field_id}_1' {$sub_label_class_attribute}>{$month_sub_label}</label>\n <input id='{$field_id}_1' name='ginput_month' type='text' {$month_placeholder_attribute} {$disabled_text} value='{$month_value}'/>\n </div>"; $day_field = "<div class='gfield_date_day ginput_date' id='gfield_input_date_day' style='display:{$datefield_display}'>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$day_sub_label}</label>\n <input id='{$field_id}_2' name='ginput_day' type='text' {$day_placeholder_attribute} {$disabled_text} value='{$day_value}'/>\n </div>"; $year_field = "<div class='gfield_date_year ginput_date' id='gfield_input_date_year' style='display:{$datefield_display}'>\n <label {$sub_label_class_attribute}>{$year_sub_label}</label>\n <input id='{$field_id}_3' type='text' name='text' {$year_placeholder_attribute} {$disabled_text} value='{$year_value}'/>\n </div>"; } else { $month_field = "<div class='gfield_date_month ginput_date' id='gfield_input_date_month' style='display:{$datefield_display}'>\n <input id='{$field_id}_1' name='ginput_month' type='text' {$month_placeholder_attribute} {$disabled_text} value='{$month_value}'/>\n <label for='{$field_id}_1' {$sub_label_class_attribute}>{$month_sub_label}</label>\n </div>"; $day_field = "<div class='gfield_date_day ginput_date' id='gfield_input_date_day' style='display:{$datefield_display}'>\n <input id='{$field_id}_2' name='ginput_day' type='text' {$day_placeholder_attribute} {$disabled_text} value='{$day_value}'/>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$day_sub_label}</label>\n </div>"; $year_field = "<div class='gfield_date_year ginput_date' id='gfield_input_date_year' style='display:{$datefield_display}'>\n <input type='text' id='{$field_id}_3' name='ginput_year' {$year_placeholder_attribute} {$disabled_text} value='{$year_value}'/>\n <label for='{$field_id}_3' {$sub_label_class_attribute}>{$year_sub_label}</label>\n </div>"; } $month_dropdown = "<div class='gfield_date_dropdown_month ginput_date_dropdown' id='gfield_dropdown_date_month' style='display:{$dropdown_display}'>" . $this->get_month_dropdown('', "{$field_id}_1", rgar($date_info, 'month'), '', $disabled_text, $month_placeholder_value) . '</div>'; $day_dropdown = "<div class='gfield_date_dropdown_day ginput_date_dropdown' id='gfield_dropdown_date_day' style='display:{$dropdown_display}'>" . $this->get_day_dropdown('', "{$field_id}_2", rgar($date_info, 'day'), '', $disabled_text, $day_placeholder_value) . '</div>'; $year_dropdown = "<div class='gfield_date_dropdown_year ginput_date_dropdown' id='gfield_dropdown_date_year' style='display:{$dropdown_display}'>" . $this->get_year_dropdown('', "{$field_id}_3", rgar($date_info, 'year'), '', $disabled_text, $year_placeholder_value, $form) . '</div>'; $field_string = "<div class='ginput_container ginput_container_date' id='gfield_input_datepicker' style='display:{$datepicker_display}'><input name='ginput_datepicker' type='text' {$date_picker_placeholder} {$disabled_text} value = '{$picker_value}'/><img src='" . GFCommon::get_base_url() . "/images/calendar.png' id='gfield_input_datepicker_icon' style='display:{$icon_display}'/></div>"; switch ($field_position) { case 'dmy': $date_inputs = $day_field . $month_field . $year_field . $day_dropdown . $month_dropdown . $year_dropdown; break; case 'ymd': $date_inputs = $year_field . $month_field . $day_field . $year_dropdown . $month_dropdown . $day_dropdown; break; default: $date_inputs = $month_field . $day_field . $year_field . $month_dropdown . $day_dropdown . $year_dropdown; break; } $field_string .= "<div id='{$field_id}' class='ginput_container ginput_container_date'>{$date_inputs}</div>"; return $field_string; } else { $date_type = $this->dateType; if (in_array($date_type, array('datefield', 'datedropdown'))) { switch ($field_position) { case 'dmy': $tabindex = $this->get_tabindex(); if ($date_type == 'datedropdown') { $field_str = "<div class='clear-multi'><div class='gfield_date_dropdown_day ginput_container ginput_container_date' id='{$field_id}_2_container'>" . $this->get_day_dropdown("input_{$id}[]", "{$field_id}_2", rgar($date_info, 'day'), $tabindex, $disabled_text, $day_placeholder_value) . '</div>'; $tabindex = $this->get_tabindex(); $field_str .= "<div class='gfield_date_dropdown_month ginput_container ginput_container_date' id='{$field_id}_1_container'>" . $this->get_month_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, 'month'), $tabindex, $disabled_text, $month_placeholder_value) . '</div>'; $tabindex = $this->get_tabindex(); $field_str .= "<div class='gfield_date_dropdown_year ginput_container ginput_container_date' id='{$field_id}_3_container'>" . $this->get_year_dropdown("input_{$id}[]", "{$field_id}_3", rgar($date_info, 'year'), $tabindex, $disabled_text, $year_placeholder_value, $form) . '</div></div>'; } else { $field_str = $is_sub_label_above ? "<div class='clear-multi'>\n <div class='gfield_date_day ginput_container ginput_container_date' id='{$field_id}_2_container'>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$day_sub_label}</label>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_2' value='{$day_value}' {$tabindex} {$disabled_text} {$day_placeholder_attribute} {$day_html5_attributes}/>\n </div>" : "<div class='clear-multi'>\n <div class='gfield_date_day ginput_container ginput_container_date' id='{$field_id}_2_container'>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_2' value='{$day_value}' {$tabindex} {$disabled_text} {$day_placeholder_attribute} {$day_html5_attributes}/>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$day_sub_label}</label>\n </div>"; $tabindex = $this->get_tabindex(); $field_str .= $is_sub_label_above ? "<div class='gfield_date_month ginput_container ginput_container_date' id='{$field_id}_1_container'>\n <label for='{$field_id}_1' {$sub_label_class_attribute}>{$month_sub_label}</label>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_1' value='{$month_value}' {$tabindex} {$disabled_text} {$month_placeholder_attribute} {$month_html5_attributes}/>\n </div>" : "<div class='gfield_date_month ginput_container ginput_container_date' id='{$field_id}_1_container'>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_1' value='{$month_value}' {$tabindex} {$disabled_text} {$month_placeholder_attribute} {$month_html5_attributes}/>\n <label for='{$field_id}_1' {$sub_label_class_attribute}>{$month_sub_label}</label>\n </div>"; $tabindex = $this->get_tabindex(); $field_str .= $is_sub_label_above ? "<div class='gfield_date_year ginput_container ginput_container_date' id='{$field_id}_3_container'>\n <label for='{$field_id}_3' {$sub_label_class_attribute}>{$year_sub_label}</label>\n <input type='{$date_input_type}' maxlength='4' name='input_{$id}[]' id='{$field_id}_3' value='{$year_value}' {$tabindex} {$disabled_text} {$year_placeholder_attribute} {$year_min_attribute} {$year_max_attribute} {$year_step_attribute}/>\n </div>\n </div>" : "<div class='gfield_date_year ginput_container ginput_container_date' id='{$field_id}_3_container'>\n <input type='{$date_input_type}' maxlength='4' name='input_{$id}[]' id='{$field_id}_3' value='{$year_value}' {$tabindex} {$disabled_text} {$year_placeholder_attribute} {$year_min_attribute} {$year_max_attribute} {$year_step_attribute}/>\n <label for='{$field_id}_3' {$sub_label_class_attribute}>{$year_sub_label}</label>\n </div>\n </div>"; } break; case 'ymd': $tabindex = $this->get_tabindex(); if ($date_type == 'datedropdown') { $field_str = "<div class='clear-multi'><div class='gfield_date_dropdown_year ginput_container ginput_container_date' id='{$field_id}_3_container'>" . $this->get_year_dropdown("input_{$id}[]", "{$field_id}_3", rgar($date_info, 'year'), $tabindex, $disabled_text, $year_placeholder_value, $form) . '</div>'; $tabindex = $this->get_tabindex(); $field_str .= "<div class='gfield_date_dropdown_month ginput_container ginput_container_date' id='{$field_id}_1_container'>" . $this->get_month_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, 'month'), $tabindex, $disabled_text, $month_placeholder_value) . '</div>'; $tabindex = $this->get_tabindex(); $field_str .= "<div class='gfield_date_dropdown_day ginput_container ginput_container_date' id='{$field_id}_2_container'>" . $this->get_day_dropdown("input_{$id}[]", "{$field_id}_2", rgar($date_info, 'day'), $tabindex, $disabled_text, $day_placeholder_value) . '</div></div>'; } else { $field_str = $is_sub_label_above ? "<div class='clear-multi'>\n <div class='gfield_date_year ginput_container ginput_container_date' id='{$field_id}_3_container'>\n <label for='{$field_id}_3' {$sub_label_class_attribute}>{$year_sub_label}</label>\n <input type='{$date_input_type}' maxlength='4' name='input_{$id}[]' id='{$field_id}_3' value='{$year_value}' {$tabindex} {$disabled_text} {$year_placeholder_attribute} {$year_min_attribute} {$year_max_attribute} {$year_step_attribute}/>\n </div>" : "<div class='clear-multi'>\n <div class='gfield_date_year ginput_container ginput_container_date' id='{$field_id}_3_container'>\n <input type='{$date_input_type}' maxlength='4' name='input_{$id}[]' id='{$field_id}_3' value='{$year_value}' {$tabindex} {$disabled_text} {$year_placeholder_attribute} {$year_min_attribute} {$year_max_attribute} {$year_step_attribute}/>\n <label for='{$field_id}_3' {$sub_label_class_attribute}>{$year_sub_label}</label>\n </div>"; $tabindex = $this->get_tabindex(); $field_str .= $is_sub_label_above ? "<div class='gfield_date_month ginput_container ginput_container_date' id='{$field_id}_1_container'>\n <label for='{$field_id}_1' {$sub_label_class_attribute}>{$month_sub_label}</label>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_1' value='{$month_value}' {$tabindex} {$disabled_text} {$month_placeholder_attribute} {$month_html5_attributes}/>\n </div>" : "<div class='gfield_date_month ginput_container ginput_container_date' id='{$field_id}_1_container'>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_1' value='{$month_value}' {$tabindex} {$disabled_text} {$month_placeholder_attribute} {$month_html5_attributes}/>\n <label for='{$field_id}_1' {$sub_label_class_attribute}>{$month_sub_label}</label>\n </div>"; $tabindex = $this->get_tabindex(); $field_str .= $is_sub_label_above ? "<div class='gfield_date_day ginput_container ginput_container_date' id='{$field_id}_2_container'>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$day_sub_label}</label>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_2' value='{$day_value}' {$tabindex} {$disabled_text} {$day_placeholder_attribute} {$day_html5_attributes}/>\n </div>\n </div>" : "<div class='gfield_date_day ginput_container ginput_container_date' id='{$field_id}_2_container'>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_2' value='{$day_value}' {$tabindex} {$disabled_text} {$day_placeholder_attribute} {$day_html5_attributes}/>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$day_sub_label}</label>\n </div>\n </div>"; } break; default: $tabindex = $this->get_tabindex(); if ($date_type == 'datedropdown') { $field_str = "<div class='clear-multi'><div class='gfield_date_dropdown_month ginput_container ginput_container_date' id='{$field_id}_1_container'>" . $this->get_month_dropdown("input_{$id}[]", "{$field_id}_1", rgar($date_info, 'month'), $tabindex, $disabled_text, $month_placeholder_value) . '</div>'; $tabindex = $this->get_tabindex(); $field_str .= "<div class='gfield_date_dropdown_day ginput_container ginput_container_date' id='{$field_id}_2_container'>" . $this->get_day_dropdown("input_{$id}[]", "{$field_id}_2", rgar($date_info, 'day'), $tabindex, $disabled_text, $day_placeholder_value) . '</div>'; $tabindex = $this->get_tabindex(); $field_str .= "<div class='gfield_date_dropdown_year ginput_container ginput_container_date' id='{$field_id}_3_container'>" . $this->get_year_dropdown("input_{$id}[]", "{$field_id}_3", rgar($date_info, 'year'), $tabindex, $disabled_text, $year_placeholder_value, $form) . '</div></div>'; } else { $field_str = $is_sub_label_above ? "<div class='clear-multi'><div class='gfield_date_month ginput_container ginput_container_date' id='{$field_id}_1_container'>\n <label for='{$field_id}_1' {$sub_label_class_attribute}>{$month_sub_label}</label>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_1' value='{$month_value}' {$tabindex} {$disabled_text} {$month_placeholder_attribute} {$month_html5_attributes}/>\n </div>" : "<div class='clear-multi'><div class='gfield_date_month ginput_container ginput_container_date' id='{$field_id}_1_container'>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_1' value='{$month_value}' {$tabindex} {$disabled_text} {$month_placeholder_attribute} {$month_html5_attributes}/>\n <label for='{$field_id}_1' {$sub_label_class_attribute}>{$month_sub_label}</label>\n </div>"; $tabindex = $this->get_tabindex(); $field_str .= $is_sub_label_above ? "<div class='gfield_date_day ginput_container ginput_container_date' id='{$field_id}_2_container'>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$day_sub_label}</label>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_2' value='{$day_value}' {$tabindex} {$disabled_text} {$day_placeholder_attribute} {$day_html5_attributes}/>\n </div>" : "<div class='gfield_date_day ginput_container ginput_container_date' id='{$field_id}_2_container'>\n <input type='{$date_input_type}' maxlength='2' name='input_{$id}[]' id='{$field_id}_2' value='{$day_value}' {$tabindex} {$disabled_text} {$day_placeholder_attribute} {$day_html5_attributes}/>\n <label for='{$field_id}_2' {$sub_label_class_attribute}>{$day_sub_label}</label>\n </div>"; $tabindex = $this->get_tabindex(); $field_str .= $is_sub_label_above ? "<div class='gfield_date_year ginput_container ginput_container_date' id='{$field_id}_3_container'>\n <label for='{$field_id}_3' {$sub_label_class_attribute}>{$year_sub_label}</label>\n <input type='{$date_input_type}' maxlength='4' name='input_{$id}[]' id='{$field_id}_3' value='{$year_value}' {$tabindex} {$disabled_text} {$year_placeholder_attribute} {$year_min_attribute} {$year_max_attribute} {$year_step_attribute}/>\n </div>\n </div>" : "<div class='gfield_date_year ginput_container ginput_container_date' id='{$field_id}_3_container'>\n <input type='{$date_input_type}' maxlength='4' name='input_{$id}[]' id='{$field_id}_3' value='{$year_value}' {$tabindex} {$disabled_text} {$year_placeholder_attribute} {$year_min_attribute} {$year_max_attribute} {$year_step_attribute}/>\n <label for='{$field_id}_3' {$sub_label_class_attribute}>{$year_sub_label}</label>\n </div>\n </div>"; } break; } return "<div id='{$field_id}' class='ginput_container ginput_container_date'>{$field_str}</div>"; } else { $picker_value = esc_attr(GFCommon::date_display($picker_value, $format)); $icon_class = $this->calendarIconType == 'none' ? 'datepicker_no_icon' : 'datepicker_with_icon'; $icon_url = empty($this->calendarIconUrl) ? GFCommon::get_base_url() . '/images/calendar.png' : $this->calendarIconUrl; $icon_url = esc_url($icon_url); $tabindex = $this->get_tabindex(); $class = esc_attr($class); return "<div class='ginput_container ginput_container_date'>\n <input name='input_{$id}' id='{$field_id}' type='text' value='{$picker_value}' class='datepicker {$class} {$format} {$icon_class}' {$tabindex} {$disabled_text} {$date_picker_placeholder}/>\n </div>\n <input type='hidden' id='gforms_calendar_icon_{$field_id}' class='gform_hidden' value='{$icon_url}'/>"; } } }
public function get_field_input($form, $value = '', $entry = null) { $is_entry_detail = $this->is_entry_detail(); $is_form_editor = $this->is_form_editor(); $form_id = $form['id']; $id = intval($this->id); $field_id = $is_entry_detail || $is_form_editor || $form_id == 0 ? "input_{$id}" : 'input_' . $form_id . "_{$id}"; $form_id = ($is_entry_detail || $is_form_editor) && empty($form_id) ? rgget('id') : $form_id; $disabled_text = $is_form_editor ? "disabled='disabled'" : ''; $class_suffix = $is_entry_detail ? '_admin' : ''; $form_sub_label_placement = rgar($form, 'subLabelPlacement'); $field_sub_label_placement = $this->subLabelPlacement; $is_sub_label_above = $field_sub_label_placement == 'above' || empty($field_sub_label_placement) && $form_sub_label_placement == 'above'; $sub_label_class_attribute = $field_sub_label_placement == 'hidden_label' ? "class='hidden_sub_label screen-reader-text'" : ''; $card_number = ''; $card_name = ''; $expiration_month = ''; $expiration_year = ''; $security_code = ''; $autocomplete = RGFormsModel::is_html5_enabled() ? "autocomplete='off'" : ''; if (is_array($value)) { $card_number = esc_attr(rgget($this->id . '.1', $value)); $card_name = esc_attr(rgget($this->id . '.5', $value)); $expiration_date = rgget($this->id . '.2', $value); if (!is_array($expiration_date) && !empty($expiration_date)) { $expiration_date = explode('/', $expiration_date); } if (is_array($expiration_date) && count($expiration_date) == 2) { $expiration_month = $expiration_date[0]; $expiration_year = $expiration_date[1]; } $security_code = esc_attr(rgget($this->id . '.3', $value)); } $action = !($is_entry_detail || $is_form_editor) ? "gformMatchCard(\"{$field_id}_1\");" : ''; $onchange = "onchange='{$action}'"; $onkeyup = "onkeyup='{$action}'"; $card_icons = ''; $cards = GFCommon::get_card_types(); $card_style = $this->creditCardStyle ? $this->creditCardStyle : 'style1'; foreach ($cards as $card) { $style = ''; if ($this->is_card_supported($card['slug'])) { $print_card = true; } elseif ($is_form_editor || $is_entry_detail) { $print_card = true; $style = "style='display:none;'"; } else { $print_card = false; } if ($print_card) { $card_icons .= "<div class='gform_card_icon gform_card_icon_{$card['slug']}' {$style}>{$card['name']}</div>"; } } $payment_methods = apply_filters('gform_payment_methods', array(), $this, $form_id); $payment_options = ''; if (is_array($payment_methods)) { foreach ($payment_methods as $payment_method) { $checked = rgpost('gform_payment_method') == $payment_method['key'] ? "checked='checked'" : ''; $payment_options .= "<div class='gform_payment_option gform_payment_{$payment_method['key']}'><input type='radio' name='gform_payment_method' value='{$payment_method['key']}' id='gform_payment_method_{$payment_method['key']}' onclick='gformToggleCreditCard();' onkeypress='gformToggleCreditCard();' {$checked}/> {$payment_method['label']}</div>"; } } $checked = rgpost('gform_payment_method') == 'creditcard' || rgempty('gform_payment_method') ? "checked='checked'" : ''; $card_radio_button = empty($payment_options) ? '' : "<input type='radio' name='gform_payment_method' id='gform_payment_method_creditcard' value='creditcard' onclick='gformToggleCreditCard();' onkeypress='gformToggleCreditCard();' {$checked}/>"; $card_icons = "{$payment_options}<div class='gform_card_icon_container gform_card_icon_{$card_style}'>{$card_radio_button}{$card_icons}</div>"; //card number fields $tabindex = $this->get_tabindex(); $card_number_field_input = GFFormsModel::get_input($this, $this->id . '.1'); $html5_output = !is_admin() && GFFormsModel::is_html5_enabled() ? "pattern='[0-9]*' title='" . esc_attr__('Only digits are allowed', 'gravityforms') . "'" : ''; $card_number_label = rgar($card_number_field_input, 'customLabel') != '' ? $card_number_field_input['customLabel'] : esc_html__('Card Number', 'gravityforms'); $card_number_label = gf_apply_filters(array('gform_card_number', $form_id), $card_number_label, $form_id); $card_number_placeholder = $this->get_input_placeholder_attribute($card_number_field_input); if ($is_sub_label_above) { $card_field = "<span class='ginput_full{$class_suffix}' id='{$field_id}_1_container' >\n {$card_icons}\n <label for='{$field_id}_1' id='{$field_id}_1_label' {$sub_label_class_attribute}>{$card_number_label}</label>\n <input type='text' name='input_{$id}.1' id='{$field_id}_1' value='{$card_number}' {$tabindex} {$disabled_text} {$onchange} {$onkeyup} {$autocomplete} {$html5_output} {$card_number_placeholder}/>\n </span>"; } else { $card_field = "<span class='ginput_full{$class_suffix}' id='{$field_id}_1_container' >\n {$card_icons}\n <input type='text' name='input_{$id}.1' id='{$field_id}_1' value='{$card_number}' {$tabindex} {$disabled_text} {$onchange} {$onkeyup} {$autocomplete} {$html5_output} {$card_number_placeholder}/>\n <label for='{$field_id}_1' id='{$field_id}_1_label' {$sub_label_class_attribute}>{$card_number_label}</label>\n </span>"; } //expiration date field $expiration_month_tab_index = $this->get_tabindex(); $expiration_year_tab_index = $this->get_tabindex(); $expiration_month_input = GFFormsModel::get_input($this, $this->id . '.2_month'); $expiration_month_placeholder = $this->get_input_placeholder_value($expiration_month_input); $expiration_year_input = GFFormsModel::get_input($this, $this->id . '.2_year'); $expiration_year_placeholder = $this->get_input_placeholder_value($expiration_year_input); $expiration_months = $this->get_expiration_months($expiration_month, $expiration_month_placeholder); $expiration_years = $this->get_expiration_years($expiration_year, $expiration_year_placeholder); $expiration_label = rgar($expiration_month_input, 'customLabel') != '' ? $expiration_month_input['customLabel'] : esc_html__('Expiration Date', 'gravityforms'); $expiration_label = gf_apply_filters(array('gform_card_expiration', $form_id), $expiration_label, $form_id); if ($is_sub_label_above) { $expiration_field = "<span class='ginput_full{$class_suffix} ginput_cardextras' id='{$field_id}_2_container'>\n <span class='ginput_cardinfo_left{$class_suffix}' id='{$field_id}_2_cardinfo_left'>\n <span class='ginput_card_expiration_container ginput_card_field'>\n <label for='{$field_id}_2_month' {$sub_label_class_attribute}>{$expiration_label}</label>\n <select name='input_{$id}.2[]' id='{$field_id}_2_month' {$expiration_month_tab_index} {$disabled_text} class='ginput_card_expiration ginput_card_expiration_month'>\n {$expiration_months}\n </select>\n <select name='input_{$id}.2[]' id='{$field_id}_2_year' {$expiration_year_tab_index} {$disabled_text} class='ginput_card_expiration ginput_card_expiration_year'>\n {$expiration_years}\n </select>\n </span>\n </span>"; } else { $expiration_field = "<span class='ginput_full{$class_suffix} ginput_cardextras' id='{$field_id}_2_container'>\n <span class='ginput_cardinfo_left{$class_suffix}' id='{$field_id}_2_cardinfo_left'>\n <span class='ginput_card_expiration_container ginput_card_field'>\n <select name='input_{$id}.2[]' id='{$field_id}_2_month' {$expiration_month_tab_index} {$disabled_text} class='ginput_card_expiration ginput_card_expiration_month'>\n {$expiration_months}\n </select>\n <select name='input_{$id}.2[]' id='{$field_id}_2_year' {$expiration_year_tab_index} {$disabled_text} class='ginput_card_expiration ginput_card_expiration_year'>\n {$expiration_years}\n </select>\n <label for='{$field_id}_2_month' {$sub_label_class_attribute}>{$expiration_label}</label>\n </span>\n </span>"; } //security code field $tabindex = $this->get_tabindex(); $security_code_field_input = GFFormsModel::get_input($this, $this->id . '.3'); $security_code_label = rgar($security_code_field_input, 'customLabel') != '' ? $security_code_field_input['customLabel'] : esc_html__('Security Code', 'gravityforms'); $security_code_label = gf_apply_filters(array('gform_card_security_code', $form_id), $security_code_label, $form_id); $html5_output = GFFormsModel::is_html5_enabled() ? "pattern='[0-9]*' title='" . esc_attr__('Only digits are allowed', 'gravityforms') . "'" : ''; $security_code_placeholder = $this->get_input_placeholder_attribute($security_code_field_input); if ($is_sub_label_above) { $security_field = "<span class='ginput_cardinfo_right{$class_suffix}' id='{$field_id}_2_cardinfo_right'>\n <label for='{$field_id}_3' {$sub_label_class_attribute}>{$security_code_label}</label>\n <input type='text' name='input_{$id}.3' id='{$field_id}_3' {$tabindex} {$disabled_text} class='ginput_card_security_code' value='{$security_code}' {$autocomplete} {$html5_output} {$security_code_placeholder} />\n <span class='ginput_card_security_code_icon'> </span>\n </span>\n </span>"; } else { $security_field = "<span class='ginput_cardinfo_right{$class_suffix}' id='{$field_id}_2_cardinfo_right'>\n <input type='text' name='input_{$id}.3' id='{$field_id}_3' {$tabindex} {$disabled_text} class='ginput_card_security_code' value='{$security_code}' {$autocomplete} {$html5_output} {$security_code_placeholder}/>\n <span class='ginput_card_security_code_icon'> </span>\n <label for='{$field_id}_3' {$sub_label_class_attribute}>{$security_code_label}</label>\n </span>\n </span>"; } $tabindex = $this->get_tabindex(); $card_name_field_input = GFFormsModel::get_input($this, $this->id . '.5'); $card_name_label = rgar($card_name_field_input, 'customLabel') != '' ? $card_name_field_input['customLabel'] : esc_html__('Cardholder Name', 'gravityforms'); $card_name_label = gf_apply_filters(array('gform_card_name', $form_id), $card_name_label, $form_id); $card_name_placeholder = $this->get_input_placeholder_attribute($card_name_field_input); if ($is_sub_label_above) { $card_name_field = "<span class='ginput_full{$class_suffix}' id='{$field_id}_5_container'>\n <label for='{$field_id}_5' id='{$field_id}_5_label' {$sub_label_class_attribute}>{$card_name_label}</label>\n <input type='text' name='input_{$id}.5' id='{$field_id}_5' value='{$card_name}' {$tabindex} {$disabled_text} {$card_name_placeholder}/>\n </span>"; } else { $card_name_field = "<span class='ginput_full{$class_suffix}' id='{$field_id}_5_container'>\n <input type='text' name='input_{$id}.5' id='{$field_id}_5' value='{$card_name}' {$tabindex} {$disabled_text} {$card_name_placeholder}/>\n <label for='{$field_id}_5' id='{$field_id}_5_label' {$sub_label_class_attribute}>{$card_name_label}</label>\n </span>"; } return "<div class='ginput_complex{$class_suffix} ginput_container ginput_container_creditcard' id='{$field_id}'>" . $card_field . $expiration_field . $security_field . $card_name_field . ' </div>'; }
public function get_input_property($input_id, $property_name) { $input = GFFormsModel::get_input($this, $input_id); return rgar($input, $property_name); }
/** * Get the label for the input field. This is necessary to prevent Admin Labels from being used instead of normal labels. */ public static function get_label($field, $input_id = 0, $input_only = false) { $field_label = rgar($field, "label"); $input = GFFormsModel::get_input($field, $input_id); if (rgget("type", $field) == "checkbox" && $input != null) { return $input["label"]; } else { if ($input != null) { return $input_only ? $input["label"] : $field_label . ' (' . $input["label"] . ')'; } else { return $field_label; } } }