public static function process_entry($errors = '', $ajax = false)
 {
     if (is_admin() and !defined('DOING_AJAX') or !isset($_POST) or !isset($_POST['form_id']) or !is_numeric($_POST['form_id']) or !isset($_POST['item_key'])) {
         return;
     }
     global $frm_entry, $frm_vars;
     $frm_form = new FrmForm();
     $form = $frm_form->getOne($_POST['form_id']);
     if (!$form) {
         return;
     }
     $params = FrmEntriesController::get_params($form);
     if (!isset($frm_vars['form_params'])) {
         $frm_vars['form_params'] = array();
     }
     $frm_vars['form_params'][$form->id] = $params;
     if (isset($frm_vars['created_entries'][$_POST['form_id']])) {
         return;
     }
     if ($errors == '') {
         $errors = $frm_entry->validate($_POST);
     }
     $frm_vars['created_entries'][$_POST['form_id']] = array('errors' => $errors);
     if (empty($errors)) {
         $_POST['frm_skip_cookie'] = 1;
         if ($params['action'] == 'create') {
             if (apply_filters('frm_continue_to_create', true, $_POST['form_id']) and !isset($frm_vars['created_entries'][$_POST['form_id']]['entry_id'])) {
                 $frm_vars['created_entries'][$_POST['form_id']]['entry_id'] = $frm_entry->create($_POST);
             }
         }
         do_action('frm_process_entry', $params, $errors, $form, array('ajax' => $ajax));
         unset($_POST['frm_skip_cookie']);
     }
 }
Esempio n. 2
0
<?php

global $frm_form, $frm_field, $frm_entry, $frm_entry_meta, $user_ID, $frm_settings, $frm_created_entry, $frm_form_params;
$form_name = $form->name;
$form->options = stripslashes_deep(maybe_unserialize($form->options));
$submit = isset($form->options['submit_value']) ? $form->options['submit_value'] : $frm_settings->submit_value;
$saved_message = isset($form->options['success_msg']) ? $form->options['success_msg'] : $frm_settings->success_msg;
$params = FrmEntriesController::get_params($form);
$message = $errors = '';
FrmEntriesHelper::enqueue_scripts($params);
if ($params['action'] == 'create' and $params['posted_form_id'] == $form->id and isset($_POST)) {
    $errors = $frm_created_entry[$form->id]['errors'];
    if (!empty($errors)) {
        $fields = FrmFieldsHelper::get_form_fields($form->id, true);
        $values = FrmEntriesHelper::setup_new_vars($fields, $form);
        require FRM_VIEWS_PATH . '/frm-entries/new.php';
        ?>
<script type="text/javascript">window.onload = function(){var frm_pos=jQuery('#form_<?php 
        echo $form->form_key;
        ?>
').offset(); var cOff = document.documentElement.scrollTop || document.body.scrollTop; if(cOff > frm_pos.top) window.scrollTo(frm_pos.left,frm_pos.top);}</script><?php 
    } else {
        $fields = FrmFieldsHelper::get_form_fields($form->id);
        do_action('frm_validate_form_creation', $params, $fields, $form, $title, $description);
        if (apply_filters('frm_continue_to_create', true, $form->id)) {
            $values = FrmEntriesHelper::setup_new_vars($fields, $form, true);
            $created = $frm_created_entry[$form->id]['entry_id'];
            $saved_message = apply_filters('frm_content', $saved_message, $form, $created);
            $conf_method = apply_filters('frm_success_filter', 'message', $form, $form->options);
            if (!$created or !is_numeric($created) or $conf_method == 'message') {
                $message = '<div class="frm_message" id="message">' . (($created and is_numeric($created)) ? wpautop(do_shortcode($saved_message)) : $frm_settings->failed_msg) . '</div>';
Esempio n. 3
0
 public static function get_form($form, $title, $description, $atts = array())
 {
     global $frm_field, $frm_entry, $frm_entry_meta, $frm_settings, $frm_vars;
     $form_name = $form->name;
     $frm_form = new FrmForm();
     $submit = isset($form->options['submit_value']) ? $form->options['submit_value'] : $frm_settings->submit_value;
     $saved_message = isset($form->options['success_msg']) ? $form->options['success_msg'] : $frm_settings->success_msg;
     $user_ID = get_current_user_id();
     $params = FrmEntriesController::get_params($form);
     $message = $errors = '';
     FrmEntriesHelper::enqueue_scripts($params);
     if ($params['posted_form_id'] == $form->id && $_POST) {
         $errors = isset($frm_vars['created_entries'][$form->id]) ? $frm_vars['created_entries'][$form->id]['errors'] : array();
     }
     $fields = FrmFieldsHelper::get_form_fields($form->id, isset($errors) && !empty($errors));
     $filename = FrmAppHelper::plugin_path() . '/classes/views/frm-entries/frm-entry.php';
     if (is_file($filename)) {
         ob_start();
         include $filename;
         $contents = ob_get_contents();
         ob_end_clean();
         // check if minimizing is turned on
         if (isset($atts['minimize']) && !empty($atts['minimize'])) {
             $contents = str_replace(array("\r\n", "\r", "\n", "\t", "    "), '', $contents);
         }
         return $contents;
     }
     return false;
 }
Esempio n. 4
0
 function pre_validate($errors, $values)
 {
     global $frm_entry_meta, $frm_entry, $frmdb, $frmpro_settings, $frm_vars;
     $user_ID = get_current_user_id();
     $params = isset($frm_vars['form_params']) && is_array($frm_vars['form_params']) && isset($frm_vars['form_params'][$values['form_id']]) ? $frm_vars['form_params'][$values['form_id']] : FrmEntriesController::get_params($values['form_id']);
     if ($params['action'] != 'create') {
         if (FrmProFormsHelper::going_to_prev($values['form_id'])) {
             add_filter('frm_continue_to_create', '__return_false');
             $errors = array();
         } else {
             if (FrmProFormsHelper::saving_draft($values['form_id'])) {
                 //$errors = array();
             }
         }
         return $errors;
     }
     $frm_form = new FrmForm();
     $form = $frm_form->getOne($values['form_id']);
     $form_options = maybe_unserialize($form->options);
     $can_submit = true;
     if (isset($form_options['single_entry']) and $form_options['single_entry']) {
         $admin_entry = is_admin() && !defined('DOING_AJAX');
         if ($form_options['single_entry_type'] == 'cookie' and isset($_COOKIE['frm_form' . $form->id . '_' . COOKIEHASH])) {
             $can_submit = $admin_entry ? true : false;
         } else {
             if ($form_options['single_entry_type'] == 'ip') {
                 if (!$admin_entry) {
                     $prev_entry = $frm_entry->getAll(array('it.ip' => $_SERVER['REMOTE_ADDR']), '', 1);
                     if ($prev_entry) {
                         $can_submit = false;
                     }
                 }
             } else {
                 if (($form_options['single_entry_type'] == 'user' or isset($form->options['save_draft']) and $form->options['save_draft'] == 1) and !$form->editable) {
                     if ($user_ID) {
                         $args = array('user_id' => $user_ID, 'form_id' => $form->id);
                         if ($form_options['single_entry_type'] != 'user') {
                             $args['is_draft'] = 1;
                         }
                         $meta = $frmdb->get_var($frmdb->entries, $args);
                         unset($args);
                     }
                     if (isset($meta) and $meta) {
                         $can_submit = false;
                     }
                 }
             }
         }
         unset($admin_entry);
         if (!$can_submit) {
             $k = is_numeric($form_options['single_entry_type']) ? 'field' . $form_options['single_entry_type'] : 'single_entry';
             $errors[$k] = $frmpro_settings->already_submitted;
             add_filter('frm_continue_to_create', '__return_false');
             return $errors;
         }
     }
     unset($can_submit);
     if (($_POST and isset($_POST['frm_page_order_' . $form->id]) or FrmProFormsHelper::going_to_prev($form->id)) and !FrmProFormsHelper::saving_draft($form->id)) {
         add_filter('frm_continue_to_create', '__return_false');
     } else {
         if ($form->editable and isset($form_options['single_entry']) and $form_options['single_entry'] and $form_options['single_entry_type'] == 'user' and $user_ID and (!is_admin() or defined('DOING_AJAX'))) {
             $meta = $frmdb->get_var($frmdb->entries, array('user_id' => $user_ID, 'form_id' => $form->id));
             if ($meta) {
                 $errors['single_entry'] = $frmpro_settings->already_submitted;
                 add_filter('frm_continue_to_create', '__return_false');
             }
         }
     }
     if (FrmProFormsHelper::going_to_prev($values['form_id'])) {
         $errors = array();
     }
     return $errors;
 }
Esempio n. 5
0
 function process_entry()
 {
     if (is_admin() or !isset($_POST) or !isset($_POST['form_id']) or !is_numeric($_POST['form_id']) or !isset($_POST['item_key'])) {
         return;
     }
     global $frm_entry, $frm_form, $frm_created_entry, $frm_form_params;
     $form = $frm_form->getOne($_POST['form_id']);
     if (!$form) {
         return;
     }
     if (!$frm_form_params) {
         $frm_form_params = array();
     }
     $params = FrmEntriesController::get_params($form);
     $frm_form_params[$form->id] = $params;
     if (!$frm_created_entry) {
         $frm_created_entry = array();
     }
     if (isset($frm_created_entry[$_POST['form_id']])) {
         return;
     }
     $errors = $frm_entry->validate($_POST);
     $frm_created_entry[$_POST['form_id']] = array('errors' => $errors);
     if (empty($errors)) {
         $_POST['frm_skip_cookie'] = 1;
         if ($params['action'] == 'create') {
             if (apply_filters('frm_continue_to_create', true, $_POST['form_id'])) {
                 $frm_created_entry[$_POST['form_id']]['entry_id'] = $frm_entry->create($_POST);
             }
         }
         do_action('frm_process_entry', $params, $errors, $form);
         unset($_POST['frm_skip_cookie']);
     }
 }