website/wp-content/plugins/gravityforms/form_detail.php

3156 lines
148 KiB
PHP

<?php
if ( ! class_exists( 'GFForms' ) ) {
die();
}
class GFFormDetail {
public static function forms_page( $form_id ) {
global $wpdb;
if ( ! GFCommon::ensure_wp_version() ) {
return;
}
self::update_recent_forms( $form_id );
$update_result = '';
if ( rgpost( 'operation' ) == 'trash' ) {
check_admin_referer( 'gforms_trash_form', 'gforms_trash_form' );
GFFormsModel::trash_form( $form_id );
?>
<script type="text/javascript">
jQuery(document).ready(
function () {
document.location.href = '?page=gf_edit_forms';
}
);
</script>
<?php
exit;
} else if ( ! rgempty( 'gform_meta' ) ) {
check_admin_referer( "gforms_update_form_{$form_id}", 'gforms_update_form' );
$update_result = self::save_form_info( $form_id, rgpost( 'gform_meta', false ) );
}
wp_print_styles( array( 'thickbox' ) );
/* @var GF_Field_Address $gf_address_field */
$gf_address_field = GF_Fields::get( 'address' );
$min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG || isset( $_GET['gform_debug'] ) ? '' : '.min';
?>
<link rel="stylesheet" href="<?php echo GFCommon::get_base_url() ?>/css/admin<?php echo $min; ?>.css?ver=<?php echo GFCommon::$version ?>" type="text/css" />
<script type="text/javascript">
<?php GFCommon::gf_global(); ?>
<?php GFCommon::gf_vars(); ?>
</script>
<script type="text/javascript">
function has_entry(fieldNumber) {
var submitted_fields = [<?php echo RGFormsModel::get_submitted_fields( $form_id ); ?>];
for (var i = 0; i < submitted_fields.length; i++) {
if (submitted_fields[i] == fieldNumber)
return true;
}
return false;
}
function InsertPostImageVariable(element_id, callback) {
var variable = jQuery('#' + element_id + '_image_size_select').attr("variable");
var size = jQuery('#' + element_id + '_image_size_select').val();
if (size) {
variable = "{" + variable + ":" + size + "}";
InsertVariable(element_id, callback, variable);
jQuery('#' + element_id + '_image_size_select').hide();
jQuery('#' + element_id + '_image_size_select')[0].selectedIndex = 0;
}
}
function InsertPostContentVariable(element_id, callback) {
var variable = jQuery('#' + element_id + '_variable_select').val();
var regex = /{([^{]*?: *(\d+\.?\d*).*?)}/;
matches = regex.exec(variable);
if (!matches) {
InsertVariable(element_id, callback);
return;
}
variable = matches[1];
field_id = matches[2];
for (var i = 0; i < form["fields"].length; i++) {
if (form["fields"][i]["id"] == field_id) {
if (form["fields"][i]["type"] == "post_image") {
jQuery('#' + element_id + '_image_size_select').attr("variable", variable);
jQuery('#' + element_id + '_image_size_select').show();
return;
}
}
}
InsertVariable(element_id, callback);
}
</script>
<?php
$form = ! rgempty( 'meta', $update_result ) ? rgar( $update_result, 'meta' ) : GFFormsModel::get_form_meta( $form_id );
if ( ! isset( $form['fields'] ) || ! is_array( $form['fields'] ) ){
$form['fields'] = array();
}
$form = gf_apply_filters( array( 'gform_admin_pre_render', $form_id ), $form );
if ( isset( $form['id'] ) ) {
echo "<script type=\"text/javascript\">var form = " . json_encode( $form ) . ';</script>';
} else {
echo "<script type=\"text/javascript\">var form = new Form();</script>";
}
?>
<?php echo GFCommon::get_remote_message(); ?>
<div class="wrap gforms_edit_form <?php echo GFCommon::get_browser_class() ?>">
<?php if ( empty( $form_id ) ) : ?>
<h1><?php esc_html_e( 'New Form', 'gravityforms' ) ?></h1>
<?php else : ?>
<?php GFCommon::form_page_title( $form ); ?>
<?php endif; ?>
<?php GFCommon::display_dismissible_message(); ?>
<?php RGForms::top_toolbar() ?>
<?php
switch ( rgar( $update_result, 'status' ) ) {
case 'invalid_json' :
?>
<div class="error_base gform_editor_status" id="after_update_error_dialog">
<?php esc_html_e( 'There was an error while saving your form.', 'gravityforms' ) ?>
<?php printf( __( 'Please %scontact our support team%s.', 'gravityforms' ), '<a href="https://www.gravityforms.com/support/">', '</a>' ) ?>
</div>
<?php
break;
case 'duplicate_title' :
?>
<div class="error_base gform_editor_status" id="after_update_error_dialog">
<?php esc_html_e( 'The form title you have entered is already taken. Please enter a unique form title.', 'gravityforms' ) ?>
</div>
<?php
break;
default :
if ( ! empty( $update_result ) ) {
?>
<div class="updated_base gform_editor_status" id="after_update_dialog">
<strong><?php esc_html_e( 'Form updated successfully.', 'gravityforms' ); ?></strong>
</div>
<?php
}
break;
}
?>
<?php // link to the google webfont library ?>
<style type="text/css">
@import url('//fonts.googleapis.com/css?family=Shadows+Into+Light+Two');
</style>
<form method="post" id="form_trash">
<?php wp_nonce_field( 'gforms_trash_form', 'gforms_trash_form' ); ?>
<input type="hidden" value="trash" name="operation" />
</form>
<table width="100%">
<tr>
<td class="pad_top" valign="top">
<?php
$has_pages = GFCommon::has_pages( $form );
?>
<div id="gform_pagination" class="selectable gform_settings_container" style="display:<?php echo $has_pages ? 'block' : 'none' ?>;">
<div class="settings_control_container">
<div class="gfield_admin_header_title"><?php esc_html_e( 'Paging: Options', 'gravityforms' ) ?></div>
<a href="javascript:void(0);" class="form_edit_icon edit_icon_collapsed" title="<?php esc_attr_e( 'click to edit page options', 'gravityforms' ); ?>"><i class='fa fa-caret-down fa-lg'></i></a>
</div>
<div class="gf-pagebreak-first gf-pagebreak-container">
<div class="gf-pagebreak-text-before"><?php esc_html_e( 'begin form', 'gravityforms' ) ?></div>
<div class="gf-pagebreak-text-main"><span><?php esc_html_e( 'START PAGING', 'gravityforms' ) ?></span></div>
<div class="gf-pagebreak-text-after"><?php esc_html_e( 'top of the first page', 'gravityforms' ) ?></div>
</div>
<div id="pagination_settings" style="display: none;">
<ul>
<li style="width:100px; padding:0px;">
<a href="#gform_pagination_settings_tab_1"><?php esc_html_e( 'General', 'gravityforms' ); ?></a></li>
<li style="width:100px; padding:0px;">
<a href="#gform_pagination_settings_tab_2"><?php esc_html_e( 'Appearance', 'gravityforms' ); ?></a></li>
</ul>
<div id="gform_pagination_settings_tab_1">
<ul class="gforms_form_settings">
<li>
<label for="pagination_type_container" class="section_label">
<?php esc_html_e( 'Progress Indicator', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_progress_indicator' ) ?>
</label>
<div id="pagination_type_container" class="pagination_container">
<input type="radio" id="pagination_type_percentage" name="pagination_type" value="percentage" onclick='InitPaginationOptions();' onkeypress='InitPaginationOptions();' />
<label for="pagination_type_percentage" class="inline">
<?php esc_html_e( 'Progress Bar', 'gravityforms' ); ?>
</label>
&nbsp;&nbsp;
<input type="radio" id="pagination_type_steps" name="pagination_type" value="steps" onclick='InitPaginationOptions();' onkeypress='InitPaginationOptions();' />
<label for="pagination_type_steps" class="inline">
<?php esc_html_e( 'Steps', 'gravityforms' ); ?>
</label>
&nbsp;&nbsp;
<input type="radio" id="pagination_type_none" name="pagination_type" value="none" onclick='InitPaginationOptions();' onkeypress='InitPaginationOptions();' />
<label for="pagination_type_none" class="inline">
<?php esc_html_e( 'None', 'gravityforms' ); ?>
</label>
</div>
</li>
<li id="percentage_style_setting">
<div class="percentage_style_setting" style="float:left; z-index: 99;">
<label for="percentage_style" style="display:block;" class="section_label">
<?php esc_html_e( 'Progress Bar Style', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_percentage_style' ) ?>
</label>
<select id="percentage_style" onchange="TogglePercentageStyle();">
<option value="blue"> <?php esc_html_e( 'Blue', 'gravityforms' ); ?> </option>
<option value="gray"> <?php esc_html_e( 'Gray', 'gravityforms' ); ?> </option>
<option value="green"> <?php esc_html_e( 'Green', 'gravityforms' ); ?> </option>
<option value="orange"> <?php esc_html_e( 'Orange', 'gravityforms' ); ?> </option>
<option value="red"> <?php esc_html_e( 'Red', 'gravityforms' ); ?> </option>
<option value="custom"> <?php esc_html_e( 'Custom', 'gravityforms' ); ?> </option>
</select>
</div>
<div class="percentage_custom_container" style="float:left; padding-left:20px;">
<label for="percentage_background_color" style="display:block;">
<?php esc_html_e( 'Text Color', 'gravityforms' ); ?>
</label>
<?php self::color_picker( 'percentage_style_custom_color', '' ) ?>
</div>
<div class="percentage_custom_container" style="float:left; padding-left:20px;">
<label for="percentage_background_bgcolor" style="display:block;">
<?php esc_html_e( 'Background Color', 'gravityforms' ); ?>
</label>
<?php self::color_picker( 'percentage_style_custom_bgcolor', '' ) ?>
</div>
</li>
<li id="page_names_setting">
<label for="page_names_container" class="section_label">
<?php esc_html_e( 'Page Names', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_page_names' ) ?>
</label>
<div id="page_names_container" style="margin-top:5px;">
<!-- Populated dynamically from js.php -->
</div>
</li>
<li id="percentage_confirmation_display_setting">
<div class="percentage_confirmation_display_setting">
<input type="checkbox" id="percentage_confirmation_display" onclick="TogglePercentageConfirmationText()" onkeypress="TogglePercentageConfirmationText()">
<label for="percentage_confirmation_display" class="inline">
<?php esc_html_e( 'Display completed progress bar on confirmation', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_percentage_confirmation_display' ); ?>
</label>
</div>
</li>
<li id="percentage_confirmation_page_name_setting">
<div class="percentage_confirmation_page_name_setting">
<label for="percentage_confirmation_page_name" style="display:block;" class="section_label">
<?php esc_html_e( 'Completion Text', 'gravityforms' ); ?> <?php gform_tooltip( 'percentage_confirmation_page_name' ); ?>
</label>
<input type="text" id="percentage_confirmation_page_name" class="fieldwidth-3" />
</div>
</li>
</ul>
</div>
<div id="gform_pagination_settings_tab_2">
<ul class="gforms_form_settings">
<li>
<label for="first_page_css_class" style="display:block;" class="section_label">
<?php esc_html_e( 'CSS Class Name', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_css_class' ) ?>
</label>
<input type="text" id="first_page_css_class" size="30" />
</li>
</ul>
</div>
</div>
</div>
<ul id="no-fields-stash" style="display:none;">
<?php // A place to store the "No Fields" placeholder when not in use. ?>
</ul>
<ul id="gform_fields" class="<?php echo GFCommon::get_ul_classes( $form ) ?>" style="position: relative;">
<?php $no_fields_style = ! empty( $form['fields'] ) ? ' style="display:none;"' : null; ?>
<?php // link to the google webfont library ?>
<style type="text/css">
@import url('//fonts.googleapis.com/css?family=Shadows+Into+Light+Two');
</style>
<li id="no-fields"<?php echo $no_fields_style; ?>>
<div class="newform_notice"><?php esc_html_e( "This form doesn't have any fields yet. Follow the steps below to get started.", 'gravityforms' ); ?>
<span></span></div>
<?php // first step ?>
<h4 class="gf_nofield_header gf_nofield_1">1. <?php esc_html_e( 'Select A Field Type', 'gravityforms' ); ?></h4>
<p><?php esc_html_e( 'Start by selecting a field type from the nifty floating panels on the right.', 'gravityforms' ); ?></p>
<div id="gf_nofield_1_instructions">
<span class="gf_nofield_1_instructions_heading gf_tips"><?php esc_html_e( 'Start Over There', 'gravityforms' ); ?></span>
<span class="gf_nofield_1_instructions_copy gf_tips"><?php esc_html_e( 'Pick a field.. any field. Don\'t be shy.', 'gravityforms' ); ?></span>
</div>
<?php // second step ?>
<h4 class="gf_nofield_header gf_nofield_2">2. <?php esc_html_e( 'Click to Add A Field', 'gravityforms' ); ?></h4>
<p><?php esc_html_e( "Once you've found the field type you want, click to add it to the form editor here on the left side of your screen.", 'gravityforms' ); ?></p>
<div id="gf_nofield_2_instructions">
<span class="gf_nofield_2_instructions_copy gf_tips"><?php esc_html_e( 'Now your new field magically appears over here.', 'gravityforms' ); ?></span>
</div>
<?php // third step ?>
<h4 class="gf_nofield_header gf_nofield_3">3. <?php esc_html_e( 'Edit Field Options', 'gravityforms' ); ?></h4>
<p><?php esc_html_e( 'Click on the edit link to configure the various field options', 'gravityforms' ); ?></p>
<div id="gf_nofield_3_instructions">
<span class="gf_nofield_3_instructions_copy_top gf_tips"><?php esc_html_e( 'Preview your changes up here.', 'gravityforms' ); ?></span>
<span class="gf_nofield_3_instructions_copy_mid gf_tips"><?php esc_html_e( 'Edit the field options. Go ahead.. go crazy.', 'gravityforms' ); ?></span>
<span class="gf_nofield_3_instructions_copy_bottom gf_tips"><?php esc_html_e( 'If you get stuck, mouseover the tool tips for a little help.', 'gravityforms' ); ?></span>
</div>
<?php // fourth step ?>
<h4 class="gf_nofield_header gf_nofield_4">4. <?php esc_html_e( 'Drag to Arrange Fields', 'gravityforms' ); ?></h4>
<p><?php esc_html_e( 'Drag the fields to arrange them the way you prefer', 'gravityforms' ); ?></p>
<div id="gf_nofield_4_instructions">
<span class="gf_nofield_4_instructions_copy_top gf_tips"><?php esc_html_e( 'Grab here with your cursor.', 'gravityforms' ); ?></span>
<span class="gf_nofield_4_instructions_copy_bottom gf_tips"><?php esc_html_e( 'Drag up or down to arrange your fields.', 'gravityforms' ); ?></span>
</div>
<?php // fifth step ?>
<h4 class="gf_nofield_header gf_nofield_5">5. <?php esc_html_e( 'Save Your Form', 'gravityforms' ); ?></h4>
<p><?php esc_html_e( "Once you're happy with your form, remember to click on the 'update form' button to save all your hard work.", 'gravityforms' ); ?></p>
<div id="gf_nofield_5_instructions">
<span class="gf_nofield_5_instructions_heading gf_tips"><?php esc_html_e( 'Save Your New Form', 'gravityforms' ); ?></span>
<span class="gf_nofield_5_instructions_copy gf_tips"><?php esc_html_e( "You're done. That's it.", 'gravityforms' ); ?></span>
</div>
</li>
<?php
if ( is_array( rgar( $form, 'fields' ) ) ) {
require_once( GFCommon::get_base_path() . '/form_display.php' );
foreach ( $form['fields'] as $field ) {
echo GFFormDisplay::get_field( $field, '', true, $form );
}
}
?>
</ul>
<div id="gform_last_page_settings" class="selectable gform_settings_container" style="display:<?php echo $has_pages ? 'block' : 'none' ?>;">
<div class="settings_control_container">
<div class="gfield_admin_header_title"><?php esc_html_e( 'End Page: Options', 'gravityforms' ) ?></div>
<a href="javascript:void(0);" class="form_edit_icon edit_icon_collapsed" title="<?php esc_attr_e( 'Edit Last Page', 'gravityforms' ); ?>"><i class='fa fa-caret-down fa-lg'></i></a>
</div>
<div class="gf-pagebreak-end gf-pagebreak-container">
<div class="gf-pagebreak-text-before"><?php esc_html_e( 'end of last page', 'gravityforms' ) ?></div>
<div class="gf-pagebreak-text-main"><span><?php esc_html_e( 'END PAGING', 'gravityforms' ) ?></span></div>
<div class="gf-pagebreak-text-after"><?php esc_html_e( 'end of form', 'gravityforms' ) ?></div>
</div>
<div id="last_page_settings" style="display:none;">
<ul>
<li style="width:100px; padding:0px;">
<a href="#gform_last_page_settings_tab_1"><?php esc_html_e( 'General', 'gravityforms' ); ?></a></li>
</ul>
<div id="gform_last_page_settings_tab_1">
<ul class="gforms_form_settings">
<li>
<label for="last_page_button_container" class="section_label">
<?php esc_html_e( 'Previous Button', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_last_page_button' ) ?>
</label>
<div class="last_page_button_options" id="last_page_button_container">
<input type="radio" id="last_page_button_text" name="last_page_button" value="text" onclick="TogglePageButton('last_page');" onkeypress="TogglePageButton('last_page');" />
<label for="last_page_button_text" class="inline">
<?php esc_html_e( 'Default', 'gravityforms' ); ?>
<?php gform_tooltip( 'previous_button_text' ) ?>
</label>
&nbsp;&nbsp;
<input type="radio" id="last_page_button_image" name="last_page_button" value="image" onclick="TogglePageButton('last_page');" onkeypress="TogglePageButton('last_page');" />
<label for="last_page_button_image" class="inline">
<?php esc_html_e( 'Image', 'gravityforms' ); ?>
<?php gform_tooltip( 'previous_button_image' ) ?>
</label>
<div id="last_page_button_text_container">
<label for="last_page_button_text_input" class="section_label">
<?php esc_html_e( 'Button Text:', 'gravityforms' ); ?>
</label>
<input type="text" id="last_page_button_text_input" class="input_size_b" size="40" />
</div>
<div id="last_page_button_image_container">
<label for="last_page_button_image_url" class="section_label">
<?php esc_html_e( 'Image Path:', 'gravityforms' ); ?>
</label>
<input type="text" id="last_page_button_image_url" size="45" />
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div>
<div id="after_insert_dialog" style="display:none;">
<h3><?php esc_html_e( 'You have successfully saved your form!', 'gravityforms' ); ?></h3>
<p><?php esc_html_e( 'What would you like to do next?', 'gravityforms' ); ?></p>
<div class="new-form-option">
<a id="preview_form_link" href="<?php echo esc_url_raw( trailingslashit( site_url() ) ); ?>?gf_page=preview&id={formid}" target="_blank"><?php esc_html_e( 'Preview this Form', 'gravityforms' ); ?></a>
</div>
<?php if ( GFCommon::current_user_can_any( 'gravityforms_edit_forms' ) ) { ?>
<div class="new-form-option">
<a id="notification_form_link" href="#"><?php esc_html_e( 'Setup Email Notifications for this Form', 'gravityforms' ); ?></a>
</div>
<?php } ?>
<div class="new-form-option">
<a id="edit_form_link" href="#"><?php esc_html_e( 'Continue Editing this Form', 'gravityforms' ); ?></a>
</div>
<div class="new-form-option">
<a href="?page=gf_edit_forms"><?php esc_html_e( 'Return to Form List', 'gravityforms' ); ?></a>
</div>
</div>
</div>
<div id="field_settings" style="display: none;">
<ul>
<li style="width:100px; padding:0px;">
<a href="#gform_tab_1"><?php esc_html_e( 'General', 'gravityforms' ); ?></a>
</li>
<li style="width:100px; padding:0px; ">
<a href="#gform_tab_3"><?php esc_html_e( 'Appearance', 'gravityforms' ); ?></a>
</li>
<li style="width:100px; padding:0px; ">
<a href="#gform_tab_2"><?php esc_html_e( 'Advanced', 'gravityforms' ); ?></a>
</li>
</ul>
<div id="gform_tab_1">
<ul>
<?php
/**
* Inserts additional content within the General field settings
*
* Note: This action fires multiple times. Use the first parameter to determine positioning on the list.
*
* @param int 0 The placement of the action being fired
* @param int $form_id The current form ID
*/
do_action( 'gform_field_standard_settings', 0, $form_id );
?>
<li class="label_setting field_setting">
<label for="field_label" class="section_label">
<?php esc_html_e( 'Field Label', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_label' ) ?>
<?php gform_tooltip( 'form_field_label_html' ) ?>
</label>
<input type="text" id="field_label" class="fieldwidth-3" size="35" />
</li>
<?php
do_action( 'gform_field_standard_settings', 5, $form_id );
?>
<li class="checkbox_label_setting field_setting">
<label for="field_checkbox_label" class="section_label">
<?php esc_html_e( 'Checkbox Label', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_checkbox_label' ) ?>
</label>
<input type="text" id="field_checkbox_label" class="fieldwidth-3" />
</li>
<?php
do_action( 'gform_field_standard_settings', 10, $form_id );
?>
<li class="description_setting field_setting">
<label for="field_description" class="section_label">
<?php esc_html_e( 'Description', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_description' ) ?>
</label>
<textarea id="field_description" class="fieldwidth-3 fieldheight-2"></textarea>
</li>
<?php
do_action( 'gform_field_standard_settings', 20, $form_id );
?>
<li class="product_field_setting field_setting">
<label for="product_field" class="section_label">
<?php esc_html_e( 'Product Field Mapping', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_product' ) ?>
</label>
<select id="product_field" onchange="SetFieldProperty('productField', jQuery(this).val());">
<!-- will be populated when field is selected (js.php) -->
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 25, $form_id );
?>
<li class="product_field_type_setting field_setting">
<label for="product_field_type" class="section_label">
<?php esc_html_e( 'Field Type', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_type' ) ?>
</label>
<select id="product_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeProductType(jQuery('#product_field_type').val());});">
<option value="singleproduct"><?php esc_html_e( 'Single Product', 'gravityforms' ); ?></option>
<option value="select"><?php esc_html_e( 'Drop Down', 'gravityforms' ); ?></option>
<option value="radio"><?php esc_html_e( 'Radio Buttons', 'gravityforms' ); ?></option>
<option value="price"><?php esc_html_e( 'User Defined Price', 'gravityforms' ); ?></option>
<option value="hiddenproduct"><?php esc_html_e( 'Hidden', 'gravityforms' ); ?></option>
<option value="calculation"><?php esc_html_e( 'Calculation', 'gravityforms' ); ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 37, $form_id );
?>
<li class="shipping_field_type_setting field_setting">
<label for="shipping_field_type" class="section_label">
<?php esc_html_e( 'Field Type', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_type' ) ?>
</label>
<select id="shipping_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeShippingType(jQuery('#shipping_field_type').val());});">
<option value="singleshipping"><?php esc_html_e( 'Single Method', 'gravityforms' ); ?></option>
<option value="select"><?php esc_html_e( 'Drop Down', 'gravityforms' ); ?></option>
<option value="radio"><?php esc_html_e( 'Radio Buttons', 'gravityforms' ); ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 50, $form_id );
?>
<li class="base_price_setting field_setting">
<label for="field_base_price" class="section_label">
<?php esc_html_e( 'Price', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_base_price' ) ?>
</label>
<input type="text" id="field_base_price" onchange="SetBasePrice(this.value)" />
</li>
<?php
do_action( 'gform_field_standard_settings', 75, $form_id );
?>
<li class="disable_quantity_setting field_setting">
<input type="checkbox" name="field_disable_quantity" id="field_disable_quantity" onclick="SetDisableQuantity(jQuery(this).is(':checked'));" onkeypress="SetDisableQuantity(jQuery(this).is(':checked'));" />
<label for="field_disable_quantity" class="inline">
<?php esc_html_e( 'Disable quantity field', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_disable_quantity' ) ?>
</label>
</li>
<?php
do_action( 'gform_field_standard_settings', 100, $form_id );
?>
<li class="option_field_type_setting field_setting">
<label for="option_field_type" class="section_label">
<?php esc_html_e( 'Field Type', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_type' ) ?>
</label>
<select id="option_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeInputType(jQuery('#option_field_type').val());});">
<option value="select"><?php esc_html_e( 'Drop Down', 'gravityforms' ); ?></option>
<option value="checkbox"><?php esc_html_e( 'Checkboxes', 'gravityforms' ); ?></option>
<option value="radio"><?php esc_html_e( 'Radio Buttons', 'gravityforms' ); ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 125, $form_id );
?>
<li class="donation_field_type_setting field_setting">
<label for="donation_field_type" class="section_label">
<?php esc_html_e( 'Field Type', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_type' ) ?>
</label>
<select id="donation_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeDonationType(jQuery('#donation_field_type').val());});">
<option value="select"><?php esc_html_e( 'Drop Down', 'gravityforms' ); ?></option>
<option value="donation"><?php esc_html_e( 'User Defined Price', 'gravityforms' ); ?></option>
<option value="radio"><?php esc_html_e( 'Radio Buttons', 'gravityforms' ); ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 150, $form_id );
?>
<li class="quantity_field_type_setting field_setting">
<label for="quantity_field_type" class="section_label">
<?php esc_html_e( 'Field Type', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_type' ) ?>
</label>
<select id="quantity_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeInputType(jQuery('#quantity_field_type').val());});">
<option value="number"><?php esc_html_e( 'Number', 'gravityforms' ); ?></option>
<option value="select"><?php esc_html_e( 'Drop Down', 'gravityforms' ); ?></option>
<option value="hidden"><?php esc_html_e( 'Hidden', 'gravityforms' ); ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 200, $form_id );
?>
<li class="content_setting field_setting">
<label for="field_content" class="section_label">
<?php esc_html_e( 'Content', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_content' ) ?>
</label>
<textarea id="field_content" class="fieldwidth-3 fieldheight-1 merge-tag-support mt-position-right mt-prepopulate"></textarea>
</li>
<?php
do_action( 'gform_field_standard_settings', 225, $form_id );
?>
<li class="next_button_setting field_setting">
<label for="next_button_container">
<?php esc_html_e( 'Next Button', 'gravityforms' ); ?>
</label>
<div class="next_button_options" id="next_button_container">
<input type="radio" id="next_button_text" name="next_button" value="text" onclick="TogglePageButton('next'); SetPageButton('next');" onkeypress="TogglePageButton('next'); SetPageButton('next');" />
<label for="next_button_text" class="inline">
<?php esc_html_e( 'Default', 'gravityforms' ); ?>
<?php gform_tooltip( 'next_button_text' ) ?>
</label>
&nbsp;&nbsp;
<input type="radio" id="next_button_image" name="next_button" value="image" onclick="TogglePageButton('next'); SetPageButton('next');" onkeypress="TogglePageButton('next'); SetPageButton('next');" />
<label for="next_button_image" class="inline">
<?php esc_html_e( 'Image', 'gravityforms' ); ?>
<?php gform_tooltip( 'next_button_image' ) ?>
</label>
<div id="next_button_text_container" style="margin-top:5px;">
<label for="next_button_text_input" class="inline">
<?php esc_html_e( 'Text:', 'gravityforms' ); ?>
</label>
<input type="text" id="next_button_text_input" class="input_size_b" size="40" />
</div>
<div id="next_button_image_container" style="margin-top:5px;">
<label for="next_button_image_url" class="inline">
<?php esc_html_e( 'Image Path:', 'gravityforms' ); ?>
</label>
<input type="text" id="next_button_image_url" size="45" />
</div>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 237, $form_id );
?>
<li class="previous_button_setting field_setting">
<label for="previous_button_container">
<?php esc_html_e( 'Previous Button', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_previous_button' ) ?>
</label>
<div class="previous_button_options" id="previous_button_container">
<input type="radio" id="previous_button_text" name="previous_button" value="text" onclick="TogglePageButton('previous'); SetPageButton('previous');" onkeypress="TogglePageButton('previous'); SetPageButton('previous');" />
<label for="previous_button_text" class="inline">
<?php esc_html_e( 'Default', 'gravityforms' ); ?>
<?php gform_tooltip( 'previous_button_text' ) ?>
</label>
&nbsp;&nbsp;
<input type="radio" id="previous_button_image" name="previous_button" value="image" onclick="TogglePageButton('previous'); SetPageButton('previous');" onkeypress="TogglePageButton('previous'); SetPageButton('previous');" />
<label for="previous_button_image" class="inline">
<?php esc_html_e( 'Image', 'gravityforms' ); ?>
<?php gform_tooltip( 'previous_button_image' ) ?>
</label>
<div id="previous_button_text_container" style="margin-top:5px;">
<label for="previous_button_text_input" class="inline">
<?php esc_html_e( 'Text:', 'gravityforms' ); ?>
</label>
<input type="text" id="previous_button_text_input" class="input_size_b" size="40" />
</div>
<div id="previous_button_image_container" style="margin-top:5px;">
<label for="previous_button_image_url" class="inline">
<?php esc_html_e( 'Image Path:', 'gravityforms' ); ?>
</label>
<input type="text" id="previous_button_image_url" size="45" />
</div>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 250, $form_id );
?>
<li class="disable_margins_setting field_setting">
<input type="checkbox" id="field_margins" onclick="SetFieldProperty('disableMargins', this.checked);" onkeypress="SetFieldProperty('disableMargins', this.checked);" />
<label for="field_disable_margins" class="inline">
<?php esc_html_e( 'Disable default margins', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_disable_margins' ) ?>
</label><br />
</li>
<?php
do_action( 'gform_field_standard_settings', 300, $form_id );
?>
<li class="post_custom_field_type_setting field_setting">
<label for="post_custom_field_type" class="section_label">
<?php esc_html_e( 'Field Type', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_type' ) ?>
</label>
<select id="post_custom_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangePostCustomFieldType(jQuery('#post_custom_field_type').val());});">
<optgroup class="option_header" label="<?php esc_attr_e( 'Standard Fields', 'gravityforms' ); ?>">
<option value="text"><?php esc_html_e( 'Single Line Text', 'gravityforms' ); ?></option>
<option value="textarea"><?php esc_html_e( 'Paragraph Text', 'gravityforms' ); ?></option>
<option value="select"><?php esc_html_e( 'Drop Down', 'gravityforms' ); ?></option>
<option value="multiselect"><?php esc_html_e( 'Multi Select', 'gravityforms' ); ?></option>
<option value="number"><?php esc_html_e( 'Number', 'gravityforms' ); ?></option>
<option value="checkbox"><?php esc_html_e( 'Checkboxes', 'gravityforms' ); ?></option>
<option value="radio"><?php esc_html_e( 'Radio Buttons', 'gravityforms' ); ?></option>
<option value="hidden"><?php esc_html_e( 'Hidden', 'gravityforms' ); ?></option>
</optgroup>
<optgroup class="option_header" label="<?php esc_html_e( 'Advanced Fields', 'gravityforms' ); ?>">
<option value="date"><?php esc_html_e( 'Date', 'gravityforms' ); ?></option>
<option value="time"><?php esc_html_e( 'Time', 'gravityforms' ); ?></option>
<option value="phone"><?php esc_html_e( 'Phone', 'gravityforms' ); ?></option>
<option value="website"><?php esc_html_e( 'Website', 'gravityforms' ); ?></option>
<option value="email"><?php esc_html_e( 'Email', 'gravityforms' ); ?></option>
<option value="fileupload"><?php esc_html_e( 'File Upload', 'gravityforms' ); ?></option>
<option value="list"><?php esc_html_e( 'List', 'gravityforms' ); ?></option>
</optgroup>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 350, $form_id );
?>
<li class="post_tag_type_setting field_setting">
<label for="post_tag_type" class="section_label">
<?php esc_html_e( 'Field Type', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_type' ) ?>
</label>
<select id="post_tag_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeInputType(jQuery('#post_tag_type').val());});">
<option value="text"><?php esc_html_e( 'Single Line Text', 'gravityforms' ); ?></option>
<option value="select"><?php esc_html_e( 'Drop Down', 'gravityforms' ); ?></option>
<option value="multiselect"><?php esc_html_e( 'Multi Select', 'gravityforms' ); ?></option>
<option value="checkbox"><?php esc_html_e( 'Checkboxes', 'gravityforms' ); ?></option>
<option value="radio"><?php esc_html_e( 'Radio Buttons', 'gravityforms' ); ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 400, $form_id );
?>
<?php
if ( class_exists( 'ReallySimpleCaptcha' ) ) {
//the field_captcha_type drop down has options dynamically added in form_editor.js for the v1/v2 versions of google recaptcha
?>
<li class="captcha_type_setting field_setting">
<label for="field_captcha_type">
<?php esc_html_e( 'Type', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_captcha_type' ) ?>
</label>
<select id="field_captcha_type" onchange="StartChangeCaptchaType(jQuery(this).val())">
<option value="simple_captcha"><?php esc_html_e( 'Really Simple CAPTCHA', 'gravityforms' ); ?></option>
<option value="math"><?php esc_html_e( 'Math Challenge', 'gravityforms' ); ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 450, $form_id );
?>
<li class="captcha_size_setting field_setting">
<label for="field_captcha_size">
<?php esc_html_e( 'Size', 'gravityforms' ); ?>
</label>
<select id="field_captcha_size" onchange="SetCaptchaSize(jQuery(this).val());">
<option value="small"><?php esc_html_e( 'Small', 'gravityforms' ); ?></option>
<option value="medium"><?php esc_html_e( 'Medium', 'gravityforms' ); ?></option>
<option value="large"><?php esc_html_e( 'Large', 'gravityforms' ); ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 500, $form_id );
?>
<li class="captcha_fg_setting field_setting">
<label for="field_captcha_fg">
<?php esc_html_e( 'Font Color', 'gravityforms' ); ?>
</label>
<?php self::color_picker( 'field_captcha_fg', 'SetCaptchaFontColor' ) ?>
</li>
<?php
do_action( 'gform_field_standard_settings', 550, $form_id );
?>
<li class="captcha_bg_setting field_setting">
<label for="field_captcha_bg">
<?php esc_html_e( 'Background Color', 'gravityforms' ); ?>
</label>
<?php self::color_picker( 'field_captcha_bg', 'SetCaptchaBackgroundColor' ) ?>
</li>
<?php
}
do_action( 'gform_field_standard_settings', 600, $form_id );
$recaptcha_type = get_option( 'rg_gforms_captcha_type' );
$recaptcha_image_base = $recaptcha_type == 'invisible' ? '/images/captcha_invisible_' : '/images/captcha_';
?>
<li class="captcha_theme_setting field_setting">
<label for="field_captcha_theme" class="section_label">
<?php esc_html_e( 'Theme', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_recaptcha_theme' ) ?>
</label>
<select id="field_captcha_theme" onchange="SetCaptchaTheme(this.value, '<?php echo GFCommon::get_base_url() . $recaptcha_image_base ?>' + this.value + '.jpg')">
<option value="light"><?php esc_html_e( 'Light', 'gravityforms' ); ?></option>
<option value="dark"><?php esc_html_e( 'Dark', 'gravityforms' ); ?></option>
</select>
</li>
<?php
if ( $recaptcha_type == 'invisible' ) {
do_action( 'gform_field_standard_settings', 625, $form_id );
?>
<li class="captcha_badge_setting field_setting">
<label for="field_captcha_badge" class="section_label">
<?php esc_html_e( 'Badge Position', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_recaptcha_badge' ) ?>
</label>
<select id="field_captcha_badge" onchange="SetFieldProperty('captchaBadge', jQuery(this).val());">
<option value="bottomright"><?php esc_html_e( 'Bottom Right', 'gravityforms' ); ?></option>
<option value="bottomleft"><?php esc_html_e( 'Bottom Left', 'gravityforms' ); ?></option>
<option value="inline"><?php esc_html_e( 'Inline', 'gravityforms' ); ?></option>
</select>
</li>
<?php
}
do_action( 'gform_field_standard_settings', 650, $form_id );
?>
<li class="post_custom_field_setting field_setting">
<label for="field_custom_field_name" class="section_label">
<?php esc_html_e( 'Custom Field Name', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_custom_field_name' ) ?>
</label>
<div style="width:100px; float:left;">
<input type="radio" name="field_custom" id="field_custom_existing" size="10" onclick="ToggleCustomField();" onkeypress="ToggleCustomField();" />
<label for="field_custom_existing" class="inline">
<?php esc_html_e( 'Existing', 'gravityforms' ); ?>
</label>
</div>
<div style="width:100px; float:left;">
<input type="radio" name="field_custom" id="field_custom_new" size="10" onclick="ToggleCustomField();" onkeypress="ToggleCustomField();" />
<label for="field_custom_new" class="inline">
<?php esc_html_e( 'New', 'gravityforms' ); ?>
</label>
</div>
<div class="clear">
<input type="text" id="field_custom_field_name_text" size="35" />
<select id="field_custom_field_name_select" onchange="SetFieldProperty('postCustomFieldName', jQuery(this).val());" style="max-width:100%;">
<option value=""><?php esc_html_e( 'Select an existing custom field', 'gravityforms' ); ?></option>
<?php
$custom_field_names = RGFormsModel::get_custom_field_names();
foreach ( $custom_field_names as $name ) {
?>
<option value="<?php echo esc_attr( $name ); ?>"><?php echo esc_html( $name ) ?></option>
<?php
}
?>
</select>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 700, $form_id );
?>
<li class="post_status_setting field_setting">
<label for="field_post_status" class="section_label">
<?php esc_html_e( 'Post Status', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_post_status' ) ?>
</label>
<select id="field_post_status" name="field_post_status">
<?php $post_stati = apply_filters( 'gform_post_status_options', array(
'draft' => esc_html__( 'Draft', 'gravityforms' ),
'pending' => esc_html__( 'Pending Review', 'gravityforms' ),
'publish' => esc_html__( 'Published', 'gravityforms' ),
)
);
foreach ( $post_stati as $value => $label ) {
?>
<option value="<?php echo esc_attr( $value ); ?>"><?php echo esc_html( $label ); ?></option>
<?php } ?>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 750, $form_id );
?>
<li class="post_author_setting field_setting">
<label for="field_post_author" class="section_label">
<?php esc_html_e( 'Default Post Author', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_post_author' ) ?>
</label>
<?php
$args = array( 'name' => 'field_post_author' );
$args = gf_apply_filters( array( 'gform_author_dropdown_args', rgar( $form, 'id' ) ), $args );
wp_dropdown_users( $args );
?>
<div>
<input type="checkbox" id="gfield_current_user_as_author" />
<label for="gfield_current_user_as_author" class="inline"><?php esc_html_e( 'Use logged in user as author', 'gravityforms' ); ?> <?php gform_tooltip( 'form_field_current_user_as_author' ) ?></label>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 775, $form_id );
?>
<?php if ( current_theme_supports( 'post-formats' ) ) { ?>
<li class="post_format_setting field_setting">
<label for="field_post_format" class="section_label">
<?php esc_html_e( 'Post Format', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_post_format' ) ?>
</label>
<?php
$post_formats = get_theme_support( 'post-formats' );
$post_formats_dropdown = '<option value="0">Standard</option>';
foreach ( $post_formats[0] as $post_format ) {
$post_format_val = esc_attr( $post_format );
$post_format_text = esc_html( $post_format );
$post_formats_dropdown .= "<option value='$post_format_val'>" . ucfirst( $post_format_text ) . '</option>';
}
echo '<select name="field_post_format" id="field_post_format">' . $post_formats_dropdown . '</select>';
?>
</li>
<?php } // if theme supports post formats ?>
<?php
do_action( 'gform_field_standard_settings', 800, $form_id );
?>
<li class="post_category_setting field_setting">
<label for="field_post_category" class="section_label">
<?php esc_html_e( 'Post Category', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_post_category' ) ?>
</label>
<?php wp_dropdown_categories( array( 'selected' => get_option( 'default_category' ), 'hide_empty' => 0, 'id' => 'field_post_category', 'name' => 'field_post_category', 'orderby' => 'name', 'selected' => 'field_post_category', 'hierarchical' => true ) ); ?>
</li>
<?php
do_action( 'gform_field_standard_settings', 825, $form_id );
?>
<li class="post_category_field_type_setting field_setting">
<label for="post_category_field_type" class="section_label">
<?php esc_html_e( 'Field Type', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_type' ) ?>
</label>
<select id="post_category_field_type" onchange="jQuery('#field_settings').slideUp(function(){StartChangeInputType( jQuery('#post_category_field_type').val() );});">
<option value="select"><?php esc_html_e( 'Drop Down', 'gravityforms' ); ?></option>
<option value="checkbox"><?php esc_html_e( 'Checkboxes', 'gravityforms' ); ?></option>
<option value="radio"><?php esc_html_e( 'Radio Buttons', 'gravityforms' ); ?></option>
<option value="multiselect"><?php esc_html_e( 'Multi Select', 'gravityforms' ); ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 850, $form_id );
?>
<li class="post_category_checkbox_setting field_setting">
<label for="field_post_category">
<?php esc_html_e( 'Category', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_post_category_selection' ) ?>
</label>
<input type="radio" id="gfield_category_all" name="gfield_category" value="all" onclick="ToggleCategory();" onkeypress="ToggleCategory();" />
<label for="gfield_category_all" class="inline">
<?php esc_html_e( 'All Categories', 'gravityforms' ); ?>
</label>
&nbsp;&nbsp;
<input type="radio" id="gfield_category_select" name="gfield_category" value="select" onclick="ToggleCategory();" onkeypress="ToggleCategory();" />
<label for="form_button_image" class="inline">
<?php esc_html_e( 'Select Categories', 'gravityforms' ); ?>
</label>
<div id="gfield_settings_category_container">
<table cellpadding="0" cellspacing="5">
<?php
$categories = get_categories( array( 'hide_empty' => 0 ) );
$count = 0;
$category_rows = '';
self::_cat_rows( $categories, $count, $category_rows );
echo $category_rows;
?>
</table>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 875, $form_id );
?>
<li class="post_category_initial_item_setting field_setting">
<input type="checkbox" id="gfield_post_category_initial_item_enabled" onclick="TogglePostCategoryInitialItem(); SetCategoryInitialItem();" onkeypress="TogglePostCategoryInitialItem(); SetCategoryInitialItem();" />
<label for="gfield_post_category_initial_item_enabled" class="inline">
<?php esc_html_e( 'Display placeholder', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_post_category_initial_item' ) ?>
</label>
</li>
<li id="gfield_post_category_initial_item_container">
<label for="field_post_category_initial_item">
<?php esc_html_e( 'Placeholder Label', 'gravityforms' ); ?>
</label>
<input type="text" id="field_post_category_initial_item" onchange="SetCategoryInitialItem();" class="fieldwidth-3" size="35" />
</li>
<?php
do_action( 'gform_field_standard_settings', 900, $form_id );
?>
<li class="post_content_template_setting field_setting">
<label class="section_label"><?php esc_html_e( 'Content Template', 'gravityforms' ) ?></label>
<input type="checkbox" id="gfield_post_content_enabled" onclick="TogglePostContentTemplate();" onkeypress="TogglePostContentTemplate();" />
<label for="gfield_post_content_enabled" class="inline">
<?php esc_html_e( 'Create content template', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_post_content_template_enable' ) ?>
</label>
<div id="gfield_post_content_container">
<div>
<?php GFCommon::insert_post_content_variables( $form['fields'], 'field_post_content_template', '', 25 ); ?>
</div>
<textarea id="field_post_content_template" class="fieldwidth-3 fieldheight-1"></textarea>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 950, $form_id );
?>
<li class="post_title_template_setting field_setting">
<label class="section_label"><?php esc_html_e( 'Content Template', 'gravityforms' ) ?></label>
<input type="checkbox" id="gfield_post_title_enabled" onclick="TogglePostTitleTemplate();" onkeypress="TogglePostTitleTemplate();" />
<label for="gfield_post_title_enabled" class="inline">
<?php esc_html_e( 'Create content template', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_post_title_template_enable' ) ?>
</label>
<div id="gfield_post_title_container">
<input type="text" id="field_post_title_template" class="fieldwidth-3 merge-tag-support mt-position-right mt-hide_all_fields mt-exclude-post_image-fileupload" />
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 975, $form_id );
?>
<li class="customfield_content_template_setting field_setting">
<input type="checkbox" id="gfield_customfield_content_enabled" onclick="ToggleCustomFieldTemplate(); SetCustomFieldTemplate();" onkeypress="ToggleCustomFieldTemplate(); SetCustomFieldTemplate();" />
<label for="gfield_customfield_content_enabled" class="inline">
<?php esc_html_e( 'Create content template', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_customfield_content_template_enable' ) ?>
</label>
<div id="gfield_customfield_content_container">
<div>
<?php GFCommon::insert_post_content_variables( $form['fields'], 'field_customfield_content_template', 'SetCustomFieldTemplate', 25 ); ?>
</div>
<textarea id="field_customfield_content_template" class="fieldwidth-3 fieldheight-1"></textarea>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 1000, $form_id );
?>
<li class="post_image_setting field_setting">
<label class="section_label"><?php esc_html_e( 'Image Metadata', 'gravityforms' ) ?> <?php gform_tooltip( 'form_field_image_meta' ) ?></label>
<input type="checkbox" id="gfield_display_title" onclick="SetPostImageMeta();" onkeypress="SetPostImageMeta();" />
<label for="gfield_display_title" class="inline">
<?php esc_html_e( 'Title', 'gravityforms' ); ?>
</label>
<br />
<input type="checkbox" id="gfield_display_caption" onclick="SetPostImageMeta();" onkeypress="SetPostImageMeta();" />
<label for="gfield_display_caption" class="inline">
<?php esc_html_e( 'Caption', 'gravityforms' ); ?>
</label>
<br />
<input type="checkbox" id="gfield_display_description" onclick="SetPostImageMeta();" onkeypress="SetPostImageMeta();" />
<label for="gfield_display_description" class="inline">
<?php esc_html_e( 'Description', 'gravityforms' ); ?>
</label>
</li>
<?php
do_action( 'gform_field_standard_settings', 1025, $form_id );
?>
<li class="post_image_featured_image field_setting">
<label class="section_label"><?php esc_html_e( 'Featured Image', 'gravityforms' ) ?></label>
<input type="checkbox" id="gfield_featured_image" onclick="SetFeaturedImage();" onkeypress="SetFeaturedImage();" />
<label for="gfield_featured_image" class="inline"><?php esc_html_e( 'Set as Featured Image', 'gravityforms' ); ?> <?php gform_tooltip( 'form_field_featured_image' ) ?></label>
</li>
<?php
do_action( 'gform_field_standard_settings', 1050, $form_id );
?>
<li class="address_setting field_setting">
<?php
$addressTypes = $gf_address_field->get_address_types( rgar( $form, 'id' ) );
?>
<label for="field_address_type" class="section_label">
<?php esc_html_e( 'Address Type', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_address_type' ) ?>
</label>
<select id="field_address_type" onchange="ChangeAddressType();">
<?php
foreach ( $addressTypes as $key => $addressType ) {
?>
<option value="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $addressType['label'] ); ?></option>
<?php
}
?>
</select>
<div class="custom_inputs_sub_setting gfield_sub_setting">
<label for="field_address_fields" class="section_label inline">
<?php esc_html_e( 'Address Fields', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_address_fields' ) ?>
</label>
<div id="field_address_fields_container" style="padding-top:10px;">
<!-- content dynamically created from js.php -->
</div>
</div>
<?php
foreach ( $addressTypes as $key => $addressType ) {
$state_label = isset( $addressType['state_label'] ) ? esc_attr( $addressType['state_label'] ) : __( 'State', 'gravityforms' );
?>
<div id="address_type_container_<?php echo esc_attr( $key ); ?>" class="gfield_sub_setting gfield_address_type_container">
<input type="hidden" id="field_address_country_<?php echo esc_attr( $key ) ?>" value="<?php echo isset( $addressType['country'] ) ? esc_attr( $addressType['country'] ) : '' ?>" />
<input type="hidden" id="field_address_zip_label_<?php echo esc_attr( $key ) ?>" value="<?php echo isset( $addressType['zip_label'] ) ? esc_attr( $addressType['zip_label'] ) : __( 'Postal Code', 'gravityforms' ) ?>" />
<input type="hidden" id="field_address_state_label_<?php echo esc_attr( $key ) ?>" value="<?php echo $state_label ?>" />
<input type="hidden" id="field_address_has_states_<?php echo esc_attr( $key ) ?>" value="<?php echo is_array( rgget( 'states', $addressType ) ) ? '1' : '' ?>" />
<?php
if ( isset( $addressType['states'] ) && is_array( $addressType['states'] ) ) {
?>
<label for="field_address_default_state_<?php echo esc_attr( $key ); ?>">
<?php echo sprintf( __( 'Default %s', 'gravityforms' ), $state_label ); ?>
<?php gform_tooltip( "form_field_address_default_state_{$key}" ) ?>
</label>
<select id="field_address_default_state_<?php echo esc_attr( $key ); ?>" class="field_address_default_state" onchange="SetAddressProperties();">
<?php echo $gf_address_field->get_state_dropdown( $addressType['states'] ) ?>
</select>
<?php
}
?>
<?php
if ( ! isset( $addressType['country'] ) ) {
?>
<label for="field_address_default_country_<?php echo $key; ?>" class="section_label">
<?php esc_html_e( 'Default Country', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_address_default_country' ) ?>
</label>
<select id="field_address_default_country_<?php echo $key; ?>" class="field_address_default_country" onchange="SetAddressProperties();">
<?php echo $gf_address_field->get_country_dropdown() ?>
</select>
<?php
}
?>
</div>
<?php
}
?>
</li>
<?php
do_action( 'gform_field_standard_settings', 1100, $form_id );
?>
<li class="name_format_setting field_setting">
<label for="field_name_format">
<?php esc_html_e( 'Name Format', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_name_format' ) ?>
</label>
<select id="field_name_format" onchange="StartChangeNameFormat(jQuery(this).val());">
<option value="extended"><?php esc_html_e( 'Extended', 'gravityforms' ); ?></option>
<option value="advanced"><?php esc_html_e( 'Advanced', 'gravityforms' ); ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 1125, $form_id );
?>
<li class="name_setting field_setting">
<div class="custom_inputs_setting gfield_sub_setting">
<label for="field_name_fields" class="section_label inline">
<?php esc_html_e( 'Name Fields', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_name_fields' ) ?>
</label>
<div id="field_name_fields_container" style="padding-top:10px;">
<!-- content dynamically created from js.php -->
</div>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 1150, $form_id );
?>
<li class="date_input_type_setting field_setting">
<label for="field_date_input_type" class="section_label">
<?php esc_html_e( 'Date Input Type', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_date_input_type' ) ?>
</label>
<select id="field_date_input_type" onchange="SetDateInputType(jQuery(this).val());">
<option value="datefield"><?php esc_html_e( 'Date Field', 'gravityforms' ) ?></option>
<option value="datepicker"><?php esc_html_e( 'Date Picker', 'gravityforms' ) ?></option>
<option value="datedropdown"><?php esc_html_e( 'Date Drop Down', 'gravityforms' ) ?></option>
</select>
<div id="date_picker_container">
<input type="radio" id="gsetting_icon_none" name="gsetting_icon" value="none" onclick="SetCalendarIconType(this.value);" onkeypress="SetCalendarIconType(this.value);" />
<label for="gsetting_icon_none" class="inline">
<?php esc_html_e( 'No Icon', 'gravityforms' ); ?>
</label>
&nbsp;&nbsp;
<input type="radio" id="gsetting_icon_calendar" name="gsetting_icon" value="calendar" onclick="SetCalendarIconType(this.value);" onkeypress="SetCalendarIconType(this.value);" />
<label for="gsetting_icon_calendar" class="inline">
<?php esc_html_e( 'Calendar Icon', 'gravityforms' ); ?>
</label>
&nbsp;&nbsp;
<input type="radio" id="gsetting_icon_custom" name="gsetting_icon" value="custom" onclick="SetCalendarIconType(this.value);" onkeypress="SetCalendarIconType(this.value);" />
<label for="gsetting_icon_custom" class="inline">
<?php esc_html_e( 'Custom Icon', 'gravityforms' ); ?>
</label>
<div id="gfield_icon_url_container">
<label for="gfield_calendar_icon_url" class="inline">
<?php esc_html_e( 'Image Path: ', 'gravityforms' ); ?>
</label>
<input type="text" id="gfield_calendar_icon_url" size="45" />
<div class="instruction"><?php esc_html_e( 'Preview this form to see your custom icon.', 'gravityforms' ) ?></div>
</div>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 1200, $form_id );
?>
<li class="date_format_setting field_setting">
<label for="field_date_format" class="section_label">
<?php esc_html_e( 'Date Format', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_date_format' ) ?>
</label>
<select id="field_date_format" onchange="SetDateFormat(jQuery(this).val());">
<option value="mdy">mm/dd/yyyy</option>
<option value="dmy">dd/mm/yyyy</option>
<option value="dmy_dash">dd-mm-yyyy</option>
<option value="dmy_dot">dd.mm.yyyy</option>
<option value="ymd_slash">yyyy/mm/dd</option>
<option value="ymd_dash">yyyy-mm-dd</option>
<option value="ymd_dot">yyyy.mm.dd</option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 1225, $form_id );
?>
<li class="customize_inputs_setting field_setting">
<label for="field_enable_customize_inputs" class="inline">
<?php esc_html_e( 'Customize Fields', 'gravityforms' ); ?>
</label>
<?php gform_tooltip( 'form_field_customize_inputs' ) ?>
<div id="field_customize_inputs_container" style="padding-top:10px;">
<!-- content dynamically created from js.php -->
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 1250, $form_id );
?>
<li class="file_extensions_setting field_setting">
<label for="field_file_extension" class="section_label">
<?php esc_html_e( 'Allowed file extensions', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_fileupload_allowed_extensions' ) ?>
</label>
<input type="text" id="field_file_extension" size="40" />
<div>
<small><?php esc_html_e( 'Separated with commas (i.e. jpg, gif, png, pdf)', 'gravityforms' ); ?></small>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 1260, $form_id );
?>
<li class="multiple_files_setting field_setting">
<label class="section_label"><?php esc_html_e( 'Multiple Files', 'gravityforms' ); ?></label>
<input type="checkbox" id="field_multiple_files" onclick="ToggleMultiFile();" onkeypress="ToggleMultiFile();" />
<label for="field_multiple_files" class="inline">
<?php esc_html_e( 'Enable Multi-File Upload', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_multiple_files' ) ?>
</label>
<div id="gform_multiple_files_options">
<br />
<div>
<label for="field_max_files" class="section_label">
<?php esc_html_e( 'Maximum Number of Files', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_max_files' ) ?>
</label>
<input type="text" id="field_max_files" size="10" />
</div>
<br />
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 1267, $form_id );
?>
<li class="file_size_setting field_setting">
<label for="field_max_file_size" class="section_label">
<?php esc_html_e( 'Maximum File Size', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_max_file_size' ) ?>
</label>
<input type="text" id="field_max_file_size" size="10" placeholder="<?php $max_upload_size = wp_max_upload_size() / 1048576;
echo $max_upload_size; ?>MB" />
<div id="gform_server_max_file_size_notice">
<small><?php printf( esc_html__( 'Maximum allowed on this server: %sMB', 'gravityforms' ), $max_upload_size ); ?></small>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 1275, $form_id );
?>
<li class="columns_setting field_setting">
<label class="section_label"><?php esc_html_e( 'Columns', 'gravityforms' ); ?></label>
<input type="checkbox" id="field_columns_enabled" onclick="SetFieldProperty('enableColumns', this.checked); ToggleColumns();" onkeypress="SetFieldProperty('enableColumns', this.checked); ToggleColumns();" />
<label for="field_columns_enabled" class="inline"><?php esc_html_e( 'Enable multiple columns', 'gravityforms' ) ?><?php gform_tooltip( 'form_field_columns' ) ?></label>
<br />
<div id="gfield_settings_columns_container">
<ul id="field_columns"></ul>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 1287, $form_id );
?>
<li class="maxrows_setting field_setting">
<label for="field_maxrows" class="section_label">
<?php esc_html_e( 'Maximum Rows', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_maxrows' ) ?>
</label>
<input type="text" id="field_maxrows" />
</li>
<?php
do_action( 'gform_field_standard_settings', 1300, $form_id );
?>
<li class="time_format_setting field_setting">
<label for="field_time_format" class="section_label">
<?php esc_html_e( 'Time Format', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_time_format' ) ?>
</label>
<select id="field_time_format" onchange="SetTimeFormat(this.value);">
<option value="12"><?php esc_html_e( '12 hour', 'gravityforms' ) ?></option>
<option value="24"><?php esc_html_e( '24 hour', 'gravityforms' ) ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 1325, $form_id );
?>
<li class="phone_format_setting field_setting">
<label for="field_phone_format" class="section_label">
<?php esc_html_e( 'Phone Format', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_phone_format' ) ?>
</label>
<select id="field_phone_format" onchange="SetFieldPhoneFormat(jQuery(this).val());">
<?php
$phone_formats = GF_Fields::get( 'phone' )->get_phone_formats( $form_id );
foreach ( $phone_formats as $key => $phone_format ) {
?>
<option value="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $phone_format['label'] ); ?></option>
<?php
}
?>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 1350, $form_id );
?>
<li class="choices_setting field_setting">
<div style="float:right;">
<input type="checkbox" id="field_choice_values_enabled" onclick="SetFieldProperty('enableChoiceValue', this.checked); ToggleChoiceValue(); SetFieldChoices();" onkeypress="SetFieldProperty('enableChoiceValue', this.checked); ToggleChoiceValue(); SetFieldChoices();" />
<label for="field_choice_values_enabled" class="inline gfield_value_label"><?php esc_html_e( 'show values', 'gravityforms' ) ?></label>
</div>
<label for="choices" class="section_label"><?php echo apply_filters( 'gform_choices_setting_title', __( 'Choices', 'gravityforms' ) ); ?>
<?php gform_tooltip( 'form_field_choices' ) ?></label>
<div id="gfield_settings_choices_container">
<label class="gfield_choice_header_label"><?php esc_html_e( 'Label', 'gravityforms' ) ?></label><label class="gfield_choice_header_value"><?php esc_html_e( 'Value', 'gravityforms' ) ?></label><label class="gfield_choice_header_price"><?php esc_html_e( 'Price', 'gravityforms' ) ?></label>
<ul id="field_choices"></ul>
</div>
<?php $window_title = __( 'Bulk Add / Predefined Choices', 'gravityforms' ); ?>
<input type='button' value='<?php echo esc_attr( $window_title ) ?>' onclick="tb_show('<?php echo esc_js( $window_title ) ?>', '#TB_inline?height=400&amp;width=600&amp;inlineId=gfield_bulk_add', '');" onkeypress="tb_show('<?php echo esc_js( $window_title ) ?>', '#TB_inline?height=400&amp;width=600&amp;inlineId=gfield_bulk_add', '');" class="button" />
<div id="gfield_bulk_add" style="display:none;">
<div>
<?php
$predefined_choices = array(
__( 'Countries', 'gravityforms' ) => $gf_address_field->get_countries(),
__( 'U.S. States', 'gravityforms' ) => $gf_address_field->get_us_states(),
__( 'Canadian Province/Territory', 'gravityforms' ) => $gf_address_field->get_canadian_provinces(),
__( 'Continents', 'gravityforms' ) => array( __( 'Africa', 'gravityforms' ), __( 'Antarctica', 'gravityforms' ), __( 'Asia', 'gravityforms' ), __( 'Australia', 'gravityforms' ), __( 'Europe', 'gravityforms' ), __( 'North America', 'gravityforms' ), __( 'South America', 'gravityforms' ) ),
__( 'Gender', 'gravityforms' ) => array( __( 'Male', 'gravityforms' ), __( 'Female', 'gravityforms' ), __( 'Prefer Not to Answer', 'gravityforms' ) ),
__( 'Age', 'gravityforms' ) => array( __( 'Under 18', 'gravityforms' ), __( '18-24', 'gravityforms' ), __( '25-34', 'gravityforms' ), __( '35-44', 'gravityforms' ), __( '45-54', 'gravityforms' ), __( '55-64', 'gravityforms' ), __( '65 or Above', 'gravityforms' ), __( 'Prefer Not to Answer', 'gravityforms' ) ),
__( 'Marital Status', 'gravityforms' ) => array( __( 'Single', 'gravityforms' ), __( 'Married', 'gravityforms' ), __( 'Divorced', 'gravityforms' ), __( 'Widowed', 'gravityforms' ) ),
__( 'Employment', 'gravityforms' ) => array( __( 'Employed Full-Time', 'gravityforms' ), __( 'Employed Part-Time', 'gravityforms' ), __( 'Self-employed', 'gravityforms' ), __( 'Not employed but looking for work', 'gravityforms' ), __( 'Not employed and not looking for work', 'gravityforms' ), __( 'Homemaker', 'gravityforms' ), __( 'Retired', 'gravityforms' ), __( 'Student', 'gravityforms' ), __( 'Prefer Not to Answer', 'gravityforms' ) ),
__( 'Job Type', 'gravityforms' ) => array( __( 'Full-Time', 'gravityforms' ), __( 'Part-Time', 'gravityforms' ), __( 'Per Diem', 'gravityforms' ), __( 'Employee', 'gravityforms' ), __( 'Temporary', 'gravityforms' ), __( 'Contract', 'gravityforms' ), __( 'Intern', 'gravityforms' ), __( 'Seasonal', 'gravityforms' ) ),
__( 'Industry', 'gravityforms' ) => array( __( 'Accounting/Finance', 'gravityforms' ), __( 'Advertising/Public Relations', 'gravityforms' ), __( 'Aerospace/Aviation', 'gravityforms' ), __( 'Arts/Entertainment/Publishing', 'gravityforms' ), __( 'Automotive', 'gravityforms' ), __( 'Banking/Mortgage', 'gravityforms' ), __( 'Business Development', 'gravityforms' ), __( 'Business Opportunity', 'gravityforms' ), __( 'Clerical/Administrative', 'gravityforms' ), __( 'Construction/Facilities', 'gravityforms' ), __( 'Consumer Goods', 'gravityforms' ), __( 'Customer Service', 'gravityforms' ), __( 'Education/Training', 'gravityforms' ), __( 'Energy/Utilities', 'gravityforms' ), __( 'Engineering', 'gravityforms' ), __( 'Government/Military', 'gravityforms' ), __( 'Green', 'gravityforms' ), __( 'Healthcare', 'gravityforms' ), __( 'Hospitality/Travel', 'gravityforms' ), __( 'Human Resources', 'gravityforms' ), __( 'Installation/Maintenance', 'gravityforms' ), __( 'Insurance', 'gravityforms' ), __( 'Internet', 'gravityforms' ), __( 'Job Search Aids', 'gravityforms' ), __( 'Law Enforcement/Security', 'gravityforms' ), __( 'Legal', 'gravityforms' ), __( 'Management/Executive', 'gravityforms' ), __( 'Manufacturing/Operations', 'gravityforms' ), __( 'Marketing', 'gravityforms' ), __( 'Non-Profit/Volunteer', 'gravityforms' ), __( 'Pharmaceutical/Biotech', 'gravityforms' ), __( 'Professional Services', 'gravityforms' ), __( 'QA/Quality Control', 'gravityforms' ), __( 'Real Estate', 'gravityforms' ), __( 'Restaurant/Food Service', 'gravityforms' ), __( 'Retail', 'gravityforms' ), __( 'Sales', 'gravityforms' ), __( 'Science/Research', 'gravityforms' ), __( 'Skilled Labor', 'gravityforms' ), __( 'Technology', 'gravityforms' ), __( 'Telecommunications', 'gravityforms' ), __( 'Transportation/Logistics', 'gravityforms' ), __( 'Other', 'gravityforms' ) ),
__( 'Education', 'gravityforms' ) => array( __( 'High School', 'gravityforms' ), __( 'Associate Degree', 'gravityforms' ), __( "Bachelor's Degree", 'gravityforms' ), __( 'Graduate or Professional Degree', 'gravityforms' ), __( 'Some College', 'gravityforms' ), __( 'Other', 'gravityforms' ), __( 'Prefer Not to Answer', 'gravityforms' ) ),
__( 'Days of the Week', 'gravityforms' ) => array( __( 'Sunday', 'gravityforms' ), __( 'Monday', 'gravityforms' ), __( 'Tuesday', 'gravityforms' ), __( 'Wednesday', 'gravityforms' ), __( 'Thursday', 'gravityforms' ), __( 'Friday', 'gravityforms' ), __( 'Saturday', 'gravityforms' ) ),
__( 'Months of the Year', 'gravityforms' ) => array( __( 'January', 'gravityforms' ), __( 'February', 'gravityforms' ), __( 'March', 'gravityforms' ), __( 'April', 'gravityforms' ), __( 'May', 'gravityforms' ), __( 'June', 'gravityforms' ), __( 'July', 'gravityforms' ), __( 'August', 'gravityforms' ), __( 'September', 'gravityforms' ), __( 'October', 'gravityforms' ), __( 'November', 'gravityforms' ), __( 'December', 'gravityforms' ) ),
__( 'How Often', 'gravityforms' ) => array( __( 'Every day', 'gravityforms' ), __( 'Once a week', 'gravityforms' ), __( '2 to 3 times a week', 'gravityforms' ), __( 'Once a month', 'gravityforms' ), __( '2 to 3 times a month', 'gravityforms' ), __( 'Less than once a month', 'gravityforms' ) ),
__( 'How Long', 'gravityforms' ) => array( __( 'Less than a month', 'gravityforms' ), __( '1-6 months', 'gravityforms' ), __( '1-3 years', 'gravityforms' ), __( 'Over 3 years', 'gravityforms' ), __( 'Never used', 'gravityforms' ) ),
__( 'Satisfaction', 'gravityforms' ) => array( __( 'Very Satisfied', 'gravityforms' ), __( 'Satisfied', 'gravityforms' ), __( 'Neutral', 'gravityforms' ), __( 'Unsatisfied', 'gravityforms' ), __( 'Very Unsatisfied', 'gravityforms' ) ),
__( 'Importance', 'gravityforms' ) => array( __( 'Very Important', 'gravityforms' ), __( 'Important', 'gravityforms' ), __( 'Somewhat Important', 'gravityforms' ), __( 'Not Important', 'gravityforms' ) ),
__( 'Agreement', 'gravityforms' ) => array( __( 'Strongly Agree', 'gravityforms' ), __( 'Agree', 'gravityforms' ), __( 'Disagree', 'gravityforms' ), __( 'Strongly Disagree', 'gravityforms' ) ),
__( 'Comparison', 'gravityforms' ) => array( __( 'Much Better', 'gravityforms' ), __( 'Somewhat Better', 'gravityforms' ), __( 'About the Same', 'gravityforms' ), __( 'Somewhat Worse', 'gravityforms' ), __( 'Much Worse', 'gravityforms' ) ),
__( 'Would You', 'gravityforms' ) => array( __( 'Definitely', 'gravityforms' ), __( 'Probably', 'gravityforms' ), __( 'Not Sure', 'gravityforms' ), __( 'Probably Not', 'gravityforms' ), __( 'Definitely Not', 'gravityforms' ) ),
__( 'Size', 'gravityforms' ) => array( __( 'Extra Small', 'gravityforms' ), __( 'Small', 'gravityforms' ), __( 'Medium', 'gravityforms' ), __( 'Large', 'gravityforms' ), __( 'Extra Large', 'gravityforms' ) ),
);
$predefined_choices = gf_apply_filters( array( 'gform_predefined_choices', rgar( $form, 'id' ) ), $predefined_choices );
$custom_choices = RGFormsModel::get_custom_choices();
?>
<div class="panel-instructions"><?php esc_html_e( 'Select a category and customize the predefined choices or paste your own list to bulk add choices.', 'gravityforms' ) ?></div>
<div class="bulk-left-panel">
<ul id="bulk_items">
<?php
foreach ( array_keys( $predefined_choices ) as $name ){
$key = str_replace( "'", "\'", $name );
?>
<li>
<a href="javascript:void(0);" onclick="SelectPredefinedChoice('<?php echo $key ?>');" onkeypress="SelectPredefinedChoice('<?php echo $key ?>');"
class="bulk-choice"><?php echo $name ?></a>
<?php
}
?>
</ul>
</div>
<div class="bulk-arrow-mid"></div>
<textarea id="gfield_bulk_add_input"></textarea>
<br style="clear:both;" />
<div class="panel-buttons" style="">
<input type="button" onclick="InsertBulkChoices(jQuery('#gfield_bulk_add_input').val().split('\n')); tb_remove();" onkeypress="InsertBulkChoices(jQuery('#gfield_bulk_add_input').val().split('\n')); tb_remove();" class="button-primary" value="<?php esc_attr_e( 'Insert Choices', 'gravityforms' ) ?>" />&nbsp;
<input type="button" onclick="tb_remove();" onkeypress="tb_remove();" class="button" value="<?php esc_attr_e( 'Cancel', 'gravityforms' ) ?>" />
</div>
<div class="panel-custom" style="">
<a href="javascript:void(0);" onclick="LoadCustomChoicesPanel(true, 'slow');" onkeypress="LoadCustomChoicesPanel(true, 'slow');" id="bulk_save_as"><?php esc_html_e( 'Save as new custom choice', 'gravityforms' ) ?></a>
<div id="bulk_custom_edit" style="display:none;">
<?php esc_html_e( 'Save as', 'gravityforms' ); ?>
<input type="text" id="custom_choice_name" value="<?php esc_attr_e( 'Enter name', 'gravityforms' ); ?>" onfocus="if(this.value == '<?php echo esc_js( __( 'enter name', 'gravityforms' ) ); ?>') this.value='';">&nbsp;&nbsp;
<a href="javascript:void(0);" onclick="SaveCustomChoices();" onkeypress="SaveCustomChoices();" class="button" id="bulk_save_button"><?php esc_html_e( 'Save', 'gravityforms' ) ?></a>&nbsp;
<a href="javascript:void(0);" onclick="CloseCustomChoicesPanel('slow');" onkeypress="CloseCustomChoicesPanel('slow');" id="bulk_cancel_link"><?php esc_html_e( 'Cancel', 'gravityforms' ) ?></a>
<a href="javascript:void(0);" onclick="DeleteCustomChoice();" onkeypress="DeleteCustomChoice();" id="bulk_delete_link"><?php esc_html_e( 'Delete', 'gravityforms' ) ?></a>
</div>
<div id="bulk_custom_message" class="alert_yellow" style="display:none; margin-top:8px; padding: 8px;">
<!--Message will be added via javascript-->
</div>
</div>
<script type="text/javascript">
var gform_selected_custom_choice = '';
var gform_custom_choices = <?php echo GFCommon::json_encode( $custom_choices ) ?>;
var gform_predefined_choices = <?php echo GFCommon::json_encode( $predefined_choices ) ?>;
</script>
</div>
</div>
</li>
<?php
do_action( 'gform_field_standard_settings', 1360, $form_id );
?>
<li class="select_all_choices_setting field_setting">
<input type="checkbox" id="field_select_all_choices" onclick="var value = jQuery(this).is(':checked'); SetFieldProperty('enableSelectAll', value); RefreshSelectedFieldPreview();" onkeypress="var value = jQuery(this).is(':checked'); SetFieldProperty('enableSelectAll', value); RefreshSelectedFieldPreview();" />
<label for="field_select_all_choices" class="inline">
<?php esc_html_e( 'Enable "Select All" choice', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_select_all_choices' ) ?>
</label>
</li>
<?php
do_action( 'gform_field_standard_settings', 1362, $form_id );
?>
<li class="other_choice_setting field_setting">
<input type="checkbox" id="field_other_choice" onclick="var value = jQuery(this).is(':checked'); SetFieldProperty('enableOtherChoice', value); UpdateFieldChoices(GetInputType(field));" onkeypress="var value = jQuery(this).is(':checked'); SetFieldProperty('enableOtherChoice', value); UpdateFieldChoices(GetInputType(field));" />
<label for="field_other_choice" class="inline">
<?php esc_html_e( 'Enable "other" choice', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_other_choice' ) ?>
</label>
</li>
<?php
do_action( 'gform_field_standard_settings', 1368, $form_id );
?>
<li class="email_confirm_setting field_setting">
<input type="checkbox" id="gfield_email_confirm_enabled" onclick="SetEmailConfirmation(this.checked);" onkeypress="SetEmailConfirmation(this.checked);" />
<label for="gfield_email_confirm_enabled" class="inline">
<?php esc_html_e( 'Enable Email Confirmation', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_email_confirm_enable' ) ?>
</label>
</li>
<?php
do_action( 'gform_field_standard_settings', 1375, $form_id );
?>
<li class="password_setting field_setting">
<div class="custom_inputs_setting gfield_sub_setting">
<label for="field_password_fields" class="section_label inline">
<?php esc_html_e( 'Password Fields', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_password_fields' ) ?>
</label>
<div id="field_password_fields_container" style="padding-top:10px;">
<!-- content dynamically created from js.php -->
</div>
</div>
</li>
<li class="password_visibility_setting field_setting">
<input type="checkbox" id="gfield_password_visibility_enabled" onclick="TogglePasswordVisibility(); SetFieldProperty('passwordVisibilityEnabled', this.checked);" onkeypress="TogglePasswordVisibility(); SetFieldProperty('passwordVisibilityEnabled', this.checked);" />
<label for="gfield_password_visibility_enabled" class="inline">
<?php esc_html_e( 'Enable Password Visibility Toggle', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_password_visibility_enable' ) ?>
</label>
</li>
<li class="password_strength_setting field_setting">
<input type="checkbox" id="gfield_password_strength_enabled" onclick="TogglePasswordStrength(); SetPasswordStrength(this.checked);" onkeypress="TogglePasswordStrength(); SetPasswordStrength(this.checked);" />
<label for="gfield_password_strength_enabled" class="inline">
<?php esc_html_e( 'Enable Password Strength', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_password_strength_enable' ) ?>
</label>
</li>
<?php
do_action( 'gform_field_standard_settings', 1387, $form_id );
?>
<li id="gfield_min_strength_container">
<label for="gfield_min_strength">
<?php esc_html_e( 'Minimum Strength', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_password_strength_enable' ) ?>
</label>
<select id="gfield_min_strength" onchange="SetFieldProperty('minPasswordStrength', jQuery(this).val());">
<option value=""><?php esc_html_e( 'None', 'gravityforms' ) ?></option>
<option value="short"><?php esc_html_e( 'Short', 'gravityforms' ) ?></option>
<option value="bad"><?php esc_html_e( 'Bad', 'gravityforms' ) ?></option>
<option value="good"><?php esc_html_e( 'Good', 'gravityforms' ) ?></option>
<option value="strong"><?php esc_html_e( 'Strong', 'gravityforms' ) ?></option>
</select>
</li>
<?php
do_action( 'gform_field_standard_settings', 1400, $form_id );
?>
<li class="number_format_setting field_setting">
<label for="field_number_format" class="section_label">
<?php esc_html_e( 'Number Format', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_number_format' ) ?>
</label>
<select id="field_number_format" onchange="SetFieldProperty('numberFormat', this.value);jQuery('.field_calculation_rounding').toggle(this.value != 'currency');">
<option value="decimal_dot">9,999.99</option>
<option value="decimal_comma">9.999,99</option>
<option value="currency"><?php esc_html_e( 'Currency', 'gravityforms' ) ?></option>
</select>
</li>
<?php do_action( 'gform_field_standard_settings', 1415, $form_id ); ?>
<li class="sub_labels_setting field_setting">
<label for="field_sub_labels" class="section_label">
<?php esc_html_e( 'Sub-Labels', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_sub_labels' ) ?>
</label>
<div id="field_sub_labels_container">
<!-- content dynamically created from js.php -->
</div>
</li>
<?php do_action( 'gform_field_standard_settings', 1425, $form_id ); ?>
<?php do_action( 'gform_field_standard_settings', 1430, $form_id ); ?>
<li class="credit_card_setting field_setting">
<label class="section_label">
<?php esc_html_e( 'Supported Credit Cards', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_credit_cards' ) ?>
</label>
<ul>
<?php $cards = GFCommon::get_card_types();
foreach ( $cards as $card ) {
?>
<li>
<input type="checkbox" id="field_credit_card_<?php echo esc_attr( $card['slug'] ); ?>" value="<?php echo esc_attr( $card['slug'] ); ?>" onclick="SetCardType(this, this.value);" onkeypress="SetCardType(this, this.value);" />
<label for="field_credit_card_<?php echo esc_attr( $card['slug'] ); ?>" class="inline"><?php echo esc_html( $card['name'] ); ?></label>
</li>
<?php } ?>
</ul>
</li>
<?php
do_action( 'gform_field_standard_settings', 1435, $form_id );
?>
<li class="credit_card_style_setting field_setting">
<label for="credit_card_style" class="section_label">
<?php esc_html_e( 'Card Icon Style', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_card_style' ) ?>
</label>
<select id="credit_card_style" onchange="SetFieldProperty('creditCardStyle', this.value); jQuery('.gform_card_icon_container').toggleClass('gform_card_icon_style1 gform_card_icon_style2');">
<option value="style1"><?php esc_html_e( 'Standard', 'gravityforms' ) ?></option>
<option value="style2"><?php esc_html_e( '3D', 'gravityforms' ) ?></option>
</select>
</li>
<?php do_action( 'gform_field_standard_settings', 1440, $form_id ); ?>
<li class="input_mask_setting field_setting">
<input type="checkbox" id="field_input_mask" onclick="ToggleInputMask();" onkeypress="ToggleInputMask();" />
<label for="field_input_mask" class="inline">
<?php esc_html_e( 'Input Mask', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_mask' ) ?>
</label><br />
<div id="gform_input_mask">
<br />
<div style="width:100px; float:left;">
<input type="radio" name="field_mask_option" id="field_mask_standard" size="10" onclick="ToggleInputMaskOptions();" onkeypress="ToggleInputMaskOptions();" />
<label for="field_mask_standard" class="inline">
<?php esc_html_e( 'Standard', 'gravityforms' ); ?>
</label>
</div>
<div style="width:100px; float:left;">
<input type="radio" name="field_mask_option" id="field_mask_custom" size="10" onclick="ToggleInputMaskOptions();" onkeypress="ToggleInputMaskOptions();" />
<label for="field_mask_custom" class="inline">
<?php esc_html_e( 'Custom', 'gravityforms' ); ?>
</label>
</div>
<div class="clear"></div>
<input type="text" id="field_mask_text" size="35" />
<p class="mask_text_description" style="margin:5px 0 0;">
<?php esc_html_e( 'Enter a custom mask', 'gravityforms' ) ?>.
<a href="javascript:void(0);" onclick="tb_show('<?php echo esc_js( __( 'Custom Mask Instructions', 'gravityforms' ) ); ?>', '#TB_inline?width=350&amp;inlineId=custom_mask_instructions', '');" onkeypress="tb_show('<?php echo esc_js( __( 'Custom Mask Instructions', 'gravityforms' ) ); ?>', '#TB_inline?width=350&amp;inlineId=custom_mask_instructions', '');"><?php esc_html_e( 'Help', 'gravityforms' ) ?></a>
</p>
<div id="custom_mask_instructions" style="display:none;">
<div class="custom_mask_instructions">
<h4><?php esc_html_e( 'Usage', 'gravityforms' ) ?></h4>
<ul class="description-list">
<li><?php esc_html_e( "Use a '9' to indicate a numerical character.", 'gravityforms' ) ?></li>
<li><?php esc_html_e( "Use a lower case 'a' to indicate an alphabetical character.", 'gravityforms' ) ?></li>
<li><?php esc_html_e( "Use an asterisk '*' to indicate any alphanumeric character.", 'gravityforms' ) ?></li>
<li><?php esc_html_e( "Use a question mark '?' to indicate optional characters. Note: All characters after the question mark will be optional.", 'gravityforms' ) ?></li>
<li><?php esc_html_e( 'All other characters are literal values and will be displayed automatically.', 'gravityforms' ) ?></li>
</ul>
<h4><?php esc_html_e( 'Examples', 'gravityforms' ) ?></h4>
<ul class="examples-list">
<li>
<h5><?php esc_html_e( 'Date', 'gravityforms' ) ?></h5>
<span class="label"><?php esc_html_e( 'Mask', 'gravityforms' ) ?></span> <code>99/99/9999</code><br />
<span class="label"><?php esc_html_e( 'Valid Input', 'gravityforms' ) ?></span>
<code>10/21/2011</code>
</li>
<li>
<h5><?php esc_html_e( 'Social Security Number', 'gravityforms' ) ?></h5>
<span class="label"><?php esc_html_e( 'Mask', 'gravityforms' ) ?></span>
<code>999-99-9999</code><br />
<span class="label"><?php esc_html_e( 'Valid Input', 'gravityforms' ) ?></span>
<code>987-65-4329</code>
</li>
<li>
<h5><?php esc_html_e( 'Course Code', 'gravityforms' ) ?></h5>
<span class="label"><?php esc_html_e( 'Mask', 'gravityforms' ) ?></span>
<code>aaa 999</code><br />
<span class="label"><?php esc_html_e( 'Valid Input', 'gravityforms' ) ?></span>
<code>BIO 101</code>
</li>
<li>
<h5><?php esc_html_e( 'License Key', 'gravityforms' ) ?></h5>
<span class="label"><?php esc_html_e( 'Mask', 'gravityforms' ) ?></span>
<code>***-***-***</code><br />
<span class="label"><?php esc_html_e( 'Valid Input', 'gravityforms' ) ?></span>
<code>a9a-f0c-28Q</code>
</li>
<li>
<h5><?php esc_html_e( 'Zip Code w/ Optional Plus Four', 'gravityforms' ) ?></h5>
<span class="label"><?php esc_html_e( 'Mask', 'gravityforms' ) ?></span>
<code>99999?-9999</code><br />
<span class="label"><?php esc_html_e( 'Valid Input', 'gravityforms' ) ?></span>
<code>23462</code> or <code>23462-4062</code>
</li>
</ul>
</div>
</div>
<select id="field_mask_select" onchange="SetFieldProperty('inputMaskValue', jQuery(this).val());">
<option value=""><?php esc_html_e( 'Select a Mask', 'gravityforms' ); ?></option>
<?php
$masks = RGFormsModel::get_input_masks();
foreach ( $masks as $mask_name => $mask_value ) {
?>
<option value="<?php echo esc_attr( $mask_value ); ?>"><?php echo esc_html( $mask_name ); ?></option>
<?php
}
?>
</select>
</div>
</li>
<?php do_action( 'gform_field_standard_settings', 1450, $form_id ); ?>
<li class="maxlen_setting field_setting">
<label for="field_maxlen" class="section_label">
<?php esc_html_e( 'Maximum Characters', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_maxlength' ) ?>
</label>
<input type="text" id="field_maxlen" /></input>
</li>
<?php
do_action( 'gform_field_standard_settings', 1500, $form_id );
?>
<li class="range_setting field_setting">
<div style="clear:both;">
<label class="section_label"><?php esc_html_e( 'Range', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_number_range' ) ?></label>
</div>
<div class="range_min">
<input type="text" id="field_range_min" />
<label for="field_range_min">
<?php esc_html_e( 'Min', 'gravityforms' ); ?>
</label>
</div>
<div class="range_max">
<input type="text" id="field_range_max" />
<label for="field_range_max">
<?php esc_html_e( 'Max', 'gravityforms' ); ?>
</label>
</div>
<br class="clear" />
</li>
<?php
do_action( 'gform_field_standard_settings', 1550, $form_id );
?>
<li class="calculation_setting field_setting">
<div class="field_enable_calculation">
<input type="checkbox" id="field_enable_calculation" onclick="ToggleCalculationOptions(this.checked, field);" onkeypress="ToggleCalculationOptions(this.checked, field);" />
<label for="field_enable_calculation" class="inline">
<?php esc_html_e( 'Enable Calculation', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_enable_calculation' ) ?>
</label>
</div>
<div id="calculation_options" style="display:none;margin-top:10px;">
<label for="field_calculation_formula">
<?php esc_html_e( 'Formula', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_calculation_formula' ) ?>
</label>
<div>
<?php GFCommon::insert_calculation_variables( $form['fields'], 'field_calculation_formula', '', 'FormulaContentCallback', 40 ); ?>
<div class="gf_calculation_buttons">
<?php foreach ( array( '+', '-', '/', '*', '(', ')', '.' ) as $button ) { ?>
<input type="button" value="<?php echo in_array( $button, array( '.' ) ) ? $button : " $button "; ?>" onclick="InsertVariable('field_calculation_formula', 'FormulaContentCallback', this.value);" onkeypress="InsertVariable('field_calculation_formula', 'FormulaContentCallback', this.value);" />
<?php } ?>
</div>
</div>
<textarea id="field_calculation_formula" class="fieldwidth-3 fieldheight-2"></textarea>
<br />
<a href="javascript:void(0)" onclick="var field = GetSelectedField(); alert(IsValidFormula(field.calculationFormula) ? '<?php echo esc_js( __( 'The formula appears to be valid.', 'gravityforms' ) ); ?>' : '<?php echo esc_js( __( 'There appears to be a problem with the formula.', 'gravityforms' ) ); ?>');" onkeypress="var field = GetSelectedField(); alert(IsValidFormula(field.calculationFormula) ? '<?php echo esc_js( __( 'The formula appears to be valid.', 'gravityforms' ) ); ?>' : '<?php echo esc_js( __( 'There appears to be a problem with the formula.', 'gravityforms' ) ); ?>');"><?php esc_html_e( 'Validate Formula', 'gravityforms' ); ?></a>
<div class="field_calculation_rounding">
<label for="field_calculation_rounding" style="margin-top:10px;">
<?php esc_html_e( 'Rounding', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_calculation_rounding' ) ?>
</label>
<select id="field_calculation_rounding" onchange="SetFieldProperty('calculationRounding', this.value);">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="norounding"><?php esc_html_e( 'Do not round', 'gravityforms' ); ?></option>
</select>
</div>
</div>
<br class="clear" />
</li>
<?php
do_action( 'gform_field_standard_settings', 1600, $form_id );
?>
<li class="rules_setting field_setting">
<label for="rules" class="section_label"><?php esc_html_e( 'Rules', 'gravityforms' ); ?></label>
<ul class="rules_container">
<li>
<input type="checkbox" id="field_required" onclick="SetFieldRequired(this.checked);" onkeypress="SetFieldRequired(this.checked);" />
<label for="field_required" class="inline">
<?php esc_html_e( 'Required', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_required' ) ?>
</label>
</li>
<li>
<div class="duplicate_setting field_setting">
<input type="checkbox" id="field_no_duplicates" onclick="SetFieldProperty('noDuplicates', this.checked);" onkeypress="SetFieldProperty('noDuplicates', this.checked);" />
<label for="field_no_duplicates" class="inline">
<?php esc_html_e( 'No Duplicates', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_no_duplicate' ) ?>
</label>
</div>
</li>
</ul>
</li>
<?php
do_action( 'gform_field_standard_settings', - 1, $form_id );
?>
</ul>
</div>
<div id="gform_tab_3">
<ul>
<?php
/**
* Inserts additional content within the Appearance field settings
*
* Note: This action fires multiple times. Use the first parameter to determine positioning on the list.
*
* @param int 0 The placement of the action being fired
* @param int $form_id The current form ID
*/
do_action( 'gform_field_appearance_settings', 0, $form_id );
?>
<li class="placeholder_setting field_setting">
<label for="field_placeholder" class="section_label">
<?php esc_html_e( 'Placeholder', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_placeholder' ) ?>
</label>
<input type="text" id="field_placeholder" class="field_placeholder fieldwidth-2 merge-tag-support mt-position-right mt-prepopulate" />
<span id="placeholder_warning" style="display:none"><?php _e( 'Placeholder text is not supported when using the Rich Text Editor.', 'gravityforms' ); ?></span>
</li>
<?php
do_action( 'gform_field_appearance_settings', 20, $form_id );
?>
<li class="placeholder_textarea_setting field_setting">
<label for="field_placeholder_textarea" class="section_label">
<?php esc_html_e( 'Placeholder', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_placeholder' ) ?>
</label>
<textarea id="field_placeholder_textarea" class="field_placeholder fieldwidth-3 merge-tag-support mt-position-right mt-prepopulate"></textarea>
<span id="placeholder_warning" style="display:none"><?php _e( 'Placeholder text is not supported when using the Rich Text Editor.', 'gravityforms' ); ?></span>
</li>
<?php
do_action( 'gform_field_appearance_settings', 50, $form_id );
?>
<li class="input_placeholders_setting field_setting">
<label for="placeholders" class="section_label">
<?php esc_html_e( 'Placeholders', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_input_placeholders' ) ?>
</label>
<div id="field_input_placeholders_container">
<!-- content dynamically created from js.php -->
</div>
</li>
<?php
do_action( 'gform_field_appearance_settings', 100, $form_id );
$label_placement_form_setting = rgar( $form, 'labelPlacement' );
switch ( $label_placement_form_setting ) {
case 'left_label' :
$label_placement_form_setting_label = __( 'Left aligned', 'gravityforms' );
break;
case 'right_label' :
$label_placement_form_setting_label = __( 'Right aligned', 'gravityforms' );
break;
case 'top_label' :
default :
$label_placement_form_setting_label = __( 'Top aligned', 'gravityforms' );
}
$description_placement_form_setting = rgar( $form, 'descriptionPlacement' );
$description_placement_form_setting_label = $description_placement_form_setting == 'above' ? $description_placement_form_setting_label = __( 'Above inputs', 'gravityforms' ) : $description_placement_form_setting_label = __( 'Below inputs', 'gravityforms' );
?>
<li class="label_placement_setting field_setting">
<label for="field_label_placement" class="section_label">
<?php esc_html_e( 'Field Label Visibility', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_label_placement' ) ?>
</label>
<select id="field_label_placement" onchange="SetFieldLabelPlacement(jQuery(this).val());">
<option value=""><?php printf( __( 'Visible (%s)', 'gravityforms' ), esc_html( $label_placement_form_setting_label ) ); ?></option>
<option value="hidden_label"><?php esc_html_e( 'Hidden', 'gravityforms' ); ?></option>
</select>
<div id="field_description_placement_container" style="display:none; padding-top:10px;">
<label for="field_description_placement" class="section_label">
<?php esc_html_e( 'Description Placement', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_description_placement' ) ?>
</label>
<select id="field_description_placement"
onchange="SetFieldDescriptionPlacement(jQuery(this).val());">
<option
value=""><?php printf( __( 'Use Form Setting (%s)', 'gravityforms' ), esc_html( $description_placement_form_setting_label ) ); ?></option>
<option value="below"><?php esc_html_e( 'Below inputs', 'gravityforms' ); ?></option>
<option value="above"><?php esc_html_e( 'Above inputs', 'gravityforms' ); ?></option>
</select>
</div>
</li>
<?php
do_action( 'gform_field_appearance_settings', 150, $form_id );
$sub_label_placement_form_setting = rgar( $form, 'subLabelPlacement' );
$sub_label_placement_form_setting_label = $sub_label_placement_form_setting == 'above' ? $sub_label_placement_form_setting_label = __( 'Above inputs', 'gravityforms' ) : $sub_label_placement_form_setting_label = __( 'Below inputs', 'gravityforms' );
?>
<li class="sub_label_placement_setting field_setting">
<label for="field_sub_label_placement" class="section_label">
<?php esc_html_e( 'Sub-Label Placement', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_sub_label_placement' ) ?>
</label>
<select id="field_sub_label_placement"
onchange="SetFieldSubLabelPlacement(jQuery(this).val());">
<option
value=""><?php printf( __( 'Use Form Setting (%s)', 'gravityforms' ), esc_html( $sub_label_placement_form_setting_label ) ); ?></option>
<option value="below"><?php esc_html_e( 'Below inputs', 'gravityforms' ); ?></option>
<option value="above"><?php esc_html_e( 'Above inputs', 'gravityforms' ); ?></option>
<option value="hidden_label"><?php esc_html_e( 'Hidden', 'gravityforms' ); ?></option>
</select>
</li>
<?php do_action( 'gform_field_appearance_settings', 200, $form_id ); ?>
<li class="error_message_setting field_setting">
<label for="field_error_message" class="section_label">
<?php esc_html_e( 'Custom Validation Message', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_validation_message' ) ?>
</label>
<input type="text" id="field_error_message" class="fieldwidth-2" />
</li>
<?php
do_action( 'gform_field_appearance_settings', 250, $form_id );
?>
<li class="css_class_setting field_setting">
<label for="field_css_class" class="section_label">
<?php esc_html_e( 'Custom CSS Class', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_css_class' ) ?>
</label>
<input type="text" id="field_css_class" size="30" />
</li>
<?php
do_action( 'gform_field_appearance_settings', 300, $form_id );
?>
<li class="enable_enhanced_ui_setting field_setting">
<input type="checkbox" id="gfield_enable_enhanced_ui" onclick="SetFieldProperty('enableEnhancedUI', jQuery(this).is(':checked') ? 1 : 0);" onkeypress="SetFieldProperty('enableEnhancedUI', jQuery(this).is(':checked') ? 1 : 0);" />
<label for="gfield_enable_enhanced_ui" class="inline">
<?php esc_html_e( 'Enable enhanced user interface', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_enable_enhanced_ui' ) ?>
</label>
</li>
<?php
do_action( 'gform_field_appearance_settings', 400, $form_id );
$size_choices = GF_Fields::get( 'text' )->get_size_choices();
?>
<li class="size_setting field_setting">
<label for="field_size" class="section_label">
<?php esc_html_e( 'Field Size', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_size' ) ?>
</label>
<select id="field_size" onchange="SetFieldSize(jQuery(this).val());"><?php
foreach ( $size_choices as $size_choice ) {
if ( empty( $size_choice['value'] ) || empty( $size_choice['text'] ) ) {
continue;
}
printf( '<option value="%s">%s</option>', esc_attr( $size_choice['value'] ), esc_html( $size_choice['text'] ) );
}
?></select>
</li>
<?php
do_action( 'gform_field_appearance_settings', 500, $form_id );
?>
</ul>
</div>
<div id="gform_tab_2">
<ul>
<?php
/**
* Inserts additional content within the Advanced field settings
*
* Note: This action fires multiple times. Use the first parameter to determine positioning on the list.
*
* @param int 0 The placement of the action being fired
* @param int $form_id The current form ID
*/
do_action( 'gform_field_advanced_settings', 0, $form_id );
?>
<li class="admin_label_setting field_setting">
<label for="field_admin_label" class="section_label">
<?php esc_html_e( 'Admin Field Label', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_admin_label' ) ?>
</label>
<input type="text" id="field_admin_label" size="35" />
</li>
<?php
do_action( 'gform_field_advanced_settings', 25, $form_id );
do_action( 'gform_field_advanced_settings', 35, $form_id );
do_action( 'gform_field_advanced_settings', 50, $form_id );
do_action( 'gform_field_advanced_settings', 100, $form_id );
do_action( 'gform_field_advanced_settings', 125, $form_id );
?>
<li class="default_value_setting field_setting">
<label for="field_default_value" class="section_label">
<?php esc_html_e( 'Default Value', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_default_value' ) ?>
</label>
<input type="text" id="field_default_value" class="field_default_value fieldwidth-2 merge-tag-support mt-position-right mt-prepopulate" />
</li>
<?php
do_action( 'gform_field_advanced_settings', 150, $form_id );
?>
<li class="default_value_textarea_setting field_setting">
<label for="field_default_value_textarea" class="section_label">
<?php esc_html_e( 'Default Value', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_default_value' ) ?>
</label>
<textarea id="field_default_value_textarea" class="field_default_value fieldwidth-3 merge-tag-support mt-position-right mt-prepopulate"></textarea>
</li>
<?php
do_action( 'gform_field_advanced_settings', 155, $form_id );
?>
<li class="name_prefix_choices_setting field_setting" style="display:none;">
<?php esc_html_e( 'Prefix Choices', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_name_prefix_choices' ) ?>
<br />
<div id="gfield_settings_prefix_input_choices_container" class="gfield_settings_input_choices_container">
<label class="gfield_choice_header_label"><?php esc_html_e( 'Label', 'gravityforms' ) ?></label><label class="gfield_choice_header_value"><?php esc_html_e( 'Value', 'gravityforms' ) ?></label>
<ul id="field_prefix_choices" class="field_input_choices">
<!-- content dynamically created from js.php -->
</ul>
</div>
</li>
<?php
do_action( 'gform_field_advanced_settings', 175, $form_id );
?>
<li class="default_input_values_setting field_setting">
<label for="default values" class="section_label">
<?php esc_html_e( 'Default Values', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_default_input_values' ) ?>
</label>
<div id="field_default_input_values_container">
<!-- content dynamically created from js.php -->
</div>
</li>
<?php
do_action( 'gform_field_advanced_settings', 185, $form_id );
?>
<li class="copy_values_option field_setting">
<input type="checkbox" id="field_enable_copy_values_option" />
<label for="field_enable_copy_values_option" class="inline">
<?php esc_html_e( 'Display option to use the values submitted in different field', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_enable_copy_values_option' ) ?>
</label>
<div id="field_copy_values_disabled" style="display:none;padding-top: 10px;">
<span class="instruction" style="margin-left:0">
<?php esc_html_e( 'To activate this option, please add a field to be used as the source.', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_enable_copy_values_disabled' ) ?>
</span>
</div>
<div id="field_copy_values_container" style="display:none;" class="gfield_sub_setting">
<label for="field_copy_values_option_label">
<?php esc_html_e( 'Option Label', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_copy_values_option_label' ) ?>
</label>
<input id="field_copy_values_option_label" type="text" class="fieldwidth-2" />
<label for="field_copy_values_option_field" style="padding-top: 10px;">
<?php esc_html_e( 'Source Field', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_copy_values_option_field' ) ?>
</label>
<select id="field_copy_values_option_field">
<!-- content dynamically created -->
</select>
<div style="padding-top: 10px;">
<input type="checkbox" id="field_copy_values_option_default" />
<label for="field_copy_values_option_default" class="inline">
<?php esc_html_e( 'Activated by default', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_copy_values_option_default' ) ?>
</label>
</div>
</div>
</li>
<?php
do_action( 'gform_field_advanced_settings', 200, $form_id );
do_action( 'gform_field_advanced_settings', 225, $form_id );
do_action( 'gform_field_advanced_settings', 250, $form_id );
?>
<li class="captcha_language_setting field_setting">
<label for="field_captcha_language" class="section_label">
<?php esc_html_e( 'Language', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_recaptcha_language' ) ?>
</label>
<select id="field_captcha_language" onchange="SetFieldProperty('captchaLanguage', this.value);">
<option value="ar"><?php esc_html_e( 'Arabic', 'gravityforms' ); ?></option>
<option value="af"><?php esc_html_e( 'Afrikaans', 'gravityforms' ); ?></option>
<option value="am"><?php esc_html_e( 'Amharic', 'gravityforms' ); ?></option>
<option value="hy"><?php esc_html_e( 'Armenian', 'gravityforms' ); ?></option>
<option value="az"><?php esc_html_e( 'Azerbaijani', 'gravityforms' ); ?></option>
<option value="eu"><?php esc_html_e( 'Basque', 'gravityforms' ); ?></option>
<option value="bn"><?php esc_html_e( 'Bengali', 'gravityforms' ); ?></option>
<option value="bg"><?php esc_html_e( 'Bulgarian', 'gravityforms' ); ?></option>
<option value="ca"><?php esc_html_e( 'Catalan', 'gravityforms' ); ?></option>
<option value="zh-HK"><?php esc_html_e( 'Chinese (Hong Kong)', 'gravityforms' ); ?></option>
<option value="zh-CN"><?php esc_html_e( 'Chinese (Simplified)', 'gravityforms' ); ?></option>
<option value="zh-TW"><?php esc_html_e( 'Chinese (Traditional)', 'gravityforms' ); ?></option>
<option value="hr"><?php esc_html_e( 'Croatian', 'gravityforms' ); ?></option>
<option value="cs"><?php esc_html_e( 'Czech', 'gravityforms' ); ?></option>
<option value="da"><?php esc_html_e( 'Danish', 'gravityforms' ); ?></option>
<option value="nl"><?php esc_html_e( 'Dutch', 'gravityforms' ); ?></option>
<option value="en-GB"><?php esc_html_e( 'English (UK)', 'gravityforms' ); ?></option>
<option value="en"><?php esc_html_e( 'English (US)', 'gravityforms' ); ?></option>
<option value="et"><?php esc_html_e( 'Estonian', 'gravityforms' ); ?></option>
<option value="fil"><?php esc_html_e( 'Filipino', 'gravityforms' ); ?></option>
<option value="fi"><?php esc_html_e( 'Finnish', 'gravityforms' ); ?></option>
<option value="fr"><?php esc_html_e( 'French', 'gravityforms' ); ?></option>
<option value="fr-CA"><?php esc_html_e( 'French (Canadian)', 'gravityforms' ); ?></option>
<option value="gl"><?php esc_html_e( 'Galician', 'gravityforms' ); ?></option>
<option value="ka"><?php esc_html_e( 'Georgian', 'gravityforms' ); ?></option>
<option value="de"><?php esc_html_e( 'German', 'gravityforms' ); ?></option>
<option value="de-AT"><?php esc_html_e( 'German (Austria)', 'gravityforms' ); ?></option>
<option value="de-CH"><?php esc_html_e( 'German (Switzerland)', 'gravityforms' ); ?></option>
<option value="el"><?php esc_html_e( 'Greek', 'gravityforms' ); ?></option>
<option value="gu"><?php esc_html_e( 'Gujarati', 'gravityforms' ); ?></option>
<option value="iw"><?php esc_html_e( 'Hebrew', 'gravityforms' ); ?></option>
<option value="hi"><?php esc_html_e( 'Hindi', 'gravityforms' ); ?></option>
<option value="hu"><?php esc_html_e( 'Hungarian', 'gravityforms' ); ?></option>
<option value="is"><?php esc_html_e( 'Icelandic', 'gravityforms' ); ?></option>
<option value="id"><?php esc_html_e( 'Indonesian', 'gravityforms' ); ?></option>
<option value="it"><?php esc_html_e( 'Italian', 'gravityforms' ); ?></option>
<option value="ja"><?php esc_html_e( 'Japanese', 'gravityforms' ); ?></option>
<option value="kn"><?php esc_html_e( 'Kannada', 'gravityforms' ); ?></option>
<option value="ko"><?php esc_html_e( 'Korean', 'gravityforms' ); ?></option>
<option value="lo"><?php esc_html_e( 'Laothian', 'gravityforms' ); ?></option>
<option value="lv"><?php esc_html_e( 'Latvian', 'gravityforms' ); ?></option>
<option value="lt"><?php esc_html_e( 'Lithuanian', 'gravityforms' ); ?></option>
<option value="ms"><?php esc_html_e( 'Malay', 'gravityforms' ); ?></option>
<option value="ml"><?php esc_html_e( 'Malayalam', 'gravityforms' ); ?></option>
<option value="mr"><?php esc_html_e( 'Marathi', 'gravityforms' ); ?></option>
<option value="mn"><?php esc_html_e( 'Mongolian', 'gravityforms' ); ?></option>
<option value="no"><?php esc_html_e( 'Norwegian', 'gravityforms' ); ?></option>
<option value="fa"><?php esc_html_e( 'Persian', 'gravityforms' ); ?></option>
<option value="pl"><?php esc_html_e( 'Polish', 'gravityforms' ); ?></option>
<option value="pt"><?php esc_html_e( 'Portuguese', 'gravityforms' ); ?></option>
<option value="pt-BR"><?php esc_html_e( 'Portuguese (Brazil)', 'gravityforms' ); ?></option>
<option value="pt-PT"><?php esc_html_e( 'Portuguese (Portugal)', 'gravityforms' ); ?></option>
<option value="ro"><?php esc_html_e( 'Romanian', 'gravityforms' ); ?></option>
<option value="ru"><?php esc_html_e( 'Russian', 'gravityforms' ); ?></option>
<option value="sr"><?php esc_html_e( 'Serbian', 'gravityforms' ); ?></option>
<option value="si"><?php esc_html_e( 'Sinhalese', 'gravityforms' ); ?></option>
<option value="sk"><?php esc_html_e( 'Slovak', 'gravityforms' ); ?></option>
<option value="sl"><?php esc_html_e( 'Slovenian', 'gravityforms' ); ?></option>
<option value="es"><?php esc_html_e( 'Spanish', 'gravityforms' ); ?></option>
<option value="es-419"><?php esc_html_e( 'Spanish (Latin America)', 'gravityforms' ); ?></option>
<option value="sw"><?php esc_html_e( 'Swahili', 'gravityforms' ); ?></option>
<option value="sv"><?php esc_html_e( 'Swedish', 'gravityforms' ); ?></option>
<option value="ta"><?php esc_html_e( 'Tamil', 'gravityforms' ); ?></option>
<option value="te"><?php esc_html_e( 'Telugu', 'gravityforms' ); ?></option>
<option value="th"><?php esc_html_e( 'Thai', 'gravityforms' ); ?></option>
<option value="tr"><?php esc_html_e( 'Turkish', 'gravityforms' ); ?></option>
<option value="uk"><?php esc_html_e( 'Ukrainian', 'gravityforms' ); ?></option>
<option value="ur"><?php esc_html_e( 'Urdu', 'gravityforms' ); ?></option>
<option value="vi"><?php esc_html_e( 'Vietnamese', 'gravityforms' ); ?></option>
<option value="zu"><?php esc_html_e( 'Zulu', 'gravityforms' ); ?></option>
</select>
</li>
<?php
do_action( 'gform_field_advanced_settings', 300, $form_id );
do_action( 'gform_field_advanced_settings', 325, $form_id );
?>
<li class="add_icon_url_setting field_setting">
<label for="field_add_icon_url" class="section_label">
<?php esc_html_e( 'Add Icon URL', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_add_icon_url' ) ?>
</label>
<input type="text" id="field_add_icon_url" class="fieldwidth-2" />
</li>
<?php
do_action( 'gform_field_advanced_settings', 337, $form_id );
?>
<li class="delete_icon_url_setting field_setting">
<label for="field_delete_icon_url" class="section_label">
<?php esc_html_e( 'Delete Icon URL', 'gravityforms' ); ?>
<?php gform_tooltip( 'form_field_delete_icon_url' ) ?>
</label>
<input type="text" id="field_delete_icon_url" class="fieldwidth-2" />
</li>
<?php
do_action( 'gform_field_advanced_settings', 350, $form_id );
?>
<li class="password_field_setting field_setting">
<input type="checkbox" id="field_password" onclick="SetPasswordProperty(this.checked);" onkeypress="SetPasswordProperty(this.checked);" />
<label for="field_password" class="inline"><?php esc_html_e( 'Enable Password Input', 'gravityforms' ) ?><?php gform_tooltip( 'form_field_password' ) ?></label>
</li>
<?php
do_action( 'gform_field_advanced_settings', 375, $form_id );
?>
<li class="force_ssl_field_setting field_setting">
<input type="checkbox" id="field_force_ssl" onclick="SetFieldProperty('forceSSL', this.checked);" onkeypress="SetFieldProperty('forceSSL', this.checked);" />
<label for="field_force_ssl" class="inline"><?php esc_html_e( 'Force SSL', 'gravityforms' ) ?><?php gform_tooltip( 'form_field_force_ssl' ) ?></label>
</li>
<?php
do_action( 'gform_field_advanced_settings', 400, $form_id );
?>
<li class="visibility_setting field_setting">
<label for="visibility" class="section_label"><?php esc_html_e( 'Visibility', 'gravityforms' ); ?> <?php gform_tooltip( 'form_field_visibility' ) ?></label>
<div>
<?php foreach( GFCommon::get_visibility_options() as $visibility_option ):
$slug = sanitize_title_with_dashes( $visibility_option['value'] );
?>
<input type="radio" name="field_visibility" id="field_visibility_<?php echo $slug; ?>" size="10" value="<?php echo $visibility_option['value']; ?>" onclick="return SetFieldVisibility( this.value );" onkeypress="return SetFieldVisibility( this.value );" />
<label for="field_visibility_<?php echo $slug; ?>" class="inline">
<?php echo esc_html( $visibility_option['label'] ); ?>
</label>
&nbsp;&nbsp;
<?php endforeach; ?>
</div>
<br class="clear" />
</li>
<?php
do_action( 'gform_field_advanced_settings', 425, $form_id );
?>
<li class="rich_text_editor_setting field_setting">
<input type="checkbox" id="field_rich_text_editor" onclick="ToggleRichTextEditor( this.checked );"/>
<label for="field_rich_text_editor" class="inline"><?php _e( 'Use the Rich Text Editor', 'gravityforms' ) ?> <?php gform_tooltip( 'form_field_rich_text_editor' ) ?></label>
</li>
<?php
do_action( 'gform_field_advanced_settings', 450, $form_id );
?>
<li class="prepopulate_field_setting field_setting">
<input type="checkbox" id="field_prepopulate" onclick="SetFieldProperty('allowsPrepopulate', this.checked); ToggleInputName()" onkeypress="SetFieldProperty('allowsPrepopulate', this.checked); ToggleInputName()" />
<label for="field_prepopulate" class="inline"><?php esc_html_e( 'Allow field to be populated dynamically', 'gravityforms' ) ?> <?php gform_tooltip( 'form_field_prepopulate' ) ?></label>
<br />
<div id="field_input_name_container" style="display:none; padding-top:10px;">
<!-- content dynamically created from js.php -->
</div>
</li>
<?php
do_action( 'gform_field_advanced_settings', 500, $form_id );
?>
<li class="conditional_logic_field_setting field_setting">
<input type="checkbox" id="field_conditional_logic" onclick="SetFieldProperty('conditionalLogic', this.checked ? new ConditionalLogic() : null); ToggleConditionalLogic(false, 'field');" onkeypress="SetFieldProperty('conditionalLogic', this.checked ? new ConditionalLogic() : null); ToggleConditionalLogic(false, 'field');" />
<label for="field_conditional_logic" class="inline"><?php esc_html_e( 'Enable Conditional Logic', 'gravityforms' ) ?> <?php gform_tooltip( 'form_field_conditional_logic' ) ?></label>
<br />
<div id="field_conditional_logic_container" style="display:none; padding-top:10px;">
<!-- content dynamically created from js.php -->
</div>
</li>
<?php
do_action( 'gform_field_advanced_settings', 525, $form_id );
?>
<li class="conditional_logic_page_setting field_setting">
<input type="checkbox" id="page_conditional_logic" onclick="SetFieldProperty('conditionalLogic', this.checked ? new ConditionalLogic() : null); ToggleConditionalLogic(false, 'page');" onkeypress="SetFieldProperty('conditionalLogic', this.checked ? new ConditionalLogic() : null); ToggleConditionalLogic(false, 'page');" />
<label for="page_conditional_logic" class="inline"><?php esc_html_e( 'Enable Page Conditional Logic', 'gravityforms' ) ?> <?php gform_tooltip( 'form_page_conditional_logic' ) ?></label>
<br />
<div id="page_conditional_logic_container" style="display:none; padding-top:10px;">
<!-- content dynamically created from js.php -->
</div>
</li>
<?php
do_action( 'gform_field_advanced_settings', 550, $form_id );
?>
<li class="conditional_logic_nextbutton_setting field_setting">
<input type="checkbox" id="next_button_conditional_logic" onclick="SetNextButtonConditionalLogic(this.checked); ToggleConditionalLogic(false, 'next_button');" onkeypress="SetNextButtonConditionalLogic(this.checked); ToggleConditionalLogic(false, 'next_button');" />
<label for="next_button_conditional_logic" class="inline"><?php esc_html_e( 'Enable Next Button Conditional Logic', 'gravityforms' ) ?> <?php gform_tooltip( 'form_nextbutton_conditional_logic' ) ?></label>
<br />
<div id="next_button_conditional_logic_container" style="display:none; padding-top:10px;">
<!-- content dynamically created from js.php -->
</div>
</li>
<?php
do_action( 'gform_field_advanced_settings', - 1, $form_id );
?>
</ul>
</div>
</div>
</td>
<td valign="top" align="right">
<div id="add_fields">
<div id="floatMenu">
<!-- begin add button boxes -->
<ul id="sidebarmenu1" class="menu collapsible expandfirst">
<?php
$field_groups = self::get_field_groups();
foreach ( $field_groups as $group ) {
$tooltip_class = empty( $group['tooltip_class'] ) ? 'tooltip_left' : $group['tooltip_class'];
?>
<li id="add_<?php echo esc_attr( $group['name'] ) ?>" class="add_field_button_container">
<div class="button-title-link <?php echo $group['name'] == 'standard_fields' ? 'gf_button_title_active' : '' ?>">
<div class="add-buttons-title"><?php echo esc_html( $group['label'] ); ?> <?php gform_tooltip( "form_{$group['name']}", $tooltip_class ) ?></div>
</div>
<ul>
<li class="add-buttons">
<ol class="field_type">
<?php self::display_buttons( $group['fields'] ); ?>
</ol>
</li>
</ul>
</li>
<?php
}
?>
</ul>
<br style="clear:both;" />
<!--end add button boxes -->
<?php
$save_button_text = __( 'Update', 'gravityforms' );
$save_button = '<input type="button" class="button button-large button-primary update-form" value="' . $save_button_text . '" onclick="SaveForm();" onkeypress="SaveForm();" />';
/**
* A filter to allow you to modify the Form Save button
*
* @param string $save_button The Form Save button HTML
*/
$save_button = apply_filters( 'gform_save_form_button', $save_button );
echo $save_button;
$cancel_button = '<a href="' . admin_url( 'admin.php?page=gf_edit_forms' ) . '" class="button button-large cancel-update-form">' . esc_html__( 'Cancel', 'gravityforms' ) . '</a>';
/**
* A filter to allow you to modify the Form Cancel button
*
* @param string $cancel_button The Form Cancel button HTML
*/
$cancel_button = apply_filters( 'gform_cancel_form_button', $cancel_button );
echo $cancel_button;
if ( GFCommon::current_user_can_any( 'gravityforms_delete_forms' ) ) {
$trash_link = '<a class="submitdelete" onclick="gf_vars.isFormTrash = true; jQuery(\'#form_trash\')[0].submit();" onkeypress="gf_vars.isFormTrash = true; jQuery(\'#form_trash\')[0].submit();">' . __( 'Move to Trash', 'gravityforms' ) . '</a>';
/**
* @deprecated
*/
$trash_link = apply_filters( 'gform_form_delete_link', $trash_link );
/**
* Allows for modification of the Form Trash Link.
*
* @since 2.1.2.3 Added the $form_id param.
* @since 1.8
*
* @param string $trash_link The Trash link HTML.
* @param int $form_id The ID of the form being edited.
*/
echo apply_filters( 'gform_form_trash_link', $trash_link, $form_id );
}
?>
<span id="please_wait_container" style="display:none;"><i class='gficon-gravityforms-spinner-icon gficon-spin'></i></span>
<div class="updated_base" id="after_update_dialog" style="display:none;">
<strong><?php esc_html_e( 'Form updated successfully.', 'gravityforms' ); ?>
&nbsp;<a href="<?php echo esc_url( trailingslashit( site_url() ) ) ?>?gf_page=preview&id=<?php echo absint( rgar( $form, 'id' ) ) ?>" target="_blank"><?php esc_html_e( 'Preview', 'gravityforms' ); ?></a></strong>
</div>
<div class="error_base" id="after_update_error_dialog" style="padding:10px 10px 16px 10px; display:none;">
<?php esc_html_e( 'There was an error while saving your form.', 'gravityforms' ) ?>
<?php printf( __( 'Please %scontact our support team%s.', 'gravityforms' ), '<a href="https://www.gravityforms.com/support/">', '</a>' ) ?>
</div>
<!-- this field allows us to force onblur events for field setting inputs that are otherwise not triggered
when closing the field settings UI -->
<input type="text" id="gform_force_focus" style="position:absolute;left:-9999em;" />
<form method="post" id="gform_update">
<?php wp_nonce_field( "gforms_update_form_{$form_id}", 'gforms_update_form' ) ?>
<input type="hidden" id="gform_meta" name="gform_meta" />
</form>
</div>
</div>
</td>
</tr>
</table>
</div>
<!-- // including form setting hooks as a temporary fix to prevent issues where users using the "gform_before_update" hook are expecting
form settings to be included on the form editor page -->
<div style="display:none;">
<!--form settings-->
<?php do_action( 'gform_properties_settings', 100, $form_id ); ?>
<?php do_action( 'gform_properties_settings', 200, $form_id ); ?>
<?php do_action( 'gform_properties_settings', 300, $form_id ); ?>
<?php do_action( 'gform_properties_settings', 400, $form_id ); ?>
<?php do_action( 'gform_properties_settings', 500, $form_id ); ?>
<!--advanced settings-->
<?php do_action( 'gform_advanced_settings', 100, $form_id ); ?>
<?php do_action( 'gform_advanced_settings', 200, $form_id ); ?>
<?php do_action( 'gform_advanced_settings', 300, $form_id ); ?>
<?php do_action( 'gform_advanced_settings', 400, $form_id ); ?>
<?php do_action( 'gform_advanced_settings', 500, $form_id ); ?>
<?php do_action( 'gform_advanced_settings', 600, $form_id ); ?>
<?php do_action( 'gform_advanced_settings', 700, $form_id ); ?>
<?php do_action( 'gform_advanced_settings', 800, $form_id ); ?>
</div>
<?php
self::inline_scripts( $form );
require_once( GFCommon::get_base_path() . '/js.php' );
}
/**
* Prepare form field groups.
*
* @since 2.0.7.7
* @access public
*
* @return array
*/
public static function get_field_groups() {
// Set initial field groups.
$field_groups = array(
'standard_fields' => array(
'name' => 'standard_fields',
'label' => __( 'Standard Fields', 'gravityforms' ),
'tooltip_class' => 'tooltip_bottomleft',
'fields' => array(
array( 'class' => 'button', 'data-type' => 'text', 'value' => GFCommon::get_field_type_title( 'text' ) ),
array( 'class' => 'button', 'data-type' => 'textarea', 'value' => GFCommon::get_field_type_title( 'textarea' ) ),
array( 'class' => 'button', 'data-type' => 'select', 'value' => GFCommon::get_field_type_title( 'select' ) ),
array( 'class' => 'button', 'data-type' => 'multiselect', 'value' => GFCommon::get_field_type_title( 'multiselect' ) ),
array( 'class' => 'button', 'data-type' => 'number', 'value' => GFCommon::get_field_type_title( 'number' ) ),
array( 'class' => 'button', 'data-type' => 'checkbox', 'value' => GFCommon::get_field_type_title( 'checkbox' ) ),
array( 'class' => 'button', 'data-type' => 'radio', 'value' => GFCommon::get_field_type_title( 'radio' ) ),
array( 'class' => 'button', 'data-type' => 'hidden', 'value' => GFCommon::get_field_type_title( 'hidden' ) ),
array( 'class' => 'button', 'data-type' => 'html', 'value' => GFCommon::get_field_type_title( 'html' ) ),
array( 'class' => 'button', 'data-type' => 'section', 'value' => GFCommon::get_field_type_title( 'section' ) ),
array( 'class' => 'button', 'data-type' => 'page', 'value' => GFCommon::get_field_type_title( 'page' ) ),
),
),
'advanced_fields' => array(
'name' => 'advanced_fields',
'label' => __( 'Advanced Fields', 'gravityforms' ),
'fields' => array(
array( 'class' => 'button', 'data-type' => 'name', 'value' => GFCommon::get_field_type_title( 'name' ) ),
array( 'class' => 'button', 'data-type' => 'date', 'value' => GFCommon::get_field_type_title( 'date' ) ),
array( 'class' => 'button', 'data-type' => 'time', 'value' => GFCommon::get_field_type_title( 'time' ) ),
array( 'class' => 'button', 'data-type' => 'phone', 'value' => GFCommon::get_field_type_title( 'phone' ) ),
array( 'class' => 'button', 'data-type' => 'address', 'value' => GFCommon::get_field_type_title( 'address' ) ),
array( 'class' => 'button', 'data-type' => 'website', 'value' => GFCommon::get_field_type_title( 'website' ) ),
array( 'class' => 'button', 'data-type' => 'email', 'value' => GFCommon::get_field_type_title( 'email' ) ),
array( 'class' => 'button', 'data-type' => 'fileupload', 'value' => GFCommon::get_field_type_title( 'fileupload' ) ),
array( 'class' => 'button', 'data-type' => 'captcha', 'value' => GFCommon::get_field_type_title( 'captcha' ) ),
array( 'class' => 'button', 'data-type' => 'list', 'value' => GFCommon::get_field_type_title( 'list' ) ),
),
),
'post_fields' => array(
'name' => 'post_fields',
'label' => __( 'Post Fields', 'gravityforms' ),
'fields' => array(
array( 'class' => 'button', 'data-type' => 'post_title', 'value' => GFCommon::get_field_type_title( 'post_title' ) ),
array( 'class' => 'button', 'data-type' => 'post_content', 'value' => GFCommon::get_field_type_title( 'post_content' ) ),
array( 'class' => 'button', 'data-type' => 'post_excerpt', 'value' => GFCommon::get_field_type_title( 'post_excerpt' ) ),
array( 'class' => 'button', 'data-type' => 'post_tags', 'value' => GFCommon::get_field_type_title( 'post_tags' ) ),
array( 'class' => 'button', 'data-type' => 'post_category', 'value' => GFCommon::get_field_type_title( 'post_category' ) ),
array( 'class' => 'button', 'data-type' => 'post_image', 'value' => GFCommon::get_field_type_title( 'post_image' ) ),
array( 'class' => 'button', 'data-type' => 'post_custom_field', 'value' => GFCommon::get_field_type_title( 'post_custom_field' ) ),
),
),
'pricing_fields' => array(
'name' => 'pricing_fields',
'label' => __( 'Pricing Fields', 'gravityforms' ),
'fields' => array(
array( 'class' => 'button', 'data-type' => 'product', 'value' => GFCommon::get_field_type_title( 'product' ) ),
array( 'class' => 'button', 'data-type' => 'quantity', 'value' => GFCommon::get_field_type_title( 'quantity' ) ),
array( 'class' => 'button', 'data-type' => 'option', 'value' => GFCommon::get_field_type_title( 'option' ) ),
array( 'class' => 'button', 'data-type' => 'shipping', 'value' => GFCommon::get_field_type_title( 'shipping' ) ),
array( 'class' => 'button', 'data-type' => 'total', 'value' => GFCommon::get_field_type_title( 'total' ) ),
),
),
);
// If enabled insert the password field between the email and fileupload fields.
if ( apply_filters( 'gform_enable_password_field', false ) ) {
$password = array(
'class' => 'button',
'data-type' => 'password',
'value' => GFCommon::get_field_type_title( 'password' )
);
array_splice( $field_groups['advanced_fields']['fields'], 7, 0, array( $password ) );
}
// Add credit card field, if enabled.
if ( apply_filters( 'gform_enable_credit_card_field', false ) ) {
$field_groups['pricing_fields']['fields'][] = array(
'class' => 'button',
'data-type' => 'creditcard',
'value' => GFCommon::get_field_type_title( 'creditcard' )
);
}
/**
* Modify the field groups before fields are added.
*
* @since 2.2.6
*
* @param array $field_groups The field groups, including group name, label and fields.
*/
$field_groups = apply_filters( 'gform_field_groups_form_editor', $field_groups );
// Remove array keys from field groups array.
$field_groups = array_values( $field_groups );
// Add buttons to fields.
foreach ( GF_Fields::get_all() as $gf_field ) {
$field_groups = $gf_field->add_button( $field_groups );
}
/**
* Add/edit/remove "Add Field" buttons from the form editor's floating toolbox.
*
* @param array $field_groups The field groups, including group name, label and fields.
*/
return apply_filters( 'gform_add_field_buttons', $field_groups );
}
public static function color_picker( $field_name, $callback ) {
?>
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<input type='text' class="iColorPicker" size="7" name='<?php echo esc_attr( $field_name ); ?>' onchange='SetColorPickerColor(this.name, this.value, "<?php echo $callback ?>");' id='<?php echo esc_attr( $field_name ) ?>' />
</td>
<td style="padding-right:5px; padding-left:5px;">
<img style="top:3px; cursor:pointer; border:1px solid #dfdfdf;" id="chip_<?php echo esc_attr( $field_name ); ?>" valign="bottom" height="22" width="22" src="<?php echo GFCommon::get_base_url() ?>/images/blankspace.png" />
</td>
<td>
<img style="cursor:pointer;" valign="bottom" id="chooser_<?php echo esc_attr( $field_name ); ?>" src="<?php echo GFCommon::get_base_url() ?>/images/color.png" />
</td>
</tr>
</table>
<script type="text/javascript">
jQuery("#chooser_<?php echo esc_js( $field_name ); ?>").click(function (e) {
iColorShow(e.pageX, e.pageY, '<?php echo esc_js( $field_name ) ?>', "<?php echo esc_js ( $callback ) ?>");
});
jQuery("#chip_<?php echo esc_js( $field_name ); ?>").click(function (e) {
iColorShow(e.pageX, e.pageY, '<?php echo esc_js( $field_name ); ?>', "<?php echo esc_js( $callback ) ?>");
});
</script>
<?php
}
private static function display_buttons( $buttons ) {
foreach ( $buttons as $button ) {
echo "<li><input type=\"button\"";
foreach ( array_keys( $button ) as $attr ) {
echo " $attr=\"{$button[ $attr ]}\"";
}
echo '/></li>';
}
}
//Hierarchical category functions copied from WordPress core and modified.
private static function _cat_rows( $categories, &$count, &$output, $parent = 0, $level = 0, $page = 1, $per_page = 9999999 ) {
if ( empty( $categories ) ) {
$args = array( 'hide_empty' => 0 );
if ( ! empty( $_POST['search'] ) )
$args['search'] = $_POST['search'];
$categories = get_categories( $args );
}
if ( ! $categories )
return false;
$children = self::_get_term_hierarchy( 'category' );
$start = ( $page - 1 ) * $per_page;
$end = $start + $per_page;
$i = - 1;
foreach ( $categories as $category ) {
if ( $count >= $end )
break;
$i ++;
if ( $category->parent != $parent )
continue;
// If the page starts in a subtree, print the parents.
if ( $count == $start && $category->parent > 0 ) {
$my_parents = array();
while ( $my_parent ) {
$my_parent = get_category( $my_parent );
$my_parents[] = $my_parent;
if ( ! $my_parent->parent )
break;
$my_parent = $my_parent->parent;
}
$num_parents = count( $my_parents );
while ( $my_parent = array_pop( $my_parents ) ) {
self::_cat_row( $my_parent, $level - $num_parents, $output );
$num_parents --;
}
}
if ( $count >= $start )
self::_cat_row( $category, $level, $output );
//unset($categories[ $i ]); // Prune the working set
$count ++;
if ( isset( $children[ $category->term_id ] ) )
self::_cat_rows( $categories, $count, $output, $category->term_id, $level + 1, $page, $per_page );
}
}
private static function _cat_row( $category, $level, &$output, $name_override = false ) {
static $row_class = '';
$cat = get_category( $category, OBJECT, 'display' );
$default_cat_id = (int) get_option( 'default_category' );
$pad = str_repeat( '&#8212; ', $level );
$name = ( $name_override ? $name_override : $pad . ' ' . $cat->name );
$cat->count = number_format_i18n( $cat->count );
$output .= "
<tr class='author-self status-inherit' valign='top'>
<th scope='row' class='check-column'><input type='checkbox' class='gfield_category_checkbox' value='" . esc_attr( $cat->term_id ) . "' name='" . esc_attr( $cat->name ) . "' onclick='SetSelectedCategories();' onkeypress='SetSelectedCategories();' /></th>
<td class='gfield_category_cell'>$name</td>
</tr>";
}
private static function _get_term_hierarchy( $taxonomy ) {
if ( ! is_taxonomy_hierarchical( $taxonomy ) )
return array();
$children = get_option( "{$taxonomy}_children" );
if ( is_array( $children ) )
return $children;
$children = array();
$terms = get_terms( $taxonomy, 'get=all' );
foreach ( $terms as $term ) {
if ( $term->parent > 0 )
$children[ $term->parent ][] = $term->term_id;
}
update_option( "{$taxonomy}_children", $children );
return $children;
}
private static function insert_variable_prepopulate( $element_id, $callback = '' ) {
?>
<select id="<?php echo esc_attr( $element_id ); ?>_variable_select" onchange="InsertVariable('<?php echo esc_js( $element_id ) ?>', '<?php echo esc_js( $callback ); ?>'); ">
<option value=''><?php esc_html_e( 'Insert Merge Tag', 'gravityforms' ); ?></option>
<option value='{ip}'><?php esc_html_e( 'User IP Address', 'gravityforms' ); ?></option>
<option value='{date_mdy}'><?php esc_html_e( 'Date', 'gravityforms' ); ?> (mm/dd/yyyy)</option>
<option value='{date_dmy}'><?php esc_html_e( 'Date', 'gravityforms' ); ?> (dd/mm/yyyy)</option>
<option value='{embed_post:ID}'><?php esc_html_e( 'Embed Post/Page Id', 'gravityforms' ); ?></option>
<option value='{embed_post:post_title}'><?php esc_html_e( 'Embed Post/Page Title', 'gravityforms' ); ?></option>
<option value='{embed_url}'><?php esc_html_e( 'Embed URL', 'gravityforms' ); ?></option>
<option value='{user_agent}'><?php esc_html_e( 'HTTP User Agent', 'gravityforms' ); ?></option>
<option value='{referer}'><?php esc_html_e( 'HTTP Referer URL', 'gravityforms' ); ?></option>
<option value='{user:display_name}'><?php esc_html_e( 'User Display Name', 'gravityforms' ); ?></option>
<option value='{user:user_email}'><?php esc_html_e( 'User Email', 'gravityforms' ); ?></option>
<option value='{user:user_login}'><?php esc_html_e( 'User Login', 'gravityforms' ); ?></option>
<?php
}
//Ajax calls
public static function add_field() {
check_ajax_referer( 'rg_add_field', 'rg_add_field' );
$field_json = stripslashes_deep( $_POST['field'] );
$field_properties = GFCommon::json_decode( $field_json, true );
$field = GF_Fields::create( $field_properties );
$field->sanitize_settings();
$index = rgpost( 'index' );
if ( $index != 'undefined' ) {
$index = absint( $index );
}
require_once( GFCommon::get_base_path() . '/form_display.php' );
$form_id = absint( rgpost( 'form_id' ) );
$form = GFFormsModel::get_form_meta( $form_id );
$field_html = GFFormDisplay::get_field( $field, '', true, $form );
$field_html_json = json_encode( $field_html );
$field_json = json_encode( $field );
die( "EndAddField($field_json, " . $field_html_json . ", $index);" );
}
public static function duplicate_field() {
check_ajax_referer( 'rg_duplicate_field', 'rg_duplicate_field' );
$source_field_id = absint( rgpost( 'source_field_id' ) );
$field_json = stripslashes_deep( $_POST['field'] );
$field_properties = GFCommon::json_decode( $field_json, true );
$field = GF_Fields::create( $field_properties );
$form_id = absint( rgpost( 'form_id' ) );
$form = GFFormsModel::get_form_meta( $form_id );
require_once( GFCommon::get_base_path() . '/form_display.php' );
$field_html = GFFormDisplay::get_field( $field, '', true, $form );
$args['field'] = $field;
$args['sourceFieldId'] = $source_field_id;
$args['fieldString'] = $field_html;
$args_json = json_encode( $args );
die( $args_json );
}
public static function change_input_type() {
check_ajax_referer( 'rg_change_input_type', 'rg_change_input_type' );
$field_json = stripslashes_deep( $_POST['field'] );
$field_properties = GFCommon::json_decode( $field_json, true );
$field = GF_Fields::create( $field_properties );
$id = absint( $field->id );
$type = $field->inputType;
$form_id = absint( rgpost( 'form_id' ) );
$form = GFFormsModel::get_form_meta( $form_id );
require_once( GFCommon::get_base_path() . '/form_display.php' );
$field_content = GFFormDisplay::get_field_content( $field, '', true, $form_id, $form );
$args['id'] = $id;
$args['type'] = $type;
$args['fieldString'] = $field_content;
$args_json = json_encode( $args );
die( "EndChangeInputType($args_json);" );
}
public static function refresh_field_preview() {
check_ajax_referer( 'rg_refresh_field_preview', 'rg_refresh_field_preview' );
$field_json = stripslashes_deep( $_POST['field'] );
$field_properties = GFCommon::json_decode( $field_json, true );
$field = GF_Fields::create( $field_properties );
$field->sanitize_settings();
$form_id = absint( $_POST['formId'] );
$form = GFFormsModel::get_form_meta( $form_id );
$form = GFFormsModel::maybe_sanitize_form_settings( $form );
require_once( GFCommon::get_base_path() . '/form_display.php' );
$field_content = GFFormDisplay::get_field_content( $field, '', true, $form_id, $form );
$args['fieldString'] = $field_content;
$args['fieldId'] = absint( $field->id );
$args_json = json_encode( $args );
die( $args_json );
}
public static function delete_custom_choice() {
check_ajax_referer( 'gf_delete_custom_choice', 'gf_delete_custom_choice' );
RGFormsModel::delete_custom_choice( rgpost( 'name' ) );
exit();
}
public static function save_custom_choice() {
check_ajax_referer( 'gf_save_custom_choice', 'gf_save_custom_choice' );
RGFormsModel::save_custom_choice( rgpost( 'previous_name' ), rgpost( 'new_name' ), GFCommon::json_decode( rgpost( 'choices' ) ) );
exit();
}
/**
* Saves form meta. Note the special requirements for the meta string.
*
* @param int $id
* @param string $form_json A valid JSON string. The JSON is manipulated before decoding and is designed to work together with jQuery.toJSON() rather than json_encode. Avoid using json_encode as it will convert unicode characters into their respective entities with slashes. These slashes get stripped so unicode characters won't survive intact.
*
* @return array
*/
public static function save_form_info( $id, $form_json ) {
global $wpdb;
// Clean up form meta JSON.
$form_json = stripslashes( $form_json );
$form_json = nl2br( $form_json );
GFCommon::log_debug( 'GFFormDetail::save_form_info(): Form meta json: ' . $form_json );
// Convert form meta JSON to array.
$form_meta = json_decode( $form_json, true );
$form_meta = GFFormsModel::convert_field_objects( $form_meta );
// Set version of Gravity Forms form was created with.
if ( $id === 0 ) {
$form_meta['version'] = GFForms::$version;
}
// Sanitize form settings.
$form_meta = GFFormsModel::maybe_sanitize_form_settings( $form_meta );
// Extract deleted field IDs.
$deleted_fields = rgar( $form_meta, 'deletedFields' );
unset( $form_meta['deletedFields'] );
GFCommon::log_debug( 'GFFormDetail::save_form_info(): Form meta => ' . print_r( $form_meta, true ) );
// If form meta is not found, exit.
if ( ! $form_meta ) {
return array( 'status' => 'invalid_json', 'meta' => null );
}
// Get form table name.
$form_table_name = GFFormsModel::get_form_table_name();
// Get all forms.
$forms = GFFormsModel::get_forms();
// Loop through forms.
foreach ( $forms as $form ) {
// If form has a duplicate title, exit.
if ( strtolower( $form->title ) == strtolower( $form_meta['title'] ) && rgar( $form_meta, 'id' ) != $form->id ) {
return array( 'status' => 'duplicate_title', 'meta' => $form_meta );
}
}
// If an ID exists, update existing form.
if ( $id > 0 ) {
// Trim form meta values.
$form_meta = GFFormsModel::trim_form_meta_values( $form_meta );
// Delete fields.
if ( ! empty( $deleted_fields ) ) {
// Loop through fields.
foreach ( $deleted_fields as $deleted_field ) {
// Delete field.
$form_meta = GFFormsModel::delete_field( $form_meta, $deleted_field, false );
}
}
// Save form meta.
GFFormsModel::update_form_meta( $id, $form_meta );
// Update form title.
GFAPI::update_form_property( $id, 'title', $form_meta['title'] );
// Get form meta.
$form_meta = RGFormsModel::get_form_meta( $id );
if ( ! empty( $deleted_fields ) ) {
// Remove logic/routing rules based on deleted fields from confirmations and notifications.
foreach ( $deleted_fields as $deleted_field ) {
$form_meta = GFFormsModel::delete_field_from_confirmations( $form_meta, $deleted_field );
$form_meta = GFFormsModel::delete_field_from_notifications( $form_meta, $deleted_field );
}
}
/**
* Fires after a form is saved
*
* Used to run additional actions after the form is saved
*
* @since 2.4.6.1 Added the $deleted_fields param.
* @since unknown
*
* @param array $form_meta The form meta
* @param bool false Returns false if the form ID already exists.
* @param array $deleted_fields The IDs of any fields which have been deleted.
*/
do_action( 'gform_after_save_form', $form_meta, false, $deleted_fields );
return array( 'status' => $id, 'meta' => $form_meta );
} else {
//inserting form
$id = RGFormsModel::insert_form( $form_meta['title'] );
//updating object's id property
$form_meta['id'] = $id;
//creating default notification
if ( apply_filters( 'gform_default_notification', true ) ) {
$default_notification = array(
'id' => uniqid(),
'isActive' => true,
'to' => '{admin_email}',
'name' => __( 'Admin Notification', 'gravityforms' ),
'event' => 'form_submission',
'toType' => 'email',
'subject' => __( 'New submission from', 'gravityforms' ) . ' {form_title}',
'message' => '{all_fields}',
);
$notifications = array( $default_notification['id'] => $default_notification );
//updating notifications form meta
RGFormsModel::save_form_notifications( $id, $notifications );
}
// Add default confirmation when saving a new form.
$confirmation = GFFormsModel::get_default_confirmation();
$confirmations = array( $confirmation['id'] => $confirmation );
GFFormsModel::save_form_confirmations( $id, $confirmations );
//updating form meta
GFFormsModel::update_form_meta( $id, $form_meta );
// Get form meta.
$form_meta = GFFormsModel::get_form_meta( $id );
/**
* Fires after a form is saved
*
* Used to run additional actions after the form is saved
*
* @since 2.4.6.1 Added the $deleted_fields param.
* @since unknown
*
* @param array $form_meta The form meta
* @param bool true Returns true if this is a new form.
* @param array $deleted_fields The IDs of any fields which have been deleted.
*/
do_action( 'gform_after_save_form', $form_meta, true, array() );
return array( 'status' => $id * - 1, 'meta' => $form_meta );
}
}
public static function save_form() {
check_ajax_referer( 'rg_save_form', 'rg_save_form' );
$id = absint( $_POST['id'] );
$form_json = absint( $_POST['form'] );
$result = self::save_form_info( $id, $form_json );
switch ( rgar( $result, 'status' ) ) {
case 'invalid_json' :
die( 'EndUpdateForm(0);' );
break;
case 'duplicate_title' :
die( 'DuplicateTitleMessage();' );
break;
default :
$form_id = absint( $result['status'] );
if ( $form_id < 0 ) {
die( 'EndInsertForm(' . $form_id . ');' );
} else {
die( "EndUpdateForm({$form_id});" );
}
break;
}
}
public static function get_post_category_values() {
$has_input_name = strtolower( rgpost( 'inputName' ) ) !== 'false';
$id = ! $has_input_name ? rgpost( 'objectType' ) . '_rule_value_' . rgpost( 'ruleIndex' ) : rgpost( 'inputName' );
$selected = rgempty( 'selectedValue' ) ? 0 : rgpost( 'selectedValue' );
$dropdown = wp_dropdown_categories( array( 'class' => 'gfield_rule_select gfield_rule_value_dropdown gfield_category_dropdown', 'orderby' => 'name', 'id' => $id, 'name' => $id, 'selected' => $selected, 'hierarchical' => true, 'hide_empty' => 0, 'echo' => false ) );
die( $dropdown );
}
public static function inline_scripts( $echo = true ) {
$script_str = '';
$conditional_logic_fields = array();
$field_settings = array();
foreach ( GF_Fields::get_all() as $gf_field ) {
$settings_arr = $gf_field->get_form_editor_field_settings();
if ( ! is_array( $settings_arr ) || empty( $settings_arr ) ) {
continue;
}
$settings = join( ', .', $settings_arr );
$settings = '.' . $settings;
$field_settings[ $gf_field->type ] = $settings;
if ( $gf_field->is_conditional_logic_supported() ) {
$conditional_logic_fields[] = $gf_field->type;
}
$field_script = $gf_field->get_form_editor_inline_script_on_page_render();
if ( ! empty( $field_script ) ){
$script_str .= $field_script . PHP_EOL;
}
}
$script_str .= sprintf( 'fieldSettings = %s;', json_encode( $field_settings ) ) . PHP_EOL;
$script_str .= sprintf( 'function GetConditionalLogicFields(){return %s;}', json_encode( $conditional_logic_fields ) ) . PHP_EOL;
if ( ! empty( $script_str ) ) {
$script_str = sprintf( '<script type="text/javascript">%s</script>', $script_str );
if ( $echo ) {
echo $script_str;
}
}
return $script_str;
}
/**
* Adds the form ID to the beginning of the list of recently opened forms and stores the array for the current user.
*
* @since 2.0
* @param $form_id
*/
public static function update_recent_forms( $form_id ) {
GFFormsModel::update_recent_forms( $form_id );
}
}