/** * Get available forms based on form ID and feed type. * */ public static function get_available_forms() { $feed_type = rgpost('feed_type'); $feed_id = rgpost('feed_id'); $forms = GFUserData::get_available_forms($feed_type, $feed_id); die(self::create_form_select_options($forms)); }
private static function edit_page() { ?> <style type="text/css"> #user_registration_submit_container{clear:both;} .user_registration_col_heading{padding-bottom:2px; border-bottom: 1px solid #ccc; font-weight:bold; width:120px;} .user_registration_field_cell {padding: 6px 17px 0 0; margin-right:15px;} .user_registration_validation_error{ background-color:#FFDFDF; margin-top:4px; margin-bottom:6px; padding-top:6px; padding-bottom:6px; border:1px dotted #C89797;} .user_registration_validation_error span {color: red;} .left_header { float:left; width: 260px;} .column_right { margin-left: 260px; } .margin_vertical_10{margin: 10px 0; padding-left:5px;} .margin_vertical_30{margin: 30px 0; padding-left:5px;} .width-1{width:300px;} .gf_user_registration_invalid_form{margin-top:30px; background-color:#FFEBE8;border:1px solid #CC0000; padding:10px; width:600px;} .hide-label { display: none; } .enabled-by-default { color: #999; } div.custom_metaname { position: relative; } span.reset { background:url("images/xit.gif") no-repeat scroll 0 -10px transparent; cursor:pointer; display:block; position:absolute; text-indent:-9999px; width:10px; height: 10px; right: 16px; top: 7px; } .hover span.reset { background-position: 0 0; } option.label { font-style: italic; color: #999; } .metaname, .metavalue { float: left; } .metavalue { margin-left: 30px; } .metaname .width-1 { margin-right: 10px; width: 220px; } .add_field_choice, .delete_field_choice { margin: 3px 0 4px 3px; } .custom_usermeta .margin_vertical_10 { overflow: hidden; margin-bottom: 0; } .custom_usermeta option.custom { font-weight: bold; } .custom_metaname { float: left; } .notice { font-size: 12px; font-style: italic; color: #aaa; } .system-option, .password-field option:last-child { font-style: italic; } .checkbox-label { font-size: 12px; } .disabled label { color: #999; } </style> <div class="wrap"> <img alt="<?php _e("User Registration", "gravityformsuserregistration"); ?> " style="margin: 15px 7px 0pt 0pt; float: left;" src="<?php echo self::get_base_url(); ?> /images/user-registration-icon-32.png"/> <h2><?php _e("User Registration Settings", "gravityformsuserregistration"); ?> </h2> <?php //getting setting id (0 when creating a new one) $id = RGForms::post("user_registration_setting_id"); $id = !empty($id) ? $id : absint(RGForms::get("id")); $config = empty($id) ? array("meta" => array(), "is_active" => true) : GFUserData::get_feed($id); $is_validation_error = false; // handle submission $is_submit = RGForms::post("gf_user_registration_submit"); if (!empty($is_submit) && check_admin_referer('user_registration_edit_submit', 'user_registration_edit_submit')) { $form_id = RGForms::post("gf_user_registration_form"); $config["form_id"] = absint($form_id); // standard meta $config["meta"]["username"] = RGForms::post("gf_user_registration_username"); $config["meta"]["firstname"] = RGForms::post("gf_user_registration_firstname"); $config["meta"]["lastname"] = RGForms::post("gf_user_registration_lastname"); $config["meta"]["displayname"] = RGForms::post("gf_user_registration_displayname"); $config["meta"]["email"] = RGForms::post("gf_user_registration_email"); $config["meta"]["password"] = RGForms::post("gf_user_registration_password"); $config["meta"]["role"] = RGForms::post("gf_user_registration_role"); // user meta $json = stripslashes(RGForms::post("gf_user_meta")); $config["meta"]["user_meta"] = GFCommon::json_decode($json); //clean user meta (workaround to avoid values being marked as array) if (is_array($config["meta"]["user_meta"])) { foreach ($config["meta"]["user_meta"] as &$meta) { if (is_array($meta["meta_value"])) { $meta["meta_value"] = $meta["meta_value"][0]; } } } // registration condition $config['meta']['reg_condition_enabled'] = RGForms::post('gf_user_registration_enabled'); $config['meta']['reg_condition_field_id'] = RGForms::post('gf_user_registration_field_id'); $config['meta']['reg_condition_operator'] = RGForms::post('gf_user_registration_operator'); $config['meta']['reg_condition_value'] = RGForms::post('gf_user_registration_value'); // additional meta options $config['meta']['notification'] = RGForms::post('gf_user_registration_notification'); $config['meta']['set_post_author'] = RGForms::post('gf_user_registration_set_post_author'); // use to save custom config options (used by BuddyPress) $config = apply_filters("gform_user_registration_save_config", $config); $is_validation_error = apply_filters("gform_user_registration_config_validation", false, $config); // validate and create/update feed if ($config["meta"]["email"] && $config["meta"]["username"] && !$is_validation_error) { $id = GFUserData::update_feed($id, $config["form_id"], $config["is_active"], $config["meta"]); ?> <div class="updated fade" style="padding:6px"><?php echo sprintf(__("Feed Updated. %sback to list%s", "gravityformsuserregistration"), "<a href='?page=gf_user_registration'>", "</a>"); ?> </div> <?php } else { $is_validation_error = true; } } $form = isset($config["form_id"]) && $config["form_id"] ? RGFormsModel::get_form_meta($config["form_id"]) : array(); $form_fields = $email_fields = $selection_fields = $password_fields = array(); if (!empty($form)) { $set_author_style = GFCommon::has_post_field($form['fields']) ? 'display:block' : 'display:none'; $form_fields = self::get_form_fields($form); $email_fields = self::get_fields_by_type($form, 'email'); $selection_fields = GFCommon::get_selection_fields($form, $config['meta']['reg_condition_field_id']); // add custom option to password fields $password_default = array(array('', __('Auto Generate Password', 'gravityformsuserregistration'))); $password_fields = self::get_fields_by_type($form, 'password'); $password_fields = array_merge($password_fields, $password_default); } ?> <form method="post" action="" id="gf_user_form"> <input type="hidden" name="user_registration_setting_id" value="<?php echo $id; ?> " /> <input type="hidden" name="gf_user_meta" id="gf_user_meta" value="" /> <?php wp_nonce_field('user_registration_edit_submit', 'user_registration_edit_submit'); ?> <div class="margin_vertical_10<?php echo $is_validation_error ? " user_registration_validation_error" : ""; ?> "> <?php if ($is_validation_error) { ?> <span><?php _e('Your Registration Feed could not be saved. Please update the errors below and re-save your feed.', 'gravityformsuserregistration'); ?> </span> <?php } ?> </div> <!-- / validation message --> <div id="user_registration_form_container" valign="top" class="margin_vertical_10"> <label for="gf_user_registration_form" class="left_header"><?php _e("Gravity Form", "gravityformsuserregistration"); ?> <?php gform_tooltip("user_registration_gravity_form"); ?> </label> <select id="gf_user_registration_form" name="gf_user_registration_form" onchange="SelectForm(jQuery(this).val(), '<?php echo rgar($config, 'id'); ?> ');"> <option value=""><?php _e("Select a form", "gravityformsuserregistration"); ?> </option> <?php $active_form = $config["form_id"]; $available_forms = GFUserData::get_available_forms($active_form); foreach ($available_forms as $current_form) { $selected = absint($current_form->id) == $config["form_id"] ? 'selected="selected"' : ''; ?> <option value="<?php echo absint($current_form->id); ?> " <?php echo $selected; ?> ><?php echo esc_html($current_form->title); ?> </option> <?php } ?> </select> <img src="<?php echo self::get_base_url(); ?> /images/loading.gif" id="user_registration_wait" style="display: none;"/> <div id="gf_user_registration_invalid_product_form" class="gf_user_registration_invalid_form" style="display:none;"> <?php _e("The form selected does not have any Email fields. Please add an Email field to the form and try again.", "gravityformsuserregistration"); ?> </div> </div> <!-- / select form --> <div id="user_registration_field_group" valign="top" <?php echo empty($config["form_id"]) ? "style='display:none;'" : ""; ?> > <div id="standard_fields"> <h3>User Settings</h3> <div class="margin_vertical_10 <?php echo $is_validation_error && empty($config['meta']['username']) ? 'user_registration_validation_error' : ''; ?> "> <label class="left_header" for="gf_user_registration_username"><?php _e("Username", "gravityformsuserregistration"); ?> <span class="description">(<?php _e("required", "gravityformsuserregistration"); ?> )</span> <?php gform_tooltip("user_registration_username"); ?> </label> <?php echo self::get_field_drop_down("gf_user_registration_username", $form_fields, rgar($config['meta'], 'username'), "width-1 standard-meta"); ?> </div> <div class="margin_vertical_10"> <label class="left_header" for="gf_user_registration_firstname"><?php _e("First Name", "gravityformsuserregistration"); ?> <?php gform_tooltip("user_registration_firstname"); ?> </label> <?php echo self::get_field_drop_down("gf_user_registration_firstname", $form_fields, rgar($config['meta'], 'firstname'), "width-1 standard-meta"); ?> </div> <div class="margin_vertical_10"> <label class="left_header" for="gf_user_registration_lastname"><?php _e("Last Name", "gravityformsuserregistration"); ?> <?php gform_tooltip("user_registration_lastname"); ?> </label> <?php echo self::get_field_drop_down("gf_user_registration_lastname", $form_fields, rgar($config['meta'], 'lastname'), "width-1 standard-meta"); ?> </div> <div class="margin_vertical_10"> <label class="left_header" for="gf_user_registration_displayname"> <?php _e("Display Name", "gravityformsuserregistration"); ?> <?php gform_tooltip("user_registration_displayname"); ?> </label> <?php $display_names = array('username' => '{username}', 'firstname' => '{first name}', 'lastname' => '{last name}', 'firstlast' => '{first name} {last name}', 'lastfirst' => '{last name} {first name}'); ?> <select id="gf_user_registration_displayname" name="gf_user_registration_displayname" class="width-1 standard-meta"> <?php foreach ($display_names as $key => $value) { $selected = rgar($config['meta'], 'displayname') == $key ? 'selected="selected"' : ''; ?> <option value="<?php echo $key; ?> " <?php echo $selected; ?> ><?php echo $value; ?> </option> <?php } ?> </select> </div> <div class="margin_vertical_10 <?php echo $is_validation_error && empty($config['meta']['email']) ? 'user_registration_validation_error' : ''; ?> "> <label class="left_header" for="gf_user_registration_email"><?php _e("Email Address", "gravityformsuserregistration"); ?> <span class="description">(<?php _e("required", "gravityformsuserregistration"); ?> )</span> <?php gform_tooltip("user_registration_email"); ?> </label> <?php echo self::get_field_drop_down("gf_user_registration_email", $email_fields, rgar($config['meta'], 'email'), "width-1 email-field"); ?> </div> <div class="margin_vertical_10"> <label class="left_header" for="gf_user_registration_password"><?php _e("Password", "gravityformsuserregistration"); ?> <?php gform_tooltip("user_registration_password"); ?> </label> <?php echo self::get_field_drop_down("gf_user_registration_password", $password_fields, rgar($config['meta'], 'password'), "width-1 password-field", false); ?> </div> <?php $disabled = is_multisite() && rgars($config['meta'], 'multisite_options/create_site') ? 'disabled="disabled"' : ''; ?> <div class="margin_vertical_10 <?php echo $disabled ? 'disabled' : ''; ?> "> <label class="left_header" for="gf_user_registration_role"><?php _e("Role", "gravityformsuserregistration"); ?> <?php gform_tooltip("user_registration_role"); ?> </label> <select id="gf_user_registration_role" name="gf_user_registration_role" class="width-1" <?php echo $disabled; ?> > <?php if (is_multisite() && rgars($config['meta'], 'multisite_options/create_site')) { ?> <option value="" selected="selected" class="empty-option"></option> <?php } ?> <?php self::display_role_dropdown_options(rgars($config, 'meta/role')); ?> </select> </div> </div> <!-- / standard fields --> <div id="user_meta_fields"> <h3>User Meta</h3> <div id="custom_usermeta" class="custom_usermeta"></div> </div> <!-- / user meta fields --> <?php do_action("gform_user_registration_add_option_section", $config, $form, $is_validation_error); // buddypress, networkmode ?> <div id="additional_options"> <h3>Additional Options</h3> <div class="margin_vertical_10"> <label class="left_header"><?php _e("Send Email?", "gravityformsuserregistration"); ?> <?php gform_tooltip("user_registration_notification"); ?> </label> <input type="checkbox" id="gf_user_registration_notification" name="gf_user_registration_notification" value="1" <?php echo rgar($config['meta'], 'notification') == 1 || !isset($config["meta"]["notification"]) ? "checked='checked'" : ""; ?> /> <label for="gf_user_registration_notification" class="checkbox-label"><?php _e("Send this password to the new user by email.", "gravityformsuserregistration"); ?> </label> </div> <!-- / send email? --> <div id="gf_user_registration_set_post_author_container" class="margin_vertical_10" style="<?php echo $set_author_style; ?> "> <label class="left_header"><?php _e("Set As Post Author", "gravityformsuserregistration"); ?> <?php gform_tooltip("user_registration_set_post_author"); ?> </label> <input type="checkbox" id="gf_user_registration_set_post_author" name="gf_user_registration_set_post_author" value="1" <?php echo rgar($config['meta'], 'set_post_author') == 1 || !isset($config["meta"]["set_post_author"]) ? "checked='checked'" : ""; ?> /> <label for="gf_user_registration_set_post_author" class="checkbox-label"><?php _e("Enable", "gravityformsuserregistration"); ?> </label> </div> <!-- / set post author --> <div id="gf_user_registration_section" valign="top" class="margin_vertical_10"> <label for="gf_user_registration_optin" class="left_header"><?php _e("Registration Condition", "gravityformsuserregistration"); ?> <?php gform_tooltip("user_registration_condition"); ?> </label> <div id="gf_user_registration_option" class="column_right"> <input type="checkbox" id="gf_user_registration_enabled" name="gf_user_registration_enabled" value="1" onclick="if(this.checked){jQuery('#gf_user_registration_container').fadeIn('fast');} else{jQuery('#gf_user_registration_container').fadeOut('fast');}" <?php echo rgar($config['meta'], 'reg_condition_enabled') ? "checked='checked'" : ""; ?> /> <label for="gf_user_registration_enabled" class="checkbox-label"><?php _e("Enable", "gravityformsuserregistration"); ?> </label> <div id="gf_user_registration_container" style="padding-top:5px; <?php echo !$config["meta"]["reg_condition_enabled"] ? "display:none" : ""; ?> "> <div id="gf_user_registration_condition_fields" <?php echo empty($selection_fields) ? "style='display:none'" : ""; ?> > <?php _e("Register the user if ", "gravityformsuserregistration"); ?> <select id="gf_user_registration_field_id" name="gf_user_registration_field_id" class='optin_select' onchange='jQuery("#gf_user_registration_value").html(GetFieldValues(jQuery(this).val(), "", 20));'> <?php echo $selection_fields; ?> </select> <select id="gf_user_registration_operator" name="gf_user_registration_operator"> <option value="is" <?php echo rgar($config['meta'], 'reg_condition_operator') == 'is' ? 'selected="selected"' : ''; ?> ><?php _e("is", "gravityformsuserregistration"); ?> </option> <option value="isnot" <?php echo rgar($config['meta'], 'reg_condition_operator') == "isnot" ? 'selected="selected"' : ''; ?> ><?php _e("is not", "gravityformsuserregistration"); ?> </option> </select> <select id="gf_user_registration_value" name="gf_user_registration_value" class='optin_select'></select> </div> <div id="gf_user_registration_condition_message" <?php echo !empty($selection_fields) ? "style='display:none'" : ""; ?> > <?php _e("To create a registration condition, your form must have a drop down, checkbox or multiple choice field", "gravityformsuserregistration"); ?> </div> </div> </div> </div> <!-- / registration conditional --> <?php do_action("gform_user_registration_add_option_group", $config, $form, $is_validation_error); ?> <div id="user_registration_submit_container" class="margin_vertical_30"> <input type="submit" name="gf_user_registration_submit" value="<?php echo empty($id) ? __("Save", "gravityformsuserregistration") : __("Update", "gravityformsuserregistration"); ?> " class="button-primary"/> <input type="button" value="<?php _e("Cancel", "gravityformsuserregistration"); ?> " class="button" onclick="javascript:document.location='admin.php?page=gf_user_registration'" /> </div> <!-- / form actions --> </div> <!-- / additional options --> </div> <!-- / field group --> </form> </div> <!-- / wrap --> <script type="text/javascript"> <?php $user_meta = rgar($config['meta'], 'user_meta'); ?> var GFUser = { form: <?php echo !empty($form) ? GFCommon::json_encode($form) : 'new Array()'; ?> , form_fields: <?php echo !empty($form_fields) ? GFCommon::json_encode($form_fields) : "new Array()"; ?> , form_id: <?php echo rgar($config, 'form_id') ? rgar($config, 'form_id') : "''"; ?> , user_meta: <?php echo !empty($user_meta) ? GFCommon::json_encode($user_meta) : "[new MetaOption()]"; ?> , bp_gform_options: <?php echo !empty($form) ? GFCommon::json_encode(self::get_bp_gform_fields($form)) : "''"; ?> , meta_names: [ { 'name': 'Website', 'value': 'user_url' }, { 'name': 'AIM', 'value': 'aim' }, { 'name': 'Yahoo', 'value': 'yim' }, { 'name': 'Jabber / Google Talk', 'value': 'jabber' }, { 'name': 'Biographical Information', 'value': 'description' } ] } function SelectForm(formId, configId){ if(!formId){ jQuery("#user_registration_field_group").slideUp(); return; } jQuery("#user_registration_wait").show(); jQuery("#user_registration_field_group").slideUp(); var mysack = new sack("<?php bloginfo('wpurl'); ?> /wp-admin/admin-ajax.php" ); mysack.execute = 1; mysack.method = 'POST'; mysack.setVar( "action", "gf_select_user_registration_form" ); mysack.setVar( "gf_select_user_registration_form", "<?php echo wp_create_nonce("gf_select_user_registration_form"); ?> " ); mysack.setVar( "form_id", formId); mysack.setVar( "config_id", configId); mysack.encVar( "cookie", document.cookie, false ); mysack.onError = function() {jQuery("#user_registration_wait").hide(); alert('<?php echo esc_js(__("Ajax error while selecting a form", "gravityformsuserregistration")); ?> ' )}; mysack.runAJAX(); return true; } function EndSelectForm(form_meta, form_fields, field_options, password_options, email_options, options_meta, bp_gform_options){ if(email_options == '<option value=""></option>') { jQuery(".gf_user_registration_invalid_form").show(); jQuery("#user_registration_wait").hide(); return; } else { jQuery(".gf_user_registration_invalid_form").hide(); } // set global form object & reset user meta GFUser.form = form_meta; GFUser.form_fields = form_fields; GFUser.bp_gform_options = bp_gform_options; GFUser.user_meta = [new MetaOption()]; // update dropdowns with selected form's fields jQuery.each(jQuery("select.standard-meta"), function(){ jQuery(this).html(field_options); }); jQuery.each(jQuery("select.password-field"), function(){ jQuery(this).html(password_options + '<option class="system-option">Auto Generate Password</option>'); }); jQuery.each(jQuery("select.email-field"), function(){ jQuery(this).html(email_options); }); CreateCustomMetaOptions(); // handle set post author option if(options_meta['set_post_author']) { jQuery("#gf_user_registration_set_post_author_container").show(); } else { jQuery("#gf_user_registration_set_post_author_container").hide(); } // handle registration option jQuery("#gf_user_registration_enabled").attr('checked', false); SetRegistrationCondition("",""); // Form Selected Event jQuery(document).trigger('gform_user_registration_form_selected', [GFUser.form]); jQuery("#user_registration_field_group").slideDown(); jQuery("#user_registration_wait").hide(); } function CreateCustomMetaOptions(){ var form = GFUser.form; var user_meta = GFUser.user_meta; var meta_names = GFUser.meta_names; var images_url = '<?php echo GFCommon::get_base_url() . "/images"; ?> '; var str = ''; for(var i=0; i<user_meta.length; i++){ var show_select = (user_meta[i].custom == true) ? "display:none;" : ""; var show_input = (user_meta[i].custom == false) ? "display:none;" : ""; str += '<div class="margin_vertical_10">'; str += '<div class="metaname"><select type="text" name="gf_user_meta_name_' + i + '" id="gf_user_meta_name_' + i + '" class="meta-name-select width-1" style="' + show_select + '">'; str += getMetaNameOptions(meta_names, user_meta[i].meta_name) + '</select>' str += '<div class="custom_metaname" style="' + show_input + '">' + getMetaNameInput(i, user_meta[i]) + '</div></div>'; str += '<div class="metavalue"><select type="text" name="gf_user_meta_value_' + i + '" id="gf_user_meta_value_' + i + '" class="meta-value-select width-1">'; str += getMetaValueOptions(form, user_meta[i].meta_value) + '</select></div>'; str += "<img src='" + images_url + "/add.png' class='add_field_choice' title='<?php _e("add another rule", "gravityformsuserregistration"); ?> ' alt='<?php _e("add another rule", "gravityformsuserregistration"); ?> ' style='cursor:pointer;' onclick=\"InsertRule(" + (i+1) + ", 'user_meta');\" />"; if(user_meta.length > 1 ) str += "<img src='" + images_url + "/remove.png' title='<?php _e("remove this rule", "gravityformsuserregistration"); ?> ' alt='<?php _e("remove this rule", "gravityformsuserregistration"); ?> ' class='delete_field_choice' style='cursor:pointer;' onclick=\"DeleteRule(" + (i) + ", 'user_meta');\" /></li>"; str += '</div>'; } jQuery("#custom_usermeta").html(str); } function getMetaNameOptions(meta_names, selected, custom_option) { var str = '<option value="" class="label">Select Meta Option</option>'; for(i = 0; i < meta_names.length; i++) { if(meta_names[i].value == selected) { str += '<option value="' + meta_names[i].value + '" selected="selected">' + meta_names[i].name + '</option>'; } else { str += '<option value="' + meta_names[i].value + '">' + meta_names[i].name + '</option>'; } } if(custom_option != false) { str += '<option value="gf_custom" class="custom">Add Custom</option>'; } return str; } function getMetaValueOptions(form, meta_value) { var form_fields = GFUser.form_fields; var str = '<option value=""></option>'; for(i = 0; i < form_fields.length; i++) { if(form_fields[i][0] == meta_value) { str += '<option value="' + form_fields[i][0] + '" selected="selected">' + form_fields[i][1] + '</option>'; } else { str += '<option value="' + form_fields[i][0] + '">' + form_fields[i][1] + '</option>'; } } return str; } function getMetaNameInput(index, user_meta) { var meta_name = (user_meta.meta_name != "") ? user_meta.meta_name : "<?php _e("Enter Meta Name", "gravityformsuserregistration"); ?> "; str = '<input type="text" name="gf_user_custom_meta_name_' + index + '" id="gf_user_custom_meta_name_' + index + '" class="width-1" value="' + meta_name + '" />'; str += '<span class="reset">Reset</span>'; return str; } function InsertRule(ruleIndex, meta_group){ if(meta_group == 'user_meta') { GFUser[meta_group].splice(ruleIndex, 0, new MetaOption()); CreateCustomMetaOptions(); } else { // Insert Rule Action (used by BuddyPress) jQuery(document).trigger('gform_user_registration_insert_rule', [ruleIndex, meta_group]); } } function DeleteRule(ruleIndex, meta_group){ if(meta_group == 'user_meta') { GFUser[meta_group].splice(ruleIndex, 1); CreateCustomMetaOptions(); } else { // Delete Rule Action (used by BuddyPress) jQuery(document).trigger('gform_user_registration_delete_rule', [ruleIndex, meta_group]); } } function MetaOption() { this.meta_name = ""; this.meta_value = ""; this.custom = false; } function IndexOf(ary, item){ for(var i=0; i<ary.length; i++) if(ary[i] == item) return i; return -1; } function saveUserMeta() { var user_meta = GFUser.user_meta; for(var i=0; i<user_meta.length; i++){ user_meta[i].custom = (jQuery("#gf_user_meta_name_" + i).css('display') == 'none') ? true : false; user_meta[i].meta_name = (user_meta[i].custom == true) ? jQuery("#gf_user_custom_meta_name_" + i).val() : jQuery("#gf_user_meta_name_" + i).val(); user_meta[i].meta_value = jQuery("#gf_user_meta_value_" + i).val(); } GFUser.user_meta = user_meta; // save meta to hidden field for php var json = jQuery.toJSON(user_meta); jQuery("#gf_user_meta").val(json); } // initialize jQuery(document).ready(function(){ <?php if (!empty($form)) { ?> CreateCustomMetaOptions(); <?php } ?> // after GFUser is init, trigger actions jQuery(document).trigger('gform_gfuser_object_init'); // disable 'Select a form' option jQuery(this).find('option:first').attr('disabled', 'disabled'); // custom meta input jQuery("select.meta-name-select").live('change', function(){ if(jQuery(this).val() == 'gf_custom') { jQuery(this).fadeOut(function(){ jQuery(this).val(""); jQuery(this).next('div.custom_metaname').fadeIn(); jQuery(this).next('div.custom_metaname').find('input').cleardefault().focus(); }); } }); // custom meta input reset button jQuery("span.reset").live('click', function(){ jQuery(this).parent('div.custom_metaname').fadeOut(function(){ jQuery(this).siblings('select').fadeIn(); }) }); // add hover class for custom meta input reset jQuery("div.custom_metaname").live('mouseover mouseout', function(event) { if (event.type == 'mouseover') { jQuery(this).addClass('hover'); } else { jQuery(this).removeClass('hover'); } }); // save entered information jQuery(".metaname input, .metaname select, .metavalue select").live('change', function(){ saveUserMeta(); }); jQuery("#gf_user_form").submit(function(){ saveUserMeta(); }) // clear default values jQuery.fn.cleardefault = function() { return this.focus(function() { if( this.value == this.defaultValue ) { this.value = ""; } }).blur(function() { if( !this.value.length ) { this.value = this.defaultValue; } }); } }); </script> <script type="text/javascript"> // Registration Conditional Functions <?php if (!empty($config["form_id"])) { ?> // initializing registration condition drop downs jQuery(document).ready(function(){ //form = [] <?php //echo GFCommon::json_encode($form_meta) ?> ; var selectedField = "<?php echo str_replace('"', '\\"', $config["meta"]["reg_condition_field_id"]); ?> "; var selectedValue = "<?php echo str_replace('"', '\\"', $config["meta"]["reg_condition_value"]); ?> "; SetRegistrationCondition(selectedField, selectedValue); }); <?php } ?> function SetRegistrationCondition(selectedField, selectedValue){ // load form fields jQuery("#gf_user_registration_field_id").html(GetSelectableFields(selectedField, 20)); var optinConditionField = jQuery("#gf_user_registration_field_id").val(); var checked = jQuery("#gf_user_registration_enabled").attr('checked'); if(optinConditionField){ jQuery("#gf_user_registration_condition_message").hide(); jQuery("#gf_user_registration_condition_fields").show(); jQuery("#gf_user_registration_value").html(GetFieldValues(optinConditionField, selectedValue, 20)); } else{ jQuery("#gf_user_registration_condition_message").show(); jQuery("#gf_user_registration_condition_fields").hide(); } if(!checked) jQuery("#gf_user_registration_container").hide(); } function GetFieldValues(fieldId, selectedValue, labelMaxCharacters){ if(!fieldId) return ""; var str = ""; var field = GetFieldById(fieldId); if(!field || !field.choices) return ""; var isAnySelected = false; for(var i=0; i<field.choices.length; i++){ var fieldValue = field.choices[i].value ? field.choices[i].value : field.choices[i].text; var isSelected = fieldValue == selectedValue; var selected = isSelected ? "selected='selected'" : ""; if(isSelected) isAnySelected = true; str += "<option value='" + fieldValue.replace("'", "'") + "' " + selected + ">" + TruncateMiddle(field.choices[i].text, labelMaxCharacters) + "</option>"; } if(!isAnySelected && selectedValue){ str += "<option value='" + selectedValue.replace("'", "'") + "' selected='selected'>" + TruncateMiddle(selectedValue, labelMaxCharacters) + "</option>"; } return str; } function GetFieldById(fieldId){ var form = GFUser.form; for(var i=0; i<form.fields.length; i++){ if(form.fields[i].id == fieldId) return form.fields[i]; } return null; } function TruncateMiddle(text, maxCharacters){ if(text.length <= maxCharacters) return text; var middle = parseInt(maxCharacters / 2); return text.substr(0, middle) + "..." + text.substr(text.length - middle, middle); } function GetSelectableFields(selectedFieldId, labelMaxCharacters){ var form = GFUser.form; var str = ""; var inputType; for(var i=0; i<form.fields.length; i++){ fieldLabel = form.fields[i].adminLabel ? form.fields[i].adminLabel : form.fields[i].label; inputType = form.fields[i].inputType ? form.fields[i].inputType : form.fields[i].type; if(inputType == "checkbox" || inputType == "radio" || inputType == "select"){ var selected = form.fields[i].id == selectedFieldId ? "selected='selected'" : ""; str += "<option value='" + form.fields[i].id + "' " + selected + ">" + TruncateMiddle(fieldLabel, labelMaxCharacters) + "</option>"; } } return str; } </script> <?php }