Version Description
- Added options to allow users other than admins to access Formidable
- Added uninstall button
- Fixed multiple submissions for pages with multiple forms
- PRO: Added [frm-graph] shortcode for front-end graphical reports! Default values:
[frm-graph id=x include_js=1 colors="#EF8C08,#21759B,#1C9E05" bg_color="#FFFFFF" height=400 width=400]
. Show multiple fields with[frm-graph id="x,y,z"]
- PRO: Added "value" parameter to the frm-stats shortcode for counting number of entries with specified value
[frm-stats id=8 value="Hello" type=count]
- PRO: Added a field drop-down for searching specific fields on the entries page
- PRO: Added option to allow users to edit any entry instead of only their own and other user-role options
- PRO: Added calendar format option on the Formidable Settings page
- PRO: Changed "entry_id" in the "display-frm-data" to accept multiple entry IDs. ex:
[display-frm-data id=x entry_id="34,35,36"]
- PRO: Added "equals" option to if statements. ex:
[if 283 equals=hello]show this if the field with id 283 equals hello[/if 283]
Download this release
Release Info
Developer | sswells |
Plugin | Formidable Forms – Form Builder for WordPress |
Version | 1.03.03 |
Comparing to | |
See all releases |
Code changes from version 1.02.01 to 1.03.03
- classes/controllers/FrmAppController.php +75 -137
- classes/controllers/FrmEntriesController.php +24 -19
- classes/controllers/FrmFieldsController.php +42 -16
- classes/controllers/FrmFormsController.php +58 -34
- classes/controllers/FrmSettingsController.php +11 -16
- classes/controllers/FrmStatisticsController.php +2 -2
- classes/helpers/FrmAppHelper.php +90 -19
- classes/helpers/FrmEntriesHelper.php +15 -10
- classes/helpers/FrmFieldsHelper.php +22 -15
- classes/helpers/FrmFormsHelper.php +43 -14
- classes/models/FrmDb.php +202 -0
- classes/models/FrmEntry.php +39 -49
- classes/models/FrmEntryMeta.php +36 -39
- classes/models/FrmField.php +20 -21
- classes/models/FrmForm.php +30 -29
- classes/models/FrmNotification.php +19 -38
- classes/models/FrmSettings.php +63 -4
- classes/models/FrmUpdate.php +24 -9
- classes/views/frm-entries/direct.php +1 -7
- classes/views/frm-entries/form.php +6 -4
- classes/views/frm-entries/frm-entry.php +11 -3
- classes/views/frm-entries/list.php +3 -2
- classes/views/frm-entries/new.php +2 -5
- classes/views/frm-fields/input.php +7 -7
- classes/views/frm-fields/radio.php +1 -1
- classes/views/frm-fields/single-option.php +2 -2
- classes/views/frm-forms/add_field.php +55 -47
- classes/views/frm-forms/add_field_links.php +21 -21
- classes/views/frm-forms/default-templates.php +16 -15
- classes/views/frm-forms/edit.php +2 -2
- classes/views/frm-forms/footer.php +34 -56
- classes/views/frm-forms/form.php +77 -39
- classes/views/frm-forms/list.php +66 -43
- classes/views/frm-forms/new-field-js.php +1 -1
- classes/views/frm-forms/new-selection.php +1 -1
- classes/views/frm-forms/new.php +2 -2
- classes/views/frm-settings/form.php +58 -10
- classes/views/frm-statistics/list.php +1 -1
- classes/views/shared/item-table-nav.php +4 -4
- classes/views/shared/nav.php +14 -4
- classes/views/shared/pagination.php +12 -6
- css/frm_admin.css +122 -172
- formidable.php +31 -6
- images/add.png +0 -0
- images/black_arrow.png +0 -0
- images/black_arrow_big.png +0 -0
- images/readonly.png +0 -0
- images/required.png +0 -0
- images/tooltip.png +0 -0
- js/formidable.js +163 -25
- js/jquery/jquery-1.3.2.min.js +0 -19
- js/jquery/jquery-ui-1.7.2.min.js +0 -10
- js/jquery/jquery-ui-datepicker.js +0 -12
- js/jquery/jquery-ui-themepicker.js +1 -4
- js/jquery/jquery.editinplace.js +10 -9
- js/jquery/jquery.editinplace.packed.js +7 -7
- js/jquery/jquery.elastic.js +1 -0
- js/jquery/jquery.tools.min.js +20 -0
- readme.txt +84 -24
- screenshot-1.png +0 -0
classes/controllers/FrmAppController.php
CHANGED
@@ -2,33 +2,60 @@
|
|
2 |
|
3 |
class FrmAppController{
|
4 |
function FrmAppController(){
|
5 |
-
add_action('admin_menu', array(
|
6 |
-
add_filter(
|
7 |
-
|
8 |
-
add_action('
|
9 |
-
|
10 |
-
|
11 |
-
add_action('
|
12 |
-
|
|
|
|
|
13 |
|
14 |
// Used to process standalone requests
|
15 |
-
add_action('init', array(
|
16 |
|
17 |
//Shortcodes
|
18 |
-
add_shortcode('formidable', array(
|
19 |
-
add_filter( 'widget_text', array(
|
20 |
}
|
21 |
|
22 |
function menu(){
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
-
|
|
|
|
|
26 |
}
|
27 |
|
28 |
// Adds a settings link to the plugins page
|
29 |
function settings_link($links, $file){
|
30 |
$settings = '<a href="'.admin_url('admin.php?page='.FRM_PLUGIN_NAME).'">' . __('Settings', FRM_PLUGIN_NAME) . '</a>';
|
31 |
array_unshift($links, $settings);
|
|
|
32 |
return $links;
|
33 |
}
|
34 |
|
@@ -65,140 +92,51 @@ class FrmAppController{
|
|
65 |
}
|
66 |
}
|
67 |
|
68 |
-
function head(){
|
69 |
-
$css_file = FRM_URL. '/css/frm_admin.css';
|
70 |
-
$js_file = FRM_URL . '/js/formidable.js';
|
71 |
-
require(FRM_VIEWS_PATH . '/shared/head.php');
|
72 |
-
}
|
73 |
-
|
74 |
function admin_js(){
|
75 |
-
|
76 |
-
wp_enqueue_script('
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
function front_head(){
|
|
|
|
|
81 |
if (IS_WPMU){
|
82 |
-
$db_version = 1.
|
83 |
$old_db_version = get_option('frm_db_version');
|
84 |
if ($db_version != $old_db_version)
|
85 |
$this->install();
|
86 |
}
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
|
|
91 |
}
|
92 |
|
93 |
function install(){
|
94 |
-
|
95 |
-
|
96 |
-
$old_db_version = get_option('frm_db_version');
|
97 |
-
|
98 |
-
if ($db_version != $old_db_version){
|
99 |
-
$fields_table = $wpdb->prefix . "frm_fields";
|
100 |
-
$forms_table = $wpdb->prefix . "frm_forms";
|
101 |
-
$items_table = $wpdb->prefix . "frm_items";
|
102 |
-
$item_metas_table = $wpdb->prefix . "frm_item_metas";
|
103 |
-
|
104 |
-
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
105 |
-
|
106 |
-
$charset_collate = '';
|
107 |
-
if( $wpdb->has_cap( 'collation' ) ){
|
108 |
-
if( !empty($wpdb->charset) )
|
109 |
-
$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
|
110 |
-
if( !empty($wpdb->collate) )
|
111 |
-
$charset_collate .= " COLLATE $wpdb->collate";
|
112 |
-
}
|
113 |
-
|
114 |
-
/* Create/Upgrade Fields Table */
|
115 |
-
$sql = "CREATE TABLE {$fields_table} (
|
116 |
-
id int(11) NOT NULL auto_increment,
|
117 |
-
field_key varchar(255) default NULL,
|
118 |
-
name varchar(255) default NULL,
|
119 |
-
description text default NULL,
|
120 |
-
type text default NULL,
|
121 |
-
default_value longtext default NULL,
|
122 |
-
options longtext default NULL,
|
123 |
-
field_order int(11) default 0,
|
124 |
-
required int(1) default NULL,
|
125 |
-
field_options longtext default NULL,
|
126 |
-
form_id int(11) default NULL,
|
127 |
-
created_at datetime NOT NULL,
|
128 |
-
PRIMARY KEY (id),
|
129 |
-
KEY form_id (form_id)
|
130 |
-
) {$charset_collate};";
|
131 |
-
|
132 |
-
dbDelta($sql);
|
133 |
-
|
134 |
-
/* Create/Upgrade Forms Table */
|
135 |
-
$sql = "CREATE TABLE {$forms_table} (
|
136 |
-
id int(11) NOT NULL auto_increment,
|
137 |
-
form_key varchar(255) default NULL,
|
138 |
-
name varchar(255) default NULL,
|
139 |
-
description text default NULL,
|
140 |
-
logged_in boolean default NULL,
|
141 |
-
editable boolean default NULL,
|
142 |
-
is_template boolean default 0,
|
143 |
-
default_template boolean default 0,
|
144 |
-
status varchar(255) default NULL,
|
145 |
-
prli_link_id int(11) default NULL,
|
146 |
-
options longtext default NULL,
|
147 |
-
created_at datetime NOT NULL,
|
148 |
-
PRIMARY KEY (id)
|
149 |
-
) {$charset_collate};";
|
150 |
-
|
151 |
-
dbDelta($sql);
|
152 |
-
|
153 |
-
/* Create/Upgrade Items Table */
|
154 |
-
$sql = "CREATE TABLE {$items_table} (
|
155 |
-
id int(11) NOT NULL auto_increment,
|
156 |
-
item_key varchar(255) default NULL,
|
157 |
-
name varchar(255) default NULL,
|
158 |
-
description text default NULL,
|
159 |
-
form_id int(11) default NULL,
|
160 |
-
created_at datetime NOT NULL,
|
161 |
-
PRIMARY KEY (id),
|
162 |
-
KEY form_id (form_id)
|
163 |
-
) {$charset_collate};";
|
164 |
-
|
165 |
-
dbDelta($sql);
|
166 |
-
|
167 |
-
/* Create/Upgrade Meta Table */
|
168 |
-
$sql = "CREATE TABLE {$item_metas_table} (
|
169 |
-
id int(11) NOT NULL auto_increment,
|
170 |
-
meta_key varchar(255) default NULL,
|
171 |
-
meta_value longtext default NULL,
|
172 |
-
field_id int(11) NOT NULL,
|
173 |
-
item_id int(11) NOT NULL,
|
174 |
-
created_at datetime NOT NULL,
|
175 |
-
PRIMARY KEY (id),
|
176 |
-
KEY field_id (field_id),
|
177 |
-
KEY item_id (item_id)
|
178 |
-
) {$charset_collate};";
|
179 |
-
|
180 |
-
dbDelta($sql);
|
181 |
-
|
182 |
-
/**** ADD DEFAULT TEMPLATES ****/
|
183 |
-
$templates = glob(FRM_TEMPLATES_PATH."/*.php");
|
184 |
-
|
185 |
-
for($i = count($templates) - 1; $i >= 0; $i--){
|
186 |
-
$filename = preg_replace("#".FRM_TEMPLATES_PATH."/#","",$templates[$i]);
|
187 |
-
$filename = str_replace('.php','', $filename);
|
188 |
-
$form = $frm_form->getAll("form_key='{$filename}' and is_template='1' and default_template='1'", '', ' LIMIT 1');
|
189 |
-
$values = FrmFormsHelper::setup_new_vars();
|
190 |
-
$values['form_key'] = $filename;
|
191 |
-
$values['is_template'] = $values['default_template'] = 1;
|
192 |
-
require_once($templates[$i]);
|
193 |
-
}
|
194 |
-
|
195 |
-
/***** SAVE DB VERSION *****/
|
196 |
-
update_option('frm_db_version',$db_version);
|
197 |
-
}
|
198 |
-
|
199 |
-
do_action('frm_after_install');
|
200 |
}
|
201 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
|
203 |
// Routes for wordpress pages -- we're just replacing content here folks.
|
204 |
function page_route($content){
|
@@ -229,10 +167,9 @@ class FrmAppController{
|
|
229 |
function standalone_route($controller, $action=''){
|
230 |
global $frm_forms_controller;
|
231 |
|
232 |
-
if($controller=='forms')
|
233 |
-
//if($action=='preview')
|
234 |
$frm_forms_controller->preview($this->get_param('form'));
|
235 |
-
|
236 |
do_action('frm_standalone_route', $controller, $action);
|
237 |
}
|
238 |
|
@@ -244,7 +181,8 @@ class FrmAppController{
|
|
244 |
|
245 |
function get_form_shortcode($atts){
|
246 |
global $frm_entries_controller;
|
247 |
-
extract(shortcode_atts(array('id' => '', 'key' => '', 'title' => false, 'description' => false), $atts));
|
|
|
248 |
return $frm_entries_controller->show_form($id, $key, $title, $description);
|
249 |
}
|
250 |
|
2 |
|
3 |
class FrmAppController{
|
4 |
function FrmAppController(){
|
5 |
+
add_action('admin_menu', array( &$this, 'menu' ), 1);
|
6 |
+
add_filter('frm_nav_array', array( &$this, 'frm_nav'), 1);
|
7 |
+
add_filter('plugin_action_links_'.FRM_PLUGIN_NAME.'/'.FRM_PLUGIN_NAME.'.php', array( &$this, 'settings_link'), 10, 2 );
|
8 |
+
add_action('after_plugin_row_'.FRM_PLUGIN_NAME.'/'.FRM_PLUGIN_NAME.'.php', array( &$this,'frmpro_action_needed'));
|
9 |
+
add_action('admin_notices', array( &$this,'frmpro_get_started_headline'));
|
10 |
+
add_filter('the_content', array( &$this, 'page_route' ), 1);
|
11 |
+
add_action('init', array(&$this, 'front_head'));
|
12 |
+
add_action('admin_init', array( &$this, 'admin_js'));
|
13 |
+
register_activation_hook(FRM_PATH."/formidable.php", array( &$this, 'install' ));
|
14 |
+
add_action('wp_ajax_frm_uninstall', array(&$this, 'uninstall') );
|
15 |
|
16 |
// Used to process standalone requests
|
17 |
+
add_action('init', array(&$this,'parse_standalone_request'));
|
18 |
|
19 |
//Shortcodes
|
20 |
+
add_shortcode('formidable', array(&$this,'get_form_shortcode'));
|
21 |
+
add_filter( 'widget_text', array(&$this,'widget_text_filter'), 9 );
|
22 |
}
|
23 |
|
24 |
function menu(){
|
25 |
+
if(current_user_can('administrator') and !current_user_can('frm_view_forms')){
|
26 |
+
global $wp_roles;
|
27 |
+
$frm_roles = FrmAppHelper::frm_capabilities();
|
28 |
+
foreach($frm_roles as $frm_role => $frm_role_description)
|
29 |
+
$wp_roles->add_cap( 'administrator', $frm_role );
|
30 |
+
}
|
31 |
+
global $frmpro_is_installed;
|
32 |
+
if(current_user_can('frm_view_forms')){
|
33 |
+
global $frm_forms_controller;
|
34 |
+
add_menu_page(FRM_PLUGIN_TITLE, FRM_PLUGIN_TITLE, 'frm_view_forms', FRM_PLUGIN_NAME, array($frm_forms_controller,'route'), FRM_URL . '/images/icon_16.png');
|
35 |
+
}elseif(current_user_can('frm_view_entries') and $frmpro_is_installed){
|
36 |
+
global $frmpro_entries_controller;
|
37 |
+
add_menu_page(FRM_PLUGIN_TITLE, FRM_PLUGIN_TITLE, 'frm_view_entries', FRM_PLUGIN_NAME, array($frmpro_entries_controller,'route'), FRM_URL . '/images/icon_16.png');
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
function frm_nav(){
|
42 |
+
$nav = array();
|
43 |
+
if(current_user_can('frm_view_forms'))
|
44 |
+
$nav[FRM_PLUGIN_NAME] = __('Forms', FRM_PLUGIN_NAME);
|
45 |
+
|
46 |
+
if(current_user_can('frm_edit_forms'))
|
47 |
+
$nav[FRM_PLUGIN_NAME . '-new'] = __('Create a Form', FRM_PLUGIN_NAME);
|
48 |
|
49 |
+
if(current_user_can('frm_view_forms'))
|
50 |
+
$nav[FRM_PLUGIN_NAME . '-templates'] = __('Templates', FRM_PLUGIN_NAME);
|
51 |
+
return $nav;
|
52 |
}
|
53 |
|
54 |
// Adds a settings link to the plugins page
|
55 |
function settings_link($links, $file){
|
56 |
$settings = '<a href="'.admin_url('admin.php?page='.FRM_PLUGIN_NAME).'">' . __('Settings', FRM_PLUGIN_NAME) . '</a>';
|
57 |
array_unshift($links, $settings);
|
58 |
+
|
59 |
return $links;
|
60 |
}
|
61 |
|
92 |
}
|
93 |
}
|
94 |
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
function admin_js(){
|
96 |
+
global $frm_version;
|
97 |
+
wp_enqueue_script('jquery');
|
98 |
+
wp_enqueue_script('jquery-ui-core');
|
99 |
+
if(!(isset($_GET) and isset($_GET['page'])) or (isset($_GET['page']) and preg_match('/formidable*/', $_GET['page'])))
|
100 |
+
wp_enqueue_script('jquery-tools', FRM_URL.'/js/jquery/jquery.tools.min.js', array('jquery'), '1.1.2');
|
101 |
+
if(isset($_GET) and isset($_GET['page']) and preg_match('/formidable*/', $_GET['page'])){
|
102 |
+
wp_enqueue_script('jquery-ui-sortable');
|
103 |
+
wp_enqueue_script('jquery-ui-draggable');
|
104 |
+
wp_enqueue_script('formidable', FRM_URL . '/js/formidable.js', array('jquery'), $frm_version);
|
105 |
+
wp_enqueue_style('formidable-admin', FRM_URL. '/css/frm_admin.css', $frm_version);
|
106 |
+
wp_enqueue_script('jquery-elastic', FRM_URL.'/js/jquery/jquery.elastic.js', array('jquery'));
|
107 |
+
add_thickbox();
|
108 |
+
}
|
109 |
}
|
110 |
|
111 |
function front_head(){
|
112 |
+
global $frm_settings, $frm_version;
|
113 |
+
|
114 |
if (IS_WPMU){
|
115 |
+
$db_version = 1.03; // this is the version of the database we're moving to
|
116 |
$old_db_version = get_option('frm_db_version');
|
117 |
if ($db_version != $old_db_version)
|
118 |
$this->install();
|
119 |
}
|
120 |
+
|
121 |
+
if(!is_admin() and !$frm_settings->custom_stylesheet){
|
122 |
+
$css = apply_filters('get_frm_stylesheet', FRM_URL .'/css/frm_display.css');
|
123 |
+
wp_enqueue_style('frm-forms', $css, array(), $frm_version);
|
124 |
+
}
|
125 |
}
|
126 |
|
127 |
function install(){
|
128 |
+
global $frmdb;
|
129 |
+
$frmdb->upgrade();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
}
|
131 |
|
132 |
+
function uninstall(){
|
133 |
+
if(current_user_can('administrator')){
|
134 |
+
global $frmdb;
|
135 |
+
$frmdb->uninstall();
|
136 |
+
wp_die(__('Formidable was successfully uninstalled.', 'formidable'));
|
137 |
+
}else
|
138 |
+
wp_die(__('You don\'t have permission to do that!', 'formidable'));
|
139 |
+
}
|
140 |
|
141 |
// Routes for wordpress pages -- we're just replacing content here folks.
|
142 |
function page_route($content){
|
167 |
function standalone_route($controller, $action=''){
|
168 |
global $frm_forms_controller;
|
169 |
|
170 |
+
if($controller=='forms' and $action != 'export' and $action != 'import')
|
|
|
171 |
$frm_forms_controller->preview($this->get_param('form'));
|
172 |
+
else
|
173 |
do_action('frm_standalone_route', $controller, $action);
|
174 |
}
|
175 |
|
181 |
|
182 |
function get_form_shortcode($atts){
|
183 |
global $frm_entries_controller;
|
184 |
+
extract(shortcode_atts(array('id' => '', 'key' => '', 'title' => false, 'description' => false, 'readonly' => false, 'entry_id' => false, 'fields' => array()), $atts));
|
185 |
+
do_action('formidable_shortcode_atts', compact('id', 'key', 'title', 'description', 'readonly', 'entry_id', 'fields'));
|
186 |
return $frm_entries_controller->show_form($id, $key, $title, $description);
|
187 |
}
|
188 |
|
classes/controllers/FrmEntriesController.php
CHANGED
@@ -4,22 +4,17 @@ class FrmEntriesController{
|
|
4 |
var $views;
|
5 |
|
6 |
function FrmEntriesController(){
|
7 |
-
add_action('admin_menu', array(
|
8 |
}
|
9 |
|
10 |
function menu(){
|
11 |
global $frmpro_is_installed;
|
12 |
if(!$frmpro_is_installed){
|
13 |
-
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' |'. __('Pro Entries', FRM_PLUGIN_NAME), __('Pro Entries', FRM_PLUGIN_NAME),
|
14 |
-
add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-entries', array($this,'head'));
|
15 |
}
|
16 |
}
|
17 |
|
18 |
-
function head(){
|
19 |
-
$css_file = FRM_URL. '/css/frm_admin.css';
|
20 |
-
include(FRM_VIEWS_PATH . '/shared/head.php');
|
21 |
-
}
|
22 |
-
|
23 |
function list_entries(){
|
24 |
require_once(FRM_VIEWS_PATH.'/frm-entries/list.php');
|
25 |
}
|
@@ -28,11 +23,21 @@ class FrmEntriesController{
|
|
28 |
global $frm_form, $user_ID;
|
29 |
if ($id) $form = $frm_form->getOne($id);
|
30 |
else if ($key) $form = $frm_form->getOne($key);
|
|
|
|
|
31 |
if (!$form or $form->is_template or $form->status == 'draft')
|
32 |
return __('Please select a valid form', FRM_PLUGIN_NAME);
|
33 |
-
else if ($form->logged_in and !$user_ID)
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
return FrmEntriesController::get_form(FRM_VIEWS_PATH.'/frm-entries/frm-entry.php', $form, $title, $description);
|
37 |
}
|
38 |
|
@@ -48,21 +53,21 @@ class FrmEntriesController{
|
|
48 |
}
|
49 |
|
50 |
function get_params($form=null){
|
51 |
-
global $
|
52 |
|
53 |
if(!$form)
|
54 |
$form = $frm_form->getAll('',' ORDER BY name',' LIMIT 1');
|
55 |
|
56 |
-
$action = apply_filters('frm_show_new_entry_page','new'
|
57 |
$default_values = array('id' => '', 'form_name' => '', 'paged' => 1, 'form' => $form->id, 'form_id' => $form->id, 'field_id' => '', 'search' => '', 'sort' => '', 'sdir' => '', 'action' => $action);
|
58 |
|
59 |
-
$posted_form_id =
|
60 |
-
if ($posted_form_id
|
61 |
-
$posted_form_id =
|
62 |
-
|
63 |
-
if ($form->id == $posted_form_id){
|
64 |
foreach ($default_values as $var => $default)
|
65 |
-
$values[$var] =
|
66 |
}else{
|
67 |
foreach ($default_values as $var => $default)
|
68 |
$values[$var] = $default;
|
4 |
var $views;
|
5 |
|
6 |
function FrmEntriesController(){
|
7 |
+
add_action('admin_menu', array( &$this, 'menu' ), 20);
|
8 |
}
|
9 |
|
10 |
function menu(){
|
11 |
global $frmpro_is_installed;
|
12 |
if(!$frmpro_is_installed){
|
13 |
+
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' |'. __('Pro Entries', FRM_PLUGIN_NAME), __('Pro Entries', FRM_PLUGIN_NAME), 'administrator', FRM_PLUGIN_NAME.'-entries',array($this,'list_entries'));
|
14 |
+
//add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-entries', array($this,'head'));
|
15 |
}
|
16 |
}
|
17 |
|
|
|
|
|
|
|
|
|
|
|
18 |
function list_entries(){
|
19 |
require_once(FRM_VIEWS_PATH.'/frm-entries/list.php');
|
20 |
}
|
23 |
global $frm_form, $user_ID;
|
24 |
if ($id) $form = $frm_form->getOne($id);
|
25 |
else if ($key) $form = $frm_form->getOne($key);
|
26 |
+
|
27 |
+
$form_options = stripslashes_deep(maybe_unserialize($form->options));
|
28 |
if (!$form or $form->is_template or $form->status == 'draft')
|
29 |
return __('Please select a valid form', FRM_PLUGIN_NAME);
|
30 |
+
else if ($form->logged_in and !$user_ID){
|
31 |
+
global $frm_settings;
|
32 |
+
return $frm_settings->login_msg;
|
33 |
+
}else if($form->logged_in and $user_ID and isset($form_options['logged_in_role']) and $form_options['logged_in_role'] != ''){
|
34 |
+
if(FrmAppHelper::user_has_permission($form_options['logged_in_role']))
|
35 |
+
return FrmEntriesController::get_form(FRM_VIEWS_PATH.'/frm-entries/frm-entry.php', $form, $title, $description);
|
36 |
+
else{
|
37 |
+
global $frm_settings;
|
38 |
+
return $frm_settings->login_msg;
|
39 |
+
}
|
40 |
+
}else
|
41 |
return FrmEntriesController::get_form(FRM_VIEWS_PATH.'/frm-entries/frm-entry.php', $form, $title, $description);
|
42 |
}
|
43 |
|
53 |
}
|
54 |
|
55 |
function get_params($form=null){
|
56 |
+
global $frm_form;
|
57 |
|
58 |
if(!$form)
|
59 |
$form = $frm_form->getAll('',' ORDER BY name',' LIMIT 1');
|
60 |
|
61 |
+
$action = apply_filters('frm_show_new_entry_page', FrmAppHelper::get_param('action', 'new'), $form);
|
62 |
$default_values = array('id' => '', 'form_name' => '', 'paged' => 1, 'form' => $form->id, 'form_id' => $form->id, 'field_id' => '', 'search' => '', 'sort' => '', 'sdir' => '', 'action' => $action);
|
63 |
|
64 |
+
$values['posted_form_id'] = FrmAppHelper::get_param('form_id');
|
65 |
+
if (!is_numeric($values['posted_form_id']))
|
66 |
+
$values['posted_form_id'] = FrmAppHelper::get_param('form');
|
67 |
+
|
68 |
+
if ($form->id == $values['posted_form_id']){ //if there are two forms on the same page, make sure not to submit both
|
69 |
foreach ($default_values as $var => $default)
|
70 |
+
$values[$var] = FrmAppHelper::get_param($var, $default);
|
71 |
}else{
|
72 |
foreach ($default_values as $var => $default)
|
73 |
$values[$var] = $default;
|
classes/controllers/FrmFieldsController.php
CHANGED
@@ -2,23 +2,24 @@
|
|
2 |
|
3 |
class FrmFieldsController{
|
4 |
function FrmFieldsController(){
|
5 |
-
add_action('wp_ajax_frm_insert_field', array(
|
6 |
-
add_action('wp_ajax_frm_field_name_in_place_edit', array(
|
7 |
-
add_action('wp_ajax_frm_field_desc_in_place_edit', array(
|
8 |
-
add_action('wp_ajax_frm_mark_required', array(
|
9 |
-
add_action('wp_ajax_frm_clear_on_focus', array(
|
10 |
-
add_action('wp_ajax_frm_default_blank', array(
|
11 |
-
add_action('wp_ajax_frm_delete_field', array(
|
12 |
-
add_action('wp_ajax_frm_add_field_option',array(
|
13 |
-
add_action('wp_ajax_frm_field_option_ipe', array(
|
14 |
-
add_action('wp_ajax_frm_delete_field_option',array(
|
15 |
-
add_action('wp_ajax_frm_update_field_order', array(
|
16 |
-
add_filter('frm_field_type',array(
|
17 |
-
add_filter('frm_display_field_options', array(
|
|
|
18 |
}
|
19 |
|
20 |
function create(){
|
21 |
-
global $frm_field;
|
22 |
$field_data = $_POST['field'];
|
23 |
$form_id = $_POST['form_id'];
|
24 |
|
@@ -39,7 +40,7 @@ class FrmFieldsController{
|
|
39 |
function edit_name(){
|
40 |
global $frm_field;
|
41 |
$id = str_replace('field_', '', $_POST['element_id']);
|
42 |
-
$values = array('name' => $_POST['update_value']);
|
43 |
if ($_POST['original_html'] == 'Untitled')
|
44 |
$values['field_key'] = $_POST['update_value'];
|
45 |
$form = $frm_field->update($id, $values);
|
@@ -88,7 +89,7 @@ class FrmFieldsController{
|
|
88 |
|
89 |
/* Field Options */
|
90 |
function add_option(){
|
91 |
-
global $frm_field;
|
92 |
|
93 |
$id = $_POST['field_id'];
|
94 |
$field = $frm_field->getOne($id);
|
@@ -169,5 +170,30 @@ class FrmFieldsController{
|
|
169 |
|
170 |
return $display;
|
171 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
172 |
}
|
173 |
?>
|
2 |
|
3 |
class FrmFieldsController{
|
4 |
function FrmFieldsController(){
|
5 |
+
add_action('wp_ajax_frm_insert_field', array(&$this, 'create') );
|
6 |
+
add_action('wp_ajax_frm_field_name_in_place_edit', array(&$this, 'edit_name') );
|
7 |
+
add_action('wp_ajax_frm_field_desc_in_place_edit', array(&$this, 'edit_description') );
|
8 |
+
add_action('wp_ajax_frm_mark_required', array(&$this, 'mark_required') );
|
9 |
+
add_action('wp_ajax_frm_clear_on_focus', array(&$this, 'clear_on_focus') );
|
10 |
+
add_action('wp_ajax_frm_default_blank', array(&$this, 'default_blank') );
|
11 |
+
add_action('wp_ajax_frm_delete_field', array(&$this, 'destroy') );
|
12 |
+
add_action('wp_ajax_frm_add_field_option',array(&$this, 'add_option'));
|
13 |
+
add_action('wp_ajax_frm_field_option_ipe', array(&$this, 'edit_option') );
|
14 |
+
add_action('wp_ajax_frm_delete_field_option',array(&$this, 'delete_option'));
|
15 |
+
add_action('wp_ajax_frm_update_field_order', array(&$this, 'update_order') );
|
16 |
+
add_filter('frm_field_type',array( &$this, 'change_type'));
|
17 |
+
add_filter('frm_display_field_options', array(&$this, 'display_field_options'));
|
18 |
+
add_action('frm_field_input_html', array(&$this,'input_html'));
|
19 |
}
|
20 |
|
21 |
function create(){
|
22 |
+
global $frm_field, $frm_ajax_url;
|
23 |
$field_data = $_POST['field'];
|
24 |
$form_id = $_POST['form_id'];
|
25 |
|
40 |
function edit_name(){
|
41 |
global $frm_field;
|
42 |
$id = str_replace('field_', '', $_POST['element_id']);
|
43 |
+
$values = array('name' => trim($_POST['update_value']));
|
44 |
if ($_POST['original_html'] == 'Untitled')
|
45 |
$values['field_key'] = $_POST['update_value'];
|
46 |
$form = $frm_field->update($id, $values);
|
89 |
|
90 |
/* Field Options */
|
91 |
function add_option(){
|
92 |
+
global $frm_field, $frm_ajax_url;
|
93 |
|
94 |
$id = $_POST['field_id'];
|
95 |
$field = $frm_field->getOne($id);
|
170 |
|
171 |
return $display;
|
172 |
}
|
173 |
+
|
174 |
+
function input_html($field){
|
175 |
+
$class = $field['type'];
|
176 |
+
if($field['type'] == 'date')
|
177 |
+
$class .= " frm_date";
|
178 |
+
|
179 |
+
$action = FrmAppHelper::get_param('action');
|
180 |
+
if(isset($field['required']) and $field['required']){
|
181 |
+
if($field['type'] == 'file' and $action == 'edit'){
|
182 |
+
//don't add the required class if this is a file upload when editing
|
183 |
+
}else
|
184 |
+
$class .= " required";
|
185 |
+
}
|
186 |
+
|
187 |
+
if(isset($field['size']) and $field['size'] > 0){
|
188 |
+
if($field['type'] != 'textarea')
|
189 |
+
echo ' size="'. $field['size'] .'"';
|
190 |
+
$class .= " auto_width";
|
191 |
+
}
|
192 |
+
if(isset($field['max']) and !in_array($field['type'], array('textarea','rte')))
|
193 |
+
echo ' maxlength="'. $field['max'] .'"';
|
194 |
+
if(isset($field['clear_on_focus']) and $field['clear_on_focus'])
|
195 |
+
echo ' onfocus="frmClearDefault(\''.$field['default_value'].'\', this)" onblur="frmReplaceDefault(\''.$field['default_value'].'\', this)"';
|
196 |
+
echo ' class="'.$class.'"';
|
197 |
+
}
|
198 |
}
|
199 |
?>
|
classes/controllers/FrmFormsController.php
CHANGED
@@ -2,24 +2,26 @@
|
|
2 |
|
3 |
class FrmFormsController{
|
4 |
function FrmFormsController(){
|
5 |
-
add_action('admin_menu', array(
|
6 |
-
add_action('admin_head-toplevel_page_'.FRM_PLUGIN_NAME, array(
|
7 |
-
add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-new', array(
|
8 |
-
add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-templates', array(
|
9 |
-
add_action('wp_ajax_frm_form_name_in_place_edit', array(
|
10 |
-
add_action('wp_ajax_frm_form_desc_in_place_edit', array(
|
11 |
-
add_action('wp_ajax_frm_delete_form_wo_fields',array(
|
12 |
}
|
13 |
|
14 |
function menu(){
|
15 |
-
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Forms', FRM_PLUGIN_NAME), __('Forms', FRM_PLUGIN_NAME),
|
16 |
-
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Create a Form', FRM_PLUGIN_NAME), __('Create a Form', FRM_PLUGIN_NAME),
|
17 |
-
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Templates', FRM_PLUGIN_NAME), __('Templates', FRM_PLUGIN_NAME),
|
18 |
}
|
19 |
|
20 |
function head(){
|
21 |
-
$
|
22 |
-
|
|
|
|
|
23 |
require(FRM_VIEWS_PATH . '/shared/head.php');
|
24 |
}
|
25 |
|
@@ -35,9 +37,9 @@ class FrmFormsController{
|
|
35 |
}
|
36 |
|
37 |
function new_form(){
|
38 |
-
global $
|
39 |
|
40 |
-
$action =
|
41 |
if ($action == 'create')
|
42 |
return $this->create();
|
43 |
else if ($action == 'new'){
|
@@ -52,9 +54,9 @@ class FrmFormsController{
|
|
52 |
}
|
53 |
|
54 |
function create(){
|
55 |
-
global $
|
56 |
$errors = $frm_form->validate($_POST);
|
57 |
-
$id =
|
58 |
|
59 |
if( count($errors) > 0 ){
|
60 |
$frm_field_selection = FrmFieldsHelper::field_selection();
|
@@ -73,14 +75,13 @@ class FrmFormsController{
|
|
73 |
}
|
74 |
|
75 |
function edit(){
|
76 |
-
|
77 |
-
$id = $frm_app_controller->get_param('id');
|
78 |
return $this->get_edit_vars($id);
|
79 |
}
|
80 |
|
81 |
function edit_name(){
|
82 |
global $frm_form;
|
83 |
-
$values = array('name' => $_POST['update_value']);
|
84 |
$form = $frm_form->update($_POST['form_id'], $values);
|
85 |
echo stripslashes($_POST['update_value']);
|
86 |
die();
|
@@ -94,9 +95,9 @@ class FrmFormsController{
|
|
94 |
}
|
95 |
|
96 |
function update(){
|
97 |
-
global $frm_form
|
98 |
$errors = $frm_form->validate($_POST);
|
99 |
-
$id =
|
100 |
if( count($errors) > 0 ){
|
101 |
return $this->get_edit_vars($id, $errors);
|
102 |
}else{
|
@@ -138,8 +139,8 @@ class FrmFormsController{
|
|
138 |
|
139 |
header("Content-Type: text/html; charset=utf-8");
|
140 |
|
141 |
-
$plugin =
|
142 |
-
$controller =
|
143 |
$key = (isset($_GET['form']) ? $_GET['form'] : (isset($_POST['form']) ? $_POST['form'] : ''));
|
144 |
$form = $frm_form->getAll("form_key='$key'",'',' LIMIT 1');
|
145 |
if (!$form) $form = $frm_form->getAll('','',' LIMIT 1');
|
@@ -151,6 +152,9 @@ class FrmFormsController{
|
|
151 |
}
|
152 |
|
153 |
function destroy(){
|
|
|
|
|
|
|
154 |
global $frm_form;
|
155 |
$params = $this->get_params();
|
156 |
$message = '';
|
@@ -160,15 +164,15 @@ class FrmFormsController{
|
|
160 |
}
|
161 |
|
162 |
function destroy_wo_fields(){
|
163 |
-
global $frm_field, $frm_form, $
|
164 |
$id = $_POST['form_id'];
|
165 |
-
if ($
|
166 |
$frm_form->destroy($id);
|
167 |
die();
|
168 |
}
|
169 |
|
170 |
function display_forms_list($params=false, $message='', $page_params_ov = false, $current_page_ov = false, $errors = array()){
|
171 |
-
global $wpdb, $frm_app_helper, $frm_form, $frm_entry, $frm_page_size, $frmpro_is_installed;
|
172 |
|
173 |
if(!$params)
|
174 |
$params = $this->get_params();
|
@@ -201,9 +205,9 @@ class FrmFormsController{
|
|
201 |
$sdir_str = $form_vars['sdir_str'];
|
202 |
$search_str = $form_vars['search_str'];
|
203 |
|
204 |
-
$record_count = $frm_app_helper->getRecordCount($form_vars['where_clause'], $
|
205 |
-
$page_count = $frm_app_helper->getPageCount($frm_page_size,$form_vars['where_clause'], $
|
206 |
-
$forms = $frm_app_helper->getPage($current_page, $frm_page_size, $form_vars['where_clause'], $form_vars['order_by'], $
|
207 |
$page_last_record = $frm_app_helper->getLastRecordNum($record_count,$current_page,$frm_page_size);
|
208 |
$page_first_record = $frm_app_helper->getFirstRecordNum($record_count,$current_page,$frm_page_size);
|
209 |
require_once(FRM_VIEWS_PATH.'/frm-forms/list.php');
|
@@ -269,7 +273,7 @@ class FrmFormsController{
|
|
269 |
}
|
270 |
|
271 |
function get_edit_vars($id, $errors = '', $message='', $create_link=false){
|
272 |
-
global $frm_app_helper, $frm_entry, $frm_form, $frm_field, $frmpro_is_installed;
|
273 |
$record = $frm_form->getOne( $id );
|
274 |
$items = $frm_entry->getAll('',' ORDER BY it.name');
|
275 |
$frm_field_selection = FrmFieldsHelper::field_selection();
|
@@ -284,17 +288,37 @@ class FrmFormsController{
|
|
284 |
}
|
285 |
|
286 |
function get_params(){
|
287 |
-
global $frm_app_controller;
|
288 |
$values = array();
|
289 |
foreach (array('template' => 0,'id' => '','paged' => 1,'form' => '','search' => '','sort' => '','sdir' => '') as $var => $default)
|
290 |
-
$values[$var] =
|
291 |
|
292 |
return $values;
|
293 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
294 |
|
295 |
function route(){
|
296 |
-
$action =
|
297 |
-
if($action=='new')
|
298 |
return $this->new_form();
|
299 |
else if($action=='create')
|
300 |
return $this->create();
|
2 |
|
3 |
class FrmFormsController{
|
4 |
function FrmFormsController(){
|
5 |
+
add_action('admin_menu', array( &$this, 'menu' ));
|
6 |
+
add_action('admin_head-toplevel_page_'.FRM_PLUGIN_NAME, array(&$this,'head'));
|
7 |
+
add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-new', array(&$this,'head'));
|
8 |
+
add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-templates', array(&$this,'head'));
|
9 |
+
add_action('wp_ajax_frm_form_name_in_place_edit', array(&$this, 'edit_name') );
|
10 |
+
add_action('wp_ajax_frm_form_desc_in_place_edit', array(&$this, 'edit_description') );
|
11 |
+
add_action('wp_ajax_frm_delete_form_wo_fields',array(&$this, 'destroy_wo_fields'));
|
12 |
}
|
13 |
|
14 |
function menu(){
|
15 |
+
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Forms', FRM_PLUGIN_NAME), __('Forms', FRM_PLUGIN_NAME), 'frm_view_forms', FRM_PLUGIN_NAME, array(&$this,'route'));
|
16 |
+
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Create a Form', FRM_PLUGIN_NAME), __('Create a Form', FRM_PLUGIN_NAME), 'frm_edit_forms', FRM_PLUGIN_NAME.'-new', array(&$this,'new_form'));
|
17 |
+
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Templates', FRM_PLUGIN_NAME), __('Templates', FRM_PLUGIN_NAME), 'frm_view_forms', FRM_PLUGIN_NAME.'-templates', array(&$this, 'template_list'));
|
18 |
}
|
19 |
|
20 |
function head(){
|
21 |
+
global $frm_settings;
|
22 |
+
if(!$frm_settings->custom_stylesheet)
|
23 |
+
$css_file = apply_filters('get_frm_stylesheet', FRM_URL .'/css/frm_display.css');
|
24 |
+
$js_file = array(FRM_URL . '/js/jquery/jquery-ui-themepicker.js', FRM_URL.'/js/jquery/jquery.editinplace.packed.js');
|
25 |
require(FRM_VIEWS_PATH . '/shared/head.php');
|
26 |
}
|
27 |
|
37 |
}
|
38 |
|
39 |
function new_form(){
|
40 |
+
global $frm_form, $frmpro_is_installed, $frm_ajax_url;
|
41 |
|
42 |
+
$action = FrmAppHelper::get_param('action');
|
43 |
if ($action == 'create')
|
44 |
return $this->create();
|
45 |
else if ($action == 'new'){
|
54 |
}
|
55 |
|
56 |
function create(){
|
57 |
+
global $frm_app_helper, $frm_entry, $frm_form, $frm_field, $frmpro_is_installed;
|
58 |
$errors = $frm_form->validate($_POST);
|
59 |
+
$id = FrmAppHelper::get_param('id');
|
60 |
|
61 |
if( count($errors) > 0 ){
|
62 |
$frm_field_selection = FrmFieldsHelper::field_selection();
|
75 |
}
|
76 |
|
77 |
function edit(){
|
78 |
+
$id = FrmAppHelper::get_param('id');
|
|
|
79 |
return $this->get_edit_vars($id);
|
80 |
}
|
81 |
|
82 |
function edit_name(){
|
83 |
global $frm_form;
|
84 |
+
$values = array('name' => trim($_POST['update_value']));
|
85 |
$form = $frm_form->update($_POST['form_id'], $values);
|
86 |
echo stripslashes($_POST['update_value']);
|
87 |
die();
|
95 |
}
|
96 |
|
97 |
function update(){
|
98 |
+
global $frm_form;
|
99 |
$errors = $frm_form->validate($_POST);
|
100 |
+
$id = FrmAppHelper::get_param('id');
|
101 |
if( count($errors) > 0 ){
|
102 |
return $this->get_edit_vars($id, $errors);
|
103 |
}else{
|
139 |
|
140 |
header("Content-Type: text/html; charset=utf-8");
|
141 |
|
142 |
+
$plugin = FrmAppHelper::get_param('plugin');
|
143 |
+
$controller = FrmAppHelper::get_param('controller');
|
144 |
$key = (isset($_GET['form']) ? $_GET['form'] : (isset($_POST['form']) ? $_POST['form'] : ''));
|
145 |
$form = $frm_form->getAll("form_key='$key'",'',' LIMIT 1');
|
146 |
if (!$form) $form = $frm_form->getAll('','',' LIMIT 1');
|
152 |
}
|
153 |
|
154 |
function destroy(){
|
155 |
+
if(!current_user_can('frm_delete_forms'))
|
156 |
+
wp_die(__('You don\'t have permission to delete forms', 'formidable'));
|
157 |
+
|
158 |
global $frm_form;
|
159 |
$params = $this->get_params();
|
160 |
$message = '';
|
164 |
}
|
165 |
|
166 |
function destroy_wo_fields(){
|
167 |
+
global $frm_field, $frm_form, $frmdb;
|
168 |
$id = $_POST['form_id'];
|
169 |
+
if ($frmdb->get_count($frmdb->fields, array('form_id' => $id)) <= 0)
|
170 |
$frm_form->destroy($id);
|
171 |
die();
|
172 |
}
|
173 |
|
174 |
function display_forms_list($params=false, $message='', $page_params_ov = false, $current_page_ov = false, $errors = array()){
|
175 |
+
global $wpdb, $frmdb, $frm_app_helper, $frm_form, $frm_entry, $frm_page_size, $frmpro_is_installed;
|
176 |
|
177 |
if(!$params)
|
178 |
$params = $this->get_params();
|
205 |
$sdir_str = $form_vars['sdir_str'];
|
206 |
$search_str = $form_vars['search_str'];
|
207 |
|
208 |
+
$record_count = $frm_app_helper->getRecordCount($form_vars['where_clause'], $frmdb->forms);
|
209 |
+
$page_count = $frm_app_helper->getPageCount($frm_page_size,$form_vars['where_clause'], $frmdb->forms);
|
210 |
+
$forms = $frm_app_helper->getPage($current_page, $frm_page_size, $form_vars['where_clause'], $form_vars['order_by'], $frmdb->forms);
|
211 |
$page_last_record = $frm_app_helper->getLastRecordNum($record_count,$current_page,$frm_page_size);
|
212 |
$page_first_record = $frm_app_helper->getFirstRecordNum($record_count,$current_page,$frm_page_size);
|
213 |
require_once(FRM_VIEWS_PATH.'/frm-forms/list.php');
|
273 |
}
|
274 |
|
275 |
function get_edit_vars($id, $errors = '', $message='', $create_link=false){
|
276 |
+
global $frm_app_helper, $frm_entry, $frm_form, $frm_field, $frmpro_is_installed, $frm_ajax_url;
|
277 |
$record = $frm_form->getOne( $id );
|
278 |
$items = $frm_entry->getAll('',' ORDER BY it.name');
|
279 |
$frm_field_selection = FrmFieldsHelper::field_selection();
|
288 |
}
|
289 |
|
290 |
function get_params(){
|
|
|
291 |
$values = array();
|
292 |
foreach (array('template' => 0,'id' => '','paged' => 1,'form' => '','search' => '','sort' => '','sdir' => '') as $var => $default)
|
293 |
+
$values[$var] = FrmAppHelper::get_param($var, $default);
|
294 |
|
295 |
return $values;
|
296 |
}
|
297 |
+
|
298 |
+
function add_default_templates($path, $default=true){
|
299 |
+
global $frm_form, $frm_field;
|
300 |
+
$templates = glob($path."/*.php");
|
301 |
+
|
302 |
+
for($i = count($templates) - 1; $i >= 0; $i--){
|
303 |
+
$filename = str_replace($path."/","",$templates[$i]);
|
304 |
+
$filename = str_replace('.php','', $filename);
|
305 |
+
$template_query = "form_key='{$filename}' and is_template='1'";
|
306 |
+
if($default) $template_query .= " and default_template='1'";
|
307 |
+
$form = $frm_form->getAll($template_query, '', ' LIMIT 1');
|
308 |
+
|
309 |
+
$values = FrmFormsHelper::setup_new_vars();
|
310 |
+
$values['form_key'] = $filename;
|
311 |
+
$values['is_template'] = 1;
|
312 |
+
$values['status'] = 'published';
|
313 |
+
if($default) $values['default_template'] = 1;
|
314 |
+
|
315 |
+
require_once($templates[$i]);
|
316 |
+
}
|
317 |
+
}
|
318 |
|
319 |
function route(){
|
320 |
+
$action = FrmAppHelper::get_param('action');
|
321 |
+
if($action == 'new')
|
322 |
return $this->new_form();
|
323 |
else if($action=='create')
|
324 |
return $this->create();
|
classes/controllers/FrmSettingsController.php
CHANGED
@@ -2,13 +2,13 @@
|
|
2 |
|
3 |
class FrmSettingsController{
|
4 |
function FrmSettingsController(){
|
5 |
-
add_action('admin_menu', array(
|
6 |
-
add_action('admin_menu', array(
|
7 |
-
add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-settings', array($this,'head'));
|
8 |
}
|
9 |
|
10 |
function menu(){
|
11 |
-
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Settings', FRM_PLUGIN_NAME), __('Settings', FRM_PLUGIN_NAME),
|
12 |
}
|
13 |
|
14 |
function pro_menu(){
|
@@ -16,21 +16,17 @@ class FrmSettingsController{
|
|
16 |
if (IS_WPMU and !is_site_admin() and get_site_option($frm_update->pro_wpmu_store))
|
17 |
return;
|
18 |
|
19 |
-
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. FRM_PLUGIN_TITLE . ' Pro', FRM_PLUGIN_TITLE . ' Pro',
|
20 |
-
}
|
21 |
-
|
22 |
-
function head(){
|
23 |
-
$css_file = array('frm_admin' => FRM_URL. '/css/frm_admin.css');
|
24 |
-
require(FRM_VIEWS_PATH . '/shared/head.php');
|
25 |
}
|
26 |
|
27 |
function display_form(){
|
28 |
-
global $frm_settings;
|
|
|
29 |
require_once(FRM_VIEWS_PATH . '/frm-settings/form.php');
|
30 |
}
|
31 |
|
32 |
function process_form(){
|
33 |
-
global $frm_settings;
|
34 |
|
35 |
//$errors = $frm_settings->validate($_POST,array());
|
36 |
$errors = array();
|
@@ -40,14 +36,13 @@ class FrmSettingsController{
|
|
40 |
$frm_settings->store();
|
41 |
$message = __('Settings Saved', FRM_PLUGIN_NAME);
|
42 |
}
|
43 |
-
|
44 |
require_once(FRM_VIEWS_PATH . '/frm-settings/form.php');
|
45 |
}
|
46 |
|
47 |
function route(){
|
48 |
-
|
49 |
-
$action
|
50 |
-
if($action=='process-form')
|
51 |
return $this->process_form();
|
52 |
else
|
53 |
return $this->display_form();
|
2 |
|
3 |
class FrmSettingsController{
|
4 |
function FrmSettingsController(){
|
5 |
+
add_action('admin_menu', array( &$this, 'menu' ), 25);
|
6 |
+
add_action('admin_menu', array( &$this, 'pro_menu' ), 19);
|
7 |
+
//add_action('admin_head-'.FRM_PLUGIN_NAME.'_page_'.FRM_PLUGIN_NAME.'-settings', array($this,'head'));
|
8 |
}
|
9 |
|
10 |
function menu(){
|
11 |
+
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. __('Settings', FRM_PLUGIN_NAME), __('Settings', FRM_PLUGIN_NAME), 'frm_change_settings', FRM_PLUGIN_NAME.'-settings', array($this,'route'));
|
12 |
}
|
13 |
|
14 |
function pro_menu(){
|
16 |
if (IS_WPMU and !is_site_admin() and get_site_option($frm_update->pro_wpmu_store))
|
17 |
return;
|
18 |
|
19 |
+
add_submenu_page(FRM_PLUGIN_NAME, FRM_PLUGIN_TITLE .' | '. FRM_PLUGIN_TITLE . ' Pro', FRM_PLUGIN_TITLE . ' Pro', 'administrator', FRM_PLUGIN_NAME.'-pro-settings', array($frm_update,'pro_cred_form'));
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
21 |
|
22 |
function display_form(){
|
23 |
+
global $frm_settings, $frm_ajax_url;
|
24 |
+
$frm_roles = FrmAppHelper::frm_capabilities();
|
25 |
require_once(FRM_VIEWS_PATH . '/frm-settings/form.php');
|
26 |
}
|
27 |
|
28 |
function process_form(){
|
29 |
+
global $frm_settings, $frm_ajax_url;
|
30 |
|
31 |
//$errors = $frm_settings->validate($_POST,array());
|
32 |
$errors = array();
|
36 |
$frm_settings->store();
|
37 |
$message = __('Settings Saved', FRM_PLUGIN_NAME);
|
38 |
}
|
39 |
+
$frm_roles = FrmAppHelper::frm_capabilities();
|
40 |
require_once(FRM_VIEWS_PATH . '/frm-settings/form.php');
|
41 |
}
|
42 |
|
43 |
function route(){
|
44 |
+
$action = FrmAppHelper::get_param('action');
|
45 |
+
if($action == 'process-form')
|
|
|
46 |
return $this->process_form();
|
47 |
else
|
48 |
return $this->display_form();
|
classes/controllers/FrmStatisticsController.php
CHANGED
@@ -2,13 +2,13 @@
|
|
2 |
|
3 |
class FrmStatisticsController{
|
4 |
function FrmStatisticsController(){
|
5 |
-
add_action('admin_menu', array(
|
6 |
}
|
7 |
|
8 |
function menu(){
|
9 |
global $frmpro_is_installed;
|
10 |
if(!$frmpro_is_installed)
|
11 |
-
add_submenu_page(FRM_PLUGIN_TITLE, FRM_PLUGIN_TITLE .' | Statistics', 'Statistics',
|
12 |
}
|
13 |
|
14 |
function list_entries(){
|
2 |
|
3 |
class FrmStatisticsController{
|
4 |
function FrmStatisticsController(){
|
5 |
+
add_action('admin_menu', array( &$this, 'menu' ), 30);
|
6 |
}
|
7 |
|
8 |
function menu(){
|
9 |
global $frmpro_is_installed;
|
10 |
if(!$frmpro_is_installed)
|
11 |
+
add_submenu_page(FRM_PLUGIN_TITLE, FRM_PLUGIN_TITLE .' | Statistics', 'Statistics', 'administrator', FRM_PLUGIN_TITLE.'-statistics',array($this,''));
|
12 |
}
|
13 |
|
14 |
function list_entries(){
|
classes/helpers/FrmAppHelper.php
CHANGED
@@ -3,15 +3,17 @@
|
|
3 |
class FrmAppHelper{
|
4 |
function FrmAppHelper(){}
|
5 |
|
|
|
|
|
|
|
|
|
6 |
function get_pages(){
|
7 |
-
return get_posts( array('post_type' => 'page', 'post_status' => 'published', 'numberposts' => 99, '
|
8 |
}
|
9 |
|
10 |
function wp_pages_dropdown($field_name, $page_id){
|
11 |
-
|
12 |
-
|
13 |
-
$field_value = $frm_app_controller->get_param($field_name);
|
14 |
-
$pages = get_posts( array('post_type' => 'page', 'post_status' => 'published', 'numberposts' => 99, 'order_by' => 'post_title', 'order' => 'ASC'));
|
15 |
?>
|
16 |
<select name="<?php echo $field_name; ?>" id="<?php echo $field_name; ?>" class="frm-dropdown frm-pages-dropdown">
|
17 |
<option value=""></option>
|
@@ -21,28 +23,85 @@ class FrmAppHelper{
|
|
21 |
</select>
|
22 |
<?php
|
23 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
function value_is_checked_with_array($field_name, $index, $field_value){
|
26 |
if( ( $_POST['action'] == 'process_form' and isset( $_POST[ $field_name ][ $index ] ) ) or ( $_POST['action'] != 'process_form' and isset($field_value) ) )
|
27 |
echo ' checked="checked"';
|
28 |
}
|
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
function get_unique_key($name='', $table_name, $column, $id = 0,$num_chars = 6){
|
31 |
global $wpdb;
|
32 |
-
|
33 |
if ($name == ''){
|
34 |
$max_slug_value = pow(36,$num_chars);
|
35 |
$min_slug_value = 37; // we want to have at least 2 characters in the slug
|
36 |
$key = base_convert( rand($min_slug_value,$max_slug_value), 10, 36 );
|
37 |
}else
|
38 |
$key = sanitize_title_with_dashes($name);
|
39 |
-
|
40 |
-
if (is_numeric($key))
|
41 |
$key = $key .'a';
|
42 |
|
43 |
$query = "SELECT $column FROM $table_name WHERE $column = %s AND ID != %d LIMIT 1";
|
44 |
$key_check = $wpdb->get_var($wpdb->prepare($query, $key, $id));
|
45 |
-
|
|
|
46 |
$suffix = 2;
|
47 |
do {
|
48 |
$alt_post_name = substr($key, 0, 200-(strlen($suffix)+1)). "$suffix";
|
@@ -57,16 +116,16 @@ class FrmAppHelper{
|
|
57 |
//Editing a Form or Entry
|
58 |
function setup_edit_vars($record, $table, $fields='', $default=false){
|
59 |
if(!$record) return false;
|
60 |
-
global $frm_entry_meta, $frm_form, $
|
61 |
$values = array();
|
62 |
|
63 |
$values['id'] = $record->id;
|
64 |
|
65 |
foreach (array('name' => $record->name, 'description' => $record->description) as $var => $default_val)
|
66 |
-
$values[$var] = stripslashes(
|
67 |
$values['description'] = wpautop($values['description']);
|
68 |
$values['fields'] = array();
|
69 |
-
if ($fields){
|
70 |
foreach($fields as $field){
|
71 |
|
72 |
if ($default)
|
@@ -78,7 +137,7 @@ class FrmAppHelper{
|
|
78 |
$field_type = isset($_POST['field_options']['type_'.$field->id]) ? $_POST['field_options']['type_'.$field->id] : $field->type;
|
79 |
$new_value = (isset($_POST['item_meta'][$field->id])) ? $_POST['item_meta'][$field->id] : $meta_value;
|
80 |
$new_value = stripslashes_deep(maybe_unserialize($new_value));
|
81 |
-
|
82 |
$field_array = array('id' => $field->id,
|
83 |
'value' => str_replace('"', '"', $new_value),
|
84 |
'default_value' => str_replace('"', '"', stripslashes($field->default_value)),
|
@@ -90,13 +149,18 @@ class FrmAppHelper{
|
|
90 |
'field_key' => $field->field_key,
|
91 |
'field_order' => $field->field_order,
|
92 |
'form_id' => $field->form_id);
|
93 |
-
|
94 |
-
foreach (array('size' => '', 'max' => '', 'label' => 'top', 'invalid' => '', 'required_indicator' => '*', 'blank' => '', 'clear_on_focus' => 0, 'custom_html' => '', 'default_blank' => 0) as $opt => $default_opt)
|
95 |
-
$field_array[$opt] = ($_POST and isset($_POST['field_options'][$opt.'_'.$field->id]) ) ? $_POST['field_options'][$opt.'_'.$field->id] : (isset($field_options[$opt]) ? $field_options[$opt] : $default_opt);
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
if ($field_array['custom_html'] == '')
|
98 |
$field_array['custom_html'] = FrmFieldsHelper::get_default_html($field_type);
|
99 |
-
|
100 |
$values['fields'][] = apply_filters('frm_setup_edit_fields_vars', stripslashes_deep($field_array), $field, $values['id']);
|
101 |
}
|
102 |
}
|
@@ -111,16 +175,23 @@ class FrmAppHelper{
|
|
111 |
$options = stripslashes_deep(unserialize($form->options));
|
112 |
if (is_array($options)){
|
113 |
foreach ($options as $opt => $value)
|
114 |
-
$values[$opt] =
|
115 |
}
|
116 |
}
|
117 |
|
118 |
$email = get_option('admin_email');
|
119 |
-
foreach (array('custom_style' => $frm_settings->custom_style, 'email_to' => $email
|
120 |
if (!isset($values[$opt]))
|
121 |
$values[$opt] = ($_POST and isset($_POST['options'][$opt])) ? $_POST['options'][$opt] : $default;
|
122 |
}
|
123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
if (!isset($values['custom_style']))
|
125 |
$values['custom_style'] = ($_POST and isset($_POST['options']['custom_style'])) ? $_POST['options']['custom_style'] : $frm_settings->custom_style;
|
126 |
|
3 |
class FrmAppHelper{
|
4 |
function FrmAppHelper(){}
|
5 |
|
6 |
+
function get_param($param, $default=''){
|
7 |
+
return (isset($_POST[$param])?$_POST[$param]:(isset($_GET[$param])?$_GET[$param]:$default));
|
8 |
+
}
|
9 |
+
|
10 |
function get_pages(){
|
11 |
+
return get_posts( array('post_type' => 'page', 'post_status' => 'published', 'numberposts' => 99, 'orderby' => 'title', 'order' => 'ASC'));
|
12 |
}
|
13 |
|
14 |
function wp_pages_dropdown($field_name, $page_id){
|
15 |
+
$field_value = FrmAppHelper::get_param($field_name);
|
16 |
+
$pages = FrmAppHelper::get_pages();
|
|
|
|
|
17 |
?>
|
18 |
<select name="<?php echo $field_name; ?>" id="<?php echo $field_name; ?>" class="frm-dropdown frm-pages-dropdown">
|
19 |
<option value=""></option>
|
23 |
</select>
|
24 |
<?php
|
25 |
}
|
26 |
+
|
27 |
+
function wp_roles_dropdown($field_name, $capability){
|
28 |
+
$field_value = FrmAppHelper::get_param($field_name);
|
29 |
+
$editable_roles = get_editable_roles();
|
30 |
+
|
31 |
+
?>
|
32 |
+
<select name="<?php echo $field_name; ?>" id="<?php echo $field_name; ?>" class="frm-dropdown frm-pages-dropdown">
|
33 |
+
<?php foreach($editable_roles as $role => $details){
|
34 |
+
$name = translate_user_role($details['name'] ); ?>
|
35 |
+
<option value="<?php echo esc_attr($role) ?>" <?php echo (((isset($_POST[$field_name]) and $_POST[$field_name] == $role) or (!isset($_POST[$field_name]) and $capability == $role))?' selected="selected"':''); ?>><?php echo $name ?> </option>
|
36 |
+
<?php } ?>
|
37 |
+
</select>
|
38 |
+
<?php
|
39 |
+
}
|
40 |
+
|
41 |
+
function frm_capabilities(){
|
42 |
+
global $frmpro_is_installed;
|
43 |
+
$cap = array(
|
44 |
+
'frm_view_forms' => __('View Forms and Templates', 'formidable'),
|
45 |
+
'frm_edit_forms' => __('Create/Edit Forms and Templates', 'formidable'),
|
46 |
+
'frm_delete_forms' => __('Delete Forms and Templates', 'formidable'),
|
47 |
+
'frm_change_settings' => __('Access this Settings Page', 'formidable')
|
48 |
+
);
|
49 |
+
if($frmpro_is_installed){
|
50 |
+
$cap['frm_view_entries'] = __('View Entries from Admin Area', 'formidable');
|
51 |
+
$cap['frm_create_entries'] = __('Create Entries from Admin Area', 'formidable');
|
52 |
+
$cap['frm_edit_entries'] = __('Edit Entries from Admin Area', 'formidable');
|
53 |
+
$cap['frm_delete_entries'] = __('Delete Entries from Admin Area', 'formidable');
|
54 |
+
$cap['frm_view_reports'] = __('View Reports', 'formidable');
|
55 |
+
$cap['frm_edit_displays'] = __('Create/Edit Custom Displays', 'formidable');
|
56 |
+
}
|
57 |
+
return $cap;
|
58 |
+
}
|
59 |
+
|
60 |
+
function user_has_permission($needed_role){
|
61 |
+
if ($needed_role == '' or
|
62 |
+
($needed_role == 'administrator' and current_user_can('administrator')) or
|
63 |
+
($needed_role == 'subscriber' and current_user_can('level_0')) or
|
64 |
+
($needed_role == 'contributer' and current_user_can('level_1')) or
|
65 |
+
($needed_role == 'author' and (current_user_can('author') or current_user_can('editor') or current_user_can('administrator'))) or
|
66 |
+
($needed_role == 'editor' and (current_user_can('editor') or current_user_can('administrator'))) )
|
67 |
+
return true;
|
68 |
+
else
|
69 |
+
return false;
|
70 |
+
}
|
71 |
|
72 |
function value_is_checked_with_array($field_name, $index, $field_value){
|
73 |
if( ( $_POST['action'] == 'process_form' and isset( $_POST[ $field_name ][ $index ] ) ) or ( $_POST['action'] != 'process_form' and isset($field_value) ) )
|
74 |
echo ' checked="checked"';
|
75 |
}
|
76 |
|
77 |
+
function get_file_contents($filename){
|
78 |
+
if (is_file($filename)){
|
79 |
+
ob_start();
|
80 |
+
include $filename;
|
81 |
+
$contents = ob_get_contents();
|
82 |
+
ob_end_clean();
|
83 |
+
return $contents;
|
84 |
+
}
|
85 |
+
return false;
|
86 |
+
}
|
87 |
+
|
88 |
function get_unique_key($name='', $table_name, $column, $id = 0,$num_chars = 6){
|
89 |
global $wpdb;
|
90 |
+
|
91 |
if ($name == ''){
|
92 |
$max_slug_value = pow(36,$num_chars);
|
93 |
$min_slug_value = 37; // we want to have at least 2 characters in the slug
|
94 |
$key = base_convert( rand($min_slug_value,$max_slug_value), 10, 36 );
|
95 |
}else
|
96 |
$key = sanitize_title_with_dashes($name);
|
97 |
+
|
98 |
+
if (is_numeric($key) or in_array($key, array('id','key','created-at', 'detaillink', 'editlink', 'siteurl', 'evenodd')))
|
99 |
$key = $key .'a';
|
100 |
|
101 |
$query = "SELECT $column FROM $table_name WHERE $column = %s AND ID != %d LIMIT 1";
|
102 |
$key_check = $wpdb->get_var($wpdb->prepare($query, $key, $id));
|
103 |
+
|
104 |
+
if ($key_check or is_numeric($key_check)){
|
105 |
$suffix = 2;
|
106 |
do {
|
107 |
$alt_post_name = substr($key, 0, 200-(strlen($suffix)+1)). "$suffix";
|
116 |
//Editing a Form or Entry
|
117 |
function setup_edit_vars($record, $table, $fields='', $default=false){
|
118 |
if(!$record) return false;
|
119 |
+
global $frm_entry_meta, $frm_form, $frm_settings;
|
120 |
$values = array();
|
121 |
|
122 |
$values['id'] = $record->id;
|
123 |
|
124 |
foreach (array('name' => $record->name, 'description' => $record->description) as $var => $default_val)
|
125 |
+
$values[$var] = stripslashes(FrmAppHelper::get_param($var, $default_val));
|
126 |
$values['description'] = wpautop($values['description']);
|
127 |
$values['fields'] = array();
|
128 |
+
if ($fields){
|
129 |
foreach($fields as $field){
|
130 |
|
131 |
if ($default)
|
137 |
$field_type = isset($_POST['field_options']['type_'.$field->id]) ? $_POST['field_options']['type_'.$field->id] : $field->type;
|
138 |
$new_value = (isset($_POST['item_meta'][$field->id])) ? $_POST['item_meta'][$field->id] : $meta_value;
|
139 |
$new_value = stripslashes_deep(maybe_unserialize($new_value));
|
140 |
+
|
141 |
$field_array = array('id' => $field->id,
|
142 |
'value' => str_replace('"', '"', $new_value),
|
143 |
'default_value' => str_replace('"', '"', stripslashes($field->default_value)),
|
149 |
'field_key' => $field->field_key,
|
150 |
'field_order' => $field->field_order,
|
151 |
'form_id' => $field->form_id);
|
|
|
|
|
|
|
152 |
|
153 |
+
foreach (array('size' => '', 'max' => '', 'label' => 'top', 'invalid' => '', 'required_indicator' => '*', 'blank' => '', 'clear_on_focus' => 0, 'custom_html' => '', 'default_blank' => 0) as $opt => $default_opt){
|
154 |
+
$field_array[$opt] = ($_POST and isset($_POST['field_options'][$opt.'_'.$field->id]) ) ? $_POST['field_options'][$opt.'_'.$field->id] : (isset($field_options[$opt]) ? $field_options[$opt] : $default_opt);
|
155 |
+
if($opt == 'blank' and $field_array[$opt] == '')
|
156 |
+
$field_array[$opt] = $field_array['name'] . ' ' . __('can\'t be blank', FRM_PLUGIN_NAME);
|
157 |
+
else if($opt == 'invalid' and $field_array[$opt] == '')
|
158 |
+
$field_array[$opt] = $field_array['name'] . ' ' . __('is an invalid format', FRM_PLUGIN_NAME);
|
159 |
+
}
|
160 |
+
|
161 |
if ($field_array['custom_html'] == '')
|
162 |
$field_array['custom_html'] = FrmFieldsHelper::get_default_html($field_type);
|
163 |
+
|
164 |
$values['fields'][] = apply_filters('frm_setup_edit_fields_vars', stripslashes_deep($field_array), $field, $values['id']);
|
165 |
}
|
166 |
}
|
175 |
$options = stripslashes_deep(unserialize($form->options));
|
176 |
if (is_array($options)){
|
177 |
foreach ($options as $opt => $value)
|
178 |
+
$values[$opt] = FrmAppHelper::get_param($opt, $value);
|
179 |
}
|
180 |
}
|
181 |
|
182 |
$email = get_option('admin_email');
|
183 |
+
foreach (array('custom_style' => $frm_settings->custom_style, 'email_to' => $email) as $opt => $default){
|
184 |
if (!isset($values[$opt]))
|
185 |
$values[$opt] = ($_POST and isset($_POST['options'][$opt])) ? $_POST['options'][$opt] : $default;
|
186 |
}
|
187 |
|
188 |
+
foreach (array('submit_value' => $frm_settings->submit_value, 'success_action' => 'message', 'success_msg' => $frm_settings->success_msg, 'show_form' => 1) as $opt => $default){
|
189 |
+
if (!isset($values[$opt]) or $values[$opt] == '')
|
190 |
+
$values[$opt] = ($_POST and isset($_POST['options'][$opt])) ? $_POST['options'][$opt] : $default;
|
191 |
+
}
|
192 |
+
if (!isset($values['show_form']))
|
193 |
+
$values['show_form'] = ($_POST and isset($_POST['options']['show_form'])) ? 1 : 0;
|
194 |
+
|
195 |
if (!isset($values['custom_style']))
|
196 |
$values['custom_style'] = ($_POST and isset($_POST['options']['custom_style'])) ? $_POST['options']['custom_style'] : $frm_settings->custom_style;
|
197 |
|
classes/helpers/FrmEntriesHelper.php
CHANGED
@@ -3,10 +3,10 @@
|
|
3 |
class FrmEntriesHelper{
|
4 |
|
5 |
function setup_new_vars($fields, $form='', $reset=false){
|
6 |
-
global $
|
7 |
$values = array();
|
8 |
foreach (array('name' => '', 'description' => '', 'item_key' => '') as $var => $default)
|
9 |
-
$values[$var] = stripslashes(
|
10 |
|
11 |
$values['fields'] = array();
|
12 |
if ($fields){
|
@@ -19,10 +19,11 @@ class FrmEntriesHelper{
|
|
19 |
else
|
20 |
$new_value = ($_POST and isset($_POST['item_meta'][$field->id])) ? $_POST['item_meta'][$field->id] : $default;
|
21 |
|
22 |
-
|
23 |
-
|
|
|
24 |
|
25 |
-
$new_value = str_replace('"', '"',
|
26 |
|
27 |
$field_array = array('id' => $field->id,
|
28 |
'value' => $new_value,
|
@@ -52,7 +53,7 @@ class FrmEntriesHelper{
|
|
52 |
|
53 |
if (is_array($options)){
|
54 |
foreach ($options as $opt => $value)
|
55 |
-
$values[$opt] =
|
56 |
}
|
57 |
|
58 |
if (!isset($values['custom_style']))
|
@@ -85,13 +86,13 @@ class FrmEntriesHelper{
|
|
85 |
$values['form_id'] = $record->form_id;
|
86 |
return apply_filters('frm_setup_edit_entry_vars', $values);
|
87 |
}
|
88 |
-
|
89 |
-
function entries_dropdown( $form_id, $field_name, $field_value='', $blank=true, $blank_label='' ){
|
90 |
-
global $
|
91 |
|
92 |
$entries = $frm_entry->getAll("it.form_id=".$form_id,' ORDER BY name');
|
93 |
?>
|
94 |
-
<select name="<?php echo $field_name; ?>" id="<?php echo $field_name; ?>" class="frm-dropdown"
|
95 |
<?php if ($blank){ ?>
|
96 |
<option value=""><?php echo $blank_label; ?></option>
|
97 |
<?php } ?>
|
@@ -101,6 +102,10 @@ class FrmEntriesHelper{
|
|
101 |
</select>
|
102 |
<?php
|
103 |
}
|
|
|
|
|
|
|
|
|
104 |
}
|
105 |
|
106 |
?>
|
3 |
class FrmEntriesHelper{
|
4 |
|
5 |
function setup_new_vars($fields, $form='', $reset=false){
|
6 |
+
global $frm_form, $frm_settings;
|
7 |
$values = array();
|
8 |
foreach (array('name' => '', 'description' => '', 'item_key' => '') as $var => $default)
|
9 |
+
$values[$var] = stripslashes(FrmAppHelper::get_param($var, $default));
|
10 |
|
11 |
$values['fields'] = array();
|
12 |
if ($fields){
|
19 |
else
|
20 |
$new_value = ($_POST and isset($_POST['item_meta'][$field->id])) ? $_POST['item_meta'][$field->id] : $default;
|
21 |
|
22 |
+
$new_value = stripslashes_deep(maybe_unserialize($new_value));
|
23 |
+
if (!is_array($new_value))
|
24 |
+
$new_value = apply_filters('frm_get_default_value', $new_value, $field);
|
25 |
|
26 |
+
$new_value = str_replace('"', '"', $new_value);
|
27 |
|
28 |
$field_array = array('id' => $field->id,
|
29 |
'value' => $new_value,
|
53 |
|
54 |
if (is_array($options)){
|
55 |
foreach ($options as $opt => $value)
|
56 |
+
$values[$opt] = FrmAppHelper::get_param($opt, $value);
|
57 |
}
|
58 |
|
59 |
if (!isset($values['custom_style']))
|
86 |
$values['form_id'] = $record->form_id;
|
87 |
return apply_filters('frm_setup_edit_entry_vars', $values);
|
88 |
}
|
89 |
+
|
90 |
+
function entries_dropdown( $form_id, $field_name, $field_value='', $blank=true, $blank_label='', $onchange=false ){
|
91 |
+
global $frm_entry;
|
92 |
|
93 |
$entries = $frm_entry->getAll("it.form_id=".$form_id,' ORDER BY name');
|
94 |
?>
|
95 |
+
<select name="<?php echo $field_name; ?>" id="<?php echo $field_name; ?>" class="frm-dropdown" <?php if ($onchange) echo 'onchange="'.$onchange.'"'; ?>>
|
96 |
<?php if ($blank){ ?>
|
97 |
<option value=""><?php echo $blank_label; ?></option>
|
98 |
<?php } ?>
|
102 |
</select>
|
103 |
<?php
|
104 |
}
|
105 |
+
|
106 |
+
function enqueue_scripts($params){
|
107 |
+
do_action('frm_enqueue_form_scripts', $params);
|
108 |
+
}
|
109 |
}
|
110 |
|
111 |
?>
|
classes/helpers/FrmFieldsHelper.php
CHANGED
@@ -18,20 +18,23 @@ class FrmFieldsHelper{
|
|
18 |
|
19 |
function pro_field_selection(){
|
20 |
return apply_filters('frm_pro_available_fields', array(
|
21 |
-
'divider' => __('Section
|
22 |
'break' => __('Page Break', FRM_PLUGIN_NAME),
|
23 |
'file' => __('File Upload', FRM_PLUGIN_NAME),
|
24 |
'rte' => __('Rich Text Editor', FRM_PLUGIN_NAME),
|
25 |
-
'
|
26 |
-
'
|
|
|
27 |
'date' => __('Date', FRM_PLUGIN_NAME),
|
28 |
//'time' => 'Time',
|
29 |
-
'hidden' => __('Hidden Field', FRM_PLUGIN_NAME),
|
30 |
-
'user_id' => __('Hidden User Id', FRM_PLUGIN_NAME),
|
31 |
'website' => __('Website/URL', FRM_PLUGIN_NAME),
|
32 |
'image' => __('Image URL', FRM_PLUGIN_NAME),
|
33 |
'10radio' => __('Scale', FRM_PLUGIN_NAME),
|
34 |
-
'
|
|
|
|
|
|
|
|
|
35 |
//'multiple' => 'Multiple Select Box', //http://code.google.com/p/jquery-asmselect/
|
36 |
//'address' => 'Address' //Address line 1, Address line 2, City, State/Providence, Postal Code, Select Country
|
37 |
//'city_selector' => 'US State/County/City selector',
|
@@ -42,10 +45,10 @@ class FrmFieldsHelper{
|
|
42 |
}
|
43 |
|
44 |
function setup_new_vars($type='',$form_id=''){
|
45 |
-
global $
|
46 |
|
47 |
-
$field_count = $frm_app_helper->getRecordCount("form_id=$form_id", $
|
48 |
-
$key = FrmAppHelper::get_unique_key('', $
|
49 |
|
50 |
$values = array();
|
51 |
foreach (array('name' => __('Untitled', FRM_PLUGIN_NAME), 'description' => '', 'field_key' => $key, 'type' => $type, 'options'=>'', 'default_value'=>'', 'field_order' => $field_count+1, 'required' => false, 'blank' => __('Untitled can\'t be blank', FRM_PLUGIN_NAME), 'invalid' => __('Untitled is an invalid format', FRM_PLUGIN_NAME), 'form_id' => $form_id) as $var => $default)
|
@@ -56,9 +59,9 @@ class FrmFieldsHelper{
|
|
56 |
$values['field_options'][$var] = $default;
|
57 |
|
58 |
if ($type == 'radio' || ($type == 'checkbox'))
|
59 |
-
$values['options'] = serialize(array(
|
60 |
else if ( $type == 'select')
|
61 |
-
$values['options'] = serialize(array(
|
62 |
else if ($type == 'textarea')
|
63 |
$values['field_options']['max'] = '5';
|
64 |
|
@@ -66,18 +69,18 @@ class FrmFieldsHelper{
|
|
66 |
}
|
67 |
|
68 |
function setup_edit_vars($record){
|
69 |
-
global $frm_entry_meta, $frm_form
|
70 |
|
71 |
$values = array();
|
72 |
$values['id'] = $record->id;
|
73 |
$values['form_id'] = $record->form_id;
|
74 |
foreach (array('name' => $record->name, 'description' => $record->description) as $var => $default)
|
75 |
-
$values[$var] = htmlspecialchars(stripslashes(
|
76 |
|
77 |
$values['form_name'] = ($record->form_id)?($frm_form->getName( $record->form_id )):('');
|
78 |
|
79 |
foreach (array('field_key' => $record->field_key, 'type' => $record->type, 'default_value'=> $record->default_value, 'field_order' => $record->field_order, 'required' => $record->required) as $var => $default)
|
80 |
-
$values[$var] =
|
81 |
|
82 |
$values['options'] = unserialize($record->options);
|
83 |
$field_options = unserialize($record->field_options);
|
@@ -92,7 +95,7 @@ class FrmFieldsHelper{
|
|
92 |
$values['default_blank'] = (isset($field_options['default_blank']))?($field_options['default_blank']):(0);
|
93 |
$values['custom_html'] = (isset($field_options['custom_html']))? stripslashes($field_options['custom_html']): FrmFieldsHelper::get_default_html($record->type);
|
94 |
|
95 |
-
return
|
96 |
}
|
97 |
|
98 |
function get_form_fields($form_id, $error=false){
|
@@ -151,6 +154,10 @@ DEFAULT_HTML;
|
|
151 |
$error_class = in_array('field'.$field['id'], $error_keys) ? ' frm_blank_field':'';
|
152 |
$html = str_replace('[error_class]', $error_class, $html);
|
153 |
|
|
|
|
|
|
|
|
|
154 |
//replace [input]
|
155 |
ob_start();
|
156 |
include(FRM_VIEWS_PATH.'/frm-fields/input.php');
|
18 |
|
19 |
function pro_field_selection(){
|
20 |
return apply_filters('frm_pro_available_fields', array(
|
21 |
+
'divider' => __('Section Heading', FRM_PLUGIN_NAME),
|
22 |
'break' => __('Page Break', FRM_PLUGIN_NAME),
|
23 |
'file' => __('File Upload', FRM_PLUGIN_NAME),
|
24 |
'rte' => __('Rich Text Editor', FRM_PLUGIN_NAME),
|
25 |
+
'number' => __('Number', FRM_PLUGIN_NAME),
|
26 |
+
'phone' => __('Phone Number', FRM_PLUGIN_NAME),
|
27 |
+
'email' => __('Email Address', FRM_PLUGIN_NAME),
|
28 |
'date' => __('Date', FRM_PLUGIN_NAME),
|
29 |
//'time' => 'Time',
|
|
|
|
|
30 |
'website' => __('Website/URL', FRM_PLUGIN_NAME),
|
31 |
'image' => __('Image URL', FRM_PLUGIN_NAME),
|
32 |
'10radio' => __('Scale', FRM_PLUGIN_NAME),
|
33 |
+
//'grid' => __('Grid', FRM_PLUGIN_NAME),
|
34 |
+
'data' => __('Data from Entries', FRM_PLUGIN_NAME),
|
35 |
+
'hidden' => __('Hidden Field', FRM_PLUGIN_NAME),
|
36 |
+
'user_id' => __('Hidden User Id', FRM_PLUGIN_NAME),
|
37 |
+
'tag' => __('Tags', FRM_PLUGIN_NAME)
|
38 |
//'multiple' => 'Multiple Select Box', //http://code.google.com/p/jquery-asmselect/
|
39 |
//'address' => 'Address' //Address line 1, Address line 2, City, State/Providence, Postal Code, Select Country
|
40 |
//'city_selector' => 'US State/County/City selector',
|
45 |
}
|
46 |
|
47 |
function setup_new_vars($type='',$form_id=''){
|
48 |
+
global $frmdb, $frm_app_helper;
|
49 |
|
50 |
+
$field_count = $frm_app_helper->getRecordCount("form_id=$form_id", $frmdb->fields);
|
51 |
+
$key = FrmAppHelper::get_unique_key('', $frmdb->fields, 'field_key');
|
52 |
|
53 |
$values = array();
|
54 |
foreach (array('name' => __('Untitled', FRM_PLUGIN_NAME), 'description' => '', 'field_key' => $key, 'type' => $type, 'options'=>'', 'default_value'=>'', 'field_order' => $field_count+1, 'required' => false, 'blank' => __('Untitled can\'t be blank', FRM_PLUGIN_NAME), 'invalid' => __('Untitled is an invalid format', FRM_PLUGIN_NAME), 'form_id' => $form_id) as $var => $default)
|
59 |
$values['field_options'][$var] = $default;
|
60 |
|
61 |
if ($type == 'radio' || ($type == 'checkbox'))
|
62 |
+
$values['options'] = serialize(array('Option 1', 'Option 2'));
|
63 |
else if ( $type == 'select')
|
64 |
+
$values['options'] = serialize(array('','Option 1'));
|
65 |
else if ($type == 'textarea')
|
66 |
$values['field_options']['max'] = '5';
|
67 |
|
69 |
}
|
70 |
|
71 |
function setup_edit_vars($record){
|
72 |
+
global $frm_entry_meta, $frm_form;
|
73 |
|
74 |
$values = array();
|
75 |
$values['id'] = $record->id;
|
76 |
$values['form_id'] = $record->form_id;
|
77 |
foreach (array('name' => $record->name, 'description' => $record->description) as $var => $default)
|
78 |
+
$values[$var] = htmlspecialchars(stripslashes(FrmAppHelper::get_param($var, $default)));
|
79 |
|
80 |
$values['form_name'] = ($record->form_id)?($frm_form->getName( $record->form_id )):('');
|
81 |
|
82 |
foreach (array('field_key' => $record->field_key, 'type' => $record->type, 'default_value'=> $record->default_value, 'field_order' => $record->field_order, 'required' => $record->required) as $var => $default)
|
83 |
+
$values[$var] = FrmAppHelper::get_param($var, $default);
|
84 |
|
85 |
$values['options'] = unserialize($record->options);
|
86 |
$field_options = unserialize($record->field_options);
|
95 |
$values['default_blank'] = (isset($field_options['default_blank']))?($field_options['default_blank']):(0);
|
96 |
$values['custom_html'] = (isset($field_options['custom_html']))? stripslashes($field_options['custom_html']): FrmFieldsHelper::get_default_html($record->type);
|
97 |
|
98 |
+
return apply_filters('frm_setup_edit_field_vars',$values);
|
99 |
}
|
100 |
|
101 |
function get_form_fields($form_id, $error=false){
|
154 |
$error_class = in_array('field'.$field['id'], $error_keys) ? ' frm_blank_field':'';
|
155 |
$html = str_replace('[error_class]', $error_class, $html);
|
156 |
|
157 |
+
//replace [entry_key]
|
158 |
+
$entry_key = (isset($_GET) and isset($_GET['entry'])) ? $_GET['entry'] : '';
|
159 |
+
$html = str_replace('[entry_key]', $entry_key, $html);
|
160 |
+
|
161 |
//replace [input]
|
162 |
ob_start();
|
163 |
include(FRM_VIEWS_PATH.'/frm-fields/input.php');
|
classes/helpers/FrmFormsHelper.php
CHANGED
@@ -24,40 +24,42 @@ class FrmFormsHelper{
|
|
24 |
<?php
|
25 |
}
|
26 |
|
27 |
-
function forms_dropdown( $field_name, $field_value='', $blank=true, $field_id=false ){
|
28 |
-
global $
|
29 |
if (!$field_id)
|
30 |
$field_id = $field_name;
|
31 |
|
32 |
$forms = $frm_form->getAll("is_template=0 AND (status is NULL OR status = '' OR status = 'published')",' ORDER BY name');
|
33 |
?>
|
34 |
-
<select name="<?php echo $field_name; ?>" id="<?php echo $field_id ?>" class="frm-dropdown"
|
35 |
<?php if ($blank){ ?>
|
36 |
<option value=""></option>
|
37 |
<?php } ?>
|
38 |
<?php foreach($forms as $form){ ?>
|
39 |
-
<option value="<?php echo $form->id; ?>" <?php selected($field_value, $form->id); ?>><?php echo $form->name; ?></option>
|
40 |
<?php } ?>
|
41 |
</select>
|
42 |
<?php
|
43 |
}
|
44 |
|
45 |
function setup_new_vars(){
|
46 |
-
global $
|
47 |
$values = array();
|
48 |
foreach (array('name' => __('Untitled Form', FRM_PLUGIN_NAME), 'description' => '') as $var => $default)
|
49 |
-
$values[$var] = stripslashes(
|
50 |
|
51 |
$values['description'] = wpautop($values['description']);
|
52 |
|
53 |
foreach (array('form_id' => '', 'logged_in' => '', 'editable' => '', 'default_template' => 0, 'is_template' => 0) as $var => $default)
|
54 |
-
$values[$var] = stripslashes(
|
55 |
|
56 |
-
$values['form_key'] = ($_POST and isset($_POST['form_key']))?$_POST['form_key']:(FrmAppHelper::get_unique_key('', $
|
57 |
$values['email_to'] = ($_POST and isset($_POST['options']['email_to'])) ? $_POST['options']['email_to'] : $frm_settings->email_to;
|
58 |
$values['custom_style'] = ($_POST and isset($_POST['options']['custom_style'])) ? $_POST['options']['custom_style'] : $frm_settings->custom_style;
|
59 |
$values['submit_value'] = ($_POST and isset($_POST['options']['submit_value'])) ? $_POST['options']['submit_value'] : $frm_settings->submit_value;
|
|
|
60 |
$values['success_msg'] = ($_POST and isset($_POST['options']['success_msg'])) ? $_POST['options']['success_msg'] : $frm_settings->success_msg;
|
|
|
61 |
$values['akismet'] = ($_POST and isset($_POST['options']['akismet'])) ? 1 : 0;
|
62 |
$values['before_html'] = FrmFormsHelper::get_default_html('before');
|
63 |
$values['after_html'] = FrmFormsHelper::get_default_html('after');
|
@@ -66,11 +68,11 @@ class FrmFormsHelper{
|
|
66 |
}
|
67 |
|
68 |
function setup_edit_vars($values, $record){
|
69 |
-
global $frm_form
|
70 |
|
71 |
-
$values['form_key'] =
|
72 |
-
$values['default_template'] =
|
73 |
-
$values['is_template'] =
|
74 |
|
75 |
return apply_filters('frm_setup_edit_form_vars', $values);
|
76 |
}
|
@@ -88,11 +90,13 @@ BEFORE_HTML;
|
|
88 |
}
|
89 |
|
90 |
function replace_shortcodes($html, $form, $title=false, $description=false){
|
91 |
-
foreach (array('form_name' => $title,'form_description' => $description) as $code => $show){
|
92 |
if ($code == 'form_name')
|
93 |
$replace_with = stripslashes($form->name);
|
94 |
else if ($code == 'form_description')
|
95 |
$replace_with = wpautop(stripslashes($form->description));
|
|
|
|
|
96 |
|
97 |
if (($show == true || $show == 'true') && $replace_with != '' ){
|
98 |
$html = str_replace('[if '.$code.']','',$html);
|
@@ -103,7 +107,32 @@ BEFORE_HTML;
|
|
103 |
$html = str_replace('['.$code.']', $replace_with, $html);
|
104 |
}
|
105 |
|
106 |
-
return $html;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
}
|
108 |
|
109 |
}
|
24 |
<?php
|
25 |
}
|
26 |
|
27 |
+
function forms_dropdown( $field_name, $field_value='', $blank=true, $field_id=false, $onchange=false ){
|
28 |
+
global $frm_form;
|
29 |
if (!$field_id)
|
30 |
$field_id = $field_name;
|
31 |
|
32 |
$forms = $frm_form->getAll("is_template=0 AND (status is NULL OR status = '' OR status = 'published')",' ORDER BY name');
|
33 |
?>
|
34 |
+
<select name="<?php echo $field_name; ?>" id="<?php echo $field_id ?>" class="frm-dropdown" <?php if ($onchange) echo 'onchange="'.$onchange.'"'; ?>>
|
35 |
<?php if ($blank){ ?>
|
36 |
<option value=""></option>
|
37 |
<?php } ?>
|
38 |
<?php foreach($forms as $form){ ?>
|
39 |
+
<option value="<?php echo $form->id; ?>" <?php selected($field_value, $form->id); ?>><?php echo stripslashes($form->name); ?></option>
|
40 |
<?php } ?>
|
41 |
</select>
|
42 |
<?php
|
43 |
}
|
44 |
|
45 |
function setup_new_vars(){
|
46 |
+
global $frmdb, $frm_settings;
|
47 |
$values = array();
|
48 |
foreach (array('name' => __('Untitled Form', FRM_PLUGIN_NAME), 'description' => '') as $var => $default)
|
49 |
+
$values[$var] = stripslashes(FrmAppHelper::get_param($var, $default));
|
50 |
|
51 |
$values['description'] = wpautop($values['description']);
|
52 |
|
53 |
foreach (array('form_id' => '', 'logged_in' => '', 'editable' => '', 'default_template' => 0, 'is_template' => 0) as $var => $default)
|
54 |
+
$values[$var] = stripslashes(FrmAppHelper::get_param($var, $default));
|
55 |
|
56 |
+
$values['form_key'] = ($_POST and isset($_POST['form_key']))?$_POST['form_key']:(FrmAppHelper::get_unique_key('', $frmdb->forms, 'form_key'));
|
57 |
$values['email_to'] = ($_POST and isset($_POST['options']['email_to'])) ? $_POST['options']['email_to'] : $frm_settings->email_to;
|
58 |
$values['custom_style'] = ($_POST and isset($_POST['options']['custom_style'])) ? $_POST['options']['custom_style'] : $frm_settings->custom_style;
|
59 |
$values['submit_value'] = ($_POST and isset($_POST['options']['submit_value'])) ? $_POST['options']['submit_value'] : $frm_settings->submit_value;
|
60 |
+
$values['success_action'] = ($_POST and isset($_POST['options']['success_action'])) ? $_POST['options']['success_action'] : 'message';
|
61 |
$values['success_msg'] = ($_POST and isset($_POST['options']['success_msg'])) ? $_POST['options']['success_msg'] : $frm_settings->success_msg;
|
62 |
+
$values['show_form'] = ($_POST and isset($_POST['options']['show_form'])) ? 1 : 0;
|
63 |
$values['akismet'] = ($_POST and isset($_POST['options']['akismet'])) ? 1 : 0;
|
64 |
$values['before_html'] = FrmFormsHelper::get_default_html('before');
|
65 |
$values['after_html'] = FrmFormsHelper::get_default_html('after');
|
68 |
}
|
69 |
|
70 |
function setup_edit_vars($values, $record){
|
71 |
+
global $frm_form;
|
72 |
|
73 |
+
$values['form_key'] = FrmAppHelper::get_param('form_key', $record->form_key);
|
74 |
+
$values['default_template'] = FrmAppHelper::get_param('default_template', $record->default_template);
|
75 |
+
$values['is_template'] = FrmAppHelper::get_param('is_template', $record->is_template);
|
76 |
|
77 |
return apply_filters('frm_setup_edit_form_vars', $values);
|
78 |
}
|
90 |
}
|
91 |
|
92 |
function replace_shortcodes($html, $form, $title=false, $description=false){
|
93 |
+
foreach (array('form_name' => $title,'form_description' => $description, 'entry_key' => true) as $code => $show){
|
94 |
if ($code == 'form_name')
|
95 |
$replace_with = stripslashes($form->name);
|
96 |
else if ($code == 'form_description')
|
97 |
$replace_with = wpautop(stripslashes($form->description));
|
98 |
+
else if($code == 'entry_key' and isset($_GET) and isset($_GET['entry']))
|
99 |
+
$replace_with = $_GET['entry'];
|
100 |
|
101 |
if (($show == true || $show == 'true') && $replace_with != '' ){
|
102 |
$html = str_replace('[if '.$code.']','',$html);
|
107 |
$html = str_replace('['.$code.']', $replace_with, $html);
|
108 |
}
|
109 |
|
110 |
+
return apply_filters('frm_form_replace_shortcodes', $html, $form);
|
111 |
+
}
|
112 |
+
|
113 |
+
function get_default_email(){
|
114 |
+
$email = <<<DEFAULT_EMAIL
|
115 |
+
<table style="border-bottom: 1px solid rgb(238, 238, 238); width: 100%; font-size: 12px; line-height: 135%; font-family: Lucida Grande,Tahoma,Arial,sans-serif;" cellspacing="0">
|
116 |
+
<tbody><tr style="background-color: rgb(245, 245, 245);">
|
117 |
+
<th style="border-top: 1px solid rgb(238, 238, 238); padding: 7px 9px; vertical-align: top; color: rgb(34, 34, 34); text-align: left;">
|
118 |
+
Number
|
119 |
+
</th>
|
120 |
+
<td style="border-top: 1px solid rgb(238, 238, 238); padding: 7px 9px 7px 0pt; vertical-align: top; color: rgb(51, 51, 51); width: 60%;">
|
121 |
+
<div>89</div>
|
122 |
+
|
123 |
+
</td>
|
124 |
+
</tr>
|
125 |
+
<tr style="background-color: rgb(255, 255, 255);">
|
126 |
+
<th style="border-top: 1px solid rgb(238, 238, 238); padding: 7px 9px; vertical-align: top; color: rgb(34, 34, 34); text-align: left;">
|
127 |
+
Email
|
128 |
+
</th>
|
129 |
+
<td style="border-top: 1px solid rgb(238, 238, 238); padding: 7px 9px 7px 0pt; vertical-align: top; color: rgb(51, 51, 51); width: 60%;">
|
130 |
+
<a href="mailto:stephywells@gmail.com" target="_blank">stephywells@gmail.com</a>
|
131 |
+
</td>
|
132 |
+
</tr>
|
133 |
+
</tbody></table>
|
134 |
+
DEFAULT_EMAIL;
|
135 |
+
return $email;
|
136 |
}
|
137 |
|
138 |
}
|
classes/models/FrmDb.php
ADDED
@@ -0,0 +1,202 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class FrmDb{
|
3 |
+
var $fields;
|
4 |
+
var $forms;
|
5 |
+
var $entries;
|
6 |
+
var $entry_metas;
|
7 |
+
|
8 |
+
function FrmDb(){
|
9 |
+
global $wpdb;
|
10 |
+
$this->fields = $wpdb->prefix . "frm_fields";
|
11 |
+
$this->forms = $wpdb->prefix . "frm_forms";
|
12 |
+
$this->entries = $wpdb->prefix . "frm_items";
|
13 |
+
$this->entry_metas = $wpdb->prefix . "frm_item_metas";
|
14 |
+
}
|
15 |
+
|
16 |
+
function upgrade(){
|
17 |
+
global $wpdb, $frm_form, $frm_field;
|
18 |
+
$db_version = 1.03; // this is the version of the database we're moving to
|
19 |
+
$old_db_version = get_option('frm_db_version');
|
20 |
+
|
21 |
+
if ($db_version != $old_db_version){
|
22 |
+
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
23 |
+
|
24 |
+
$charset_collate = '';
|
25 |
+
if( $wpdb->has_cap( 'collation' ) ){
|
26 |
+
if( !empty($wpdb->charset) )
|
27 |
+
$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
|
28 |
+
if( !empty($wpdb->collate) )
|
29 |
+
$charset_collate .= " COLLATE $wpdb->collate";
|
30 |
+
}
|
31 |
+
|
32 |
+
/* Create/Upgrade Fields Table */
|
33 |
+
$sql = "CREATE TABLE {$this->fields} (
|
34 |
+
id int(11) NOT NULL auto_increment,
|
35 |
+
field_key varchar(255) default NULL,
|
36 |
+
name varchar(255) default NULL,
|
37 |
+
description text default NULL,
|
38 |
+
type text default NULL,
|
39 |
+
default_value longtext default NULL,
|
40 |
+
options longtext default NULL,
|
41 |
+
field_order int(11) default 0,
|
42 |
+
required int(1) default NULL,
|
43 |
+
field_options longtext default NULL,
|
44 |
+
form_id int(11) default NULL,
|
45 |
+
created_at datetime NOT NULL,
|
46 |
+
PRIMARY KEY (id),
|
47 |
+
KEY form_id (form_id)
|
48 |
+
) {$charset_collate};";
|
49 |
+
|
50 |
+
dbDelta($sql);
|
51 |
+
|
52 |
+
/* Create/Upgrade Forms Table */
|
53 |
+
$sql = "CREATE TABLE {$this->forms} (
|
54 |
+
id int(11) NOT NULL auto_increment,
|
55 |
+
form_key varchar(255) default NULL,
|
56 |
+
name varchar(255) default NULL,
|
57 |
+
description text default NULL,
|
58 |
+
logged_in boolean default NULL,
|
59 |
+
editable boolean default NULL,
|
60 |
+
is_template boolean default 0,
|
61 |
+
default_template boolean default 0,
|
62 |
+
status varchar(255) default NULL,
|
63 |
+
prli_link_id int(11) default NULL,
|
64 |
+
options longtext default NULL,
|
65 |
+
notifications longtext default NULL,
|
66 |
+
created_at datetime NOT NULL,
|
67 |
+
PRIMARY KEY (id)
|
68 |
+
) {$charset_collate};";
|
69 |
+
|
70 |
+
dbDelta($sql);
|
71 |
+
|
72 |
+
/* Create/Upgrade Items Table */
|
73 |
+
$sql = "CREATE TABLE {$this->entries} (
|
74 |
+
id int(11) NOT NULL auto_increment,
|
75 |
+
item_key varchar(255) default NULL,
|
76 |
+
name varchar(255) default NULL,
|
77 |
+
description text default NULL,
|
78 |
+
ip text default NULL,
|
79 |
+
form_id int(11) default NULL,
|
80 |
+
created_at datetime NOT NULL,
|
81 |
+
PRIMARY KEY (id),
|
82 |
+
KEY form_id (form_id)
|
83 |
+
) {$charset_collate};";
|
84 |
+
|
85 |
+
dbDelta($sql);
|
86 |
+
|
87 |
+
/* Create/Upgrade Meta Table */
|
88 |
+
$sql = "CREATE TABLE {$this->entry_metas} (
|
89 |
+
id int(11) NOT NULL auto_increment,
|
90 |
+
meta_key varchar(255) default NULL,
|
91 |
+
meta_value longtext default NULL,
|
92 |
+
field_id int(11) NOT NULL,
|
93 |
+
item_id int(11) NOT NULL,
|
94 |
+
created_at datetime NOT NULL,
|
95 |
+
PRIMARY KEY (id),
|
96 |
+
KEY field_id (field_id),
|
97 |
+
KEY item_id (item_id)
|
98 |
+
) {$charset_collate};";
|
99 |
+
|
100 |
+
dbDelta($sql);
|
101 |
+
|
102 |
+
/**** MIGRATE DATA ****/
|
103 |
+
if ($db_version == 1.03){
|
104 |
+
global $frm_entry;
|
105 |
+
$all_entries = $frm_entry->getAll();
|
106 |
+
foreach($all_entries as $ent){
|
107 |
+
$opts = maybe_unserialize($ent->description);
|
108 |
+
if(is_array($opts))
|
109 |
+
$wpdb->update( $this->entries, array('ip' => $opts['ip']), array( 'id' => $ent->id ) );
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
/**** ADD DEFAULT TEMPLATES ****/
|
114 |
+
FrmFormsController::add_default_templates(FRM_TEMPLATES_PATH);
|
115 |
+
|
116 |
+
|
117 |
+
/***** SAVE DB VERSION *****/
|
118 |
+
update_option('frm_db_version',$db_version);
|
119 |
+
}
|
120 |
+
|
121 |
+
do_action('frm_after_install');
|
122 |
+
}
|
123 |
+
|
124 |
+
function get_count($table, $args=array()){
|
125 |
+
global $wpdb;
|
126 |
+
extract(FrmDb::get_where_clause_and_values( $args ));
|
127 |
+
|
128 |
+
$query = "SELECT COUNT(*) FROM {$table}{$where}";
|
129 |
+
$query = $wpdb->prepare($query, $values);
|
130 |
+
return $wpdb->get_var($query);
|
131 |
+
}
|
132 |
+
|
133 |
+
function get_where_clause_and_values( $args ){
|
134 |
+
$where = '';
|
135 |
+
$values = array();
|
136 |
+
if(is_array($args)){
|
137 |
+
foreach($args as $key => $value){
|
138 |
+
if(!empty($where))
|
139 |
+
$where .= ' AND';
|
140 |
+
else
|
141 |
+
$where .= ' WHERE';
|
142 |
+
|
143 |
+
$where .= " {$key}=";
|
144 |
+
|
145 |
+
if(is_numeric($value))
|
146 |
+
$where .= "%d";
|
147 |
+
else
|
148 |
+
$where .= "%s";
|
149 |
+
|
150 |
+
$values[] = $value;
|
151 |
+
}
|
152 |
+
}
|
153 |
+
|
154 |
+
return compact('where','values');
|
155 |
+
}
|
156 |
+
|
157 |
+
function get_one_record($table, $args=array()){
|
158 |
+
global $wpdb;
|
159 |
+
|
160 |
+
extract(FrmDb::get_where_clause_and_values( $args ));
|
161 |
+
|
162 |
+
$query = "SELECT * FROM {$table}{$where} LIMIT 1";
|
163 |
+
$query = $wpdb->prepare($query, $values);
|
164 |
+
return $wpdb->get_row($query);
|
165 |
+
}
|
166 |
+
|
167 |
+
function get_records($table, $args=array(), $order_by='', $limit=''){
|
168 |
+
global $wpdb;
|
169 |
+
|
170 |
+
extract(FrmDb::get_where_clause_and_values( $args ));
|
171 |
+
|
172 |
+
if(!empty($order_by))
|
173 |
+
$order_by = " ORDER BY {$order_by}";
|
174 |
+
|
175 |
+
if(!empty($limit))
|
176 |
+
$limit = " LIMIT {$limit}";
|
177 |
+
|
178 |
+
$query = "SELECT * FROM {$table}{$where}{$order_by}{$limit}";
|
179 |
+
$query = $wpdb->prepare($query, $values);
|
180 |
+
return $wpdb->get_results($query);
|
181 |
+
}
|
182 |
+
|
183 |
+
function uninstall(){
|
184 |
+
if(!current_user_can('administrator'))
|
185 |
+
wp_die(__('You don\'t have permission to do that!', 'formidable'));
|
186 |
+
|
187 |
+
global $frm_update, $wpdb;
|
188 |
+
$wpdb->query('DROP TABLE IF EXISTS '. $this->fields);
|
189 |
+
$wpdb->query('DROP TABLE IF EXISTS '. $this->forms);
|
190 |
+
$wpdb->query('DROP TABLE IF EXISTS '. $this->entries);
|
191 |
+
$wpdb->query('DROP TABLE IF EXISTS '. $this->entry_metas);
|
192 |
+
|
193 |
+
delete_option('frm_options');
|
194 |
+
delete_option('frm_db_version');
|
195 |
+
delete_option($frm_update->pro_last_checked_store);
|
196 |
+
delete_option($frm_update->pro_auth_store);
|
197 |
+
delete_option($frm_update->pro_cred_store);
|
198 |
+
|
199 |
+
do_action('frm_after_uninstall');
|
200 |
+
}
|
201 |
+
}
|
202 |
+
?>
|
classes/models/FrmEntry.php
CHANGED
@@ -3,23 +3,21 @@ class FrmEntry{
|
|
3 |
var $table_name;
|
4 |
|
5 |
function FrmEntry(){
|
6 |
-
global $wpdb;
|
7 |
-
$this->table_name = "{$wpdb->prefix}frm_items";
|
8 |
}
|
9 |
|
10 |
function create( $values ){
|
11 |
-
global $wpdb, $frm_entry_meta;
|
12 |
|
13 |
$new_values = array();
|
14 |
-
$new_values['item_key'] = FrmAppHelper::get_unique_key($values['item_key'], $
|
15 |
$new_values['name'] = isset($values['name']) ? $values['name'] : $values['item_key'];
|
16 |
-
$new_values['
|
17 |
-
|
18 |
'referrer' => $_SERVER['HTTP_REFERER']));
|
19 |
$new_values['form_id'] = isset($values['form_id']) ? (int)$values['form_id']: null;
|
20 |
$new_values['created_at'] = current_time('mysql', 1);
|
21 |
|
22 |
-
$query_results = $wpdb->insert( $
|
23 |
|
24 |
if($query_results){
|
25 |
$entry_id = $wpdb->insert_id;
|
@@ -32,37 +30,38 @@ class FrmEntry{
|
|
32 |
}
|
33 |
|
34 |
function duplicate( $id ){
|
35 |
-
global $wpdb, $frm_entry, $frm_entry_meta;
|
36 |
|
37 |
$values = $frm_entry->getOne( $id );
|
38 |
|
39 |
$new_values = array();
|
40 |
-
$new_values['item_key'] = FrmAppHelper::get_unique_key('', $
|
41 |
$new_values['name'] = $values->name;
|
42 |
$new_values['form_id'] = ($values->form_id)?(int)$values->form_id: null;
|
43 |
$new_values['created_at'] = current_time('mysql', 1);
|
44 |
|
45 |
-
$query_results = $wpdb->insert( $
|
46 |
-
|
47 |
if($query_results){
|
|
|
48 |
$frm_entry_meta->duplicate_entry_metas($id);
|
49 |
-
return $
|
50 |
}else
|
51 |
return false;
|
52 |
}
|
53 |
|
54 |
function update( $id, $values ){
|
55 |
-
global $wpdb, $frm_entry_meta, $frm_field;
|
56 |
|
57 |
$new_values = array();
|
|
|
58 |
if (isset($values['item_key']))
|
59 |
-
$new_values['item_key'] = FrmAppHelper::get_unique_key($values['item_key'], $
|
60 |
-
|
61 |
$new_values['name'] = isset($values['name'])?$values['name']:'';
|
62 |
$new_values['form_id'] = isset($values['form_id'])?(int)$values['form_id']: null;
|
63 |
//$new_values['parent_item_id'] = isset($values['parent_item_id'])?(int)$values['parent_item_id']: null;
|
64 |
|
65 |
-
$query_results = $wpdb->update( $
|
66 |
|
67 |
if (isset($values['item_meta']))
|
68 |
$frm_entry_meta->update_entry_metas($id, $values['item_meta']);
|
@@ -71,31 +70,28 @@ class FrmEntry{
|
|
71 |
}
|
72 |
|
73 |
function destroy( $id ){
|
74 |
-
global $wpdb, $
|
75 |
|
76 |
// Disconnect the child items from this parent item
|
77 |
-
//$query_results = $wpdb->update( $
|
78 |
|
79 |
-
$reset = 'DELETE FROM ' . $
|
80 |
-
$destroy = 'DELETE FROM ' . $
|
81 |
|
82 |
$wpdb->query($reset);
|
83 |
return $wpdb->query($destroy);
|
84 |
}
|
85 |
|
86 |
function update_form( $id, $value, $form_id ){
|
87 |
-
global $wpdb;
|
88 |
$form_id = isset($value) ? $form_id : NULL;
|
89 |
-
return $wpdb->update( $
|
90 |
}
|
91 |
|
92 |
function getOne( $id ){
|
93 |
-
global $wpdb, $
|
94 |
-
$query =
|
95 |
-
|
96 |
-
'fr.form_key as form_key ' .
|
97 |
-
'FROM '. $this->table_name . ' it ' .
|
98 |
-
'LEFT OUTER JOIN ' . $frm_form->table_name . ' fr ON it.form_id=fr.id';
|
99 |
if(is_numeric($id))
|
100 |
$query .= ' WHERE it.id=' . $id;
|
101 |
else
|
@@ -104,8 +100,8 @@ class FrmEntry{
|
|
104 |
}
|
105 |
|
106 |
function exists( $id ){
|
107 |
-
global $wpdb, $
|
108 |
-
$query =
|
109 |
if(is_numeric($id))
|
110 |
$query .= ' WHERE id=' . $id;
|
111 |
else
|
@@ -118,21 +114,17 @@ class FrmEntry{
|
|
118 |
}
|
119 |
|
120 |
function getAll($where = '', $order_by = '', $limit = ''){
|
121 |
-
global $wpdb, $
|
122 |
-
$query =
|
123 |
-
|
124 |
-
'fr.form_key as form_key ' .
|
125 |
-
'FROM '. $this->table_name . ' it ' .
|
126 |
-
'LEFT OUTER JOIN ' . $frm_form->table_name . ' fr ON it.form_id=fr.id' .
|
127 |
$frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
|
128 |
return $wpdb->get_results($query);
|
129 |
}
|
130 |
|
131 |
// Pagination Methods
|
132 |
function getRecordCount($where=""){
|
133 |
-
global $wpdb, $
|
134 |
-
$query =
|
135 |
-
'LEFT OUTER JOIN ' . $frm_form->table_name . ' fr ON it.form_id=fr.id' .
|
136 |
$frm_app_helper->prepend_and_or_where(' WHERE ', $where);
|
137 |
return $wpdb->get_var($query);
|
138 |
}
|
@@ -142,26 +134,24 @@ class FrmEntry{
|
|
142 |
}
|
143 |
|
144 |
function getPage($current_p,$p_size, $where = "", $order_by = ''){
|
145 |
-
global $wpdb, $
|
146 |
$end_index = $current_p * $p_size;
|
147 |
$start_index = $end_index - $p_size;
|
148 |
-
$query =
|
149 |
-
|
150 |
-
'
|
151 |
-
|
152 |
-
$frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . ' ' .
|
153 |
-
'LIMIT ' . $start_index . ',' . $p_size . ';';
|
154 |
$results = $wpdb->get_results($query);
|
155 |
return $results;
|
156 |
}
|
157 |
|
158 |
function validate( $values ){
|
159 |
-
global $wpdb, $frm_field, $frm_entry_meta;
|
160 |
|
161 |
$errors = array();
|
162 |
|
163 |
if( !isset($values['item_key']) or $values['item_key'] == '' )
|
164 |
-
$_POST['item_key'] = $values['item_key'] = FrmAppHelper::get_unique_key('', $
|
165 |
|
166 |
$where = apply_filters('frm_posted_field_ids', 'fi.form_id='.$values['form_id']);
|
167 |
$posted_fields = $frm_field->getAll($where, ' ORDER BY fi.field_order');
|
@@ -173,7 +163,7 @@ class FrmEntry{
|
|
173 |
$value = $values['item_meta'][$posted_field->id];
|
174 |
|
175 |
if (isset($field_options['default_blank']) and $field_options['default_blank'] and $value == $posted_field->default_value)
|
176 |
-
$value = '';
|
177 |
|
178 |
if ($posted_field->required == '1' and $value == ''){
|
179 |
$errors['field'.$posted_field->id] = (!isset($field_options['blank']) or $field_options['blank'] == __('Untitled cannot be blank', FRM_PLUGIN_NAME) or $field_options['blank'] == '') ? ($posted_field->name . ' '. __('can\'t be blank', FRM_PLUGIN_NAME)) : $field_options['blank'];
|
3 |
var $table_name;
|
4 |
|
5 |
function FrmEntry(){
|
|
|
|
|
6 |
}
|
7 |
|
8 |
function create( $values ){
|
9 |
+
global $wpdb, $frmdb, $frm_entry_meta;
|
10 |
|
11 |
$new_values = array();
|
12 |
+
$new_values['item_key'] = FrmAppHelper::get_unique_key($values['item_key'], $frmdb->entries, 'item_key');
|
13 |
$new_values['name'] = isset($values['name']) ? $values['name'] : $values['item_key'];
|
14 |
+
$new_values['ip'] = $_SERVER['REMOTE_ADDR'];
|
15 |
+
$new_values['description'] = serialize(array('browser' => $_SERVER['HTTP_USER_AGENT'],
|
16 |
'referrer' => $_SERVER['HTTP_REFERER']));
|
17 |
$new_values['form_id'] = isset($values['form_id']) ? (int)$values['form_id']: null;
|
18 |
$new_values['created_at'] = current_time('mysql', 1);
|
19 |
|
20 |
+
$query_results = $wpdb->insert( $frmdb->entries, $new_values );
|
21 |
|
22 |
if($query_results){
|
23 |
$entry_id = $wpdb->insert_id;
|
30 |
}
|
31 |
|
32 |
function duplicate( $id ){
|
33 |
+
global $wpdb, $frmdb, $frm_entry, $frm_entry_meta;
|
34 |
|
35 |
$values = $frm_entry->getOne( $id );
|
36 |
|
37 |
$new_values = array();
|
38 |
+
$new_values['item_key'] = FrmAppHelper::get_unique_key('', $frmdb->entries, 'item_key');
|
39 |
$new_values['name'] = $values->name;
|
40 |
$new_values['form_id'] = ($values->form_id)?(int)$values->form_id: null;
|
41 |
$new_values['created_at'] = current_time('mysql', 1);
|
42 |
|
43 |
+
$query_results = $wpdb->insert( $frmdb->entries, $new_values );
|
|
|
44 |
if($query_results){
|
45 |
+
$entry_id = $wpdb->insert_id;
|
46 |
$frm_entry_meta->duplicate_entry_metas($id);
|
47 |
+
return $entry_id;
|
48 |
}else
|
49 |
return false;
|
50 |
}
|
51 |
|
52 |
function update( $id, $values ){
|
53 |
+
global $wpdb, $frmdb, $frm_entry_meta, $frm_field;
|
54 |
|
55 |
$new_values = array();
|
56 |
+
|
57 |
if (isset($values['item_key']))
|
58 |
+
$new_values['item_key'] = FrmAppHelper::get_unique_key($values['item_key'], $frmdb->entries, 'item_key', $id);
|
59 |
+
|
60 |
$new_values['name'] = isset($values['name'])?$values['name']:'';
|
61 |
$new_values['form_id'] = isset($values['form_id'])?(int)$values['form_id']: null;
|
62 |
//$new_values['parent_item_id'] = isset($values['parent_item_id'])?(int)$values['parent_item_id']: null;
|
63 |
|
64 |
+
$query_results = $wpdb->update( $frmdb->entries, $new_values, array( 'id' => $id ) );
|
65 |
|
66 |
if (isset($values['item_meta']))
|
67 |
$frm_entry_meta->update_entry_metas($id, $values['item_meta']);
|
70 |
}
|
71 |
|
72 |
function destroy( $id ){
|
73 |
+
global $wpdb, $frmdb;
|
74 |
|
75 |
// Disconnect the child items from this parent item
|
76 |
+
//$query_results = $wpdb->update( $frmdb->entries, array('parent_item_id' => null), array( 'parent_item_id' => $id ) );
|
77 |
|
78 |
+
$reset = 'DELETE FROM ' . $frmdb->entry_metas . ' WHERE item_id=' . $id;
|
79 |
+
$destroy = 'DELETE FROM ' . $frmdb->entries . ' WHERE id=' . $id;
|
80 |
|
81 |
$wpdb->query($reset);
|
82 |
return $wpdb->query($destroy);
|
83 |
}
|
84 |
|
85 |
function update_form( $id, $value, $form_id ){
|
86 |
+
global $wpdb, $frmdb;
|
87 |
$form_id = isset($value) ? $form_id : NULL;
|
88 |
+
return $wpdb->update( $frmdb->entries, array('form_id' => $form_id), array( 'id' => $id ) );
|
89 |
}
|
90 |
|
91 |
function getOne( $id ){
|
92 |
+
global $wpdb, $frmdb;
|
93 |
+
$query = "SELECT it.*, fr.name as form_name, fr.form_key as form_key FROM $frmdb->entries it
|
94 |
+
LEFT OUTER JOIN $frmdb->forms fr ON it.form_id=fr.id";
|
|
|
|
|
|
|
95 |
if(is_numeric($id))
|
96 |
$query .= ' WHERE it.id=' . $id;
|
97 |
else
|
100 |
}
|
101 |
|
102 |
function exists( $id ){
|
103 |
+
global $wpdb, $frmdb;
|
104 |
+
$query = "SELECT id FROM $frmdb->entries";
|
105 |
if(is_numeric($id))
|
106 |
$query .= ' WHERE id=' . $id;
|
107 |
else
|
114 |
}
|
115 |
|
116 |
function getAll($where = '', $order_by = '', $limit = ''){
|
117 |
+
global $wpdb, $frmdb, $frm_app_helper;
|
118 |
+
$query = "SELECT it.*, fr.name as form_name,fr.form_key as form_key
|
119 |
+
FROM $frmdb->entries it LEFT OUTER JOIN $frmdb->forms fr ON it.form_id=fr.id" .
|
|
|
|
|
|
|
120 |
$frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by . $limit;
|
121 |
return $wpdb->get_results($query);
|
122 |
}
|
123 |
|
124 |
// Pagination Methods
|
125 |
function getRecordCount($where=""){
|
126 |
+
global $wpdb, $frmdb, $frm_app_helper;
|
127 |
+
$query = "SELECT COUNT(*) FROM $frmdb->entries it LEFT OUTER JOIN $frmdb->forms fr ON it.form_id=fr.id" .
|
|
|
128 |
$frm_app_helper->prepend_and_or_where(' WHERE ', $where);
|
129 |
return $wpdb->get_var($query);
|
130 |
}
|
134 |
}
|
135 |
|
136 |
function getPage($current_p,$p_size, $where = "", $order_by = ''){
|
137 |
+
global $wpdb, $frmdb, $frm_app_helper;
|
138 |
$end_index = $current_p * $p_size;
|
139 |
$start_index = $end_index - $p_size;
|
140 |
+
$query = "SELECT it.*, fr.name as form_name FROM $frmdb->entries it
|
141 |
+
LEFT OUTER JOIN $frmdb->forms fr ON it.form_id=fr.id" .
|
142 |
+
$frm_app_helper->prepend_and_or_where(' WHERE ', $where) . $order_by .
|
143 |
+
" LIMIT $start_index,$p_size;";
|
|
|
|
|
144 |
$results = $wpdb->get_results($query);
|
145 |
return $results;
|
146 |
}
|
147 |
|
148 |
function validate( $values ){
|
149 |
+
global $wpdb, $frmdb, $frm_field, $frm_entry_meta;
|
150 |
|
151 |
$errors = array();
|
152 |
|
153 |
if( !isset($values['item_key']) or $values['item_key'] == '' )
|
154 |
+
$_POST['item_key'] = $values['item_key'] = FrmAppHelper::get_unique_key('', $frmdb->entries, 'item_key');
|
155 |
|
156 |
$where = apply_filters('frm_posted_field_ids', 'fi.form_id='.$values['form_id']);
|
157 |
$posted_fields = $frm_field->getAll($where, ' ORDER BY fi.field_order');
|
163 |
$value = $values['item_meta'][$posted_field->id];
|
164 |
|
165 |
if (isset($field_options['default_blank']) and $field_options['default_blank'] and $value == $posted_field->default_value)
|
166 |
+
$_POST['item_meta'][$posted |