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']); } }
function show_form($id = '', $key = '', $title = false, $description = false) { global $frm_form, $user_ID, $frm_settings, $post; if ($id) { $form = $frm_form->getOne((int) $id); } else { if ($key) { $form = $frm_form->getOne($key); } } $form = apply_filters('frm_pre_display_form', $form); if (!$form or ($form->is_template or $form->status == 'draft') and !isset($_GET) and !isset($_GET['form']) and (!isset($_GET['preview']) or $post and $post->ID != $frm_settings->preview_page_id)) { return __('Please select a valid form', 'formidable'); } else { if ($form->logged_in and !$user_ID) { global $frm_settings; return $frm_settings->login_msg; } } $form->options = stripslashes_deep(maybe_unserialize($form->options)); if ($form->logged_in and $user_ID and isset($form->options['logged_in_role']) and $form->options['logged_in_role'] != '') { if (FrmAppHelper::user_has_permission($form->options['logged_in_role'])) { return FrmEntriesController::get_form(FRM_VIEWS_PATH . '/frm-entries/frm-entry.php', $form, $title, $description); } else { global $frm_settings; return $frm_settings->login_msg; } } else { return FrmEntriesController::get_form(FRM_VIEWS_PATH . '/frm-entries/frm-entry.php', $form, $title, $description); } }
function widget($args, $instance) { global $frm_form; extract($args); $form_name = $frm_form->getName($instance['form']); $title = apply_filters('widget_title', empty($instance['title']) ? $form_name : $instance['title']); $instance['description'] = isset($instance['description']) ? $instance['description'] : false; echo $before_widget; $select_class = (isset($instance['select_width']) and $instance['select_width']) ? ' frm_set_select' : ''; echo '<div class="frm_form_widget' . $select_class . '">'; if ($title) { echo $before_title . stripslashes($title) . $after_title; } if (isset($instance['size']) and is_numeric($instance['size'])) { global $frm_sidebar_width; $frm_sidebar_width = $instance['size']; } echo FrmEntriesController::show_form($instance['form'], '', false, $instance['description']); $frm_sidebar_width = ''; echo '</div>'; echo $after_widget; }
?> );" title="<?php esc_attr_e('Delete entry but leave the post', 'formidable'); ?> "> <?php _e('Delete without Post', 'formidable'); ?> </a> <?php } ?> </div> <?php } ?> <?php do_action('frm_entry_major_pub', $entry); ?> <div class="clear"></div> </div> </div> </div> </div> <?php do_action('frm_show_entry_sidebar', $entry); FrmEntriesController::entry_sidebar($entry); ?> </div>
<?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>';
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; }
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; }
?> ');" title="<?php esc_attr_e('Delete entry but leave the post', 'formidable'); ?> "><?php _e('Delete without Post', 'formidable'); ?> </a> <?php } ?> </div> <?php } ?> <div id="publishing-action"> <?php submit_button($submit, 'primary', 'submit', false); ?> </div> <div class="clear"></div> </div> </div> </div> </div> <?php do_action('frm_edit_entry_sidebar', $record); FrmEntriesController::entry_sidebar($record); ?> </div>
public static function ajax_create() { if (!FrmAppHelper::doing_ajax() || !isset($_POST['form_id'])) { // normally, this function would be triggered with the wp_ajax hook, but we need it fired sooner return; } $allowed_actions = array('frm_entries_create', 'frm_entries_update'); if (!in_array(FrmAppHelper::get_post_param('action', '', 'sanitize_title'), $allowed_actions)) { // allow ajax creating and updating return; } $form = FrmForm::getOne((int) $_POST['form_id']); if (!$form) { echo false; wp_die(); } $no_ajax_fields = array('file'); $errors = FrmEntryValidate::validate($_POST, $no_ajax_fields); if (empty($errors)) { if (FrmProForm::is_ajax_on($form)) { global $frm_vars; $frm_vars['ajax'] = true; $frm_vars['css_loaded'] = true; // don't load scripts if we are going backwards in the form $going_backwards = FrmProFormsHelper::going_to_prev($form->id); // save the entry if there is not another page or when saving a draft if (!isset($_POST['frm_page_order_' . $form->id]) && !$going_backwards || FrmProFormsHelper::saving_draft()) { $processed = true; FrmEntriesController::process_entry($errors, true); } echo FrmFormsController::show_form($form->id); // trigger the footer scripts if there is a form to show if ($errors || !isset($processed) || !empty($frm_vars['forms_loaded'])) { self::print_ajax_scripts($going_backwards ? 'none' : ''); } } else { echo false; } } else { $obj = array(); foreach ($errors as $field => $error) { $field_id = str_replace('field', '', $field); $obj[$field_id] = $error; } echo json_encode($obj); } wp_die(); }
public static function ajax_create() { global $frm_entry; $frm_form = new FrmForm(); $form = $frm_form->getOne($_POST['form_id']); if (!$form) { echo false; die; } $no_ajax_fields = array('file'); $errors = $frm_entry->validate($_POST, $no_ajax_fields); if (empty($errors)) { global $wpdb; $where = $wpdb->prepare("form_id=%d", $form->id); if (isset($_POST['frm_page_order_' . $form->id])) { $where .= $wpdb->prepare(" AND field_order < %d", $_POST['frm_page_order_' . $form->id]); } $ajax = isset($form->options['ajax_submit']) ? $form->options['ajax_submit'] : 0; //ajax submit if no file, rte, captcha if ($ajax) { $no_ajax = $wpdb->get_var("SELECT id FROM {$wpdb->prefix}frm_fields WHERE type in ('" . implode("','", $no_ajax_fields) . "') AND {$where} LIMIT 1"); if ($no_ajax) { $ajax = false; } } if ($ajax) { global $frm_vars; $frm_vars['ajax'] = true; $frm_vars['css_loaded'] = true; if (!isset($_POST['frm_page_order_' . $form->id]) && !FrmProFormsHelper::going_to_prev($form->id) || FrmProFormsHelper::saving_draft($form->id)) { $processed = true; FrmEntriesController::process_entry($errors, true); } echo FrmFormsController::show_form($form->id); // trigger the footer scripts if there is a form to show if ($errors || !isset($form->options['show_form']) || $form->options['show_form'] || !isset($processed)) { self::register_scripts(); FrmProEntriesController::enqueue_footer_js(); wp_deregister_script('formidable'); global $wp_scripts, $wp_styles; foreach (array('jquery', 'jquery-ui-core', 'jquery-migrate', 'thickbox') as $s) { if (isset($wp_scripts->registered[$s])) { $wp_scripts->done[] = $s; } unset($s); } $keep_styles = apply_filters('frm_ajax_load_styles', array('dashicons', 'jquery-theme')); foreach ($wp_styles->registered as $s => $info) { if (!is_array($keep_styles) || !in_array($s, $keep_styles)) { $wp_styles->done[] = $s; } unset($s); } wp_print_footer_scripts(); FrmProEntriesController::footer_js(); } } else { echo false; } } else { $errors = str_replace('"', '"', $errors); $obj = array(); foreach ($errors as $field => $error) { $field_id = str_replace('field', '', $field); $obj[$field_id] = $error; } echo json_encode($obj); } die; }
public static function replace_default_message($message, $atts) { if (strpos($message, '[default-message') === false && strpos($message, '[default_message') === false && !empty($message)) { return $message; } if (empty($message)) { $message = '[default-message]'; } preg_match_all("/\\[(default-message|default_message)\\b(.*?)(?:(\\/))?\\]/s", $message, $shortcodes, PREG_PATTERN_ORDER); foreach ($shortcodes[0] as $short_key => $tag) { $add_atts = shortcode_parse_atts($shortcodes[2][$short_key]); if ($add_atts) { $this_atts = array_merge($atts, $add_atts); } else { $this_atts = $atts; } $default = FrmEntriesController::show_entry_shortcode($this_atts); // Add the default message $message = str_replace($shortcodes[0][$short_key], $default, $message); } return $message; }
<!DOCTYPE html> <html <?php language_attributes(); ?> > <head> <meta charset="<?php bloginfo('charset'); ?> " /> <title><?php bloginfo('name'); ?> </title> <?php wp_head(); if (!$frmpro_is_installed) { ?> <style type="text/css">.frm_forms.with_frm_style{max-width:750px;}</style> <?php } ?> </head> <body> <?php echo FrmEntriesController::show_form($form->id, '', true, true); wp_footer(); ?> </body> </html>
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']); } }
function page_preview() { global $frm_form; $params = $this->get_params(); if (!$params['form']) { return; } $form = $frm_form->getOne($params['form']); if (!$form) { return; } return FrmEntriesController::show_form($form->id, '', true, true); }
global $frm_form; global $frm_entry; global $frm_entry_meta; $frmdb = new FrmDb(); $frm_field = new FrmField(); $frm_form = new FrmForm(); $frm_entry = new FrmEntry(); $frm_entry_meta = new FrmEntryMeta(); $obj = new FrmNotification(); // Instansiate Controllers require_once $frm_path . '/classes/controllers/FrmAppController.php'; require_once $frm_path . '/classes/controllers/FrmFieldsController.php'; require_once $frm_path . '/classes/controllers/FrmFormsController.php'; require_once $frm_path . '/classes/controllers/FrmEntriesController.php'; FrmAppController::load_hooks(); FrmEntriesController::load_hooks(); FrmFieldsController::load_hooks(); FrmFormsController::load_hooks(); if (is_admin()) { require_once $frm_path . '/classes/controllers/FrmSettingsController.php'; FrmSettingsController::load_hooks(); require_once $frm_path . '/classes/controllers/FrmStatisticsController.php'; FrmStatisticsController::load_hooks(); require_once $frm_path . '/classes/controllers/FrmXMLController.php'; FrmXMLController::load_hooks(); } // Instansiate Helpers require_once $frm_path . '/classes/helpers/FrmEntriesHelper.php'; require_once $frm_path . '/classes/helpers/FrmFieldsHelper.php'; require_once $frm_path . '/classes/helpers/FrmFormsHelper.php'; if (file_exists($frm_path . '/pro/formidable-pro.php')) {