Version Description
Download this release
Release Info
Developer | sswells |
Plugin | Formidable Forms – Form Builder for WordPress |
Version | 2.0rc3 |
Comparing to | |
See all releases |
Code changes from version 2.0b7 to 2.0rc3
- .travis.yml +63 -0
- classes/controllers/FrmAppController.php +144 -141
- classes/controllers/FrmEntriesController.php +53 -34
- classes/controllers/FrmFieldsController.php +19 -17
- classes/controllers/FrmFormActionsController.php +12 -6
- classes/controllers/FrmFormsController.php +89 -89
- classes/controllers/FrmHooksController.php +17 -17
- classes/controllers/FrmSettingsController.php +7 -5
- classes/controllers/FrmStatisticsController.php +1 -1
- classes/controllers/FrmStylesController.php +38 -12
- classes/controllers/FrmXMLController.php +26 -27
- classes/helpers/FrmAppHelper.php +235 -78
- classes/helpers/FrmEntriesHelper.php +182 -87
- classes/helpers/FrmEntriesListHelper.php +14 -10
- classes/helpers/FrmFieldsHelper.php +54 -25
- classes/helpers/FrmFormActionsHelper.php +3 -3
- classes/helpers/FrmFormsHelper.php +50 -21
- classes/helpers/FrmFormsListHelper.php +31 -8
- classes/helpers/FrmListHelper.php +1 -0
- classes/helpers/FrmStylesHelper.php +26 -9
- classes/helpers/FrmXMLHelper.php +32 -23
- classes/models/FrmDb.php +61 -42
- classes/models/FrmEntry.php +39 -35
- classes/models/FrmEntryMeta.php +25 -19
- classes/models/FrmField.php +43 -26
- classes/models/FrmForm.php +5 -5
- classes/models/FrmFormAction.php +9 -8
- classes/models/FrmNotification.php +110 -54
- classes/models/FrmSettings.php +9 -8
- classes/models/FrmStyle.php +28 -21
- classes/views/frm-entries/direct.php +0 -0
- classes/views/frm-entries/errors.php +5 -5
- classes/views/frm-entries/form.php +1 -0
- classes/views/frm-entries/new.php +4 -4
- classes/views/frm-entries/show.php +3 -3
- classes/views/frm-entries/sidebar-shared.php +84 -0
- classes/views/frm-entries/sidebar-show.php +5 -3
- classes/views/frm-fields/import_choices.php +2 -2
- classes/views/frm-fields/input.php +53 -71
- classes/views/frm-fields/radio.php +4 -8
- classes/views/frm-fields/show-build.php +12 -14
- classes/views/frm-fields/show.php +0 -0
- classes/views/frm-fields/single-option.php +6 -7
- classes/views/frm-form-actions/_action_inside.php +7 -6
- classes/views/frm-form-actions/_email_settings.php +10 -10
- classes/views/frm-form-actions/default_actions.php +7 -7
- classes/views/frm-form-actions/email_action.php +3 -3
- classes/views/frm-form-actions/form_action.php +6 -6
- classes/views/frm-forms/_publish_box.php +8 -8
- classes/views/frm-forms/add_field.php +51 -51
- classes/views/frm-forms/add_field_links.php +36 -29
- classes/views/frm-forms/edit.php +2 -2
- classes/views/frm-forms/form.php +2 -2
- classes/views/frm-forms/insert_form_popup.php +6 -4
- classes/views/frm-forms/list.php +2 -2
- classes/views/frm-forms/mb_html_tab.php +3 -3
- classes/views/frm-forms/new-selection.php +1 -1
- classes/views/frm-forms/new.php +2 -2
- classes/views/frm-forms/settings.php +11 -10
- classes/views/frm-forms/shortcode_opts.php +39 -0
- classes/views/frm-forms/sidebar-settings.php +1 -1
- classes/views/frm-settings/form.php +5 -5
- classes/views/frm-settings/license_box.php +1 -1
- classes/views/shared/errors.php +1 -1
- classes/views/shared/form-nav.php +5 -5
- classes/views/shared/head.php +1 -19
- classes/views/shared/mb_adv_info.php +17 -17
- classes/views/shared/update_message.php +2 -2
- classes/views/styles/_buttons.php +20 -20
- classes/views/styles/_check-box-radio-fields.php +9 -11
- classes/views/styles/_date-fields.php +5 -5
- classes/views/styles/_field-colors.php +15 -15
- classes/views/styles/_field-description.php +5 -5
- classes/views/styles/_field-labels.php +12 -12
- classes/views/styles/_field-sizes.php +7 -7
- classes/views/styles/_form-messages.php +8 -8
- classes/views/styles/_general.php +13 -13
- classes/views/styles/_sample_form.php +17 -17
- classes/views/styles/_section-fields.php +12 -12
- classes/views/styles/custom_css.php +6 -6
- classes/views/styles/manage.php +3 -3
- classes/views/styles/show.php +9 -9
- classes/views/xml/forms_xml.php +3 -2
- classes/views/xml/import_form.php +5 -5
- classes/views/xml/posts_xml.php +2 -2
- classes/views/xml/xml.php +3 -2
- classes/widgets/FrmShowForm.php +11 -10
- css/_single_theme.css.php +27 -7
- css/custom_theme.css.php +36 -16
- css/frm_admin.css +34 -4
- css/frm_display.css +0 -0
- css/frm_fonts.css +22 -0
- deprecated.php +0 -19
- formidable.php +2 -2
- images/ajax_loader.gif +0 -0
- images/form_16-2x.png +0 -0
- images/form_16.png +0 -0
- images/form_32_sprite-2x.png +0 -0
- images/form_32_sprite.png +0 -0
- images/tooltip.png +0 -0
- images/wpspin_light.gif +0 -0
- js/bootstrap.min.js +3 -3
- js/formidable.js +0 -1050
- js/formidable.min.js +44 -44
- js/formidable_admin.js +24 -17
- js/jquery/jquery-ui-themepicker.js +0 -0
- js/jquery/jquery.editinplace.js +0 -653
- js/jquery/jquery.editinplace.packed.js +0 -0
- js/jquery/jquery.placeholder.js +0 -0
- languages/formidable-de_DE.mo +0 -0
- languages/formidable-de_DE.po +1288 -1171
- languages/formidable-en_US.po +1286 -1169
- languages/formidable-es_ES.mo +0 -0
- languages/formidable-es_ES.po +470 -521
.travis.yml
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
language: php
|
2 |
+
|
3 |
+
sudo: false
|
4 |
+
|
5 |
+
matrix:
|
6 |
+
include:
|
7 |
+
- php: '5.6'
|
8 |
+
env: WP_VERSION=master WP_MULTISITE=0 PHPLINT=1
|
9 |
+
- php: '5.2'
|
10 |
+
env: WP_VERSION=master WP_MULTISITE=1 PHPLINT=1
|
11 |
+
- php: '5.6'
|
12 |
+
env: WP_VERSION=4.1 WP_MULTISITE=1
|
13 |
+
- php: '5.5'
|
14 |
+
env: WP_VERSION=master WP_MULTISITE=0
|
15 |
+
- php: '5.5'
|
16 |
+
env: WP_VERSION=4.1 WP_MULTISITE=1
|
17 |
+
- php: '5.4'
|
18 |
+
env: WP_VERSION=4.1 WP_MULTISITE=0
|
19 |
+
- php: '5.4'
|
20 |
+
env: WP_VERSION=4.1 WP_MULTISITE=1
|
21 |
+
- php: '5.5'
|
22 |
+
env: WP_VERSION=4.1 WP_MULTISITE=0
|
23 |
+
- php: '5.5'
|
24 |
+
env: WP_VERSION=4.0 WP_MULTISITE=1
|
25 |
+
- php: '5.3'
|
26 |
+
env: WP_VERSION=4.0 WP_MULTISITE=0
|
27 |
+
- php: '5.4'
|
28 |
+
env: WP_VERSION=3.9 WP_MULTISITE=0
|
29 |
+
- php: '5.3'
|
30 |
+
env: WP_VERSION=3.4 WP_MULTISITE=0
|
31 |
+
- php: '5.3'
|
32 |
+
env: WP_VERSION=3.4 WP_MULTISITE=1
|
33 |
+
- php: 'hhvm'
|
34 |
+
env: WP_VERSION=4.1 WP_MULTISITE=0
|
35 |
+
- php: 'hhvm'
|
36 |
+
env: WP_VERSION=4.1 WP_MULTISITE=1
|
37 |
+
|
38 |
+
before_script:
|
39 |
+
- phpenv local 5.6
|
40 |
+
- composer selfupdate --no-interaction
|
41 |
+
- composer install --no-interaction
|
42 |
+
- phpenv local --unset
|
43 |
+
- PLUGIN_SLUG=$(basename $(pwd))
|
44 |
+
- export WP_DEVELOP_DIR=/tmp/wordpress/
|
45 |
+
- git clone --depth=50 --branch="$WP_VERSION" git://develop.git.wordpress.org/ /tmp/wordpress
|
46 |
+
- cd ..
|
47 |
+
- cp -r "$PLUGIN_SLUG" "/tmp/wordpress/src/wp-content/plugins/$PLUGIN_SLUG"
|
48 |
+
- cd /tmp/wordpress/
|
49 |
+
- cp wp-tests-config-sample.php wp-tests-config.php
|
50 |
+
- sed -i "s/youremptytestdbnamehere/wordpress_tests/" wp-tests-config.php
|
51 |
+
- sed -i "s/yourusernamehere/travis/" wp-tests-config.php
|
52 |
+
- sed -i "s/yourpasswordhere//" wp-tests-config.php
|
53 |
+
- mysql -e "CREATE DATABASE wordpress_tests;" -uroot
|
54 |
+
- git clone https://github.com/squizlabs/PHP_CodeSniffer.git phpcs
|
55 |
+
- git clone https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git wpcs
|
56 |
+
- cd phpcs
|
57 |
+
- scripts/phpcs --config-set installed_paths ../wpcs
|
58 |
+
- cd "/tmp/wordpress/src/wp-content/plugins/$PLUGIN_SLUG"
|
59 |
+
- phpenv rehash
|
60 |
+
|
61 |
+
script:
|
62 |
+
- if [[ "$PHPLINT" == "1" ]]; then /tmp/wordpress/phpcs/scripts/phpcs -p -s -v -n . --standard=./codesniffer.xml --extensions=php; fi
|
63 |
+
- phpunit -c phpunit.xml
|
classes/controllers/FrmAppController.php
CHANGED
@@ -2,32 +2,32 @@
|
|
2 |
|
3 |
class FrmAppController {
|
4 |
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
|
9 |
FrmAppHelper::maybe_add_permissions();
|
10 |
|
11 |
-
if ( ! current_user_can('frm_view_forms') ) {
|
12 |
return;
|
13 |
}
|
14 |
|
15 |
-
$count = count(get_post_types( array( 'show_ui' => true, '_builtin' => false, 'show_in_menu' => true ) ));
|
16 |
$pos = ( (int) $count > 0 ) ? '22.7' : '29.3';
|
17 |
-
$pos = apply_filters('frm_menu_position', $pos);
|
18 |
|
19 |
$frm_settings = FrmAppHelper::get_settings();
|
20 |
-
add_menu_page('Formidable', $frm_settings->menu, 'frm_view_forms', 'formidable', 'FrmFormsController::route', FrmAppHelper::plugin_url() .'/images/form_16.png', $pos);
|
21 |
}
|
22 |
|
23 |
public static function load_wp_admin_style() {
|
24 |
-
wp_enqueue_style( 'frm_fonts', FrmAppHelper::plugin_url() .'/css/frm_fonts.css', array(), FrmAppHelper::plugin_version());
|
25 |
}
|
26 |
|
27 |
public static function get_form_nav($form, $show_nav = '', $title = 'show') {
|
28 |
global $pagenow, $frm_vars;
|
29 |
|
30 |
-
$show_nav = FrmAppHelper::get_param('show_nav', $show_nav);
|
31 |
if ( empty($show_nav) ) {
|
32 |
return;
|
33 |
}
|
@@ -36,12 +36,12 @@ class FrmAppController {
|
|
36 |
if ( $form ) {
|
37 |
FrmFormsHelper::maybe_get_form( $form );
|
38 |
|
39 |
-
if ( is_object($form) ) {
|
40 |
$id = $form->id;
|
41 |
}
|
42 |
}
|
43 |
|
44 |
-
if ( !isset($id) ) {
|
45 |
$form = $id = false;
|
46 |
}
|
47 |
|
@@ -50,24 +50,25 @@ class FrmAppController {
|
|
50 |
|
51 |
// Adds a settings link to the plugins page
|
52 |
public static function settings_link($links){
|
53 |
-
$settings = '<a href="'. admin_url('admin.php?page=formidable-settings') .'">' . __('Settings', 'formidable') . '</a>';
|
54 |
-
array_unshift($links, $settings);
|
55 |
|
56 |
return $links;
|
57 |
}
|
58 |
|
59 |
public static function update_action_links( $actions, $plugin ) {
|
60 |
-
|
61 |
-
if (
|
62 |
return $actions;
|
|
|
63 |
|
64 |
-
$db_version = get_option('frm_db_version');
|
65 |
-
$pro_db_version = FrmAppHelper::pro_is_installed() ? get_option('frmpro_db_version') : false;
|
66 |
|
67 |
if ( ( (int) $db_version < (int) FrmAppHelper::$db_version ) ||
|
68 |
( FrmAppHelper::pro_is_installed() && (int) $pro_db_version < (int) FrmAppHelper::$pro_db_version ) ) {
|
69 |
|
70 |
-
return '<a href="'. add_query_arg(array('upgraded' => 'true'), menu_page_url( 'formidable', 0 )) .'">'. __( 'Click here to complete the upgrade', 'formidable' ) .'</a>';
|
71 |
|
72 |
}
|
73 |
|
@@ -75,10 +76,10 @@ class FrmAppController {
|
|
75 |
}
|
76 |
|
77 |
public static function pro_get_started_headline(){
|
78 |
-
if ( FrmAppHelper::is_admin_page('formidable') && isset( $_REQUEST['upgraded'] ) && 'true' == $_REQUEST['upgraded'] ) {
|
79 |
self::install();
|
80 |
?>
|
81 |
-
<div id="message" class="frm_message updated"><?php _e('Congratulations! Formidable is ready to roll.', 'formidable') ?></div>
|
82 |
<?php
|
83 |
return;
|
84 |
}
|
@@ -88,22 +89,22 @@ class FrmAppController {
|
|
88 |
return;
|
89 |
}
|
90 |
|
91 |
-
if ( is_multisite() && !current_user_can('administrator') ) {
|
92 |
return;
|
93 |
}
|
94 |
|
95 |
if ( ! isset($_GET['activate']) ) {
|
96 |
-
$db_version = get_option('frm_db_version');
|
97 |
-
$pro_db_version = FrmAppHelper::pro_is_installed() ? get_option('frmpro_db_version') : false;
|
98 |
if ( ( (int) $db_version < (int) FrmAppHelper::$db_version ) ||
|
99 |
( FrmAppHelper::pro_is_installed() && (int) $pro_db_version < (int) FrmAppHelper::$pro_db_version ) ) {
|
100 |
?>
|
101 |
-
<div class="error" id="frm_install_message"
|
102 |
<script type="text/javascript">
|
103 |
jQuery(document).ready(function($){ $(document.getElementById('frm_install_link')).click(frm_install_now); });
|
104 |
function frm_install_now(){
|
105 |
var $msg = jQuery(document.getElementById('frm_install_message'));
|
106 |
-
$msg.html('<div
|
107 |
jQuery.ajax({
|
108 |
type:"POST",url:ajaxurl,data:"action=frm_install",
|
109 |
success:function(){$msg.fadeOut('slow');}
|
@@ -115,16 +116,16 @@ function frm_install_now(){
|
|
115 |
}
|
116 |
|
117 |
global $frm_vars;
|
118 |
-
if ( $frm_vars['pro_is_authorized'] && ! file_exists(FrmAppHelper::plugin_path() . '/pro/formidable-pro.php') ) {
|
119 |
// user is authorized, but running free version
|
120 |
$inst_install_url = 'http://formidablepro.com/knowledgebase/manually-install-formidable-pro/';
|
121 |
?>
|
122 |
-
<div class="error"
|
123 |
<script type="text/javascript">
|
124 |
function frm_deauthorize_now(){
|
125 |
-
if(!confirm("<?php esc_attr_e('Are you sure you want to deauthorize Formidable
|
126 |
return false;
|
127 |
-
jQuery('.frm_deauthorize_link').html('<span class="spinner"
|
128 |
jQuery.ajax({type:'POST',url:ajaxurl,data:'action=frm_deauthorize&nonce='+wp_create_nonce('frm_ajax'),
|
129 |
success:function(msg){jQuery('.error').fadeOut('slow');}
|
130 |
});
|
@@ -142,39 +143,37 @@ return false;
|
|
142 |
return;
|
143 |
}
|
144 |
|
145 |
-
wp_register_script('bootstrap_tooltip', FrmAppHelper::plugin_url() .'/js/bootstrap.min.js', array('jquery'), '3.2
|
146 |
|
147 |
-
if ( isset($_GET) && ((isset($_GET['page']) && strpos($_GET['page'], 'formidable') === 0 ) ||
|
148 |
-
($pagenow == 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] == 'frm_display'))
|
149 |
) {
|
150 |
$version = FrmAppHelper::plugin_version();
|
151 |
-
add_filter('admin_body_class', 'FrmAppController::admin_body_class' );
|
152 |
|
153 |
-
wp_enqueue_script('jquery-ui-sortable');
|
154 |
-
wp_enqueue_script('jquery-ui-draggable');
|
155 |
-
wp_enqueue_script('admin-widgets');
|
156 |
-
wp_enqueue_style('widgets');
|
157 |
-
wp_enqueue_script('formidable');
|
158 |
-
wp_enqueue_script('formidable_admin', FrmAppHelper::plugin_url() .'/js/formidable_admin.js', array('formidable', 'jquery', 'jquery-ui-core', 'jquery-ui-draggable', 'bootstrap_tooltip'), $version, true);
|
159 |
-
self::localize_script('admin');
|
160 |
|
161 |
-
wp_enqueue_style('formidable-admin', FrmAppHelper::plugin_url() .'/css/frm_admin.css', array(), $version);
|
162 |
add_thickbox();
|
163 |
|
164 |
-
wp_register_script('formidable-editinplace', FrmAppHelper::plugin_url() .'/js/jquery/jquery.editinplace.packed.js', array('jquery'), '2.3.0');
|
165 |
-
wp_register_script('jquery-frm-themepicker', FrmAppHelper::plugin_url() .'/js/jquery/jquery-ui-themepicker.js', array('jquery'), $version);
|
166 |
|
167 |
-
if ( FrmAppHelper::is_admin_page('formidable-settings') || FrmAppHelper::is_admin_page('formidable-styles') ) {
|
168 |
// load multselect js
|
169 |
-
wp_enqueue_script('bootstrap-multiselect', FrmAppHelper::plugin_url() .'/js/bootstrap-multiselect.js', array('jquery', 'bootstrap_tooltip'), '0.9.8', true);
|
170 |
}
|
171 |
-
|
172 |
} else if ( $pagenow == 'post.php' || ($pagenow == 'post-new.php' && isset($_REQUEST['post_type']) && $_REQUEST['post_type'] == 'frm_display') ) {
|
173 |
if ( isset($_REQUEST['post_type']) ) {
|
174 |
$post_type = $_REQUEST['post_type'];
|
175 |
-
} else if ( isset($_REQUEST['post']) && !empty($_REQUEST['post']) ) {
|
176 |
-
$post = get_post($_REQUEST['post']);
|
177 |
-
if (
|
178 |
return;
|
179 |
}
|
180 |
$post_type = $post->post_type;
|
@@ -184,10 +183,10 @@ return false;
|
|
184 |
|
185 |
if ( $post_type == 'frm_display' ) {
|
186 |
$version = FrmAppHelper::plugin_version();
|
187 |
-
wp_enqueue_script('jquery-ui-draggable');
|
188 |
-
wp_enqueue_script('formidable_admin', FrmAppHelper::plugin_url() . '/js/formidable_admin.js', array('formidable', 'jquery', 'jquery-ui-draggable', 'bootstrap_tooltip'), $version);
|
189 |
-
wp_enqueue_style('formidable-admin', FrmAppHelper::plugin_url(). '/css/frm_admin.css', array(), $version);
|
190 |
-
self::localize_script('admin');
|
191 |
}
|
192 |
}
|
193 |
}
|
@@ -196,7 +195,7 @@ return false;
|
|
196 |
global $wp_version;
|
197 |
|
198 |
//we only need this class on Formidable pages
|
199 |
-
if ( version_compare( $wp_version, '3.4.9', '>') ) {
|
200 |
$classes .= ' frm_35_trigger';
|
201 |
}
|
202 |
|
@@ -206,7 +205,7 @@ return false;
|
|
206 |
public static function wp_admin_body_class($classes){
|
207 |
global $wp_version;
|
208 |
//we need this class everywhere in the admin for the menu
|
209 |
-
if ( version_compare( $wp_version, '3.7.2', '>') ) {
|
210 |
$classes .= ' frm_38_trigger';
|
211 |
}
|
212 |
|
@@ -214,7 +213,7 @@ return false;
|
|
214 |
}
|
215 |
|
216 |
public static function load_lang(){
|
217 |
-
load_plugin_textdomain('formidable', false, FrmAppHelper::plugin_folder() .'/languages/' );
|
218 |
}
|
219 |
|
220 |
/*
|
@@ -225,37 +224,40 @@ return false;
|
|
225 |
return preg_replace_callback( $regex, 'FrmAppHelper::widget_text_filter_callback', $content );
|
226 |
}
|
227 |
|
|
|
|
|
|
|
|
|
|
|
228 |
public static function front_head(){
|
229 |
-
if (is_multisite()){
|
230 |
-
$old_db_version = get_option('frm_db_version');
|
231 |
-
$pro_db_version = FrmAppHelper::pro_is_installed() ? get_option('frmpro_db_version') : false;
|
232 |
if ( ( (int) $old_db_version < (int) FrmAppHelper::$db_version ) ||
|
233 |
( FrmAppHelper::pro_is_installed() && (int) $pro_db_version < (int) FrmAppHelper::$pro_db_version ) ) {
|
234 |
-
self::install($old_db_version);
|
235 |
}
|
236 |
}
|
237 |
|
238 |
$version = FrmAppHelper::plugin_version();
|
239 |
-
wp_register_script('formidable', FrmAppHelper::plugin_url() . '/js/formidable.min.js', array('jquery'), $version, true);
|
240 |
-
wp_register_script('jquery-placeholder', FrmAppHelper::plugin_url() .'/js/jquery/jquery.placeholder.js', array('jquery'), '2.0.7', true);
|
241 |
|
242 |
if ( FrmAppHelper::is_admin() ) {
|
243 |
// don't load this in back-end
|
244 |
return;
|
245 |
}
|
246 |
|
247 |
-
self::localize_script('front');
|
248 |
-
|
249 |
-
wp_enqueue_script('jquery');
|
250 |
|
251 |
$frm_settings = FrmAppHelper::get_settings();
|
252 |
|
253 |
-
$style = apply_filters('get_frm_stylesheet',
|
254 |
-
if($style){
|
255 |
foreach ( (array) $style as $k => $file ) {
|
256 |
-
wp_register_style($k, $file, array(), $version);
|
257 |
if ( 'all' == $frm_settings->load_style ) {
|
258 |
-
wp_enqueue_style($k);
|
259 |
}
|
260 |
unset($k, $file);
|
261 |
}
|
@@ -268,46 +270,49 @@ return false;
|
|
268 |
}
|
269 |
}
|
270 |
|
|
|
|
|
|
|
271 |
public static function localize_script($location){
|
272 |
wp_localize_script('formidable', 'frm_js', array(
|
273 |
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
274 |
'images_url' => FrmAppHelper::plugin_url() .'/images',
|
275 |
-
'loading' => __('Loading…'),
|
276 |
-
'remove' => __('Remove', 'formidable'),
|
277 |
-
'offset' => apply_filters('frm_scroll_offset', 4),
|
278 |
-
'nonce' => wp_create_nonce('frm_form'),
|
279 |
));
|
280 |
|
281 |
-
if($location == 'admin'){
|
282 |
$frm_settings = FrmAppHelper::get_settings();
|
283 |
wp_localize_script('formidable_admin', 'frm_admin_js', array(
|
284 |
-
'confirm_uninstall' => __('Are you sure you want to do this? Clicking OK will delete all forms, form data, and all other Formidable data. There is no Undo.', 'formidable'),
|
285 |
'get_page' => (isset($_GET) && isset($_GET['page'])) ? $_GET['page'] : '',
|
286 |
-
'desc' => __('(Click to add description)', 'formidable'),
|
287 |
-
'blank' => __('(blank)', 'formidable'),
|
288 |
-
'no_label' => __('(no label)', 'formidable'),
|
289 |
-
'saving' => esc_attr(__('Saving', 'formidable')),
|
290 |
-
'saved' => esc_attr(__('Saved', 'formidable')),
|
291 |
-
'ok' => __('OK'),
|
292 |
-
'cancel' => __('Cancel', 'formidable'),
|
293 |
-
'clear_default' => __('Clear default value when typing', 'formidable'),
|
294 |
-
'no_clear_default' => __('Do not clear default value when typing', 'formidable'),
|
295 |
-
'valid_default' => __('Default value will pass form validation', 'formidable'),
|
296 |
-
'no_valid_default' => __('Default value will NOT pass form validation', 'formidable'),
|
297 |
-
'deauthorize' => __('Are you sure you want to deactivate Formidable
|
298 |
-
'confirm' => __('Are you sure?', 'formidable'),
|
299 |
-
'conf_delete' => __('Are you sure you want to delete this field and all data associated with it?', 'formidable'),
|
300 |
-
'conf_delete_sec' => __('WARNING: This will delete all fields inside of the section as well.', 'formidable'),
|
301 |
'default_unique' => $frm_settings->unique_msg,
|
302 |
-
'default_conf' => __('The entered values do not match', 'formidable'),
|
303 |
-
'enter_email' => __('Enter Email', 'formidable'),
|
304 |
-
'confirm_email' => __('Confirm Email', 'formidable'),
|
305 |
-
'enter_password' => __('Enter Password', 'formidable'),
|
306 |
-
'confirm_password' => __('Confirm Password', 'formidable'),
|
307 |
-
'import_complete' => __('Import Complete', 'formidable'),
|
308 |
-
'updating' => __('Please wait while your site updates.', 'formidable'),
|
309 |
-
'nonce' => wp_create_nonce('frm_ajax'),
|
310 |
-
'no_save_warning' => __('Warning: There is no way to retrieve unsaved entries.', 'formidable'),
|
311 |
'jquery_ui_url' => FrmAppHelper::jquery_ui_base_url(),
|
312 |
));
|
313 |
}
|
@@ -321,10 +326,10 @@ return false;
|
|
321 |
if ( ! isset($frm_vars['css_loaded']) || ! $frm_vars['css_loaded'] ) {
|
322 |
//include css in head
|
323 |
$uploads = FrmStylesHelper::get_upload_base();
|
324 |
-
if ( is_readable($uploads['basedir'] .'/formidable/css/formidablepro.css') ) {
|
325 |
$css_file['formidable'] = $uploads['baseurl'] .'/formidable/css/formidablepro.css';
|
326 |
} else {
|
327 |
-
$css_file['formidable'] = admin_url('admin-ajax.php') . '?action=frmpro_css';
|
328 |
}
|
329 |
}
|
330 |
|
@@ -336,60 +341,55 @@ return false;
|
|
336 |
}
|
337 |
|
338 |
public static function load_css(){
|
339 |
-
$css = get_transient('frmpro_css');
|
340 |
|
341 |
include(FrmAppHelper::plugin_path() .'/css/custom_theme.css.php');
|
342 |
die();
|
343 |
}
|
344 |
|
345 |
-
public static function footer_js($location='footer'){
|
346 |
global $frm_vars;
|
347 |
|
348 |
$frm_settings = FrmAppHelper::get_settings();
|
349 |
if ( $frm_vars['load_css'] && ! FrmAppHelper::is_admin() && $frm_settings->load_style != 'none' ) {
|
350 |
-
$css = apply_filters('get_frm_stylesheet',
|
351 |
|
352 |
-
if(!empty($css)){
|
353 |
-
echo "\n".'<script type="text/javascript">';
|
354 |
foreach ( (array) $css as $css_key => $file ) {
|
355 |
-
|
356 |
-
|
357 |
-
unset($css_key);
|
358 |
-
unset($file);
|
359 |
}
|
360 |
-
unset($css);
|
361 |
-
|
362 |
-
echo '</script>'."\n";
|
363 |
}
|
|
|
364 |
}
|
365 |
|
366 |
if ( ! FrmAppHelper::is_admin() && $location != 'header' && ! empty($frm_vars['forms_loaded']) ) {
|
367 |
//load formidable js
|
368 |
-
wp_enqueue_script('formidable');
|
369 |
}
|
370 |
}
|
371 |
|
372 |
public static function activation_install() {
|
373 |
-
FrmAppHelper::delete_cache_and_transient('frm_plugin_version');
|
374 |
FrmFormActionsController::actions_init();
|
375 |
self::install();
|
376 |
}
|
377 |
|
378 |
-
public static function install($old_db_version=false){
|
379 |
$frmdb = new FrmDb();
|
380 |
-
$frmdb->upgrade($old_db_version);
|
381 |
}
|
382 |
|
383 |
public static function uninstall(){
|
384 |
check_ajax_referer( 'frm_ajax', 'nonce' );
|
385 |
|
386 |
-
if ( current_user_can('administrator') ) {
|
387 |
$frmdb = new FrmDb();
|
388 |
$frmdb->uninstall();
|
389 |
echo true;
|
390 |
} else {
|
391 |
$frm_settings = FrmAppHelper::get_settings();
|
392 |
-
wp_die($frm_settings->admin_permission);
|
393 |
}
|
394 |
die();
|
395 |
}
|
@@ -408,7 +408,7 @@ return false;
|
|
408 |
global $post;
|
409 |
|
410 |
$frm_settings = FrmAppHelper::get_settings();
|
411 |
-
if( $post && $post->ID == $frm_settings->preview_page_id && isset($_GET['form'])){
|
412 |
$content = FrmFormsController::page_preview();
|
413 |
}
|
414 |
|
@@ -418,73 +418,76 @@ return false;
|
|
418 |
public static function referer_session() {
|
419 |
$frm_settings = FrmAppHelper::get_settings();
|
420 |
|
421 |
-
if ( !isset($frm_settings->track) ||
|
422 |
return;
|
423 |
}
|
424 |
|
425 |
// keep the page history below 100
|
426 |
$max = 100;
|
427 |
|
428 |
-
if ( !isset($_SESSION) )
|
429 |
session_start();
|
|
|
430 |
|
431 |
-
if ( ! isset($_SESSION['frm_http_pages']) || ! is_array($_SESSION['frm_http_pages']) ) {
|
432 |
$_SESSION['frm_http_pages'] = array('http://'. $_SERVER['SERVER_NAME']. $_SERVER['REQUEST_URI']);
|
433 |
}
|
434 |
|
435 |
-
if ( ! isset($_SESSION['frm_http_referer']) || ! is_array($_SESSION['frm_http_referer']) ) {
|
436 |
$_SESSION['frm_http_referer'] = array();
|
437 |
}
|
438 |
|
439 |
if ( ! isset($_SERVER['HTTP_REFERER']) ) {
|
440 |
-
$direct = __('Type-in or bookmark', 'formidable');
|
441 |
-
if(!in_array($direct, $_SESSION['frm_http_referer']))
|
442 |
$_SESSION['frm_http_referer'][] = $direct;
|
443 |
-
|
|
|
444 |
$_SESSION['frm_http_referer'][] = $_SERVER['HTTP_REFERER'];
|
445 |
}
|
446 |
|
447 |
-
if ( $_SESSION['frm_http_pages'] && ! empty($_SESSION['frm_http_pages']) && ( end($_SESSION['frm_http_pages']) != 'http://'. $_SERVER['SERVER_NAME']. $_SERVER['REQUEST_URI']) ) {
|
448 |
-
$ext = substr(strrchr(substr($_SERVER['REQUEST_URI'], 0, strrpos($_SERVER['REQUEST_URI'], '?')), '.'), 1);
|
449 |
-
if ( ! in_array($ext, array('css', 'js')) ) {
|
450 |
$_SESSION['frm_http_pages'][] = 'http://'. $_SERVER['SERVER_NAME']. $_SERVER['REQUEST_URI'];
|
451 |
}
|
452 |
}
|
453 |
|
454 |
//keep the page history below the max
|
455 |
-
if(count($_SESSION['frm_http_pages']) > $max){
|
456 |
-
foreach($_SESSION['frm_http_pages'] as $pkey => $ppage){
|
457 |
-
if(count($_SESSION['frm_http_pages']) <= $max)
|
458 |
break;
|
|
|
459 |
|
460 |
-
unset($_SESSION['frm_http_pages'][$pkey]);
|
461 |
}
|
462 |
}
|
463 |
}
|
464 |
|
465 |
public static function update_message($features){
|
466 |
_deprecated_function( __FUNCTION__, '2.0', 'FrmAppHelper::update_message' );
|
467 |
-
return FrmAppHelper::update_message($features);
|
468 |
}
|
469 |
|
470 |
public static function deauthorize(){
|
471 |
check_ajax_referer( 'frm_ajax', 'nonce' );
|
472 |
|
473 |
-
delete_option('frmpro-credentials');
|
474 |
-
delete_option('frmpro-authorized');
|
475 |
-
delete_site_option('frmpro-credentials');
|
476 |
-
delete_site_option('frmpro-authorized');
|
477 |
die();
|
478 |
}
|
479 |
|
480 |
//formidable shortcode
|
481 |
public static function get_form_shortcode($atts){
|
482 |
_deprecated_function( __FUNCTION__, '1.07.05', 'FrmFormsController::get_form_shortcode()' );
|
483 |
-
return FrmFormsController::get_form_shortcode($atts);
|
484 |
}
|
485 |
|
486 |
public static function get_postbox_class(){
|
487 |
-
_deprecated_function( __FUNCTION__, '2.0');
|
488 |
return 'postbox-container';
|
489 |
}
|
490 |
}
|
2 |
|
3 |
class FrmAppController {
|
4 |
|
5 |
+
public static function menu() {
|
6 |
+
add_filter( 'plugin_action_links_'. FrmAppHelper::plugin_folder() .'/formidable.php', 'FrmAppController::settings_link' );
|
7 |
+
add_filter( 'admin_body_class', 'FrmAppController::wp_admin_body_class' );
|
8 |
|
9 |
FrmAppHelper::maybe_add_permissions();
|
10 |
|
11 |
+
if ( ! current_user_can( 'frm_view_forms' ) ) {
|
12 |
return;
|
13 |
}
|
14 |
|
15 |
+
$count = count( get_post_types( array( 'show_ui' => true, '_builtin' => false, 'show_in_menu' => true ) ) );
|
16 |
$pos = ( (int) $count > 0 ) ? '22.7' : '29.3';
|
17 |
+
$pos = apply_filters( 'frm_menu_position', $pos );
|
18 |
|
19 |
$frm_settings = FrmAppHelper::get_settings();
|
20 |
+
add_menu_page( 'Formidable', $frm_settings->menu, 'frm_view_forms', 'formidable', 'FrmFormsController::route', FrmAppHelper::plugin_url() .'/images/form_16.png', $pos );
|
21 |
}
|
22 |
|
23 |
public static function load_wp_admin_style() {
|
24 |
+
wp_enqueue_style( 'frm_fonts', FrmAppHelper::plugin_url() .'/css/frm_fonts.css', array(), FrmAppHelper::plugin_version() );
|
25 |
}
|
26 |
|
27 |
public static function get_form_nav($form, $show_nav = '', $title = 'show') {
|
28 |
global $pagenow, $frm_vars;
|
29 |
|
30 |
+
$show_nav = FrmAppHelper::get_param( 'show_nav', $show_nav );
|
31 |
if ( empty($show_nav) ) {
|
32 |
return;
|
33 |
}
|
36 |
if ( $form ) {
|
37 |
FrmFormsHelper::maybe_get_form( $form );
|
38 |
|
39 |
+
if ( is_object( $form ) ) {
|
40 |
$id = $form->id;
|
41 |
}
|
42 |
}
|
43 |
|
44 |
+
if ( ! isset($id) ) {
|
45 |
$form = $id = false;
|
46 |
}
|
47 |
|
50 |
|
51 |
// Adds a settings link to the plugins page
|
52 |
public static function settings_link($links){
|
53 |
+
$settings = '<a href="'. admin_url( 'admin.php?page=formidable-settings' ) .'">' . __( 'Settings', 'formidable' ) . '</a>';
|
54 |
+
array_unshift( $links, $settings );
|
55 |
|
56 |
return $links;
|
57 |
}
|
58 |
|
59 |
public static function update_action_links( $actions, $plugin ) {
|
60 |
+
$frm_plugin = FrmAppHelper::plugin_folder() .'/formidable.php';
|
61 |
+
if ( $frm_plugin != $plugin ) {
|
62 |
return $actions;
|
63 |
+
}
|
64 |
|
65 |
+
$db_version = get_option( 'frm_db_version' );
|
66 |
+
$pro_db_version = FrmAppHelper::pro_is_installed() ? get_option( 'frmpro_db_version' ) : false;
|
67 |
|
68 |
if ( ( (int) $db_version < (int) FrmAppHelper::$db_version ) ||
|
69 |
( FrmAppHelper::pro_is_installed() && (int) $pro_db_version < (int) FrmAppHelper::$pro_db_version ) ) {
|
70 |
|
71 |
+
return '<a href="'. add_query_arg( array('upgraded' => 'true'), menu_page_url( 'formidable', 0 ) ) .'">'. __( 'Click here to complete the upgrade', 'formidable' ) .'</a>';
|
72 |
|
73 |
}
|
74 |
|
76 |
}
|
77 |
|
78 |
public static function pro_get_started_headline(){
|
79 |
+
if ( FrmAppHelper::is_admin_page( 'formidable' ) && isset( $_REQUEST['upgraded'] ) && 'true' == $_REQUEST['upgraded'] ) {
|
80 |
self::install();
|
81 |
?>
|
82 |
+
<div id="message" class="frm_message updated"><?php _e( 'Congratulations! Formidable is ready to roll.', 'formidable' ) ?></div>
|
83 |
<?php
|
84 |
return;
|
85 |
}
|
89 |
return;
|
90 |
}
|
91 |
|
92 |
+
if ( is_multisite() && ! current_user_can( 'administrator' ) ) {
|
93 |
return;
|
94 |
}
|
95 |
|
96 |
if ( ! isset($_GET['activate']) ) {
|
97 |
+
$db_version = get_option( 'frm_db_version' );
|
98 |
+
$pro_db_version = FrmAppHelper::pro_is_installed() ? get_option( 'frmpro_db_version' ) : false;
|
99 |
if ( ( (int) $db_version < (int) FrmAppHelper::$db_version ) ||
|
100 |
( FrmAppHelper::pro_is_installed() && (int) $pro_db_version < (int) FrmAppHelper::$pro_db_version ) ) {
|
101 |
?>
|
102 |
+
<div class="error" id="frm_install_message"><?php _e( 'Your update is not complete yet.<br/>Please deactivate and reactivate the plugin to complete the update or', 'formidable' ); ?> <a href="javascript:void(0)" id="frm_install_link"><?php _e( 'Update Now', 'formidable' ) ?></a></div>
|
103 |
<script type="text/javascript">
|
104 |
jQuery(document).ready(function($){ $(document.getElementById('frm_install_link')).click(frm_install_now); });
|
105 |
function frm_install_now(){
|
106 |
var $msg = jQuery(document.getElementById('frm_install_message'));
|
107 |
+
$msg.html('<div class="frm_plugin_updating"><?php _e( 'Please wait while your site updates.', 'formidable' ) ?><div class="spinner frm_spinner"></div></div>');
|
108 |
jQuery.ajax({
|
109 |
type:"POST",url:ajaxurl,data:"action=frm_install",
|
110 |
success:function(){$msg.fadeOut('slow');}
|
116 |
}
|
117 |
|
118 |
global $frm_vars;
|
119 |
+
if ( $frm_vars['pro_is_authorized'] && ! file_exists( FrmAppHelper::plugin_path() . '/pro/formidable-pro.php' ) ) {
|
120 |
// user is authorized, but running free version
|
121 |
$inst_install_url = 'http://formidablepro.com/knowledgebase/manually-install-formidable-pro/';
|
122 |
?>
|
123 |
+
<div class="error" class="frm_previous_install"><?php echo apply_filters( 'frm_pro_update_msg', sprintf( __( 'This site has been previously authorized to run Formidable Forms.<br/>%1$sInstall the pro version%2$s or %3$sdeauthorize%4$s this site to continue running the free version and remove this message.', 'formidable' ), '<a href="'. $inst_install_url .'" target="_blank">', '</a>', '<a href="javascript:void(0)" onclick="frm_deauthorize_now()" class="frm_deauthorize_link">', '</a>' ), $inst_install_url ); ?></div>
|
124 |
<script type="text/javascript">
|
125 |
function frm_deauthorize_now(){
|
126 |
+
if(!confirm("<?php esc_attr_e( 'Are you sure you want to deauthorize Formidable Forms on this site?', 'formidable' ) ?>"))
|
127 |
return false;
|
128 |
+
jQuery('.frm_deauthorize_link').html('<span class="spinner"></span>');
|
129 |
jQuery.ajax({type:'POST',url:ajaxurl,data:'action=frm_deauthorize&nonce='+wp_create_nonce('frm_ajax'),
|
130 |
success:function(msg){jQuery('.error').fadeOut('slow');}
|
131 |
});
|
143 |
return;
|
144 |
}
|
145 |
|
146 |
+
wp_register_script( 'bootstrap_tooltip', FrmAppHelper::plugin_url() .'/js/bootstrap.min.js', array('jquery'), '3.3.2' );
|
147 |
|
148 |
+
if ( isset($_GET) && ( ( isset($_GET['page']) && strpos( $_GET['page'], 'formidable' ) === 0 ) ||
|
149 |
+
( $pagenow == 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] == 'frm_display' ) )
|
150 |
) {
|
151 |
$version = FrmAppHelper::plugin_version();
|
152 |
+
add_filter( 'admin_body_class', 'FrmAppController::admin_body_class' );
|
153 |
|
154 |
+
wp_enqueue_script( 'jquery-ui-sortable' );
|
155 |
+
wp_enqueue_script( 'jquery-ui-draggable' );
|
156 |
+
wp_enqueue_script( 'admin-widgets' );
|
157 |
+
wp_enqueue_style( 'widgets' );
|
158 |
+
wp_enqueue_script( 'formidable' );
|
159 |
+
wp_enqueue_script( 'formidable_admin', FrmAppHelper::plugin_url() .'/js/formidable_admin.js', array('formidable', 'jquery', 'jquery-ui-core', 'jquery-ui-draggable', 'bootstrap_tooltip'), $version, true );
|
160 |
+
self::localize_script( 'admin' );
|
161 |
|
162 |
+
wp_enqueue_style( 'formidable-admin', FrmAppHelper::plugin_url() .'/css/frm_admin.css', array(), $version );
|
163 |
add_thickbox();
|
164 |
|
165 |
+
wp_register_script( 'formidable-editinplace', FrmAppHelper::plugin_url() .'/js/jquery/jquery.editinplace.packed.js', array('jquery'), '2.3.0' );
|
|
|
166 |
|
167 |
+
if ( FrmAppHelper::is_admin_page( 'formidable-settings' ) || FrmAppHelper::is_admin_page( 'formidable-styles' ) ) {
|
168 |
// load multselect js
|
169 |
+
wp_enqueue_script( 'bootstrap-multiselect', FrmAppHelper::plugin_url() .'/js/bootstrap-multiselect.js', array('jquery', 'bootstrap_tooltip'), '0.9.8', true );
|
170 |
}
|
|
|
171 |
} else if ( $pagenow == 'post.php' || ($pagenow == 'post-new.php' && isset($_REQUEST['post_type']) && $_REQUEST['post_type'] == 'frm_display') ) {
|
172 |
if ( isset($_REQUEST['post_type']) ) {
|
173 |
$post_type = $_REQUEST['post_type'];
|
174 |
+
} else if ( isset($_REQUEST['post']) && ! empty($_REQUEST['post']) ) {
|
175 |
+
$post = get_post( $_REQUEST['post'] );
|
176 |
+
if ( ! $post ) {
|
177 |
return;
|
178 |
}
|
179 |
$post_type = $post->post_type;
|
183 |
|
184 |
if ( $post_type == 'frm_display' ) {
|
185 |
$version = FrmAppHelper::plugin_version();
|
186 |
+
wp_enqueue_script( 'jquery-ui-draggable' );
|
187 |
+
wp_enqueue_script( 'formidable_admin', FrmAppHelper::plugin_url() . '/js/formidable_admin.js', array('formidable', 'jquery', 'jquery-ui-draggable', 'bootstrap_tooltip'), $version );
|
188 |
+
wp_enqueue_style( 'formidable-admin', FrmAppHelper::plugin_url(). '/css/frm_admin.css', array(), $version );
|
189 |
+
self::localize_script( 'admin' );
|
190 |
}
|
191 |
}
|
192 |
}
|
195 |
global $wp_version;
|
196 |
|
197 |
//we only need this class on Formidable pages
|
198 |
+
if ( version_compare( $wp_version, '3.4.9', '>' ) ) {
|
199 |
$classes .= ' frm_35_trigger';
|
200 |
}
|
201 |
|
205 |
public static function wp_admin_body_class($classes){
|
206 |
global $wp_version;
|
207 |
//we need this class everywhere in the admin for the menu
|
208 |
+
if ( version_compare( $wp_version, '3.7.2', '>' ) ) {
|
209 |
$classes .= ' frm_38_trigger';
|
210 |
}
|
211 |
|
213 |
}
|
214 |
|
215 |
public static function load_lang(){
|
216 |
+
load_plugin_textdomain( 'formidable', false, FrmAppHelper::plugin_folder() .'/languages/' );
|
217 |
}
|
218 |
|
219 |
/*
|
224 |
return preg_replace_callback( $regex, 'FrmAppHelper::widget_text_filter_callback', $content );
|
225 |
}
|
226 |
|
227 |
+
public static function widget_text_filter_callback( $matches ) {
|
228 |
+
_deprecated_function( __FUNCTION__, '2.0', 'FrmAppHelper::widget_text_filter_callback' );
|
229 |
+
return FrmAppHelper::widget_text_filter_callback( $matches );
|
230 |
+
}
|
231 |
+
|
232 |
public static function front_head(){
|
233 |
+
if ( is_multisite() ) {
|
234 |
+
$old_db_version = get_option( 'frm_db_version' );
|
235 |
+
$pro_db_version = FrmAppHelper::pro_is_installed() ? get_option( 'frmpro_db_version' ) : false;
|
236 |
if ( ( (int) $old_db_version < (int) FrmAppHelper::$db_version ) ||
|
237 |
( FrmAppHelper::pro_is_installed() && (int) $pro_db_version < (int) FrmAppHelper::$pro_db_version ) ) {
|
238 |
+
self::install( $old_db_version );
|
239 |
}
|
240 |
}
|
241 |
|
242 |
$version = FrmAppHelper::plugin_version();
|
243 |
+
wp_register_script( 'formidable', FrmAppHelper::plugin_url() . '/js/formidable.min.js', array('jquery'), $version, true );
|
244 |
+
wp_register_script( 'jquery-placeholder', FrmAppHelper::plugin_url() .'/js/jquery/jquery.placeholder.js', array('jquery'), '2.0.7', true );
|
245 |
|
246 |
if ( FrmAppHelper::is_admin() ) {
|
247 |
// don't load this in back-end
|
248 |
return;
|
249 |
}
|
250 |
|
251 |
+
self::localize_script( 'front' );
|
|
|
|
|
252 |
|
253 |
$frm_settings = FrmAppHelper::get_settings();
|
254 |
|
255 |
+
$style = apply_filters( 'get_frm_stylesheet', self::custom_stylesheet() );
|
256 |
+
if ( $style ) {
|
257 |
foreach ( (array) $style as $k => $file ) {
|
258 |
+
wp_register_style( $k, $file, array(), $version );
|
259 |
if ( 'all' == $frm_settings->load_style ) {
|
260 |
+
wp_enqueue_style( $k );
|
261 |
}
|
262 |
unset($k, $file);
|
263 |
}
|
270 |
}
|
271 |
}
|
272 |
|
273 |
+
/**
|
274 |
+
* @param string $location
|
275 |
+
*/
|
276 |
public static function localize_script($location){
|
277 |
wp_localize_script('formidable', 'frm_js', array(
|
278 |
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
279 |
'images_url' => FrmAppHelper::plugin_url() .'/images',
|
280 |
+
'loading' => __( 'Loading…' ),
|
281 |
+
'remove' => __( 'Remove', 'formidable' ),
|
282 |
+
'offset' => apply_filters( 'frm_scroll_offset', 4 ),
|
283 |
+
'nonce' => wp_create_nonce( 'frm_form' ),
|
284 |
));
|
285 |
|
286 |
+
if ( $location == 'admin' ) {
|
287 |
$frm_settings = FrmAppHelper::get_settings();
|
288 |
wp_localize_script('formidable_admin', 'frm_admin_js', array(
|
289 |
+
'confirm_uninstall' => __( 'Are you sure you want to do this? Clicking OK will delete all forms, form data, and all other Formidable data. There is no Undo.', 'formidable' ),
|
290 |
'get_page' => (isset($_GET) && isset($_GET['page'])) ? $_GET['page'] : '',
|
291 |
+
'desc' => __( '(Click to add description)', 'formidable' ),
|
292 |
+
'blank' => __( '(blank)', 'formidable' ),
|
293 |
+
'no_label' => __( '(no label)', 'formidable' ),
|
294 |
+
'saving' => esc_attr( __( 'Saving', 'formidable' ) ),
|
295 |
+
'saved' => esc_attr( __( 'Saved', 'formidable' ) ),
|
296 |
+
'ok' => __( 'OK' ),
|
297 |
+
'cancel' => __( 'Cancel', 'formidable' ),
|
298 |
+
'clear_default' => __( 'Clear default value when typing', 'formidable' ),
|
299 |
+
'no_clear_default' => __( 'Do not clear default value when typing', 'formidable' ),
|
300 |
+
'valid_default' => __( 'Default value will pass form validation', 'formidable' ),
|
301 |
+
'no_valid_default' => __( 'Default value will NOT pass form validation', 'formidable' ),
|
302 |
+
'deauthorize' => __( 'Are you sure you want to deactivate Formidable Forms on this site?', 'formidable' ),
|
303 |
+
'confirm' => __( 'Are you sure?', 'formidable' ),
|
304 |
+
'conf_delete' => __( 'Are you sure you want to delete this field and all data associated with it?', 'formidable' ),
|
305 |
+
'conf_delete_sec' => __( 'WARNING: This will delete all fields inside of the section as well.', 'formidable'),
|
306 |
'default_unique' => $frm_settings->unique_msg,
|
307 |
+
'default_conf' => __( 'The entered values do not match', 'formidable' ),
|
308 |
+
'enter_email' => __( 'Enter Email', 'formidable' ),
|
309 |
+
'confirm_email' => __( 'Confirm Email', 'formidable' ),
|
310 |
+
'enter_password' => __( 'Enter Password', 'formidable' ),
|
311 |
+
'confirm_password' => __( 'Confirm Password', 'formidable' ),
|
312 |
+
'import_complete' => __( 'Import Complete', 'formidable' ),
|
313 |
+
'updating' => __( 'Please wait while your site updates.', 'formidable' ),
|
314 |
+
'nonce' => wp_create_nonce( 'frm_ajax' ),
|
315 |
+
'no_save_warning' => __( 'Warning: There is no way to retrieve unsaved entries.', 'formidable' ),
|
316 |
'jquery_ui_url' => FrmAppHelper::jquery_ui_base_url(),
|
317 |
));
|
318 |
}
|
326 |
if ( ! isset($frm_vars['css_loaded']) || ! $frm_vars['css_loaded'] ) {
|
327 |
//include css in head
|
328 |
$uploads = FrmStylesHelper::get_upload_base();
|
329 |
+
if ( is_readable( $uploads['basedir'] .'/formidable/css/formidablepro.css' ) ) {
|
330 |
$css_file['formidable'] = $uploads['baseurl'] .'/formidable/css/formidablepro.css';
|
331 |
} else {
|
332 |
+
$css_file['formidable'] = admin_url( 'admin-ajax.php' ) . '?action=frmpro_css';
|
333 |
}
|
334 |
}
|
335 |
|
341 |
}
|
342 |
|
343 |
public static function load_css(){
|
344 |
+
$css = get_transient( 'frmpro_css' );
|
345 |
|
346 |
include(FrmAppHelper::plugin_path() .'/css/custom_theme.css.php');
|
347 |
die();
|
348 |
}
|
349 |
|
350 |
+
public static function footer_js( $location = 'footer' ) {
|
351 |
global $frm_vars;
|
352 |
|
353 |
$frm_settings = FrmAppHelper::get_settings();
|
354 |
if ( $frm_vars['load_css'] && ! FrmAppHelper::is_admin() && $frm_settings->load_style != 'none' ) {
|
355 |
+
$css = apply_filters( 'get_frm_stylesheet', self::custom_stylesheet() );
|
356 |
|
357 |
+
if ( ! empty($css) ) {
|
|
|
358 |
foreach ( (array) $css as $css_key => $file ) {
|
359 |
+
wp_enqueue_style( $css_key );
|
360 |
+
unset($css_key, $file);
|
|
|
|
|
361 |
}
|
|
|
|
|
|
|
362 |
}
|
363 |
+
unset($css);
|
364 |
}
|
365 |
|
366 |
if ( ! FrmAppHelper::is_admin() && $location != 'header' && ! empty($frm_vars['forms_loaded']) ) {
|
367 |
//load formidable js
|
368 |
+
wp_enqueue_script( 'formidable' );
|
369 |
}
|
370 |
}
|
371 |
|
372 |
public static function activation_install() {
|
373 |
+
FrmAppHelper::delete_cache_and_transient( 'frm_plugin_version' );
|
374 |
FrmFormActionsController::actions_init();
|
375 |
self::install();
|
376 |
}
|
377 |
|
378 |
+
public static function install( $old_db_version = false ) {
|
379 |
$frmdb = new FrmDb();
|
380 |
+
$frmdb->upgrade( $old_db_version );
|
381 |
}
|
382 |
|
383 |
public static function uninstall(){
|
384 |
check_ajax_referer( 'frm_ajax', 'nonce' );
|
385 |
|
386 |
+
if ( current_user_can( 'administrator' ) ) {
|
387 |
$frmdb = new FrmDb();
|
388 |
$frmdb->uninstall();
|
389 |
echo true;
|
390 |
} else {
|
391 |
$frm_settings = FrmAppHelper::get_settings();
|
392 |
+
wp_die( $frm_settings->admin_permission );
|
393 |
}
|
394 |
die();
|
395 |
}
|
408 |
global $post;
|
409 |
|
410 |
$frm_settings = FrmAppHelper::get_settings();
|
411 |
+
if ( $post && $post->ID == $frm_settings->preview_page_id && isset($_GET['form']) ) {
|
412 |
$content = FrmFormsController::page_preview();
|
413 |
}
|
414 |
|
418 |
public static function referer_session() {
|
419 |
$frm_settings = FrmAppHelper::get_settings();
|
420 |
|
421 |
+
if ( ! isset($frm_settings->track) || ! $frm_settings->track || defined( 'WP_IMPORTING' ) ) {
|
422 |
return;
|
423 |
}
|
424 |
|
425 |
// keep the page history below 100
|
426 |
$max = 100;
|
427 |
|
428 |
+
if ( ! isset($_SESSION) ) {
|
429 |
session_start();
|
430 |
+
}
|
431 |
|
432 |
+
if ( ! isset($_SESSION['frm_http_pages']) || ! is_array( $_SESSION['frm_http_pages'] ) ) {
|
433 |
$_SESSION['frm_http_pages'] = array('http://'. $_SERVER['SERVER_NAME']. $_SERVER['REQUEST_URI']);
|
434 |
}
|
435 |
|
436 |
+
if ( ! isset($_SESSION['frm_http_referer']) || ! is_array( $_SESSION['frm_http_referer'] ) ) {
|
437 |
$_SESSION['frm_http_referer'] = array();
|
438 |
}
|
439 |
|
440 |
if ( ! isset($_SERVER['HTTP_REFERER']) ) {
|
441 |
+
$direct = __( 'Type-in or bookmark', 'formidable' );
|
442 |
+
if ( ! in_array( $direct, $_SESSION['frm_http_referer'] ) ) {
|
443 |
$_SESSION['frm_http_referer'][] = $direct;
|
444 |
+
}
|
445 |
+
} else if ( strpos($_SERVER['HTTP_REFERER'], FrmAppHelper::site_url()) === false && ! in_array( $_SERVER['HTTP_REFERER'], $_SESSION['frm_http_referer'] ) ) {
|
446 |
$_SESSION['frm_http_referer'][] = $_SERVER['HTTP_REFERER'];
|
447 |
}
|
448 |
|
449 |
+
if ( $_SESSION['frm_http_pages'] && ! empty($_SESSION['frm_http_pages']) && ( end( $_SESSION['frm_http_pages'] ) != 'http://'. $_SERVER['SERVER_NAME']. $_SERVER['REQUEST_URI']) ) {
|
450 |
+
$ext = substr( strrchr( substr( $_SERVER['REQUEST_URI'], 0, strrpos( $_SERVER['REQUEST_URI'], '?' ) ), '.' ), 1 );
|
451 |
+
if ( ! in_array( $ext, array('css', 'js') ) ) {
|
452 |
$_SESSION['frm_http_pages'][] = 'http://'. $_SERVER['SERVER_NAME']. $_SERVER['REQUEST_URI'];
|
453 |
}
|
454 |
}
|
455 |
|
456 |
//keep the page history below the max
|
457 |
+
if ( count( $_SESSION['frm_http_pages'] ) > $max ) {
|
458 |
+
foreach ( $_SESSION['frm_http_pages'] as $pkey => $ppage ) {
|
459 |
+
if ( count( $_SESSION['frm_http_pages'] ) <= $max ) {
|
460 |
break;
|
461 |
+
}
|
462 |
|
463 |
+
unset($_SESSION['frm_http_pages'][ $pkey ]);
|
464 |
}
|
465 |
}
|
466 |
}
|
467 |
|
468 |
public static function update_message($features){
|
469 |
_deprecated_function( __FUNCTION__, '2.0', 'FrmAppHelper::update_message' );
|
470 |
+
return FrmAppHelper::update_message( $features );
|
471 |
}
|
472 |
|
473 |
public static function deauthorize(){
|
474 |
check_ajax_referer( 'frm_ajax', 'nonce' );
|
475 |
|
476 |
+
delete_option( 'frmpro-credentials' );
|
477 |
+
delete_option( 'frmpro-authorized' );
|
478 |
+
delete_site_option( 'frmpro-credentials' );
|
479 |
+
delete_site_option( 'frmpro-authorized' );
|
480 |
die();
|
481 |
}
|
482 |
|
483 |
//formidable shortcode
|
484 |
public static function get_form_shortcode($atts){
|
485 |
_deprecated_function( __FUNCTION__, '1.07.05', 'FrmFormsController::get_form_shortcode()' );
|
486 |
+
return FrmFormsController::get_form_shortcode( $atts );
|
487 |
}
|
488 |
|
489 |
public static function get_postbox_class(){
|
490 |
+
_deprecated_function( __FUNCTION__, '2.0' );
|
491 |
return 'postbox-container';
|
492 |
}
|
493 |
}
|
classes/controllers/FrmEntriesController.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
class FrmEntriesController{
|
4 |
|
5 |
public static function menu() {
|
6 |
if ( current_user_can('administrator') && !current_user_can('frm_view_entries') ) {
|
@@ -9,11 +9,10 @@ class FrmEntriesController{
|
|
9 |
$wp_roles->add_cap( 'administrator', 'frm_delete_entries' );
|
10 |
}
|
11 |
|
12 |
-
|
13 |
-
|
14 |
-
add_submenu_page('formidable', $frm_settings->menu .' | '. __('Entries', 'formidable'), __('Entries', 'formidable'), 'frm_view_entries', 'formidable-entries', 'FrmEntriesController::route' );
|
15 |
|
16 |
if ( ! isset($_GET['frm_action']) || ! in_array($_GET['frm_action'], array('edit', 'show')) ) {
|
|
|
17 |
add_filter('manage_'. sanitize_title($frm_settings->menu) .'_page_formidable-entries_columns', 'FrmEntriesController::manage_columns' );
|
18 |
add_filter('manage_'. sanitize_title($frm_settings->menu) .'_page_formidable-entries_sortable_columns', 'FrmEntriesController::sortable_columns' );
|
19 |
add_filter('get_user_option_manage'. sanitize_title($frm_settings->menu) .'_page_formidable-entriescolumnshidden', 'FrmEntriesController::hidden_columns' );
|
@@ -70,8 +69,8 @@ class FrmEntriesController{
|
|
70 |
global $frm_vars, $wpdb;
|
71 |
$form_id = FrmEntriesHelper::get_current_form_id();
|
72 |
|
73 |
-
$columns[$form_id .'_id'] = 'ID';
|
74 |
-
$columns[$form_id .'_item_key'] = __('Entry Key', 'formidable');
|
75 |
|
76 |
if ( ! $form_id ) {
|
77 |
return $columns;
|
@@ -84,35 +83,36 @@ class FrmEntriesController{
|
|
84 |
continue;
|
85 |
}
|
86 |
|
87 |
-
if ( isset($form_col->field_options['
|
88 |
-
$columns[$form_id .'_frmsep_'. $form_col->field_key] = FrmAppHelper::truncate($form_col->name, 35);
|
89 |
-
}
|
90 |
-
|
91 |
-
if ( $form_col->type == 'form' && isset($form_col->field_options['form_select']) && !empty($form_col->field_options['form_select']) ) {
|
92 |
$sub_form_cols = FrmField::get_all_for_form($form_col->field_options['form_select']);
|
93 |
|
94 |
if ( $sub_form_cols ) {
|
95 |
foreach ( $sub_form_cols as $k => $sub_form_col ) {
|
96 |
if ( in_array($sub_form_col->type, FrmFieldsHelper::no_save_fields()) ) {
|
97 |
-
unset($sub_form_cols[$k]);
|
98 |
continue;
|
99 |
}
|
100 |
-
$columns[$form_id .'_'. $sub_form_col->field_key .'-_-'. $form_col->id] = FrmAppHelper::truncate($sub_form_col->name, 35);
|
101 |
unset($sub_form_col);
|
102 |
}
|
103 |
}
|
104 |
unset($sub_form_cols);
|
105 |
-
} else if ( $form_col->form_id != $form_id ) {
|
106 |
-
$columns[$form_id .'_'. $form_col->field_key .'-_-form'. $form_col->form_id] = FrmAppHelper::truncate($form_col->name, 35);
|
107 |
} else {
|
108 |
-
$
|
109 |
-
|
|
|
|
|
110 |
|
|
|
|
|
|
|
|
|
|
|
111 |
}
|
112 |
|
113 |
-
$columns[$form_id .'_created_at'] = __('Entry creation date', 'formidable');
|
114 |
-
$columns[$form_id .'_updated_at'] = __('Entry update date', 'formidable');
|
115 |
-
$columns[$form_id .'_ip'] = 'IP';
|
116 |
|
117 |
$frm_vars['cols'] = $columns;
|
118 |
|
@@ -143,18 +143,21 @@ class FrmEntriesController{
|
|
143 |
public static function update_hidden_cols($meta_id, $object_id, $meta_key, $meta_value ){
|
144 |
$frm_settings = FrmAppHelper::get_settings();
|
145 |
|
146 |
-
|
|
|
147 |
return;
|
|
|
148 |
|
149 |
global $frm_vars;
|
150 |
if ( ! isset($frm_vars['prev_hidden_cols']) || ! $frm_vars['prev_hidden_cols'] ) {
|
151 |
return; //don't continue if there's no previous value
|
152 |
}
|
153 |
|
154 |
-
foreach($meta_value as $mk => $mv){
|
155 |
//remove blank values
|
156 |
-
if(empty($mv))
|
157 |
-
unset($meta_value[$mk]);
|
|
|
158 |
}
|
159 |
|
160 |
$cur_form_prefix = reset($meta_value);
|
@@ -170,8 +173,10 @@ class FrmEntriesController{
|
|
170 |
|
171 |
$form_prefix = explode('_', $prev_hidden);
|
172 |
$form_prefix = $form_prefix[0];
|
173 |
-
if($form_prefix == $cur_form_prefix)
|
|
|
174 |
continue;
|
|
|
175 |
|
176 |
$meta_value[] = $prev_hidden;
|
177 |
$save = true;
|
@@ -180,7 +185,7 @@ class FrmEntriesController{
|
|
180 |
|
181 |
if($save){
|
182 |
$user = wp_get_current_user();
|
183 |
-
update_user_option($user->ID, 'manage'.
|
184 |
}
|
185 |
}
|
186 |
|
@@ -244,10 +249,11 @@ class FrmEntriesController{
|
|
244 |
return $result;
|
245 |
|
246 |
global $frm_vars;
|
247 |
-
if(isset($frm_vars['current_form'])
|
248 |
$frm_vars['current_form']->options = maybe_unserialize($frm_vars['current_form']->options);
|
|
|
249 |
|
250 |
-
if(isset($frm_vars['current_form'])
|
251 |
$result = $frm_vars['current_form']->options['hidden_cols'];
|
252 |
}else{
|
253 |
$cols = $frm_vars['cols'];
|
@@ -263,8 +269,7 @@ class FrmEntriesController{
|
|
263 |
if($i > $max_columns)
|
264 |
$result[] = $col_key; //remove some columns by default
|
265 |
$i--;
|
266 |
-
unset($col_key);
|
267 |
-
unset($col);
|
268 |
}
|
269 |
}
|
270 |
|
@@ -418,13 +423,15 @@ class FrmEntriesController{
|
|
418 |
global $frm_vars;
|
419 |
|
420 |
$form = FrmForm::getOne($_POST['form_id']);
|
421 |
-
if(
|
422 |
return;
|
|
|
423 |
|
424 |
$params = self::get_params($form);
|
425 |
|
426 |
-
if(!isset($frm_vars['form_params']))
|
427 |
$frm_vars['form_params'] = array();
|
|
|
428 |
$frm_vars['form_params'][$form->id] = $params;
|
429 |
|
430 |
if(isset($frm_vars['created_entries'][$_POST['form_id']]))
|
@@ -459,8 +466,9 @@ class FrmEntriesController{
|
|
459 |
}
|
460 |
|
461 |
private static function _delete_entry($entry_id, $form){
|
462 |
-
if(
|
463 |
return;
|
|
|
464 |
|
465 |
$form->options = maybe_unserialize($form->options);
|
466 |
if ( isset($form->options['no_save']) && $form->options['no_save'] ) {
|
@@ -512,6 +520,8 @@ class FrmEntriesController{
|
|
512 |
|
513 |
if ( $atts['format'] == 'json' ) {
|
514 |
return json_encode($values);
|
|
|
|
|
515 |
}
|
516 |
|
517 |
$content = array();
|
@@ -605,8 +615,9 @@ class FrmEntriesController{
|
|
605 |
|
606 |
$values = array();
|
607 |
$values['posted_form_id'] = FrmAppHelper::get_param('form_id');
|
608 |
-
if (!is_numeric($values['posted_form_id']))
|
609 |
$values['posted_form_id'] = FrmAppHelper::get_param('form');
|
|
|
610 |
|
611 |
if ($form->id == $values['posted_form_id']){ //if there are two forms on the same page, make sure not to submit both
|
612 |
foreach ($default_values as $var => $default){
|
@@ -632,4 +643,12 @@ class FrmEntriesController{
|
|
632 |
return $values;
|
633 |
}
|
634 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
635 |
}
|
1 |
<?php
|
2 |
|
3 |
+
class FrmEntriesController {
|
4 |
|
5 |
public static function menu() {
|
6 |
if ( current_user_can('administrator') && !current_user_can('frm_view_entries') ) {
|
9 |
$wp_roles->add_cap( 'administrator', 'frm_delete_entries' );
|
10 |
}
|
11 |
|
12 |
+
add_submenu_page('formidable', 'Formidable | '. __('Entries', 'formidable'), __('Entries', 'formidable'), 'frm_view_entries', 'formidable-entries', 'FrmEntriesController::route' );
|
|
|
|
|
13 |
|
14 |
if ( ! isset($_GET['frm_action']) || ! in_array($_GET['frm_action'], array('edit', 'show')) ) {
|
15 |
+
$frm_settings = FrmAppHelper::get_settings();
|
16 |
add_filter('manage_'. sanitize_title($frm_settings->menu) .'_page_formidable-entries_columns', 'FrmEntriesController::manage_columns' );
|
17 |
add_filter('manage_'. sanitize_title($frm_settings->menu) .'_page_formidable-entries_sortable_columns', 'FrmEntriesController::sortable_columns' );
|
18 |
add_filter('get_user_option_manage'. sanitize_title($frm_settings->menu) .'_page_formidable-entriescolumnshidden', 'FrmEntriesController::hidden_columns' );
|
69 |
global $frm_vars, $wpdb;
|
70 |
$form_id = FrmEntriesHelper::get_current_form_id();
|
71 |
|
72 |
+
$columns[ $form_id .'_id' ] = 'ID';
|
73 |
+
$columns[ $form_id .'_item_key' ] = __('Entry Key', 'formidable');
|
74 |
|
75 |
if ( ! $form_id ) {
|
76 |
return $columns;
|
83 |
continue;
|
84 |
}
|
85 |
|
86 |
+
if ( $form_col->type == 'form' && isset( $form_col->field_options['form_select'] ) && ! empty( $form_col->field_options['form_select'] ) ) {
|
|
|
|
|
|
|
|
|
87 |
$sub_form_cols = FrmField::get_all_for_form($form_col->field_options['form_select']);
|
88 |
|
89 |
if ( $sub_form_cols ) {
|
90 |
foreach ( $sub_form_cols as $k => $sub_form_col ) {
|
91 |
if ( in_array($sub_form_col->type, FrmFieldsHelper::no_save_fields()) ) {
|
92 |
+
unset( $sub_form_cols[ $k ] );
|
93 |
continue;
|
94 |
}
|
95 |
+
$columns[ $form_id .'_'. $sub_form_col->field_key .'-_-'. $form_col->id ] = FrmAppHelper::truncate( $sub_form_col->name, 35 );
|
96 |
unset($sub_form_col);
|
97 |
}
|
98 |
}
|
99 |
unset($sub_form_cols);
|
|
|
|
|
100 |
} else {
|
101 |
+
$col_id = $form_col->field_key;
|
102 |
+
if ( $form_col->form_id != $form_id ) {
|
103 |
+
$col_id .= '-_-form'. $form_col->form_id;
|
104 |
+
}
|
105 |
|
106 |
+
if ( isset($form_col->field_options['separate_value']) && $form_col->field_options['separate_value'] ) {
|
107 |
+
$columns[ $form_id .'_frmsep_'. $col_id ] = FrmAppHelper::truncate( $form_col->name, 35 );
|
108 |
+
}
|
109 |
+
$columns[ $form_id .'_'. $col_id ] = FrmAppHelper::truncate( $form_col->name, 35 );
|
110 |
+
}
|
111 |
}
|
112 |
|
113 |
+
$columns[ $form_id .'_created_at' ] = __( 'Entry creation date', 'formidable' );
|
114 |
+
$columns[ $form_id .'_updated_at' ] = __( 'Entry update date', 'formidable' );
|
115 |
+
$columns[ $form_id .'_ip' ] = 'IP';
|
116 |
|
117 |
$frm_vars['cols'] = $columns;
|
118 |
|
143 |
public static function update_hidden_cols($meta_id, $object_id, $meta_key, $meta_value ){
|
144 |
$frm_settings = FrmAppHelper::get_settings();
|
145 |
|
146 |
+
$sanitized = sanitize_title($frm_settings->menu);
|
147 |
+
if ( $meta_key != 'manage'. $sanitized .'_page_formidable-entriescolumnshidden' ) {
|
148 |
return;
|
149 |
+
}
|
150 |
|
151 |
global $frm_vars;
|
152 |
if ( ! isset($frm_vars['prev_hidden_cols']) || ! $frm_vars['prev_hidden_cols'] ) {
|
153 |
return; //don't continue if there's no previous value
|
154 |
}
|
155 |
|
156 |
+
foreach ( $meta_value as $mk => $mv ) {
|
157 |
//remove blank values
|
158 |
+
if ( empty( $mv ) ) {
|
159 |
+
unset( $meta_value[ $mk ] );
|
160 |
+
}
|
161 |
}
|
162 |
|
163 |
$cur_form_prefix = reset($meta_value);
|
173 |
|
174 |
$form_prefix = explode('_', $prev_hidden);
|
175 |
$form_prefix = $form_prefix[0];
|
176 |
+
if ( $form_prefix == $cur_form_prefix ) {
|
177 |
+
//don't add back columns that are meant to be hidden
|
178 |
continue;
|
179 |
+
}
|
180 |
|
181 |
$meta_value[] = $prev_hidden;
|
182 |
$save = true;
|
185 |
|
186 |
if($save){
|
187 |
$user = wp_get_current_user();
|
188 |
+
update_user_option( $user->ID, 'manage'. $sanitized .'_page_formidable-entriescolumnshidden', $meta_value, true );
|
189 |
}
|
190 |
}
|
191 |
|
249 |
return $result;
|
250 |
|
251 |
global $frm_vars;
|
252 |
+
if ( isset($frm_vars['current_form']) && $frm_vars['current_form'] ) {
|
253 |
$frm_vars['current_form']->options = maybe_unserialize($frm_vars['current_form']->options);
|
254 |
+
}
|
255 |
|
256 |
+
if ( isset($frm_vars['current_form']) && $frm_vars['current_form'] && isset($frm_vars['current_form']->options['hidden_cols']) && ! empty($frm_vars['current_form']->options['hidden_cols']) ) {
|
257 |
$result = $frm_vars['current_form']->options['hidden_cols'];
|
258 |
}else{
|
259 |
$cols = $frm_vars['cols'];
|
269 |
if($i > $max_columns)
|
270 |
$result[] = $col_key; //remove some columns by default
|
271 |
$i--;
|
272 |
+
unset($col_key, $col);
|
|
|
273 |
}
|
274 |
}
|
275 |
|
423 |
global $frm_vars;
|
424 |
|
425 |
$form = FrmForm::getOne($_POST['form_id']);
|
426 |
+
if ( ! $form ) {
|
427 |
return;
|
428 |
+
}
|
429 |
|
430 |
$params = self::get_params($form);
|
431 |
|
432 |
+
if ( ! isset($frm_vars['form_params']) ) {
|
433 |
$frm_vars['form_params'] = array();
|
434 |
+
}
|
435 |
$frm_vars['form_params'][$form->id] = $params;
|
436 |
|
437 |
if(isset($frm_vars['created_entries'][$_POST['form_id']]))
|
466 |
}
|
467 |
|
468 |
private static function _delete_entry($entry_id, $form){
|
469 |
+
if ( ! $form ) {
|
470 |
return;
|
471 |
+
}
|
472 |
|
473 |
$form->options = maybe_unserialize($form->options);
|
474 |
if ( isset($form->options['no_save']) && $form->options['no_save'] ) {
|
520 |
|
521 |
if ( $atts['format'] == 'json' ) {
|
522 |
return json_encode($values);
|
523 |
+
} else if ( $atts['format'] == 'array' ) {
|
524 |
+
return $values;
|
525 |
}
|
526 |
|
527 |
$content = array();
|
615 |
|
616 |
$values = array();
|
617 |
$values['posted_form_id'] = FrmAppHelper::get_param('form_id');
|
618 |
+
if ( ! is_numeric($values['posted_form_id']) ) {
|
619 |
$values['posted_form_id'] = FrmAppHelper::get_param('form');
|
620 |
+
}
|
621 |
|
622 |
if ($form->id == $values['posted_form_id']){ //if there are two forms on the same page, make sure not to submit both
|
623 |
foreach ($default_values as $var => $default){
|
643 |
return $values;
|
644 |
}
|
645 |
|
646 |
+
public static function entry_sidebar($entry) {
|
647 |
+
$data = maybe_unserialize($entry->description);
|
648 |
+
$date_format = get_option('date_format');
|
649 |
+
$time_format = get_option('time_format');
|
650 |
+
|
651 |
+
include(FrmAppHelper::plugin_path() .'/classes/views/frm-entries/sidebar-shared.php');
|
652 |
+
}
|
653 |
+
|
654 |
}
|
classes/controllers/FrmFieldsController.php
CHANGED
@@ -19,10 +19,14 @@ class FrmFieldsController{
|
|
19 |
foreach ( $fields as $field ) {
|
20 |
$field = htmlspecialchars_decode(nl2br($field));
|
21 |
$field = json_decode($field, true);
|
|
|
|
|
|
|
|
|
22 |
|
23 |
$field_id = $field['id'];
|
24 |
|
25 |
-
if ( !isset($field['value']) ) {
|
26 |
$field['value'] = '';
|
27 |
}
|
28 |
|
@@ -77,7 +81,7 @@ class FrmFieldsController{
|
|
77 |
|
78 |
$field_id = (int) $_POST['field'];
|
79 |
$form_id = (int) $_POST['form_id'];
|
80 |
-
if (
|
81 |
return;
|
82 |
}
|
83 |
|
@@ -263,7 +267,7 @@ class FrmFieldsController{
|
|
263 |
$label = isset($this_opt['label']) ? $this_opt['label'] : reset($this_opt);
|
264 |
$value = isset($this_opt['value']) ? $this_opt['value'] : '';
|
265 |
|
266 |
-
if ( !isset($new_label) ) {
|
267 |
$new_label = $label;
|
268 |
}
|
269 |
|
@@ -290,21 +294,20 @@ class FrmFieldsController{
|
|
290 |
$response = array( 'other' => true );
|
291 |
|
292 |
//If the deleted option is an "other" option
|
293 |
-
if (
|
294 |
//Assume all other options are gone, unless proven otherwise
|
295 |
$other = false;
|
296 |
|
297 |
-
//Check if all other options are really gone
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
break;
|
304 |
-
}
|
305 |
-
unset( $o_key, $o_val );
|
306 |
}
|
|
|
307 |
}
|
|
|
308 |
//If all other options are gone
|
309 |
if ( false === $other ) {
|
310 |
$field_options = maybe_unserialize( $field->field_options );
|
@@ -424,8 +427,7 @@ class FrmFieldsController{
|
|
424 |
}
|
425 |
unset($vals);
|
426 |
}
|
427 |
-
unset($opt_key);
|
428 |
-
unset($opt);
|
429 |
}
|
430 |
}
|
431 |
|
@@ -436,9 +438,9 @@ class FrmFieldsController{
|
|
436 |
if ( $opt_key && strpos( $opt_key, 'other' ) !== false ) {
|
437 |
$other_array[$opt_key] = $opt;
|
438 |
}
|
439 |
-
unset($opt_key
|
440 |
}
|
441 |
-
if ( $other_array ) {
|
442 |
$opts = array_merge( $opts, $other_array);
|
443 |
}
|
444 |
}
|
19 |
foreach ( $fields as $field ) {
|
20 |
$field = htmlspecialchars_decode(nl2br($field));
|
21 |
$field = json_decode($field, true);
|
22 |
+
if ( ! isset($field['id']) ) {
|
23 |
+
// this field may have already been loaded
|
24 |
+
continue;
|
25 |
+
}
|
26 |
|
27 |
$field_id = $field['id'];
|
28 |
|
29 |
+
if ( ! isset( $field['value'] ) ) {
|
30 |
$field['value'] = '';
|
31 |
}
|
32 |
|
81 |
|
82 |
$field_id = (int) $_POST['field'];
|
83 |
$form_id = (int) $_POST['form_id'];
|
84 |
+
if ( ! $field_id || ! $form_id ) {
|
85 |
return;
|
86 |
}
|
87 |
|
267 |
$label = isset($this_opt['label']) ? $this_opt['label'] : reset($this_opt);
|
268 |
$value = isset($this_opt['value']) ? $this_opt['value'] : '';
|
269 |
|
270 |
+
if ( ! isset( $new_label ) ) {
|
271 |
$new_label = $label;
|
272 |
}
|
273 |
|
294 |
$response = array( 'other' => true );
|
295 |
|
296 |
//If the deleted option is an "other" option
|
297 |
+
if ( FrmAppHelper::is_other_opt( $opt_key ) ) {
|
298 |
//Assume all other options are gone, unless proven otherwise
|
299 |
$other = false;
|
300 |
|
301 |
+
//Check if all other options are really gone
|
302 |
+
foreach ( $options as $o_key => $o_val ) {
|
303 |
+
//If there is still an other option in the field, set other to true
|
304 |
+
if ( FrmAppHelper::is_other_opt( $o_key ) ) {
|
305 |
+
$other = true;
|
306 |
+
break;
|
|
|
|
|
|
|
307 |
}
|
308 |
+
unset( $o_key, $o_val );
|
309 |
}
|
310 |
+
|
311 |
//If all other options are gone
|
312 |
if ( false === $other ) {
|
313 |
$field_options = maybe_unserialize( $field->field_options );
|
427 |
}
|
428 |
unset($vals);
|
429 |
}
|
430 |
+
unset($opt_key, $opt);
|
|
|
431 |
}
|
432 |
}
|
433 |
|
438 |
if ( $opt_key && strpos( $opt_key, 'other' ) !== false ) {
|
439 |
$other_array[$opt_key] = $opt;
|
440 |
}
|
441 |
+
unset($opt_key, $opt);
|
442 |
}
|
443 |
+
if ( ! empty($other_array) ) {
|
444 |
$opts = array_merge( $opts, $other_array);
|
445 |
}
|
446 |
}
|
classes/controllers/FrmFormActionsController.php
CHANGED
@@ -26,10 +26,13 @@ class FrmFormActionsController{
|
|
26 |
* menu_order: form id
|
27 |
* post_excerpt: action type
|
28 |
*/
|
|
|
|
|
29 |
}
|
30 |
|
31 |
public static function actions_init() {
|
32 |
self::$registered_actions = new Frm_Form_Action_Factory();
|
|
|
33 |
do_action( 'frm_form_actions_init' );
|
34 |
}
|
35 |
|
@@ -112,7 +115,7 @@ class FrmFormActionsController{
|
|
112 |
}
|
113 |
|
114 |
foreach ( $form_actions as $action ) {
|
115 |
-
if ( !isset($action_map[$action->post_excerpt]) ) {
|
116 |
// don't try and show settings if action no longer exists
|
117 |
continue;
|
118 |
}
|
@@ -174,7 +177,7 @@ class FrmFormActionsController{
|
|
174 |
$f = (array) $f;
|
175 |
$opts = (array) $f['field_options'];
|
176 |
$f = array_merge($opts, $f);
|
177 |
-
if ( !isset($f['post_field']) ) {
|
178 |
$f['post_field'] = '';
|
179 |
}
|
180 |
$values['fields'][] = $f;
|
@@ -189,7 +192,7 @@ class FrmFormActionsController{
|
|
189 |
|
190 |
$registered_actions = self::$registered_actions->actions;
|
191 |
|
192 |
-
$old_actions = $wpdb->get_col($wpdb->prepare(
|
193 |
$new_actions = array();
|
194 |
|
195 |
foreach ( $registered_actions as $registered_action ) {
|
@@ -217,6 +220,9 @@ class FrmFormActionsController{
|
|
217 |
self::trigger_actions('create', $form_id, $entry_id);
|
218 |
}
|
219 |
|
|
|
|
|
|
|
220 |
public static function trigger_actions($event, $form, $entry, $type = 'all') {
|
221 |
$form_actions = FrmFormActionsHelper::get_action_for_form((is_object($form) ? $form->id : $form), $type);
|
222 |
|
@@ -291,7 +297,7 @@ class FrmFormActionsController{
|
|
291 |
return;
|
292 |
}
|
293 |
|
294 |
-
$action_controls =
|
295 |
|
296 |
foreach ( $action_controls as $action_control ) {
|
297 |
$action_control->duplicate_form_actions($form_id, $args['old_id']);
|
@@ -302,7 +308,7 @@ class FrmFormActionsController{
|
|
302 |
public static function limit_by_type( $where ) {
|
303 |
global $frm_vars, $wpdb;
|
304 |
|
305 |
-
if ( !isset($frm_vars['action_type']) ) {
|
306 |
return $where;
|
307 |
}
|
308 |
|
@@ -335,7 +341,7 @@ class Frm_Form_Action_Factory {
|
|
335 |
|
336 |
foreach ( $keys as $key ) {
|
337 |
// don't register new action if old action with the same id is already registered
|
338 |
-
if ( !isset($this->actions[$key]) ) {
|
339 |
$this->actions[$key]->_register();
|
340 |
}
|
341 |
}
|
26 |
* menu_order: form id
|
27 |
* post_excerpt: action type
|
28 |
*/
|
29 |
+
|
30 |
+
self::actions_init();
|
31 |
}
|
32 |
|
33 |
public static function actions_init() {
|
34 |
self::$registered_actions = new Frm_Form_Action_Factory();
|
35 |
+
self::register_actions();
|
36 |
do_action( 'frm_form_actions_init' );
|
37 |
}
|
38 |
|
115 |
}
|
116 |
|
117 |
foreach ( $form_actions as $action ) {
|
118 |
+
if ( ! isset( $action_map[ $action->post_excerpt ] ) ) {
|
119 |
// don't try and show settings if action no longer exists
|
120 |
continue;
|
121 |
}
|
177 |
$f = (array) $f;
|
178 |
$opts = (array) $f['field_options'];
|
179 |
$f = array_merge($opts, $f);
|
180 |
+
if ( ! isset( $f['post_field'] ) ) {
|
181 |
$f['post_field'] = '';
|
182 |
}
|
183 |
$values['fields'][] = $f;
|
192 |
|
193 |
$registered_actions = self::$registered_actions->actions;
|
194 |
|
195 |
+
$old_actions = $wpdb->get_col($wpdb->prepare('SELECT ID FROM '. $wpdb->posts .' WHERE post_type=%s AND menu_order=%d', self::$action_post_type, $form_id));
|
196 |
$new_actions = array();
|
197 |
|
198 |
foreach ( $registered_actions as $registered_action ) {
|
220 |
self::trigger_actions('create', $form_id, $entry_id);
|
221 |
}
|
222 |
|
223 |
+
/**
|
224 |
+
* @param string $event
|
225 |
+
*/
|
226 |
public static function trigger_actions($event, $form, $entry, $type = 'all') {
|
227 |
$form_actions = FrmFormActionsHelper::get_action_for_form((is_object($form) ? $form->id : $form), $type);
|
228 |
|
297 |
return;
|
298 |
}
|
299 |
|
300 |
+
$action_controls = self::get_form_actions( );
|
301 |
|
302 |
foreach ( $action_controls as $action_control ) {
|
303 |
$action_control->duplicate_form_actions($form_id, $args['old_id']);
|
308 |
public static function limit_by_type( $where ) {
|
309 |
global $frm_vars, $wpdb;
|
310 |
|
311 |
+
if ( ! isset( $frm_vars['action_type'] ) ) {
|
312 |
return $where;
|
313 |
}
|
314 |
|
341 |
|
342 |
foreach ( $keys as $key ) {
|
343 |
// don't register new action if old action with the same id is already registered
|
344 |
+
if ( ! isset( $this->actions[$key] ) ) {
|
345 |
$this->actions[$key]->_register();
|
346 |
}
|
347 |
}
|
classes/controllers/FrmFormsController.php
CHANGED
@@ -1,7 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
class FrmFormsController{
|
4 |
-
public static $action_post_type = 'frm_form_actions';
|
5 |
|
6 |
public static function trigger_load_form_hooks() {
|
7 |
FrmHooksController::trigger_load_hook( 'load_form_hooks' );
|
@@ -15,9 +14,7 @@ class FrmFormsController{
|
|
15 |
}
|
16 |
|
17 |
public static function menu(){
|
18 |
-
|
19 |
-
|
20 |
-
add_submenu_page('formidable', $frm_settings->menu .' | '. __('Forms', 'formidable'), __('Forms', 'formidable'), 'frm_view_forms', 'formidable', 'FrmFormsController::route' );
|
21 |
|
22 |
add_filter('get_user_option_managetoplevel_page_formidablecolumnshidden', 'FrmFormsController::hidden_columns' );
|
23 |
|
@@ -27,7 +24,6 @@ class FrmFormsController{
|
|
27 |
|
28 |
public static function head(){
|
29 |
wp_enqueue_script('formidable-editinplace');
|
30 |
-
wp_enqueue_script('jquery-frm-themepicker');
|
31 |
|
32 |
if ( wp_is_mobile() ) {
|
33 |
wp_enqueue_script( 'jquery-touch-punch' );
|
@@ -43,7 +39,9 @@ class FrmFormsController{
|
|
43 |
FrmAppHelper::permission_check('frm_view_forms');
|
44 |
|
45 |
$params = FrmFormsHelper::get_params();
|
46 |
-
$errors =
|
|
|
|
|
47 |
return self::display_forms_list($params, '', false, $errors);
|
48 |
}
|
49 |
|
@@ -84,11 +82,13 @@ class FrmFormsController{
|
|
84 |
}
|
85 |
|
86 |
//Set radio button and checkbox meta equal to "other" value
|
87 |
-
|
|
|
|
|
88 |
|
89 |
$id = isset($values['id']) ? (int) $values['id'] : (int) FrmAppHelper::get_param('id');
|
90 |
|
91 |
-
if ( ! current_user_can('frm_edit_forms') || ( $_POST && (!isset($values['frm_save_form']) || !wp_verify_nonce($values['frm_save_form'], 'frm_save_form_nonce'))) ) {
|
92 |
$frm_settings = FrmAppHelper::get_settings();
|
93 |
$errors = array( 'form' => $frm_settings->admin_permission );
|
94 |
} else {
|
@@ -106,8 +106,6 @@ class FrmFormsController{
|
|
106 |
}else{
|
107 |
FrmForm::update( $id, $values, true );
|
108 |
die(FrmAppHelper::js_redirect(admin_url('admin.php?page=formidable&frm_action=settings&id='. $id)));
|
109 |
-
//$message = __('Form was Successfully Created', 'formidable');
|
110 |
-
//return self::settings($record, $message);
|
111 |
}
|
112 |
}
|
113 |
|
@@ -121,8 +119,9 @@ class FrmFormsController{
|
|
121 |
public static function settings($id=false, $message=''){
|
122 |
FrmAppHelper::permission_check('frm_edit_forms');
|
123 |
|
124 |
-
if(
|
125 |
-
$id =
|
|
|
126 |
return self::get_settings_vars($id, '', $message);
|
127 |
}
|
128 |
|
@@ -145,7 +144,7 @@ class FrmFormsController{
|
|
145 |
}
|
146 |
|
147 |
public static function edit_key(){
|
148 |
-
FrmAppHelper::
|
149 |
|
150 |
global $wpdb;
|
151 |
$values = array('form_key' => trim($_POST['update_value']));
|
@@ -157,7 +156,7 @@ class FrmFormsController{
|
|
157 |
}
|
158 |
|
159 |
public static function edit_description(){
|
160 |
-
FrmAppHelper::
|
161 |
|
162 |
FrmForm::update($_POST['form_id'], array('description' => $_POST['update_value']));
|
163 |
$description = FrmAppHelper::use_wpautop(stripslashes($_POST['update_value']));
|
@@ -173,13 +172,14 @@ class FrmFormsController{
|
|
173 |
}
|
174 |
|
175 |
//Set radio button and checkbox meta equal to "other" value
|
176 |
-
|
|
|
|
|
177 |
|
178 |
$errors = FrmForm::validate($values);
|
179 |
-
|
180 |
-
if (
|
181 |
-
$
|
182 |
-
$errors['form'] = $frm_settings->admin_permission;
|
183 |
}
|
184 |
|
185 |
$id = isset($values['id']) ? (int) $values['id'] : (int) FrmAppHelper::get_param('id');
|
@@ -219,17 +219,16 @@ class FrmFormsController{
|
|
219 |
}
|
220 |
}
|
221 |
|
222 |
-
|
223 |
-
public static function after_duplicate($form_id, $values) {
|
224 |
-
FrmForm::after_duplicate($form_id, $values);
|
225 |
-
}
|
226 |
-
|
227 |
public static function page_preview(){
|
228 |
$params = FrmFormsHelper::get_params();
|
229 |
-
if (
|
|
|
|
|
230 |
|
231 |
$form = FrmForm::getOne($params['form']);
|
232 |
-
if(
|
|
|
|
|
233 |
return self::show_form($form->id, '', true, true);
|
234 |
}
|
235 |
|
@@ -257,7 +256,9 @@ class FrmFormsController{
|
|
257 |
$controller = FrmAppHelper::get_param('controller');
|
258 |
$key = (isset($_GET['form']) ? $_GET['form'] : (isset($_POST['form']) ? $_POST['form'] : ''));
|
259 |
$form = FrmForm::getAll(array('form_key' => $key), '', 1);
|
260 |
-
if (
|
|
|
|
|
261 |
|
262 |
require(FrmAppHelper::plugin_path() .'/classes/views/frm-entries/direct.php');
|
263 |
die();
|
@@ -330,27 +331,48 @@ class FrmFormsController{
|
|
330 |
return $message;
|
331 |
}
|
332 |
|
333 |
-
|
334 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
global $wpdb;
|
336 |
|
337 |
$trash_forms = $wpdb->get_results($wpdb->prepare("SELECT id, options FROM {$wpdb->prefix}frm_forms WHERE status = %s", 'trash'));
|
338 |
|
339 |
-
if (
|
340 |
return;
|
341 |
}
|
342 |
|
343 |
-
|
|
|
|
|
344 |
|
|
|
345 |
foreach ( $trash_forms as $form ) {
|
346 |
$form->options = maybe_unserialize($form->options);
|
347 |
-
if ( !isset($form->options['trash_time']) || $form->options['trash_time'] < $delete_timestamp ) {
|
348 |
FrmForm::destroy($form->id);
|
|
|
349 |
}
|
350 |
|
351 |
unset($form);
|
352 |
}
|
353 |
-
|
354 |
}
|
355 |
|
356 |
public static function insert_form_button($content){
|
@@ -382,11 +404,11 @@ class FrmFormsController{
|
|
382 |
die();
|
383 |
}
|
384 |
|
385 |
-
$form_id = '';
|
386 |
-
$opts = array();
|
387 |
-
|
388 |
echo '<div id="sc-opts-'. $shortcode .'" class="frm_shortcode_option">';
|
389 |
echo '<input type="radio" name="frmsc" value="'. esc_attr($shortcode) .'" id="sc-'. esc_attr($shortcode) .'" style="display:none;" />';
|
|
|
|
|
|
|
390 |
switch( $shortcode ) {
|
391 |
case 'formidable':
|
392 |
$form_id = 'id';
|
@@ -398,47 +420,10 @@ class FrmFormsController{
|
|
398 |
);
|
399 |
break;
|
400 |
}
|
401 |
-
|
402 |
$opts = apply_filters('frm_sc_popup_opts', $opts, $shortcode);
|
403 |
|
404 |
-
|
405 |
-
|
406 |
-
<h4 for="frmsc_<?php echo $shortcode .'_'. $form_id ?>" class="frm_left_label"><?php _e('Select a form:', 'formidable') ?></h4>
|
407 |
-
<?php FrmFormsHelper::forms_dropdown( 'frmsc_'. $shortcode .'_'. $form_id ); ?>
|
408 |
-
<div class="frm_box_line"></div>
|
409 |
-
<?php
|
410 |
-
}
|
411 |
-
|
412 |
-
if ( ! empty($opts) ) { ?>
|
413 |
-
<h4><?php _e('Options', 'formidable') ?></h4>
|
414 |
-
<ul>
|
415 |
-
<?php
|
416 |
-
foreach ( $opts as $opt => $val ) {
|
417 |
-
if ( isset($val['type']) && 'text' == $val['type'] ) { ?>
|
418 |
-
<li><label class="setting" for="frmsc_<?php echo $shortcode .'_'. $opt ?>">
|
419 |
-
<span><?php echo $val['label'] ?></span>
|
420 |
-
<input type="text" id="frmsc_<?php echo $shortcode .'_'. $opt ?>" value="<?php echo esc_attr($val['val']) ?>" />
|
421 |
-
</label>
|
422 |
-
<li>
|
423 |
-
<?php } else if ( isset($val['type']) && 'select' == $val['type'] ) { ?>
|
424 |
-
<li><label class="setting" for="frmsc_<?php echo $shortcode .'_'. $opt ?>">
|
425 |
-
<span><?php echo $val['label'] ?></span>
|
426 |
-
<select id="frmsc_<?php echo $shortcode .'_'. $opt ?>">
|
427 |
-
<?php foreach ( $val['opts'] as $select_opt => $select_label ) { ?>
|
428 |
-
<option value="<?php echo esc_attr($select_opt) ?>"><?php echo $select_label ?></option>
|
429 |
-
<?php } ?>
|
430 |
-
</select>
|
431 |
-
</label>
|
432 |
-
</li>
|
433 |
-
<?php } else { ?>
|
434 |
-
<li><label class="setting" for="frmsc_<?php echo $shortcode .'_'. $opt ?>"><input type="checkbox" id="frmsc_<?php echo $shortcode .'_'. $opt ?>" value="<?php echo esc_attr($val['val']) ?>" /> <?php echo $val['label'] ?></label><li>
|
435 |
-
<?php
|
436 |
-
}
|
437 |
-
}
|
438 |
-
?>
|
439 |
-
</ul>
|
440 |
-
<?php
|
441 |
-
}
|
442 |
echo '</div>';
|
443 |
|
444 |
die();
|
@@ -449,8 +434,9 @@ class FrmFormsController{
|
|
449 |
|
450 |
global $wpdb, $frm_vars;
|
451 |
|
452 |
-
if(
|
453 |
$params = FrmFormsHelper::get_params();
|
|
|
454 |
|
455 |
$wp_list_table = new FrmFormsListHelper( compact('params') );
|
456 |
|
@@ -536,7 +522,7 @@ class FrmFormsController{
|
|
536 |
global $frm_vars;
|
537 |
|
538 |
$form = FrmForm::getOne( $id );
|
539 |
-
if (
|
540 |
wp_die( __('You are trying to edit a form that does not exist.', 'formidable') );
|
541 |
}
|
542 |
|
@@ -645,7 +631,7 @@ class FrmFormsController{
|
|
645 |
FrmEntriesHelper::maybe_get_entry($entry);
|
646 |
}
|
647 |
|
648 |
-
if (
|
649 |
return $content;
|
650 |
}
|
651 |
|
@@ -685,13 +671,13 @@ class FrmFormsController{
|
|
685 |
return $errors;
|
686 |
}
|
687 |
|
688 |
-
|
689 |
-
|
690 |
-
$errors[] = $
|
691 |
return $errors;
|
692 |
}
|
693 |
|
694 |
-
if ( !is_array($ids) ) {
|
695 |
$ids = explode(',', $ids);
|
696 |
}
|
697 |
|
@@ -738,12 +724,14 @@ class FrmFormsController{
|
|
738 |
$values['form_key'] = $filename;
|
739 |
$values['is_template'] = $template;
|
740 |
$values['status'] = 'published';
|
741 |
-
if($default)
|
|
|
|
|
742 |
|
743 |
include($templates[$i]);
|
744 |
|
745 |
//get updated form
|
746 |
-
if ( isset($form) && $form ) {
|
747 |
$old_id = $form->id;
|
748 |
$form = FrmForm::getOne($form->id);
|
749 |
} else {
|
@@ -781,6 +769,10 @@ class FrmFormsController{
|
|
781 |
}
|
782 |
}else{
|
783 |
$action = FrmAppHelper::get_param($action);
|
|
|
|
|
|
|
|
|
784 |
}
|
785 |
|
786 |
add_action('frm_load_form_hooks', 'FrmFormsController::trigger_load_form_hooks');
|
@@ -797,6 +789,7 @@ class FrmFormsController{
|
|
797 |
case 'trash':
|
798 |
case 'untrash':
|
799 |
case 'destroy':
|
|
|
800 |
case 'settings':
|
801 |
case 'update_settings':
|
802 |
return self::$action($vars);
|
@@ -934,12 +927,12 @@ class FrmFormsController{
|
|
934 |
$frm_settings = FrmAppHelper::get_settings();
|
935 |
|
936 |
// don't show a draft form on a page
|
937 |
-
if ( $form->status == 'draft' && (
|
938 |
return __('Please select a valid form', 'formidable');
|
939 |
}
|
940 |
|
941 |
// don't show the form if user should be logged in
|
942 |
-
if ( $form->logged_in && !is_user_logged_in() ) {
|
943 |
return do_shortcode($frm_settings->login_msg);
|
944 |
}
|
945 |
|
@@ -1022,9 +1015,16 @@ class FrmFormsController{
|
|
1022 |
return;
|
1023 |
}
|
1024 |
|
1025 |
-
$
|
1026 |
-
|
1027 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1028 |
|
1029 |
if ( ! isset($form->options['show_form']) || $form->options['show_form'] ) {
|
1030 |
require(FrmAppHelper::plugin_path() .'/classes/views/frm-entries/new.php');
|
1 |
<?php
|
2 |
|
3 |
class FrmFormsController{
|
|
|
4 |
|
5 |
public static function trigger_load_form_hooks() {
|
6 |
FrmHooksController::trigger_load_hook( 'load_form_hooks' );
|
14 |
}
|
15 |
|
16 |
public static function menu(){
|
17 |
+
add_submenu_page('formidable', 'Formidable | '. __('Forms', 'formidable'), __('Forms', 'formidable'), 'frm_view_forms', 'formidable', 'FrmFormsController::route' );
|
|
|
|
|
18 |
|
19 |
add_filter('get_user_option_managetoplevel_page_formidablecolumnshidden', 'FrmFormsController::hidden_columns' );
|
20 |
|
24 |
|
25 |
public static function head(){
|
26 |
wp_enqueue_script('formidable-editinplace');
|
|
|
27 |
|
28 |
if ( wp_is_mobile() ) {
|
29 |
wp_enqueue_script( 'jquery-touch-punch' );
|
39 |
FrmAppHelper::permission_check('frm_view_forms');
|
40 |
|
41 |
$params = FrmFormsHelper::get_params();
|
42 |
+
$errors = self::process_bulk_form_actions(array());
|
43 |
+
$errors = apply_filters('frm_admin_list_form_action', $errors);
|
44 |
+
|
45 |
return self::display_forms_list($params, '', false, $errors);
|
46 |
}
|
47 |
|
82 |
}
|
83 |
|
84 |
//Set radio button and checkbox meta equal to "other" value
|
85 |
+
if ( FrmAppHelper::pro_is_installed() ) {
|
86 |
+
$values = FrmProEntry::mod_other_vals( $values, 'back' );
|
87 |
+
}
|
88 |
|
89 |
$id = isset($values['id']) ? (int) $values['id'] : (int) FrmAppHelper::get_param('id');
|
90 |
|
91 |
+
if ( ! current_user_can( 'frm_edit_forms' ) || ( $_POST && ( ! isset( $values['frm_save_form'] ) || ! wp_verify_nonce( $values['frm_save_form'], 'frm_save_form_nonce' ) ) ) ) {
|
92 |
$frm_settings = FrmAppHelper::get_settings();
|
93 |
$errors = array( 'form' => $frm_settings->admin_permission );
|
94 |
} else {
|
106 |
}else{
|
107 |
FrmForm::update( $id, $values, true );
|
108 |
die(FrmAppHelper::js_redirect(admin_url('admin.php?page=formidable&frm_action=settings&id='. $id)));
|
|
|
|
|
109 |
}
|
110 |
}
|
111 |
|
119 |
public static function settings($id=false, $message=''){
|
120 |
FrmAppHelper::permission_check('frm_edit_forms');
|
121 |
|
122 |
+
if ( ! $id || ! is_numeric($id) ) {
|
123 |
+
$id = (int) FrmAppHelper::get_param('id');
|
124 |
+
}
|
125 |
return self::get_settings_vars($id, '', $message);
|
126 |
}
|
127 |
|
144 |
}
|
145 |
|
146 |
public static function edit_key(){
|
147 |
+
FrmAppHelper::permission_check('frm_edit_forms', 'hide');
|
148 |
|
149 |
global $wpdb;
|
150 |
$values = array('form_key' => trim($_POST['update_value']));
|
156 |
}
|
157 |
|
158 |
public static function edit_description(){
|
159 |
+
FrmAppHelper::permission_check('frm_edit_forms', 'hide');
|
160 |
|
161 |
FrmForm::update($_POST['form_id'], array('description' => $_POST['update_value']));
|
162 |
$description = FrmAppHelper::use_wpautop(stripslashes($_POST['update_value']));
|
172 |
}
|
173 |
|
174 |
//Set radio button and checkbox meta equal to "other" value
|
175 |
+
if ( FrmAppHelper::pro_is_installed() ) {
|
176 |
+
$values = FrmProEntry::mod_other_vals( $values, 'back' );
|
177 |
+
}
|
178 |
|
179 |
$errors = FrmForm::validate($values);
|
180 |
+
$permission_error = FrmAppHelper::permission_nonce_error('frm_edit_forms', 'frm_save_form', 'frm_save_form_nonce');
|
181 |
+
if ( $permission_error !== false ) {
|
182 |
+
$errors['form'] = $permission_error;
|
|
|
183 |
}
|
184 |
|
185 |
$id = isset($values['id']) ? (int) $values['id'] : (int) FrmAppHelper::get_param('id');
|
219 |
}
|
220 |
}
|
221 |
|
|
|
|
|
|
|
|
|
|
|
222 |
public static function page_preview(){
|
223 |
$params = FrmFormsHelper::get_params();
|
224 |
+
if ( ! $params['form'] ) {
|
225 |
+
return;
|
226 |
+
}
|
227 |
|
228 |
$form = FrmForm::getOne($params['form']);
|
229 |
+
if ( ! $form ) {
|
230 |
+
return;
|
231 |
+
}
|
232 |
return self::show_form($form->id, '', true, true);
|
233 |
}
|
234 |
|
256 |
$controller = FrmAppHelper::get_param('controller');
|
257 |
$key = (isset($_GET['form']) ? $_GET['form'] : (isset($_POST['form']) ? $_POST['form'] : ''));
|
258 |
$form = FrmForm::getAll(array('form_key' => $key), '', 1);
|
259 |
+
if ( empty($form) ) {
|
260 |
+
$form = FrmForm::getAll('', '', 1);
|
261 |
+
}
|
262 |
|
263 |
require(FrmAppHelper::plugin_path() .'/classes/views/frm-entries/direct.php');
|
264 |
die();
|
331 |
return $message;
|
332 |
}
|
333 |
|
334 |
+
private static function delete_all() {
|
335 |
+
//check nonce url
|
336 |
+
$permission_error = FrmAppHelper::permission_nonce_error('frm_delete_forms', '_wpnonce', 'bulk-toplevel_page_formidable');
|
337 |
+
if ( $permission_error !== false ) {
|
338 |
+
self::display_forms_list('', '', 1, array($permission_error));
|
339 |
+
return;
|
340 |
+
}
|
341 |
+
|
342 |
+
$count = self::scheduled_delete(time());
|
343 |
+
$message = sprintf(_n( '%1$s form permanently deleted.', '%1$s forms permanently deleted.', $count, 'formidable' ), $count);
|
344 |
+
|
345 |
+
self::display_forms_list('', $message, 1);
|
346 |
+
}
|
347 |
+
|
348 |
+
/*
|
349 |
+
* Delete trashed forms based on how long they have been trashed
|
350 |
+
* @return int The number of forms deleted
|
351 |
+
*/
|
352 |
+
public static function scheduled_delete($delete_timestamp = '') {
|
353 |
global $wpdb;
|
354 |
|
355 |
$trash_forms = $wpdb->get_results($wpdb->prepare("SELECT id, options FROM {$wpdb->prefix}frm_forms WHERE status = %s", 'trash'));
|
356 |
|
357 |
+
if ( ! $trash_forms ) {
|
358 |
return;
|
359 |
}
|
360 |
|
361 |
+
if ( empty($delete_timestamp) ) {
|
362 |
+
$delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS );
|
363 |
+
}
|
364 |
|
365 |
+
$count = 0;
|
366 |
foreach ( $trash_forms as $form ) {
|
367 |
$form->options = maybe_unserialize($form->options);
|
368 |
+
if ( ! isset( $form->options['trash_time'] ) || $form->options['trash_time'] < $delete_timestamp ) {
|
369 |
FrmForm::destroy($form->id);
|
370 |
+
$count++;
|
371 |
}
|
372 |
|
373 |
unset($form);
|
374 |
}
|
375 |
+
return $count;
|
376 |
}
|
377 |
|
378 |
public static function insert_form_button($content){
|
404 |
die();
|
405 |
}
|
406 |
|
|
|
|
|
|
|
407 |
echo '<div id="sc-opts-'. $shortcode .'" class="frm_shortcode_option">';
|
408 |
echo '<input type="radio" name="frmsc" value="'. esc_attr($shortcode) .'" id="sc-'. esc_attr($shortcode) .'" style="display:none;" />';
|
409 |
+
|
410 |
+
$form_id = '';
|
411 |
+
$opts = array();
|
412 |
switch( $shortcode ) {
|
413 |
case 'formidable':
|
414 |
$form_id = 'id';
|
420 |
);
|
421 |
break;
|
422 |
}
|
|
|
423 |
$opts = apply_filters('frm_sc_popup_opts', $opts, $shortcode);
|
424 |
|
425 |
+
include(FrmAppHelper::plugin_path() .'/classes/views/frm-forms/shortcode_opts.php');
|
426 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
427 |
echo '</div>';
|
428 |
|
429 |
die();
|
434 |
|
435 |
global $wpdb, $frm_vars;
|
436 |
|
437 |
+
if ( ! $params ) {
|
438 |
$params = FrmFormsHelper::get_params();
|
439 |
+
}
|
440 |
|
441 |
$wp_list_table = new FrmFormsListHelper( compact('params') );
|
442 |
|
522 |
global $frm_vars;
|
523 |
|
524 |
$form = FrmForm::getOne( $id );
|
525 |
+
if ( ! $form ) {
|
526 |
wp_die( __('You are trying to edit a form that does not exist.', 'formidable') );
|
527 |
}
|
528 |
|
631 |
FrmEntriesHelper::maybe_get_entry($entry);
|
632 |
}
|
633 |
|
634 |
+
if ( ! $entry ) {
|
635 |
return $content;
|
636 |
}
|
637 |
|
671 |
return $errors;
|
672 |
}
|
673 |
|
674 |
+
$permission_error = FrmAppHelper::permission_nonce_error('', '_wpnonce', 'bulk-toplevel_page_formidable');
|
675 |
+
if ( $permission_error !== false ) {
|
676 |
+
$errors[] = $permission_error;
|
677 |
return $errors;
|
678 |
}
|
679 |
|
680 |
+
if ( ! is_array($ids) ) {
|
681 |
$ids = explode(',', $ids);
|
682 |
}
|
683 |
|
724 |
$values['form_key'] = $filename;
|
725 |
$values['is_template'] = $template;
|
726 |
$values['status'] = 'published';
|
727 |
+
if ( $default ) {
|
728 |
+
$values['default_template'] = 1;
|
729 |
+
}
|
730 |
|
731 |
include($templates[$i]);
|
732 |
|
733 |
//get updated form
|
734 |
+
if ( isset($form) && ! empty($form) ) {
|
735 |
$old_id = $form->id;
|
736 |
$form = FrmForm::getOne($form->id);
|
737 |
} else {
|
769 |
}
|
770 |
}else{
|
771 |
$action = FrmAppHelper::get_param($action);
|
772 |
+
if ( isset( $_REQUEST['delete_all'] ) ) {
|
773 |
+
// override the action for this page
|
774 |
+
$action = 'delete_all';
|
775 |
+
}
|
776 |
}
|
777 |
|
778 |
add_action('frm_load_form_hooks', 'FrmFormsController::trigger_load_form_hooks');
|
789 |
case 'trash':
|
790 |
case 'untrash':
|
791 |
case 'destroy':
|
792 |
+
case 'delete_all':
|
793 |
case 'settings':
|
794 |
case 'update_settings':
|
795 |
return self::$action($vars);
|
927 |
$frm_settings = FrmAppHelper::get_settings();
|
928 |
|
929 |
// don't show a draft form on a page
|
930 |
+
if ( $form->status == 'draft' && ( ! $post || $post->ID != $frm_settings->preview_page_id ) ) {
|
931 |
return __('Please select a valid form', 'formidable');
|
932 |
}
|
933 |
|
934 |
// don't show the form if user should be logged in
|
935 |
+
if ( $form->logged_in && ! is_user_logged_in() ) {
|
936 |
return do_shortcode($frm_settings->login_msg);
|
937 |
}
|
938 |
|
1015 |
return;
|
1016 |
}
|
1017 |
|
1018 |
+
if ( $created && is_numeric($created) ){
|
1019 |
+
$message = isset($form->options['success_msg']) ? $form->options['success_msg'] : $frm_settings->success_msg;
|
1020 |
+
$class = 'frm_message';
|
1021 |
+
} else {
|
1022 |
+
$message = $frm_settings->failed_msg;
|
1023 |
+
$class = 'frm_error_style';
|
1024 |
+
}
|
1025 |
+
$message = apply_filters('frm_content', $message, $form, $created);
|
1026 |
+
$message = '<div class="'. $class .'">'. wpautop(do_shortcode($message)) .'</div>';
|
1027 |
+
$message = apply_filters('frm_main_feedback', $message, $form, $created);
|
1028 |
|
1029 |
if ( ! isset($form->options['show_form']) || $form->options['show_form'] ) {
|
1030 |
require(FrmAppHelper::plugin_path() .'/classes/views/frm-entries/new.php');
|
classes/controllers/FrmHooksController.php
CHANGED
@@ -26,19 +26,21 @@ class FrmHooksController{
|
|
26 |
// Make sure the hooks are only triggered once
|
27 |
add_filter('frm'. str_replace('load', '', $trigger_hooks) .'_loaded', '__return_true');
|
28 |
}
|
|
|
29 |
|
30 |
// Instansiate Controllers
|
31 |
foreach ( $controllers as $c ) {
|
|
|
32 |
foreach ( $hooks as $hook ) {
|
33 |
-
$
|
34 |
unset($hook);
|
35 |
}
|
36 |
-
unset($c);
|
37 |
}
|
38 |
|
39 |
}
|
40 |
|
41 |
-
public
|
42 |
if ( ! is_admin() ) {
|
43 |
add_filter('the_content', 'FrmAppController::page_route', 10);
|
44 |
}
|
@@ -46,12 +48,12 @@ class FrmHooksController{
|
|
46 |
add_action('plugins_loaded', 'FrmAppController::load_lang' );
|
47 |
add_action('init', 'FrmAppController::front_head' );
|
48 |
add_filter('widget_text', 'FrmAppController::widget_text_filter', 8 );
|
49 |
-
add_filter('get_frm_stylesheet', 'FrmAppController::custom_stylesheet' );
|
50 |
-
|
51 |
add_action('wp_footer', 'FrmAppController::footer_js', 1, 0);
|
52 |
|
53 |
-
|
54 |
-
|
|
|
|
|
55 |
|
56 |
// Entries controller
|
57 |
add_action('wp', 'FrmEntriesController::process_entry', 10, 0);
|
@@ -62,9 +64,7 @@ class FrmHooksController{
|
|
62 |
add_filter('frmpro_fields_replace_shortcodes', 'FrmEntriesController::filter_shortcode_value', 10, 4);
|
63 |
|
64 |
// Form Actions Controller
|
65 |
-
add_action('init', 'FrmFormActionsController::register_post_types',
|
66 |
-
add_action('init', 'FrmFormActionsController::actions_init', 1);
|
67 |
-
add_action('frm_form_actions_init', 'FrmFormActionsController::register_actions');
|
68 |
add_action('frm_after_create_entry', 'FrmFormActionsController::trigger_create_actions', 20, 2);
|
69 |
|
70 |
// Forms Controller
|
@@ -85,7 +85,7 @@ class FrmHooksController{
|
|
85 |
add_filter('frm_show_entry_styles', 'FrmStylesController::show_entry_styles');
|
86 |
}
|
87 |
|
88 |
-
public
|
89 |
add_action('admin_menu', 'FrmAppController::menu', 1);
|
90 |
add_action('admin_enqueue_scripts', 'FrmAppController::load_wp_admin_style' );
|
91 |
add_filter('update_plugin_complete_actions', 'FrmAppController::update_action_links', 10, 2 );
|
@@ -113,13 +113,13 @@ class FrmHooksController{
|
|
113 |
// Forms Controller
|
114 |
add_action('admin_menu', 'FrmFormsController::menu', 10);
|
115 |
add_action('admin_head-toplevel_page_formidable', 'FrmFormsController::head' );
|
116 |
-
add_action('frm_after_duplicate_form', 'FrmFormsController::after_duplicate', 10, 2);
|
117 |
|
118 |
add_filter('set-screen-option', 'FrmFormsController::save_per_page', 10, 3);
|
119 |
add_action('admin_footer', 'FrmFormsController::insert_form_popup' );
|
120 |
add_filter('media_buttons_context', 'FrmFormsController::insert_form_button' );
|
121 |
|
122 |
-
|
|
|
123 |
|
124 |
// Settings Controller
|
125 |
add_action('admin_menu', 'FrmSettingsController::menu', 45);
|
@@ -137,7 +137,7 @@ class FrmHooksController{
|
|
137 |
add_action('admin_menu', 'FrmXMLController::menu', 41);
|
138 |
}
|
139 |
|
140 |
-
public
|
141 |
add_action('wp_ajax_frm_install', 'FrmAppController::install' );
|
142 |
add_action('wp_ajax_frm_uninstall', 'FrmAppController::uninstall' );
|
143 |
add_action('wp_ajax_frm_deauthorize', 'FrmAppController::deauthorize' );
|
@@ -183,7 +183,7 @@ class FrmHooksController{
|
|
183 |
add_action('wp_ajax_frm_export_xml', 'FrmXMLController::export_xml');
|
184 |
}
|
185 |
|
186 |
-
public
|
187 |
// Fields Controller
|
188 |
add_filter('frm_field_type', 'FrmFieldsController::change_type');
|
189 |
add_action('frm_field_input_html', 'FrmFieldsController::input_html');
|
@@ -194,11 +194,11 @@ class FrmHooksController{
|
|
194 |
add_filter('frm_use_important_width', 'FrmStylesController::important_style', 10, 2 );
|
195 |
}
|
196 |
|
197 |
-
public
|
198 |
// Hooks go here when a view is loaded
|
199 |
}
|
200 |
|
201 |
-
public
|
202 |
// drop tables when mu site is deleted
|
203 |
add_filter( 'wpmu_drop_tables', 'FrmAppController::drop_tables' );
|
204 |
}
|
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 |
+
$class = new $c;
|
34 |
foreach ( $hooks as $hook ) {
|
35 |
+
$class->$hook();
|
36 |
unset($hook);
|
37 |
}
|
38 |
+
unset($c, $class);
|
39 |
}
|
40 |
|
41 |
}
|
42 |
|
43 |
+
public function load_hooks(){
|
44 |
if ( ! is_admin() ) {
|
45 |
add_filter('the_content', 'FrmAppController::page_route', 10);
|
46 |
}
|
48 |
add_action('plugins_loaded', 'FrmAppController::load_lang' );
|
49 |
add_action('init', 'FrmAppController::front_head' );
|
50 |
add_filter('widget_text', 'FrmAppController::widget_text_filter', 8 );
|
|
|
|
|
51 |
add_action('wp_footer', 'FrmAppController::footer_js', 1, 0);
|
52 |
|
53 |
+
if ( ! FrmAppHelper::is_admin() ) {
|
54 |
+
// Update the session data
|
55 |
+
add_action('init', 'FrmAppController::referer_session', 1);
|
56 |
+
}
|
57 |
|
58 |
// Entries controller
|
59 |
add_action('wp', 'FrmEntriesController::process_entry', 10, 0);
|
64 |
add_filter('frmpro_fields_replace_shortcodes', 'FrmEntriesController::filter_shortcode_value', 10, 4);
|
65 |
|
66 |
// Form Actions Controller
|
67 |
+
add_action('init', 'FrmFormActionsController::register_post_types', 1);
|
|
|
|
|
68 |
add_action('frm_after_create_entry', 'FrmFormActionsController::trigger_create_actions', 20, 2);
|
69 |
|
70 |
// Forms Controller
|
85 |
add_filter('frm_show_entry_styles', 'FrmStylesController::show_entry_styles');
|
86 |
}
|
87 |
|
88 |
+
public function load_admin_hooks() {
|
89 |
add_action('admin_menu', 'FrmAppController::menu', 1);
|
90 |
add_action('admin_enqueue_scripts', 'FrmAppController::load_wp_admin_style' );
|
91 |
add_filter('update_plugin_complete_actions', 'FrmAppController::update_action_links', 10, 2 );
|
113 |
// Forms Controller
|
114 |
add_action('admin_menu', 'FrmFormsController::menu', 10);
|
115 |
add_action('admin_head-toplevel_page_formidable', 'FrmFormsController::head' );
|
|
|
116 |
|
117 |
add_filter('set-screen-option', 'FrmFormsController::save_per_page', 10, 3);
|
118 |
add_action('admin_footer', 'FrmFormsController::insert_form_popup' );
|
119 |
add_filter('media_buttons_context', 'FrmFormsController::insert_form_button' );
|
120 |
|
121 |
+
// Forms Model
|
122 |
+
add_action('frm_after_duplicate_form', 'FrmForm::after_duplicate', 10, 2);
|
123 |
|
124 |
// Settings Controller
|
125 |
add_action('admin_menu', 'FrmSettingsController::menu', 45);
|
137 |
add_action('admin_menu', 'FrmXMLController::menu', 41);
|
138 |
}
|
139 |
|
140 |
+
public function load_ajax_hooks() {
|
141 |
add_action('wp_ajax_frm_install', 'FrmAppController::install' );
|
142 |
add_action('wp_ajax_frm_uninstall', 'FrmAppController::uninstall' );
|
143 |
add_action('wp_ajax_frm_deauthorize', 'FrmAppController::deauthorize' );
|
183 |
add_action('wp_ajax_frm_export_xml', 'FrmXMLController::export_xml');
|
184 |
}
|
185 |
|
186 |
+
public function load_form_hooks() {
|
187 |
// Fields Controller
|
188 |
add_filter('frm_field_type', 'FrmFieldsController::change_type');
|
189 |
add_action('frm_field_input_html', 'FrmFieldsController::input_html');
|
194 |
add_filter('frm_use_important_width', 'FrmStylesController::important_style', 10, 2 );
|
195 |
}
|
196 |
|
197 |
+
public function load_view_hooks() {
|
198 |
// Hooks go here when a view is loaded
|
199 |
}
|
200 |
|
201 |
+
public function load_multisite_hooks() {
|
202 |
// drop tables when mu site is deleted
|
203 |
add_filter( 'wpmu_drop_tables', 'FrmAppController::drop_tables' );
|
204 |
}
|
classes/controllers/FrmSettingsController.php
CHANGED
@@ -31,17 +31,18 @@ class FrmSettingsController{
|
|
31 |
|
32 |
$frm_settings = FrmAppHelper::get_settings();
|
33 |
|
34 |
-
if(!isset($_POST['process_form'])
|
35 |
wp_die($frm_settings->admin_permission);
|
|
|
36 |
|
37 |
$errors = array();
|
38 |
$message = '';
|
39 |
|
40 |
-
if(!isset($frm_vars['settings_routed'])
|
41 |
//$errors = $frm_settings->validate($_POST,array());
|
42 |
$frm_settings->update(stripslashes_deep($_POST));
|
43 |
|
44 |
-
if( empty($errors) ){
|
45 |
$frm_settings->store();
|
46 |
$message = __('Settings Saved', 'formidable');
|
47 |
}
|
@@ -60,9 +61,10 @@ class FrmSettingsController{
|
|
60 |
public static function route($stop_load=false){
|
61 |
$action = isset($_REQUEST['frm_action']) ? 'frm_action' : 'action';
|
62 |
$action = FrmAppHelper::get_param($action);
|
63 |
-
if($action == 'process-form')
|
64 |
return self::process_form($stop_load);
|
65 |
-
else if($stop_load != 'stop_load')
|
66 |
return self::display_form();
|
|
|
67 |
}
|
68 |
}
|
31 |
|
32 |
$frm_settings = FrmAppHelper::get_settings();
|
33 |
|
34 |
+
if ( ! isset($_POST['process_form']) || ! wp_verify_nonce($_POST['process_form'], 'process_form_nonce') ) {
|
35 |
wp_die($frm_settings->admin_permission);
|
36 |
+
}
|
37 |
|
38 |
$errors = array();
|
39 |
$message = '';
|
40 |
|
41 |
+
if ( ! isset($frm_vars['settings_routed']) || ! $frm_vars['settings_routed'] ) {
|
42 |
//$errors = $frm_settings->validate($_POST,array());
|
43 |
$frm_settings->update(stripslashes_deep($_POST));
|
44 |
|
45 |
+
if ( empty($errors) ) {
|
46 |
$frm_settings->store();
|
47 |
$message = __('Settings Saved', 'formidable');
|
48 |
}
|
61 |
public static function route($stop_load=false){
|
62 |
$action = isset($_REQUEST['frm_action']) ? 'frm_action' : 'action';
|
63 |
$action = FrmAppHelper::get_param($action);
|
64 |
+
if ( $action == 'process-form' ) {
|
65 |
return self::process_form($stop_load);
|
66 |
+
} else if ( $stop_load != 'stop_load' ) {
|
67 |
return self::display_form();
|
68 |
+
}
|
69 |
}
|
70 |
}
|
classes/controllers/FrmStatisticsController.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
class FrmStatisticsController{
|
4 |
|
5 |
public static function menu(){
|
6 |
-
add_submenu_page('formidable', 'Formidable | '. __('Views', 'formidable'), '<span
|
7 |
}
|
8 |
|
9 |
public static function list_reports(){
|
3 |
class FrmStatisticsController{
|
4 |
|
5 |
public static function menu(){
|
6 |
+
add_submenu_page( 'formidable', 'Formidable | '. __('Views', 'formidable'), '<span class="frm_inactive_menu">'. __( 'Views', 'formidable' ) .'</span>', 'administrator', 'formidable-entry-templates', 'FrmStatisticsController::list_displays' );
|
7 |
}
|
8 |
|
9 |
public static function list_reports(){
|
classes/controllers/FrmStylesController.php
CHANGED
@@ -42,20 +42,17 @@ class FrmStylesController{
|
|
42 |
|
43 |
self::load_pro_hooks();
|
44 |
wp_enqueue_script('jquery-ui-datepicker');
|
45 |
-
add_action('admin_head', 'FrmStylesController::head');
|
46 |
-
}
|
47 |
|
48 |
-
|
49 |
-
wp_enqueue_script('jquery-frm-themepicker');
|
|
|
|
|
|
|
50 |
|
51 |
$style = apply_filters('frm_style_head', false);
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
<?php if ($style) { ?> |