PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 2.05.09
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v2.05.09
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / classes / controllers / FrmHooksController.php

FrmHooksController.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 2.05.09, at classes/controllers/FrmHooksController.php

212 lines 10.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class FrmHooksController {
4 /**
5 * Trigger plugin-wide hook loading
6 */
7 public static function trigger_load_hook( $hooks = 'load_hooks' ) {
8 $controllers = apply_filters( 'frm_load_controllers', array( 'FrmHooksController' ) );
9
10 $trigger_hooks = $hooks;
11 $hooks = (array) $hooks;
12
13 if ( 'load_hooks' == $trigger_hooks ) {
14 if ( is_admin() ) {
15 $hooks[] = 'load_admin_hooks';
16 if ( defined( 'DOING_AJAX' ) ) {
17 $hooks[] = 'load_ajax_hooks';
18 $hooks[] = 'load_form_hooks';
19 }
20 }
21
22 if ( is_multisite() ) {
23 $hooks[] = 'load_multisite_hooks';
24 }
25 } else {
26 // Make sure the hooks are only triggered once
27 add_filter( 'frm' . str_replace( 'load', '', $trigger_hooks ) . '_loaded', '__return_true' );
28 }
29 unset( $trigger_hooks );
30
31 // Instansiate Controllers
32 foreach ( $controllers as $c ) {
33 foreach ( $hooks as $hook ) {
34 call_user_func( array( $c, $hook ) );
35 unset( $hook );
36 }
37 unset( $c );
38 }
39
40 }
41
42 public static function trigger_load_form_hooks() {
43 self::trigger_load_hook( 'load_form_hooks' );
44 }
45
46 public static function load_hooks() {
47 if ( ! is_admin() ) {
48 add_filter( 'the_content', 'FrmAppController::page_route', 10 );
49 }
50
51 add_action( 'plugins_loaded', 'FrmAppController::load_lang' );
52 add_filter( 'widget_text', 'do_shortcode' );
53
54 // Entries controller
55 add_action( 'wp_loaded', 'FrmEntriesController::process_entry', 10, 0 );
56 add_filter( 'frm_redirect_url', 'FrmEntriesController::delete_entry_before_redirect', 50, 3 );
57 add_action( 'frm_after_entry_processed', 'FrmEntriesController::delete_entry_after_save', 100 );
58
59 // Form Actions Controller
60 add_action( 'init', 'FrmFormActionsController::register_post_types', 1 );
61 add_action( 'frm_after_create_entry', 'FrmFormActionsController::trigger_create_actions', 20, 3 );
62
63 // Forms Controller
64 add_action( 'widgets_init', 'FrmFormsController::register_widgets' );
65 add_action( 'init', 'FrmFormsController::front_head' );
66 add_filter( 'frm_content', 'FrmFormsController::filter_content', 10, 3 );
67 add_filter( 'frm_replace_content_shortcodes', 'FrmFormsController::replace_content_shortcodes', 20, 3 );
68 add_action( 'admin_bar_init', 'FrmFormsController::admin_bar_css' );
69 add_action( 'wp_footer', 'FrmFormsController::footer_js', 1, 0 );
70
71 add_action( 'wp_scheduled_delete', 'FrmForm::scheduled_delete' );
72
73 // Form Shortcodes
74 add_shortcode( 'formidable', 'FrmFormsController::get_form_shortcode' );
75
76 // Styles Controller
77 add_action( 'init', 'FrmStylesController::register_post_types', 0 );
78 add_filter( 'frm_get_style_opts', 'FrmStylesController::get_style_opts' );
79 add_filter( 'frm_add_form_style_class', 'FrmStylesController::get_form_style_class', 10, 2 );
80 add_filter( 'frm_show_entry_styles', 'FrmStylesController::show_entry_styles' );
81 }
82
83 public static function load_admin_hooks() {
84 add_action( 'admin_menu', 'FrmAppController::menu', 1 );
85 add_action( 'admin_enqueue_scripts', 'FrmAppController::load_wp_admin_style' );
86 add_action( 'admin_notices', 'FrmAppController::pro_get_started_headline' );
87 add_action( 'admin_init', 'FrmAppController::admin_init', 11 );
88 add_filter( 'plugin_action_links_' . FrmAppHelper::plugin_folder() . '/formidable.php', 'FrmAppController::settings_link' );
89 register_activation_hook( FrmAppHelper::plugin_folder() . '/formidable.php', 'FrmAppController::activation_install' );
90
91 // Addons Controller
92 add_action( 'admin_menu', 'FrmAddonsController::menu', 100 );
93 add_filter( 'upgrader_pre_download', 'FrmAddonsController::add_shorten_edd_filename_filter', 10, 4 );
94
95 // Entries Controller
96 add_action( 'admin_menu', 'FrmEntriesController::menu', 12 );
97 add_filter( 'contextual_help', 'FrmEntriesController::contextual_help', 10, 3 );
98 add_filter( 'set-screen-option', 'FrmEntriesController::save_per_page', 10, 3 );
99 add_filter( 'update_user_metadata', 'FrmEntriesController::check_hidden_cols', 10, 5 );
100 add_action( 'updated_user_meta', 'FrmEntriesController::update_hidden_cols', 10, 4 );
101
102 // Fields Controller
103 add_filter( 'frm_display_field_options', 'FrmFieldsController::display_field_options' );
104
105 // Form Actions Controller
106 if ( FrmAppHelper::is_admin_page( 'formidable' ) ) {
107 add_action( 'frm_before_update_form_settings', 'FrmFormActionsController::update_settings' );
108 }
109 add_action( 'frm_after_duplicate_form', 'FrmFormActionsController::duplicate_form_actions', 20, 3 );
110
111 // Forms Controller
112 add_action( 'admin_menu', 'FrmFormsController::menu', 10 );
113 add_action( 'admin_head-toplevel_page_formidable', 'FrmFormsController::head' );
114
115 add_filter( 'set-screen-option', 'FrmFormsController::save_per_page', 10, 3 );
116 add_action( 'admin_footer', 'FrmFormsController::insert_form_popup' );
117 add_action( 'media_buttons', 'FrmFormsController::insert_form_button' );
118
119 // Forms Model
120 add_action( 'frm_after_duplicate_form', 'FrmForm::after_duplicate', 10, 2 );
121
122 // Settings Controller
123 add_action( 'admin_menu', 'FrmSettingsController::menu', 45 );
124 add_action( 'frm_before_settings', 'FrmSettingsController::license_box' );
125 add_action( 'wp_ajax_frm_settings_tab', 'FrmSettingsController::load_settings_tab' );
126
127 // Styles Controller
128 add_action( 'admin_menu', 'FrmStylesController::menu', 14 );
129 add_action( 'admin_init', 'FrmStylesController::admin_init' );
130
131 // XML Controller
132 add_action( 'admin_menu', 'FrmXMLController::menu', 41 );
133 }
134
135 public static function load_ajax_hooks() {
136 add_action( 'wp_ajax_frm_silent_upgrade', 'FrmAppController::ajax_install' );
137 add_action( 'wp_ajax_nopriv_frm_silent_upgrade', 'FrmAppController::ajax_install' );
138 add_action( 'wp_ajax_frm_install', 'FrmAppController::ajax_install' );
139 add_action( 'wp_ajax_frm_uninstall', 'FrmAppController::uninstall' );
140 add_action( 'wp_ajax_frm_deauthorize', 'FrmAppController::deauthorize' );
141
142 // Addons
143 add_action( 'wp_ajax_frm_addon_activate', 'FrmAddon::activate' );
144 add_action( 'wp_ajax_frm_addon_deactivate', 'FrmAddon::deactivate' );
145 add_action( 'wp_ajax_frm_fill_licenses', 'FrmAddonsController::get_licenses' );
146
147 // Fields Controller
148 add_action( 'wp_ajax_frm_load_field', 'FrmFieldsController::load_field' );
149 add_action( 'wp_ajax_frm_insert_field', 'FrmFieldsController::create' );
150 add_action( 'wp_ajax_frm_field_name_in_place_edit', 'FrmFieldsController::edit_name' );
151 add_action( 'wp_ajax_frm_update_ajax_option', 'FrmFieldsController::update_ajax_option' );
152 add_action( 'wp_ajax_frm_duplicate_field', 'FrmFieldsController::duplicate' );
153 add_action( 'wp_ajax_frm_delete_field', 'FrmFieldsController::destroy' );
154 add_action( 'wp_ajax_frm_add_field_option', 'FrmFieldsController::add_option' );
155 add_action( 'wp_ajax_frm_import_choices', 'FrmFieldsController::import_choices' );
156 add_action( 'wp_ajax_frm_import_options', 'FrmFieldsController::import_options' );
157 add_action( 'wp_ajax_frm_update_field_order', 'FrmFieldsController::update_order' );
158
159 // Form Actions Controller
160 add_action( 'wp_ajax_frm_add_form_action', 'FrmFormActionsController::add_form_action' );
161 add_action( 'wp_ajax_frm_form_action_fill', 'FrmFormActionsController::fill_action' );
162
163 // Forms Controller
164 add_action( 'wp_ajax_frm_create_from_template', 'FrmFormsController::_create_from_template' );
165 add_action( 'wp_ajax_frm_save_form', 'FrmFormsController::route' );
166 add_action( 'wp_ajax_frm_form_key_in_place_edit', 'FrmFormsController::edit_key' );
167 add_action( 'wp_ajax_frm_form_desc_in_place_edit', 'FrmFormsController::edit_description' );
168 add_action( 'wp_ajax_frm_get_default_html', 'FrmFormsController::get_email_html' );
169 add_action( 'wp_ajax_frm_get_shortcode_opts', 'FrmFormsController::get_shortcode_opts' );
170 add_action( 'wp_ajax_frm_forms_preview', 'FrmFormsController::preview' );
171 add_action( 'wp_ajax_nopriv_frm_forms_preview', 'FrmFormsController::preview' );
172
173 // Styles Controller
174 add_action( 'wp_ajax_frm_settings_reset', 'FrmStylesController::reset_styling' );
175 add_action( 'wp_ajax_frm_change_styling', 'FrmStylesController::change_styling' );
176 add_action( 'wp_ajax_frmpro_load_css', 'FrmStylesController::load_css' );
177 add_action( 'wp_ajax_nopriv_frmpro_load_css', 'FrmStylesController::load_css' );
178 add_action( 'wp_ajax_frmpro_css', 'FrmStylesController::load_saved_css' );
179 add_action( 'wp_ajax_nopriv_frmpro_css', 'FrmStylesController::load_saved_css' );
180
181 // XML Controller
182 add_action( 'wp_ajax_frm_entries_csv', 'FrmXMLController::csv' );
183 add_action( 'wp_ajax_nopriv_frm_entries_csv', 'FrmXMLController::csv' );
184 add_action( 'wp_ajax_frm_export_xml', 'FrmXMLController::export_xml' );
185 }
186
187 public static function load_form_hooks() {
188 // Fields Controller
189 add_filter( 'frm_field_type', 'FrmFieldsController::change_type' );
190 add_action( 'frm_field_input_html', 'FrmFieldsController::input_html' );
191 add_filter( 'frm_field_value_saved', 'FrmFieldsController::check_value', 50, 3 );
192 add_filter( 'frm_field_label_seen', 'FrmFieldsController::check_label' );
193
194 // Forms Controller
195 add_filter( 'frm_form_classes', 'FrmFormsController::form_classes' );
196
197 // Styles Controller
198 add_filter( 'frm_use_important_width', 'FrmStylesController::important_style', 10, 2 );
199 }
200
201 public static function load_view_hooks() {
202 // Hooks go here when a view is loaded
203 }
204
205 public static function load_multisite_hooks() {
206 add_action( 'wpmu_upgrade_site', 'FrmAppController::network_upgrade_site' );
207
208 // drop tables when mu site is deleted
209 add_filter( 'wpmu_drop_tables', 'FrmAppController::drop_tables' );
210 }
211 }
212