PluginProbe
Smart Forms – when you need more than just a contact form / trunk
Smart Forms – when you need more than just a contact form vtrunk
trunk 0.5 0.5.5 0.6 0.7 0.8 0.8.5 0.9.1
smart-forms / smart-forms-helpers.php

smart-forms-helpers.php in Smart Forms – when you need more than just a contact form trunk, at smart-forms-helpers.php

232 lines 10.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 function rednao_smart_forms_load_form($title,$form_id,$returnComponent)
3 {
4 require_once(SMART_FORMS_DIR.'additional_fields/smart-forms-additional-fields-list.php');
5 //$options=get_transient("rednao_smart_forms_$form_id");
6 $options=false;
7 if($options==false)
8 {
9 global $wpdb;
10 /** @noinspection PhpUndefinedMethodInspection */
11 $result="";
12 if($form_id!=-1)
13 {
14 $result = $wpdb->get_results($wpdb->prepare("select form_id,element_options,form_options,client_form_options from " . SMART_FORMS_TABLE_NAME . " where form_id=%d", $form_id));
15 if (count($result) > 0)
16 {
17 $result = $result[0];
18 $options = array('elements' => $result->element_options,
19 'options' => $result->form_options,
20 'form_id' => $result->form_id,
21 'client_form_options' => $result->client_form_options
22 );
23
24 set_transient("rednao_smart_forms_$form_id", $options);
25 }
26 }else
27 $options=array(1);
28
29 }
30
31
32 $additionalFields=array();
33 if(isset($_GET['sfpreview']))
34 $additionalFields=apply_filters('smart_forms_af_names',$additionalFields);
35 else{
36 $formOptions=json_decode($options['options'],true);
37 if(isset($formOptions["AdditionalFields"]))
38 {
39 foreach($formOptions["AdditionalFields"] as $field)
40 {
41 array_push($additionalFields,array("id"=>$field));
42 }
43 }
44 }
45
46 $generatorDependencies=array('isolated-slider','smart-forms-event-manager','smart-forms-generator-interface','smart-forms-form-elements');
47 foreach($additionalFields as $field)
48 {
49 array_push($generatorDependencies,'smart-forms-af-'.$field['id']);
50 do_action('smart_forms_af_'.$field['id']);
51 }
52
53 $formElementDependencies=array('isolated-slider','smart-forms-form-elements-container');
54 $formElementDependencies=apply_filters('smart_forms_add_form_elements_dependencies',$formElementDependencies);
55
56 wp_enqueue_script('jquery');
57 wp_enqueue_script('smart-forms-event-manager',SMART_FORMS_DIR_URL.'js/formBuilder/eventmanager.js',array('isolated-slider'),SMART_FORMS_FILE_VERSION);
58 wp_enqueue_script('smart-forms-generator-interface',SMART_FORMS_DIR_URL.'js/subscriber_interfaces/ismart-forms-generator.js',array('isolated-slider'),SMART_FORMS_FILE_VERSION);
59 wp_enqueue_script('isolated-slider',plugin_dir_url(__FILE__).'js/rednao-isolated-jq.js',SMART_FORMS_FILE_VERSION);
60 wp_enqueue_script('smart-forms-generator',plugin_dir_url(__FILE__).'js/form-generator.js',$generatorDependencies,SMART_FORMS_FILE_VERSION);
61 wp_enqueue_script('smart-forms-form-elements-container',SMART_FORMS_DIR_URL.'js/formBuilder/container/Container.js',array('isolated-slider'),SMART_FORMS_FILE_VERSION);
62 wp_enqueue_script('smart-forms-form-elements',plugin_dir_url(__FILE__).'js/formBuilder/formelements.js',$formElementDependencies,SMART_FORMS_FILE_VERSION);
63 wp_enqueue_script('smart-forms-formula',SMART_FORMS_DIR_URL.'js/formBuilder/formula/formula.js',array('isolated-slider','smart-forms-event-manager'),SMART_FORMS_FILE_VERSION);
64 wp_enqueue_script('smart-forms-formula-manager',SMART_FORMS_DIR_URL.'js/formBuilder/formula/formulamanager.js',array('isolated-slider','smart-forms-event-manager','smart-forms-formula'),SMART_FORMS_FILE_VERSION);
65 wp_enqueue_script('smart-forms-elements-manipulators',SMART_FORMS_DIR_URL.'js/formBuilder/properties/manipulators.js',array('isolated-slider'),SMART_FORMS_FILE_VERSION);
66 wp_enqueue_script('smart-forms-conditional-handlers',SMART_FORMS_DIR_URL.'js/bundle/conditionalHandlers_bundle.js',array('isolated-slider'),SMART_FORMS_FILE_VERSION);
67
68 if($form_id==-1)
69 wp_enqueue_script('smart-forms-preview-helper',plugin_dir_url(__FILE__).'js/formBuilder/previewHelper.js',array('smart-forms-generator'),SMART_FORMS_FILE_VERSION);
70
71 do_action('smart_forms_loading_form',$options);
72 do_action('smart_forms_pr_add_form_elements_extensions');
73 require_once(SMART_FORMS_DIR.'translations/form-elements-translation.php');
74 require_once(SMART_FORMS_DIR.'smart-forms-bootstrap.php');
75
76 wp_enqueue_style('smart-forms-Slider',SMART_FORMS_DIR_URL.'css/smartFormsSlider/jquery-ui-1.10.2.custom.min.css',array(),SMART_FORMS_FILE_VERSION);
77 wp_enqueue_style('smart-forms-custom-elements',plugin_dir_url(__FILE__).'css/formBuilder/custom.css',array(),SMART_FORMS_FILE_VERSION);
78
79
80 $random=rand();
81 if($form_id==-1)
82 $random="sfpreviewcontainer";
83
84 if(!defined ("SMART_DONATIONS_PLUGIN_URL"))
85 define("SMART_DONATIONS_PLUGIN_URL","");
86
87 if(!defined ("SMART_DONATIONS_SANDBOX"))
88 define("SMART_DONATIONS_SANDBOX","");
89
90
91 $user=wp_get_current_user();
92 $userName=$user->user_login;
93 $firstName='';
94 $lastName='';
95 $email='';
96 if($userName==false)
97 $userName='';
98 else{
99 $firstName=$user->user_firstname;
100 $lastName=$user->user_lastname;
101 $email=$user->user_email;
102 }
103
104
105 if($returnComponent==false)
106 {
107 echo "<script type=\"text/javascript\">var ajaxurl = '".esc_url(admin_url('admin-ajax.php'))."';</script>";
108 echo "<div class='widget'>";
109 if($options==null)
110 return null;
111
112 if($title)
113 echo "<div class='widget-wrapper'><h3 class='widgettitle widget-title'>".esc_html($title)."</h3>";
114
115 ?>
116
117
118 <div id="formContainer<?php echo esc_attr($random)?>" class='sfForm rednaoFormContainer bootstrap-wrapper SfFormElementContainer'></div>
119 <script type="text/javascript">
120 var smartFormsSaveNonce=<?php echo json_encode(wp_create_nonce('save_form'))?>;
121 var smartFormsCurrentTime=new Date(<?php echo json_encode(date('D M d Y H:i:s O'))?>);
122 var smartFormsUserName=<?php echo json_encode($userName)?>;
123 var smartFormsFirstName=<?php echo json_encode($firstName)?>;
124 var smartFormsLastName=<?php echo json_encode($lastName)?>;
125 var smartFormsEmail=<?php echo json_encode($email)?>;
126 var smartFormsPath=<?php echo json_encode(plugin_dir_url(__FILE__))?>;
127 var smartDonationsRootPath=<?php echo json_encode(SMART_DONATIONS_PLUGIN_URL) ?>;
128 var smartDonationsSandbox=<?php echo json_encode(SMART_DONATIONS_SANDBOX) ?>;
129 var smartFormsDesignMode=false;
130 var smartFormsAdditionalFields<?php echo ($options['form_id']==null?0:intval($options['form_id']))?>=<?php echo json_encode($additionalFields)?>;
131 if(!window.smartFormsItemsToLoad)
132 window.smartFormsItemsToLoad=[];
133
134 window.smartFormsItemsToLoad.push(<?php echo json_encode([
135 'form_id'=>$options['form_id'],
136 'elements'=>json_decode($options['elements']),
137 'client_form_options'=>json_decode($options['client_form_options']),
138 'container'=>'formContainer'.$random
139 ])?>);
140
141 </script>
142 <?php
143 if($title)
144 echo "</div>";
145
146 echo "</div>";
147
148 }else{
149
150 global $createdForms;
151 if($createdForms==null)
152 $createdForms=array();
153
154 $loadedForm="";
155 if($form_id!=-1)
156 {
157
158
159 $newOptions=[];
160 $newOptions['form_id']=$form_id;
161 $newOptions['elements']=json_decode($options['elements']);
162 $newOptions['client_form_options']=json_decode($options['client_form_options']);
163 $newOptions['container']='formContainer'.$random;
164
165 $createdForms[]=$newOptions;
166 wp_localize_script('smart-forms-generator','smartFormsItemsToLoad',$createdForms);
167
168 }
169 $script="
170 var ajaxurl = '".admin_url('admin-ajax.php')."';
171 var smartFormsCurrentTime=new Date('".date('D M d Y H:i:s O')."');
172 var smartFormsSaveNonce=\"".wp_create_nonce('save_form')."\";
173 var smartFormsUserName=\"".$userName."\";
174 var smartFormsFirstName=\"".$firstName."\";
175 var smartFormsLastName=\"".$lastName."\";
176 var smartFormsEmail=\"".$email."\";
177 var smartFormsPath=\"".plugin_dir_url(__FILE__)."\";
178 var smartDonationsRootPath=\"".SMART_DONATIONS_PLUGIN_URL."\";
179 var smartDonationsSandbox=\"".SMART_DONATIONS_SANDBOX."\";
180 var smartFormsAdditionalFields".(!isset($options['form_id'])?0:$options['form_id'])."=".json_encode($additionalFields).";
181 var smartFormsDesignMode=false;
182 if(!window.smartFormsItemsToLoad)
183 window.smartFormsItemsToLoad=new Array();
184 ";
185
186 $script.=$loadedForm;
187 if($options==null)
188 return "";
189
190 $container="<div id='formContainer$random' class='sfForm rednaoFormContainer SfFormElementContainer bootstrap-wrapper'></div>";
191 $useInlineScript=false;
192 if($useInlineScript&&function_exists('wp_add_inline_script'))
193 {
194 wp_add_inline_script('smart-forms-generator',$script);
195 return $container;
196 }else
197 return $container."<script>$script</script>";
198
199
200 }
201
202 return null;
203 }
204
205 function rednao_smart_forms_load_preview(){
206 $previewPage=get_page_by_title("Smart Forms Page Preview","OBJECT","smartforms_preview");
207 $page_id=0;
208 if($previewPage==null)
209 {
210 $post = array(
211 'post_content' => '[sform]-1[/sform]',
212 'post_name' => 'Smart Forms Page Preview',
213 'post_title' => 'Smart Forms Page Preview',
214 'post_status' => 'draft',
215 'post_type' => 'smartforms_preview',
216 'ping_status' => 'closed',
217 'comment_status' => 'closed'
218 );
219 $page_id = wp_insert_post( $post );
220 wp_redirect( trailingslashit( site_url() ) . '?page_id='.$page_id.'&sfpreview=true');
221 }else
222 $page_id=$previewPage->ID;
223
224 $url=get_permalink($page_id);
225
226 if(strpos($url,'?')===false)
227 $url.=$url.'?';
228
229 $url.='?page_id='.$previewPage->ID.'&sfpreview=true';
230 wp_redirect($url);
231
232 }