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; }
<?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'); }