private static function fix_leading_and_trailing_spaces() { global $wpdb; $meta_table_name = GFFormsModel::get_meta_table_name(); $lead_details_table = GFFormsModel::get_lead_details_table_name(); $lead_details_long_table = GFFormsModel::get_lead_details_long_table_name(); $result = $wpdb->query("UPDATE {$lead_details_table} SET value = TRIM(value)"); $result = $wpdb->query("UPDATE {$lead_details_long_table} SET value = TRIM(value)"); $results = $wpdb->get_results("SELECT form_id, display_meta, confirmations, notifications FROM {$meta_table_name}", ARRAY_A); foreach ($results as &$result) { $form_id = $result['form_id']; $form = GFFormsModel::unserialize($result['display_meta']); $form_updated = false; $form = GFFormsModel::trim_form_meta_values($form, $form_updated); if ($form_updated) { GFFormsModel::update_form_meta($form_id, $form); } $confirmations = GFFormsModel::unserialize($result['confirmations']); $confirmations_updated = false; $confirmations = GFFormsModel::trim_conditional_logic_values($confirmations, $form, $confirmations_updated); if ($confirmations_updated) { GFFormsModel::update_form_meta($form_id, $confirmations, 'confirmations'); } $notifications = GFFormsModel::unserialize($result['notifications']); $notifications_updated = false; $notifications = GFFormsModel::trim_conditional_logic_values($notifications, $form, $notifications_updated); if ($notifications_updated) { GFFormsModel::update_form_meta($form_id, $notifications, 'notifications'); } } return $results; }
/** * Trims values inside choice texts, choice values, input labels, field labels and field conditionalLogic * * @param array $form Form object. * @param bool $form_updated Output parameter. * * @return array $form */ public static function trim_form_meta_values($form, &$form_updated = false) { $form_id = $form['id']; GFCommon::log_debug('GFFormsModel::trim_form_meta_values(): Starting.'); if (isset($form['fields']) && is_array($form['fields'])) { foreach ($form['fields'] as &$field) { $trim_value = apply_filters('gform_trim_input_value', true, $form_id, $field); if (!$trim_value) { continue; } if (isset($field->label) && $field->label != trim($field->label)) { $field->label = trim($field->label); $form_updated = true; } if (is_array($field->choices)) { foreach ($field->choices as &$choice) { if (isset($choice['text']) && $choice['text'] != trim($choice['text'])) { $choice['text'] = trim($choice['text']); $form_updated = true; } if (isset($choice['value']) && $choice['value'] != trim($choice['value'])) { $choice['value'] = trim($choice['value']); $form_updated = true; } } } if (is_array($field->inputs)) { foreach ($field->inputs as &$input) { if (isset($input['label']) && $input['label'] != trim($input['label'])) { $input['label'] = trim($input['label']); $form_updated = true; } } } } $form['fields'] = GFFormsModel::trim_conditional_logic_values($form['fields'], $form, $form_updated); } if ($form_updated) { GFCommon::log_debug('GFFormsModel::trim_form_meta_values(): Form values trimmed.'); } return $form; }
public static function import_xml($xmlstr, &$forms = null) { require_once 'xml.php'; $options = array('page' => array('unserialize_as_array' => true), 'form' => array('unserialize_as_array' => true), 'field' => array('unserialize_as_array' => true), 'rule' => array('unserialize_as_array' => true), 'choice' => array('unserialize_as_array' => true), 'input' => array('unserialize_as_array' => true), 'routing_item' => array('unserialize_as_array' => true), 'creditCard' => array('unserialize_as_array' => true), 'routin' => array('unserialize_as_array' => true), 'confirmation' => array('unserialize_as_array' => true), 'notification' => array('unserialize_as_array' => true)); $options = apply_filters('gform_import_form_xml_options', $options); $xml = new RGXML($options); $forms = $xml->unserialize($xmlstr); if (!$forms) { return 0; } else { if (version_compare($forms['version'], self::$min_import_version, '<')) { return -1; } } //Error. XML version is not compatible with current Gravity Forms version //cleaning up generated object self::cleanup($forms); foreach ($forms as $key => &$form) { $title = $form['title']; $count = 2; while (!RGFormsModel::is_unique_title($title)) { $title = $form['title'] . "({$count})"; $count++; } //inserting form $form_id = RGFormsModel::insert_form($title); //updating form meta $form['title'] = $title; $form['id'] = $form_id; $form = GFFormsModel::trim_form_meta_values($form); if (isset($form['confirmations'])) { $form['confirmations'] = self::set_property_as_key($form['confirmations'], 'id'); $form['confirmations'] = GFFormsModel::trim_conditional_logic_values($form['confirmations'], $form); GFFormsModel::update_form_meta($form_id, $form['confirmations'], 'confirmations'); unset($form['confirmations']); } if (isset($form['notifications'])) { $form['notifications'] = self::set_property_as_key($form['notifications'], 'id'); $form['notifications'] = GFFormsModel::trim_conditional_logic_values($form['notifications'], $form); GFFormsModel::update_form_meta($form_id, $form['notifications'], 'notifications'); unset($form['notifications']); } RGFormsModel::update_form_meta($form_id, $form); } return sizeof($forms); }
/** * Trims values inside choice texts, choice values, input labels, field labels and field conditionalLogic * * @param array $form Form object. * @param bool $form_updated Output parameter. * @return array $form */ public static function trim_form_meta_values($form, &$form_updated = false) { $form_id = $form["id"]; GFCommon::log_debug("Starting GFFormsModel::trim_form_meta_values()"); if (isset($form["fields"]) && is_array($form["fields"])) { foreach ($form["fields"] as &$field) { $trim_value = apply_filters("gform_trim_input_value", true, $form_id, $field); if (!$trim_value) { continue; } if (isset($field["label"]) && $field["label"] != trim($field["label"])) { $field["label"] = trim($field["label"]); $form_updated = true; } if (isset($field["choices"]) && is_array($field["choices"])) { foreach ($field["choices"] as &$choice) { if (isset($choice["text"]) && $choice["text"] != trim($choice["text"])) { $choice["text"] = trim($choice["text"]); $form_updated = true; } if (isset($choice["value"]) && $choice["value"] != trim($choice["value"])) { $choice["value"] = trim($choice["value"]); $form_updated = true; } } } if (isset($field["inputs"]) && is_array($field["inputs"])) { foreach ($field["inputs"] as &$input) { if (isset($input["label"]) && $input["label"] != trim($input["label"])) { $input["label"] = trim($input["label"]); $form_updated = true; } } } } $form["fields"] = GFFormsModel::trim_conditional_logic_values($form["fields"], $form, $form_updated); } if ($form_updated) { GFCommon::log_debug("Trimmed form values"); } return $form; }
public static function import_file($filepath, &$forms = null) { $xmlstr = file_get_contents($filepath); require_once "xml.php"; $options = array("page" => array("unserialize_as_array" => true), "form" => array("unserialize_as_array" => true), "field" => array("unserialize_as_array" => true), "rule" => array("unserialize_as_array" => true), "choice" => array("unserialize_as_array" => true), "input" => array("unserialize_as_array" => true), "routing_item" => array("unserialize_as_array" => true), "creditCard" => array("unserialize_as_array" => true), "routin" => array("unserialize_as_array" => true), "confirmation" => array("unserialize_as_array" => true), "notification" => array("unserialize_as_array" => true)); $options = apply_filters('gform_import_form_xml_options', $options); $xml = new RGXML($options); $forms = $xml->unserialize($xmlstr); if (!$forms) { return 0; } else { if (version_compare($forms["version"], self::$min_import_version, "<")) { return -1; } } //Error. XML version is not compatible with current Gravity Forms version //cleaning up generated object self::cleanup($forms); foreach ($forms as $key => &$form) { $title = $form["title"]; $count = 2; while (!RGFormsModel::is_unique_title($title)) { $title = $form["title"] . "({$count})"; $count++; } //inserting form $form_id = RGFormsModel::insert_form($title); //updating form meta $form["title"] = $title; $form["id"] = $form_id; $form = GFFormsModel::trim_form_meta_values($form); if (isset($form['confirmations'])) { $form['confirmations'] = self::set_property_as_key($form['confirmations'], 'id'); $form['confirmations'] = GFFormsModel::trim_conditional_logic_values($form['confirmations'], $form); GFFormsModel::update_form_meta($form_id, $form['confirmations'], 'confirmations'); unset($form['confirmations']); } if (isset($form['notifications'])) { $form['notifications'] = self::set_property_as_key($form['notifications'], 'id'); $form['notifications'] = GFFormsModel::trim_conditional_logic_values($form['notifications'], $form); GFFormsModel::update_form_meta($form_id, $form['notifications'], 'notifications'); unset($form['notifications']); } RGFormsModel::update_form_meta($form_id, $form); } return sizeof($forms); }
public static function generateForm() { if (class_exists('GFAPI')) { $thankyouPage = get_page_by_path('events/thank-you', OBJECT, 'page'); $form = array('labelPlacement' => 'top_label', 'useCurrentUserAsAuthor' => '1', 'title' => self::$formTitle, 'descriptionPlacement' => 'below', 'button' => array('type' => 'text', 'text' => 'Submit'), 'fields' => array(array('id' => '1', 'isRequired' => '1', 'size' => 'medium', 'type' => 'name', 'nameFormat' => 'simple', 'label' => 'First Name'), array('id' => '2', 'isRequired' => '1', 'size' => 'medium', 'type' => 'name', 'nameFormat' => 'simple', 'label' => 'Last Name'), array('id' => '3', 'isRequired' => '1', 'size' => 'medium', 'type' => 'email', 'label' => 'Email'), array('id' => '4', 'isRequired' => '1', 'size' => 'medium', 'type' => 'phone', 'phoneFormat' => 'standard', 'label' => 'Phone'), array('id' => '5', 'isRequired' => '1', 'size' => 'medium', 'type' => 'select', 'label' => 'Number Attending', 'choices' => array(array('text' => '1', 'value' => '1'), array('text' => '2', 'value' => '2'), array('text' => '3', 'value' => '3'), array('text' => '4', 'value' => '4'), array('text' => '5', 'value' => '5'), array('text' => '6', 'value' => '6'), array('text' => '7', 'value' => '7'), array('text' => '8', 'value' => '8'))), array('id' => '6', 'size' => 'medium', 'type' => 'hidden', 'defaultValue' => '{embed_post:post_title}', 'label' => 'Event Name'), array('id' => '7', 'size' => 'medium', 'type' => 'hidden', 'defaultValue' => '{embed_post:ID}', 'label' => 'Event Post ID'), array('id' => '8', 'size' => 'medium', 'type' => 'hidden', 'defaultValue' => '{custom_field:_EventStartDate}', 'label' => 'Event Start Date'), array('id' => '9', 'size' => 'medium', 'type' => 'hidden', 'defaultValue' => '{custom_field:_EventEndDate}', 'label' => 'Event End Date'), array('id' => '10', 'size' => 'medium', 'type' => 'hidden', 'defaultValue' => '{custom_field:_EventRecurrence}', 'label' => 'Event Recurrence'), array('id' => '11', 'size' => 'medium', 'type' => 'hidden', 'defaultValue' => '{custom_field:_EventAllDay}', 'label' => 'All Day Event'), array('id' => '90', 'size' => 'medium', 'type' => 'hidden', 'defaultValue' => '', 'label' => 'Event Formatted Date'), array('id' => '91', 'size' => 'medium', 'type' => 'hidden', 'defaultValue' => '', 'label' => 'Event Formatted Time')), 'cssClass' => 'contact-form-gfec-form', 'enableHoneypot' => '1', 'confirmations' => array(array('id' => '5316355c6c8c1', 'isDefault' => '1', 'type' => 'page', 'name' => 'Default Confirmation', 'pageId' => $thankyouPage->ID, 'queryString' => 'eventID={post_id:7}')), 'notifications' => array(array('id' => '53163750d13d3', 'to' => '3', 'name' => 'RSVP', 'event' => 'form_submission', 'toType' => 'field', 'subject' => 'Thank You for Registering for (Event Name:5} - {Event Date:6}', 'message' => '{all_fields}', 'from' => '{admin_email}', 'fromName' => get_bloginfo('name')))); if (RGFormsModel::is_unique_title($form['title'])) { $form_id = RGFormsModel::insert_form($form['title']); $form["id"] = $form_id; GFFormsModel::trim_form_meta_values($form); if (isset($form['confirmations'])) { $form['confirmations'] = GFExport::set_property_as_key($form['confirmations'], 'id'); $form['confirmations'] = GFFormsModel::trim_conditional_logic_values($form['confirmations'], $form); GFFormsModel::update_form_meta($form_id, $form['confirmations'], 'confirmations'); unset($form['confirmations']); } if (isset($form['notifications'])) { $form['notifications'] = GFExport::set_property_as_key($form['notifications'], 'id'); $form['notifications'] = GFFormsModel::trim_conditional_logic_values($form['notifications'], $form); GFFormsModel::update_form_meta($form_id, $form['notifications'], 'notifications'); unset($form['notifications']); } RGFormsModel::update_form_meta($form_id, $form); } } }