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);
     }
 }
Example #3
0
 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>
Example #5
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>';
Example #6
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;
 }
 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;
 }
Example #8
0
        ?>
');" 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('"', '&quot;', $errors);
         $obj = array();
         foreach ($errors as $field => $error) {
             $field_id = str_replace('field', '', $field);
             $obj[$field_id] = $error;
         }
         echo json_encode($obj);
     }
     die;
 }
Example #11
0
 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;
 }
Example #12
0
<!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>
Example #13
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']);
     }
 }
 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);
 }
Example #15
0
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')) {