public static function load_pro_hooks()
 {
     if (FrmAppHelper::is_admin_page('formidable-styles')) {
         add_filter('frm_style_head', 'FrmProStylesController::maybe_new_style');
         add_filter('frm_style_action_route', 'FrmProStylesController::pro_route');
     }
 }
 public static function admin_init()
 {
     if (!FrmAppHelper::is_admin_page('formidable-styles')) {
         return;
     }
     self::load_pro_hooks();
     wp_enqueue_script('jquery-ui-datepicker');
     $version = FrmAppHelper::plugin_version();
     wp_enqueue_script('jquery-frm-themepicker', FrmAppHelper::plugin_url() . '/js/jquery/jquery-ui-themepicker.js', array('jquery'), $version);
     wp_enqueue_style('frm-custom-theme', admin_url('admin-ajax.php') . '?action=frmpro_css');
     $style = apply_filters('frm_style_head', false);
     if ($style) {
         wp_enqueue_style('frm-single-custom-theme', admin_url('admin-ajax.php') . '?action=frmpro_load_css&flat=1&' . http_build_query($style->post_content));
     }
 }
 public static function admin_init()
 {
     if (!FrmAppHelper::is_admin_page('formidable-styles')) {
         return;
     }
     self::load_pro_hooks();
     $style_tab = FrmAppHelper::get_param('frm_action', '', 'get', 'sanitize_title');
     if ($style_tab == 'manage' || $style_tab == 'custom_css') {
         // we only need to load these styles/scripts on the styler page
         return;
     }
     wp_enqueue_script('jquery-ui-datepicker');
     $version = FrmAppHelper::plugin_version();
     wp_enqueue_script('jquery-frm-themepicker', FrmAppHelper::plugin_url() . '/js/jquery/jquery-ui-themepicker.js', array('jquery'), $version);
     wp_enqueue_style('frm-custom-theme', admin_url('admin-ajax.php?action=frmpro_css'));
     $style = apply_filters('frm_style_head', false);
     if ($style) {
         wp_enqueue_style('frm-single-custom-theme', admin_url('admin-ajax.php?action=frmpro_load_css&flat=1') . '&' . http_build_query($style->post_content));
     }
 }
 private static function add_html_placeholder($field, array &$add_html, array &$class)
 {
     if (empty($field['default_value']) || FrmAppHelper::is_admin_page('formidable')) {
         return;
     }
     if (!FrmField::is_option_true($field, 'clear_on_focus')) {
         if (is_array($field['default_value'])) {
             $field['default_value'] = json_encode($field['default_value']);
         }
         $add_html['data-frmval'] = 'data-frmval="' . esc_attr($field['default_value']) . '"';
         return;
     }
     $frm_settings = FrmAppHelper::get_settings();
     if ($frm_settings->use_html && !in_array($field['type'], array('select', 'radio', 'checkbox', 'hidden'))) {
         // use HMTL5 placeholder with js fallback
         $add_html['placeholder'] = 'placeholder="' . esc_attr($field['default_value']) . '"';
         wp_enqueue_script('jquery-placeholder');
     } else {
         if (!$frm_settings->use_html) {
             $val = str_replace(array("\r\n", "\n"), '\\r', addslashes(str_replace(''', "'", esc_attr($field['default_value']))));
             $add_html['data-frmval'] = 'data-frmval="' . esc_attr($val) . '"';
             $class[] = 'frm_toggle_default';
             if ($field['value'] == $field['default_value']) {
                 $class[] = 'frm_default';
             }
         }
     }
 }
 /**
  * Check the entry meta for the search term
  *
  * @param int $fid The id of the field we are searching
  * @param int|false $form_id The id of the form we are searching or false
  * @param string $search_param One word of the search
  * @param array $add_where By reference. An array of queries for this search
  */
 private static function add_entry_meta_query($fid, $form_id, $search_param, &$add_where)
 {
     $get_entry_ids = array();
     if (empty($fid)) {
         $add_where['or'] = 1;
     } else {
         if (is_numeric($fid)) {
             $get_entry_ids['field_id'] = $fid;
         } else {
             return;
         }
     }
     $where_entries_array = array('or' => 1, 'meta_value like' => $search_param);
     if ($form_id) {
         $get_entry_ids['fi.form_id'] = $form_id;
         self::add_linked_field_query($fid, $form_id, $search_param, $where_entries_array);
     }
     $get_entry_ids[] = $where_entries_array;
     unset($where_entries_array);
     if (FrmAppHelper::is_admin_page('formidable-entries')) {
         // Search both drafts and non-drafts when on the back-end
         $include_drafts = 'both';
     } else {
         $include_drafts = false;
     }
     $meta_ids = FrmEntryMeta::getEntryIds($get_entry_ids, '', '', true, array('is_draft' => $include_drafts));
     if (empty($meta_ids)) {
         $meta_ids = 0;
     }
     if (isset($add_where['it.id'])) {
         $add_where['it.id'] = array_merge((array) $add_where['it.id'], (array) $meta_ids);
     } else {
         $add_where['it.id'] = $meta_ids;
     }
 }
 public static function manage_columns($columns)
 {
     global $frm_vars, $wpdb;
     $form_id = FrmForm::get_current_form_id();
     $columns[$form_id . '_id'] = 'ID';
     $columns[$form_id . '_item_key'] = esc_html__('Entry Key', 'formidable');
     if (!$form_id) {
         return $columns;
     }
     $form_cols = FrmField::get_all_for_form($form_id, '', 'include');
     foreach ($form_cols as $form_col) {
         if (FrmField::is_no_save_field($form_col->type)) {
             continue;
         }
         if ($form_col->type == 'form' && isset($form_col->field_options['form_select']) && !empty($form_col->field_options['form_select'])) {
             $sub_form_cols = FrmField::get_all_for_form($form_col->field_options['form_select']);
             if ($sub_form_cols) {
                 foreach ($sub_form_cols as $k => $sub_form_col) {
                     if (FrmField::is_no_save_field($sub_form_col->type)) {
                         unset($sub_form_cols[$k]);
                         continue;
                     }
                     $columns[$form_id . '_' . $sub_form_col->field_key . '-_-' . $form_col->id] = FrmAppHelper::truncate($sub_form_col->name, 35);
                     unset($sub_form_col);
                 }
             }
             unset($sub_form_cols);
         } else {
             $col_id = $form_col->field_key;
             if ($form_col->form_id != $form_id) {
                 $col_id .= '-_-form' . $form_col->form_id;
             }
             if (isset($form_col->field_options['separate_value']) && $form_col->field_options['separate_value']) {
                 $columns[$form_id . '_frmsep_' . $col_id] = FrmAppHelper::truncate($form_col->name, 35);
             }
             $columns[$form_id . '_' . $col_id] = FrmAppHelper::truncate($form_col->name, 35);
         }
     }
     $columns[$form_id . '_created_at'] = __('Entry creation date', 'formidable');
     $columns[$form_id . '_updated_at'] = __('Entry update date', 'formidable');
     $columns[$form_id . '_ip'] = 'IP';
     $frm_vars['cols'] = $columns;
     $action = FrmAppHelper::simple_get('frm_action', 'sanitize_title');
     if (FrmAppHelper::is_admin_page('formidable-entries') && in_array($action, array('', 'list', 'destroy'))) {
         add_screen_option('per_page', array('label' => __('Entries', 'formidable'), 'default' => 20, 'option' => 'formidable_page_formidable_entries_per_page'));
     }
     return $columns;
 }
 public static function load_admin_hooks()
 {
     add_action('admin_menu', 'FrmAppController::menu', 1);
     add_action('admin_enqueue_scripts', 'FrmAppController::load_wp_admin_style');
     add_action('admin_notices', 'FrmAppController::pro_get_started_headline');
     add_action('admin_init', 'FrmAppController::admin_init', 11);
     add_filter('admin_body_class', 'FrmAppController::wp_admin_body_class');
     add_filter('plugin_action_links_' . FrmAppHelper::plugin_folder() . '/formidable.php', 'FrmAppController::settings_link');
     register_activation_hook(FrmAppHelper::plugin_folder() . '/formidable.php', 'FrmAppController::activation_install');
     // Addons Controller
     add_action('admin_menu', 'FrmAddonsController::menu', 100);
     // Entries Controller
     add_action('admin_menu', 'FrmEntriesController::menu', 12);
     add_filter('contextual_help', 'FrmEntriesController::contextual_help', 10, 3);
     add_filter('set-screen-option', 'FrmEntriesController::save_per_page', 10, 3);
     add_filter('update_user_metadata', 'FrmEntriesController::check_hidden_cols', 10, 5);
     add_action('updated_user_meta', 'FrmEntriesController::update_hidden_cols', 10, 4);
     // Fields Controller
     add_filter('frm_display_field_options', 'FrmFieldsController::display_field_options');
     // Form Actions Controller
     if (FrmAppHelper::is_admin_page('formidable')) {
         add_action('frm_before_update_form_settings', 'FrmFormActionsController::update_settings');
     }
     add_action('frm_after_duplicate_form', 'FrmFormActionsController::duplicate_form_actions', 20, 3);
     // Forms Controller
     add_action('admin_menu', 'FrmFormsController::menu', 10);
     add_action('admin_head-toplevel_page_formidable', 'FrmFormsController::head');
     add_filter('set-screen-option', 'FrmFormsController::save_per_page', 10, 3);
     add_action('admin_footer', 'FrmFormsController::insert_form_popup');
     add_action('media_buttons', 'FrmFormsController::insert_form_button');
     // Forms Model
     add_action('frm_after_duplicate_form', 'FrmForm::after_duplicate', 10, 2);
     // Settings Controller
     add_action('admin_menu', 'FrmSettingsController::menu', 45);
     add_action('frm_before_settings', 'FrmSettingsController::license_box');
     // Styles Controller
     add_action('admin_menu', 'FrmStylesController::menu', 14);
     add_action('admin_init', 'FrmStylesController::admin_init');
     // XML Controller
     add_action('admin_menu', 'FrmXMLController::menu', 41);
 }
 public static function mb_tags_box($form_id, $class = '')
 {
     $fields = FrmField::get_all_for_form($form_id, '', 'include');
     $linked_forms = array();
     $col = 'one';
     $settings_tab = FrmAppHelper::is_admin_page('formidable') ? true : false;
     $cond_shortcodes = apply_filters('frm_conditional_shortcodes', array());
     $adv_shortcodes = self::get_advanced_shortcodes();
     $user_fields = apply_filters('frm_user_shortcodes', array());
     $entry_shortcodes = self::get_shortcode_helpers($settings_tab);
     include FrmAppHelper::plugin_path() . '/classes/views/shared/mb_adv_info.php';
 }
 public static function get_form_style_class($form = false)
 {
     $style = self::get_form_style($form);
     $class = ' with_frm_style';
     if (empty($style)) {
         if (FrmAppHelper::is_admin_page('formidable-entries')) {
             return $class;
         } else {
             return;
         }
     }
     //If submit button needs to be inline or centered
     if (is_object($form)) {
         $form = $form->options;
     }
     $submit_align = isset($form['submit_align']) ? $form['submit_align'] : '';
     if ($submit_align == 'inline') {
         $class .= ' frm_inline_form';
     } else {
         if ($submit_align == 'center') {
             $class .= ' frm_center_submit';
         }
     }
     $class = apply_filters('frm_add_form_style_class', $class, $style);
     return $class;
 }
 public static function get_linked_options($values, $field, $entry_id = false)
 {
     global $user_ID, $wpdb;
     $metas = array();
     $selected_field = FrmField::getOne($values['form_select']);
     if (!$selected_field) {
         return array();
     }
     $linked_posts = isset($selected_field->field_options['post_field']) && $selected_field->field_options['post_field'] && $selected_field->field_options['post_field'] != '';
     $post_ids = array();
     if (is_numeric($values['hide_field']) && empty($values['hide_opt'])) {
         if (isset($_POST) && isset($_POST['item_meta'])) {
             $observed_field_val = isset($_POST['item_meta'][$values['hide_field']]) ? $_POST['item_meta'][$values['hide_field']] : '';
         } else {
             if ($entry_id) {
                 $observed_field_val = FrmEntryMeta::get_entry_meta_by_field($entry_id, $values['hide_field']);
             } else {
                 $observed_field_val = '';
             }
         }
         $observed_field_val = maybe_unserialize($observed_field_val);
         $metas = array();
         FrmProEntryMetaHelper::meta_through_join($values['hide_field'], $selected_field, $observed_field_val, false, $metas);
     } else {
         if ($values['restrict'] && $user_ID) {
             $entry_user = $user_ID;
             if ($entry_id && FrmAppHelper::is_admin()) {
                 $entry_user = FrmDb::get_var('frm_items', array('id' => $entry_id), 'user_id');
                 if (!$entry_user || empty($entry_user)) {
                     $entry_user = $user_ID;
                 }
             }
             if (isset($selected_field->form_id)) {
                 $linked_where = array('form_id' => $selected_field->form_id, 'user_id' => $entry_user);
                 if ($linked_posts) {
                     $post_ids = FrmDb::get_results('frm_items', $linked_where, 'id, post_id');
                 } else {
                     $entry_ids = FrmDb::get_col($wpdb->prefix . 'frm_items', $linked_where, 'id');
                 }
                 unset($linked_where);
             }
             if (isset($entry_ids) && !empty($entry_ids)) {
                 $metas = FrmEntryMeta::getAll(array('it.item_id' => $entry_ids, 'field_id' => (int) $values['form_select']), ' ORDER BY meta_value', '');
             }
         } else {
             $limit = '';
             if (FrmAppHelper::is_admin_page('formidable')) {
                 $limit = 500;
             }
             $metas = FrmDb::get_results('frm_item_metas', array('field_id' => $values['form_select']), 'item_id, meta_value', array('order_by' => 'meta_value', 'limit' => $limit));
             $post_ids = FrmDb::get_results('frm_items', array('form_id' => $selected_field->form_id), 'id, post_id', array('limit' => $limit));
         }
     }
     if ($linked_posts && !empty($post_ids)) {
         foreach ($post_ids as $entry) {
             $meta_value = FrmProEntryMetaHelper::get_post_value($entry->post_id, $selected_field->field_options['post_field'], $selected_field->field_options['custom_field'], array('type' => $selected_field->type, 'form_id' => $selected_field->form_id, 'field' => $selected_field));
             $metas[] = array('meta_value' => $meta_value, 'item_id' => $entry->id);
         }
     }
     $options = array();
     foreach ($metas as $meta) {
         $meta = (array) $meta;
         if ($meta['meta_value'] == '') {
             continue;
         }
         if ($selected_field->type == 'image') {
             $options[$meta['item_id']] = $meta['meta_value'];
         } else {
             $options[$meta['item_id']] = FrmEntriesHelper::display_value($meta['meta_value'], $selected_field, array('type' => $selected_field->type, 'show_icon' => true, 'show_filename' => false));
         }
         unset($meta);
     }
     $options = apply_filters('frm_data_sort', $options, array('metas' => $metas, 'field' => $selected_field));
     unset($metas);
     if (self::include_blank_option($options, $field)) {
         $options = array('' => '') + (array) $options;
     }
     return stripslashes_deep($options);
 }
 public static function footer_js()
 {
     global $frm_vars, $frm_input_masks;
     $frm_vars['footer_loaded'] = true;
     if (empty($frm_vars['forms_loaded'])) {
         return;
     }
     $trigger_form = !FrmAppHelper::doing_ajax() && !FrmAppHelper::is_admin_page('formidable-entries');
     include FrmAppHelper::plugin_path() . '/pro/classes/views/frmpro-entries/footer_js.php';
     /**
      * Add custom scripts after the form scripts are done loading
      * @since 2.0.6
      */
     do_action('frm_footer_scripts', $frm_vars['forms_loaded']);
 }
 public static function input_html($field, $echo = true)
 {
     global $frm_vars;
     $frm_settings = FrmAppHelper::get_settings();
     $add_html = '';
     if (FrmField::is_option_true($field, 'read_only') && $field['type'] != 'hidden') {
         global $frm_vars;
         if (isset($frm_vars['readonly']) && $frm_vars['readonly'] == 'disabled' || current_user_can('frm_edit_entries') && FrmAppHelper::is_admin()) {
             //not read only
             //}else if($field['type'] == 'select'){
             //$add_html .= ' disabled="disabled" ';
         } else {
             if (in_array($field['type'], array('radio', 'checkbox'))) {
                 $add_html .= ' disabled="disabled" ';
             } else {
                 $add_html .= ' readonly="readonly" ';
             }
         }
     }
     if (FrmField::is_multiple_select($field)) {
         $add_html .= ' multiple="multiple" ';
     }
     if (FrmAppHelper::is_admin_page('formidable')) {
         if ($echo) {
             echo $add_html;
         }
         //don't continue if we are on the form builder page
         return $add_html;
     }
     if ($frm_settings->use_html) {
         if (FrmField::is_option_true($field, 'autocom') && ($field['type'] == 'select' || $field['type'] == 'data' && isset($field['data_type']) && $field['data_type'] == 'select')) {
             //add label for autocomplete fields
             $add_html .= ' data-placeholder=" "';
         }
         if ($field['type'] == 'number' || $field['type'] == 'range') {
             if (!is_numeric($field['minnum'])) {
                 $field['minnum'] = 0;
             }
             if (!is_numeric($field['maxnum'])) {
                 $field['maxnum'] = 9999999;
             }
             if (!is_numeric($field['step'])) {
                 $field['step'] = 1;
             }
             $add_html .= ' min="' . esc_attr($field['minnum']) . '" max="' . esc_attr($field['maxnum']) . '" step="' . esc_attr($field['step']) . '"';
         } else {
             if (in_array($field['type'], array('url', 'email', 'image'))) {
                 if ((!isset($frm_vars['novalidate']) || !$frm_vars['novalidate']) && ($field['type'] != 'email' || isset($field['value']) && $field['default_value'] == $field['value'])) {
                     // add novalidate for drafts
                     $frm_vars['novalidate'] = true;
                 }
             }
         }
     }
     $add_html .= FrmProFieldsHelper::setup_input_masks($field);
     if ($echo) {
         echo $add_html;
     }
     return $add_html;
 }
Exemple #13
0
<?php

global $frm_update;
$frm_update = new FrmUpdatesController();
$frmedd_update = new FrmProEddController();
$frmedd_update->load_hooks();
// load the license form
if (FrmAppHelper::is_admin_page('formidable-settings')) {
    add_action('frm_before_settings', 'FrmProSettingsController::license_box', 1);
}
if (!$frm_vars['pro_is_authorized']) {
    return;
}
$frm_vars['next_page'] = $frm_vars['prev_page'] = array();
$frm_vars['pro_is_installed'] = 'deprecated';
add_filter('frm_pro_installed', '__return_true');
add_filter('frm_load_controllers', 'frmpro_load_controllers');
function frmpro_load_controllers($controllers)
{
    $controllers[] = 'FrmProHooksController';
    return $controllers;
}
 public static function load_admin_hooks()
 {
     add_action('frm_after_uninstall', 'FrmProDb::uninstall');
     // Displays Controller
     add_action('admin_menu', 'FrmProDisplaysController::menu', 13);
     add_filter('admin_head-post.php', 'FrmProDisplaysController::highlight_menu');
     add_filter('admin_head-post-new.php', 'FrmProDisplaysController::highlight_menu');
     add_action('restrict_manage_posts', 'FrmProDisplaysController::switch_form_box');
     add_filter('parse_query', 'FrmProDisplaysController::filter_forms');
     add_filter('views_edit-frm_display', 'FrmProDisplaysController::add_form_nav');
     add_filter('post_row_actions', 'FrmProDisplaysController::post_row_actions', 10, 2);
     //add_filter('bulk_actions-edit-frm_display', 'FrmProDisplaysController::add_bulk_actions' );
     // for Views
     add_filter('default_content', 'FrmProDisplaysController::default_content', 10, 2);
     add_action('post_submitbox_misc_actions', 'FrmProDisplaysController::submitbox_actions');
     add_action('add_meta_boxes', 'FrmProDisplaysController::add_meta_boxes');
     add_action('save_post', 'FrmProDisplaysController::save_post');
     add_action('frm_destroy_form', 'FrmProDisplaysController::delete_views_for_form');
     add_filter('manage_edit-frm_display_columns', 'FrmProDisplaysController::manage_columns');
     add_filter('manage_edit-frm_display_sortable_columns', 'FrmProDisplaysController::sortable_columns');
     add_filter('get_user_option_manageedit-frm_displaycolumnshidden', 'FrmProDisplaysController::hidden_columns');
     add_action('manage_frm_display_posts_custom_column', 'FrmProDisplaysController::manage_custom_columns', 10, 2);
     // Entries Controller
     add_action('admin_init', 'FrmProEntriesController::admin_js', 1);
     // enqueue right before scripts are printed
     add_action('admin_footer', 'FrmProEntriesController::enqueue_footer_js', 19);
     // print our scripts after js files have been loaded
     add_action('admin_print_footer_scripts', 'FrmProEntriesController::footer_js', 40);
     add_action('frm_after_show_entry', 'FrmProEntriesController::show_comments');
     add_action('frm_show_entry_publish_box', 'FrmProEntriesController::add_duplicate_link');
     add_action('frm_entry_shared_sidebar', 'FrmProEntriesController::add_sidebar_links');
     add_action('frm_entry_major_pub', 'FrmProEntriesController::add_edit_link');
     add_action('frm_entry_inside_h2', 'FrmProEntriesController::add_new_entry_link');
     add_action('add_meta_boxes', 'FrmProEntriesController::create_entry_from_post_box', 10, 2);
     // admin listing page
     add_action('frm_entry_action_route', 'FrmProEntriesController::route');
     add_filter('frm_entries_list_class', 'FrmProEntriesController::list_class');
     add_filter('frm_row_actions', 'FrmProEntriesController::row_actions', 10, 2);
     // Fields Controller
     add_action('frm_after_field_created', 'FrmProFieldsController::create_multiple_fields', 10, 2);
     add_action('frm_duplicate_field_divider', 'FrmProFieldsController::duplicate_section', 10, 2);
     add_action('frm_display_added_fields', 'FrmProFieldsController::show');
     add_filter('frm_display_field_options', 'FrmProFieldsController::display_field_options');
     add_action('frm_add_multiple_opts_labels', 'FrmProFieldsController::add_separate_value_opt_label');
     add_action('frm_field_options_form_top', 'FrmProFieldsController::options_form_top', 10, 3);
     add_action('frm_before_field_options', 'FrmProFieldsController::options_form_before');
     add_action('frm_field_options_form', 'FrmProFieldsController::options_form', 10, 3);
     add_filter('frm_build_field_class', 'FrmProFieldsController::build_field_class', 10, 2);
     add_action('frm_after_update_field_name', 'FrmProFieldsController::update_repeating_form_name');
     // Fields Helper
     add_filter('frm_show_custom_html', 'FrmProFieldsHelper::show_custom_html', 10, 2);
     // Trigger field model
     add_filter('frm_before_field_created', 'FrmProField::create');
     add_filter('frm_update_field_options', 'FrmProField::update', 10, 3);
     add_filter('frm_duplicated_field', 'FrmProField::duplicate');
     add_action('frm_before_destroy_field', 'FrmProField::delete');
     add_filter('frm_create_repeat_form', 'FrmProField::create_repeat_form', 10, 2);
     // Form Actions Controller
     add_action('frm_additional_action_settings', 'FrmProFormActionsController::form_action_settings', 10, 2);
     add_action('frm_form_action_settings', 'FrmProFormActionsController::fill_action_options', 10, 2);
     // Forms Controller
     if (FrmAppHelper::is_admin_page('formidable')) {
         // form builder page hooks
         add_action('frm_noallow_class', 'FrmProFormsController::noallow_class');
         add_action('frm_extra_form_instruction_tabs', 'FrmProFormsController::instruction_tabs');
         add_action('frm_extra_form_instructions', 'FrmProFormsController::instructions');
         add_filter('frmpro_field_links', 'FrmProFormsController::add_field_link');
         add_filter('frm_drag_field_class', 'FrmProFormsController::drag_field_class');
         // form settings page
         add_filter('frm_before_save_wppost_action', 'FrmProFormsController::save_wppost_actions', 10, 2);
         add_filter('frm_update_form_field_options', 'FrmProFormsController::update_form_field_options', 10, 2);
         add_action('frm_add_form_perm_options', 'FrmProFormsController::add_form_options');
         add_action('frm_add_form_ajax_options', 'FrmProFormsController::add_form_ajax_options');
         add_action('frm_add_form_button_options', 'FrmProFormsController::add_form_button_options');
         add_action('frm_add_form_msg_options', 'FrmProFormsController::add_form_msg_options');
     }
     add_filter('frm_setup_new_form_vars', 'FrmProFormsController::setup_new_vars');
     add_filter('frm_setup_edit_form_vars', 'FrmProFormsController::setup_edit_vars');
     add_filter('frm_advanced_shortcodes', 'FrmProFormsController::advanced_options');
     // form settings and import
     add_filter('frm_form_options_before_update', 'FrmProFormsController::update_options', 10, 2);
     // form builder and form settings pages
     add_action('frm_update_form', 'FrmProFormsController::update', 10, 2);
     // form builder and import page
     add_filter('frm_after_duplicate_form_values', 'FrmProFormsController::after_duplicate');
     // edit post page with shortcode popup
     add_filter('frm_popup_shortcodes', 'FrmProFormsController::popup_shortcodes');
     add_filter('frm_sc_popup_opts', 'FrmProFormsController::sc_popup_opts', 10, 2);
     // Settings Controller
     add_action('frm_style_general_settings', 'FrmProSettingsController::general_style_settings');
     add_action('frm_settings_form', 'FrmProSettingsController::more_settings', 1);
     add_action('frm_update_settings', 'FrmProSettingsController::update');
     add_action('frm_store_settings', 'FrmProSettingsController::store');
     // Styles Controller
     add_filter('frm_style_switcher', 'FrmProStylesController::style_switcher', 10, 2);
     // XML Controller
     add_filter('frm_xml_route', 'FrmProXMLController::route', 10, 2);
     add_filter('frm_upload_instructions1', 'FrmProXMLController::csv_instructions_1');
     add_filter('frm_upload_instructions2', 'FrmProXMLController::csv_instructions_2');
     add_action('frm_csv_opts', 'FrmProXMLController::csv_opts');
     add_filter('frm_xml_export_types', 'FrmProXMLController::xml_export_types');
     add_filter('frm_export_formats', 'FrmProXMLController::export_formats');
     add_action('frm_before_import_csv', 'FrmProXMLController::map_csv_fields');
     add_action('frm_export_format_csv', 'FrmProXMLController::export_csv');
 }