Version Description
- Allows selecting the autocomplete attribute from the fields' settings.
- Includes the Date/Time operations module with the free and professional version of the plugin.
- Allows passing the version number of the ChartJS library through the CFFCHART operation (Developer and Platinum versions of the plugin).
Download this release
Release Info
Developer | codepeople |
Plugin | Calculated Fields Form |
Version | 1.1.3 |
Comparing to | |
See all releases |
Code changes from version 1.0.463 to 1.1.3
- README.txt +237 -238
- captcha/captcha.php +10 -10
- changelog.txt +81 -79
- cp_calculatedfieldsf_free.php +2 -2
- css/loader.css +9 -0
- css/spinner.gif +0 -0
- css/style.css +49 -21
- css/stylepublic.css +13 -3
- css/ui-bg_glass_80_eebd4d_1x400.png +0 -0
- css/ui-bg_glass_80_eebd4dc_1x400.png +0 -0
- inc/cpcff_admin_int.inc.php +66 -52
- inc/cpcff_admin_int_list.inc.php +15 -14
- inc/cpcff_amp.inc.php +6 -4
- inc/cpcff_auxiliary.inc.php +8 -0
- inc/cpcff_install_uninstall.inc.php +1 -1
- inc/cpcff_main.inc.php +4 -4
- inc/cpcff_page_builders.inc.php +17 -1
- inc/cpcff_session.inc.php +1 -1
- js/fbuilder-pro-admin.jquery.js +21 -3
- js/fbuilder-pro-public.jquery.js +5 -4
- js/fields-admin/01_fbuilder.ftext.js +1 -0
- js/fields-admin/02_fbuilder.fnumber.js +6 -4
- js/fields-admin/03_fbuilder.fcolor.js +38 -0
- js/fields-admin/03_fbuilder.femail.js +1 -0
- js/fields-admin/04_fbuilder.fdate.js +1 -0
- js/fields-admin/05_fbuilder.ftextarea.js +1 -0
- js/fields-admin/06_fbuilder.fcheck.js +1 -0
- js/fields-admin/07_fbuilder.fradio.js +1 -0
- js/fields-admin/15_fbuilder.fpagebreak.js +5 -1
- js/fields-admin/28_fbuilder.fcontainer.js +9 -1
- js/fields-admin/29_fbuilder.ffieldset.fc.js +1 -1
- js/fields-admin/30_fbuilder.fdiv.fc.js +1 -1
- js/fields-admin/32_fbuilder.fbutton.js +1 -1
- js/fields-admin/fbuilder.fcalculated.js +26 -10
- js/fields-public/01_fbuilder.ftext.js +2 -1
- js/fields-public/03_fbuilder.fcolor.js +29 -0
- js/fields-public/03_fbuilder.femail.js +2 -1
- js/fields-public/04_fbuilder.fdate.js +6 -4
- js/fields-public/05_fbuilder.ftextarea.js +2 -1
- js/fields-public/06_fbuilder.fcheck.js +3 -2
- js/fields-public/07_fbuilder.fradio.js +2 -1
- js/fields-public/09_fbuilder.ffile.js +6 -0
- js/fields-public/16_fbuilder.fsummary.js +11 -2
- js/fields-public/32_fbuilder.fbutton.js +7 -2
- js/fields-public/fbuilder.fcalculated.js +26 -13
- js/modules/01_mathematical_logical/admin/module_admin.js +1 -0
- js/modules/01_mathematical_logical/public/module_public.js +7 -0
- js/modules/02_datetime/admin/module_admin.js +29 -0
- js/modules/02_datetime/public/01_datetime.js +308 -0
- js/modules/02_datetime/public/module_public.js +20 -0
- js/modules/03_financial/admin/module_admin.js +13 -0
- js/modules/04_distance/admin/module_admin.js +13 -0
- js/modules/05_managing_fields/public/05_managing_fields.js +5 -2
- js/modules/07_chart/admin/module_admin.js +13 -0
- js/modules/08_url/admin/module_admin.js +5 -0
- js/modules/08_url/public/01_url.js +5 -0
- languages/calculated-fields-form-en_US.mo +0 -0
- languages/calculated-fields-form-en_US.po +160 -118
- pagebuilders/beaverbuilder/cff/cff.inc.php +6 -0
- pagebuilders/elementor/assets/elementor.css +4 -0
- pagebuilders/elementor/assets/elementor.js +19 -0
- pagebuilders/elementor/elementor.pb.php +15 -0
- pagebuilders/gutenberg/assets/js/gutenberg.js +29 -0
- pagebuilders/siteorigin/siteorigin-cpcff/fields/cff-button.class.php +33 -0
- pagebuilders/siteorigin/siteorigin-cpcff/siteorigin-cpcff.php +11 -0
README.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: codepeople
|
|
3 |
Donate link: http://cff.dwbooster.com
|
4 |
Tags: form,quote form,contact form,form builder,calculator,calculated,quote calculator,forms,form editor,advanced forms,payment calculator,payment,recurring payment,quote,fields,calculated field,price calculator,email,form design,paypal,equation editor,formula,equation,quote calculator,post,posts,plugin,widget,admin,sidebar,images,image,page,shortcode,products form,woocommerce,addons,layout,session,post,cookie,get,webhook,Dropbox,pdf,language
|
5 |
Requires at least: 3.0.5
|
6 |
-
Tested up to: 5.
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -14,25 +14,25 @@ Calculated Fields Form allows you to create both simple and rich forms, quickly
|
|
14 |
|
15 |
The "Calculated Fields Form" plugin allows you to create web forms with calculated fields, whose values are dynamically calculated based on other fields' values in the web form.
|
16 |
|
17 |
-
The possibilities are unlimited.
|
18 |
|
19 |
-
|
20 |
|
21 |
-
Creating a form is all visual. The "Calculated Fields Form" plugin includes a form editor with multiple controls.
|
22 |
|
23 |
-
The form editor includes
|
24 |
|
25 |
The "Calculated Fields Form" plugin includes integration with popular page builders:
|
26 |
|
27 |
-
* Classic WordPress Editor
|
28 |
-
* Gutenberg Editor
|
29 |
-
* Elementor
|
30 |
-
* Page Builder by SiteOrigin
|
31 |
-
* Beaver Builder
|
32 |
-
* WPBakery Page Builder
|
33 |
-
* DIVI Builder
|
34 |
|
35 |
-
For other editors, it is possible to insert the form into the pages via its shortcode. Each web form has
|
36 |
|
37 |
== Features ==
|
38 |
|
@@ -40,22 +40,22 @@ For other editors, it is possible to insert the form into the pages via its shor
|
|
40 |
|
41 |
* Visual [form builder](https://cff.dwbooster.com/documentation#form-builder) with an intuitive and interactive interface.
|
42 |
* Includes [general-purpose controls](https://cff.dwbooster.com/documentation#common-fields) such as radio buttons, checkboxes, menu lists, date fields, slider controls, numeric fields, text currency fields, etc.
|
43 |
-
* Includes [calculated fields](https://cff.dwbooster.com/documentation#calculated-fields-settings) whose values
|
44 |
-
|
45 |
-
* Contains advanced formula editor associated with the calculated fields with syntax highlighting and error detection.
|
46 |
-
*
|
47 |
-
*
|
48 |
-
*
|
49 |
-
* Supports multi-pages forms by inserting page
|
50 |
-
* Allows grouping fields inside container controls (
|
51 |
-
*
|
52 |
|
53 |
= Other features: =
|
54 |
|
55 |
* From the plugin configuration page, it is possible to duplicate a form by pressing the "Clone" button associated with it. By cloning a form, you can reuse the work already done.
|
56 |
* Includes a troubleshooting and optimization area.
|
57 |
* Allows you to disable forms in the indexing process to improve the speed of the website.
|
58 |
-
* Includes a version control in the forms to
|
59 |
|
60 |
= Predefined forms: =
|
61 |
|
@@ -67,92 +67,92 @@ You can insert as many calculated fields in the form as you need.
|
|
67 |
4. Pregnancy Calculator
|
68 |
5. Lease Calculator
|
69 |
|
70 |
-
|
71 |
|
72 |
> <strong>Calculated Fields Form Commercial</strong><br />
|
73 |
>The free version of the "Calculated Fields Form" plugin includes only basic functionality. Other distributions (Professional, Developer, and Platinum) are available with advanced functionalities, such as sending notification emails, integration with payment gateways and external services, controls for database's connection (and connection to other data sources), complex operations, and many other features.
|
74 |
|
75 |
= Features of the Profesional version: =
|
76 |
|
77 |
-
*
|
78 |
-
*
|
79 |
-
*
|
80 |
-
*
|
81 |
Payments allow SCA (strong customer authentication), compatible with the new payment services (PSD 2) - Directive (EU).
|
82 |
-
*
|
83 |
-
*
|
84 |
-
*
|
85 |
-
*
|
86 |
-
*
|
87 |
-
*
|
88 |
|
89 |
= Features of the Developer version: =
|
90 |
|
91 |
-
* Includes all the features of the free and
|
92 |
-
*
|
93 |
-
*
|
94 |
-
*
|
95 |
-
*
|
96 |
-
*
|
97 |
-
*
|
98 |
|
99 |
**Includes add-ons to extend the form features and make use of third-party plugins and external services**
|
100 |
|
101 |
-
* [
|
102 |
-
* [WooCommerce add-on](https://cff.dwbooster.com/add-ons/woocommerce)
|
103 |
-
* [SalesForce add-on](https://cff.dwbooster.com/add-ons/salesforce)
|
104 |
-
* [WebHooks add-on](https://cff.dwbooster.com/add-ons/webhook)
|
105 |
-
* [
|
106 |
-
* [
|
107 |
-
* [reCAPTCHA add-on](https://cff.dwbooster.com/add-ons/recaptcha)
|
108 |
|
109 |
= Features of the Platinum version: =
|
110 |
|
111 |
-
*
|
112 |
-
* [Easy Digital Downloads add-on](https://cff.dwbooster.com/add-ons/edd)
|
113 |
-
* [Google Analytics add-on](https://cff.dwbooster.com/add-ons/google-analytics)
|
114 |
-
* [PayPal Pro add-on](https://cff.dwbooster.com/add-ons/paypal-pro)
|
115 |
-
* [Upload Files add-on](https://cff.dwbooster.com/add-ons/upload)
|
116 |
-
* [DropBox Integration add-on](https://cff.dwbooster.com/add-ons/dropbox)
|
117 |
-
* [ip2location add-on](https://cff.dwbooster.com/add-ons/ip2location)
|
118 |
-
* [Google Places add-on](https://cff.dwbooster.com/add-ons/google-places)
|
119 |
-
* [Autocomplete Places add-on](https://cff.dwbooster.com/add-ons/autocomplete-places)
|
120 |
-
* [Signature add-on](https://cff.dwbooster.com/add-ons/signature)
|
121 |
-
* [iCal add-on](https://cff.dwbooster.com/add-ons/ical)
|
122 |
-
* [CSV Generator add-on](https://cff.dwbooster.com/add-ons/csv-generator)
|
123 |
-
* [PDF Generator add-on](https://cff.dwbooster.com/add-ons/pdf-generator)
|
124 |
-
* [WebMerge add-on](https://cff.dwbooster.com/add-ons/webmerge)
|
125 |
-
* [PrintFriendly add-on](https://cff.dwbooster.com/add-ons/printfriendly)
|
126 |
-
* [
|
127 |
-
* [Mautic add-on](https://cff.dwbooster.com/add-ons/mautic)
|
128 |
-
* [HubSpot add-on](https://cff.dwbooster.com/add-ons/hubspot)
|
129 |
-
* [Emma add-on](https://cff.dwbooster.com/add-ons/emma)
|
130 |
-
* [Twilio add-on](https://cff.dwbooster.com/add-ons/twilio)
|
131 |
-
* [MailPoet add-on](https://cff.dwbooster.com/add-ons/mailpoet)
|
132 |
-
* [AffiliateWP add-on](https://cff.dwbooster.com/add-ons/affiliatewp)
|
133 |
-
* [Authorize.Net add-on](https://cff.dwbooster.com/add-ons/authorize)
|
134 |
-
* [Stripe add-on](https://cff.dwbooster.com/add-ons/stripe)
|
135 |
-
* [Skrill Payments Integration](https://cff.dwbooster.com/add-ons/skrill)
|
136 |
-
* [TargetPay (iDeal) add-on](https://cff.dwbooster.com/add-ons/targetpay)
|
137 |
-
* [Mollie (iDeal) add-on](https://cff.dwbooster.com/add-ons/mollie)
|
138 |
-
* [RedSys / Servired / Sermepa add-on](https://cff.dwbooster.com/add-ons/redsys) provides a secure interface for accepting credit card payments from most banks in Spain.
|
139 |
-
* [PayTM add-on](https://cff.dwbooster.com/add-ons/paytm)
|
140 |
-
* [SagePay add-on](https://cff.dwbooster.com/add-ons/sagepay)
|
141 |
-
* [Sage Payment add-on](https://cff.dwbooster.com/add-ons/sagepayment)
|
142 |
-
|
143 |
-
Please
|
144 |
|
145 |
|
146 |
== Other Notes ==
|
147 |
|
148 |
|
149 |
-
This section mainly contains notes on features of the form builder that are too
|
150 |
|
151 |
= Conditional rules =
|
152 |
|
153 |
-
It is possible to show or hide form fields (dependent fields) based on the options
|
154 |
|
155 |
-
The value of a dependent field is zero when it is hidden/disabled. The plugin excludes
|
156 |
|
157 |
[Additional details about the use of dependencies](https://cff.dwbooster.com/blog/2020/03/01/dependencies/ "Description about the use of dependencies")
|
158 |
|
@@ -160,17 +160,17 @@ The value of a dependent field is zero when it is hidden/disabled. The plugin ex
|
|
160 |
|
161 |
The predefined values in the fields have two possible uses:
|
162 |
|
163 |
-
1- To fill the field by default.
|
164 |
|
165 |
-
2- Hint of the values to be entered in the field (like "
|
166 |
|
167 |
-
= The "User Instructions"
|
168 |
|
169 |
-
The "User instructions" attribute in the field settings allows you to instruct the user on fill in the field. By default, the instructions appear as
|
170 |
|
171 |
= Adding CSS layout keywords =
|
172 |
|
173 |
-
The "Add CSS layout keywords" attribute in the fields settings allows you to apply CSS styles to fields. You must enter
|
174 |
|
175 |
You can define the CSS classes via the "Customize Form Design" attribute in the "Form Settings" tab. This attribute contains a CSS editor with syntax highlighting and error checking.
|
176 |
|
@@ -178,7 +178,7 @@ If you want to assign several class names to the field, separate them by space c
|
|
178 |
|
179 |
The plugin includes multiple predefined classes that you can assign to the form fields.
|
180 |
|
181 |
-
More information about the form's design
|
182 |
|
183 |
[Customizing the form's design](https://cff.dwbooster.com/blog/2020/01/12/form-design/ "Customizing the form's design")
|
184 |
|
@@ -196,17 +196,17 @@ There are other variants for displaying several fields on the same line, such as
|
|
196 |
|
197 |
= Multi-page form =
|
198 |
|
199 |
-
To create multi-
|
200 |
|
201 |
When the user presses the "Next Page" button, the plugin validates the fields in the current form. If there is any validation error (such as an unfilled required field), the plugin stops the "Next page" action.
|
202 |
|
203 |
= Hidden calculated fields =
|
204 |
|
205 |
-
Calculated fields include a checkbox in
|
206 |
|
207 |
-
=
|
208 |
|
209 |
-
Below,
|
210 |
|
211 |
* With simple mathematical operations:
|
212 |
|
@@ -228,7 +228,7 @@ Below, I will include some possible formulas as examples, but the possibilities
|
|
228 |
|
229 |
`PREC(fieldname2 / fieldname3, 2)`
|
230 |
|
231 |
-
* There
|
232 |
|
233 |
`(function () {`
|
234 |
`if (100 < fieldname3) return fieldname1 + fieldname2;`
|
@@ -245,13 +245,13 @@ Below, I will include some possible formulas as examples, but the possibilities
|
|
245 |
|
246 |
= Operations and operators to use in equations/formulas =
|
247 |
|
248 |
-
One of the "Calculated Fields Form" strengths is to use any valid
|
249 |
|
250 |
However, the plugin includes a wide variety of operations and operators to simplify the development process.
|
251 |
|
252 |
[Mathematical Operations and Operators](http://cff.dwbooster.com/documentation#mathematical-module)
|
253 |
|
254 |
-
[Conditional
|
255 |
|
256 |
[Field Handling Operations](http://cff.dwbooster.com/documentation#managing-fields-module)
|
257 |
|
@@ -259,9 +259,9 @@ However, the plugin includes a wide variety of operations and operators to simpl
|
|
259 |
|
260 |
[Operations for handling URLs and query strings](http://cff.dwbooster.com/documentation#url-module)
|
261 |
|
262 |
-
In addition to the
|
263 |
|
264 |
-
[Date
|
265 |
|
266 |
[Financial Operations](http://cff.dwbooster.com/documentation#financial-module)
|
267 |
|
@@ -271,15 +271,15 @@ In addition to the operations modules listed above, the Developer and Platinum v
|
|
271 |
|
272 |
= Controls available in the form generator of the "Calculated Fields Form" =
|
273 |
|
274 |
-
The complete list of controls is available
|
275 |
|
276 |
-
= Create JavaScript variables
|
277 |
|
278 |
-
The plugin includes the shortcode [CP_CALCULATED_FIELDS_VAR] to generate
|
279 |
|
280 |
`[CP_CALCULATED_FIELDS_VAR name="..."]`
|
281 |
|
282 |
-
In the shortcode, you must replace the "..." symbols with the name of the parameter or variable. It will be the same name for the
|
283 |
|
284 |
For example:
|
285 |
|
@@ -291,9 +291,9 @@ The complete list of parameters accepted by the variables shortcode is available
|
|
291 |
|
292 |
= Tips for calculating prices =
|
293 |
|
294 |
-
One of the most frequent uses of our plugin is for price calculation. When displaying the
|
295 |
|
296 |
-
Note that you can make the "Instruct. Text" fields dependent on the calculated value.
|
297 |
|
298 |
== Installation ==
|
299 |
|
@@ -309,243 +309,243 @@ To build a form, go to the menu option "Calculated Fields Form"
|
|
309 |
|
310 |
To insert the calculated / contact form into some content or post, use the corresponding form's shortcode. Each web form has associated a shortcode.
|
311 |
|
312 |
-
== Add
|
313 |
|
314 |
-
The add
|
315 |
|
316 |
-
The plugin
|
317 |
|
318 |
-
= Server
|
319 |
|
320 |
-
|
321 |
|
322 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#server-side-equations-addon "Server Side Equations add-on")
|
323 |
|
324 |
-
= WooCommerce add
|
325 |
|
326 |
-
|
327 |
|
328 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#woocommerce-addon "WooCommerce add-on")
|
329 |
|
330 |
-
= Easy Digital Downloads add
|
331 |
|
332 |
-
|
333 |
|
334 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#edd-addon "Easy Digital Downloads add-on")
|
335 |
|
336 |
-
= SalesForce add
|
337 |
|
338 |
-
|
339 |
|
340 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#salesforce-addon "SalesForce add-on")
|
341 |
|
342 |
-
= WebHook add
|
343 |
|
344 |
-
|
345 |
|
346 |
-
|
347 |
|
348 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#webhook-addon "WebHook add-on")
|
349 |
|
350 |
-
=
|
351 |
|
352 |
-
|
353 |
|
354 |
-
The
|
355 |
|
356 |
-
|
357 |
|
358 |
[CLICK HERE for additional information ](http://cff.dwbooster.com/documentation#users-addon "Users add-on")
|
359 |
|
360 |
-
= User Registration Form add
|
361 |
|
362 |
-
|
363 |
|
364 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#user-registration-form-addon "User Registration Form add-on")
|
365 |
|
366 |
-
= reCAPTCHA add
|
367 |
|
368 |
-
|
369 |
|
370 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#recaptcha-addon "reCAPTCHA add-on")
|
371 |
|
372 |
-
= Google Analytics add
|
373 |
|
374 |
-
|
375 |
|
376 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#google-analytics-addon "Google Analytics add-on")
|
377 |
|
378 |
-
= PayPal Pro add
|
379 |
|
380 |
-
|
381 |
|
382 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#paypal-pro-addon "PayPal Pro add-on")
|
383 |
|
384 |
-
= Upload Files add
|
385 |
|
386 |
-
Every commercial version of the plugin includes the "Upload File" control to upload files from the form. However, the "Upload Files" add-on allows
|
387 |
|
388 |
-
WordPress restricts the
|
389 |
|
390 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#upload-addon "Upload Files add-on")
|
391 |
|
392 |
-
= DropBox Integration add
|
393 |
|
394 |
-
|
395 |
|
396 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#dropbox-addon "DropBox Integration add-on")
|
397 |
|
398 |
-
= ip2location add
|
399 |
|
400 |
-
|
401 |
|
402 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#ip2location-addon "ip2location add-on")
|
403 |
|
404 |
-
= Google Places add
|
405 |
|
406 |
-
|
407 |
|
408 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#google-places-addon "Google Places add-on")
|
409 |
|
410 |
-
= Autocomplete Places add
|
411 |
|
412 |
-
|
413 |
|
414 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#autocomplete-places-addon "Autocomplete Places add-on")
|
415 |
|
416 |
-
= Signature add
|
417 |
|
418 |
-
|
419 |
|
420 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#signature-addon "Signature add-on")
|
421 |
|
422 |
-
= iCal add
|
423 |
|
424 |
-
|
425 |
|
426 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#ical-addon "iCal add-on")
|
427 |
|
428 |
-
= CSV Generator add
|
429 |
|
430 |
-
|
431 |
|
432 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#csv-generator-addon "CSV Generator add-on")
|
433 |
|
434 |
-
= PDF Generator add
|
435 |
|
436 |
-
|
437 |
|
438 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#pdf-generator-addon "PDF Generator add-on")
|
439 |
|
440 |
-
= WebMerge add
|
441 |
|
442 |
-
|
443 |
|
444 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#webmerge-addon "WebMerge add-on")
|
445 |
|
446 |
-
|
447 |
|
448 |
-
= PrintFriendly add
|
449 |
|
450 |
-
|
451 |
|
452 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#printfriendly-addon "PrintFriendly add-on")
|
453 |
|
454 |
-
=
|
455 |
|
456 |
-
|
457 |
|
458 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#mailchimp-addon "MailChimp add-on")
|
459 |
|
460 |
-
= Mautic add
|
461 |
|
462 |
-
|
463 |
|
464 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#mautic-addon "Mautic add-on")
|
465 |
|
466 |
-
= HubSpot add
|
467 |
|
468 |
-
|
469 |
|
470 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#hubspot-addon "HubSpot add-on")
|
471 |
|
472 |
-
= Emma add
|
473 |
|
474 |
-
|
475 |
|
476 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#emma-addon "Emma add-on")
|
477 |
|
478 |
-
= Twilio add
|
479 |
|
480 |
-
|
481 |
|
482 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#twilio-addon "Twilio add-on")
|
483 |
|
484 |
-
= MailPoet add
|
485 |
|
486 |
-
|
487 |
|
488 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#mailpoet-addon "MailPoet add-on")
|
489 |
|
490 |
= AffiliateWP add-on - included in the Platinum version of the plugin =
|
491 |
|
492 |
-
|
493 |
|
494 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#affiliatewp-addon "AffiliateWP add-on")
|
495 |
|
496 |
-
= Authorize.Net add
|
497 |
|
498 |
The Authorize.net Server Integration Method (Authorize.net SIM) is a hosted payment processing solution that handles all of the steps in processing a transaction.
|
499 |
|
500 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#authorize-addon "Authorize.Net add-on")
|
501 |
|
502 |
-
= Stripe add
|
503 |
|
504 |
The Stripe Payments add-on (www.stripe.com) provides a way to accept all major cards from customers around the world.
|
505 |
|
506 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#stripe-addon "Stripe add-on")
|
507 |
|
508 |
-
= Skrill Payments Integration add
|
509 |
|
510 |
-
|
511 |
|
512 |
You can accept cards, more than 20 local payment methods, and over 80 direct bank transfer connections with a single integration.
|
513 |
|
514 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#skrill-addon "Skrill add-on")
|
515 |
|
516 |
-
= TargetPay (iDeal) add
|
517 |
|
518 |
-
|
519 |
|
520 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#targetpay-addon "TargetPay iDeal add-on")
|
521 |
|
522 |
-
= Mollie (iDeal) add
|
523 |
|
524 |
-
|
525 |
|
526 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#mollie-addon "Mollie add-on")
|
527 |
|
528 |
-
= RedSys / Servired / Sermepa add
|
529 |
|
530 |
-
|
531 |
|
532 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#redsys-addon "RedSys / Servired / Sermepa TPV add-on")
|
533 |
|
534 |
= PayTM add-on - included in the Platinum version of the plugin =
|
535 |
|
536 |
-
|
537 |
|
538 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#paytm-addon "PayTM add-on")
|
539 |
|
540 |
= SagePay add-on - included in the Platinum version of the plugin =
|
541 |
|
542 |
-
|
543 |
|
544 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#sagepay-addon "SagePay add-on")
|
545 |
|
546 |
= Sage Payment add-on - included in the Platinum version of the plugin =
|
547 |
|
548 |
-
|
549 |
|
550 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#sagepayment-addon "Sage Payment add-on")
|
551 |
|
@@ -559,7 +559,7 @@ A: [Yes, it is](http://cff.dwbooster.com/faq#q214 "Yes, it is")
|
|
559 |
|
560 |
A: [Yes, it is](http://cff.dwbooster.com/faq#q319 "Yes, it is")
|
561 |
|
562 |
-
= Q: What control types
|
563 |
|
564 |
A: The Calculated Fields Form's page contains detailed information about each field in the plugin: [Click Here](https://cff.dwbooster.com/documentation#common-fields "Click Here")
|
565 |
|
@@ -589,7 +589,7 @@ A: [List and description of date/time operations](http://cff.dwbooster.com/docum
|
|
589 |
|
590 |
A: [List and description of financial operations](http://cff.dwbooster.com/documentation#financial-module "Financial Operations")
|
591 |
|
592 |
-
= Q: How
|
593 |
|
594 |
A: The CALCULATEAMORTIZATION is the most complex operation in the plugin and deserves its own section. Please, visit the following link to read a detailed description of its use:
|
595 |
|
@@ -611,7 +611,7 @@ A: Please, read the answer in the FAQ entry: [Click Here](http://cff.dwbooster.c
|
|
611 |
|
612 |
A: Please, read the answer in the FAQ entry: [Click Here](http://cff.dwbooster.com/faq#q269 "FAQ Entry")
|
613 |
|
614 |
-
= Q: How to use a parameter passed by
|
615 |
|
616 |
A: Please, read the answer in the FAQ entry: [Click Here](http://cff.dwbooster.com/faq#q270 "FAQ Entry")
|
617 |
|
@@ -627,7 +627,7 @@ A: Please, visit the following link to the plugin documentation. Pay attention t
|
|
627 |
|
628 |
A: [Initializing date/time fields](http://cff.dwbooster.com/faq#q220 "FAQ Entry")
|
629 |
|
630 |
-
= Q: How to change the language on datepicker? =
|
631 |
|
632 |
A: There are different alternatives, directly through the form's structure or uploading a new file to the plugin's folder. Please, visit the following link to read the instructions: [Click Here](http://cff.dwbooster.com/faq#q221 "FAQ Entry")
|
633 |
|
@@ -660,7 +660,7 @@ Additionally, to hide the checkboxes and radio buttons, for using only the image
|
|
660 |
|
661 |
A: [How to replace the image displayed in a Media Field?](http://cff.dwbooster.com/faq#q266 "FAQ Entry")
|
662 |
|
663 |
-
= Q: In which order the plugin
|
664 |
|
665 |
A: [Evaluating the equations](http://cff.dwbooster.com/faq#q79 "FAQ Entry")
|
666 |
|
@@ -674,7 +674,7 @@ Additional details in the "[PayPal Payment Configuration](https://cff.dwbooster.
|
|
674 |
|
675 |
A: Please, read the following entry in the plugin's FAQ: [Click Here]](http://cff.dwbooster.com/faq#q225 "utf-8")
|
676 |
|
677 |
-
= Q: The calculated form doesn't appear on the public website.
|
678 |
|
679 |
A: Please, change the "Script load method" from "Classic" to "Direct" in the "troubleshoot area" located below the forms list in the settings page of the plugin.
|
680 |
|
@@ -692,7 +692,7 @@ A: [Displaying selected values in slider control](http://cff.dwbooster.com/faq#q
|
|
692 |
|
693 |
A: [Create new validation rules](http://cff.dwbooster.com/documentation#new-validation-rules "New Validation Rules")
|
694 |
|
695 |
-
= Q: How to display a summary of entered data
|
696 |
|
697 |
A: Insert a summary control in the form, and enter the names of the fields to display in the summary through its settings.
|
698 |
|
@@ -720,11 +720,11 @@ A: [Creating new templates](http://cff.dwbooster.com/documentation#create-templa
|
|
720 |
|
721 |
A: [Hiding the fields in form](http://cff.dwbooster.com/faq#q232 "FAQ Entry")
|
722 |
|
723 |
-
= Q: Why, after assigning some of the column class names (column2, column3, column4, col-...) to a group of fields, the next field is displaced
|
724 |
|
725 |
A: [You can fix this behavior by inserting a separator field between rows](http://cff.dwbooster.com/faq#q320 "FAQ Entry")
|
726 |
|
727 |
-
= Q: How assign multiple class names to a field? =
|
728 |
|
729 |
A: The class names are assigned to the fields through the attribute: "Add Css Layout Keywords"
|
730 |
|
@@ -734,11 +734,11 @@ To assign multiple class names to a field, you must separate them by space chara
|
|
734 |
|
735 |
A: [Accepted files](http://cff.dwbooster.com/faq#q235 "FAQ Entry")
|
736 |
|
737 |
-
= Q: How can I include the links to the uploaded files
|
738 |
|
739 |
A: [Inserting the links to the uploaded files into the notification emails](http://cff.dwbooster.com/faq#q160 "FAQ Entry")
|
740 |
|
741 |
-
= Q: Why the form builder
|
742 |
|
743 |
A: If you are copying the information used to configure the form from third-party applications (like MS Word or Excel), this information can include non-valid characters. The plugin validates the form's structure to avoid this type of errors.
|
744 |
|
@@ -754,15 +754,15 @@ A: To print only the form, but not the rest of the page's content, please, follo
|
|
754 |
|
755 |
A: To disable the dynamic evaluation of the equations in the form, you must untick the checkbox "Eval dynamically the equations associated to the calculated fields" from the "Form Settings" tab of the form builder. After disabling the dynamic evaluation of the equations, you must insert a button field with the "calculate" option as its type. The plugin evaluates the equations by pressing the calculate button.
|
756 |
|
757 |
-
= Q: My company has different departments (like the sales department, the support group, etc.). Can I send a notification email to every department when the form
|
758 |
|
759 |
A: Yes, that is possible. You must enter the emails' addresses separated by the comma through the "Destination emails" attribute in the form's settings.
|
760 |
|
761 |
-
= Q: Why the user
|
762 |
|
763 |
A: If the users are not receiving the notification emails after the form's submission, there are different possible reasons: [please, read about them here](http://cff.dwbooster.com/faq#q241 "FAQ Entry")
|
764 |
|
765 |
-
= Q: How to insert line
|
766 |
|
767 |
A: If you are using the HTML format in the notification emails, you should insert BR tags for the lines changes in the emails' contents:
|
768 |
|
@@ -778,7 +778,7 @@ A: The notification emails can include all fields submitted by the form (<%IN
|
|
778 |
|
779 |
Please, visit the following link to get the complete list of tags to include in the email: [Accepted tags](https://cff.dwbooster.com/documentation#special-tags "Special tags in the notification emails and the thank you pages")
|
780 |
|
781 |
-
= Q: How to create dependencies between fields in the notification emails and the
|
782 |
|
783 |
A: Please, read the answer in the FAQ page of the plugin: [Click Here](http://cff.dwbooster.com/faq#q318 "FAQ Entry")
|
784 |
|
@@ -812,7 +812,7 @@ A: Please, read the following post in the plugin's blog: [Click Here](https://cf
|
|
812 |
|
813 |
A: Create dependencies with values of multiple fields requires the use of calculated fields. [Read more](https://cff.dwbooster.com/blog/2020/03/01/dependencies/ "Dependencies")
|
814 |
|
815 |
-
= Q: How to prevent users
|
816 |
|
817 |
A: The form settings include the attribute "Base amount" to define the minimum price allowed. If a user manipulates the calculated field for paying less, the plugin applies the base amount.
|
818 |
|
@@ -820,7 +820,7 @@ A: The form settings include the attribute "Base amount" to define the minimum p
|
|
820 |
|
821 |
A: You can enter the PayPal product's name through the "Paypal product name" attribute in the form's settings. If you enter a field's tag as the product's name, for example, <%fiedname1%> the product's name will be the value submitted by the fieldname1 field.
|
822 |
|
823 |
-
= Q: How to allow to the users decide the payment frequency for recurring payments? =
|
824 |
|
825 |
A: Follows the instructions below:
|
826 |
|
@@ -833,7 +833,7 @@ Tip: The maximum number of moFrequencywed by PayPal for recurring payments is 12
|
|
833 |
|
834 |
If you allow the users to select the payment frequency, you must implement the equation to vary the amount based on the payment frequency.
|
835 |
|
836 |
-
= Q: How to select a choice in a
|
837 |
|
838 |
A: I'll try to describe the process with some hypothetical examples. Assuming the radio button field is fieldname123, and you can select the choice with the value 5, uses the following piece of code as part of the equation associated with the calculated field:
|
839 |
|
@@ -857,7 +857,7 @@ A: Please, visit the following post in our technical blog:
|
|
857 |
|
858 |
A: In this case, the recommendation is to use "RecordSet DS" fields as the data source: [Click Here for instructions](https://cff.dwbooster.com/blog/2019/02/14/ds/ "Recordset DS field")
|
859 |
|
860 |
-
= Q: How to use the data submitted by
|
861 |
|
862 |
A: Please, read the instructions in the plugin's documentation.
|
863 |
[Click Here](https://cff.dwbooster.com/documentation#populate-form-b-with-a "Populate the form B with the data submitted by the form A")
|
@@ -875,7 +875,7 @@ A: Please, read the instructions in the plugin's documentation.
|
|
875 |
|
876 |
[Customizing the fields in the shopping cart of WooCommerce](http://cff.dwbooster.com/faq#q315 "FAQ Entry")
|
877 |
|
878 |
-
= Q: Why
|
879 |
|
880 |
A: You must assign a price to the product through its attribute: "Regular Price" or WooCommerce won't display the "Add to Cart" button.
|
881 |
|
@@ -893,7 +893,7 @@ A: Activates and configure the DropBox add-on, distributed with the Platinum ver
|
|
893 |
|
894 |
A: There are multiple alternatives, by using the [PDF generator add-on](https://cff.dwbooster.com/blog/2020/07/19/pdf-generator/ "PDF Generator" ), the [PrintFriendly add-on](https://cff.dwbooster.com/blog/2019/09/19/printfriendly/ "PrintFriendly") or the [WebMerge add-on](https://cff.dwbooster.com/blog/2018/10/15/webmerge/ "WebMerge").
|
895 |
|
896 |
-
= Q: How to use an "Upload File field
|
897 |
|
898 |
A: Please, visits the following link to get the answer to your question:
|
899 |
[Click Here](http://cff.dwbooster.com/faq#q274 "FAQ Entry")
|
@@ -903,7 +903,7 @@ A: Please, visits the following link to get the answer to your question:
|
|
903 |
A: Please, visits the following link to get the answer to your question:
|
904 |
[Click Here](http://cff.dwbooster.com/faq#q312 "FAQ Entry")
|
905 |
|
906 |
-
= Q: How to protect the form
|
907 |
|
908 |
A: Please, follow the instructions described in the plugin's FAQ:
|
909 |
[Click Here](http://cff.dwbooster.com/faq#q313 "FAQ Entry")
|
@@ -941,57 +941,56 @@ A: Please, follow the steps below:
|
|
941 |
|
942 |
== Changelog ==
|
943 |
|
944 |
-
= 1.
|
945 |
|
946 |
-
*
|
|
|
|
|
947 |
|
948 |
-
= 1.
|
949 |
|
950 |
-
*
|
951 |
-
*
|
952 |
|
953 |
-
= 1.
|
954 |
|
955 |
-
*
|
956 |
-
* Improves the integration with the Gutenberg editor.
|
957 |
|
958 |
-
= 1.0
|
959 |
|
960 |
-
*
|
961 |
|
962 |
-
= 1.0.
|
963 |
|
964 |
-
* Includes
|
965 |
-
*
|
|
|
|
|
966 |
|
967 |
-
= 1.0.
|
968 |
|
969 |
-
* Modifies the
|
970 |
-
*
|
|
|
971 |
|
972 |
-
= 1.0.
|
973 |
|
974 |
-
*
|
|
|
|
|
|
|
975 |
|
976 |
-
= 1.0.
|
977 |
|
978 |
-
* Fixes
|
979 |
-
* Modifies the CDATE operation.
|
980 |
-
* Fixes some conflicts with PHP 8.
|
981 |
-
* Adds the EOMONTH operation in the Date/Time operations module (Developer and Platinum versions).
|
982 |
|
983 |
-
= 1.0.
|
984 |
|
985 |
-
*
|
986 |
-
*
|
987 |
-
*
|
988 |
|
989 |
-
= 1.0.
|
990 |
|
991 |
-
* Modifies the
|
992 |
-
|
993 |
-
== Upgrade Notice ==
|
994 |
-
|
995 |
-
= 1.0.463 =
|
996 |
-
|
997 |
-
Important note: If you are using the Professional version don't update via the WP dashboard but using your personal update link. Contact us if you need further information: http://cff.dwbooster.com/contact-us
|
3 |
Donate link: http://cff.dwbooster.com
|
4 |
Tags: form,quote form,contact form,form builder,calculator,calculated,quote calculator,forms,form editor,advanced forms,payment calculator,payment,recurring payment,quote,fields,calculated field,price calculator,email,form design,paypal,equation editor,formula,equation,quote calculator,post,posts,plugin,widget,admin,sidebar,images,image,page,shortcode,products form,woocommerce,addons,layout,session,post,cookie,get,webhook,Dropbox,pdf,language
|
5 |
Requires at least: 3.0.5
|
6 |
+
Tested up to: 5.8
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
14 |
|
15 |
The "Calculated Fields Form" plugin allows you to create web forms with calculated fields, whose values are dynamically calculated based on other fields' values in the web form.
|
16 |
|
17 |
+
The possibilities are unlimited. For example, you can create forms with financial calculations, date operations to create reservation forms, and calculate the product prices. The plugin includes text operations for editing, translation, or advertising services. There are more advanced operations available such as determining the distance between addresses or generating graphs. The resulting forms are 100% mobile responsive.
|
18 |
|
19 |
+
The most impressive thing is that you don't need to hire a programmer to create the forms. With basic knowledge, you will have a professional form in just five minutes.
|
20 |
|
21 |
+
Creating a form is all visual. The "Calculated Fields Form" plugin includes a form editor with multiple controls. Such as text fields, numeric fields, currency fields, slider controls, email fields, radio buttons, checkboxes, container fields, page breaks to create multipage forms, and most importantly, calculated fields.
|
22 |
|
23 |
+
The form editor includes a list of controls, a property bar to easily edit field properties, a dashboard where you can design your forms, and the attributes for form configuration. Also, the plugin comes with multiple predefined layouts to change the forms' appearance. If there are not enough predefined layouts for your project, there is a style editor to customize the form's design.
|
24 |
|
25 |
The "Calculated Fields Form" plugin includes integration with popular page builders:
|
26 |
|
27 |
+
* Classic WordPress Editor
|
28 |
+
* Gutenberg Editor
|
29 |
+
* Elementor
|
30 |
+
* Page Builder by SiteOrigin
|
31 |
+
* Beaver Builder
|
32 |
+
* WPBakery Page Builder
|
33 |
+
* DIVI Builder
|
34 |
|
35 |
+
For other editors, it is possible to insert the form into the pages via its shortcode. Each web form has an associated shortcode that allows you to insert it wherever you want.
|
36 |
|
37 |
== Features ==
|
38 |
|
40 |
|
41 |
* Visual [form builder](https://cff.dwbooster.com/documentation#form-builder) with an intuitive and interactive interface.
|
42 |
* Includes [general-purpose controls](https://cff.dwbooster.com/documentation#common-fields) such as radio buttons, checkboxes, menu lists, date fields, slider controls, numeric fields, text currency fields, etc.
|
43 |
+
* Includes [calculated fields](https://cff.dwbooster.com/documentation#calculated-fields-settings) whose values result from operations involving other form fields.
|
44 |
+
Insert as many calculated fields in the form as you need.
|
45 |
+
* Contains an advanced formula editor associated with the calculated fields with syntax highlighting and error detection.
|
46 |
+
* Features many operations modules: [mathematical operations](https://cff.dwbooster.com/documentation#mathematical-module), [operations with dates](https://cff.dwbooster.com/documentation#datetime-module), [financial operations](https://cff.dwbooster.com/documentation#financial-module), [distance operations](https://cff.dwbooster.com/documentation#distance-module), text management, [operations for calling remote services](https://cff.dwbooster.com/documentation#connection-module), etc. The calculated fields can identify numbers and prices within the values of the fields.
|
47 |
+
* Distributed with several predefined forms that you can use as a starting point for your projects.
|
48 |
+
* Includes several [design templates](https://cff.dwbooster.com/templates).
|
49 |
+
* Supports multi-pages forms by inserting page break controls between fields belonging to different pages.
|
50 |
+
* Allows the grouping of fields inside container controls (Div and Fieldset).
|
51 |
+
* Possible to define [dependency rules](https://cff.dwbooster.com/blog/2020/03/01/dependencies/) between fields in the form, which is very useful in the design of wizards.
|
52 |
|
53 |
= Other features: =
|
54 |
|
55 |
* From the plugin configuration page, it is possible to duplicate a form by pressing the "Clone" button associated with it. By cloning a form, you can reuse the work already done.
|
56 |
* Includes a troubleshooting and optimization area.
|
57 |
* Allows you to disable forms in the indexing process to improve the speed of the website.
|
58 |
+
* Includes a version control in the forms to recover previous versions.
|
59 |
|
60 |
= Predefined forms: =
|
61 |
|
67 |
4. Pregnancy Calculator
|
68 |
5. Lease Calculator
|
69 |
|
70 |
+
You can clone a sample form to implement your project, or create a new form from scratch.
|
71 |
|
72 |
> <strong>Calculated Fields Form Commercial</strong><br />
|
73 |
>The free version of the "Calculated Fields Form" plugin includes only basic functionality. Other distributions (Professional, Developer, and Platinum) are available with advanced functionalities, such as sending notification emails, integration with payment gateways and external services, controls for database's connection (and connection to other data sources), complex operations, and many other features.
|
74 |
|
75 |
= Features of the Profesional version: =
|
76 |
|
77 |
+
* Includes all the features of the free version of the plugin.
|
78 |
+
* Submit the data collected by the forms and [store it on the website](https://cff.dwbooster.com/documentation#check-submissions) for review.
|
79 |
+
* Send [notification emails](https://cff.dwbooster.com/documentation#email-settings) with the data collected by the form, as well as [confirmation emails](https://cff.dwbooster.com/documentation#copy-user) to the users.
|
80 |
+
* [Integrate the form with PayPal](https://cff.dwbooster.com/documentation#paypal-settings) and calculate the amount to be charged through a calculated field.
|
81 |
Payments allow SCA (strong customer authentication), compatible with the new payment services (PSD 2) - Directive (EU).
|
82 |
+
* [Export and import forms](https://cff.dwbooster.com/documentation#import-export-form) between different WordPress sites.
|
83 |
+
* Different mechanisms to protect forms, such as [captcha](https://cff.dwbooster.com/documentation#captcha-settings), WordPress nonces, and honeypot fields.
|
84 |
+
* Associate "Thank You" page with the form, where you can show a summary of the form's submission.
|
85 |
+
* Dashboard widget to show the last week's submissions.
|
86 |
+
* Cache the forms to increase the rendering speed.
|
87 |
+
* [Export the information submitted](https://cff.dwbooster.com/documentation#export-submissions) by the forms to a CSV file and use it with third-party tools such as Excel, OpenOffice, LibreOffice, or any other spreadsheet editor.
|
88 |
|
89 |
= Features of the Developer version: =
|
90 |
|
91 |
+
* Includes all the features of the free and Professional version of the plugin.
|
92 |
+
* Advanced [controls that connect to different data sources](https://cff.dwbooster.com/blog/2019/02/14/ds/) (databases, CSV files, posts, taxonomies, user information, and JSON objects).
|
93 |
+
* [Financial operations module](https://cff.dwbooster.com/documentation#financial-module).
|
94 |
+
* [Date and time operations module](https://cff.dwbooster.com/documentation#datetime-module).
|
95 |
+
* [Distance and travel time operations module](https://cff.dwbooster.com/documentation#distance-module) uses "Google Maps".
|
96 |
+
* [Chart.js operations module](https://cff.dwbooster.com/documentation#chart-module) to generate charts with the form data. Uses the ChartJS.org library.
|
97 |
+
* A script that allows the developer to save the data collected by the form in an [external database](https://cff.dwbooster.com/documentation#third-party-database).
|
98 |
|
99 |
**Includes add-ons to extend the form features and make use of third-party plugins and external services**
|
100 |
|
101 |
+
* [Server-Side Equations add-on](https://cff.dwbooster.com/add-ons/server-side-equations): define server-side equations.
|
102 |
+
* [WooCommerce add-on](https://cff.dwbooster.com/add-ons/woocommerce): integrate forms with WooCommerce products and calculate their prices, dimensions, and weight at the runtime.
|
103 |
+
* [SalesForce add-on](https://cff.dwbooster.com/add-ons/salesforce): integrate the form with the SalesForce service.
|
104 |
+
* [WebHooks add-on](https://cff.dwbooster.com/add-ons/webhook): send the information collected by the form to a WebHook URL to open countless possibilities. By connecting your form to services such as Zapier, Microsoft Flow, IFTTT, Workato, and others, you can connect to hundreds of third-party services (e.g. Zoho CRM, Dropbox, Mailchimp, Google Drive, Facebook, Twitter, etc.).
|
105 |
+
* [User Permissions add-on](https://cff.dwbooster.com/add-ons/users-permissions): control the forms' access, as well as allowing users to access and edit their data.
|
106 |
+
* [User Registration Form add-on](https://cff.dwbooster.com/add-ons/user-registration-form): build a user registration form that captures the user's basic information and metadata.
|
107 |
+
* [reCAPTCHA add-on](https://cff.dwbooster.com/add-ons/recaptcha): replace the basic captcha with Google reCAPTCHA to protect the forms.
|
108 |
|
109 |
= Features of the Platinum version: =
|
110 |
|
111 |
+
* Includes all the features of free, Professiona, and Developer versions of the plugin.
|
112 |
+
* [Easy Digital Downloads add-on](https://cff.dwbooster.com/add-ons/edd): integrate the forms into Easy Digital Downloads products and calculate their prices at the runtime.
|
113 |
+
* [Google Analytics add-on](https://cff.dwbooster.com/add-ons/google-analytics): generate usage reports in "Google Analytics" for the users' actions.
|
114 |
+
* [PayPal Pro add-on](https://cff.dwbooster.com/add-ons/paypal-pro): enable the payer's credit card details to be entered directly through the website without any redirection to the PayPal website.
|
115 |
+
* [Upload Files add-on](https://cff.dwbooster.com/add-ons/upload): add uploaded files to the media library and extend the file types accepted by WordPress.
|
116 |
+
* [DropBox Integration add-on](https://cff.dwbooster.com/add-ons/dropbox): copy or move the uploaded files to a DropBox account.
|
117 |
+
* [ip2location add-on](https://cff.dwbooster.com/add-ons/ip2location): identify the users' data using the ip2location databases.
|
118 |
+
* [Google Places add-on](https://cff.dwbooster.com/add-ons/google-places): transform form fields into autocomplete address fields.
|
119 |
+
* [Autocomplete Places add-on](https://cff.dwbooster.com/add-ons/autocomplete-places): transform form fields into autocomplete address fields by using the Photon API.
|
120 |
+
* [Signature add-on](https://cff.dwbooster.com/add-ons/signature): convert form fields into "Signature" fields, allowing the users to sign the form with a mouse or touchscreen.
|
121 |
+
* [iCal add-on](https://cff.dwbooster.com/add-ons/ical): send iCal file in the notification emails to import the events into most popular calendars like Outlook and Google Calendar.
|
122 |
+
* [CSV Generator add-on](https://cff.dwbooster.com/add-ons/csv-generator): export the information collected by the form to CSV files and attach these to the notification emails.
|
123 |
+
* [PDF Generator add-on](https://cff.dwbooster.com/add-ons/pdf-generator): generate PDF files with the information collected by the forms and attach them to the notification emails.
|
124 |
+
* [WebMerge add-on](https://cff.dwbooster.com/add-ons/webmerge): integrate the forms with FormStack documents (formerly WebMerge) to generate PDF and Office documents at runtime with the information collected by the web forms.
|
125 |
+
* [PrintFriendly add-on](https://cff.dwbooster.com/add-ons/printfriendly): generate PDF files with the PrintFriendly API and attach the resulting files to the notification emails.
|
126 |
+
* [Mailchimp add-on](https://cff.dwbooster.com/add-ons/mailchimp): add new members to the MailChimp account.
|
127 |
+
* [Mautic add-on](https://cff.dwbooster.com/add-ons/mautic): add new contacts (or update existing ones) into the Mautic Service.
|
128 |
+
* [HubSpot add-on](https://cff.dwbooster.com/add-ons/hubspot): add/update contacts in HubSpot, using the information collected by the form.
|
129 |
+
* [Emma add-on](https://cff.dwbooster.com/add-ons/emma): add new members to the Emma service.
|
130 |
+
* [Twilio add-on](https://cff.dwbooster.com/add-ons/twilio): send notification messages (SMS) in the forms' submissions.
|
131 |
+
* [MailPoet add-on](https://cff.dwbooster.com/add-ons/mailpoet): add new subscribers to MailPoet's Mailing Lists (MailPoet versions 2 and 3).
|
132 |
+
* [AffiliateWP add-on](https://cff.dwbooster.com/add-ons/affiliatewp): integrate the forms with the AffiliateWP plugin.
|
133 |
+
* [Authorize.Net add-on](https://cff.dwbooster.com/add-ons/authorize): accept payments via Authorize.Net from the form.
|
134 |
+
* [Stripe add-on](https://cff.dwbooster.com/add-ons/stripe): accept payments via the Stripe payment gateway from the form.
|
135 |
+
* [Skrill Payments Integration](https://cff.dwbooster.com/add-ons/skrill) add-on: integrate with the Skrill Moneybookers payment gateway.
|
136 |
+
* [TargetPay (iDeal) add-on](https://cff.dwbooster.com/add-ons/targetpay) add-on: integrate with iDeal, the popular Dutch payment method.
|
137 |
+
* [Mollie (iDeal) add-on](https://cff.dwbooster.com/add-ons/mollie): accept payments via iDeal.
|
138 |
+
* [RedSys / Servired / Sermepa add-on](https://cff.dwbooster.com/add-ons/redsys) provides: a secure interface for accepting credit card payments from most banks in Spain.
|
139 |
+
* [PayTM add-on](https://cff.dwbooster.com/add-ons/paytm): a secure interface for accepting payments with credit cards, debit cards, net banking, wallets, and EMI.
|
140 |
+
* [SagePay add-on](https://cff.dwbooster.com/add-ons/sagepay): a secure interface for accepting payments via SagePay.
|
141 |
+
* [Sage Payment add-on](https://cff.dwbooster.com/add-ons/sagepayment): a secure interface for accepting payments through a secure SSL checkout system for both bankcard and virtual check transactions.
|
142 |
+
|
143 |
+
Please keep the plugin updated. Updates contain bug fixes as well as new features. The WordPress directory distributes the updates for the free version of the plugin. But for commercial versions, it would be necessary to register your copy of the plugin. The following link describes the registration process: [CLICK HERE](https://cff.dwbooster.com/documentation#register "Registering the plugin")
|
144 |
|
145 |
|
146 |
== Other Notes ==
|
147 |
|
148 |
|
149 |
+
This section mainly contains notes on features of the form builder that are too detailed to include in the main description.
|
150 |
|
151 |
= Conditional rules =
|
152 |
|
153 |
+
It is possible to show or hide form fields (dependent fields) based on the options selected in checkbox fields, radio buttons, the options selected in dropdown menus, or the result of calculated fields.
|
154 |
|
155 |
+
The value of a dependent field is zero when it is hidden/disabled. The plugin excludes the disabled form fields from the submission.
|
156 |
|
157 |
[Additional details about the use of dependencies](https://cff.dwbooster.com/blog/2020/03/01/dependencies/ "Description about the use of dependencies")
|
158 |
|
160 |
|
161 |
The predefined values in the fields have two possible uses:
|
162 |
|
163 |
+
1- To fill the field by default. This makes it easier for the end-user to enter values.
|
164 |
|
165 |
+
2- Hint of the values to be entered in the field (like "Enter your name"). To use the predefined value as a placeholder, you must tick the "Hide predefined value on click" checkbox. The value will disappear once the user starts filling in the field. The calculated fields' equations ignore placeholders.
|
166 |
|
167 |
+
= The "User Instructions" attribute =
|
168 |
|
169 |
+
The "User instructions" attribute in the field settings allows you to instruct the user on how to fill in the field. By default, the instructions appear as smaller text on the public website. But they can be configured as tooltips.
|
170 |
|
171 |
= Adding CSS layout keywords =
|
172 |
|
173 |
+
The "Add CSS layout keywords" attribute in the fields settings allows you to apply CSS styles to fields. You must only enter the name of the CSS class names, and not their definitions.
|
174 |
|
175 |
You can define the CSS classes via the "Customize Form Design" attribute in the "Form Settings" tab. This attribute contains a CSS editor with syntax highlighting and error checking.
|
176 |
|
178 |
|
179 |
The plugin includes multiple predefined classes that you can assign to the form fields.
|
180 |
|
181 |
+
More information about the form's design can be found by reading the following post in the plugin's blog:
|
182 |
|
183 |
[Customizing the form's design](https://cff.dwbooster.com/blog/2020/01/12/form-design/ "Customizing the form's design")
|
184 |
|
196 |
|
197 |
= Multi-page form =
|
198 |
|
199 |
+
To create multi-page forms, you must insert "Page break" controls between fields belonging to different pages.
|
200 |
|
201 |
When the user presses the "Next Page" button, the plugin validates the fields in the current form. If there is any validation error (such as an unfilled required field), the plugin stops the "Next page" action.
|
202 |
|
203 |
= Hidden calculated fields =
|
204 |
|
205 |
+
Calculated fields include a checkbox in the configuration that allows them to be hidden from the public website. This feature is essential in those fields that are used to calculate intermediate values or when we want to show the results only in emails or thank you pages.
|
206 |
|
207 |
+
= Equation / Formula format for calculated fields =
|
208 |
|
209 |
+
Below, some possible formulas are included as examples, but the possibilities are endless.
|
210 |
|
211 |
* With simple mathematical operations:
|
212 |
|
228 |
|
229 |
`PREC(fieldname2 / fieldname3, 2)`
|
230 |
|
231 |
+
* There are infinite number of formulas that can be created using complex structures. For example, the following formula includes conditional statements:
|
232 |
|
233 |
`(function () {`
|
234 |
`if (100 < fieldname3) return fieldname1 + fieldname2;`
|
245 |
|
246 |
= Operations and operators to use in equations/formulas =
|
247 |
|
248 |
+
One of the "Calculated Fields Form" strengths is the ability to use any valid JavaScript code to implement the equations/formulas.
|
249 |
|
250 |
However, the plugin includes a wide variety of operations and operators to simplify the development process.
|
251 |
|
252 |
[Mathematical Operations and Operators](http://cff.dwbooster.com/documentation#mathematical-module)
|
253 |
|
254 |
+
[Conditional Operations](http://cff.dwbooster.com/documentation#conditions-module)
|
255 |
|
256 |
[Field Handling Operations](http://cff.dwbooster.com/documentation#managing-fields-module)
|
257 |
|
259 |
|
260 |
[Operations for handling URLs and query strings](http://cff.dwbooster.com/documentation#url-module)
|
261 |
|
262 |
+
In addition to the operation modules listed above, the Developer and Platinum versions of the plugin include additional modules:
|
263 |
|
264 |
+
[Date Time Operations](http://cff.dwbooster.com/documentation#datetime-module)
|
265 |
|
266 |
[Financial Operations](http://cff.dwbooster.com/documentation#financial-module)
|
267 |
|
271 |
|
272 |
= Controls available in the form generator of the "Calculated Fields Form" =
|
273 |
|
274 |
+
The complete list of controls is available from this link: [CLICK HERE](http://cff.dwbooster.com/documentation#common-fields)
|
275 |
|
276 |
+
= Create JavaScript variables from parameters received by "GET" or "POST", "SESSION" variables, or "COOKIES" to use in the equations =
|
277 |
|
278 |
+
The plugin includes the shortcode [CP_CALCULATED_FIELDS_VAR] to generate JavaScript variables from parameters received by "GET" or "POST", "SESSION" variables, or "COOKIES":
|
279 |
|
280 |
`[CP_CALCULATED_FIELDS_VAR name="..."]`
|
281 |
|
282 |
+
In the shortcode, you must replace the "..." symbols with the name of the parameter or variable. It will be the same name for the JavaScript variable.
|
283 |
|
284 |
For example:
|
285 |
|
291 |
|
292 |
= Tips for calculating prices =
|
293 |
|
294 |
+
One of the most frequent uses of our plugin is for price calculation. When displaying the price of a product, you may want to split the form into two pages. The first page would request the information needed to calculate the price, and the second page would include the calculated field with the final price. Also, you could use the "Instruct. Text" fields to indicate the terms, conditions, and validity period of the offer.
|
295 |
|
296 |
+
Note that you can make the "Instruct. Text" fields dependent on the calculated value. This allows you to vary the text displayed to the user depending on the calculated price, as the terms, conditions, or offers often depend on the transaction amount.
|
297 |
|
298 |
== Installation ==
|
299 |
|
309 |
|
310 |
To insert the calculated / contact form into some content or post, use the corresponding form's shortcode. Each web form has associated a shortcode.
|
311 |
|
312 |
+
== Add-ons ==
|
313 |
|
314 |
+
The add-ons are only distributed with the Developer and Platinum versions of the plugin.
|
315 |
|
316 |
+
The plugin lists the add ons in the "Add-ons area" of the settings page. To enable the add-ons, you must tick their corresponding checkbox and press the "Activate/Deactivate Add-ons" button.
|
317 |
|
318 |
+
= Server-Side Equations add-on - included in the Developer and Platinum versions of the plugin =
|
319 |
|
320 |
+
Define equations with PHP code on the server-side. The calculated fields call the server-side equations via AJAX.
|
321 |
|
322 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#server-side-equations-addon "Server Side Equations add-on")
|
323 |
|
324 |
+
= WooCommerce add-on - included in the Developer and Platinum versions of the plugin =
|
325 |
|
326 |
+
Integrate the forms created by the "Calculated Fields Form" with WooCommerce products and calculate their prices, weights, dimensions, and more at the runtime.
|
327 |
|
328 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#woocommerce-addon "WooCommerce add-on")
|
329 |
|
330 |
+
= Easy Digital Downloads add-on - included in the Platinum version of the plugin =
|
331 |
|
332 |
+
Integrate forms created by the "Calculated Fields Form" with the Easy Digital Downloads products, and calculate their price dynamically at the runtime.
|
333 |
|
334 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#edd-addon "Easy Digital Downloads add-on")
|
335 |
|
336 |
+
= SalesForce add-on - included in the Developer and Platinum versions of the plugin =
|
337 |
|
338 |
+
Add new leads to a SalesForce account using the data collected by the forms.
|
339 |
|
340 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#salesforce-addon "SalesForce add-on")
|
341 |
|
342 |
+
= WebHook add-on - included in the Developer and Platinum versions of the plugin =
|
343 |
|
344 |
+
Post the information collected by the forms to WebHook URLs.
|
345 |
|
346 |
+
Through connecting the forms created by the plugin with services like Zapier, Microsoft Flow, Workato, or IFTTT (and many others), you will have access to hundreds of third-party services, like Zoho CRM, Dropbox, Mailchimp, Evernote, Google Drive, Facebook, Twitter, and more than 300 services [https://zapier.com/zapbook/apps/](https://zapier.com/zapbook/apps/ "Zapier"), [https://flow.microsoft.com/](https://flow.microsoft.com/ "Microsoft Flow"), [https://ifttt.com/discover](https://ifttt.com/discover "IFTTT")
|
347 |
|
348 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#webhook-addon "WebHook add-on")
|
349 |
|
350 |
+
= User Permissions add-on - included in the Developer and Platinum versions of the plugin =
|
351 |
|
352 |
+
Control access to forms. Access can be restricted to registered users, users with certain roles, or to specific users.
|
353 |
|
354 |
+
The add-on adds a new shortcode to the plugin to list the data submitted by the logged-in user (it is possible to insert the new shortcode into the user's profile) and assign user permissions to edit their information or delete an entry.
|
355 |
|
356 |
+
Limit the number of submissions (e.g. one submission per form/user).
|
357 |
|
358 |
[CLICK HERE for additional information ](http://cff.dwbooster.com/documentation#users-addon "Users add-on")
|
359 |
|
360 |
+
= User Registration Form add-on - included in the Developer and Platinum versions of the plugin =
|
361 |
|
362 |
+
Build user registration forms. The form can collect basic user information and metadata required by other plugins.
|
363 |
|
364 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#user-registration-form-addon "User Registration Form add-on")
|
365 |
|
366 |
+
= reCAPTCHA add-on - included in the Developer and Platinum versions of the plugin =
|
367 |
|
368 |
+
Protect forms using Google reCAPTCHA instead of the basic captcha distributed with the plugin, as reCAPTCHA is more visual and intuitive than traditional captchas.
|
369 |
|
370 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#recaptcha-addon "reCAPTCHA add-on")
|
371 |
|
372 |
+
= Google Analytics add-on - included in the Platinum version of the plugin =
|
373 |
|
374 |
+
Generate usage reports in "Google Analytics" for the users' actions.
|
375 |
|
376 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#google-analytics-addon "Google Analytics add-on")
|
377 |
|
378 |
+
= PayPal Pro add-on - included in the Platinum version of the plugin =
|
379 |
|
380 |
+
Allow the user to enter their credit card details directly on your website without redirecting them to the PayPal website. Once the user has filled the form fields and clicked the submit button, the payment is processed and the posted data (excluding the credit card information) is stored in the WordPress database.
|
381 |
|
382 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#paypal-pro-addon "PayPal Pro add-on")
|
383 |
|
384 |
+
= Upload Files add-on - included in the Platinum version of the plugin =
|
385 |
|
386 |
+
Every commercial version of the plugin includes the "Upload File" control to upload files from the form. However, the "Upload Files" add-on allows the uploaded files to be added to the Media Library and be accessed from the pages and posts of the website.
|
387 |
|
388 |
+
WordPress restricts the file types that can be uploaded. The "Uploads Files" add-on allows the list of accepted files to be extended.
|
389 |
|
390 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#upload-addon "Upload Files add-on")
|
391 |
|
392 |
+
= DropBox Integration add-on - included in the Platinum version of the plugin =
|
393 |
|
394 |
+
Copy or move files uploaded through the forms to a DropBox account.
|
395 |
|
396 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#dropbox-addon "DropBox Integration add-on")
|
397 |
|
398 |
+
= ip2location add-on - included in the Platinum version of the plugin =
|
399 |
|
400 |
+
Use the ip2location databases to identify additional user information based on their IP. Address such as country, city, coordinates, weather station, time zone, ZIP code, etc.
|
401 |
|
402 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#ip2location-addon "ip2location add-on")
|
403 |
|
404 |
+
= Google Places add-on - included in the Platinum version of the plugin =
|
405 |
|
406 |
+
Transform fields into autocomplete address fields calling the Google Places API.
|
407 |
|
408 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#google-places-addon "Google Places add-on")
|
409 |
|
410 |
+
= Autocomplete Places add-on - included in the Platinum version of the plugin =
|
411 |
|
412 |
+
Transform fields into autocomplete address fields by calling the Photon API.
|
413 |
|
414 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#autocomplete-places-addon "Autocomplete Places add-on")
|
415 |
|
416 |
+
= Signature add-on - included in the Platinum version of the plugin =
|
417 |
|
418 |
+
Transform fields into "Signature" fields to allow the users to sign the form with their mouse or touchscreens.
|
419 |
|
420 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#signature-addon "Signature add-on")
|
421 |
|
422 |
+
= iCal add-on - included in the Platinum version of the plugin =
|
423 |
|
424 |
+
Send the users iCal files attached to the confirmation emails to import events into the most popular calendars like Outlook and Google Calendar.
|
425 |
|
426 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#ical-addon "iCal add-on")
|
427 |
|
428 |
+
= CSV Generator add-on - included in the Platinum version of the plugin =
|
429 |
|
430 |
+
Export the information collected by the form to CSV files and attach them to the notification emails.
|
431 |
|
432 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#csv-generator-addon "CSV Generator add-on")
|
433 |
|
434 |
+
= PDF Generator add-on - included in the Platinum version of the plugin =
|
435 |
|
436 |
+
An experimental add-on that generates PDF files with the information collected by the forms and attaches them to the notification emails.
|
437 |
|
438 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#pdf-generator-addon "PDF Generator add-on")
|
439 |
|
440 |
+
= WebMerge add-on - included in the Platinum version of the plugin =
|
441 |
|
442 |
+
Integrate the forms with the FormStack Documents service (formerly WebMerge) to generate PDF and Office documents with the information collected from the form.
|
443 |
|
444 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#webmerge-addon "WebMerge add-on")
|
445 |
|
446 |
+
Integrate the form with the Silverpop service (now: IBM Watson Campaign Automation) [CLICK HERE for additional information](http://cff.dwbooster.com/documentation#silverpop-integration "Silverpop integration")
|
447 |
|
448 |
+
= PrintFriendly add-on - included in the Platinum version of the plugin =
|
449 |
|
450 |
+
Send the information collected by the forms to PrintFriendly and attach the resulting PDF files to the notification emails.
|
451 |
|
452 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#printfriendly-addon "PrintFriendly add-on")
|
453 |
|
454 |
+
= Mailchimp add-on - included in the Platinum version of the plugin =
|
455 |
|
456 |
+
Add new members to the MailChimp lists with the information collected by the form.
|
457 |
|
458 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#mailchimp-addon "MailChimp add-on")
|
459 |
|
460 |
+
= Mautic add-on - included in the Platinum version of the plugin =
|
461 |
|
462 |
+
Add/update contacts in the Mautic service with information collected by the forms.
|
463 |
|
464 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#mautic-addon "Mautic add-on")
|
465 |
|
466 |
+
= HubSpot add-on - included in the Platinum version of the plugin =
|
467 |
|
468 |
+
Add/update HubSpot contacts with information collected by the forms.
|
469 |
|
470 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#hubspot-addon "HubSpot add-on")
|
471 |
|
472 |
+
= Emma add-on - included in the Platinum version of the plugin =
|
473 |
|
474 |
+
Connect the forms to the Emma service to add new members to Emma groups.
|
475 |
|
476 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#emma-addon "Emma add-on")
|
477 |
|
478 |
+
= Twilio add-on - included in the Platinum version of the plugin =
|
479 |
|
480 |
+
Send notification messages (SMS) through Twilio in the form's submissions.
|
481 |
|
482 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#twilio-addon "Twilio add-on")
|
483 |
|
484 |
+
= MailPoet add-on - included in the Platinum version of the plugin =
|
485 |
|
486 |
+
Adds subscribers to MailPoet Mailing Lists (MailPoet versions 2 and 3).
|
487 |
|
488 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#mailpoet-addon "MailPoet add-on")
|
489 |
|
490 |
= AffiliateWP add-on - included in the Platinum version of the plugin =
|
491 |
|
492 |
+
Integrate the forms with the "AffiliateWP" plugin.
|
493 |
|
494 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#affiliatewp-addon "AffiliateWP add-on")
|
495 |
|
496 |
+
= Authorize.Net add-on - included in the Platinum version of the plugin =
|
497 |
|
498 |
The Authorize.net Server Integration Method (Authorize.net SIM) is a hosted payment processing solution that handles all of the steps in processing a transaction.
|
499 |
|
500 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#authorize-addon "Authorize.Net add-on")
|
501 |
|
502 |
+
= Stripe add-on - included in the Platinum version of the plugin =
|
503 |
|
504 |
The Stripe Payments add-on (www.stripe.com) provides a way to accept all major cards from customers around the world.
|
505 |
|
506 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#stripe-addon "Stripe add-on")
|
507 |
|
508 |
+
= Skrill Payments Integration add-on - included in the Platinum version of the plugin =
|
509 |
|
510 |
+
An interface for accepting payments through secure pages.
|
511 |
|
512 |
You can accept cards, more than 20 local payment methods, and over 80 direct bank transfer connections with a single integration.
|
513 |
|
514 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#skrill-addon "Skrill add-on")
|
515 |
|
516 |
+
= TargetPay (iDeal) add-on - included in the Platinum version of the plugin =
|
517 |
|
518 |
+
Integrate with iDeal, the most popular Dutch payment method. The integration is made via TargetPay: [https://www.targetpay.com/info/ideal?setlang=en](https://www.targetpay.com/info/ideal?setlang=en "TargetPay")
|
519 |
|
520 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#targetpay-addon "TargetPay iDeal add-on")
|
521 |
|
522 |
+
= Mollie (iDeal) add-on - included in the Platinum version of the plugin =
|
523 |
|
524 |
+
Integrate with iDeal, the popular Dutch payment method.
|
525 |
|
526 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#mollie-addon "Mollie add-on")
|
527 |
|
528 |
+
= RedSys / Servired / Sermepa add-on - included in the Platinum version of the plugin =
|
529 |
|
530 |
+
A secure interface for accepting credit card payments through most banks in Spain (Sabadell, Banco Popular, BBVA, Santander, Bankia-Caixa, Bankinter, etc.)
|
531 |
|
532 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#redsys-addon "RedSys / Servired / Sermepa TPV add-on")
|
533 |
|
534 |
= PayTM add-on - included in the Platinum version of the plugin =
|
535 |
|
536 |
+
A secure interface for accepting payments through credit cards, debit cards, net banking, wallets, and EMI. With over 100 million PayTM users in India, your customers will appreciate the option to pay with their trusted PayTM Wallet.
|
537 |
|
538 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#paytm-addon "PayTM add-on")
|
539 |
|
540 |
= SagePay add-on - included in the Platinum version of the plugin =
|
541 |
|
542 |
+
A secure interface for accepting payments through SagePay.
|
543 |
|
544 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#sagepay-addon "SagePay add-on")
|
545 |
|
546 |
= Sage Payment add-on - included in the Platinum version of the plugin =
|
547 |
|
548 |
+
An interface for accepting payments through a secure SSL-checkout system for both bank cards and virtual check transactions. All authorized and approved transactions will be delivered to your current bank card and/or virtual check batches, viewable within the Virtual Terminal for order processing and settlement.
|
549 |
|
550 |
[CLICK HERE for additional information](http://cff.dwbooster.com/documentation#sagepayment-addon "Sage Payment add-on")
|
551 |
|
559 |
|
560 |
A: [Yes, it is](http://cff.dwbooster.com/faq#q319 "Yes, it is")
|
561 |
|
562 |
+
= Q: What control types are included in the plugin? =
|
563 |
|
564 |
A: The Calculated Fields Form's page contains detailed information about each field in the plugin: [Click Here](https://cff.dwbooster.com/documentation#common-fields "Click Here")
|
565 |
|
589 |
|
590 |
A: [List and description of financial operations](http://cff.dwbooster.com/documentation#financial-module "Financial Operations")
|
591 |
|
592 |
+
= Q: How can I calculate a payment's amortization? =
|
593 |
|
594 |
A: The CALCULATEAMORTIZATION is the most complex operation in the plugin and deserves its own section. Please, visit the following link to read a detailed description of its use:
|
595 |
|
611 |
|
612 |
A: Please, read the answer in the FAQ entry: [Click Here](http://cff.dwbooster.com/faq#q269 "FAQ Entry")
|
613 |
|
614 |
+
= Q: How to use a parameter passed by POST in the equations? =
|
615 |
|
616 |
A: Please, read the answer in the FAQ entry: [Click Here](http://cff.dwbooster.com/faq#q270 "FAQ Entry")
|
617 |
|
627 |
|
628 |
A: [Initializing date/time fields](http://cff.dwbooster.com/faq#q220 "FAQ Entry")
|
629 |
|
630 |
+
= Q: How to change the language on the datepicker? =
|
631 |
|
632 |
A: There are different alternatives, directly through the form's structure or uploading a new file to the plugin's folder. Please, visit the following link to read the instructions: [Click Here](http://cff.dwbooster.com/faq#q221 "FAQ Entry")
|
633 |
|
660 |
|
661 |
A: [How to replace the image displayed in a Media Field?](http://cff.dwbooster.com/faq#q266 "FAQ Entry")
|
662 |
|
663 |
+
= Q: In which order does the plugin evaluate the equations associated with the calculated fields? =
|
664 |
|
665 |
A: [Evaluating the equations](http://cff.dwbooster.com/faq#q79 "FAQ Entry")
|
666 |
|
674 |
|
675 |
A: Please, read the following entry in the plugin's FAQ: [Click Here]](http://cff.dwbooster.com/faq#q225 "utf-8")
|
676 |
|
677 |
+
= Q: The calculated form doesn't appear on the public website. What is the solution? =
|
678 |
|
679 |
A: Please, change the "Script load method" from "Classic" to "Direct" in the "troubleshoot area" located below the forms list in the settings page of the plugin.
|
680 |
|
692 |
|
693 |
A: [Create new validation rules](http://cff.dwbooster.com/documentation#new-validation-rules "New Validation Rules")
|
694 |
|
695 |
+
= Q: How to display a summary of entered data in the form? =
|
696 |
|
697 |
A: Insert a summary control in the form, and enter the names of the fields to display in the summary through its settings.
|
698 |
|
720 |
|
721 |
A: [Hiding the fields in form](http://cff.dwbooster.com/faq#q232 "FAQ Entry")
|
722 |
|
723 |
+
= Q: Why, after assigning some of the column class names (column2, column3, column4, col-...) to a group of fields, the next field is displaced to the right? =
|
724 |
|
725 |
A: [You can fix this behavior by inserting a separator field between rows](http://cff.dwbooster.com/faq#q320 "FAQ Entry")
|
726 |
|
727 |
+
= Q: How to assign multiple class names to a field? =
|
728 |
|
729 |
A: The class names are assigned to the fields through the attribute: "Add Css Layout Keywords"
|
730 |
|
734 |
|
735 |
A: [Accepted files](http://cff.dwbooster.com/faq#q235 "FAQ Entry")
|
736 |
|
737 |
+
= Q: How can I include the links to the uploaded files in the notification emails? =
|
738 |
|
739 |
A: [Inserting the links to the uploaded files into the notification emails](http://cff.dwbooster.com/faq#q160 "FAQ Entry")
|
740 |
|
741 |
+
= Q: Why does the form builder display the error message: "The entered data includes invalid characters..."? =
|
742 |
|
743 |
A: If you are copying the information used to configure the form from third-party applications (like MS Word or Excel), this information can include non-valid characters. The plugin validates the form's structure to avoid this type of errors.
|
744 |
|
754 |
|
755 |
A: To disable the dynamic evaluation of the equations in the form, you must untick the checkbox "Eval dynamically the equations associated to the calculated fields" from the "Form Settings" tab of the form builder. After disabling the dynamic evaluation of the equations, you must insert a button field with the "calculate" option as its type. The plugin evaluates the equations by pressing the calculate button.
|
756 |
|
757 |
+
= Q: My company has different departments (like the sales department, the support group, etc.). Can I send a notification email to every department when the form is submitted? =
|
758 |
|
759 |
A: Yes, that is possible. You must enter the emails' addresses separated by the comma through the "Destination emails" attribute in the form's settings.
|
760 |
|
761 |
+
= Q: Why is the user not receiving the confirmation emails? =
|
762 |
|
763 |
A: If the users are not receiving the notification emails after the form's submission, there are different possible reasons: [please, read about them here](http://cff.dwbooster.com/faq#q241 "FAQ Entry")
|
764 |
|
765 |
+
= Q: How to insert line breaks in the notification emails when the HTML format is selected? =
|
766 |
|
767 |
A: If you are using the HTML format in the notification emails, you should insert BR tags for the lines changes in the emails' contents:
|
768 |
|
778 |
|
779 |
Please, visit the following link to get the complete list of tags to include in the email: [Accepted tags](https://cff.dwbooster.com/documentation#special-tags "Special tags in the notification emails and the thank you pages")
|
780 |
|
781 |
+
= Q: How to create dependencies between fields in the notification emails and the "Thank You" pages? =
|
782 |
|
783 |
A: Please, read the answer in the FAQ page of the plugin: [Click Here](http://cff.dwbooster.com/faq#q318 "FAQ Entry")
|
784 |
|
812 |
|
813 |
A: Create dependencies with values of multiple fields requires the use of calculated fields. [Read more](https://cff.dwbooster.com/blog/2020/03/01/dependencies/ "Dependencies")
|
814 |
|
815 |
+
= Q: How to prevent users varying the fields' values to pay less than the calculated price? =
|
816 |
|
817 |
A: The form settings include the attribute "Base amount" to define the minimum price allowed. If a user manipulates the calculated field for paying less, the plugin applies the base amount.
|
818 |
|
820 |
|
821 |
A: You can enter the PayPal product's name through the "Paypal product name" attribute in the form's settings. If you enter a field's tag as the product's name, for example, <%fiedname1%> the product's name will be the value submitted by the fieldname1 field.
|
822 |
|
823 |
+
= Q: How to allow to the users to decide the payment frequency for recurring payments? =
|
824 |
|
825 |
A: Follows the instructions below:
|
826 |
|
833 |
|
834 |
If you allow the users to select the payment frequency, you must implement the equation to vary the amount based on the payment frequency.
|
835 |
|
836 |
+
= Q: How to select a choice in a dropdown field, or radio button, based on a calculated value? =
|
837 |
|
838 |
A: I'll try to describe the process with some hypothetical examples. Assuming the radio button field is fieldname123, and you can select the choice with the value 5, uses the following piece of code as part of the equation associated with the calculated field:
|
839 |
|
857 |
|
858 |
A: In this case, the recommendation is to use "RecordSet DS" fields as the data source: [Click Here for instructions](https://cff.dwbooster.com/blog/2019/02/14/ds/ "Recordset DS field")
|
859 |
|
860 |
+
= Q: How to use the data submitted by one form in another one? =
|
861 |
|
862 |
A: Please, read the instructions in the plugin's documentation.
|
863 |
[Click Here](https://cff.dwbooster.com/documentation#populate-form-b-with-a "Populate the form B with the data submitted by the form A")
|
875 |
|
876 |
[Customizing the fields in the shopping cart of WooCommerce](http://cff.dwbooster.com/faq#q315 "FAQ Entry")
|
877 |
|
878 |
+
= Q: Why is a WooCommerce product not displaying the "Add to Cart" button? =
|
879 |
|
880 |
A: You must assign a price to the product through its attribute: "Regular Price" or WooCommerce won't display the "Add to Cart" button.
|
881 |
|
893 |
|
894 |
A: There are multiple alternatives, by using the [PDF generator add-on](https://cff.dwbooster.com/blog/2020/07/19/pdf-generator/ "PDF Generator" ), the [PrintFriendly add-on](https://cff.dwbooster.com/blog/2019/09/19/printfriendly/ "PrintFriendly") or the [WebMerge add-on](https://cff.dwbooster.com/blog/2018/10/15/webmerge/ "WebMerge").
|
895 |
|
896 |
+
= Q: How to use an "Upload File" field with multiple selections from Zapier? =
|
897 |
|
898 |
A: Please, visits the following link to get the answer to your question:
|
899 |
[Click Here](http://cff.dwbooster.com/faq#q274 "FAQ Entry")
|
903 |
A: Please, visits the following link to get the answer to your question:
|
904 |
[Click Here](http://cff.dwbooster.com/faq#q312 "FAQ Entry")
|
905 |
|
906 |
+
= Q: How to protect the form from attacks by spambots? =
|
907 |
|
908 |
A: Please, follow the instructions described in the plugin's FAQ:
|
909 |
[Click Here](http://cff.dwbooster.com/faq#q313 "FAQ Entry")
|
941 |
|
942 |
== Changelog ==
|
943 |
|
944 |
+
= 1.1.3 =
|
945 |
|
946 |
+
* Allows selecting the autocomplete attribute from the fields' settings.
|
947 |
+
* Includes the Date/Time operations module with the free and professional version of the plugin.
|
948 |
+
* Allows passing the version number of the ChartJS library through the CFFCHART operation (Developer and Platinum versions of the plugin).
|
949 |
|
950 |
+
= 1.1.2 =
|
951 |
|
952 |
+
* Includes a new control. The COLOR control.
|
953 |
+
* Implements the read-only feature in radio buttons and checkbox fields.
|
954 |
|
955 |
+
= 1.1.1 =
|
956 |
|
957 |
+
* Improve accessibility by making the design more coherent.
|
|
|
958 |
|
959 |
+
= 1.1.0 =
|
960 |
|
961 |
+
* Modifies the plugin's design and the accessibility.
|
962 |
|
963 |
+
= 1.0.474 =
|
964 |
|
965 |
+
* Includes the getReferrer operation in the URL Operations module.
|
966 |
+
* Modifies the cff-gotopage event.
|
967 |
+
* Modifies the loading form animation.
|
968 |
+
* Modifies the RedSys and Bizum add-ons (Platinum version of the plugin).
|
969 |
|
970 |
+
= 1.0.473 =
|
971 |
|
972 |
+
* Modifies the forms structures.
|
973 |
+
* Fixes a CSS conflict.
|
974 |
+
* Modifies the RedSys and Bizum add-ons (Platinum version of the plugin).
|
975 |
|
976 |
+
= 1.0.472 =
|
977 |
|
978 |
+
* Allows you to configure the Date/Time fields as read only.
|
979 |
+
* Fixes some compatibility issues with the last versions of PHP.
|
980 |
+
* Modifies the WooCommerce add-on (Developer and Platinum versions of the plugin).
|
981 |
+
* Includes a link from the form's settings to Messages lists (Commercial versions of the plugin).
|
982 |
|
983 |
+
= 1.0.471 =
|
984 |
|
985 |
+
* Fixes a compatibility problem with Internet Explorer, even if this browser has been discontinued by Microsoft.
|
|
|
|
|
|
|
986 |
|
987 |
+
= 1.0.470 =
|
988 |
|
989 |
+
* Modifies the processing and loading animation.
|
990 |
+
* Fixes some warnings.
|
991 |
+
* Resets the manual entry flag in the calculated fields in the form reset action.
|
992 |
|
993 |
+
= 1.0.469 =
|
994 |
|
995 |
+
* Modifies the summary, field, button, number, and calculated controls.
|
996 |
+
* Implements the FORMAT operation to allow formatting the values as part of the equations.
|
|
|
|
|
|
|
|
|
|
captcha/captcha.php
CHANGED
@@ -24,7 +24,7 @@ if( !class_exists( 'CP_SESSION' ) && session_id() == '' ) session_start();
|
|
24 |
|
25 |
if (!isset($_GET["ps"])) $_GET["ps"] = '';
|
26 |
|
27 |
-
if( $_GET["hdwtest"] == "sessiontest" )
|
28 |
{
|
29 |
if( !isset( $_GET["autocall"] ) || $_GET["autocall"] != 1 )
|
30 |
{
|
@@ -52,15 +52,15 @@ if( $_GET["hdwtest"] == "sessiontest" )
|
|
52 |
exit;
|
53 |
}
|
54 |
|
55 |
-
if
|
56 |
-
if
|
57 |
-
if
|
58 |
-
if
|
59 |
-
if
|
60 |
-
if
|
61 |
-
if
|
62 |
-
if
|
63 |
-
if
|
64 |
|
65 |
//configuration
|
66 |
$imgX = ( isset($_GET["width"]) && is_numeric( $_GET["width"] ) )? $_GET["width"] : "180" ;
|
24 |
|
25 |
if (!isset($_GET["ps"])) $_GET["ps"] = '';
|
26 |
|
27 |
+
if( isset($_GET["hdwtest"]) && $_GET["hdwtest"] == "sessiontest" )
|
28 |
{
|
29 |
if( !isset( $_GET["autocall"] ) || $_GET["autocall"] != 1 )
|
30 |
{
|
52 |
exit;
|
53 |
}
|
54 |
|
55 |
+
if(empty($_GET["width"]) || !is_numeric($_GET["width"])) $_GET["width"] = "180";
|
56 |
+
if(empty($_GET["height"]) || !is_numeric($_GET["height"])) $_GET["height"] = "60";
|
57 |
+
if(empty($_GET["letter_count"]) || !is_numeric($_GET["letter_count"])) $_GET["letter_count"] = "5";
|
58 |
+
if(empty($_GET["min_size"]) || !is_numeric($_GET["min_size"])) $_GET["min_size"] = "35";
|
59 |
+
if(empty($_GET["max_size"]) || !is_numeric($_GET["max_size"])) $_GET["max_size"] = "45";
|
60 |
+
if(empty($_GET["noise"]) || !is_numeric($_GET["noise"])) $_GET["noise"] = "200";
|
61 |
+
if(empty($_GET["noiselength"]) || !is_numeric($_GET["noiselength"])) $_GET["noiselength"] = "5";
|
62 |
+
if(empty($_GET["bcolor"])) $_GET["bcolor"] = "FFFFFF";
|
63 |
+
if(empty($_GET["border"])) $_GET["border"] = "000000";
|
64 |
|
65 |
//configuration
|
66 |
$imgX = ( isset($_GET["width"]) && is_numeric( $_GET["width"] ) )? $_GET["width"] : "180" ;
|
changelog.txt
CHANGED
@@ -1,5 +1,85 @@
|
|
1 |
== Changelog ==
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
= 1.0.463 =
|
4 |
|
5 |
* Fixes a conflict with the latest update of Divi.
|
@@ -457,82 +537,4 @@
|
|
457 |
* Removes unnecessary attributes from the form's settings.
|
458 |
* Modifies some styles.
|
459 |
* Allows identify easier the errors with the notification emails, generating an entry in the Error Logs (Professional, Developer, and Platinum versions of the plugin).
|
460 |
-
* Modifies the PrintFriendly add-on, allowing configure the emails where attach the pdf files.
|
461 |
-
|
462 |
-
= 1.0.377 =
|
463 |
-
|
464 |
-
* Improves the plugin's performance.
|
465 |
-
* Removes unnecessary attributes from the form's settings.
|
466 |
-
* Modifies some styles.
|
467 |
-
* Allows identify easier the errors with the notification emails, generating an entry in the Error Logs (Professional, Developer, and Platinum versions of the plugin).
|
468 |
-
* Modifies the PrintFriendly add-on, allowing configure the emails where attach the pdf files.
|
469 |
-
|
470 |
-
= 1.0.376 =
|
471 |
-
|
472 |
-
* Modifies the module that loads the plugin's resources.
|
473 |
-
* Modifies the module to export the forms. Now the forms list includes the form's id in front of forms' names, and the name of generated file, has the structure: export_id_yyyy-mm-dd_hhiiss.cpfm (Professional, Developer and Platinum versions of the plugin)
|
474 |
-
* Modifies the Users Permissions add-on to support the new attributes in the submissions shortcode: from, to, limit, order (Developer and Platinum versions of the plugin)
|
475 |
-
* Includes the DMSTODD operation in the Distance operations module to convert degrees, minutes and seconds values into decimal degrees (Developer and Platinum versions of the plugin).
|
476 |
-
* Modifies the SagePay add-on (Platinum version of the plugin)
|
477 |
-
|
478 |
-
= 1.0.375 =
|
479 |
-
|
480 |
-
* Includes additional validations rules to identify possible conflicts with other optimization plugins.
|
481 |
-
* Fixes an encoding issue with some ampersand symbols in generated URLs.
|
482 |
-
|
483 |
-
= 1.0.374 =
|
484 |
-
|
485 |
-
* It makes easier debugging the errors in the equations.
|
486 |
-
* Includes the new CSS class hide-strong, it applies the display:none with the !important modifier.
|
487 |
-
* Includes two new operations in the Managing Fields module, ACTIVATEFIELD and IGNOREFIELD for activating and ignoring the fields programmatically.
|
488 |
-
* Reduces the space between fields after the forms' submissions.
|
489 |
-
|
490 |
-
= 1.0.373 =
|
491 |
-
|
492 |
-
* Includes additional validations rules to identify possible conflicts with other optimization plugins.
|
493 |
-
|
494 |
-
= 1.0.372 =
|
495 |
-
|
496 |
-
* Includes additional validations rules to identify possible conflicts with other optimization plugins.
|
497 |
-
* Includes the role attribute in the [CP_CALCULATED_FIELDS_RESULT_LIST] shortcode to display the submissions list for specific users roles.
|
498 |
-
|
499 |
-
= 1.0.371 =
|
500 |
-
|
501 |
-
* This update modifies the plugin's code to prevent poorly implemented optimization plugins affect the forms. Some optimization plugins do not distinguish between a javascript comment and a regular expression, breaking the plugins code in the optimization process.
|
502 |
-
|
503 |
-
= 1.0.370 =
|
504 |
-
|
505 |
-
* Includes two new operations: SUM and CONCATENATE. In javascript the plus operator is overloaded, it is used to sum numbers and concatenate texts, these operations solve the ambiguity.
|
506 |
-
* Includes a new section in the settings page of the plugin to identify possible causes of conflicts with third party plugins.
|
507 |
-
|
508 |
-
= 1.0.369 =
|
509 |
-
|
510 |
-
* Fixes a compatibility issue with the new version of Gutenberg editor.
|
511 |
-
|
512 |
-
= 1.0.368 =
|
513 |
-
|
514 |
-
* Includes the generateURL operation in the URL Operations Module to generate a valid URL, given a base URL, a plain object for parameters, and hash.
|
515 |
-
* Fixes the documentation of operations modules.
|
516 |
-
* Fixes an issue in the advanced equations editor that was ignoring some operations modules.
|
517 |
-
|
518 |
-
= 1.0.367 =
|
519 |
-
|
520 |
-
* Includes two new operations in the URL Operations Module: getURLHash and getURLPath
|
521 |
-
* Includes a new attribute in the troubleshoot area to fix the wrong encoding of notification emails (Professional, Developer and Platinum versions of the plugin).
|
522 |
-
|
523 |
-
= 1.0.366 =
|
524 |
-
|
525 |
-
* Some few changes in the interface.
|
526 |
-
* Allows to use the raw values of fields for filtering in the datasource fields: <%fieldname1|r%> (Developer and Platinum versions of the plugin).
|
527 |
-
|
528 |
-
= 1.0.365 =
|
529 |
-
|
530 |
-
* Includes new options into the settings page of the plugin for controlling the direct access to the forms and their APM versions.
|
531 |
-
|
532 |
-
= 1.0.364 =
|
533 |
-
|
534 |
-
* Implements the new operation LCM: least common multiple between two numbers.
|
535 |
-
|
536 |
-
= 1.0.363 =
|
537 |
-
|
538 |
-
* Modifies the next/previous page behavior, in multi-pages forms, for jumping pages without active fields.
|
1 |
== Changelog ==
|
2 |
|
3 |
+
= 1.1.3 =
|
4 |
+
|
5 |
+
* Allows selecting the autocomplete attribute from the fields' settings.
|
6 |
+
* Includes the Date/Time operations module with the free and professional version of the plugin.
|
7 |
+
* Allows passing the version number of the ChartJS library through the CFFCHART operation (Developer and Platinum versions of the plugin).
|
8 |
+
|
9 |
+
= 1.1.2 =
|
10 |
+
|
11 |
+
* Includes a new control. The COLOR control.
|
12 |
+
* Implements the read-only feature in radio buttons and checkbox fields.
|
13 |
+
|
14 |
+
= 1.1.1 =
|
15 |
+
|
16 |
+
* Improve accessibility by making the design more coherent.
|
17 |
+
|
18 |
+
= 1.1.0 =
|
19 |
+
|
20 |
+
* Modifies the plugin's design and the accessibility.
|
21 |
+
|
22 |
+
= 1.0.474 =
|
23 |
+
|
24 |
+
* Includes the getReferrer operation in the URL Operations module.
|
25 |
+
* Modifies the cff-gotopage event.
|
26 |
+
* Modifies the loading form animation.
|
27 |
+
* Modifies the RedSys and Bizum add-ons (Platinum version of the plugin).
|
28 |
+
|
29 |
+
= 1.0.473 =
|
30 |
+
|
31 |
+
* Modifies the forms structures.
|
32 |
+
* Fixes a CSS conflict.
|
33 |
+
* Modifies the RedSys and Bizum add-ons (Platinum version of the plugin).
|
34 |
+
|
35 |
+
= 1.0.472 =
|
36 |
+
|
37 |
+
* Allows you to configure the Date/Time fields as read only.
|
38 |
+
* Fixes some compatibility issues with the last versions of PHP.
|
39 |
+
* Modifies the WooCommerce add-on (Developer and Platinum versions of the plugin).
|
40 |
+
* Includes a link from the form's settings to Messages lists (Commercial versions of the plugin).
|
41 |
+
|
42 |
+
= 1.0.471 =
|
43 |
+
|
44 |
+
* Fixes a compatibility problem with Internet Explorer, even if this browser has been discontinued by Microsoft.
|
45 |
+
|
46 |
+
= 1.0.470 =
|
47 |
+
|
48 |
+
* Modifies the processing and loading animation.
|
49 |
+
* Fixes some warnings.
|
50 |
+
* Resets the manual entry flag in the calculated fields in the form reset action.
|
51 |
+
|
52 |
+
= 1.0.469 =
|
53 |
+
|
54 |
+
* Modifies the summary, field, button, number, and calculated controls.
|
55 |
+
* Implements the FORMAT operation to allow formatting the values as part of the equations.
|
56 |
+
|
57 |
+
= 1.0.468 =
|
58 |
+
|
59 |
+
* Fixes a conflict with some themes.
|
60 |
+
* Fixes compatibility issues with PHP 8.
|
61 |
+
* Improves the signature and PDF Generator add-ons (Platinum version of the plugin).
|
62 |
+
|
63 |
+
= 1.0.467 =
|
64 |
+
|
65 |
+
* Modifies the calculated fields to exclude the prefix and suffix if the currency checkbox is ticked and the equation's result is not a number.
|
66 |
+
* Allows accessing the forms builder directly from the Beaver Builder module.
|
67 |
+
|
68 |
+
= 1.0.466 =
|
69 |
+
|
70 |
+
* Allows to access the forms builder directly from the widget and SiteOrigin.
|
71 |
+
|
72 |
+
= 1.0.465 =
|
73 |
+
|
74 |
+
* Fixes a conflict with some themes.
|
75 |
+
* Prevents an issue caused by some optimizers.
|
76 |
+
|
77 |
+
= 1.0.464 =
|
78 |
+
|
79 |
+
* Modifies some styles.
|
80 |
+
* Modifies the IGNOREFIELD and ACTIVEFIELD operations accepting the form's id as its second parameter.
|
81 |
+
* Includes additional buttons in the Gutenberg and Elementor editors to access the forms builder directly.
|
82 |
+
|
83 |
= 1.0.463 =
|
84 |
|
85 |
* Fixes a conflict with the latest update of Divi.
|
537 |
* Removes unnecessary attributes from the form's settings.
|
538 |
* Modifies some styles.
|
539 |
* Allows identify easier the errors with the notification emails, generating an entry in the Error Logs (Professional, Developer, and Platinum versions of the plugin).
|
540 |
+
* Modifies the PrintFriendly add-on, allowing configure the emails where attach the pdf files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cp_calculatedfieldsf_free.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Calculated Fields Form
|
4 |
Plugin URI: https://cff.dwbooster.com
|
5 |
Description: Create forms with field values calculated based in other form field values.
|
6 |
-
Version: 1.
|
7 |
Text Domain: calculated-fields-form
|
8 |
Author: CodePeople
|
9 |
Author URI: https://cff.dwbooster.com
|
@@ -16,7 +16,7 @@ if(!defined('WP_DEBUG') || true != WP_DEBUG)
|
|
16 |
}
|
17 |
|
18 |
// Defining main constants
|
19 |
-
define('CP_CALCULATEDFIELDSF_VERSION', '1.
|
20 |
define('CP_CALCULATEDFIELDSF_MAIN_FILE_PATH', __FILE__ );
|
21 |
define('CP_CALCULATEDFIELDSF_BASE_PATH', dirname( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
|
22 |
define('CP_CALCULATEDFIELDSF_BASE_NAME', plugin_basename( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
|
3 |
Plugin Name: Calculated Fields Form
|
4 |
Plugin URI: https://cff.dwbooster.com
|
5 |
Description: Create forms with field values calculated based in other form field values.
|
6 |
+
Version: 1.1.3
|
7 |
Text Domain: calculated-fields-form
|
8 |
Author: CodePeople
|
9 |
Author URI: https://cff.dwbooster.com
|
16 |
}
|
17 |
|
18 |
// Defining main constants
|
19 |
+
define('CP_CALCULATEDFIELDSF_VERSION', '1.1.3' );
|
20 |
define('CP_CALCULATEDFIELDSF_MAIN_FILE_PATH', __FILE__ );
|
21 |
define('CP_CALCULATEDFIELDSF_BASE_PATH', dirname( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
|
22 |
define('CP_CALCULATEDFIELDSF_BASE_NAME', plugin_basename( CP_CALCULATEDFIELDSF_MAIN_FILE_PATH ) );
|
css/loader.css
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* PROCESSION FORM ANIMATION */
|
2 |
+
@keyframes cffspinner {to {transform: rotate(360deg);}}
|
3 |
+
#fbuilder .cff-processing-form{position:fixed;top:calc( 50% - 50px );left:calc( 50% - 50px );width:100px;height:100px;z-index:99999;}
|
4 |
+
#fbuilder .cff-processing-form:before {
|
5 |
+
content:'';box-sizing:border-box;position:absolute;width:100px;height:100px;
|
6 |
+
border-radius:50%;border-top:6px solid #333;
|
7 |
+
border-right:4px solid transparent;
|
8 |
+
animation:cffspinner .6s linear infinite;
|
9 |
+
}
|
css/spinner.gif
DELETED
Binary file
|
css/style.css
CHANGED
@@ -3,11 +3,12 @@
|
|
3 |
.clearer{clear:both;}
|
4 |
.column{float:left;}
|
5 |
.columnr{float:right;}
|
6 |
-
.ctrlsColumn{width:380px;z-index:
|
7 |
.ctrlsColumn.expanded{min-width:380px;width:75%;position:absolute;}
|
8 |
.ctrlsColumn .expand-shrink{float:right;margin:8px 5px 0px 0px;cursor:pointer;}
|
9 |
.dashboardColumn{ width:calc(100% - 400px); }
|
10 |
.width100{width:100%}
|
|
|
11 |
.width50{width:50%}
|
12 |
.width20{width:24%}
|
13 |
.width40{width:40%}
|
@@ -16,10 +17,9 @@
|
|
16 |
.button, .form-builder .button{float:left;margin:5px 15px;}
|
17 |
.button.n span{color:#AED0EA}
|
18 |
.cff-active-column{border:1px solid #0073aa; padding:5px;display:inline-block;}
|
19 |
-
#tabs{height:650px;width:100%;overflow-y:auto;}
|
20 |
#fbuilder{height:640px;overflow:auto;position:relative;}
|
21 |
#fbuilder .fields{border:1px solid transparent;padding:3px 10px 14px 10px;margin:5px 0px;display:block;position:relative;}
|
22 |
-
#fbuilder .fields:before {content: attr(title); background-color:#FFF1A0
|
23 |
#fbuilder .ftext:before{background-color:rgba(212,187,221,0.7);}
|
24 |
#fbuilder .fcurrency:before{background-color:rgba(253,209,210,0.7);}
|
25 |
#fbuilder .fnumber:before{background-color:rgba(251,237,224,0.7);}
|
@@ -56,8 +56,20 @@
|
|
56 |
#fbuilder .fields .copy{right:20px;}
|
57 |
|
58 |
#fbuilder legend{ border:1px solid rgba(222,222,222,.75); background:#FFF; margin-left:5px; padding: 0 5px; }
|
59 |
-
#fbuilder .fcontainer{ border:1px solid rgba(222,222,222,.75);min-height:67px;padding:10px 5px;}
|
60 |
#fbuilder .fieldscontainer{min-height:67px;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
#fbuilder .fhtml {border:1px dashed rgba(222,222,222,.75);min-height:16px;}
|
62 |
|
63 |
.groupBox,
|
@@ -73,7 +85,7 @@
|
|
73 |
.addComplexRule{cursor:pointer;}
|
74 |
.cf_dependence_rule{width:calc( 100% - 100px );width:-webkit-calc( 100% - 100px );width:-moz-calc( 100% - 100px );width:-o-calc( 100% - 100px );}
|
75 |
|
76 |
-
.choice-ctrls{
|
77 |
.choice-ctrls *{float:left;cursor:pointer;}
|
78 |
|
79 |
.calc_dependent{width:150px;}
|
@@ -94,7 +106,7 @@
|
|
94 |
a.helpfbuilder.dep{font-size:100%;padding-left:10px}
|
95 |
input [disabled] {background-color: #f00;}
|
96 |
input [readonly] {background-color: #f00;}
|
97 |
-
#fbuilder .fields.ui-selected{background-color:#
|
98 |
#fbuilder .fields.ui-selected .arrow,#fbuilder .fields.ui-selected>.remove,#fbuilder .fields.ui-selected>.copy,#fbuilder .fields.ui-selected>.collapse,#fbuilder .fields.ui-selected.collapsed>.uncollapse{display:inline}
|
99 |
#fbuilder .fields.collapsed>.dfield>.fcontainer{border-color: rgba(255,201,38,.75);}
|
100 |
#fbuilder .collapsed-label{padding:10px;}
|
@@ -133,26 +145,44 @@ textarea {resize: none}
|
|
133 |
#fbuilder span.uh{display:block;font-size:80%;clear:both}
|
134 |
#fbuilder .section_break{border-top:1px dotted #555;clear:both}
|
135 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
#fbuilder .uh_phone{float:left;margin:0px 5px;font-size:80%;text-align:center;position: relative;}
|
137 |
#fbuilder .uh_phone input{text-align:center;font-size:100%;}
|
138 |
#fbuilder .uh_phone div.cpefb_error{display:block;white-space:nowrap;width:400px}
|
139 |
|
|
|
|
|
|
|
140 |
.eq_btn{min-width:45px;}
|
141 |
.form-builder #sFieldList,
|
142 |
.form-builder #sToolbarList{width: calc( 100% - 50px );width: -webkit-calc( 100% - 50px );width: -moz-calc( 100% - 50px );width: -o-calc( 100% - 50x );}
|
143 |
#sAdvancedEditor,
|
144 |
#fCalculated{
|
145 |
-
background:
|
146 |
border: 1px solid #D0771D;
|
147 |
color: #643F0D;
|
148 |
}
|
149 |
#sAdvancedEditor{text-align:center; text-transform: uppercase; padding:5px;margin-bottom:10px;cursor:pointer;font-weight:bold;}
|
150 |
#facceptance{
|
151 |
-
background:
|
152 |
border: 1px solid #619218;
|
153 |
color: #25530F;
|
154 |
}
|
155 |
#facceptance span{padding-left: 0; padding-right:0;}
|
|
|
156 |
|
157 |
a.helpfbuilder{font-size:80%;text-decoration:underline;color:#00f;cursor:pointer;}
|
158 |
.working_dates input[type='checkbox']{width:8%}
|
@@ -176,7 +206,9 @@ a.helpfbuilder{font-size:80%;text-decoration:underline;color:#00f;cursor:pointer
|
|
176 |
|
177 |
.cff-events-list th{white-space:nowrap;}
|
178 |
|
|
|
179 |
@media only screen and (max-width: 640px){
|
|
|
180 |
.cff-custom-table,
|
181 |
.cff-custom-table thead,
|
182 |
.cff-custom-table tbody,
|
@@ -200,17 +232,18 @@ a.helpfbuilder{font-size:80%;text-decoration:underline;color:#00f;cursor:pointer
|
|
200 |
.cff_form_builder .postbox input[type=text],
|
201 |
.cff_form_builder .postbox input[type=number],
|
202 |
.cff_form_builder .postbox input[type=password]{display:block;width:100% !important;margin-bottom:5px;}
|
|
|
|
|
203 |
.cff_form_builder .postbox table,
|
204 |
.cff_form_builder .postbox table tr,
|
205 |
.cff_form_builder .postbox table th,
|
206 |
-
.cff_form_builder .postbox table td{display:block;width:100% !important;}
|
207 |
.cff_form_builder nobr{white-space:normal !important;}
|
208 |
.form-builder{min-width: auto;background:#FFF !important;}
|
209 |
-
.form-builder #tabs{width:auto;}
|
210 |
.form-builder .expand-shrink{display:none;}
|
211 |
.dashboardColumn,
|
212 |
.ctrlsColumn{width:100% !important;position:relative !important;}
|
213 |
-
.form-builder .button{margin:0; padding:0;width:
|
214 |
#fbuilder{margin-top:10px;padding:0;}
|
215 |
.cff-form-name-shortcode{display:none;}
|
216 |
.cff-revisions-container{float:none; width:100%;padding:10px 5%;}
|
@@ -219,22 +252,17 @@ a.helpfbuilder{font-size:80%;text-decoration:underline;color:#00f;cursor:pointer
|
|
219 |
.form-builder #tabs-3 div{margin-bottom:10px;}
|
220 |
.form-builder #tabs-3 .groupBox label{display:block;margin-bottom:5px;}
|
221 |
table.form-table tbody{display:block;width:100% !important;}
|
|
|
|
|
222 |
}
|
223 |
@media only screen and (max-width: 480px){
|
224 |
.cff-custom-table input[type="button"]{margin:0 !important; width:100% !important;display:block !important;}
|
225 |
}
|
226 |
|
227 |
-
|
228 |
-
|
229 |
-
#
|
230 |
-
#metabox_basic_settings3,
|
231 |
-
#metabox_basic_settings4{cursor:pointer !important;}
|
232 |
|
233 |
-
#metabox_basic_settings0 * ,
|
234 |
-
#metabox_basic_settings1 * ,
|
235 |
-
#metabox_basic_settings2 * ,
|
236 |
-
#metabox_basic_settings3 * ,
|
237 |
-
#metabox_basic_settings4 * {color:#bfbdbd91 !important;pointer-events: none !important;}
|
238 |
.cff-addons-category{display:inline-block;font-weight:bold;text-transform:capitalize;border-bottom:1px solid #eee;margin-bottom:10px;padding-bottom:5px;}
|
239 |
.cff-addons-category:not(:first-child){margin-top:20px;}
|
240 |
|
3 |
.clearer{clear:both;}
|
4 |
.column{float:left;}
|
5 |
.columnr{float:right;}
|
6 |
+
.ctrlsColumn{width:380px;z-index:99999;}
|
7 |
.ctrlsColumn.expanded{min-width:380px;width:75%;position:absolute;}
|
8 |
.ctrlsColumn .expand-shrink{float:right;margin:8px 5px 0px 0px;cursor:pointer;}
|
9 |
.dashboardColumn{ width:calc(100% - 400px); }
|
10 |
.width100{width:100%}
|
11 |
+
.width75{width:75%}
|
12 |
.width50{width:50%}
|
13 |
.width20{width:24%}
|
14 |
.width40{width:40%}
|
17 |
.button, .form-builder .button{float:left;margin:5px 15px;}
|
18 |
.button.n span{color:#AED0EA}
|
19 |
.cff-active-column{border:1px solid #0073aa; padding:5px;display:inline-block;}
|
|
|
20 |
#fbuilder{height:640px;overflow:auto;position:relative;}
|
21 |
#fbuilder .fields{border:1px solid transparent;padding:3px 10px 14px 10px;margin:5px 0px;display:block;position:relative;}
|
22 |
+
#fbuilder .fields:before {content: attr(title); background-color:#FFF1A0;text-shadow: 1px 1px 0px rgba(255, 255, 255, .4); padding:3px 5px; margin:0 5px 5px 0; display:table;border: 1px solid rgba(0,0,0,.2);}
|
23 |
#fbuilder .ftext:before{background-color:rgba(212,187,221,0.7);}
|
24 |
#fbuilder .fcurrency:before{background-color:rgba(253,209,210,0.7);}
|
25 |
#fbuilder .fnumber:before{background-color:rgba(251,237,224,0.7);}
|
56 |
#fbuilder .fields .copy{right:20px;}
|
57 |
|
58 |
#fbuilder legend{ border:1px solid rgba(222,222,222,.75); background:#FFF; margin-left:5px; padding: 0 5px; }
|
59 |
+
#fbuilder .fcontainer{ border:1px solid rgba(222,222,222,.75);min-height:67px;padding:10px 5px;position:relative;}
|
60 |
#fbuilder .fieldscontainer{min-height:67px;}
|
61 |
+
|
62 |
+
.cff-goto-top{text-align:right;}
|
63 |
+
.cff-goto-top a::after{display:inline-block; content: " ↑"}
|
64 |
+
|
65 |
+
/* COLUMNS STICKERS */
|
66 |
+
#fbuilder .sticker{display:inline-block;position:absolute;right:5px;top:5px;}
|
67 |
+
#fbuilder fieldset.fcontainer>.sticker{top:-5px;}
|
68 |
+
#fbuilder .sticker i{display:inline-block;height:15px;background:#DAEDFA;border:1px solid #aed0ea;margin-left:2px;}
|
69 |
+
#fbuilder .sticker i.sticker-1{display:none;}
|
70 |
+
#fbuilder .sticker i.sticker-2{width:32px;}
|
71 |
+
#fbuilder .sticker i.sticker-3{width:21px;}
|
72 |
+
#fbuilder .sticker i.sticker-4{width:15px;}
|
73 |
#fbuilder .fhtml {border:1px dashed rgba(222,222,222,.75);min-height:16px;}
|
74 |
|
75 |
.groupBox,
|
85 |
.addComplexRule{cursor:pointer;}
|
86 |
.cf_dependence_rule{width:calc( 100% - 100px );width:-webkit-calc( 100% - 100px );width:-moz-calc( 100% - 100px );width:-o-calc( 100% - 100px );}
|
87 |
|
88 |
+
.choice-ctrls{position:absolute;top:3px;right:-3px;}
|
89 |
.choice-ctrls *{float:left;cursor:pointer;}
|
90 |
|
91 |
.calc_dependent{width:150px;}
|
106 |
a.helpfbuilder.dep{font-size:100%;padding-left:10px}
|
107 |
input [disabled] {background-color: #f00;}
|
108 |
input [readonly] {background-color: #f00;}
|
109 |
+
#fbuilder .fields.ui-selected{background-color:#dfeffd7a;border:1px solid #C2D7EF}
|
110 |
#fbuilder .fields.ui-selected .arrow,#fbuilder .fields.ui-selected>.remove,#fbuilder .fields.ui-selected>.copy,#fbuilder .fields.ui-selected>.collapse,#fbuilder .fields.ui-selected.collapsed>.uncollapse{display:inline}
|
111 |
#fbuilder .fields.collapsed>.dfield>.fcontainer{border-color: rgba(255,201,38,.75);}
|
112 |
#fbuilder .collapsed-label{padding:10px;}
|
145 |
#fbuilder span.uh{display:block;font-size:80%;clear:both}
|
146 |
#fbuilder .section_break{border-top:1px dotted #555;clear:both}
|
147 |
|
148 |
+
/* TABS */
|
149 |
+
.form-builder #tabs{height:650px;width:100%;overflow:hidden;}
|
150 |
+
.form-builder #tabs-1,
|
151 |
+
.form-builder #tabs-2,
|
152 |
+
.form-builder #tabs-3{top:35px;bottom:0;left:0;right:0;position:absolute;overflow-y:auto;}
|
153 |
+
.form-builder #tabs .ui-tabs-anchor{padding-left:8px; padding-right:8px;}
|
154 |
+
.form-builder #tabs,
|
155 |
+
.form-builder #tabs .ui-tabs-nav,
|
156 |
+
.form-builder #tabs .ui-tabs-nav .ui-tabs-tab{border-radius:0;}
|
157 |
+
.form-builder #tabs .ui-tabs-nav{border-top:0;border-left:0;border-right:0;background:transparent !important;border-color:#ddd}
|
158 |
+
.form-builder .ctrlsColumn .ui-tabs .ui-tabs-nav .ui-tabs-tab{background:#DAEDFA;width:30%;box-sizing:border-box;}
|
159 |
+
.form-builder .ctrlsColumn .ui-tabs .ui-tabs-nav .ui-tabs-tab.ui-tabs-active{background:#62BBE9}
|
160 |
+
.form-builder .ctrlsColumn .ui-tabs .ui-tabs-nav .ui-tabs-tab a{text-overflow: ellipsis;white-space: nowrap;overflow: hidden;width:100%;box-sizing:border-box;text-align:center;}
|
161 |
+
|
162 |
#fbuilder .uh_phone{float:left;margin:0px 5px;font-size:80%;text-align:center;position: relative;}
|
163 |
#fbuilder .uh_phone input{text-align:center;font-size:100%;}
|
164 |
#fbuilder .uh_phone div.cpefb_error{display:block;white-space:nowrap;width:400px}
|
165 |
|
166 |
+
.form-builder #sFieldList_chosen .chosen-single{min-height:30px;}
|
167 |
+
.form-builder #sFieldList_chosen .chosen-single span{line-height:30px;}
|
168 |
+
|
169 |
.eq_btn{min-width:45px;}
|
170 |
.form-builder #sFieldList,
|
171 |
.form-builder #sToolbarList{width: calc( 100% - 50px );width: -webkit-calc( 100% - 50px );width: -moz-calc( 100% - 50px );width: -o-calc( 100% - 50x );}
|
172 |
#sAdvancedEditor,
|
173 |
#fCalculated{
|
174 |
+
background: #F9E774;
|
175 |
border: 1px solid #D0771D;
|
176 |
color: #643F0D;
|
177 |
}
|
178 |
#sAdvancedEditor{text-align:center; text-transform: uppercase; padding:5px;margin-bottom:10px;cursor:pointer;font-weight:bold;}
|
179 |
#facceptance{
|
180 |
+
background: #B5E66D;
|
181 |
border: 1px solid #619218;
|
182 |
color: #25530F;
|
183 |
}
|
184 |
#facceptance span{padding-left: 0; padding-right:0;}
|
185 |
+
#metabox_captcha_settings td{vertical-align:top;}
|
186 |
|
187 |
a.helpfbuilder{font-size:80%;text-decoration:underline;color:#00f;cursor:pointer;}
|
188 |
.working_dates input[type='checkbox']{width:8%}
|
206 |
|
207 |
.cff-events-list th{white-space:nowrap;}
|
208 |
|
209 |
+
.cff-addon-item{padding-right:10px;padding-bottom:5px;box-sizing:border-box;width:50%;float:left;}
|
210 |
@media only screen and (max-width: 640px){
|
211 |
+
.cff-addon-item{padding-right:0;padding-bottom:20px;width:100%;float:none;}
|
212 |
.cff-custom-table,
|
213 |
.cff-custom-table thead,
|
214 |
.cff-custom-table tbody,
|
232 |
.cff_form_builder .postbox input[type=text],
|
233 |
.cff_form_builder .postbox input[type=number],
|
234 |
.cff_form_builder .postbox input[type=password]{display:block;width:100% !important;margin-bottom:5px;}
|
235 |
+
.cff_form_builder .postbox input[type=checkbox],
|
236 |
+
.cff_form_builder .postbox input[type=radio]{margin:0;}
|
237 |
.cff_form_builder .postbox table,
|
238 |
.cff_form_builder .postbox table tr,
|
239 |
.cff_form_builder .postbox table th,
|
240 |
+
.cff_form_builder .postbox table td{display:block;width:100% !important;box-sizing:border-box;}
|
241 |
.cff_form_builder nobr{white-space:normal !important;}
|
242 |
.form-builder{min-width: auto;background:#FFF !important;}
|
|
|
243 |
.form-builder .expand-shrink{display:none;}
|
244 |
.dashboardColumn,
|
245 |
.ctrlsColumn{width:100% !important;position:relative !important;}
|
246 |
+
.form-builder .button{margin:0; padding:0;width:49%;margin-right:1%;margin-top:5px;}
|
247 |
#fbuilder{margin-top:10px;padding:0;}
|
248 |
.cff-form-name-shortcode{display:none;}
|
249 |
.cff-revisions-container{float:none; width:100%;padding:10px 5%;}
|
252 |
.form-builder #tabs-3 div{margin-bottom:10px;}
|
253 |
.form-builder #tabs-3 .groupBox label{display:block;margin-bottom:5px;}
|
254 |
table.form-table tbody{display:block;width:100% !important;}
|
255 |
+
|
256 |
+
.choice-ctrls{top:0px;}
|
257 |
}
|
258 |
@media only screen and (max-width: 480px){
|
259 |
.cff-custom-table input[type="button"]{margin:0 !important; width:100% !important;display:block !important;}
|
260 |
}
|
261 |
|
262 |
+
.metabox_disabled_section{cursor:pointer !important;}
|
263 |
+
.metabox_disabled_section * {color:#bfbdbd91 !important;pointer-events: none !important;}
|
264 |
+
.metabox_disabled_section #captchaimg{opacity:0.3;}
|
|
|
|
|
265 |
|
|
|
|
|
|
|
|
|
|
|
266 |
.cff-addons-category{display:inline-block;font-weight:bold;text-transform:capitalize;border-bottom:1px solid #eee;margin-bottom:10px;padding-bottom:5px;}
|
267 |
.cff-addons-category:not(:first-child){margin-top:20px;}
|
268 |
|
css/stylepublic.css
CHANGED
@@ -396,7 +396,7 @@
|
|
396 |
#fbuilder .pbreak.pb0 .pbPrevious,
|
397 |
#fbuilder .pbreak.pbEnd .pbNext{display:none !important;}
|
398 |
#fbuilder .ignore{display:none;}
|
399 |
-
#fbuilder fieldset{border:1px solid #ccc;padding:10px;}
|
400 |
#fbuilder legend{border:1px solid #ccc;padding:5px 10px;}
|
401 |
#fbuilder .cff-collapsible.cff-collapsed>fieldset>div{display:none;}
|
402 |
#fbuilder .cff-collapsible.cff-collapsed>fieldset::after{content:'...';}
|
@@ -409,7 +409,7 @@
|
|
409 |
#fbuilder input[type='checkbox']{width:auto;height:auto;}
|
410 |
#fbuilder input[type='radio']:after,
|
411 |
#fbuilder input[type='checkbox']:after{display:none;}
|
412 |
-
.ui-tooltip.uh-tooltip{width:250px;font-size:10px;font-weight:normal;padding:5px;z-index:9999 !important;box-shadow:none;}
|
413 |
.ui-tooltip img{max-width:100%;}
|
414 |
#fbuilder input[type="checkbox"]{-webkit-appearance:checkbox!important;}
|
415 |
#fbuilder input[type="radio"]{-webkit-appearance:radio!important;}
|
@@ -453,7 +453,17 @@
|
|
453 |
}
|
454 |
#fbuilder .cff-dialog{position:fixed;z-index:999999;padding:30px;width:600px;height:300px;background:#fff;top:50%;left:50%;box-shadow:rgba(0, 0, 0, 0.5) 0px 0px 10px 0px;}
|
455 |
#fbuilder .cff-dialog-content{width:100%;height:100%;overflow:auto;white-space:normal;}
|
456 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
457 |
#fbuilder #loginform label{min-width:250px;display:inline-block;}
|
458 |
|
459 |
/* ZOOM IPHONE */
|
396 |
#fbuilder .pbreak.pb0 .pbPrevious,
|
397 |
#fbuilder .pbreak.pbEnd .pbNext{display:none !important;}
|
398 |
#fbuilder .ignore{display:none;}
|
399 |
+
#fbuilder fieldset{border:1px solid #ccc;padding:10px;display:block;}
|
400 |
#fbuilder legend{border:1px solid #ccc;padding:5px 10px;}
|
401 |
#fbuilder .cff-collapsible.cff-collapsed>fieldset>div{display:none;}
|
402 |
#fbuilder .cff-collapsible.cff-collapsed>fieldset::after{content:'...';}
|
409 |
#fbuilder input[type='checkbox']{width:auto;height:auto;}
|
410 |
#fbuilder input[type='radio']:after,
|
411 |
#fbuilder input[type='checkbox']:after{display:none;}
|
412 |
+
.ui-tooltip.uh-tooltip{width:250px;font-size:10px;font-weight:normal;padding:5px;z-index:9999 !important;box-shadow:none;background:white;opacity:1;}
|
413 |
.ui-tooltip img{max-width:100%;}
|
414 |
#fbuilder input[type="checkbox"]{-webkit-appearance:checkbox!important;}
|
415 |
#fbuilder input[type="radio"]{-webkit-appearance:radio!important;}
|
453 |
}
|
454 |
#fbuilder .cff-dialog{position:fixed;z-index:999999;padding:30px;width:600px;height:300px;background:#fff;top:50%;left:50%;box-shadow:rgba(0, 0, 0, 0.5) 0px 0px 10px 0px;}
|
455 |
#fbuilder .cff-dialog-content{width:100%;height:100%;overflow:auto;white-space:normal;}
|
456 |
+
|
457 |
+
/* PROCESSION FORM ANIMATION */
|
458 |
+
@keyframes cffspinner {to {transform: rotate(360deg);}}
|
459 |
+
#fbuilder .cff-processing-form{position:fixed;top:calc( 50% - 50px );left:calc( 50% - 50px );width:100px;height:100px;z-index:99999;}
|
460 |
+
#fbuilder .cff-processing-form:before {
|
461 |
+
content:'';box-sizing:border-box;position:absolute;width:100px;height:100px;
|
462 |
+
border-radius:50%;border-top:6px solid #333;
|
463 |
+
border-right:4px solid transparent;
|
464 |
+
animation:cffspinner .6s linear infinite;
|
465 |
+
}
|
466 |
+
|
467 |
#fbuilder #loginform label{min-width:250px;display:inline-block;}
|
468 |
|
469 |
/* ZOOM IPHONE */
|
css/ui-bg_glass_80_eebd4d_1x400.png
DELETED
Binary file
|
css/ui-bg_glass_80_eebd4dc_1x400.png
DELETED
Binary file
|
inc/cpcff_admin_int.inc.php
CHANGED
@@ -57,10 +57,10 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
57 |
print '<br><span style="font-size:14px;font-style:italic;">'.__('Direct form URL', 'calculated-fields-form').': <a href="'.esc_attr($url).'" target="_blank">'.$url.'</a></span>';
|
58 |
}
|
59 |
?></h1>
|
60 |
-
<input type="button" name="backbtn" value="<?php esc_attr_e( 'Back to items list...', 'calculated-fields-form' ); ?>" onclick="document.location='admin.php?page=cp_calculated_fields_form';"
|
61 |
<br /><br />
|
62 |
|
63 |
-
<form method="post" action="" name="cpformconf" class="cff_form_builder">
|
64 |
<input type="hidden" name="_cpcff_nonce" value="<?php echo wp_create_nonce( 'cff-form-settings' ); ?>" />
|
65 |
<input name="cp_calculatedfieldsf_post_options" type="hidden" value="1" />
|
66 |
<input name="cp_calculatedfieldsf_id" type="hidden" value="<?php echo CP_CALCULATEDFIELDSF_ID; ?>" />
|
@@ -70,7 +70,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
70 |
<h2><?php _e( 'Form Settings', 'calculated-fields-form' ); ?>:</h2>
|
71 |
<hr />
|
72 |
<div><?php _e( '* Different form styles available on the tab Form Settings >> Form Template', 'calculated-fields-form' ); ?></div>
|
73 |
-
<div id="
|
74 |
<div class="hndle">
|
75 |
<h3 style="padding:5px;display:inline-block;"><span><?php _e( 'Form Builder', 'calculated-fields-form' ); ?></span></h3>
|
76 |
<div class="cff-revisions-container">
|
@@ -99,7 +99,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
99 |
echo $cff_structure_error;
|
100 |
}
|
101 |
?></div>
|
102 |
-
<p style="border:1px solid #F0AD4E;background:#FBE6CA;padding:10px;"><span style="font-weight:bold;"><?php _e('If the form is not loading in the public website, go to the settings page of the plugin through the menu option: "Settings/Calculated Fields Form", select the "Classic" option for the attribute: "Script load method", and press the "Update" button.','calculated-fields-form'); ?></span><br /><?php _e( 'If you need also the form to be sent to the server side for processing (for example to deliver emails) then the <a href="https://cff.dwbooster.com/" target="_blank">
|
103 |
<input type="hidden" name="form_structure" id="form_structure" value="<?php print esc_attr(preg_replace('/"/i', '&quot;', json_encode($form_obj->get_option( 'form_structure', CP_CALCULATEDFIELDSF_DEFAULT_form_structure )))); ?>" />
|
104 |
<input type="hidden" name="templates" id="templates" value="<?php print esc_attr( json_encode( CPCFF_TEMPLATES::load_templates() ) ); ?>" />
|
105 |
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/themes/cupertino/jquery-ui.min.css" type="text/css" rel="stylesheet" property="stylesheet" />
|
@@ -118,7 +118,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
118 |
result = window.confirm('<?php print esc_js(__('The action will load the revision selected, the data are not stored will be lose. Do you want continue?', 'calculated-fields-form'));?>');
|
119 |
if(result)
|
120 |
{
|
121 |
-
$calculatedfieldsfQuery('<form method="post" action="" name="cpformconf" class="cff_form_builder"><input type="hidden" name="_cpcff_nonce" value="<?php echo wp_create_nonce( 'cff-form-settings' ); ?>" /><input name="cp_calculatedfieldsf_id" type="hidden" value="<?php echo CP_CALCULATEDFIELDSF_ID; ?>" /><input type="hidden" name="cpcff_revision_to_apply" value="'+revision+'"></form>').appendTo('body').submit();
|
122 |
}
|
123 |
}
|
124 |
}
|
@@ -150,7 +150,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
150 |
f.fBuild.addItem($calculatedfieldsfQuery(this).attr("id"));
|
151 |
});
|
152 |
|
153 |
-
jQuery("
|
154 |
.click( function(){
|
155 |
if(confirm("<?php _e( 'These features aren\'t available in this version. Do you want to open the plugin\'s page to check other versions?', 'calculated-fields-form' ); ?>"))
|
156 |
document.location = 'https://cff.dwbooster.com/';
|
@@ -212,18 +212,26 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
212 |
<input type="button" name="previewbtn" id="previewbtn" class="button-primary" value="<?php esc_attr_e( 'Preview', 'calculated-fields-form' ); ?>" onclick="jQuery.fbuilder.preview( this );" title="Saves the form's structure only, and opens a preview windows" />
|
213 |
| <input type="checkbox" name="cff-revisions-in-preview" <?php if(get_option('CP_CALCULATEDFIELDSF_REVISIONS_IN_PREVIEW', true)) print 'CHECKED'; ?> /><?php _e('Generate revisions in the form preview as well', 'calculated-fields-form'); ?>
|
214 |
</p>
|
215 |
-
|
216 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Define Texts', 'calculated-fields-form' ); ?></span></h3>
|
218 |
<div class="inside">
|
219 |
<table class="form-table">
|
220 |
<tr valign="top">
|
221 |
<th scope="row"><?php _e( 'Previous button label (text)', 'calculated-fields-form' ); ?>:</th>
|
222 |
-
<td><input type="text" name="vs_text_previousbtn"
|
223 |
</tr>
|
224 |
<tr valign="top">
|
225 |
<th scope="row"><?php _e( 'Next button label (text)', 'calculated-fields-form' ); ?>:</th>
|
226 |
-
<td><input type="text" name="vs_text_nextbtn"
|
227 |
</tr>
|
228 |
<tr valign="top">
|
229 |
<td colspan="2">
|
@@ -239,56 +247,57 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
239 |
print '
|
240 |
<tr valign="top">
|
241 |
<th scope="row">'.$cpcff_text_attr[ 'label' ].':</th>
|
242 |
-
<td><input type="text" name="cpcff_text_array['.$cpcff_text_index.'][text]"
|
243 |
</tr>
|
244 |
';
|
245 |
}
|
246 |
}
|
247 |
?>
|
248 |
</table>
|
|
|
249 |
</div>
|
250 |
</div>
|
251 |
|
252 |
-
<div id="
|
253 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Validation Settings', 'calculated-fields-form' ); ?></span></h3>
|
254 |
<div class="inside">
|
255 |
<table class="form-table">
|
256 |
<tr valign="top">
|
257 |
<th scope="row"><?php _e( '"is required" text', 'calculated-fields-form' ); ?>:</th>
|
258 |
-
<td><input type="text" name="vs_text_is_required"
|
259 |
</tr>
|
260 |
<tr valign="top">
|
261 |
<th scope="row"><?php _e( '"is email" text', 'calculated-fields-form' ); ?>:</th>
|
262 |
-
<td><input type="text" name="vs_text_is_email"
|
263 |
</tr>
|
264 |
<tr valign="top">
|
265 |
<th scope="row"><?php _e( '"is valid captcha" text', 'calculated-fields-form' ); ?>:</th>
|
266 |
-
<td><input type="text" name="cv_text_enter_valid_captcha"
|
267 |
</tr>
|
268 |
|
269 |
<tr valign="top">
|
270 |
<th scope="row"><?php _e( '"is valid date (mm/dd/yyyy)" text', 'calculated-fields-form' ); ?>:</th>
|
271 |
-
<td><input type="text" name="vs_text_datemmddyyyy"
|
272 |
</tr>
|
273 |
<tr valign="top">
|
274 |
<th scope="row"><?php _e( '"is valid date (dd/mm/yyyy)" text', 'calculated-fields-form' ); ?>:</th>
|
275 |
-
<td><input type="text" name="vs_text_dateddmmyyyy"
|
276 |
</tr>
|
277 |
<tr valign="top">
|
278 |
<th scope="row"><?php _e( '"is number" text', 'calculated-fields-form' ); ?>:</th>
|
279 |
-
<td><input type="text" name="vs_text_number"
|
280 |
</tr>
|
281 |
<tr valign="top">
|
282 |
<th scope="row"><?php _e( '"only digits" text', 'calculated-fields-form' ); ?>:</th>
|
283 |
-
<td><input type="text" name="vs_text_digits"
|
284 |
</tr>
|
285 |
<tr valign="top">
|
286 |
<th scope="row"><?php _e( '"under maximum" text', 'calculated-fields-form' ); ?>:</th>
|
287 |
-
<td><input type="text" name="vs_text_max"
|
288 |
</tr>
|
289 |
<tr valign="top">
|
290 |
<th scope="row"><?php _e( '"over minimum" text', 'calculated-fields-form' ); ?>:</th>
|
291 |
-
<td><input type="text" name="vs_text_min"
|
292 |
</tr>
|
293 |
<?php
|
294 |
// Display all other text fields
|
@@ -299,13 +308,14 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
299 |
print '
|
300 |
<tr valign="top">
|
301 |
<th scope="row">'.$cpcff_text_attr[ 'label' ].':</th>
|
302 |
-
<td><input type="text" name="cpcff_text_array[errors]['.$cpcff_text_index.'][text]"
|
303 |
</tr>
|
304 |
';
|
305 |
}
|
306 |
}
|
307 |
?>
|
308 |
</table>
|
|
|
309 |
</div>
|
310 |
</div>
|
311 |
|
@@ -327,19 +337,19 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
327 |
|
328 |
<br /><br /><br />
|
329 |
|
330 |
-
<h3><?php _e( 'The following settings are available only in the <a href="https://cff.dwbooster.com/">
|
331 |
|
332 |
<h2><?php _e( 'Form Processing and Payment Settings', 'calculated-fields-form' ); ?>:</h2>
|
333 |
<hr />
|
334 |
|
335 |
-
<div id="
|
336 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Payment Settings', 'calculated-fields-form' ); ?></span></h3>
|
337 |
<div class="inside">
|
338 |
|
339 |
<table class="form-table">
|
340 |
<tr valign="top">
|
341 |
<th scope="row"><?php _e( 'Request cost', 'calculated-fields-form' ); ?></th>
|
342 |
-
<td><select name="request_cost" id="request_cost" ></select></td>
|
343 |
</tr>
|
344 |
|
345 |
<tr valign="top">
|
@@ -349,13 +359,13 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
349 |
|
350 |
<tr valign="top">
|
351 |
<th scope="row"><?php _e( 'Base amount', 'calculated-fields-form' ); ?>:</th>
|
352 |
-
<td><input type="text" name="paypal_base_amount" value="<?php echo esc_attr($form_obj->get_option( 'paypal_base_amount', '0.01' ) ); ?>"
|
353 |
</td>
|
354 |
</tr>
|
355 |
|
356 |
<tr valign="top">
|
357 |
<th scope="row"><?php _e( 'Paypal product name', 'calculated-fields-form' ); ?></th>
|
358 |
-
<td><input type="text" name="paypal_product_name"
|
359 |
</tr>
|
360 |
|
361 |
<tr valign="top">
|
@@ -373,16 +383,17 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
373 |
</select></nobr>
|
374 |
|
375 |
<nobr><?php _e( 'Valid until', 'calculated-fields-form' ); ?>: <input type="text" size="10" name="dex_dc_expires" id="dex_dc_expires" value="" /></nobr>
|
376 |
-
<input type="button" name="dex_dc_subccode" id="dex_dc_subccode" value="<?php esc_attr_e( 'Add', 'calculated-fields-form' ); ?>" onclick="alert('This feature ins\'t available in this version');" />
|
377 |
<br />
|
378 |
-
<em><?php _e( 'Note: Expiration date based in server time. Server time now is', 'calculated-fields-form' ); ?> <?php echo date("Y-m-d H:i"); ?></em>
|
379 |
</td>
|
380 |
</tr>
|
381 |
</table>
|
|
|
382 |
</div>
|
383 |
</div>
|
384 |
|
385 |
-
<div id="
|
386 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Paypal Payment Configuration', 'calculated-fields-form' ); ?></span></h3>
|
387 |
<div class="inside">
|
388 |
|
@@ -392,7 +403,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
392 |
<td><select name="enable_paypal">
|
393 |
<option value="0"><?php _e( 'No', 'calculated-fields-form' ); ?></option>
|
394 |
</select>
|
395 |
-
<br /><
|
396 |
<div id="cff_paypal_options_label" style="margin-top:10px;background:#EEF5FB;border: 1px dotted #888888;padding:10px;width:260px;">
|
397 |
<?php _e( 'Label for the "<strong>Pay with PayPal</strong>" option', 'calculated-fields-form' ); ?>:<br />
|
398 |
<input type="text" size="40" style="width:250px;" />
|
@@ -401,7 +412,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
401 |
|
402 |
<tr valign="top">
|
403 |
<th scope="row"><?php _e( 'Paypal Mode', 'calculated-fields-form' ); ?></th>
|
404 |
-
<td><select name="paypal_mode">
|
405 |
<option value="production" <?php if ($form_obj->get_option('paypal_mode',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_MODE) != 'sandbox') echo 'selected'; ?>><?php _e( 'Production - real payments processed', 'calculated-fields-form' ); ?></option>
|
406 |
<option value="sandbox" <?php if ($form_obj->get_option('paypal_mode',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_MODE) == 'sandbox') echo 'selected'; ?>><?php _e( 'SandBox - PayPal testing sandbox area', 'calculated-fields-form' ); ?></option>
|
407 |
</select>
|
@@ -410,12 +421,12 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
410 |
|
411 |
<tr valign="top">
|
412 |
<th scope="row"><?php _e( 'Paypal email', 'calculated-fields-form' ); ?></th>
|
413 |
-
<td><input type="text" name="paypal_email"
|
414 |
</tr>
|
415 |
|
416 |
<tr valign="top">
|
417 |
<th scope="row"><?php _e( 'A $0 amount to pay means', 'calculated-fields-form' ); ?>:</th>
|
418 |
-
<td><select name="paypal_zero_payment">
|
419 |
<option value="0" <?php if ($form_obj->get_option('paypal_zero_payment',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_ZERO_PAYMENT) != '1') echo 'selected'; ?>><?php _e( 'Let the user enter any amount at PayPal (ex: for a donation)', 'calculated-fields-form' ); ?></option>
|
420 |
<option value="1" <?php if ($form_obj->get_option('paypal_zero_payment',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_ZERO_PAYMENT) == '1') echo 'selected'; ?>><?php _e( 'Don\'t require any payment. Form is submitted skiping the PayPal page.', 'calculated-fields-form' ); ?></option>
|
421 |
</select>
|
@@ -429,7 +440,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
429 |
|
430 |
<tr valign="top">
|
431 |
<th scope="row"><?php _e( 'Payment frequency', 'calculated-fields-form' ); ?></th>
|
432 |
-
<td><select name="paypal_recurrent">
|
433 |
<option value="0" <?php if ($form_obj->get_option('paypal_recurrent',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_RECURRENT) == '0' ||
|
434 |
$form_obj->get_option('paypal_recurrent',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_RECURRENT) == ''
|
435 |
) echo 'selected'; ?>><?php _e( 'One time payment (default option, user is billed only once)', 'calculated-fields-form' ); ?></option>
|
@@ -444,7 +455,7 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
444 |
<th scope="row"><?php _e( 'Paypal prompt buyers for shipping address', 'calculated-fields-form' ); ?></th>
|
445 |
<td>
|
446 |
<?php $paypal_address = $form_obj->get_option('paypal_address', 1); ?>
|
447 |
-
<select name="paypal_address">
|
448 |
<option value="1" <?php if($paypal_address == 1) print 'SELECTED'; ?>><?php _e('Do not prompt for an address', 'calculated-fields-form'); ?></option>
|
449 |
<option value="0" <?php if($paypal_address == 0) print 'SELECTED'; ?>><?php _e('Prompt for an address, but do not require one', 'calculated-fields-form'); ?></option>
|
450 |
<option value="2" <?php if($paypal_address == 2) print 'SELECTED'; ?>><?php _e('Prompt for an address and require one', 'calculated-fields-form'); ?></option>
|
@@ -452,25 +463,25 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
452 |
</td>
|
453 |
</tr>
|
454 |
</table>
|
455 |
-
|
456 |
</div>
|
457 |
</div>
|
458 |
|
459 |
-
<div id="
|
460 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Form Processing / Email Settings', 'calculated-fields-form' ); ?></span></h3>
|
461 |
<div class="inside">
|
462 |
<table class="form-table">
|
463 |
<tr valign="top">
|
464 |
<th scope="row"><?php _e( '"From" email', 'calculated-fields-form' ); ?></th>
|
465 |
-
<td><input type="text" name="fp_from_email"
|
466 |
</tr>
|
467 |
<tr valign="top">
|
468 |
<th scope="row"><?php _e( 'Destination emails (comma separated)', 'calculated-fields-form' ); ?></th>
|
469 |
-
<td><input type="text" name="fp_destination_emails"
|
470 |
</tr>
|
471 |
<tr valign="top">
|
472 |
<th scope="row"><?php _e( 'Email subject', 'calculated-fields-form' ); ?></th>
|
473 |
-
<td><input type="text" name="fp_subject"
|
474 |
</tr>
|
475 |
<tr valign="top">
|
476 |
<th scope="row"><?php _e( 'Include additional information?', 'calculated-fields-form' ); ?></th>
|
@@ -479,18 +490,18 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
479 |
<select name="fp_inc_additional_info">
|
480 |
<option value="true"<?php if ($option == 'true') echo ' selected'; ?>><?php _e( 'Yes', 'calculated-fields-form' ); ?></option>
|
481 |
<option value="false"<?php if ($option == 'false') echo ' selected'; ?>><?php _e( 'No', 'calculated-fields-form' ); ?></option>
|
482 |
-
</select> <em><?php _e('If the "No" option is selected the plugin won\'t capture the IP address of users.','calculated-fields-form'); ?></em>
|
483 |
</td>
|
484 |
</tr>
|
485 |
<tr valign="top">
|
486 |
<th scope="row"><?php _e( 'Thank you page (after sending the message)', 'calculated-fields-form' ); ?></th>
|
487 |
-
<td><input type="text" name="fp_return_page"
|
488 |
</tr>
|
489 |
<tr valign="top">
|
490 |
<th scope="row"><?php _e( 'Email format?', 'calculated-fields-form' ); ?></th>
|
491 |
<td>
|
492 |
<?php $option = $form_obj->get_option('fp_emailformat', CP_CALCULATEDFIELDSF_DEFAULT_email_format); ?>
|
493 |
-
<select name="fp_emailformat">
|
494 |
<option value="text"<?php if ($option != 'html') echo ' selected'; ?>><?php _e( 'Plain Text (default)', 'calculated-fields-form' ); ?></option>
|
495 |
<option value="html"<?php if ($option == 'html') echo ' selected'; ?>><?php _e( 'HTML (use html in the textarea below)', 'calculated-fields-form' ); ?></option>
|
496 |
</select>
|
@@ -498,14 +509,15 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
498 |
</tr>
|
499 |
<tr valign="top">
|
500 |
<th scope="row"><?php _e( 'Message', 'calculated-fields-form' ); ?></th>
|
501 |
-
<td><textarea type="text" name="fp_message" rows="6"
|
502 |
</tr>
|
503 |
</table>
|
|
|
504 |
</div>
|
505 |
</div>
|
506 |
|
507 |
|
508 |
-
<div id="
|
509 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Email Copy to User', 'calculated-fields-form' ); ?></span></h3>
|
510 |
<div class="inside">
|
511 |
<table class="form-table">
|
@@ -521,17 +533,17 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
521 |
</tr>
|
522 |
<tr valign="top">
|
523 |
<th scope="row"><?php _e( 'Email field on the form', 'calculated-fields-form' ); ?></th>
|
524 |
-
<td><select id="cu_user_email_field" name="cu_user_email_field" def="<?php echo esc_attr($form_obj->get_option('cu_user_email_field', CP_CALCULATEDFIELDSF_DEFAULT_cu_user_email_field)); ?>"></select></td>
|
525 |
</tr>
|
526 |
<tr valign="top">
|
527 |
<th scope="row"><?php _e( 'Email subject', 'calculated-fields-form' ); ?></th>
|
528 |
-
<td><input type="text" name="cu_subject"
|
529 |
</tr>
|
530 |
<tr valign="top">
|
531 |
<th scope="row"><?php _e( 'Email format?', 'calculated-fields-form' ); ?></th>
|
532 |
<td>
|
533 |
<?php $option = $form_obj->get_option('cu_emailformat', CP_CALCULATEDFIELDSF_DEFAULT_email_format); ?>
|
534 |
-
<select name="cu_emailformat">
|
535 |
<option value="text"<?php if ($option != 'html') echo ' selected'; ?>><?php _e( 'Plain Text (default)', 'calculated-fields-form' ); ?></option>
|
536 |
<option value="html"<?php if ($option == 'html') echo ' selected'; ?>><?php _e( 'HTML (use html in the textarea below)', 'calculated-fields-form' ); ?></option>
|
537 |
</select>
|
@@ -539,14 +551,14 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
539 |
</tr>
|
540 |
<tr valign="top">
|
541 |
<th scope="row"><?php _e( 'Message', 'calculated-fields-form' ); ?></th>
|
542 |
-
<td><textarea type="text" name="cu_message" rows="6"
|
543 |
</tr>
|
544 |
</table>
|
|
|
545 |
</div>
|
546 |
</div>
|
547 |
|
548 |
-
|
549 |
-
<div id="metabox_basic_settings4" class="postbox" >
|
550 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Captcha Verification', 'calculated-fields-form' ); ?></span></h3>
|
551 |
<div class="inside">
|
552 |
<table class="form-table">
|
@@ -609,8 +621,10 @@ $cpcff_texts_array = CPCFF_AUXILIARY::array_replace_recursive(
|
|
609 |
</td>
|
610 |
</tr>
|
611 |
</table>
|
|
|
612 |
</div>
|
613 |
</div>
|
|
|
614 |
<?php
|
615 |
do_action('cpcff_form_settings', CP_CALCULATEDFIELDSF_ID);
|
616 |
?>
|
57 |
print '<br><span style="font-size:14px;font-style:italic;">'.__('Direct form URL', 'calculated-fields-form').': <a href="'.esc_attr($url).'" target="_blank">'.$url.'</a></span>';
|
58 |
}
|
59 |
?></h1>
|
60 |
+
<input type="button" name="backbtn" value="<?php esc_attr_e( 'Back to items list...', 'calculated-fields-form' ); ?>" onclick="document.location='admin.php?page=cp_calculated_fields_form';" class="button-secondary" />
|
61 |
<br /><br />
|
62 |
|
63 |
+
<form method="post" action="" id="cpformconf" name="cpformconf" class="cff_form_builder">
|
64 |
<input type="hidden" name="_cpcff_nonce" value="<?php echo wp_create_nonce( 'cff-form-settings' ); ?>" />
|
65 |
<input name="cp_calculatedfieldsf_post_options" type="hidden" value="1" />
|
66 |
<input name="cp_calculatedfieldsf_id" type="hidden" value="<?php echo CP_CALCULATEDFIELDSF_ID; ?>" />
|
70 |
<h2><?php _e( 'Form Settings', 'calculated-fields-form' ); ?>:</h2>
|
71 |
<hr />
|
72 |
<div><?php _e( '* Different form styles available on the tab Form Settings >> Form Template', 'calculated-fields-form' ); ?></div>
|
73 |
+
<div id="metabox_form_structure" class="postbox" >
|
74 |
<div class="hndle">
|
75 |
<h3 style="padding:5px;display:inline-block;"><span><?php _e( 'Form Builder', 'calculated-fields-form' ); ?></span></h3>
|
76 |
<div class="cff-revisions-container">
|
99 |
echo $cff_structure_error;
|
100 |
}
|
101 |
?></div>
|
102 |
+
<p style="border:1px solid #F0AD4E;background:#FBE6CA;padding:10px;"><span style="font-weight:bold;"><?php _e('If the form is not loading in the public website, go to the settings page of the plugin through the menu option: "Settings/Calculated Fields Form", select the "Classic" option for the attribute: "Script load method", and press the "Update" button.','calculated-fields-form'); ?></span><br /><?php _e( 'If you need also the form to be sent to the server side for processing (for example to deliver emails) then the <a href="https://cff.dwbooster.com/download" target="_blank">Commercial versions</a> of the plugin are required.', 'calculated-fields-form' ); ?></p>
|
103 |
<input type="hidden" name="form_structure" id="form_structure" value="<?php print esc_attr(preg_replace('/"/i', '&quot;', json_encode($form_obj->get_option( 'form_structure', CP_CALCULATEDFIELDSF_DEFAULT_form_structure )))); ?>" />
|
104 |
<input type="hidden" name="templates" id="templates" value="<?php print esc_attr( json_encode( CPCFF_TEMPLATES::load_templates() ) ); ?>" />
|
105 |
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/themes/cupertino/jquery-ui.min.css" type="text/css" rel="stylesheet" property="stylesheet" />
|
118 |
result = window.confirm('<?php print esc_js(__('The action will load the revision selected, the data are not stored will be lose. Do you want continue?', 'calculated-fields-form'));?>');
|
119 |
if(result)
|
120 |
{
|
121 |
+
$calculatedfieldsfQuery('<form method="post" action="" id="cpformconf" name="cpformconf" class="cff_form_builder"><input type="hidden" name="_cpcff_nonce" value="<?php echo wp_create_nonce( 'cff-form-settings' ); ?>" /><input name="cp_calculatedfieldsf_id" type="hidden" value="<?php echo CP_CALCULATEDFIELDSF_ID; ?>" /><input type="hidden" name="cpcff_revision_to_apply" value="'+revision+'"></form>').appendTo('body').submit();
|
122 |
}
|
123 |
}
|
124 |
}
|
150 |
f.fBuild.addItem($calculatedfieldsfQuery(this).attr("id"));
|
151 |
});
|
152 |
|
153 |
+
jQuery(".metabox_disabled_section")
|
154 |
.click( function(){
|
155 |
if(confirm("<?php _e( 'These features aren\'t available in this version. Do you want to open the plugin\'s page to check other versions?', 'calculated-fields-form' ); ?>"))
|
156 |
document.location = 'https://cff.dwbooster.com/';
|
212 |
<input type="button" name="previewbtn" id="previewbtn" class="button-primary" value="<?php esc_attr_e( 'Preview', 'calculated-fields-form' ); ?>" onclick="jQuery.fbuilder.preview( this );" title="Saves the form's structure only, and opens a preview windows" />
|
213 |
| <input type="checkbox" name="cff-revisions-in-preview" <?php if(get_option('CP_CALCULATEDFIELDSF_REVISIONS_IN_PREVIEW', true)) print 'CHECKED'; ?> /><?php _e('Generate revisions in the form preview as well', 'calculated-fields-form'); ?>
|
214 |
</p>
|
215 |
+
<div style="margin-bottom:20px;">
|
216 |
+
<a href="#metabox_define_texts"><?php _e('Texts definition', 'calculated-fields-form'); ?></a> |
|
217 |
+
<a href="#metabox_define_validation_texts"><?php _e('Error texts', 'calculated-fields-form'); ?></a> |
|
218 |
+
<a href="#metabox_payment_settings"><?php _e('General payment settings', 'calculated-fields-form'); ?></a> |
|
219 |
+
<a href="#metabox_paypal_integration"><?php _e('PayPal integration', 'calculated-fields-form'); ?></a> |
|
220 |
+
<a href="#metabox_notification_email"><?php _e('Notification email', 'calculated-fields-form'); ?></a> |
|
221 |
+
<a href="#metabox_email_copy_to_user"><?php _e('Email copy to user', 'calculated-fields-form'); ?></a> |
|
222 |
+
<a href="#metabox_captcha_settings"><?php _e('Captcha settings', 'calculated-fields-form'); ?></a>
|
223 |
+
</div>
|
224 |
+
<div id="metabox_define_texts" class="postbox" >
|
225 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Define Texts', 'calculated-fields-form' ); ?></span></h3>
|
226 |
<div class="inside">
|
227 |
<table class="form-table">
|
228 |
<tr valign="top">
|
229 |
<th scope="row"><?php _e( 'Previous button label (text)', 'calculated-fields-form' ); ?>:</th>
|
230 |
+
<td><input type="text" name="vs_text_previousbtn" class="width75" value="<?php $label = esc_attr($form_obj->get_option('vs_text_previousbtn', 'Previous')); echo ($label==''?'Previous':$label); ?>" /></td>
|
231 |
</tr>
|
232 |
<tr valign="top">
|
233 |
<th scope="row"><?php _e( 'Next button label (text)', 'calculated-fields-form' ); ?>:</th>
|
234 |
+
<td><input type="text" name="vs_text_nextbtn" class="width75" value="<?php $label = esc_attr($form_obj->get_option('vs_text_nextbtn', 'Next')); echo ($label==''?'Next':$label); ?>" /></td>
|
235 |
</tr>
|
236 |
<tr valign="top">
|
237 |
<td colspan="2">
|
247 |
print '
|
248 |
<tr valign="top">
|
249 |
<th scope="row">'.$cpcff_text_attr[ 'label' ].':</th>
|
250 |
+
<td><input type="text" name="cpcff_text_array['.$cpcff_text_index.'][text]" class="width75" value="'. esc_attr( $cpcff_text_attr[ 'text' ] ).'" /></td>
|
251 |
</tr>
|
252 |
';
|
253 |
}
|
254 |
}
|
255 |
?>
|
256 |
</table>
|
257 |
+
<div class="cff-goto-top"><a href="#cpformconf"><?php _e('Up to form structure', 'calculated-fields-form'); ?></a></div>
|
258 |
</div>
|
259 |
</div>
|
260 |
|
261 |
+
<div id="metabox_define_validation_texts" class="postbox" >
|
262 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Validation Settings', 'calculated-fields-form' ); ?></span></h3>
|
263 |
<div class="inside">
|
264 |
<table class="form-table">
|
265 |
<tr valign="top">
|
266 |
<th scope="row"><?php _e( '"is required" text', 'calculated-fields-form' ); ?>:</th>
|
267 |
+
<td><input type="text" name="vs_text_is_required" class="width75" value="<?php echo esc_attr($form_obj->get_option('vs_text_is_required', CP_CALCULATEDFIELDSF_DEFAULT_vs_text_is_required)); ?>" /></td>
|
268 |
</tr>
|
269 |
<tr valign="top">
|
270 |
<th scope="row"><?php _e( '"is email" text', 'calculated-fields-form' ); ?>:</th>
|
271 |
+
<td><input type="text" name="vs_text_is_email" class="width75" value="<?php echo esc_attr($form_obj->get_option('vs_text_is_email', CP_CALCULATEDFIELDSF_DEFAULT_vs_text_is_email)); ?>" /></td>
|
272 |
</tr>
|
273 |
<tr valign="top">
|
274 |
<th scope="row"><?php _e( '"is valid captcha" text', 'calculated-fields-form' ); ?>:</th>
|
275 |
+
<td><input type="text" name="cv_text_enter_valid_captcha" class="width75" value="<?php echo esc_attr($form_obj->get_option('cv_text_enter_valid_captcha', CP_CALCULATEDFIELDSF_DEFAULT_cv_text_enter_valid_captcha)); ?>" /></td>
|
276 |
</tr>
|
277 |
|
278 |
<tr valign="top">
|
279 |
<th scope="row"><?php _e( '"is valid date (mm/dd/yyyy)" text', 'calculated-fields-form' ); ?>:</th>
|
280 |
+
<td><input type="text" name="vs_text_datemmddyyyy" class="width75" value="<?php echo esc_attr($form_obj->get_option('vs_text_datemmddyyyy', CP_CALCULATEDFIELDSF_DEFAULT_vs_text_datemmddyyyy)); ?>" /></td>
|
281 |
</tr>
|
282 |
<tr valign="top">
|
283 |
<th scope="row"><?php _e( '"is valid date (dd/mm/yyyy)" text', 'calculated-fields-form' ); ?>:</th>
|
284 |
+
<td><input type="text" name="vs_text_dateddmmyyyy" class="width75" value="<?php echo esc_attr($form_obj->get_option('vs_text_dateddmmyyyy', CP_CALCULATEDFIELDSF_DEFAULT_vs_text_dateddmmyyyy)); ?>" /></td>
|
285 |
</tr>
|
286 |
<tr valign="top">
|
287 |
<th scope="row"><?php _e( '"is number" text', 'calculated-fields-form' ); ?>:</th>
|
288 |
+
<td><input type="text" name="vs_text_number" class="width75" value="<?php echo esc_attr($form_obj->get_option('vs_text_number', CP_CALCULATEDFIELDSF_DEFAULT_vs_text_number)); ?>" /></td>
|
289 |
</tr>
|
290 |
<tr valign="top">
|
291 |
<th scope="row"><?php _e( '"only digits" text', 'calculated-fields-form' ); ?>:</th>
|
292 |
+
<td><input type="text" name="vs_text_digits" class="width75" value="<?php echo esc_attr($form_obj->get_option('vs_text_digits', CP_CALCULATEDFIELDSF_DEFAULT_vs_text_digits)); ?>" /></td>
|
293 |
</tr>
|
294 |
<tr valign="top">
|
295 |
<th scope="row"><?php _e( '"under maximum" text', 'calculated-fields-form' ); ?>:</th>
|
296 |
+
<td><input type="text" name="vs_text_max" class="width75" value="<?php echo esc_attr($form_obj->get_option('vs_text_max', CP_CALCULATEDFIELDSF_DEFAULT_vs_text_max)); ?>" /></td>
|
297 |
</tr>
|
298 |
<tr valign="top">
|
299 |
<th scope="row"><?php _e( '"over minimum" text', 'calculated-fields-form' ); ?>:</th>
|
300 |
+
<td><input type="text" name="vs_text_min" class="width75" value="<?php echo esc_attr($form_obj->get_option('vs_text_min', CP_CALCULATEDFIELDSF_DEFAULT_vs_text_min)); ?>" /></td>
|
301 |
</tr>
|
302 |
<?php
|
303 |
// Display all other text fields
|
308 |
print '
|
309 |
<tr valign="top">
|
310 |
<th scope="row">'.$cpcff_text_attr[ 'label' ].':</th>
|
311 |
+
<td><input type="text" name="cpcff_text_array[errors]['.$cpcff_text_index.'][text]" class="width75" value="'. esc_attr( $cpcff_text_attr[ 'text' ] ).'" /></td>
|
312 |
</tr>
|
313 |
';
|
314 |
}
|
315 |
}
|
316 |
?>
|
317 |
</table>
|
318 |
+
<div class="cff-goto-top"><a href="#cpformconf"><?php _e('Up to form structure', 'calculated-fields-form'); ?></a></div>
|
319 |
</div>
|
320 |
</div>
|
321 |
|
337 |
|
338 |
<br /><br /><br />
|
339 |
|
340 |
+
<h3><?php _e( 'The following settings are available only in the <a href="https://cff.dwbooster.com/download" target="_blank">Commercial versions</a>', 'calculated-fields-form' ); ?>:</h3>
|
341 |
|
342 |
<h2><?php _e( 'Form Processing and Payment Settings', 'calculated-fields-form' ); ?>:</h2>
|
343 |
<hr />
|
344 |
|
345 |
+
<div id="metabox_payment_settings" class="postbox metabox_disabled_section" style="position:relative;">
|
346 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Payment Settings', 'calculated-fields-form' ); ?></span></h3>
|
347 |
<div class="inside">
|
348 |
|
349 |
<table class="form-table">
|
350 |
<tr valign="top">
|
351 |
<th scope="row"><?php _e( 'Request cost', 'calculated-fields-form' ); ?></th>
|
352 |
+
<td><select name="request_cost" id="request_cost" class="width75"></select></td>
|
353 |
</tr>
|
354 |
|
355 |
<tr valign="top">
|
359 |
|
360 |
<tr valign="top">
|
361 |
<th scope="row"><?php _e( 'Base amount', 'calculated-fields-form' ); ?>:</th>
|
362 |
+
<td><input type="text" name="paypal_base_amount" value="<?php echo esc_attr($form_obj->get_option( 'paypal_base_amount', '0.01' ) ); ?>" /><br><i style="font-size:11px;"><?php _e( 'Minimum amount to charge. If the final price is lesser than this number, the base amount will be applied.', 'calculated-fields-form' ); ?></i>
|
363 |
</td>
|
364 |
</tr>
|
365 |
|
366 |
<tr valign="top">
|
367 |
<th scope="row"><?php _e( 'Paypal product name', 'calculated-fields-form' ); ?></th>
|
368 |
+
<td><input type="text" name="paypal_product_name" class="width75" value="<?php echo esc_attr($form_obj->get_option('paypal_product_name',CP_CALCULATEDFIELDSF_DEFAULT_PRODUCT_NAME)); ?>" /></td>
|
369 |
</tr>
|
370 |
|
371 |
<tr valign="top">
|
383 |
</select></nobr>
|
384 |
|
385 |
<nobr><?php _e( 'Valid until', 'calculated-fields-form' ); ?>: <input type="text" size="10" name="dex_dc_expires" id="dex_dc_expires" value="" /></nobr>
|
386 |
+
<input type="button" name="dex_dc_subccode" id="dex_dc_subccode" value="<?php esc_attr_e( 'Add', 'calculated-fields-form' ); ?>" onclick="alert('This feature ins\'t available in this version');" class="button-secondary" />
|
387 |
<br />
|
388 |
+
<em style="font-size:11px;"><?php _e( 'Note: Expiration date based in server time. Server time now is', 'calculated-fields-form' ); ?> <?php echo date("Y-m-d H:i"); ?></em>
|
389 |
</td>
|
390 |
</tr>
|
391 |
</table>
|
392 |
+
<div class="cff-goto-top"><a href="#cpformconf"><?php _e('Up to form structure', 'calculated-fields-form'); ?></a></div>
|
393 |
</div>
|
394 |
</div>
|
395 |
|
396 |
+
<div id="metabox_paypal_integration" class="postbox metabox_disabled_section">
|
397 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Paypal Payment Configuration', 'calculated-fields-form' ); ?></span></h3>
|
398 |
<div class="inside">
|
399 |
|
403 |
<td><select name="enable_paypal">
|
404 |
<option value="0"><?php _e( 'No', 'calculated-fields-form' ); ?></option>
|
405 |
</select>
|
406 |
+
<br /><i style="font-size:11px;"><?php _e( 'Note: If "Optional" is selected, a radiobutton will appear in the form to select if the payment will be made with PayPal or not.', 'calculated-fields-form' ); ?></i>
|
407 |
<div id="cff_paypal_options_label" style="margin-top:10px;background:#EEF5FB;border: 1px dotted #888888;padding:10px;width:260px;">
|
408 |
<?php _e( 'Label for the "<strong>Pay with PayPal</strong>" option', 'calculated-fields-form' ); ?>:<br />
|
409 |
<input type="text" size="40" style="width:250px;" />
|
412 |
|
413 |
<tr valign="top">
|
414 |
<th scope="row"><?php _e( 'Paypal Mode', 'calculated-fields-form' ); ?></th>
|
415 |
+
<td><select name="paypal_mode" class="width75">
|
416 |
<option value="production" <?php if ($form_obj->get_option('paypal_mode',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_MODE) != 'sandbox') echo 'selected'; ?>><?php _e( 'Production - real payments processed', 'calculated-fields-form' ); ?></option>
|
417 |
<option value="sandbox" <?php if ($form_obj->get_option('paypal_mode',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_MODE) == 'sandbox') echo 'selected'; ?>><?php _e( 'SandBox - PayPal testing sandbox area', 'calculated-fields-form' ); ?></option>
|
418 |
</select>
|
421 |
|
422 |
<tr valign="top">
|
423 |
<th scope="row"><?php _e( 'Paypal email', 'calculated-fields-form' ); ?></th>
|
424 |
+
<td><input type="text" name="paypal_email" class="width75" value="<?php echo esc_attr($form_obj->get_option('paypal_email',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_EMAIL)); ?>" /></td>
|
425 |
</tr>
|
426 |
|
427 |
<tr valign="top">
|
428 |
<th scope="row"><?php _e( 'A $0 amount to pay means', 'calculated-fields-form' ); ?>:</th>
|
429 |
+
<td><select name="paypal_zero_payment" class="width75">
|
430 |
<option value="0" <?php if ($form_obj->get_option('paypal_zero_payment',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_ZERO_PAYMENT) != '1') echo 'selected'; ?>><?php _e( 'Let the user enter any amount at PayPal (ex: for a donation)', 'calculated-fields-form' ); ?></option>
|
431 |
<option value="1" <?php if ($form_obj->get_option('paypal_zero_payment',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_ZERO_PAYMENT) == '1') echo 'selected'; ?>><?php _e( 'Don\'t require any payment. Form is submitted skiping the PayPal page.', 'calculated-fields-form' ); ?></option>
|
432 |
</select>
|
440 |
|
441 |
<tr valign="top">
|
442 |
<th scope="row"><?php _e( 'Payment frequency', 'calculated-fields-form' ); ?></th>
|
443 |
+
<td><select name="paypal_recurrent" class="width75">
|
444 |
<option value="0" <?php if ($form_obj->get_option('paypal_recurrent',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_RECURRENT) == '0' ||
|
445 |
$form_obj->get_option('paypal_recurrent',CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_RECURRENT) == ''
|
446 |
) echo 'selected'; ?>><?php _e( 'One time payment (default option, user is billed only once)', 'calculated-fields-form' ); ?></option>
|
455 |
<th scope="row"><?php _e( 'Paypal prompt buyers for shipping address', 'calculated-fields-form' ); ?></th>
|
456 |
<td>
|
457 |
<?php $paypal_address = $form_obj->get_option('paypal_address', 1); ?>
|
458 |
+
<select name="paypal_address" class="width75">
|
459 |
<option value="1" <?php if($paypal_address == 1) print 'SELECTED'; ?>><?php _e('Do not prompt for an address', 'calculated-fields-form'); ?></option>
|
460 |
<option value="0" <?php if($paypal_address == 0) print 'SELECTED'; ?>><?php _e('Prompt for an address, but do not require one', 'calculated-fields-form'); ?></option>
|
461 |
<option value="2" <?php if($paypal_address == 2) print 'SELECTED'; ?>><?php _e('Prompt for an address and require one', 'calculated-fields-form'); ?></option>
|
463 |
</td>
|
464 |
</tr>
|
465 |
</table>
|
466 |
+
<div class="cff-goto-top"><a href="#cpformconf"><?php _e('Up to form structure', 'calculated-fields-form'); ?></a></div>
|
467 |
</div>
|
468 |
</div>
|
469 |
|
470 |
+
<div id="metabox_notification_email" class="postbox metabox_disabled_section" >
|
471 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Form Processing / Email Settings', 'calculated-fields-form' ); ?></span></h3>
|
472 |
<div class="inside">
|
473 |
<table class="form-table">
|
474 |
<tr valign="top">
|
475 |
<th scope="row"><?php _e( '"From" email', 'calculated-fields-form' ); ?></th>
|
476 |
+
<td><input type="text" name="fp_from_email" class="width75" value="<?php echo esc_attr($form_obj->get_option('fp_from_email', CP_CALCULATEDFIELDSF_DEFAULT_fp_from_email)); ?>" /><br><b><em style="font-size:11px;">Ex: admin@<?php echo str_replace('www.','',$_SERVER["HTTP_HOST"]); ?></em></b><br><em style="font-size:11px;"><?php _e( 'This email is required if the "From fixed email address" option is selected, or it is enabled the email copy to the user.', 'calculated-fields-form' ); ?></em></td>
|
477 |
</tr>
|
478 |
<tr valign="top">
|
479 |
<th scope="row"><?php _e( 'Destination emails (comma separated)', 'calculated-fields-form' ); ?></th>
|
480 |
+
<td><input type="text" name="fp_destination_emails" class="width75" value="<?php echo esc_attr($form_obj->get_option('fp_destination_emails', CP_CALCULATEDFIELDSF_DEFAULT_fp_destination_emails)); ?>" /></td>
|
481 |
</tr>
|
482 |
<tr valign="top">
|
483 |
<th scope="row"><?php _e( 'Email subject', 'calculated-fields-form' ); ?></th>
|
484 |
+
<td><input type="text" name="fp_subject" class="width75" value="<?php echo esc_attr($form_obj->get_option('fp_subject', CP_CALCULATEDFIELDSF_DEFAULT_fp_subject)); ?>" /></td>
|
485 |
</tr>
|
486 |
<tr valign="top">
|
487 |
<th scope="row"><?php _e( 'Include additional information?', 'calculated-fields-form' ); ?></th>
|
490 |
<select name="fp_inc_additional_info">
|
491 |
<option value="true"<?php if ($option == 'true') echo ' selected'; ?>><?php _e( 'Yes', 'calculated-fields-form' ); ?></option>
|
492 |
<option value="false"<?php if ($option == 'false') echo ' selected'; ?>><?php _e( 'No', 'calculated-fields-form' ); ?></option>
|
493 |
+
</select> <em style="font-size:11px;"><?php _e('If the "No" option is selected the plugin won\'t capture the IP address of users.','calculated-fields-form'); ?></em>
|
494 |
</td>
|
495 |
</tr>
|
496 |
<tr valign="top">
|
497 |
<th scope="row"><?php _e( 'Thank you page (after sending the message)', 'calculated-fields-form' ); ?></th>
|
498 |
+
<td><input type="text" name="fp_return_page" class="width75" value="<?php echo esc_attr($form_obj->get_option('fp_return_page', CP_CALCULATEDFIELDSF_DEFAULT_fp_return_page)); ?>" /></td>
|
499 |
</tr>
|
500 |
<tr valign="top">
|
501 |
<th scope="row"><?php _e( 'Email format?', 'calculated-fields-form' ); ?></th>
|
502 |
<td>
|
503 |
<?php $option = $form_obj->get_option('fp_emailformat', CP_CALCULATEDFIELDSF_DEFAULT_email_format); ?>
|
504 |
+
<select name="fp_emailformat" class="width75">
|
505 |
<option value="text"<?php if ($option != 'html') echo ' selected'; ?>><?php _e( 'Plain Text (default)', 'calculated-fields-form' ); ?></option>
|
506 |
<option value="html"<?php if ($option == 'html') echo ' selected'; ?>><?php _e( 'HTML (use html in the textarea below)', 'calculated-fields-form' ); ?></option>
|
507 |
</select>
|
509 |
</tr>
|
510 |
<tr valign="top">
|
511 |
<th scope="row"><?php _e( 'Message', 'calculated-fields-form' ); ?></th>
|
512 |
+
<td><textarea type="text" name="fp_message" rows="6" class="width75"><?php echo $form_obj->get_option('fp_message', CP_CALCULATEDFIELDSF_DEFAULT_fp_message); ?></textarea></td>
|
513 |
</tr>
|
514 |
</table>
|
515 |
+
<div class="cff-goto-top"><a href="#cpformconf"><?php _e('Up to form structure', 'calculated-fields-form'); ?></a></div>
|
516 |
</div>
|
517 |
</div>
|
518 |
|
519 |
|
520 |
+
<div id="metabox_email_copy_to_user" class="postbox metabox_disabled_section" >
|
521 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Email Copy to User', 'calculated-fields-form' ); ?></span></h3>
|
522 |
<div class="inside">
|
523 |
<table class="form-table">
|
533 |
</tr>
|
534 |
<tr valign="top">
|
535 |
<th scope="row"><?php _e( 'Email field on the form', 'calculated-fields-form' ); ?></th>
|
536 |
+
<td><select id="cu_user_email_field" name="cu_user_email_field" def="<?php echo esc_attr($form_obj->get_option('cu_user_email_field', CP_CALCULATEDFIELDSF_DEFAULT_cu_user_email_field)); ?>" class="width75"></select></td>
|
537 |
</tr>
|
538 |
<tr valign="top">
|
539 |
<th scope="row"><?php _e( 'Email subject', 'calculated-fields-form' ); ?></th>
|
540 |
+
<td><input type="text" name="cu_subject" class="width75" value="<?php echo esc_attr($form_obj->get_option('cu_subject', CP_CALCULATEDFIELDSF_DEFAULT_cu_subject)); ?>" /></td>
|
541 |
</tr>
|
542 |
<tr valign="top">
|
543 |
<th scope="row"><?php _e( 'Email format?', 'calculated-fields-form' ); ?></th>
|
544 |
<td>
|
545 |
<?php $option = $form_obj->get_option('cu_emailformat', CP_CALCULATEDFIELDSF_DEFAULT_email_format); ?>
|
546 |
+
<select name="cu_emailformat" class="width75">
|
547 |
<option value="text"<?php if ($option != 'html') echo ' selected'; ?>><?php _e( 'Plain Text (default)', 'calculated-fields-form' ); ?></option>
|
548 |
<option value="html"<?php if ($option == 'html') echo ' selected'; ?>><?php _e( 'HTML (use html in the textarea below)', 'calculated-fields-form' ); ?></option>
|
549 |
</select>
|
551 |
</tr>
|
552 |
<tr valign="top">
|
553 |
<th scope="row"><?php _e( 'Message', 'calculated-fields-form' ); ?></th>
|
554 |
+
<td><textarea type="text" name="cu_message" rows="6" class="width75"><?php echo $form_obj->get_option('cu_message', CP_CALCULATEDFIELDSF_DEFAULT_cu_message); ?></textarea></td>
|
555 |
</tr>
|
556 |
</table>
|
557 |
+
<div class="cff-goto-top"><a href="#cpformconf"><?php _e('Up to form structure', 'calculated-fields-form'); ?></a></div>
|
558 |
</div>
|
559 |
</div>
|
560 |
|
561 |
+
<div id="metabox_captcha_settings" class="postbox metabox_disabled_section" >
|
|
|
562 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Captcha Verification', 'calculated-fields-form' ); ?></span></h3>
|
563 |
<div class="inside">
|
564 |
<table class="form-table">
|
621 |
</td>
|
622 |
</tr>
|
623 |
</table>
|
624 |
+
<div class="cff-goto-top"><a href="#cpformconf"><?php _e('Up to form structure', 'calculated-fields-form'); ?></a></div>
|
625 |
</div>
|
626 |
</div>
|
627 |
+
<a id="metabox_addons_section"></a>
|
628 |
<?php
|
629 |
do_action('cpcff_form_settings', CP_CALCULATEDFIELDSF_ID);
|
630 |
?>
|
inc/cpcff_admin_int_list.inc.php
CHANGED
@@ -186,11 +186,11 @@ if ($message) echo "<div id='setting-error-settings_updated' class='updated sett
|
|
186 |
<td nowrap><input type="text" name="calname_<?php echo $item->id; ?>" id="calname_<?php echo $item->id; ?>" value="<?php echo esc_attr($item->form_name); ?>" /></td>
|
187 |
|
188 |
<td nowrap>
|
189 |
-
<input type="button" name="calupdate_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Update', 'calculated-fields-form' ); ?>" onclick="cp_updateItem(<?php echo $item->id; ?>);" />
|
190 |
-
<input type="button" name="calmanage_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Settings', 'calculated-fields-form' ); ?>" onclick="cp_manageSettings(<?php echo $item->id; ?>);" />
|
191 |
-
<input type="button" name="calmanage_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Messages', 'calculated-fields-form' ); ?>" onclick="cp_viewMessages(<?php echo $item->id; ?>);" />
|
192 |
-
<input type="button" name="calclone_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Clone', 'calculated-fields-form' ); ?>" onclick="cp_cloneItem(<?php echo $item->id; ?>);" />
|
193 |
-
<input type="button" name="caldelete_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Delete', 'calculated-fields-form' ); ?>" onclick="cp_deleteItem(<?php echo $item->id; ?>);" />
|
194 |
</td>
|
195 |
<td nowrap>[CP_CALCULATED_FIELDS id="<?php echo $item->id; ?>"]</td>
|
196 |
</tr>
|
@@ -208,7 +208,7 @@ if ($message) echo "<div id='setting-error-settings_updated' class='updated sett
|
|
208 |
|
209 |
<form name="additem">
|
210 |
<?php _e( 'Item Name', 'calculated-fields-form' ); ?>:<br />
|
211 |
-
<input type="text" name="cp_itemname" id="cp_itemname" value="" onkeyup="cp_addItem_keyup( event );" /> <input type="button" onclick="cp_addItem();" name="gobtn" value="<?php esc_attr_e( 'Add', 'calculated-fields-form' ); ?>" />
|
212 |
<br /><br />
|
213 |
</form>
|
214 |
</div>
|
@@ -216,7 +216,7 @@ if ($message) echo "<div id='setting-error-settings_updated' class='updated sett
|
|
216 |
<div style="border:1px solid #F0AD4E;background:#FBE6CA;padding:10px;margin:10px 0;font-size:1.3em;">
|
217 |
<div><?php _e('For additional resources visit the plugin\'s', 'calculated-fields-form')?> <a href="https://cff-bundles.dwbooster.com" target="_blank" style="font-weight:bold;"><?php _e('Marketplace', 'calculated-fields-form'); ?></a></div>
|
218 |
<div class="cff-bundles-plugin"></div>
|
219 |
-
<script src="https://cff-bundles.dwbooster.com/plugins/plugins.js"></script>
|
220 |
</div>
|
221 |
<div id="metabox_basic_settings" class="postbox" >
|
222 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Troubleshoot Area & General Settings', 'calculated-fields-form' ); ?></span></h3>
|
@@ -232,14 +232,14 @@ if ($message) echo "<div id='setting-error-settings_updated' class='updated sett
|
|
232 |
<div style="border:1px solid #DADADA; padding:10px;">
|
233 |
<p><?php _e( '<strong>Important!</strong>: Use this area <strong>only</strong> if you are experiencing conflicts with third party plugins, with the theme scripts or with the character encoding.', 'calculated-fields-form' ); ?></p>
|
234 |
<?php _e( 'Script load method', 'calculated-fields-form' ); ?>:<br />
|
235 |
-
|
236 |
<option value="0" <?php if (get_option('CP_CFF_LOAD_SCRIPTS',"0") == "1") echo 'selected'; ?>><?php _e( 'Classic (Recommended)', 'calculated-fields-form' ); ?></option>
|
237 |
<option value="1" <?php if (get_option('CP_CFF_LOAD_SCRIPTS',"0") != "1") echo 'selected'; ?>><?php _e( 'Direct', 'calculated-fields-form' ); ?></option>
|
238 |
</select><br />
|
239 |
<em><?php _e( '* Change the script load method if the form doesn\'t appear in the public website.', 'calculated-fields-form' ); ?></em>
|
240 |
<br /><br />
|
241 |
<?php _e( 'Character encoding', 'calculated-fields-form' ); ?>:<br />
|
242 |
-
|
243 |
<option value=""><?php _e( 'Keep current charset (Recommended)', 'calculated-fields-form' ); ?></option>
|
244 |
<option value="utf8_general_ci">UTF-8 (<?php _e( 'try this first', 'calculated-fields-form' ); ?>)</option>
|
245 |
<option value="utf8mb4_general_ci">UTF-8mb4 (<?php _e( 'Only from MySQL 5.5', 'calculated-fields-form' ); ?>)</option>
|
@@ -251,15 +251,16 @@ if ($message) echo "<div id='setting-error-settings_updated' class='updated sett
|
|
251 |
<input type="checkbox" id="ccoptimizationplugin" name="ccoptimizationplugin" value="1" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN', CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN ) ) ? 'CHECKED' : ''; ?> /><em><?php _e('* Tick the checkbox if there is an optimization plugin active on the website, and the forms are not visible.', 'calculated-fields-form'); ?></em>
|
252 |
</div>
|
253 |
<br />
|
254 |
-
|
255 |
<br /><br />
|
256 |
-
|
257 |
<br /><br />
|
258 |
-
|
259 |
<br /><br />
|
260 |
-
|
|
|
261 |
<br /><br />
|
262 |
-
<input type="button" onclick="cp_updateConfig();" name="gobtn" value="<?php esc_attr_e( 'UPDATE', 'calculated-fields-form' ); ?>" />
|
263 |
<br />
|
264 |
</form>
|
265 |
|
186 |
<td nowrap><input type="text" name="calname_<?php echo $item->id; ?>" id="calname_<?php echo $item->id; ?>" value="<?php echo esc_attr($item->form_name); ?>" /></td>
|
187 |
|
188 |
<td nowrap>
|
189 |
+
<input type="button" name="calupdate_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Update', 'calculated-fields-form' ); ?>" onclick="cp_updateItem(<?php echo $item->id; ?>);" class="button-secondary" />
|
190 |
+
<input type="button" name="calmanage_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Settings', 'calculated-fields-form' ); ?>" onclick="cp_manageSettings(<?php echo $item->id; ?>);" class="button-primary" />
|
191 |
+
<input type="button" name="calmanage_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Messages', 'calculated-fields-form' ); ?>" onclick="cp_viewMessages(<?php echo $item->id; ?>);" class="button-secondary" />
|
192 |
+
<input type="button" name="calclone_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Clone', 'calculated-fields-form' ); ?>" onclick="cp_cloneItem(<?php echo $item->id; ?>);" class="button-secondary" />
|
193 |
+
<input type="button" name="caldelete_<?php echo $item->id; ?>" value="<?php esc_attr_e( 'Delete', 'calculated-fields-form' ); ?>" onclick="cp_deleteItem(<?php echo $item->id; ?>);" class="button-secondary" />
|
194 |
</td>
|
195 |
<td nowrap>[CP_CALCULATED_FIELDS id="<?php echo $item->id; ?>"]</td>
|
196 |
</tr>
|
208 |
|
209 |
<form name="additem">
|
210 |
<?php _e( 'Item Name', 'calculated-fields-form' ); ?>:<br />
|
211 |
+
<input type="text" name="cp_itemname" id="cp_itemname" value="" onkeyup="cp_addItem_keyup( event );" class="width50" /> <input type="button" onclick="cp_addItem();" name="gobtn" value="<?php esc_attr_e( 'Add', 'calculated-fields-form' ); ?>" class="button-secondary" />
|
212 |
<br /><br />
|
213 |
</form>
|
214 |
</div>
|
216 |
<div style="border:1px solid #F0AD4E;background:#FBE6CA;padding:10px;margin:10px 0;font-size:1.3em;">
|
217 |
<div><?php _e('For additional resources visit the plugin\'s', 'calculated-fields-form')?> <a href="https://cff-bundles.dwbooster.com" target="_blank" style="font-weight:bold;"><?php _e('Marketplace', 'calculated-fields-form'); ?></a></div>
|
218 |
<div class="cff-bundles-plugin"></div>
|
219 |
+
<script src="https://cff-bundles.dwbooster.com/plugins/plugins.js?v=<?php print CP_CALCULATEDFIELDSF_VERSION; ?>"></script>
|
220 |
</div>
|
221 |
<div id="metabox_basic_settings" class="postbox" >
|
222 |
<h3 class='hndle' style="padding:5px;"><span><?php _e( 'Troubleshoot Area & General Settings', 'calculated-fields-form' ); ?></span></h3>
|
232 |
<div style="border:1px solid #DADADA; padding:10px;">
|
233 |
<p><?php _e( '<strong>Important!</strong>: Use this area <strong>only</strong> if you are experiencing conflicts with third party plugins, with the theme scripts or with the character encoding.', 'calculated-fields-form' ); ?></p>
|
234 |
<?php _e( 'Script load method', 'calculated-fields-form' ); ?>:<br />
|
235 |
+
<select id="ccscriptload" name="ccscriptload" class="width50">
|
236 |
<option value="0" <?php if (get_option('CP_CFF_LOAD_SCRIPTS',"0") == "1") echo 'selected'; ?>><?php _e( 'Classic (Recommended)', 'calculated-fields-form' ); ?></option>
|
237 |
<option value="1" <?php if (get_option('CP_CFF_LOAD_SCRIPTS',"0") != "1") echo 'selected'; ?>><?php _e( 'Direct', 'calculated-fields-form' ); ?></option>
|
238 |
</select><br />
|
239 |
<em><?php _e( '* Change the script load method if the form doesn\'t appear in the public website.', 'calculated-fields-form' ); ?></em>
|
240 |
<br /><br />
|
241 |
<?php _e( 'Character encoding', 'calculated-fields-form' ); ?>:<br />
|
242 |
+
<select id="cccharsets" name="cccharsets" class="width50">
|
243 |
<option value=""><?php _e( 'Keep current charset (Recommended)', 'calculated-fields-form' ); ?></option>
|
244 |
<option value="utf8_general_ci">UTF-8 (<?php _e( 'try this first', 'calculated-fields-form' ); ?>)</option>
|
245 |
<option value="utf8mb4_general_ci">UTF-8mb4 (<?php _e( 'Only from MySQL 5.5', 'calculated-fields-form' ); ?>)</option>
|
251 |
<input type="checkbox" id="ccoptimizationplugin" name="ccoptimizationplugin" value="1" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN', CP_CALCULATEDFIELDSF_OPTIMIZATION_PLUGIN ) ) ? 'CHECKED' : ''; ?> /><em><?php _e('* Tick the checkbox if there is an optimization plugin active on the website, and the forms are not visible.', 'calculated-fields-form'); ?></em>
|
252 |
</div>
|
253 |
<br />
|
254 |
+
<input type="checkbox" name="ccjscache" id="ccjscache" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_USE_CACHE', CP_CALCULATEDFIELDSF_USE_CACHE ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Activate Javascript Cache', 'calculated-fields-form' ); ?>
|
255 |
<br /><br />
|
256 |
+
<input type="checkbox" name="ccdirectform" id="ccdirectform" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_DIRECT_FORM_ACCESS', CP_CALCULATEDFIELDSF_DIRECT_FORM_ACCESS ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Allows to access the forms directly', 'calculated-fields-form' ); ?>
|
257 |
<br /><br />
|
258 |
+
<input type="checkbox" name="ccampform" id="ccampform" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_AMP', CP_CALCULATEDFIELDSF_AMP ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Allows to access the forms from amp pages', 'calculated-fields-form' ); ?>
|
259 |
<br /><br />
|
260 |
+
<input type="checkbox" name="ccexcludecrawler" id="ccexcludecrawler" <?php echo ( get_option( 'CP_CALCULATEDFIELDSF_EXCLUDE_CRAWLERS', false ) ) ? 'CHECKED' : ''; ?> /> <?php _e( 'Do not load the forms with crawlers', 'calculated-fields-form' ); ?>
|
261 |
+
<br /><i><?php _e( '* The forms are not loaded when website is being indexed by searchers.', 'calculated-fields-form' ); ?></i>
|
262 |
<br /><br />
|
263 |
+
<input type="button" onclick="cp_updateConfig();" name="gobtn" value="<?php esc_attr_e( 'UPDATE', 'calculated-fields-form' ); ?>" class="button-secondary" />
|
264 |
<br />
|
265 |
</form>
|
266 |
|
inc/cpcff_amp.inc.php
CHANGED
@@ -80,10 +80,12 @@ if(!class_exists('CPCFF_AMP'))
|
|
80 |
if(!empty($_GET['cff-editor-preview']))
|
81 |
{
|
82 |
$message .= '<script type="text/javascript">
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
|
|
|
|
87 |
</script>';
|
88 |
}
|
89 |
print '</head>'.
|
80 |
if(!empty($_GET['cff-editor-preview']))
|
81 |
{
|
82 |
$message .= '<script type="text/javascript">
|
83 |
+
window.addEventListener("load",
|
84 |
+
function() {
|
85 |
+
var frameEl = window.frameElement;
|
86 |
+
if(frameEl && typeof fbuilderjQuery != "undefined")
|
87 |
+
frameEl.height = fbuilderjQuery("form").outerHeight(true) + 25;
|
88 |
+
}, false);
|
89 |
</script>';
|
90 |
}
|
91 |
print '</head>'.
|
inc/cpcff_auxiliary.inc.php
CHANGED
@@ -100,6 +100,14 @@ if(!class_exists('CPCFF_AUXILIARY'))
|
|
100 |
return rtrim(self::$_wp_url, '/');
|
101 |
} // End wp_url
|
102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
/**
|
104 |
* Returns the URL to the current post url.
|
105 |
*
|
100 |
return rtrim(self::$_wp_url, '/');
|
101 |
} // End wp_url
|
102 |
|
103 |
+
/**
|
104 |
+
* Returns the form editor.
|
105 |
+
*/
|
106 |
+
public static function editor_url()
|
107 |
+
{
|
108 |
+
return self::wp_url().'/admin.php?page=cp_calculated_fields_form&_cpcff_nonce='.wp_create_nonce('cff-form-settings').'&cal=';
|
109 |
+
} // End editor_url
|
110 |
+
|
111 |
/**
|
112 |
* Returns the URL to the current post url.
|
113 |
*
|
inc/cpcff_install_uninstall.inc.php
CHANGED
@@ -255,7 +255,7 @@ if(!class_exists('CPCFF_INSTALLER'))
|
|
255 |
'paypal_recurrent_setup' => '',
|
256 |
'paypal_recurrent_setup_days' => '15',
|
257 |
'paypal_recurrent_times' => '0',
|
258 |
-
'paypal_recurrent_times_field' => '
|
259 |
'paypal_identify_prices' => CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_IDENTIFY_PRICES,
|
260 |
'paypal_zero_payment' => CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_ZERO_PAYMENT,
|
261 |
|
255 |
'paypal_recurrent_setup' => '',
|
256 |
'paypal_recurrent_setup_days' => '15',
|
257 |
'paypal_recurrent_times' => '0',
|
258 |
+
'paypal_recurrent_times_field' => '',
|
259 |
'paypal_identify_prices' => CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_IDENTIFY_PRICES,
|
260 |
'paypal_zero_payment' => CP_CALCULATEDFIELDSF_DEFAULT_PAYPAL_ZERO_PAYMENT,
|
261 |
|
inc/cpcff_main.inc.php
CHANGED
@@ -184,7 +184,7 @@ if(!class_exists('CPCFF_MAIN'))
|
|
184 |
add_action( 'admin_enqueue_scripts', array( $this, 'admin_resources' ), 1 );
|
185 |
}
|
186 |
$this->_define_shortcodes();
|
187 |
-
add_action('wp_enqueue_scripts', array($this, '
|
188 |
} // End init
|
189 |
|
190 |
/**
|
@@ -415,13 +415,13 @@ if(!class_exists('CPCFF_MAIN'))
|
|
415 |
}
|
416 |
} // End form_preview
|
417 |
|
418 |
-
public function
|
419 |
{
|
420 |
global $post;
|
421 |
|
422 |
if(!empty($post) && has_shortcode($post->post_content, 'CP_CALCULATED_FIELDS'))
|
423 |
-
wp_enqueue_style( '
|
424 |
-
} // End
|
425 |
|
426 |
/**
|
427 |
* Returns the public version of the form wih its resources.
|
184 |
add_action( 'admin_enqueue_scripts', array( $this, 'admin_resources' ), 1 );
|
185 |
}
|
186 |
$this->_define_shortcodes();
|
187 |
+
add_action('wp_enqueue_scripts', array($this, 'enqueue_loader') );
|
188 |
} // End init
|
189 |
|
190 |
/**
|
415 |
}
|
416 |
} // End form_preview
|
417 |
|
418 |
+
public function enqueue_loader()
|
419 |
{
|
420 |
global $post;
|
421 |
|
422 |
if(!empty($post) && has_shortcode($post->post_content, 'CP_CALCULATED_FIELDS'))
|
423 |
+
wp_enqueue_style( 'cpcff_loader', plugins_url('/css/loader.css', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH), array(), CP_CALCULATEDFIELDSF_VERSION );
|
424 |
+
} // End enqueue_loader
|
425 |
|
426 |
/**
|
427 |
* Returns the public version of the form wih its resources.
|
inc/cpcff_page_builders.inc.php
CHANGED
@@ -90,11 +90,14 @@ if(!class_exists('CPCFF_PAGE_BUILDERS'))
|
|
90 |
$url .= ((strpos($url, '?') === false) ? '?' : '&').'cff-editor-preview=1&cff-amp-redirected=1&cff-amp-form=';
|
91 |
$config = array(
|
92 |
'url' => $url,
|
|
|
|
|
93 |
'forms' => array(),
|
94 |
'labels' => array(
|
95 |
'required_form' => __('Select a form', 'calculated-fields-form'),
|
96 |
'forms' => __('Forms', 'calculated-fields-form'),
|
97 |
-
'attributes' => __('Additional attributes', 'calculated-fields-form')
|
|
|
98 |
)
|
99 |
);
|
100 |
|
@@ -137,7 +140,20 @@ if(!class_exists('CPCFF_PAGE_BUILDERS'))
|
|
137 |
public function elementor_editor()
|
138 |
{
|
139 |
if(is_admin())
|
|
|
|
|
140 |
wp_enqueue_style('cp_calculatedfieldsf_elementor_editor_css', plugins_url('/pagebuilders/elementor/assets/elementor.css', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
require_once CP_CALCULATEDFIELDSF_BASE_PATH.'/pagebuilders/elementor/elementor.pb.php';
|
142 |
} // End elementor_editor
|
143 |
|
90 |
$url .= ((strpos($url, '?') === false) ? '?' : '&').'cff-editor-preview=1&cff-amp-redirected=1&cff-amp-form=';
|
91 |
$config = array(
|
92 |
'url' => $url,
|
93 |
+
'is_admin' => current_user_can( 'manage_options' ),
|
94 |
+
'editor' => CPCFF_AUXILIARY::editor_url(),
|
95 |
'forms' => array(),
|
96 |
'labels' => array(
|
97 |
'required_form' => __('Select a form', 'calculated-fields-form'),
|
98 |
'forms' => __('Forms', 'calculated-fields-form'),
|
99 |
+
'attributes' => __('Additional attributes', 'calculated-fields-form'),
|
100 |
+
'edit_form' => __('Edit form', 'calculated-fields-form')
|
101 |
)
|
102 |
);
|
103 |
|
140 |
public function elementor_editor()
|
141 |
{
|
142 |
if(is_admin())
|
143 |
+
{
|
144 |
+
wp_enqueue_script('cp_calculatedfieldsf_elementor_editor_js', plugins_url('/pagebuilders/elementor/assets/elementor.js', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH));
|
145 |
wp_enqueue_style('cp_calculatedfieldsf_elementor_editor_css', plugins_url('/pagebuilders/elementor/assets/elementor.css', CP_CALCULATEDFIELDSF_MAIN_FILE_PATH));
|
146 |
+
|
147 |
+
if ( current_user_can( 'manage_options' ) ) {
|
148 |
+
wp_localize_script(
|
149 |
+
'cp_calculatedfieldsf_elementor_editor_js',
|
150 |
+
'cp_calculatedfieldsf_elementor',
|
151 |
+
array(
|
152 |
+
'url' => CPCFF_AUXILIARY::editor_url()
|
153 |
+
)
|
154 |
+
);
|
155 |
+
}
|
156 |
+
}
|
157 |
require_once CP_CALCULATEDFIELDSF_BASE_PATH.'/pagebuilders/elementor/elementor.pb.php';
|
158 |
} // End elementor_editor
|
159 |
|
inc/cpcff_session.inc.php
CHANGED
@@ -30,7 +30,7 @@ if( !class_exists( 'CP_SESSION' ) )
|
|
30 |
private function __construct()
|
31 |
{
|
32 |
if(!is_admin()) return;
|
33 |
-
if(session_id() == "" ) @session_start();
|
34 |
|
35 |
if( isset( $_SESSION[CP_COOKIE_NAME] ) || isset( $_COOKIE[CP_COOKIE_NAME] ) )
|
36 |
{
|
30 |
private function __construct()
|
31 |
{
|
32 |
if(!is_admin()) return;
|
33 |
+
if(session_id() == "" && !headers_sent()) @session_start();
|
34 |
|
35 |
if( isset( $_SESSION[CP_COOKIE_NAME] ) || isset( $_COOKIE[CP_COOKIE_NAME] ) )
|
36 |
{
|
js/fbuilder-pro-admin.jquery.js
CHANGED
@@ -68,7 +68,7 @@
|
|
68 |
$( '.form-builder-error-messages' ).html( '<div class="error-text">' + str + '</div>' );
|
69 |
};
|
70 |
|
71 |
-
|
72 |
$.fn.fbuilder = function(){
|
73 |
var typeList = $.fbuilder.typeList,
|
74 |
categoryList = $.fbuilder.categoryList;
|
@@ -583,7 +583,7 @@
|
|
583 |
template += '<option value="'+$.fbuilder.showSettings.formTemplateDic[i].prefix+'" ' + selected + '>'+$.fbuilder.showSettings.formTemplateDic[i].title+'</option>';
|
584 |
}
|
585 |
|
586 |
-
str += '<div><label>Form Name</label><input class="large" name="fTitle" id="fTitle" value="'+$.fbuilder.htmlEncode(this.title)+'" /></div><div><label>Description</label><textarea class="large" name="fDescription" id="fDescription">'+this.description+'</textarea></div><div><label>Label Placement</label><select name="fLayout" id="fLayout" class="large">'+layout+'</select></div><div><label><input type="checkbox" name="fLoadingAnimation" id="fLoadingAnimation" '+( ( this.loading_animation ) ? 'CHECKED' : '' )+' /> Display loading form animation</label></div><div><label><input type="checkbox" name="fAutocomplete" id="fAutocomplete" '+( ( this.autocomplete ) ? 'CHECKED' : '' )+' /> Enable autocompletion</label></div><div><label><input type="checkbox" name="fPersistence" id="fPersistence" '+( ( this.persistence ) ? 'CHECKED' : '' )+' /> Enable the browser\'s persistence (the data are stored locally on browser)</label></div>';
|
587 |
|
588 |
if(typeof $.fbuilder.controls[ 'fCalculated' ] != 'undefined')
|
589 |
{
|
@@ -839,7 +839,7 @@
|
|
839 |
},
|
840 |
showName: function( v )
|
841 |
{
|
842 |
-
return '<div><label>Field name, tag for the message:</label><input readonly="readonly" class="large" name="sNametag" id="sNametag" value="<%'+v+'%>" />'+
|
843 |
'<input style="display:none" readonly="readonly" class="large" name="sName" id="sName" value="'+v+'" /></div>';
|
844 |
},
|
845 |
showPredefined: function(v,c)
|
@@ -850,6 +850,17 @@
|
|
850 |
{
|
851 |
return '<div><label>Equal to [<a class="helpfbuilder" text="Use this field to create password confirmation field or email confirmation fields.\n\nSpecify this setting ONLY into the confirmation field, not in the original field.">help?</a>]</label><select class="equalTo" name="sEqualTo" id="sEqualTo" dvalue="'+v+'" dname="'+name+'"></select></div>';
|
852 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
853 |
showRequired: function(v)
|
854 |
{
|
855 |
return '<label><input type="checkbox" name="sRequired" id="sRequired" '+((v)?"checked":"")+'>Required</label>';
|
@@ -943,6 +954,12 @@
|
|
943 |
$.fbuilder.reloadItems( {'field': e.data.obj} );
|
944 |
});
|
945 |
|
|
|
|
|
|
|
|
|
|
|
|
|
946 |
$("#sPredefined").bind("keyup", {obj: this}, function(e)
|
947 |
{
|
948 |
e.data.obj.predefined = $(this).val();
|
@@ -1036,6 +1053,7 @@
|
|
1036 |
showRequired:function()
|
1037 |
{
|
1038 |
var result = '';
|
|
|
1039 |
if(typeof this.required != 'undefined') result += $.fbuilder.showSettings.showRequired(this.required);
|
1040 |
if(typeof this.exclude != 'undefined') result += $.fbuilder.showSettings.showExclude(this.exclude);
|
1041 |
if(typeof this.readonly != 'undefined') result += $.fbuilder.showSettings.showReadonly(this.readonly);
|
68 |
$( '.form-builder-error-messages' ).html( '<div class="error-text">' + str + '</div>' );
|
69 |
};
|
70 |
|
71 |
+
// fbuilder plugin
|
72 |
$.fn.fbuilder = function(){
|
73 |
var typeList = $.fbuilder.typeList,
|
74 |
categoryList = $.fbuilder.categoryList;
|
583 |
template += '<option value="'+$.fbuilder.showSettings.formTemplateDic[i].prefix+'" ' + selected + '>'+$.fbuilder.showSettings.formTemplateDic[i].title+'</option>';
|
584 |
}
|
585 |
|
586 |
+
str += '<div><label>Form Name</label><input type="text" class="large" name="fTitle" id="fTitle" value="'+$.fbuilder.htmlEncode(this.title)+'" /></div><div><label>Description</label><textarea class="large" name="fDescription" id="fDescription">'+this.description+'</textarea></div><div><label>Label Placement</label><select name="fLayout" id="fLayout" class="large">'+layout+'</select></div><div><label><input type="checkbox" name="fLoadingAnimation" id="fLoadingAnimation" '+( ( this.loading_animation ) ? 'CHECKED' : '' )+' /> Display loading form animation</label></div><div><label><input type="checkbox" name="fAutocomplete" id="fAutocomplete" '+( ( this.autocomplete ) ? 'CHECKED' : '' )+' /> Enable autocompletion</label></div><div><label><input type="checkbox" name="fPersistence" id="fPersistence" '+( ( this.persistence ) ? 'CHECKED' : '' )+' /> Enable the browser\'s persistence (the data are stored locally on browser)</label></div>';
|
587 |
|
588 |
if(typeof $.fbuilder.controls[ 'fCalculated' ] != 'undefined')
|
589 |
{
|
839 |
},
|
840 |
showName: function( v )
|
841 |
{
|
842 |
+
return '<div><label>Field name, tag for the message:</label><input type="text" readonly="readonly" class="large" name="sNametag" id="sNametag" value="<%'+v+'%>" />'+
|
843 |
'<input style="display:none" readonly="readonly" class="large" name="sName" id="sName" value="'+v+'" /></div>';
|
844 |
},
|
845 |
showPredefined: function(v,c)
|
850 |
{
|
851 |
return '<div><label>Equal to [<a class="helpfbuilder" text="Use this field to create password confirmation field or email confirmation fields.\n\nSpecify this setting ONLY into the confirmation field, not in the original field.">help?</a>]</label><select class="equalTo" name="sEqualTo" id="sEqualTo" dvalue="'+v+'" dname="'+name+'"></select></div>';
|
852 |
},
|
853 |
+
showAutocomplete: function(v)
|
854 |
+
{
|
855 |
+
var options = '', values = ['off', 'on', 'name', 'honorific-prefix', 'given-name', 'additional-name', 'family-name', 'honorific-suffix', 'nickname', 'email', 'username', 'new-password', 'current-password', 'one-time-code', 'organization-title', 'organization', 'street-address', 'address-line1', 'address-line2', 'address-line3', 'address-level4', 'address-level3', 'address-level2', 'address-level1', 'country', 'country-name', 'postal-code', 'cc-name', 'cc-given-name', 'cc-additional-name', 'cc-family-name', 'cc-number', 'cc-exp', 'cc-exp-month', 'cc-exp-year', 'cc-csc', 'cc-type', 'transaction-currency', 'transaction-amount', 'language', 'bday', 'bday-day', 'bday-month', 'bday-year', 'sex', 'tel', 'tel-country-code', 'tel-national', 'tel-area-code', 'tel-local', 'tel-extension', 'impp', 'url', 'photo'];
|
856 |
+
|
857 |
+
for(var i = 0, h = values.length; i<h; i++)
|
858 |
+
{
|
859 |
+
options += '<option value="'+values[i]+'" '+(values[i] == this.autocomplete ? 'SELECTED' : '')+'>'+values[i]+'</option>';
|
860 |
+
}
|
861 |
+
return '<div><label>Autocomplete</label>'+
|
862 |
+
'<select class="large" name="sAutocomplete" id="sAutocomplete">'+options+'</select><br><i>The field attribute takes precedence over the form settings.</i></div>';
|
863 |
+
},
|
864 |
showRequired: function(v)
|
865 |
{
|
866 |
return '<label><input type="checkbox" name="sRequired" id="sRequired" '+((v)?"checked":"")+'>Required</label>';
|
954 |
$.fbuilder.reloadItems( {'field': e.data.obj} );
|
955 |
});
|
956 |
|
957 |
+
$("#sAutocomplete").bind("change", {obj: this}, function(e)
|
958 |
+
{
|
959 |
+
e.data.obj.autocomplete = $(this).val();
|
960 |
+
$.fbuilder.reloadItems( {'field': e.data.obj} );
|
961 |
+
});
|
962 |
+
|
963 |
$("#sPredefined").bind("keyup", {obj: this}, function(e)
|
964 |
{
|
965 |
e.data.obj.predefined = $(this).val();
|
1053 |
showRequired:function()
|
1054 |
{
|
1055 |
var result = '';
|
1056 |
+
if(typeof this.autocomplete != 'undefined') result += $.fbuilder.showSettings.showAutocomplete(this.autocomplete);
|
1057 |
if(typeof this.required != 'undefined') result += $.fbuilder.showSettings.showRequired(this.required);
|
1058 |
if(typeof this.exclude != 'undefined') result += $.fbuilder.showSettings.showExclude(this.exclude);
|
1059 |
if(typeof this.readonly != 'undefined') result += $.fbuilder.showSettings.showReadonly(this.readonly);
|
js/fbuilder-pro-public.jquery.js
CHANGED
@@ -152,6 +152,7 @@
|
|
152 |
{
|
153 |
formDom.validate().focusInvalid();
|
154 |
}
|
|
|
155 |
return i;
|
156 |
}
|
157 |
}; // End goToPage
|
@@ -279,6 +280,7 @@
|
|
279 |
reloadItemsPublic = function()
|
280 |
{
|
281 |
var form_tag = $("#cp_calculatedfieldsf_pform"+opt.identifier),
|
|
|
282 |
fieldlist_tag = $("#fieldlist"+opt.identifier),
|
283 |
page_tag,
|
284 |
i = 0,
|
@@ -308,9 +310,8 @@
|
|
308 |
if( !opt.cached )
|
309 |
{
|
310 |
page_tag = $('<div class="pb'+page+' pbreak" page="'+page+'"></div>');
|
311 |
-
|
312 |
-
|
313 |
-
.append(page_tag);
|
314 |
|
315 |
for(i; i<items.length; i++)
|
316 |
{
|
@@ -493,7 +494,7 @@
|
|
493 |
.attr( 'autocomplete', ( ( this.autocomplete ) ? 'on' : 'off' ) )
|
494 |
.find( 'input,select' )
|
495 |
.blur( function(){ try{ $(this).valid(); }catch(e){};} );
|
496 |
-
if(!this.autocomplete) form.find('input[name*="fieldname"]').attr('autocomplete', 'new-password');
|
497 |
}
|
498 |
});
|
499 |
|
152 |
{
|
153 |
formDom.validate().focusInvalid();
|
154 |
}
|
155 |
+
$(document).trigger('cff-gotopage', {'from': _from, 'to': i, 'form': formDom});
|
156 |
return i;
|
157 |
}
|
158 |
}; // End goToPage
|
280 |
reloadItemsPublic = function()
|
281 |
{
|
282 |
var form_tag = $("#cp_calculatedfieldsf_pform"+opt.identifier),
|
283 |
+
header_tag = $("#formheader"+opt.identifier),
|
284 |
fieldlist_tag = $("#fieldlist"+opt.identifier),
|
285 |
page_tag,
|
286 |
i = 0,
|
310 |
if( !opt.cached )
|
311 |
{
|
312 |
page_tag = $('<div class="pb'+page+' pbreak" page="'+page+'"></div>');
|
313 |
+
header_tag.html(theForm.show());
|
314 |
+
fieldlist_tag.addClass(theForm.formlayout).append(page_tag);
|
|
|
315 |
|
316 |
for(i; i<items.length; i++)
|
317 |
{
|
494 |
.attr( 'autocomplete', ( ( this.autocomplete ) ? 'on' : 'off' ) )
|
495 |
.find( 'input,select' )
|
496 |
.blur( function(){ try{ $(this).valid(); }catch(e){};} );
|
497 |
+
if(!this.autocomplete) form.find('input[name*="fieldname"]:not([autocomplete])').attr('autocomplete', 'new-password');
|
498 |
}
|
499 |
});
|
500 |
|
js/fields-admin/01_fbuilder.ftext.js
CHANGED
@@ -12,6 +12,7 @@
|
|
12 |
{
|
13 |
title:"Untitled",
|
14 |
ftype:"ftext",
|
|
|
15 |
predefined:"",
|
16 |
predefinedClick:false,
|
17 |
required:false,
|
12 |
{
|
13 |
title:"Untitled",
|
14 |
ftype:"ftext",
|
15 |
+
autocomplete:"off",
|
16 |
predefined:"",
|
17 |
predefinedClick:false,
|
18 |
required:false,
|
js/fields-admin/02_fbuilder.fnumber.js
CHANGED
@@ -36,6 +36,7 @@
|
|
36 |
{s:"#sFormat",e:"change", l:"dformat", f:function(el){
|
37 |
var v = el.val();
|
38 |
$( '.fnumber-symbols' )[(v == 'digits')?'hide':'show']();
|
|
|
39 |
return v;
|
40 |
}
|
41 |
},
|
@@ -49,13 +50,14 @@
|
|
49 |
},
|
50 |
showFormatIntance: function()
|
51 |
{
|
52 |
-
var str = "";
|
53 |
for (var i=0;i<this.formats.length;i++)
|
54 |
{
|
55 |
-
|
56 |
-
str += '<option value="'+this.formats[i]+'" '+((this.formats[i]==this.dformat)?"selected":"")+'>'+this.formats[i]+'</option>';
|
57 |
}
|
58 |
-
return '<div><label>Number Format</label><select name="sFormat" id="sFormat">'+str+'</select></div
|
|
|
|
|
59 |
},
|
60 |
showRangeIntance: function()
|
61 |
{
|
36 |
{s:"#sFormat",e:"change", l:"dformat", f:function(el){
|
37 |
var v = el.val();
|
38 |
$( '.fnumber-symbols' )[(v == 'digits')?'hide':'show']();
|
39 |
+
$( '.fnumber-hint' )[(v == 'percent')?'show':'hide']();
|
40 |
return v;
|
41 |
}
|
42 |
},
|
50 |
},
|
51 |
showFormatIntance: function()
|
52 |
{
|
53 |
+
var str = "", df = this.dformat;
|
54 |
for (var i=0;i<this.formats.length;i++)
|
55 |
{
|
56 |
+
str += '<option value="'+this.formats[i]+'" '+((this.formats[i]==df)?"selected":"")+'>'+this.formats[i]+'</option>';
|
|
|
57 |
}
|
58 |
+
return '<div><label>Number Format</label><select name="sFormat" id="sFormat">'+str+'</select></div>'+
|
59 |
+
'<div class="fnumber-hint" '+((df != 'percent') ? 'style="display:none;"' : '')+'><i>The field value in the equations would be its decimal representation. Ex. 10% would be 0.1</i></div>'+
|
60 |
+
'<div class="fnumber-symbols" '+((df == 'digits') ? 'style="display:none;"' : '')+'><label>Decimals separator symbol (Ex: 25.20)</label><input type="text" name="sDecimalSymbol" id="sDecimalSymbol" class="large" value="'+$.fbuilder.htmlEncode(this.decimalSymbol)+'" /><label>Symbol for grouping thousands (Ex: 3,000,000)</label><input type="text" name="sThousandSeparator" id="sThousandSeparator" class="large" value="'+$.fbuilder.htmlEncode(this.thousandSeparator)+'" /><label><input type="checkbox" name="sFormatDynamically" id="sFormatDynamically" '+( (this.formatDynamically) ? 'CHECKED' : '')+'> Format Dynamically</label></div>';
|
61 |
},
|
62 |
showRangeIntance: function()
|
63 |
{
|
js/fields-admin/03_fbuilder.fcolor.js
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
$.fbuilder.typeList.push(
|
2 |
+
{
|
3 |
+
id:"fcolor",
|
4 |
+
name:"Color",
|
5 |
+
control_category:1
|
6 |
+
}
|
7 |
+
);
|
8 |
+
$.fbuilder.controls[ 'fcolor' ]=function(){};
|
9 |
+
$.extend(
|
10 |
+
$.fbuilder.controls[ 'fcolor' ].prototype,
|
11 |
+
$.fbuilder.controls[ 'ffields' ].prototype,
|
12 |
+
{
|
13 |
+
title:"Untitled",
|
14 |
+
ftype:"fcolor",
|
15 |
+
predefined:"",
|
16 |
+
predefinedClick:false,
|
17 |
+
required:false,
|
18 |
+
exclude:false,
|
19 |
+
readonly:false,
|
20 |
+
size:"default",
|
21 |
+
display:function()
|
22 |
+
{
|
23 |
+
return '<div class="fields '+this.name+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><label>'+this.title+''+((this.required)?"*":"")+'</label><div class="dfield"><input class="field disabled '+this.size+'" type="color" value="'+$.fbuilder.htmlEncode(this.predefined)+'"/><span class="uh">'+this.userhelp+'</span></div><div class="clearer" /></div>';
|
24 |
+
},
|
25 |
+
editItemEvents:function()
|
26 |
+
{
|
27 |
+
var me = this, evt = [{s:"#sSize",e:"change", l:"size"}];
|
28 |
+
$.fbuilder.controls[ 'ffields' ].prototype.editItemEvents.call(this,evt);
|
29 |
+
},
|
30 |
+
showSize:function()
|
31 |
+
{
|
32 |
+
var bk = $.fbuilder.showSettings.sizeList.slice();
|
33 |
+
$.fbuilder.showSettings.sizeList.unshift({id:"default",name:"Default"});
|
34 |
+
var output = $.fbuilder.showSettings.showSize(this.size);
|
35 |
+
$.fbuilder.showSettings.sizeList = bk;
|
36 |
+
return output;
|
37 |
+
}
|
38 |
+
});
|
js/fields-admin/03_fbuilder.femail.js
CHANGED
@@ -12,6 +12,7 @@
|
|
12 |
{
|
13 |
title:"Email",
|
14 |
ftype:"femail",
|
|
|
15 |
predefined:"",
|
16 |
predefinedClick:false,
|
17 |
required:false,
|
12 |
{
|
13 |
title:"Email",
|
14 |
ftype:"femail",
|
15 |
+
autocomplete:"off",
|
16 |
predefined:"",
|
17 |
predefinedClick:false,
|
18 |
required:false,
|
js/fields-admin/04_fbuilder.fdate.js
CHANGED
@@ -17,6 +17,7 @@
|
|
17 |
size:"medium",
|
18 |
required:false,
|
19 |
exclude:false,
|
|
|
20 |
dformat:"mm/dd/yyyy",
|
21 |
dseparator:"/",
|
22 |
tformat:"24",
|
17 |
size:"medium",
|
18 |
required:false,
|
19 |
exclude:false,
|
20 |
+
readonly:false,
|
21 |
dformat:"mm/dd/yyyy",
|
22 |
dseparator:"/",
|
23 |
tformat:"24",
|
js/fields-admin/05_fbuilder.ftextarea.js
CHANGED
@@ -12,6 +12,7 @@
|
|
12 |
{
|
13 |
title:"Untitled",
|
14 |
ftype:"ftextarea",
|
|
|
15 |
predefined:"",
|
16 |
predefinedClick:false,
|
17 |
required:false,
|
12 |
{
|
13 |
title:"Untitled",
|
14 |
ftype:"ftextarea",
|
15 |
+
autocomplete:"off",
|
16 |
predefined:"",
|
17 |
predefinedClick:false,
|
18 |
required:false,
|
js/fields-admin/06_fbuilder.fcheck.js
CHANGED
@@ -15,6 +15,7 @@
|
|
15 |
layout:"one_column",
|
16 |
required:false,
|
17 |
exclude:false,
|
|
|
18 |
toSubmit:'text',
|
19 |
merge:1,
|
20 |
max:-1,
|
15 |
layout:"one_column",
|
16 |
required:false,
|
17 |
exclude:false,
|
18 |
+
readonly:false,
|
19 |
toSubmit:'text',
|
20 |
merge:1,
|
21 |
max:-1,
|
js/fields-admin/07_fbuilder.fradio.js
CHANGED
@@ -15,6 +15,7 @@
|
|
15 |
layout:"one_column",
|
16 |
required:false,
|
17 |
exclude:false,
|
|
|
18 |
toSubmit:'text',
|
19 |
choiceSelected:"",
|
20 |
showDep:false,
|
15 |
layout:"one_column",
|
16 |
required:false,
|
17 |
exclude:false,
|
18 |
+
readonly:false,
|
19 |
toSubmit:'text',
|
20 |
choiceSelected:"",
|
21 |
showDep:false,
|
js/fields-admin/15_fbuilder.fpagebreak.js
CHANGED
@@ -20,7 +20,11 @@
|
|
20 |
{
|
21 |
$.fbuilder.controls[ 'ffields' ].prototype.editItemEvents.call(this);
|
22 |
},
|
23 |
-
showTitle: function(){
|
|
|
|
|
|
|
|
|
24 |
showName: function(){ return ''; },
|
25 |
showShortLabel: function(){ return ''; },
|
26 |
showUserhelp: function(){ return ''; },
|
20 |
{
|
21 |
$.fbuilder.controls[ 'ffields' ].prototype.editItemEvents.call(this);
|
22 |
},
|
23 |
+
showTitle: function(){
|
24 |
+
if(!$('[name="cff-progress-bar"]').length)
|
25 |
+
return '<br /><a href="https://cff-bundles.dwbooster.com/product/progress-bar" target="_blank">Include a progress bar on the form with links to the form pages</a>';
|
26 |
+
return '';
|
27 |
+
},
|
28 |
showName: function(){ return ''; },
|
29 |
showShortLabel: function(){ return ''; },
|
30 |
showUserhelp: function(){ return ''; },
|
js/fields-admin/28_fbuilder.fcontainer.js
CHANGED
@@ -116,5 +116,13 @@
|
|
116 |
}
|
117 |
}
|
118 |
);
|
119 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
});
|
116 |
}
|
117 |
}
|
118 |
);
|
119 |
+
},
|
120 |
+
columnsSticker: function()
|
121 |
+
{
|
122 |
+
var c = this.columns, s = '<div class="sticker">';
|
123 |
+
for(var i = 0; i<c; i++)
|
124 |
+
s += '<i class="sticker-'+c+'"></i>';
|
125 |
+
s += '</div>';
|
126 |
+
return s;
|
127 |
+
}
|
128 |
});
|
js/fields-admin/29_fbuilder.ffieldset.fc.js
CHANGED
@@ -20,7 +20,7 @@
|
|
20 |
collapsed:false, // Admin
|
21 |
display:function()
|
22 |
{
|
23 |
-
return '<div class="fields '+this.name+((this.collapsed) ? ' collapsed' : '')+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Collapse" class="collapse ui-icon ui-icon-folder-collapsed "></div><div title="Uncollapse" class="uncollapse ui-icon ui-icon-folder-open "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="dfield"><FIELDSET class="fcontainer">'+( ( !/^\s*$/.test( this.title ) ) ? '<LEGEND>'+this.title+'</LEGEND>' : '' )+'<label class="collapsed-label">Collapsed ['+this.name+']</label><div class="fieldscontainer"></div></FIELDSET></div><div class="clearer" /></div>';
|
24 |
},
|
25 |
editItemEvents:function()
|
26 |
{
|
20 |
collapsed:false, // Admin
|
21 |
display:function()
|
22 |
{
|
23 |
+
return '<div class="fields '+this.name+((this.collapsed) ? ' collapsed' : '')+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Collapse" class="collapse ui-icon ui-icon-folder-collapsed "></div><div title="Uncollapse" class="uncollapse ui-icon ui-icon-folder-open "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="dfield"><FIELDSET class="fcontainer">'+( ( !/^\s*$/.test( this.title ) ) ? '<LEGEND>'+this.title+'</LEGEND>' : '' )+$.fbuilder.controls['fcontainer'].prototype.columnsSticker.call(this)+'<label class="collapsed-label">Collapsed ['+this.name+']</label><div class="fieldscontainer"></div></FIELDSET></div><div class="clearer" /></div>';
|
24 |
},
|
25 |
editItemEvents:function()
|
26 |
{
|
js/fields-admin/30_fbuilder.fdiv.fc.js
CHANGED
@@ -18,7 +18,7 @@
|
|
18 |
collapsed:false,
|
19 |
display:function()
|
20 |
{
|
21 |
-
return '<div class="fields '+this.name+((this.collapsed) ? ' collapsed' : '')+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Collapse" class="collapse ui-icon ui-icon-folder-collapsed "></div><div title="Uncollapse" class="uncollapse ui-icon ui-icon-folder-open "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="dfield"><div class="fcontainer"
|
22 |
},
|
23 |
showTitle:function(){ return ''; },
|
24 |
editItemEvents:function()
|
18 |
collapsed:false,
|
19 |
display:function()
|
20 |
{
|
21 |
+
return '<div class="fields '+this.name+((this.collapsed) ? ' collapsed' : '')+' '+this.ftype+'" id="field'+this.form_identifier+'-'+this.index+'" title="'+this.name+'"><div class="arrow ui-icon ui-icon-play "></div><div title="Collapse" class="collapse ui-icon ui-icon-folder-collapsed "></div><div title="Uncollapse" class="uncollapse ui-icon ui-icon-folder-open "></div><div title="Delete" class="remove ui-icon ui-icon-trash "></div><div title="Duplicate" class="copy ui-icon ui-icon-copy "></div><div class="dfield"><div class="fcontainer">'+$.fbuilder.controls['fcontainer'].prototype.columnsSticker.call(this)+'<label class="collapsed-label">Collapsed ['+this.name+']</label><div class="fieldscontainer"></div></div></div><div class="clearer" /></div>';
|
22 |
},
|
23 |
showTitle:function(){ return ''; },
|
24 |
editItemEvents:function()
|
js/fields-admin/32_fbuilder.fbutton.js
CHANGED
@@ -66,7 +66,7 @@
|
|
66 |
},
|
67 |
_showOnclickSettings: function()
|
68 |
{
|
69 |
-
return '<label>OnClick event</label><textarea class="large" name="sOnclick" id="sOnclick">'+this.sOnclick+'</textarea>'+
|
70 |
'<label>OnMouseDown event</label><textarea class="large" name="sOnmousedown" id="sOnmousedown">'+this.sOnmousedown+'</textarea>';
|
71 |
},
|
72 |
showTitle: function(){ return ''; },
|
66 |
},
|
67 |
_showOnclickSettings: function()
|
68 |
{
|
69 |
+
return '<label>OnClick event</label><textarea class="large" name="sOnclick" id="sOnclick">'+this.sOnclick+'</textarea><div class="clearer"><i>To transform the button into a submit button, enter the onclick event: <b>jQuery(this.form).submit();</b></i></div>'+
|
70 |
'<label>OnMouseDown event</label><textarea class="large" name="sOnmousedown" id="sOnmousedown">'+this.sOnmousedown+'</textarea>';
|
71 |
},
|
72 |
showTitle: function(){ return ''; },
|
js/fields-admin/fbuilder.fcalculated.js
CHANGED
@@ -80,11 +80,20 @@
|
|
80 |
var args = {};
|
81 |
args.code = e.data.obj.eq;
|
82 |
args.fields = cff_form_fields_list;
|
83 |
-
if( $.fbuilder[
|
84 |
{
|
85 |
args.operations = {};
|
86 |
-
for(var i in $.fbuilder[
|
87 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
89 |
this.contentWindow.postMessage(JSON.stringify(args), '*');
|
90 |
}
|
@@ -307,7 +316,7 @@
|
|
307 |
|
308 |
if( $.fbuilder[ 'modules' ][ parts[ 0 ] ][ 'tutorial' ] )
|
309 |
{
|
310 |
-
out = '<input type="button" class="eq_btn" onclick="window.open(\'' + $.fbuilder[ 'modules' ][ parts[ 0 ] ][ 'tutorial' ] + '\');" value="?" title="Tutorial" />';
|
311 |
}
|
312 |
$('#sEqModuleTutorial').html( out );
|
313 |
return out;
|
@@ -338,11 +347,18 @@
|
|
338 |
if( $.fbuilder[ 'modules' ][ parts[ 0 ] ][ 'toolbars' ][ parts[ 1 ] ] )
|
339 |
{
|
340 |
var buttons = $.fbuilder[ 'modules' ][ parts[ 0 ] ][ 'toolbars' ][ parts[ 1 ] ][ 'buttons' ];
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
346 |
}
|
347 |
|
348 |
$( '#sEqButtonsContainer' ).html( out );
|
@@ -382,7 +398,7 @@
|
|
382 |
out += '<option value="' + fName + '">'+item[ 'name' ] + ( ( item[ 'title' ] && !/^\s*$/.test( item[ 'title' ] ) ) ? '('+item[ 'title' ] + ')' : '' ) + '</option>';
|
383 |
}
|
384 |
}
|
385 |
-
out += '</select><input type="button" value="+" class="eq_btn" onclick="'+tools+'.setField();" /></div><label>Operators</label><div style="text-align:center;" class="groupBox"><div style="text-align:left;">'+$.fbuilder.controls[ 'fCalculated' ][ 'tools' ].loadToolbarList()+'<span id="sEqModuleTutorial">'+$.fbuilder.controls[ 'fCalculated' ][ 'tools' ].loadTutorial( default_toolbar )+'</span></div><div id="sEqButtonsContainer" style="margin-top:10px;">'+$.fbuilder.controls[ 'fCalculated' ][ 'tools' ].loadToolbar( default_toolbar )+'</div><div id="sEqTipsContainer" style="background-color:#DFEFFF;border:1px solid #C2D7EF;padding:5px;margin:5px;display:none;text-align:left;"></div></div><label>Symbol to display at beginning of calculated field</label><input type="text" name="sPrefix" id="sPrefix" class="large" value="'+$.fbuilder.htmlEncode(me.prefix)+'" /><label><input type="checkbox" id="sCurrency" name="sCurrency" '+((me.currency) ? 'CHECKED' : '')+' /> it is a currency</label><label>Symbol to display at the end of calculated field</label><input type="text" name="sSuffix" id="sSuffix" class="large" value="'+$.fbuilder.htmlEncode(me.suffix)+'" /><label>Decimals separator symbol (Ex: 25.20)</label><input type="text" name="sDecimalSymbol" id="sDecimalSymbol" class="large" value="'+$.fbuilder.htmlEncode(me.decimalsymbol)+'" /><label>Symbol for grouping thousands (Ex: 3,000,000)</label><input type="text" name="sGroupingSymbol" id="sGroupingSymbol" class="large" value="'+$.fbuilder.htmlEncode(me.groupingsymbol)+'" />';
|
386 |
|
387 |
return out;
|
388 |
}
|
80 |
var args = {};
|
81 |
args.code = e.data.obj.eq;
|
82 |
args.fields = cff_form_fields_list;
|
83 |
+
if( $.fbuilder['modules'] )
|
84 |
{
|
85 |
args.operations = {};
|
86 |
+
for(var i in $.fbuilder['modules'])
|
87 |
+
{
|
88 |
+
for(var j in $.fbuilder['modules'][i]['toolbars'])
|
89 |
+
{
|
90 |
+
if($.fbuilder['modules'][i]['toolbars'][j]['buttons'].length)
|
91 |
+
{
|
92 |
+
$.extend(true, args.operations, $.fbuilder['modules'][i]['toolbars'])
|
93 |
+
break;
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
97 |
}
|
98 |
this.contentWindow.postMessage(JSON.stringify(args), '*');
|
99 |
}
|
316 |
|
317 |
if( $.fbuilder[ 'modules' ][ parts[ 0 ] ][ 'tutorial' ] )
|
318 |
{
|
319 |
+
out = '<input type="button" class="eq_btn button-secondary" onclick="window.open(\'' + $.fbuilder[ 'modules' ][ parts[ 0 ] ][ 'tutorial' ] + '\');" value="?" title="Tutorial" />';
|
320 |
}
|
321 |
$('#sEqModuleTutorial').html( out );
|
322 |
return out;
|
347 |
if( $.fbuilder[ 'modules' ][ parts[ 0 ] ][ 'toolbars' ][ parts[ 1 ] ] )
|
348 |
{
|
349 |
var buttons = $.fbuilder[ 'modules' ][ parts[ 0 ] ][ 'toolbars' ][ parts[ 1 ] ][ 'buttons' ];
|
350 |
+
if(buttons.length)
|
351 |
+
{
|
352 |
+
for( var i = 0, h = buttons.length; i < h; i++ )
|
353 |
+
{
|
354 |
+
out += '<input type="button" value="'+buttons[ i ][ 'value' ]+'" onclick="'+tools+'.setSymbol(\''+buttons[ i ][ 'code' ]+'\');'+tools+'.setTip(\''+buttons[ i ][ 'tip' ]+'\');" class="eq_btn button-secondary" />';
|
355 |
+
}
|
356 |
+
this.setTip( '' );
|
357 |
+
}
|
358 |
+
else
|
359 |
+
{
|
360 |
+
this.setTip( 'The module is distributed with the <a href="https://cff.dwbooster.com/download" target="_blank">Developer and Platinum versions</a> of the plugin.' );
|
361 |
+
}
|
362 |
}
|
363 |
|
364 |
$( '#sEqButtonsContainer' ).html( out );
|
398 |
out += '<option value="' + fName + '">'+item[ 'name' ] + ( ( item[ 'title' ] && !/^\s*$/.test( item[ 'title' ] ) ) ? '('+item[ 'title' ] + ')' : '' ) + '</option>';
|
399 |
}
|
400 |
}
|
401 |
+
out += '</select><input type="button" value="+" class="eq_btn button-secondary" onclick="'+tools+'.setField();" /></div><label>Operators</label><div style="text-align:center;" class="groupBox"><div style="text-align:left;">'+$.fbuilder.controls[ 'fCalculated' ][ 'tools' ].loadToolbarList()+'<span id="sEqModuleTutorial">'+$.fbuilder.controls[ 'fCalculated' ][ 'tools' ].loadTutorial( default_toolbar )+'</span></div><div id="sEqButtonsContainer" style="margin-top:10px;">'+$.fbuilder.controls[ 'fCalculated' ][ 'tools' ].loadToolbar( default_toolbar )+'</div><div id="sEqTipsContainer" style="background-color:#DFEFFF;border:1px solid #C2D7EF;padding:5px;margin:5px;display:none;text-align:left;"></div><div style="padding-top:20px;" class="large"><input type="button" class="button-primary large" onclick="window.open(\'https://cff-bundles.dwbooster.com/?category[]=operations\',\'_blank\');" value="More operations [+]" /></div></div><label>Symbol to display at beginning of calculated field</label><input type="text" name="sPrefix" id="sPrefix" class="large" value="'+$.fbuilder.htmlEncode(me.prefix)+'" /><label><input type="checkbox" id="sCurrency" name="sCurrency" '+((me.currency) ? 'CHECKED' : '')+' /> it is a currency</label><label>Symbol to display at the end of calculated field</label><input type="text" name="sSuffix" id="sSuffix" class="large" value="'+$.fbuilder.htmlEncode(me.suffix)+'" /><label>Decimals separator symbol (Ex: 25.20)</label><input type="text" name="sDecimalSymbol" id="sDecimalSymbol" class="large" value="'+$.fbuilder.htmlEncode(me.decimalsymbol)+'" /><label>Symbol for grouping thousands (Ex: 3,000,000)</label><input type="text" name="sGroupingSymbol" id="sGroupingSymbol" class="large" value="'+$.fbuilder.htmlEncode(me.groupingsymbol)+'" />';
|
402 |
|
403 |
return out;
|
404 |
}
|
js/fields-public/01_fbuilder.ftext.js
CHANGED
@@ -5,6 +5,7 @@
|
|
5 |
{
|
6 |
title:"Untitled",
|
7 |
ftype:"ftext",
|
|
|
8 |
predefined:"",
|
9 |
predefinedClick:false,
|
10 |
required:false,
|
@@ -21,7 +22,7 @@
|
|
21 |
this.maxlength = $.fbuilder.htmlEncode($.trim(this.maxlength));
|
22 |
this.equalTo = $.fbuilder.htmlEncode($.trim(this.equalTo));
|
23 |
this.predefined = this._getAttr('predefined');
|
24 |
-
return '<div class="fields '+this.csslayout+' '+this.name+' cff-text-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input aria-label="'+$.fbuilder.htmlEncode(this.title)+'" id="'+this.name+'" name="'+this.name+'"'+((this.minlength.length) ? ' minlength="'+(this.minlength)+'"' : '')+((this.maxlength.length) ? ' maxlength="'+(this.maxlength)+'"' : '')+((this.equalTo.length) ? ' equalTo="#'+this.equalTo+this.form_identifier+'"':'' )+' class="field '+this.size+((this.required)?" required":"")+'" '+((this.readonly)?'readonly':'')+' type="text" value="'+$.fbuilder.htmlEncode(this.predefined)+'" /><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
|
25 |
},
|
26 |
after_show:function()
|
27 |
{
|
5 |
{
|
6 |
title:"Untitled",
|
7 |
ftype:"ftext",
|
8 |
+
autocomplete:"off",
|
9 |
predefined:"",
|
10 |
predefinedClick:false,
|
11 |
required:false,
|
22 |
this.maxlength = $.fbuilder.htmlEncode($.trim(this.maxlength));
|
23 |
this.equalTo = $.fbuilder.htmlEncode($.trim(this.equalTo));
|
24 |
this.predefined = this._getAttr('predefined');
|
25 |
+
return '<div class="fields '+this.csslayout+' '+this.name+' cff-text-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input aria-label="'+$.fbuilder.htmlEncode(this.title)+'" id="'+this.name+'" name="'+this.name+'"'+((this.minlength.length) ? ' minlength="'+(this.minlength)+'"' : '')+((this.maxlength.length) ? ' maxlength="'+(this.maxlength)+'"' : '')+((this.equalTo.length) ? ' equalTo="#'+this.equalTo+this.form_identifier+'"':'' )+' class="field '+this.size+((this.required)?" required":"")+'" '+((this.readonly)?'readonly':'')+' type="text" value="'+$.fbuilder.htmlEncode(this.predefined)+'" autocomplete="'+this.autocomplete+'" /><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
|
26 |
},
|
27 |
after_show:function()
|
28 |
{
|
js/fields-public/03_fbuilder.fcolor.js
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
$.fbuilder.controls[ 'fcolor' ]=function(){};
|
2 |
+
$.extend(
|
3 |
+
$.fbuilder.controls[ 'fcolor' ].prototype,
|
4 |
+
$.fbuilder.controls[ 'ffields' ].prototype,
|
5 |
+
{
|
6 |
+
title:"Untitled",
|
7 |
+
ftype:"fcolor",
|
8 |
+
predefined:"",
|
9 |
+
predefinedClick:false,
|
10 |
+
required:false,
|
11 |
+
readonly:false,
|
12 |
+
size:"medium",
|
13 |
+
show:function()
|
14 |
+
{
|
15 |
+
this.predefined = this._getAttr('predefined');
|
16 |
+
return '<div class="fields '+this.csslayout+' '+this.name+' cff-color-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input aria-label="'+$.fbuilder.htmlEncode(this.title)+'" id="'+this.name+'" name="'+this.name+'"'+' class="field '+this.size+((this.required)?" required":"")+'" '+((this.readonly)?'readonly':'')+' type="color" value="'+$.fbuilder.htmlEncode(this.predefined)+'" /><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
|
17 |
+
},
|
18 |
+
after_show:function()
|
19 |
+
{
|
20 |
+
},
|
21 |
+
val:function(raw)
|
22 |
+
{
|
23 |
+
raw = raw || false;
|
24 |
+
var e = $( '[id="' + this.name + '"]:not(.ignore)' );
|
25 |
+
if( e.length ) return $.fbuilder.parseValStr( e.val(), raw );
|
26 |
+
return 0;
|
27 |
+
}
|
28 |
+
}
|
29 |
+
);
|
js/fields-public/03_fbuilder.femail.js
CHANGED
@@ -5,6 +5,7 @@
|
|
5 |
{
|
6 |
title:"Email",
|
7 |
ftype:"femail",
|
|
|
8 |
predefined:"",
|
9 |
predefinedClick:false,
|
10 |
required:false,
|
@@ -16,7 +17,7 @@
|
|
16 |
show:function()
|
17 |
{
|
18 |
this.predefined = this._getAttr('predefined');
|
19 |
-
return '<div class="fields '+this.csslayout+' '+this.name+' cff-email-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input aria-label="'+$.fbuilder.htmlEncode(this.title)+'" id="'+this.name+'" name="'+this.name+'" '+((this.equalTo!="")?"equalTo=\"#"+$.fbuilder.htmlEncode(this.equalTo+this.form_identifier)+"\"":"" )+' class="field email '+this.size+((this.required)?" required":"")+'" type="email" value="'+$.fbuilder.htmlEncode(this.predefined)+'" '+((this.readonly)?'readonly':'')+' /><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
|
20 |
},
|
21 |
after_show:function()
|
22 |
{
|
5 |
{
|
6 |
title:"Email",
|
7 |
ftype:"femail",
|
8 |
+
autocomplete:"off",
|
9 |
predefined:"",
|
10 |
predefinedClick:false,
|
11 |
required:false,
|
17 |
show:function()
|
18 |
{
|
19 |
this.predefined = this._getAttr('predefined');
|
20 |
+
return '<div class="fields '+this.csslayout+' '+this.name+' cff-email-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><input aria-label="'+$.fbuilder.htmlEncode(this.title)+'" id="'+this.name+'" name="'+this.name+'" '+((this.equalTo!="")?"equalTo=\"#"+$.fbuilder.htmlEncode(this.equalTo+this.form_identifier)+"\"":"" )+' class="field email '+this.size+((this.required)?" required":"")+'" type="email" value="'+$.fbuilder.htmlEncode(this.predefined)+'" '+((this.readonly)?'readonly':'')+' autocomplete="'+this.autocomplete+'" /><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
|
21 |
},
|
22 |
after_show:function()
|
23 |
{
|
js/fields-public/04_fbuilder.fdate.js
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
predefinedClick:false,
|
10 |
size:"medium",
|
11 |
required:false,
|
|
|
12 |
|
13 |
// Date component
|
14 |
showDatepicker: true,
|
@@ -194,7 +195,7 @@
|
|
194 |
str += '<option value="' + h + '">' + h + '</option>';
|
195 |
i++;
|
196 |
}
|
197 |
-
return '<select id="'+me.name+'_hours" name="'+me.name+'_hours" class="hours-component" aria-label="'+$.fbuilder.htmlEncode(me.ariaHourLabel)+'">' + str + '</select>:';
|
198 |
},
|
199 |
get_minutes:function()
|
200 |
{
|
@@ -211,14 +212,14 @@
|
|
211 |
str += '<option value="' + m + '">' + m + '</option>';
|
212 |
i++;
|
213 |
}
|
214 |
-
return '<select id="'+me.name+'_minutes" name="'+me.name+'_minutes" class="minutes-component" aria-label="'+$.fbuilder.htmlEncode(me.ariaMinuteLabel)+'">' + str + '</select>';
|
215 |
},
|
216 |
get_ampm:function()
|
217 |
{
|
218 |
var str = '';
|
219 |
if( this.tformat == 12 )
|
220 |
{
|
221 |
-
return '<select id="'+this.name+'_ampm" class="ampm-component" aria-label="'+$.fbuilder.htmlEncode(this.ariaAMPMLabel)+'"><option value="am">am</option><option value="pm">pm</option></select>';
|
222 |
}
|
223 |
return str;
|
224 |
},
|
@@ -258,7 +259,8 @@
|
|
258 |
p = {
|
259 |
dateFormat: me.dformat.replace(/yyyy/g,"yy"),
|
260 |
minDate: me._getAttr('minDate'),
|
261 |
-
maxDate: me._getAttr('maxDate')
|
|
|
262 |
},
|
263 |
dp = $( "#"+me.name+"_date" ),
|
264 |
dd = (me.defaultDate != "") ? me.defaultDate : ( ( me.predefined != "" ) ? me.predefined : new Date() );
|
9 |
predefinedClick:false,
|
10 |
size:"medium",
|
11 |
required:false,
|
12 |
+
readonly:false,
|
13 |
|
14 |
// Date component
|
15 |
showDatepicker: true,
|
195 |
str += '<option value="' + h + '">' + h + '</option>';
|
196 |
i++;
|
197 |
}
|
198 |
+
return '<select id="'+me.name+'_hours" name="'+me.name+'_hours" class="hours-component" aria-label="'+$.fbuilder.htmlEncode(me.ariaHourLabel)+'" '+((me.readonly) ? 'DISABLED' : '')+'>' + str + '</select>:';
|
199 |
},
|
200 |
get_minutes:function()
|
201 |
{
|
212 |
str += '<option value="' + m + '">' + m + '</option>';
|
213 |
i++;
|
214 |
}
|
215 |
+
return '<select id="'+me.name+'_minutes" name="'+me.name+'_minutes" class="minutes-component" aria-label="'+$.fbuilder.htmlEncode(me.ariaMinuteLabel)+'" '+((me.readonly) ? 'DISABLED' : '')+'>' + str + '</select>';
|
216 |
},
|
217 |
get_ampm:function()
|
218 |
{
|
219 |
var str = '';
|
220 |
if( this.tformat == 12 )
|
221 |
{
|
222 |
+
return '<select id="'+this.name+'_ampm" class="ampm-component" aria-label="'+$.fbuilder.htmlEncode(this.ariaAMPMLabel)+'" '+((this.readonly) ? 'DISABLED' : '')+'><option value="am">am</option><option value="pm">pm</option></select>';
|
223 |
}
|
224 |
return str;
|
225 |
},
|
259 |
p = {
|
260 |
dateFormat: me.dformat.replace(/yyyy/g,"yy"),
|
261 |
minDate: me._getAttr('minDate'),
|
262 |
+
maxDate: me._getAttr('maxDate'),
|
263 |
+
disabled: me.readonly
|
264 |
},
|
265 |
dp = $( "#"+me.name+"_date" ),
|
266 |
dd = (me.defaultDate != "") ? me.defaultDate : ( ( me.predefined != "" ) ? me.predefined : new Date() );
|
js/fields-public/05_fbuilder.ftextarea.js
CHANGED
@@ -5,6 +5,7 @@
|
|
5 |
{
|
6 |
title:"Untitled",
|
7 |
ftype:"ftextarea",
|
|
|
8 |
predefined:"",
|
9 |
predefinedClick:false,
|
10 |
required:false,
|
@@ -18,7 +19,7 @@
|
|
18 |
this.minlength = $.fbuilder.htmlEncode($.trim(this.minlength));
|
19 |
this.maxlength = $.fbuilder.htmlEncode($.trim(this.maxlength));
|
20 |
this.predefined = this._getAttr('predefined');
|
21 |
-
return '<div class="fields '+this.csslayout+' '+this.name+' cff-textarea-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><textarea aria-label="'+$.fbuilder.htmlEncode(this.title)+'" '+((!/^\s*$/.test(this.rows)) ? 'rows='+this.rows : '' )+' id="'+this.name+'" name="'+this.name+'"'+((this.minlength.length) ? ' minlength="'+this.minlength+'"' : '')+((this.maxlength.length) ? ' maxlength="'+this.maxlength+'"' : '')+' class="field '+this.size+((this.required)?" required":"")+'" '+((this.readonly)?'readonly':'')+'>'+((!this.predefinedClick) ? this.predefined : '')+'</textarea><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
|
22 |
},
|
23 |
val:function(raw)
|
24 |
{
|
5 |
{
|
6 |
title:"Untitled",
|
7 |
ftype:"ftextarea",
|
8 |
+
autocomplete:"off",
|
9 |
predefined:"",
|
10 |
predefinedClick:false,
|
11 |
required:false,
|
19 |
this.minlength = $.fbuilder.htmlEncode($.trim(this.minlength));
|
20 |
this.maxlength = $.fbuilder.htmlEncode($.trim(this.maxlength));
|
21 |
this.predefined = this._getAttr('predefined');
|
22 |
+
return '<div class="fields '+this.csslayout+' '+this.name+' cff-textarea-field" id="field'+this.form_identifier+'-'+this.index+'"><label for="'+this.name+'">'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield"><textarea aria-label="'+$.fbuilder.htmlEncode(this.title)+'" '+((!/^\s*$/.test(this.rows)) ? 'rows='+this.rows : '' )+' id="'+this.name+'" name="'+this.name+'"'+((this.minlength.length) ? ' minlength="'+this.minlength+'"' : '')+((this.maxlength.length) ? ' maxlength="'+this.maxlength+'"' : '')+' class="field '+this.size+((this.required)?" required":"")+'" '+((this.readonly)?'readonly':'')+' autocomplete="'+this.autocomplete+'">'+((!this.predefinedClick) ? this.predefined : '')+'</textarea><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
|
23 |
},
|
24 |
val:function(raw)
|
25 |
{
|
js/fields-public/06_fbuilder.fcheck.js
CHANGED
@@ -7,6 +7,7 @@
|
|
7 |
ftype:"fcheck",
|
8 |
layout:"one_column",
|
9 |
required:false,
|
|
|
10 |
merge:1,
|
11 |
max:-1,
|
12 |
maxError:"Check no more than {0} boxes",
|
@@ -16,7 +17,7 @@
|
|
16 |
{
|
17 |
this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices);
|
18 |
var str = "",
|
19 |
-
|
20 |
|
21 |
if ( typeof this.choicesDep == "undefined" || this.choicesDep == null )
|
22 |
this.choicesDep = new Array();
|
@@ -30,7 +31,7 @@
|
|
30 |
|
31 |
classDep = (this.choicesDep[ i ].length) ? 'depItem': '';
|
32 |
|
33 |
-
str += '<div class="'+this.layout+'"><label for="'+this.name+'_cb'+i+'"><input aria-label="'+$.fbuilder.htmlEncode(this.choices[i])+'" name="'+this.name+'[]" id="'+this.name+'_cb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+$.fbuilder.htmlEncode(this.choicesVal[i])+'" vt="'+$.fbuilder.htmlEncode((this.toSubmit == 'text') ? this.choices[i] : this.choicesVal[i])+'" type="checkbox" '+((this.choiceSelected[i])?"checked":"")+'/> <span>'+$.fbuilder.htmlDecode( this.choices[i] )+'</span></label></div>';
|
34 |
}
|
35 |
return '<div class="fields '+this.csslayout+' '+this.name+' cff-checkbox-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
|
36 |
},
|
7 |
ftype:"fcheck",
|
8 |
layout:"one_column",
|
9 |
required:false,
|
10 |
+
readonly:false,
|
11 |
merge:1,
|
12 |
max:-1,
|
13 |
maxError:"Check no more than {0} boxes",
|
17 |
{
|
18 |
this.choicesVal = ((typeof(this.choicesVal) != "undefined" && this.choicesVal !== null)?this.choicesVal:this.choices);
|
19 |
var str = "",
|
20 |
+
classDep;
|
21 |
|
22 |
if ( typeof this.choicesDep == "undefined" || this.choicesDep == null )
|
23 |
this.choicesDep = new Array();
|
31 |
|
32 |
classDep = (this.choicesDep[ i ].length) ? 'depItem': '';
|
33 |
|
34 |
+
str += '<div class="'+this.layout+'"><label for="'+this.name+'_cb'+i+'"><input aria-label="'+$.fbuilder.htmlEncode(this.choices[i])+'" name="'+this.name+'[]" id="'+this.name+'_cb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+$.fbuilder.htmlEncode(this.choicesVal[i])+'" vt="'+$.fbuilder.htmlEncode((this.toSubmit == 'text') ? this.choices[i] : this.choicesVal[i])+'" type="checkbox" '+(this.readonly ? ' onclick="return false;" ' : '')+((this.choiceSelected[i])?"checked":"")+'/> <span>'+$.fbuilder.htmlDecode( this.choices[i] )+'</span></label></div>';
|
35 |
}
|
36 |
return '<div class="fields '+this.csslayout+' '+this.name+' cff-checkbox-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
|
37 |
},
|
js/fields-public/07_fbuilder.fradio.js
CHANGED
@@ -7,6 +7,7 @@
|
|
7 |
ftype:"fradio",
|
8 |
layout:"one_column",
|
9 |
required:false,
|
|
|
10 |
toSubmit:"text",
|
11 |
choiceSelected:"",
|
12 |
showDep:false,
|
@@ -35,7 +36,7 @@
|
|
35 |
|
36 |
for (var i=0;i<l;i++)
|
37 |
{
|
38 |
-
str += '<div class="'+this.layout+'"><label for="'+this.name+'_rb'+i+'"><input aria-label="'+$.fbuilder.htmlEncode(this.choices[i])+'" name="'+this.name+'" id="'+this.name+'_rb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+$.fbuilder.htmlEncode(this.choicesVal[i])+'" vt="'+$.fbuilder.htmlEncode((this.toSubmit=='text') ? this.choices[i] : this.choicesVal[i])+'" type="radio" '+((this.choices[i]+' - '+this.choicesVal[i]==this.choiceSelected)?"checked":"")+'/> <span>'+$.fbuilder.htmlDecode( this.choices[i] )+'</span></label></div>';
|
39 |
}
|
40 |
|
41 |
return '<div class="fields '+this.csslayout+' '+this.name+' cff-radiobutton-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
|
7 |
ftype:"fradio",
|
8 |
layout:"one_column",
|
9 |
required:false,
|
10 |
+
readonly:false,
|
11 |
toSubmit:"text",
|
12 |
choiceSelected:"",
|
13 |
showDep:false,
|
36 |
|
37 |
for (var i=0;i<l;i++)
|
38 |
{
|
39 |
+
str += '<div class="'+this.layout+'"><label for="'+this.name+'_rb'+i+'"><input aria-label="'+$.fbuilder.htmlEncode(this.choices[i])+'" name="'+this.name+'" id="'+this.name+'_rb'+i+'" class="field '+classDep+' group '+((this.required)?" required":"")+'" value="'+$.fbuilder.htmlEncode(this.choicesVal[i])+'" vt="'+$.fbuilder.htmlEncode((this.toSubmit=='text') ? this.choices[i] : this.choicesVal[i])+'" type="radio" '+(this.readonly ? ' onclick="return false;" ' : '')+((this.choices[i]+' - '+this.choicesVal[i]==this.choiceSelected)?"checked":"")+'/> <span>'+$.fbuilder.htmlDecode( this.choices[i] )+'</span></label></div>';
|
40 |
}
|
41 |
|
42 |
return '<div class="fields '+this.csslayout+' '+this.name+' cff-radiobutton-field" id="field'+this.form_identifier+'-'+this.index+'"><label>'+this.title+''+((this.required)?"<span class='r'>*</span>":"")+'</label><div class="dfield">'+str+'<div class="clearer"></div><span class="uh">'+this.userhelp+'</span></div><div class="clearer"></div></div>';
|
js/fields-public/09_fbuilder.ffile.js
CHANGED
@@ -85,6 +85,12 @@
|
|
85 |
$( this ).after( filesContainer );
|
86 |
}
|
87 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
89 |
}
|
90 |
);
|
85 |
$( this ).after( filesContainer );
|
86 |
}
|
87 |
});
|
88 |
+
},
|
89 |
+
val : function()
|
90 |
+
{
|
91 |
+
var e = $( "[id='" + this.name + "']:not(.ignore)" );
|
92 |
+
if( e.length ) return e[0].files;
|
93 |
+
return '';
|
94 |
}
|
95 |
}
|
96 |
);
|
js/fields-public/16_fbuilder.fsummary.js
CHANGED
@@ -110,8 +110,17 @@
|
|
110 |
}
|
111 |
else
|
112 |
{
|
113 |
-
|
114 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
}
|
116 |
}
|
117 |
}
|
110 |
}
|
111 |
else
|
112 |
{
|
113 |
+
if(e.attr('type') == 'file')
|
114 |
+
{
|
115 |
+
var f = [];
|
116 |
+
$.each(e[0].files, function(i,o){f.push(o.name);});
|
117 |
+
v.push(f.join(', '));
|
118 |
+
}
|
119 |
+
else
|
120 |
+
{
|
121 |
+
var c = $( '[id="'+i+'_caption"]' );
|
122 |
+
v.push( ( c.length && !/^\s*$/.test( c.html() ) ) ? c.html() : e.val() );
|
123 |
+
}
|
124 |
}
|
125 |
}
|
126 |
}
|
js/fields-public/32_fbuilder.fbutton.js
CHANGED
@@ -35,11 +35,16 @@
|
|
35 |
$('#'+this.name).click(
|
36 |
function()
|
37 |
{
|
38 |
-
var e = $( this );
|
39 |
if( e.hasClass( 'calculate-button' ) )
|
40 |
{
|
41 |
var items = $.fbuilder[ 'forms' ][ me.form_identifier ].getItems();
|
42 |
-
if(me.sLoading)
|
|
|
|
|
|
|
|
|
|
|
43 |
$(document).on('equationsQueueEmpty', function(evt, id){
|
44 |
if(id == me.form_identifier)
|
45 |
{
|
35 |
$('#'+this.name).click(
|
36 |
function()
|
37 |
{
|
38 |
+
var e = $( this ), f;
|
39 |
if( e.hasClass( 'calculate-button' ) )
|
40 |
{
|
41 |
var items = $.fbuilder[ 'forms' ][ me.form_identifier ].getItems();
|
42 |
+
if(me.sLoading)
|
43 |
+
{
|
44 |
+
f = e.closest('#fbuilder');
|
45 |
+
f.find('.cff-processing-form').remove();
|
46 |
+
$('<div class="cff-processing-form"></div>').appendTo(f);
|
47 |
+
}
|
48 |
$(document).on('equationsQueueEmpty', function(evt, id){
|
49 |
if(id == me.form_identifier)
|
50 |
{
|
js/fields-public/fbuilder.fcalculated.js
CHANGED
@@ -78,14 +78,20 @@
|
|
78 |
}
|
79 |
).on('keyup', function(){
|
80 |
me.manual = true;
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
|
|
|
|
|
|
|
|
88 |
});
|
|
|
|
|
89 |
},
|
90 |
showHideDep: function( toShow, toHide, hiddenByContainer )
|
91 |
{
|
@@ -501,11 +507,13 @@
|
|
501 |
},
|
502 |
format : function( value, config )
|
503 |
{
|
|
|
504 |
if( !/^\s*$/.test( value ) )
|
505 |
{
|
506 |
-
var symbol = '';
|
507 |
if( $.isNumeric( value ) && !/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)/.test( value ) )
|
508 |
{
|
|
|
509 |
if( value < 0 ) symbol = '-';
|
510 |
var parts = value.toString().replace( "-", "" ).split("."),
|
511 |
counter = 0,
|
@@ -521,10 +529,16 @@
|
|
521 |
}
|
522 |
parts[0] = str;
|
523 |
}
|
524 |
-
|
525 |
value = parts.join( config.decimalsymbol );
|
526 |
}
|
527 |
|
|
|
|
|
|
|
|
|
|
|
|
|
528 |
if( config.prefix )
|
529 |
{
|
530 |
if(!config.currency)
|
@@ -534,10 +548,9 @@
|
|
534 |
}
|
535 |
value = config.prefix + value;
|
536 |
}
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
}
|
541 |
value = symbol+value;
|
542 |
}
|
543 |
return value;
|
78 |
}
|
79 |
).on('keyup', function(){
|
80 |
me.manual = true;
|
81 |
+
if('manual' in me) e.trigger('calcualtedfield_changed');
|
82 |
+
}).on('change', function(){
|
83 |
+
if('manual' in me && me.manual)
|
84 |
+
{
|
85 |
+
if(me.formatDynamically)
|
86 |
+
{
|
87 |
+
me.manual = false;
|
88 |
+
var v = me.val();
|
89 |
+
this.value = $.fbuilder.calculator.format(v, configuration);
|
90 |
+
}
|
91 |
+
}
|
92 |
});
|
93 |
+
|
94 |
+
$( '#cp_calculatedfieldsf_pform'+me.form_identifier ).bind( 'reset', function(){me.manua = false;} );
|
95 |
},
|
96 |
showHideDep: function( toShow, toHide, hiddenByContainer )
|
97 |
{
|
507 |
},
|
508 |
format : function( value, config )
|
509 |
{
|
510 |
+
config = $.extend({}, config);
|
511 |
if( !/^\s*$/.test( value ) )
|
512 |
{
|
513 |
+
var symbol = '', isNumeric = false;
|
514 |
if( $.isNumeric( value ) && !/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)/.test( value ) )
|
515 |
{
|
516 |
+
isNumeric = true;
|
517 |
if( value < 0 ) symbol = '-';
|
518 |
var parts = value.toString().replace( "-", "" ).split("."),
|
519 |
counter = 0,
|
529 |
}
|
530 |
parts[0] = str;
|
531 |
}
|
532 |
+
if(!('decimalsymbol' in config)) config.decimalsymbol = '.';
|
533 |
value = parts.join( config.decimalsymbol );
|
534 |
}
|
535 |
|
536 |
+
if(config.currency && !isNumeric)
|
537 |
+
{
|
538 |
+
delete config.prefix;
|
539 |
+
delete config.suffix;
|
540 |
+
}
|
541 |
+
|
542 |
if( config.prefix )
|
543 |
{
|
544 |
if(!config.currency)
|
548 |
}
|
549 |
value = config.prefix + value;
|
550 |
}
|
551 |
+
|
552 |
+
if( config.suffix ) value += config.suffix;
|
553 |
+
|
|
|
554 |
value = symbol+value;
|
555 |
}
|
556 |
return value;
|
js/modules/01_mathematical_logical/admin/module_admin.js
CHANGED
@@ -31,6 +31,7 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'default' ] = {
|
|
31 |
{ "value" : "SQRT", "code" : "SQRT(", "tip" : "Returns the square root of the number passed as parameter. <strong>SQRT(number1, number2)</strong>" },
|
32 |
{ "value" : "MAX", "code" : "MAX(", "tip" : "Returns the greater value of the two parameters. <strong>MAX(number1, number2)</strong>" },
|
33 |
{ "value" : "MIN", "code" : "MIN(", "tip" : "Returns the lesser value of the two parameters. <strong>MIN(number1, number2)</strong>" },
|
|
|
34 |
{ "value" : "GCD", "code" : "GCD(", "tip" : "Returns greatest common divisor between the two parameters. <strong>GCD(number1, number2)</strong>" },
|
35 |
{ "value" : "LCM", "code" : "LCM(", "tip" : "Returns the least common multiple between two parameters. <strong>LCM(number1, number2)</strong>" },
|
36 |
{ "value" : "SIN", "code" : "SIN(", "tip" : "SIN(x) returns the sine of x (x in radians).<br> <strong>SIN(3) = 0.1411200080598672</strong>" },
|
31 |
{ "value" : "SQRT", "code" : "SQRT(", "tip" : "Returns the square root of the number passed as parameter. <strong>SQRT(number1, number2)</strong>" },
|
32 |
{ "value" : "MAX", "code" : "MAX(", "tip" : "Returns the greater value of the two parameters. <strong>MAX(number1, number2)</strong>" },
|
33 |
{ "value" : "MIN", "code" : "MIN(", "tip" : "Returns the lesser value of the two parameters. <strong>MIN(number1, number2)</strong>" },
|
34 |
+
{ "value" : "FORMAT", "code" : "FORMAT(", "tip" : "Formats the number passed as the first parameters, based on the settigns passed as second parameter. <strong>FORMAT(-1234.56, {prefix:"$", suffix:" usd", groupingsymbol:",", decimalsymbol:".", currency:true}) = "-$1,234.56 usd"</strong>" },
|
35 |
{ "value" : "GCD", "code" : "GCD(", "tip" : "Returns greatest common divisor between the two parameters. <strong>GCD(number1, number2)</strong>" },
|
36 |
{ "value" : "LCM", "code" : "LCM(", "tip" : "Returns the least common multiple between two parameters. <strong>LCM(number1, number2)</strong>" },
|
37 |
{ "value" : "SIN", "code" : "SIN(", "tip" : "SIN(x) returns the sine of x (x in radians).<br> <strong>SIN(3) = 0.1411200080598672</strong>" },
|
js/modules/01_mathematical_logical/public/module_public.js
CHANGED
@@ -266,6 +266,13 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'default' ] = {
|
|
266 |
};
|
267 |
}
|
268 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
fbuilderjQuery[ 'fbuilder' ][ 'extend_window' ]( fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'default' ][ 'prefix' ], CF_LOGICAL );
|
270 |
},
|
271 |
|
266 |
};
|
267 |
}
|
268 |
|
269 |
+
if(window.FORMAT == undefined)
|
270 |
+
{
|
271 |
+
window.FORMAT = window.format = function(x,o){
|
272 |
+
return fbuilderjQuery.fbuilder.calculator.format(x,o);
|
273 |
+
};
|
274 |
+
}
|
275 |
+
|
276 |
fbuilderjQuery[ 'fbuilder' ][ 'extend_window' ]( fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'default' ][ 'prefix' ], CF_LOGICAL );
|
277 |
},
|
278 |
|
js/modules/02_datetime/admin/module_admin.js
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
fbuilderjQuery = (typeof fbuilderjQuery != 'undefined' ) ? fbuilderjQuery : jQuery;
|
2 |
+
fbuilderjQuery[ 'fbuilder' ] = fbuilderjQuery[ 'fbuilder' ] || {};
|
3 |
+
fbuilderjQuery[ 'fbuilder' ][ 'modules' ] = fbuilderjQuery[ 'fbuilder' ][ 'modules' ] || {};
|
4 |
+
|
5 |
+
fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'datetime' ] = {
|
6 |
+
'tutorial' : 'https://cff.dwbooster.com/documentation#datetime-module',
|
7 |
+
'toolbars' : {
|
8 |
+
'datetime' : {
|
9 |
+
'label' : 'Date Time functions',
|
10 |
+
'buttons' : [
|
11 |
+
{ "value" : "DATEOBJ", "code" : "DATEOBJ(", "tip" : "<p>Get the date object from an string representation of date. <strong>DATEOBJ( date_string, format )</strong></p><p><strong>DATEOBJ("2013-05-21", "yyyy-mm-dd")</strong></p><p>Result: <strong>date object</strong></p>" },
|
12 |
+
{ "value" : "YEAR", "code" : "YEAR(", "tip" : "<p>Get the year from an string representation of date. <strong>YEAR( date_string, format )</strong></p><p><strong>YEAR("2013-05-21", "yyyy-mm-dd")</strong></p><p>Result: <strong>2013</strong></p>" },
|
13 |
+
{ "value" : "MONTH", "code" : "MONTH(", "tip" : "<p>Get the month from an string representation of date. <strong>MONTH( date_string, format )</strong></p><p><strong>MONTH("2013-05-21", "yyyy-mm-dd")</strong></p><p>Result: <strong>5</strong></p>" },
|
14 |
+
{ "value" : "DAY", "code" : "DAY(", "tip" : "<p>Get the days from an string representation of date. <strong>DAY( date_string, format )</strong></p><p><strong>DAY("2013-05-21", "yyyy-mm-dd")</strong></p><p>Result: <strong>21</strong></p>" },
|
15 |
+
{ "value" : "WEEKDAY", "code" : "WEEKDAY(", "tip" : "<p>Get the week day from an string representation of date. <strong>WEEKDAY( date_string, format )</strong></p><p><strong>WEEKDAY("2013-10-27", "yyyy-mm-dd")</strong></p><p>Result: <strong>1</strong> Sunday is the day number one</p>" },
|
16 |
+
{ "value" : "WEEKNUM", "code" : "WEEKNUM(", "tip" : "<p>Get the week number from an string representation of date, a year has 53 weeks. <strong>WEEKNUM( date_string, format )</strong></p><p><strong>WEEKNUM("2013-10-27", "yyyy-mm-dd")</strong></p><p>Result: <strong>43</strong></p>" },
|
17 |
+
{ "value" : "HOURS", "code" : "HOURS(", "tip" : "<p>Get hours from an string representation of datetime. <strong>HOURS( datetime_string, format )</strong></p><p><strong>HOURS("2013-10-27 01:21", "yyyy-mm-dd hh:ii")</strong></p><p>Result: <strong>1</strong></p>" },
|
18 |
+
{ "value" : "MINUTES", "code" : "MINUTES(", "tip" : "<p>Get minutes from an string representation of datetime. <strong>MINUTES( datetime_string, format )</strong></p><p><strong>MINUTES("2013-10-27 01:22", "yyyy-mm-dd hh:ii")</strong></p><p>Result: <strong>22</strong></p>" },
|
19 |
+
{ "value" : "SECONDS", "code" : "SECONDS(", "tip" : "<p>Get seconds from an string representation of datetime. <strong>SECONDS( datetime_string, format )</strong></p><p><strong>SECONDS("2013-10-27 01:22:56", "yyyy-mm-dd hh:ii:ss")</strong></p><p>Result: <strong>56</strong></p>" },
|
20 |
+
{ "value" : "NOW", "code" : "NOW(", "tip" : "<p>Get a date object with the current day-time information. <strong>NOW()</strong></p><p><strong>NOW()</strong></p><p>Result: <strong>2013-10-27 01:42:19</strong></p>" },
|
21 |
+
{ "value" : "TODAY", "code" : "TODAY(", "tip" : "<p>Get a date object with the current day information, without the time part. <strong>TODAY()</strong></p>" },
|
22 |
+
{ "value" : "EOMONTH", "code" : "EOMONTH(", "tip" : "<p>Get the last day of the month. <strong>EOMONTH(date_obj, number)</strong> where the number parameter is optional.</p><p><strong>EOMONTH(DATEOBJ("2021-03-04"))</strong> Result: <strong>Mar 31 2021</strong></p><p><strong>EOMONTH(DATEOBJ("2021-03-04"), 4)</strong> Result: <strong>Jul 31 2021</strong></p><p><strong>EOMONTH(DATEOBJ("2021-03-04"), -3)</strong> Result: <strong>Dec 31 2020</strong></p>" },
|
23 |
+
{ "value" : "DATEDIFF", "code" : "DATEDIFF(", "tip" : "<p>Get the difference between two dates strings representation</p><p><strong>DATEDIFF(date_one, date_two, date_format, return)</strong></p><p>The function return an object, whose value depends of argument "return"</p><p>Possible values of return argument:<br />d - return the number of days between two dates<br />m - return the number of months between two dates, and remaining days<br />y - return the number of years between two dates, remaining months, and remaining days</p><p><strong>DATEDIFF("2013-10-27", "2012-06-22", "yyyy-mm-dd", "y")["months"]</strong><p><p>Result:<strong> 5 </strong></p>" },
|
24 |
+
{ "value" : "DATETIMESUM", "code" : "DATETIMESUM(", "tip" : "<p>Increases the date-time string representation in the number of seconds, minutes, hours, days, months, or years, passed as parameter.</p><p><strong>DATETIMESUM( date_string, format, number, to_increase )</strong></p><p>DATETIMESUM("2013-10-27", "yyyy-mm-dd", 5, "d")</p><p>Result: <strong>The date object representation of 2013/11/01</strong></p>" },
|
25 |
+
{ "value" : "GETDATETIMESTRING", "code" : "GETDATETIMESTRING(", "tip" : "<p>Returns the string representation of a date object</p><p><strong>GETDATETIMESTRING( datetime_object, format )</strong></p><p><strong>GETDATETIMESTRING(TODAY(), "yyyy-mm-dd")</strong></p><p>Result: <strong>2013-10-27</strong></p>" }
|
26 |
+
]
|
27 |
+
}
|
28 |
+
}
|
29 |
+
};
|
js/modules/02_datetime/public/01_datetime.js
ADDED
@@ -0,0 +1,308 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* datetime.js v0.1
|
3 |
+
* By: CALCULATED FIELD PROGRAMMERS
|
4 |
+
* The script allows operations with date and time
|
5 |
+
* Copyright 2013 CODEPEOPLE
|
6 |
+
* You may use this project under MIT or GPL licenses.
|
7 |
+
*/
|
8 |
+
|
9 |
+
;(function(root){
|
10 |
+
var lib = {},
|
11 |
+
default_format = ( typeof window.DATETIMEFORMAT != 'undefined' ) ? window.DATETIMEFORMAT : 'yyyy-mm-dd hh:ii:ss a',
|
12 |
+
regExp = '';
|
13 |
+
|
14 |
+
|
15 |
+
Date.prototype.valid = function() {
|
16 |
+
return isFinite(this);
|
17 |
+
};
|
18 |
+
|
19 |
+
/*** PRIVATE FUNCTIONS ***/
|
20 |
+
function _getDateObj( date, format ){
|
21 |
+
var d = new Date();
|
22 |
+
|
23 |
+
format = format || default_format;
|
24 |
+
|
25 |
+
if( typeof date != 'undefined' ){
|
26 |
+
if( typeof date == 'number' ){
|
27 |
+
d = new Date(Math.ceil(date*86400000));
|
28 |
+
}else if( typeof date == 'string' ){
|
29 |
+
var p;
|
30 |
+
if( null != ( p = /(\d{4})[\/\-\.](\d{1,2})[\/\-\.](\d{1,2})/.exec( date ) ) ){
|
31 |
+
if( /y{4}[\/\-\.]m{2}[\/\-\.]d{2}/i.test( format ) ){
|
32 |
+
d = new Date( p[ 1 ], ( p[ 2 ] - 1 ), p[ 3 ] );
|
33 |
+
}else{
|
34 |
+
d = new Date( p[ 1 ], ( p[ 3 ] - 1 ), p[ 2 ] );
|
35 |
+
}
|
36 |
+
date = date.replace( p[ 0 ], '' );
|
37 |
+
}
|
38 |
+
|
39 |
+
if( null != ( p = /(\d{1,2})[\/\-\.](\d{1,2})[\/\-\.](\d{4})/.exec( date ) ) ){
|
40 |
+
if( /d{2}[\/\-\.]m{2}[\/\-\.]y{4}/i.test( format ) ){
|
41 |
+
d = new Date( p[ 3 ], ( p[ 2 ] - 1 ), p[ 1 ] );
|
42 |
+
}else{
|
43 |
+
d = new Date( p[ 3 ], ( p[ 1 ] - 1 ), p[ 2 ] );
|
44 |
+
}
|
45 |
+
date = date.replace( p[ 0 ], '' );
|
46 |
+
}
|
47 |
+
|
48 |
+
if( null != ( p = /(\d{1,2})[:\.](\d{1,2})([:\.](\d{1,2}))?\s*([ap]m)?/i.exec( date ) ) ){
|
49 |
+
if(/h+/i.test( format ) ){
|
50 |
+
if( typeof p[ 5 ] != 'undefined' && /pm/i.test( p[ 5 ] ) ) p[ 1 ] = ( p[ 1 ]*1 + 12 ) % 24;
|
51 |
+
d.setHours( p[ 1 ] );
|
52 |
+
}
|
53 |
+
|
54 |
+
if(/i+/i.test( format ) ) d.setMinutes( p[ 2 ] );
|
55 |
+
if(/s+/i.test( format ) && (typeof p[ 4 ] != 'undefined') ) d.setSeconds( p[ 4 ] );
|
56 |
+
}
|
57 |
+
}else{
|
58 |
+
d = new Date( date );
|
59 |
+
}
|
60 |
+
}
|
61 |
+
return d;
|
62 |
+
};
|
63 |
+
|
64 |
+
/*** PUBLIC FUNCTIONS ***/
|
65 |
+
|
66 |
+
lib.cf_datetime_version = '0.1';
|
67 |
+
|
68 |
+
// DATEOBJ( date_string, date_format_string )
|
69 |
+
lib.DATEOBJ = function( date, format ){
|
70 |
+
var d = _getDateObj( date, format );
|
71 |
+
if( d.valid() ) return d;
|
72 |
+
return false;
|
73 |
+
};
|
74 |
+
|
75 |
+
// YEAR( date_string, date_format_string )
|
76 |
+
lib.YEAR = function( date, format ){
|
77 |
+
var d = _getDateObj( date, format );
|
78 |
+
if( d.valid() ) return d.getFullYear();
|
79 |
+
return false;
|
80 |
+
};
|
81 |
+
|
82 |
+
// MONTH( date_string, date_format_string )
|
83 |
+
lib.MONTH = function( date, format ){
|
84 |
+
var d = _getDateObj( date, format );
|
85 |
+
if( d.valid() ) return d.getMonth()+1;
|
86 |
+
return false;
|
87 |
+
};
|
88 |
+
|
89 |
+
// DAY( date_string, date_format_string )
|
90 |
+
lib.DAY = function( date, format ){
|
91 |
+
var d = _getDateObj( date, format );
|
92 |
+
if( d.valid() ) return d.getDate();
|
93 |
+
return false;
|
94 |
+
};
|
95 |
+
|
96 |
+
// WEEKDAY( date_string, date_format_string )
|
97 |
+
lib.WEEKDAY = function( date, format ){
|
98 |
+
var d = _getDateObj( date, format );
|
99 |
+
if( d.valid() ) return d.getDay()+1;
|
100 |
+
return false;
|
101 |
+
};
|
102 |
+
|
103 |
+
// WEEKDAY( date_string, date_format_string )
|
104 |
+
lib.WEEKNUM = function( date, format ){
|
105 |
+
var d = _getDateObj( date, format ),
|
106 |
+
tmp = _getDateObj( date, format );
|
107 |
+
|
108 |
+
if( d.valid() ){
|
109 |
+
// ISO week date weeks start on monday
|
110 |
+
var dayNr = ( d.getDay() + 6 ) % 7;
|
111 |
+
|
112 |
+
// ISO 8601 states that week 1 is the week with the first thursday of that year.
|
113 |
+
tmp.setDate( d.getDate() - dayNr + 3 );
|
114 |
+
|
115 |
+
// Store the millisecond value of the tmp date
|
116 |
+
var firstThursday = tmp.valueOf();
|
117 |
+
|
118 |
+
// Set the tmp to the first thursday of the year
|
119 |
+
// First set the tmp to january first
|
120 |
+
tmp.setMonth(0, 1);
|
121 |
+
|
122 |
+
// Not a thursday? Correct the date to the next thursday
|
123 |
+
if (tmp.getDay() != 4) {
|
124 |
+
tmp.setMonth(0, 1 + ((4 - tmp.getDay()) + 7) % 7);
|
125 |
+
}
|
126 |
+
|
127 |
+
// The weeknumber is the number of weeks between the
|
128 |
+
// first thursday of the year and the thursday in the tmp week
|
129 |
+
return 1 + Math.ceil((firstThursday - tmp) / 604800000); // 604800000 = 7 * 24 * 3600 * 1000
|
130 |
+
|
131 |
+
}
|
132 |
+
return false;
|
133 |
+
};
|
134 |
+
|
135 |
+
// HOURS( datetime_string, datetime_format_string )
|
136 |
+
lib.HOURS = function( date, format ){
|
137 |
+
var d = _getDateObj( date, format );
|
138 |
+
if( d.valid() ) return d.getHours();
|
139 |
+
return false;
|
140 |
+
};
|
141 |
+
|
142 |
+
// MINUTES( datetime_string, datetime_format_string )
|
143 |
+
lib.MINUTES = function( date, format ){
|
144 |
+
var d = _getDateObj( date, format );
|
145 |
+
if( d.valid() ) return d.getMinutes();
|
146 |
+
return false;
|
147 |
+
};
|
148 |
+
|
149 |
+
// SECONDS( datetime_string, datetime_format_string )
|
150 |
+
lib.SECONDS = function( date, format ){
|
151 |
+
var d = _getDateObj( date, format );
|
152 |
+
if( d.valid() ) return d.getSeconds();
|
153 |
+
return false;
|
154 |
+
};
|
155 |
+
|
156 |
+
// NOW() Return a datetime object
|
157 |
+
lib.NOW = function(){
|
158 |
+
return _getDateObj();
|
159 |
+
};
|
160 |
+
|
161 |
+
// TODAY() Return a datetime object limited to date only
|
162 |
+
lib.TODAY = function(){
|
163 |
+
var d = _getDateObj();
|
164 |
+
d.setHours( 0 );
|
165 |
+
d.setMinutes( 0 );
|
166 |
+
d.setSeconds( 0 );
|
167 |
+
return d;
|
168 |
+
};
|
169 |
+
|
170 |
+
lib.EOMONTH = function(d,n){
|
171 |
+
n = (n || 0) + 1;
|
172 |
+
var d1 = _getDateObj(d);
|
173 |
+
d1.setMonth(d1.getMonth()+n);
|
174 |
+
d1.setDate(1);
|
175 |
+
d1.setDate(d1.getDate()-1);
|
176 |
+
return d1;
|
177 |
+
};
|
178 |
+
|
179 |
+
/*
|
180 |
+
* DATEDIFF( datetime_string, datetime_string, return_format)
|
181 |
+
*
|
182 |
+
* return_format:
|
183 |
+
* d - number of days, and remaining hours, minutes and seconds
|
184 |
+
* m - number of months, and remaining days, hours, minutes and seconds
|
185 |
+
* y - number of years, and remaining months, days, hours, minutes and seconds
|
186 |
+
*
|
187 |
+
* the function return an object with attributes: years, months and days depending of return_format argument
|
188 |
+
*/
|
189 |
+
lib.DATEDIFF = function( date_one, date_two, date_format, return_format ){
|
190 |
+
var d1 = _getDateObj( date_one, date_format ),
|
191 |
+
d2 = _getDateObj( date_two, date_format ),
|
192 |
+
diff,
|
193 |
+
r = {
|
194 |
+
'years' : -1,
|
195 |
+
'months' : -1,
|
196 |
+
'days' : -1,
|
197 |
+
'hours' : -1,
|
198 |
+
'minutes' : -1,
|
199 |
+
'seconds' : -1
|
200 |
+
};
|
201 |
+
|
202 |
+
if( d1.valid() && d2.valid() ){
|
203 |
+
if( d1.valueOf() > d2.valueOf() ){
|
204 |
+
d2 = _getDateObj( date_one, date_format );
|
205 |
+
d1 = _getDateObj( date_two, date_format );
|
206 |
+
}
|
207 |
+
|
208 |
+
diff = d2.valueOf() - d1.valueOf();
|
209 |
+
|
210 |
+
if( typeof return_format == 'undefined' || return_format == 'd' ){
|
211 |
+
r.days = Math.floor( diff/86400000 );
|
212 |
+
}else{
|
213 |
+
var months,
|
214 |
+
days,
|
215 |
+
tmp;
|
216 |
+
months = (d2.getFullYear() - d1.getFullYear()) * 12;
|
217 |
+
months -= d1.getMonth() + 1;
|
218 |
+
months += d2.getMonth() + 1;
|
219 |
+
days = d2.getDate() - d1.getDate();
|
220 |
+
if( days < 0 ){
|
221 |
+
months--;
|
222 |
+
tmp = new Date( d1.getFullYear(), d1.getMonth()+1 );
|
223 |
+
days = ( tmp.valueOf() - d1.valueOf() )/86400000 + d2.getDate() + 1;
|
224 |
+
}
|
225 |
+
|
226 |
+
r.months = months;
|
227 |
+
r.days = Math.floor(days);
|
228 |
+
|
229 |
+
if( /y/i.test( return_format ) ){
|
230 |
+
r.years = Math.floor( months/12 );
|
231 |
+
r.months = months % 12;
|
232 |
+
}
|
233 |
+
}
|
234 |
+
r.hours = Math.floor( diff%86400000/3600000 );
|
235 |
+
r.minutes = Math.floor( diff%86400000%3600000/60000 );
|
236 |
+
r.seconds = Math.floor( diff%86400000%3600000%60000/1000);
|
237 |
+
}
|
238 |
+
return r;
|
239 |
+
};
|
240 |
+
|
241 |
+
/*
|
242 |
+
* DATETIMESUM( datetime_string, format, number, to_increase )
|
243 |
+
* to_increase:
|
244 |
+
* s - seconds
|
245 |
+
* i - minutes
|
246 |
+
* h - hours
|
247 |
+
* d - add the number of days,
|
248 |
+
* m - add the number of months,
|
249 |
+
* y - add the number of years
|
250 |
+
*
|
251 |
+
*/
|
252 |
+
lib.DATETIMESUM = function( date, format, number, to_increase){
|
253 |
+
var d = _getDateObj( date, format );
|
254 |
+
if( d.valid() ){
|
255 |
+
if( typeof number != 'number' || isNaN( parseInt( number ) ) ) number = 0;
|
256 |
+
else number = parseInt( number );
|
257 |
+
|
258 |
+
if( typeof to_increase == 'undefined' ) to_increase = 'd';
|
259 |
+
|
260 |
+
|
261 |
+
if( /y+/i.test( to_increase ) ) d.setFullYear( d.getFullYear() + number );
|
262 |
+
else if( /d+/i.test( to_increase ) ) d.setDate( d.getDate() + number );
|
263 |
+
else if( /m+/i.test( to_increase ) ) d.setMonth( d.getMonth() + number );
|
264 |
+
else if( /h+/i.test( to_increase ) ) d.setHours( d.getHours() + number );
|
265 |
+
else if( /i+/i.test( to_increase ) ) d.setMinutes( d.getMinutes() + number );
|
266 |
+
else d.setSeconds( d.getSeconds() + number );
|
267 |
+
|
268 |
+
return d;
|
269 |
+
}
|
270 |
+
return false;
|
271 |
+
};
|
272 |
+
|
273 |
+
// GETDATETIMESTRING( date_object, return_format ) Return the date object as a string representation determined by the return_format argument
|
274 |
+
lib.GETDATETIMESTRING = function( date, format ){
|
275 |
+
if( typeof format == 'undefined' ) format = default_format;
|
276 |
+
|
277 |
+
if( date.valid() ){
|
278 |
+
var m = date.getMonth() + 1,
|
279 |
+
d = date.getDate(),
|
280 |
+
h = date.getHours(),
|
281 |
+
i = date.getMinutes(),
|
282 |
+
s = date.getSeconds(),
|
283 |
+
a = ( h >= 12 ) ? 'pm' : 'am';
|
284 |
+
|
285 |
+
m = ( m < 10 ) ? '0'+m : m;
|
286 |
+
d = ( d < 10 ) ? '0'+d : d;
|
287 |
+
if( /a+/.test( format ) ){
|
288 |
+
h = h % 12;
|
289 |
+
h = ( h ) ? h : 12;
|
290 |
+
}
|
291 |
+
h = ( h < 10 ) ? '0'+h : h;
|
292 |
+
i = ( i < 10 ) ? '0'+i : i;
|
293 |
+
s = ( s < 10 ) ? '0'+s : s;
|
294 |
+
|
295 |
+
return format.replace( /y+/i, date.getFullYear() )
|
296 |
+
.replace( /m+/i, m )
|
297 |
+
.replace( /d+/i, d )
|
298 |
+
.replace( /h+/i, h )
|
299 |
+
.replace( /i+/i, i )
|
300 |
+
.replace( /s+/i, s )
|
301 |
+
.replace( /a+/i, a );
|
302 |
+
}
|
303 |
+
return date;
|
304 |
+
};
|
305 |
+
|
306 |
+
root.CF_DATETIME = lib;
|
307 |
+
|
308 |
+
})(this);
|
js/modules/02_datetime/public/module_public.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
fbuilderjQuery = ( typeof fbuilderjQuery != 'undefined' ) ? fbuilderjQuery : jQuery;
|
2 |
+
fbuilderjQuery[ 'fbuilder' ] = fbuilderjQuery[ 'fbuilder' ] || {};
|
3 |
+
fbuilderjQuery[ 'fbuilder' ][ 'modules' ] = fbuilderjQuery[ 'fbuilder' ][ 'modules' ] || {};
|
4 |
+
|
5 |
+
fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'datetime' ] = {
|
6 |
+
'prefix' : '',
|
7 |
+
'callback' : function()
|
8 |
+
{
|
9 |
+
fbuilderjQuery[ 'fbuilder' ][ 'extend_window' ]( fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'datetime' ][ 'prefix' ], CF_DATETIME );
|
10 |
+
},
|
11 |
+
|
12 |
+
'validator' : function( v )
|
13 |
+
{
|
14 |
+
if( /^\s*((\d{4}[\/\-\.]\d{1,2}[\/\-\.]\d{1,2})|(\d{1,2}[\/\-\.]\d{1,2}[\/\-\.]\d{4}))?\s*(\d{1,2}\s*:\s*\d{1,2}(\s*:\s*\d{1,2})?(\s*[ap]m)?)?\s*$/i.test( v ) )
|
15 |
+
{
|
16 |
+
return true;
|
17 |
+
}
|
18 |
+
return false;
|
19 |
+
}
|
20 |
+
};
|
js/modules/03_financial/admin/module_admin.js
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
fbuilderjQuery = (typeof fbuilderjQuery != 'undefined' ) ? fbuilderjQuery : jQuery;
|
2 |
+
fbuilderjQuery[ 'fbuilder' ] = fbuilderjQuery[ 'fbuilder' ] || {};
|
3 |
+
fbuilderjQuery[ 'fbuilder' ][ 'modules' ] = fbuilderjQuery[ 'fbuilder' ][ 'modules' ] || {};
|
4 |
+
|
5 |
+
fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'financial' ] = {
|
6 |
+
'tutorial' : 'https://cff.dwbooster.com/documentation#financial-module',
|
7 |
+
'toolbars' : {
|
8 |
+
'finance' : {
|
9 |
+
'label' : 'Financial functions',
|
10 |
+
'buttons' : []
|
11 |
+
}
|
12 |
+
}
|
13 |
+
};
|
js/modules/04_distance/admin/module_admin.js
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
fbuilderjQuery = (typeof fbuilderjQuery != 'undefined' ) ? fbuilderjQuery : jQuery;
|
2 |
+
fbuilderjQuery[ 'fbuilder' ] = fbuilderjQuery[ 'fbuilder' ] || {};
|
3 |
+
fbuilderjQuery[ 'fbuilder' ][ 'modules' ] = fbuilderjQuery[ 'fbuilder' ][ 'modules' ] || {};
|
4 |
+
|
5 |
+
fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'distance' ] = {
|
6 |
+
'tutorial' : 'https://cff.dwbooster.com/documentation#distance-module',
|
7 |
+
'toolbars' : {
|
8 |
+
'distance' : {
|
9 |
+
'label' : 'Distance functions',
|
10 |
+
'buttons' : []
|
11 |
+
}
|
12 |
+
}
|
13 |
+
};
|
js/modules/05_managing_fields/public/05_managing_fields.js
CHANGED
@@ -14,10 +14,13 @@
|
|
14 |
|
15 |
function _getForm(_form)
|
16 |
{
|
17 |
-
if(typeof _form == 'undefined')
|
|
|
|
|
|
|
18 |
if(/^_\d*$/.test(_form)) return _form;
|
19 |
if(/^\d*$/.test(_form)) return '_'+_form;
|
20 |
-
return $(_form).find('[name="cp_calculatedfieldsf_pform_psequence"]').val();
|
21 |
}
|
22 |
|
23 |
function _getField( _field, _form )
|
14 |
|
15 |
function _getForm(_form)
|
16 |
{
|
17 |
+
if(typeof _form == 'undefined'){
|
18 |
+
if('currentFormId' in fbuilderjQuery.fbuilder) _form = fbuilderjQuery.fbuilder.currentFormId;
|
19 |
+
else return '_1';
|
20 |
+
}
|
21 |
if(/^_\d*$/.test(_form)) return _form;
|
22 |
if(/^\d*$/.test(_form)) return '_'+_form;
|
23 |
+
return $((typeof _form == 'object') ? _form : '#'+_form).find('[name="cp_calculatedfieldsf_pform_psequence"]').val();
|
24 |
}
|
25 |
|
26 |
function _getField( _field, _form )
|
js/modules/07_chart/admin/module_admin.js
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
fbuilderjQuery = (typeof fbuilderjQuery != 'undefined' ) ? fbuilderjQuery : jQuery;
|
2 |
+
fbuilderjQuery[ 'fbuilder' ] = fbuilderjQuery[ 'fbuilder' ] || {};
|
3 |
+
fbuilderjQuery[ 'fbuilder' ][ 'modules' ] = fbuilderjQuery[ 'fbuilder' ][ 'modules' ] || {};
|
4 |
+
|
5 |
+
fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'chart' ] = {
|
6 |
+
'tutorial' : 'https://cff.dwbooster.com/documentation#chart-module',
|
7 |
+
'toolbars' : {
|
8 |
+
'chart' : {
|
9 |
+
'label' : 'Chart.js Integration',
|
10 |
+
'buttons' : []
|
11 |
+
}
|
12 |
+
}
|
13 |
+
};
|
js/modules/08_url/admin/module_admin.js
CHANGED
@@ -38,6 +38,11 @@ fbuilderjQuery[ 'fbuilder' ][ 'modules' ][ 'url' ] = {
|
|
38 |
"code" : "getURLParameter(",
|
39 |
"tip" : "<p>Returns the value of an URL parameter. The operation accepts two parameters: the parameter name and the dafault value. The default value would be returned if the URL parameter does not exist. If not default value is passed as parameter, and the URL parameter does not exist, the operation returns null. <strong>getURLParameter(parameter_name, default_value)</strong> the default_value is optional.</p>"
|
40 |
},
|
|
|
|
|
|
|
|
|
|
|
41 |
{
|
42 |
"value" : "generateURL",
|
43 |
"code" : "generateURL(",
|
38 |
"code" : "getURLParameter(",
|
39 |
"tip" : "<p>Returns the value of an URL parameter. The operation accepts two parameters: the parameter name and the dafault value. The default value would be returned if the URL parameter does not exist. If not default value is passed as parameter, and the URL parameter does not exist, the operation returns null. <strong>getURLParameter(parameter_name, default_value)</strong> the default_value is optional.</p>"
|
40 |
},
|
41 |
+
{
|
42 |
+
"value" : "getReferrer",
|
43 |
+
"code" : "getReferrer()",
|
44 |
+
"tip" : "<p>Returns the referrer URL or null.</p>"
|
45 |
+
},
|
46 |
{
|
47 |
"value" : "generateURL",
|
48 |
"code" : "generateURL(",
|
js/modules/08_url/public/01_url.js
CHANGED
@@ -16,6 +16,11 @@
|
|
16 |
|
17 |
lib.cff_url_version = '0.1';
|
18 |
|
|
|
|
|
|
|
|
|
|
|
19 |
// generateURL()
|
20 |
lib.generateURL = lib.generateurl = lib.GENERATEURL = function(url, params, hash){
|
21 |
var urlComponents = url.split('#'), queryString = '', connector = '';
|
16 |
|
17 |
lib.cff_url_version = '0.1';
|
18 |
|
19 |
+
// getReferrer()
|
20 |
+
lib.getReferrer = lib.getreferrer = lib.GETREFERRER = function(){
|
21 |
+
return document.referrer || null;
|
22 |
+
};
|
23 |
+
|
24 |
// generateURL()
|
25 |
lib.generateURL = lib.generateurl = lib.GENERATEURL = function(url, params, hash){
|
26 |
var urlComponents = url.split('#'), queryString = '', connector = '';
|
languages/calculated-fields-form-en_US.mo
CHANGED
Binary file
|
languages/calculated-fields-form-en_US.po
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: \n"
|
4 |
-
"POT-Creation-Date: 2021-
|
5 |
-
"PO-Revision-Date: 2021-
|
6 |
"Last-Translator: CodePeople\n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: en_US\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"X-Generator: Poedit
|
13 |
"X-Poedit-Basepath: ..\n"
|
14 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
"X-Poedit-KeywordsList: __;_e;esc_attr__;esc_attr_e\n"
|
@@ -42,7 +42,7 @@ msgid "Settings saved"
|
|
42 |
msgstr ""
|
43 |
|
44 |
#: inc/cpcff_admin_int.inc.php:50 inc/cpcff_admin_int_list.inc.php:100
|
45 |
-
#: inc/cpcff_page_builders.inc.php:
|
46 |
#: pagebuilders/beaverbuilder/cff/cff/cff.php:9
|
47 |
#: pagebuilders/beaverbuilder/cff/cff/cff.php:11
|
48 |
#: pagebuilders/beaverbuilder/cff/cff/cff.php:12
|
@@ -87,7 +87,7 @@ msgid "Select a revision"
|
|
87 |
msgstr ""
|
88 |
|
89 |
#: inc/cpcff_admin_int.inc.php:91 inc/cpcff_admin_int.inc.php:212
|
90 |
-
#: inc/cpcff_admin_int.inc.php:
|
91 |
msgid "Preview"
|
92 |
msgstr ""
|
93 |
|
@@ -102,9 +102,9 @@ msgstr ""
|
|
102 |
#: inc/cpcff_admin_int.inc.php:102
|
103 |
msgid ""
|
104 |
"If you need also the form to be sent to the server side for processing (for "
|
105 |
-
"example to deliver emails) then the <a href=\"https://cff.dwbooster.com
|
106 |
-
"target=\"_blank\">
|
107 |
-
"
|
108 |
msgstr ""
|
109 |
|
110 |
#: inc/cpcff_admin_int.inc.php:118
|
@@ -127,8 +127,8 @@ msgstr ""
|
|
127 |
msgid "Field Settings"
|
128 |
msgstr ""
|
129 |
|
130 |
-
#: inc/cpcff_admin_int.inc.php:211 inc/cpcff_admin_int.inc.php:
|
131 |
-
#: inc/cpcff_admin_int.inc.php:
|
132 |
msgid "Save Changes"
|
133 |
msgstr ""
|
134 |
|
@@ -136,383 +136,418 @@ msgstr ""
|
|
136 |
msgid "Generate revisions in the form preview as well"
|
137 |
msgstr ""
|
138 |
|
|
|
|
|
|
|
|
|
139 |
#: inc/cpcff_admin_int.inc.php:217
|
140 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
msgstr ""
|
142 |
|
143 |
#: inc/cpcff_admin_int.inc.php:221
|
144 |
-
msgid "
|
|
|
|
|
|
|
|
|
145 |
msgstr ""
|
146 |
|
147 |
#: inc/cpcff_admin_int.inc.php:225
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
msgid "Next button label (text)"
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: inc/cpcff_admin_int.inc.php:
|
152 |
msgid ""
|
153 |
"- The styles can be applied into any of the CSS files of your theme or into "
|
154 |
"the CSS file <em>\"calculated-fields-form\\css\\stylepublic.css\"</em>."
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: inc/cpcff_admin_int.inc.php:
|
158 |
msgid ""
|
159 |
"- For general CSS styles modifications to the form and samples <a href="
|
160 |
"\"https://cff.dwbooster.com/faq#q82\" target=\"_blank\">check this FAQ</a>."
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: inc/cpcff_admin_int.inc.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
msgid "Validation Settings"
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: inc/cpcff_admin_int.inc.php:
|
168 |
msgid "\"is required\" text"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: inc/cpcff_admin_int.inc.php:
|
172 |
msgid "\"is email\" text"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: inc/cpcff_admin_int.inc.php:
|
176 |
msgid "\"is valid captcha\" text"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: inc/cpcff_admin_int.inc.php:
|
180 |
msgid "\"is valid date (mm/dd/yyyy)\" text"
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: inc/cpcff_admin_int.inc.php:
|
184 |
msgid "\"is valid date (dd/mm/yyyy)\" text"
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: inc/cpcff_admin_int.inc.php:
|
188 |
msgid "\"is number\" text"
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: inc/cpcff_admin_int.inc.php:
|
192 |
msgid "\"only digits\" text"
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: inc/cpcff_admin_int.inc.php:
|
196 |
msgid "\"under maximum\" text"
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: inc/cpcff_admin_int.inc.php:
|
200 |
msgid "\"over minimum\" text"
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: inc/cpcff_admin_int.inc.php:
|
204 |
msgid "Note"
|
205 |
msgstr ""
|
206 |
|
207 |
-
#: inc/cpcff_admin_int.inc.php:
|
208 |
msgid "To insert this form in a post/page, use the dedicated icon"
|
209 |
msgstr ""
|
210 |
|
211 |
-
#: inc/cpcff_admin_int.inc.php:
|
212 |
msgid "Insert Calculated Fields Form"
|
213 |
msgstr ""
|
214 |
|
215 |
-
#: inc/cpcff_admin_int.inc.php:
|
216 |
msgid ""
|
217 |
"which has been added to your Upload/Insert Menu, just below the title of "
|
218 |
"your Post/Page."
|
219 |
msgstr ""
|
220 |
|
221 |
-
#: inc/cpcff_admin_int.inc.php:
|
222 |
-
#: inc/cpcff_admin_int_list.inc.php:
|
223 |
msgid "Request Custom Modifications"
|
224 |
msgstr ""
|
225 |
|
226 |
-
#: inc/cpcff_admin_int.inc.php:
|
227 |
-
#: inc/cpcff_admin_int_list.inc.php:
|
228 |
msgid "Help"
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: inc/cpcff_admin_int.inc.php:
|
232 |
msgid ""
|
233 |
"The following settings are available only in the <a href=\"https://cff."
|
234 |
-
"dwbooster.com
|
235 |
msgstr ""
|
236 |
|
237 |
-
#: inc/cpcff_admin_int.inc.php:
|
238 |
msgid "Form Processing and Payment Settings"
|
239 |
msgstr ""
|
240 |
|
241 |
-
#: inc/cpcff_admin_int.inc.php:
|
242 |
msgid "Payment Settings"
|
243 |
msgstr ""
|
244 |
|
245 |
-
#: inc/cpcff_admin_int.inc.php:
|
246 |
msgid "Request cost"
|
247 |
msgstr ""
|
248 |
|
249 |
-
#: inc/cpcff_admin_int.inc.php:
|
250 |
msgid "Currency"
|
251 |
msgstr ""
|
252 |
|
253 |
-
#: inc/cpcff_admin_int.inc.php:
|
254 |
msgid "Base amount"
|
255 |
msgstr ""
|
256 |
|
257 |
-
#: inc/cpcff_admin_int.inc.php:
|
258 |
msgid ""
|
259 |
"Minimum amount to charge. If the final price is lesser than this number, the "
|
260 |
"base amount will be applied."
|
261 |
msgstr ""
|
262 |
|
263 |
-
#: inc/cpcff_admin_int.inc.php:
|
264 |
msgid "Paypal product name"
|
265 |
msgstr ""
|
266 |
|
267 |
-
#: inc/cpcff_admin_int.inc.php:
|
268 |
msgid "Discount Codes"
|
269 |
msgstr ""
|
270 |
|
271 |
-
#: inc/cpcff_admin_int.inc.php:
|
272 |
msgid "This feature isn't available in this version."
|
273 |
msgstr ""
|
274 |
|
275 |
-
#: inc/cpcff_admin_int.inc.php:
|
276 |
msgid "Add new discount code"
|
277 |
msgstr ""
|
278 |
|
279 |
-
#: inc/cpcff_admin_int.inc.php:
|
280 |
msgid "Code"
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: inc/cpcff_admin_int.inc.php:
|
284 |
msgid "Discount"
|
285 |
msgstr ""
|
286 |
|
287 |
-
#: inc/cpcff_admin_int.inc.php:
|
288 |
msgid "Percent"
|
289 |
msgstr ""
|
290 |
|
291 |
-
#: inc/cpcff_admin_int.inc.php:
|
292 |
msgid "Fixed Value"
|
293 |
msgstr ""
|
294 |
|
295 |
-
#: inc/cpcff_admin_int.inc.php:
|
296 |
msgid "Valid until"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: inc/cpcff_admin_int.inc.php:
|
300 |
msgid "Add"
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: inc/cpcff_admin_int.inc.php:
|
304 |
msgid "Note: Expiration date based in server time. Server time now is"
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: inc/cpcff_admin_int.inc.php:
|
308 |
msgid "Paypal Payment Configuration"
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: inc/cpcff_admin_int.inc.php:
|
312 |
msgid "Enable Paypal Payments?"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: inc/cpcff_admin_int.inc.php:
|
316 |
-
#: inc/cpcff_admin_int.inc.php:
|
317 |
msgid "No"
|
318 |
msgstr ""
|
319 |
|
320 |
-
#: inc/cpcff_admin_int.inc.php:
|
321 |
msgid ""
|
322 |
"Note: If \"Optional\" is selected, a radiobutton will appear in the form to "
|
323 |
"select if the payment will be made with PayPal or not."
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: inc/cpcff_admin_int.inc.php:
|
327 |
msgid "Label for the \"<strong>Pay with PayPal</strong>\" option"
|
328 |
msgstr ""
|
329 |
|
330 |
-
#: inc/cpcff_admin_int.inc.php:
|
331 |
msgid "Paypal Mode"
|
332 |
msgstr ""
|
333 |
|
334 |
-
#: inc/cpcff_admin_int.inc.php:
|
335 |
msgid "Production - real payments processed"
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: inc/cpcff_admin_int.inc.php:
|
339 |
msgid "SandBox - PayPal testing sandbox area"
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: inc/cpcff_admin_int.inc.php:
|
343 |
msgid "Paypal email"
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: inc/cpcff_admin_int.inc.php:
|
347 |
msgid "A $0 amount to pay means"
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: inc/cpcff_admin_int.inc.php:
|
351 |
msgid "Let the user enter any amount at PayPal (ex: for a donation)"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: inc/cpcff_admin_int.inc.php:
|
355 |
msgid "Don't require any payment. Form is submitted skiping the PayPal page."
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: inc/cpcff_admin_int.inc.php:
|
359 |
msgid "Paypal language"
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: inc/cpcff_admin_int.inc.php:
|
363 |
msgid "Payment frequency"
|
364 |
msgstr ""
|
365 |
|
366 |
-
#: inc/cpcff_admin_int.inc.php:
|
367 |
msgid "One time payment (default option, user is billed only once)"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: inc/cpcff_admin_int.inc.php:
|
371 |
msgid "Bill the user every 1 month"
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: inc/cpcff_admin_int.inc.php:
|
375 |
msgid "Bill the user every 3 months"
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: inc/cpcff_admin_int.inc.php:
|
379 |
msgid "Bill the user every 6 months"
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: inc/cpcff_admin_int.inc.php:
|
383 |
msgid "Bill the user every 12 months"
|
384 |
msgstr ""
|
385 |
|
386 |
-
#: inc/cpcff_admin_int.inc.php:
|
387 |
msgid "Paypal prompt buyers for shipping address"
|
388 |
msgstr ""
|
389 |
|
390 |
-
#: inc/cpcff_admin_int.inc.php:
|
391 |
msgid "Do not prompt for an address"
|
392 |
msgstr ""
|
393 |
|
394 |
-
#: inc/cpcff_admin_int.inc.php:
|
395 |
msgid "Prompt for an address, but do not require one"
|
396 |
msgstr ""
|
397 |
|
398 |
-
#: inc/cpcff_admin_int.inc.php:
|
399 |
msgid "Prompt for an address and require one"
|
400 |
msgstr ""
|
401 |
|
402 |
-
#: inc/cpcff_admin_int.inc.php:
|
403 |
msgid "Form Processing / Email Settings"
|
404 |
msgstr ""
|
405 |
|
406 |
-
#: inc/cpcff_admin_int.inc.php:
|
407 |
msgid "\"From\" email"
|
408 |
msgstr ""
|
409 |
|
410 |
-
#: inc/cpcff_admin_int.inc.php:
|
411 |
msgid ""
|
412 |
"This email is required if the \"From fixed email address\" option is "
|
413 |
"selected, or it is enabled the email copy to the user."
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: inc/cpcff_admin_int.inc.php:
|
417 |
msgid "Destination emails (comma separated)"
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: inc/cpcff_admin_int.inc.php:
|
421 |
msgid "Email subject"
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: inc/cpcff_admin_int.inc.php:
|
425 |
msgid "Include additional information?"
|
426 |
msgstr ""
|
427 |
|
428 |
-
#: inc/cpcff_admin_int.inc.php:
|
429 |
-
#: inc/cpcff_admin_int.inc.php:
|
430 |
msgid "Yes"
|
431 |
msgstr ""
|
432 |
|
433 |
-
#: inc/cpcff_admin_int.inc.php:
|
434 |
msgid ""
|
435 |
"If the \"No\" option is selected the plugin won't capture the IP address of "
|
436 |
"users."
|
437 |
msgstr ""
|
438 |
|
439 |
-
#: inc/cpcff_admin_int.inc.php:
|
440 |
msgid "Thank you page (after sending the message)"
|
441 |
msgstr ""
|
442 |
|
443 |
-
#: inc/cpcff_admin_int.inc.php:
|
444 |
msgid "Email format?"
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: inc/cpcff_admin_int.inc.php:
|
448 |
msgid "Plain Text (default)"
|
449 |
msgstr ""
|
450 |
|
451 |
-
#: inc/cpcff_admin_int.inc.php:
|
452 |
msgid "HTML (use html in the textarea below)"
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: inc/cpcff_admin_int.inc.php:
|
456 |
msgid "Message"
|
457 |
msgstr ""
|
458 |
|
459 |
-
#: inc/cpcff_admin_int.inc.php:
|
460 |
msgid "Email Copy to User"
|
461 |
msgstr ""
|
462 |
|
463 |
-
#: inc/cpcff_admin_int.inc.php:
|
464 |
msgid "Send confirmation/thank you message to user?"
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: inc/cpcff_admin_int.inc.php:
|
468 |
msgid "Email field on the form"
|
469 |
msgstr ""
|
470 |
|
471 |
-
#: inc/cpcff_admin_int.inc.php:
|
472 |
msgid "Captcha Verification"
|
473 |
msgstr ""
|
474 |
|
475 |
-
#: inc/cpcff_admin_int.inc.php:
|
476 |
msgid "Use Captcha Verification?"
|
477 |
msgstr ""
|
478 |
|
479 |
-
#: inc/cpcff_admin_int.inc.php:
|
480 |
msgid "Width"
|
481 |
msgstr ""
|
482 |
|
483 |
-
#: inc/cpcff_admin_int.inc.php:
|
484 |
msgid "Height"
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: inc/cpcff_admin_int.inc.php:
|
488 |
msgid "Chars"
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: inc/cpcff_admin_int.inc.php:
|
492 |
msgid "Min font size"
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: inc/cpcff_admin_int.inc.php:
|
496 |
msgid "Max font size"
|
497 |
msgstr ""
|
498 |
|
499 |
-
#: inc/cpcff_admin_int.inc.php:
|
500 |
msgid "security code"
|
501 |
msgstr ""
|
502 |
|
503 |
-
#: inc/cpcff_admin_int.inc.php:
|
504 |
msgid "Noise"
|
505 |
msgstr ""
|
506 |
|
507 |
-
#: inc/cpcff_admin_int.inc.php:
|
508 |
msgid "Noise Length"
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: inc/cpcff_admin_int.inc.php:
|
512 |
msgid "Background"
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: inc/cpcff_admin_int.inc.php:
|
516 |
msgid "Font"
|
517 |
msgstr ""
|
518 |
|
@@ -682,15 +717,15 @@ msgstr ""
|
|
682 |
msgid "Do not load the forms with crawlers"
|
683 |
msgstr ""
|
684 |
|
685 |
-
#: inc/cpcff_admin_int_list.inc.php:
|
686 |
msgid "* The forms are not loaded when website is being indexed by searchers."
|
687 |
msgstr ""
|
688 |
|
689 |
-
#: inc/cpcff_admin_int_list.inc.php:
|
690 |
msgid "UPDATE"
|
691 |
msgstr ""
|
692 |
|
693 |
-
#: inc/cpcff_admin_int_list.inc.php:
|
694 |
msgid "Upgrade"
|
695 |
msgstr ""
|
696 |
|
@@ -750,34 +785,41 @@ msgstr ""
|
|
750 |
msgid "Create a JavaScript var from POST, GET, SESSION, or COOKIE var"
|
751 |
msgstr ""
|
752 |
|
753 |
-
#: inc/cpcff_page_builders.inc.php:
|
754 |
#: pagebuilders/elementor/elementor.pb.php:59
|
755 |
msgid "Select a form"
|
756 |
msgstr ""
|
757 |
|
758 |
-
#: inc/cpcff_page_builders.inc.php:
|
759 |
msgid "Forms"
|
760 |
msgstr ""
|
761 |
|
762 |
-
#: inc/cpcff_page_builders.inc.php:
|
763 |
-
#: pagebuilders/beaverbuilder/cff/cff.inc.php:
|
764 |
#: pagebuilders/elementor/elementor.pb.php:70
|
765 |
msgid "Additional attributes"
|
766 |
msgstr ""
|
767 |
|
768 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
769 |
msgid "Select the form and enter the additional attributes"
|
770 |
msgstr ""
|
771 |
|
772 |
-
#: pagebuilders/beaverbuilder/cff/cff.inc.php:
|
773 |
msgid "Form information"
|
774 |
msgstr ""
|
775 |
|
776 |
-
#: pagebuilders/beaverbuilder/cff/cff.inc.php:
|
777 |
msgid "Select form"
|
778 |
msgstr ""
|
779 |
|
780 |
-
#: pagebuilders/beaverbuilder/cff/cff.inc.php:
|
781 |
msgid "Class name"
|
782 |
msgstr ""
|
783 |
|
@@ -834,15 +876,15 @@ msgstr ""
|
|
834 |
msgid "Create javascript variable"
|
835 |
msgstr ""
|
836 |
|
837 |
-
#: pagebuilders/elementor/elementor.pb.php:
|
838 |
msgid "Variable Shortcode"
|
839 |
msgstr ""
|
840 |
|
841 |
-
#: pagebuilders/elementor/elementor.pb.php:
|
842 |
msgid "Variable shortcode"
|
843 |
msgstr ""
|
844 |
|
845 |
-
#: pagebuilders/elementor/elementor.pb.php:
|
846 |
msgid "I need help [+]"
|
847 |
msgstr ""
|
848 |
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: \n"
|
4 |
+
"POT-Creation-Date: 2021-07-04 01:10+0200\n"
|
5 |
+
"PO-Revision-Date: 2021-07-04 01:10+0200\n"
|
6 |
"Last-Translator: CodePeople\n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: en_US\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 3.0\n"
|
13 |
"X-Poedit-Basepath: ..\n"
|
14 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
"X-Poedit-KeywordsList: __;_e;esc_attr__;esc_attr_e\n"
|
42 |
msgstr ""
|
43 |
|
44 |
#: inc/cpcff_admin_int.inc.php:50 inc/cpcff_admin_int_list.inc.php:100
|
45 |
+
#: inc/cpcff_page_builders.inc.php:171
|
46 |
#: pagebuilders/beaverbuilder/cff/cff/cff.php:9
|
47 |
#: pagebuilders/beaverbuilder/cff/cff/cff.php:11
|
48 |
#: pagebuilders/beaverbuilder/cff/cff/cff.php:12
|
87 |
msgstr ""
|
88 |
|
89 |
#: inc/cpcff_admin_int.inc.php:91 inc/cpcff_admin_int.inc.php:212
|
90 |
+
#: inc/cpcff_admin_int.inc.php:591
|
91 |
msgid "Preview"
|
92 |
msgstr ""
|
93 |
|
102 |
#: inc/cpcff_admin_int.inc.php:102
|
103 |
msgid ""
|
104 |
"If you need also the form to be sent to the server side for processing (for "
|
105 |
+
"example to deliver emails) then the <a href=\"https://cff.dwbooster.com/"
|
106 |
+
"download\" target=\"_blank\">Commercial versions</a> of the plugin are "
|
107 |
+
"required."
|
108 |
msgstr ""
|
109 |
|
110 |
#: inc/cpcff_admin_int.inc.php:118
|
127 |
msgid "Field Settings"
|
128 |
msgstr ""
|
129 |
|
130 |
+
#: inc/cpcff_admin_int.inc.php:211 inc/cpcff_admin_int.inc.php:333
|
131 |
+
#: inc/cpcff_admin_int.inc.php:635
|
132 |
msgid "Save Changes"
|
133 |
msgstr ""
|
134 |
|
136 |
msgid "Generate revisions in the form preview as well"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: inc/cpcff_admin_int.inc.php:216
|
140 |
+
msgid "Texts definition"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
#: inc/cpcff_admin_int.inc.php:217
|
144 |
+
msgid "Error texts"
|
145 |
+
msgstr ""
|
146 |
+
|
147 |
+
#: inc/cpcff_admin_int.inc.php:218
|
148 |
+
msgid "General payment settings"
|
149 |
+
msgstr ""
|
150 |
+
|
151 |
+
#: inc/cpcff_admin_int.inc.php:219
|
152 |
+
msgid "PayPal integration"
|
153 |
+
msgstr ""
|
154 |
+
|
155 |
+
#: inc/cpcff_admin_int.inc.php:220
|
156 |
+
msgid "Notification email"
|
157 |
msgstr ""
|
158 |
|
159 |
#: inc/cpcff_admin_int.inc.php:221
|
160 |
+
msgid "Email copy to user"
|
161 |
+
msgstr ""
|
162 |
+
|
163 |
+
#: inc/cpcff_admin_int.inc.php:222
|
164 |
+
msgid "Captcha settings"
|
165 |
msgstr ""
|
166 |
|
167 |
#: inc/cpcff_admin_int.inc.php:225
|
168 |
+
msgid "Define Texts"
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#: inc/cpcff_admin_int.inc.php:229
|
172 |
+
msgid "Previous button label (text)"
|
173 |
+
msgstr ""
|
174 |
+
|
175 |
+
#: inc/cpcff_admin_int.inc.php:233
|
176 |
msgid "Next button label (text)"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: inc/cpcff_admin_int.inc.php:238
|
180 |
msgid ""
|
181 |
"- The styles can be applied into any of the CSS files of your theme or into "
|
182 |
"the CSS file <em>\"calculated-fields-form\\css\\stylepublic.css\"</em>."
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: inc/cpcff_admin_int.inc.php:239
|
186 |
msgid ""
|
187 |
"- For general CSS styles modifications to the form and samples <a href="
|
188 |
"\"https://cff.dwbooster.com/faq#q82\" target=\"_blank\">check this FAQ</a>."
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: inc/cpcff_admin_int.inc.php:257 inc/cpcff_admin_int.inc.php:318
|
192 |
+
#: inc/cpcff_admin_int.inc.php:392 inc/cpcff_admin_int.inc.php:466
|
193 |
+
#: inc/cpcff_admin_int.inc.php:515 inc/cpcff_admin_int.inc.php:557
|
194 |
+
#: inc/cpcff_admin_int.inc.php:624
|
195 |
+
msgid "Up to form structure"
|
196 |
+
msgstr ""
|
197 |
+
|
198 |
+
#: inc/cpcff_admin_int.inc.php:262
|
199 |
msgid "Validation Settings"
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: inc/cpcff_admin_int.inc.php:266
|
203 |
msgid "\"is required\" text"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: inc/cpcff_admin_int.inc.php:270
|
207 |
msgid "\"is email\" text"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: inc/cpcff_admin_int.inc.php:274
|
211 |
msgid "\"is valid captcha\" text"
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: inc/cpcff_admin_int.inc.php:279
|
215 |
msgid "\"is valid date (mm/dd/yyyy)\" text"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: inc/cpcff_admin_int.inc.php:283
|
219 |
msgid "\"is valid date (dd/mm/yyyy)\" text"
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: inc/cpcff_admin_int.inc.php:287
|
223 |
msgid "\"is number\" text"
|
224 |
msgstr ""
|
225 |
|
226 |
+
#: inc/cpcff_admin_int.inc.php:291
|
227 |
msgid "\"only digits\" text"
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: inc/cpcff_admin_int.inc.php:295
|
231 |
msgid "\"under maximum\" text"
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: inc/cpcff_admin_int.inc.php:299
|
235 |
msgid "\"over minimum\" text"
|
236 |
msgstr ""
|
237 |
|
238 |
+
#: inc/cpcff_admin_int.inc.php:323
|
239 |
msgid "Note"
|
240 |
msgstr ""
|
241 |
|
242 |
+
#: inc/cpcff_admin_int.inc.php:325
|
243 |
msgid "To insert this form in a post/page, use the dedicated icon"
|
244 |
msgstr ""
|
245 |
|
246 |
+
#: inc/cpcff_admin_int.inc.php:326 inc/cpcff_main.inc.php:238
|
247 |
msgid "Insert Calculated Fields Form"
|
248 |
msgstr ""
|
249 |
|
250 |
+
#: inc/cpcff_admin_int.inc.php:327
|
251 |
msgid ""
|
252 |
"which has been added to your Upload/Insert Menu, just below the title of "
|
253 |
"your Post/Page."
|
254 |
msgstr ""
|
255 |
|
256 |
+
#: inc/cpcff_admin_int.inc.php:336 inc/cpcff_admin_int.inc.php:638
|
257 |
+
#: inc/cpcff_admin_int_list.inc.php:270
|
258 |
msgid "Request Custom Modifications"
|
259 |
msgstr ""
|
260 |
|
261 |
+
#: inc/cpcff_admin_int.inc.php:336 inc/cpcff_admin_int.inc.php:638
|
262 |
+
#: inc/cpcff_admin_int_list.inc.php:270 inc/cpcff_main.inc.php:221
|
263 |
msgid "Help"
|
264 |
msgstr ""
|
265 |
|
266 |
+
#: inc/cpcff_admin_int.inc.php:340
|
267 |
msgid ""
|
268 |
"The following settings are available only in the <a href=\"https://cff."
|
269 |
+
"dwbooster.com/download\" target=\"_blank\">Commercial versions</a>"
|
270 |
msgstr ""
|
271 |
|
272 |
+
#: inc/cpcff_admin_int.inc.php:342
|
273 |
msgid "Form Processing and Payment Settings"
|
274 |
msgstr ""
|
275 |
|
276 |
+
#: inc/cpcff_admin_int.inc.php:346
|
277 |
msgid "Payment Settings"
|
278 |
msgstr ""
|
279 |
|
280 |
+
#: inc/cpcff_admin_int.inc.php:351
|
281 |
msgid "Request cost"
|
282 |
msgstr ""
|
283 |
|
284 |
+
#: inc/cpcff_admin_int.inc.php:356
|
285 |
msgid "Currency"
|
286 |
msgstr ""
|
287 |
|
288 |
+
#: inc/cpcff_admin_int.inc.php:361
|
289 |
msgid "Base amount"
|
290 |
msgstr ""
|
291 |
|
292 |
+
#: inc/cpcff_admin_int.inc.php:362
|
293 |
msgid ""
|
294 |
"Minimum amount to charge. If the final price is lesser than this number, the "
|
295 |
"base amount will be applied."
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: inc/cpcff_admin_int.inc.php:367
|
299 |
msgid "Paypal product name"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: inc/cpcff_admin_int.inc.php:372
|
303 |
msgid "Discount Codes"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: inc/cpcff_admin_int.inc.php:374
|
307 |
msgid "This feature isn't available in this version."
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: inc/cpcff_admin_int.inc.php:377
|
311 |
msgid "Add new discount code"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: inc/cpcff_admin_int.inc.php:379
|
315 |
msgid "Code"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: inc/cpcff_admin_int.inc.php:380
|
319 |
msgid "Discount"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: inc/cpcff_admin_int.inc.php:381
|
323 |
msgid "Percent"
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: inc/cpcff_admin_int.inc.php:382
|
327 |
msgid "Fixed Value"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: inc/cpcff_admin_int.inc.php:385
|
331 |
msgid "Valid until"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: inc/cpcff_admin_int.inc.php:386 inc/cpcff_admin_int_list.inc.php:211
|
335 |
msgid "Add"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: inc/cpcff_admin_int.inc.php:388
|
339 |
msgid "Note: Expiration date based in server time. Server time now is"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: inc/cpcff_admin_int.inc.php:397
|
343 |
msgid "Paypal Payment Configuration"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: inc/cpcff_admin_int.inc.php:402
|
347 |
msgid "Enable Paypal Payments?"
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: inc/cpcff_admin_int.inc.php:404 inc/cpcff_admin_int.inc.php:492
|
351 |
+
#: inc/cpcff_admin_int.inc.php:530 inc/cpcff_admin_int.inc.php:571
|
352 |
msgid "No"
|
353 |
msgstr ""
|
354 |
|
355 |
+
#: inc/cpcff_admin_int.inc.php:406
|
356 |
msgid ""
|
357 |
"Note: If \"Optional\" is selected, a radiobutton will appear in the form to "
|
358 |
"select if the payment will be made with PayPal or not."
|
359 |
msgstr ""
|
360 |
|
361 |
+
#: inc/cpcff_admin_int.inc.php:408
|
362 |
msgid "Label for the \"<strong>Pay with PayPal</strong>\" option"
|
363 |
msgstr ""
|
364 |
|
365 |
+
#: inc/cpcff_admin_int.inc.php:414
|
366 |
msgid "Paypal Mode"
|
367 |
msgstr ""
|
368 |
|
369 |
+
#: inc/cpcff_admin_int.inc.php:416
|
370 |
msgid "Production - real payments processed"
|
371 |
msgstr ""
|
372 |
|
373 |
+
#: inc/cpcff_admin_int.inc.php:417
|
374 |
msgid "SandBox - PayPal testing sandbox area"
|
375 |
msgstr ""
|
376 |
|
377 |
+
#: inc/cpcff_admin_int.inc.php:423
|
378 |
msgid "Paypal email"
|
379 |
msgstr ""
|
380 |
|
381 |
+
#: inc/cpcff_admin_int.inc.php:428
|
382 |
msgid "A $0 amount to pay means"
|
383 |
msgstr ""
|
384 |
|
385 |
+
#: inc/cpcff_admin_int.inc.php:430
|
386 |
msgid "Let the user enter any amount at PayPal (ex: for a donation)"
|
387 |
msgstr ""
|
388 |
|
389 |
+
#: inc/cpcff_admin_int.inc.php:431
|
390 |
msgid "Don't require any payment. Form is submitted skiping the PayPal page."
|
391 |
msgstr ""
|
392 |
|
393 |
+
#: inc/cpcff_admin_int.inc.php:437
|
394 |
msgid "Paypal language"
|
395 |
msgstr ""
|
396 |
|
397 |
+
#: inc/cpcff_admin_int.inc.php:442
|
398 |
msgid "Payment frequency"
|
399 |
msgstr ""
|
400 |
|
401 |
+
#: inc/cpcff_admin_int.inc.php:446
|
402 |
msgid "One time payment (default option, user is billed only once)"
|
403 |
msgstr ""
|
404 |
|
405 |
+
#: inc/cpcff_admin_int.inc.php:447
|
406 |
msgid "Bill the user every 1 month"
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: inc/cpcff_admin_int.inc.php:448
|
410 |
msgid "Bill the user every 3 months"
|
411 |
msgstr ""
|
412 |
|
413 |
+
#: inc/cpcff_admin_int.inc.php:449
|
414 |
msgid "Bill the user every 6 months"
|
415 |
msgstr ""
|
416 |
|
417 |
+
#: inc/cpcff_admin_int.inc.php:450
|
418 |
msgid "Bill the user every 12 months"
|
419 |
msgstr ""
|
420 |
|
421 |
+
#: inc/cpcff_admin_int.inc.php:455
|
422 |
msgid "Paypal prompt buyers for shipping address"
|
423 |
msgstr ""
|
424 |
|
425 |
+
#: inc/cpcff_admin_int.inc.php:459
|
426 |
msgid "Do not prompt for an address"
|
427 |
msgstr ""
|
428 |
|
429 |
+
#: inc/cpcff_admin_int.inc.php:460
|
430 |
msgid "Prompt for an address, but do not require one"
|
431 |
msgstr ""
|
432 |
|
433 |
+
#: inc/cpcff_admin_int.inc.php:461
|
434 |
msgid "Prompt for an address and require one"
|
435 |
msgstr ""
|
436 |
|
437 |
+
#: inc/cpcff_admin_int.inc.php:471
|
438 |
msgid "Form Processing / Email Settings"
|
439 |
msgstr ""
|
440 |
|
441 |
+
#: inc/cpcff_admin_int.inc.php:475
|
442 |
msgid "\"From\" email"
|
443 |
msgstr ""
|
444 |
|
445 |
+
#: inc/cpcff_admin_int.inc.php:476
|
446 |
msgid ""
|
447 |
"This email is required if the \"From fixed email address\" option is "
|
448 |
"selected, or it is enabled the email copy to the user."
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: inc/cpcff_admin_int.inc.php:479
|
452 |
msgid "Destination emails (comma separated)"
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: inc/cpcff_admin_int.inc.php:483 inc/cpcff_admin_int.inc.php:539
|
456 |
msgid "Email subject"
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: inc/cpcff_admin_int.inc.php:487
|
460 |
msgid "Include additional information?"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: inc/cpcff_admin_int.inc.php:491 inc/cpcff_admin_int.inc.php:529
|
464 |
+
#: inc/cpcff_admin_int.inc.php:570
|
465 |
msgid "Yes"
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: inc/cpcff_admin_int.inc.php:493
|
469 |
msgid ""
|
470 |
"If the \"No\" option is selected the plugin won't capture the IP address of "
|
471 |
"users."
|
472 |
msgstr ""
|
473 |
|
474 |
+
#: inc/cpcff_admin_int.inc.php:497
|
475 |
msgid "Thank you page (after sending the message)"
|
476 |
msgstr ""
|
477 |
|
478 |
+
#: inc/cpcff_admin_int.inc.php:501 inc/cpcff_admin_int.inc.php:543
|
479 |
msgid "Email format?"
|
480 |
msgstr ""
|
481 |
|
482 |
+
#: inc/cpcff_admin_int.inc.php:505 inc/cpcff_admin_int.inc.php:547
|
483 |
msgid "Plain Text (default)"
|
484 |
msgstr ""
|
485 |
|
486 |
+
#: inc/cpcff_admin_int.inc.php:506 inc/cpcff_admin_int.inc.php:548
|
487 |
msgid "HTML (use html in the textarea below)"
|
488 |
msgstr ""
|
489 |
|
490 |
+
#: inc/cpcff_admin_int.inc.php:511 inc/cpcff_admin_int.inc.php:553
|
491 |
msgid "Message"
|
492 |
msgstr ""
|
493 |
|
494 |
+
#: inc/cpcff_admin_int.inc.php:521
|
495 |
msgid "Email Copy to User"
|
496 |
msgstr ""
|
497 |
|
498 |
+
#: inc/cpcff_admin_int.inc.php:525
|
499 |
msgid "Send confirmation/thank you message to user?"
|
500 |
msgstr ""
|
501 |
|
502 |
+
#: inc/cpcff_admin_int.inc.php:535
|
503 |
msgid "Email field on the form"
|
504 |
msgstr ""
|
505 |
|
506 |
+
#: inc/cpcff_admin_int.inc.php:562
|
507 |
msgid "Captcha Verification"
|
508 |
msgstr ""
|
509 |
|
510 |
+
#: inc/cpcff_admin_int.inc.php:566
|
511 |
msgid "Use Captcha Verification?"
|
512 |
msgstr ""
|
513 |
|
514 |
+
#: inc/cpcff_admin_int.inc.php:577
|
515 |
msgid "Width"
|
516 |
msgstr ""
|
517 |
|
518 |
+
#: inc/cpcff_admin_int.inc.php:579
|
519 |
msgid "Height"
|
520 |
msgstr ""
|
521 |
|
522 |
+
#: inc/cpcff_admin_int.inc.php:581
|
523 |
msgid "Chars"
|
524 |
msgstr ""
|
525 |
|
526 |
+
#: inc/cpcff_admin_int.inc.php:586
|
527 |
msgid "Min font size"
|
528 |
msgstr ""
|
529 |
|
530 |
+
#: inc/cpcff_admin_int.inc.php:588
|
531 |
msgid "Max font size"
|
532 |
msgstr ""
|
533 |
|
534 |
+
#: inc/cpcff_admin_int.inc.php:593
|
535 |
msgid "security code"
|
536 |
msgstr ""
|
537 |
|
538 |
+
#: inc/cpcff_admin_int.inc.php:599
|
539 |
msgid "Noise"
|
540 |
msgstr ""
|
541 |
|
542 |
+
#: inc/cpcff_admin_int.inc.php:601
|
543 |
msgid "Noise Length"
|
544 |
msgstr ""
|
545 |
|
546 |
+
#: inc/cpcff_admin_int.inc.php:606
|
547 |
msgid "Background"
|
548 |
msgstr ""
|
549 |
|
550 |
+
#: inc/cpcff_admin_int.inc.php:613
|
551 |
msgid "Font"
|
552 |
msgstr ""
|
553 |
|
717 |
msgid "Do not load the forms with crawlers"
|
718 |
msgstr ""
|
719 |
|
720 |
+
#: inc/cpcff_admin_int_list.inc.php:261
|
721 |
msgid "* The forms are not loaded when website is being indexed by searchers."
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: inc/cpcff_admin_int_list.inc.php:263
|
725 |
msgid "UPDATE"
|
726 |
msgstr ""
|
727 |
|
728 |
+
#: inc/cpcff_admin_int_list.inc.php:270 inc/cpcff_main.inc.php:220
|
729 |
msgid "Upgrade"
|
730 |
msgstr ""
|
731 |
|
785 |
msgid "Create a JavaScript var from POST, GET, SESSION, or COOKIE var"
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: inc/cpcff_page_builders.inc.php:97
|
789 |
#: pagebuilders/elementor/elementor.pb.php:59
|
790 |
msgid "Select a form"
|
791 |
msgstr ""
|
792 |
|
793 |
+
#: inc/cpcff_page_builders.inc.php:98
|
794 |
msgid "Forms"
|
795 |
msgstr ""
|
796 |
|
797 |
+
#: inc/cpcff_page_builders.inc.php:99
|
798 |
+
#: pagebuilders/beaverbuilder/cff/cff.inc.php:38
|
799 |
#: pagebuilders/elementor/elementor.pb.php:70
|
800 |
msgid "Additional attributes"
|
801 |
msgstr ""
|
802 |
|
803 |
+
#: inc/cpcff_page_builders.inc.php:100
|
804 |
+
#: pagebuilders/beaverbuilder/cff/cff.inc.php:43
|
805 |
+
#: pagebuilders/elementor/elementor.pb.php:85
|
806 |
+
#: pagebuilders/siteorigin/siteorigin-cpcff/fields/cff-button.class.php:12
|
807 |
+
msgid "Edit form"
|
808 |
+
msgstr ""
|
809 |
+
|
810 |
+
#: pagebuilders/beaverbuilder/cff/cff.inc.php:21
|
811 |
msgid "Select the form and enter the additional attributes"
|
812 |
msgstr ""
|
813 |
|
814 |
+
#: pagebuilders/beaverbuilder/cff/cff.inc.php:24
|
815 |
msgid "Form information"
|
816 |
msgstr ""
|
817 |
|
818 |
+
#: pagebuilders/beaverbuilder/cff/cff.inc.php:28
|
819 |
msgid "Select form"
|
820 |
msgstr ""
|
821 |
|
822 |
+
#: pagebuilders/beaverbuilder/cff/cff.inc.php:34
|
823 |
msgid "Class name"
|
824 |
msgstr ""
|
825 |
|
876 |
msgid "Create javascript variable"
|
877 |
msgstr ""
|
878 |
|
879 |
+
#: pagebuilders/elementor/elementor.pb.php:181
|
880 |
msgid "Variable Shortcode"
|
881 |
msgstr ""
|
882 |
|
883 |
+
#: pagebuilders/elementor/elementor.pb.php:188
|
884 |
msgid "Variable shortcode"
|
885 |
msgstr ""
|
886 |
|
887 |
+
#: pagebuilders/elementor/elementor.pb.php:193
|
888 |
msgid "I need help [+]"
|
889 |
msgstr ""
|
890 |
|
pagebuilders/beaverbuilder/cff/cff.inc.php
CHANGED
@@ -7,6 +7,7 @@ $options = array();
|
|
7 |
$default = '';
|
8 |
|
9 |
$rows = $wpdb->get_results( "SELECT id, form_name FROM ".$wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_TABLE );
|
|
|
10 |
foreach ($rows as $item)
|
11 |
{
|
12 |
$options[$item->id] = $item->form_name;
|
@@ -36,6 +37,11 @@ FLBuilder::register_module(
|
|
36 |
'type' => 'text',
|
37 |
'label' => __('Additional attributes', 'calculated-fields-form')
|
38 |
),
|
|
|
|
|
|
|
|
|
|
|
39 |
)
|
40 |
)
|
41 |
)
|
7 |
$default = '';
|
8 |
|
9 |
$rows = $wpdb->get_results( "SELECT id, form_name FROM ".$wpdb->prefix.CP_CALCULATEDFIELDSF_FORMS_TABLE );
|
10 |
+
$url = CPCFF_AUXILIARY::editor_url();
|
11 |
foreach ($rows as $item)
|
12 |
{
|
13 |
$options[$item->id] = $item->form_name;
|
37 |
'type' => 'text',
|
38 |
'label' => __('Additional attributes', 'calculated-fields-form')
|
39 |
),
|
40 |
+
'form_editor' => array(
|
41 |
+
'type' => 'raw',
|
42 |
+
'preview' => 'none',
|
43 |
+
'content' => '<button style="float:right;" class="fl-builder-button fl-builder-button-small" title="'.esc_attr(__('Edit form', 'calculated-fields-form')).'" onclick="window.open(\''.esc_attr($url).'\'+document.getElementsByName(\'form_id\')[0].value);">'.esc_attr(__('Edit form', 'calculated-fields-form')).'</button>',
|
44 |
+
)
|
45 |
)
|
46 |
)
|
47 |
)
|
pagebuilders/elementor/assets/elementor.css
CHANGED
@@ -4,4 +4,8 @@
|
|
4 |
display: block !important;
|
5 |
max-width: 100% !important;
|
6 |
margin: 0 !important;
|
|
|
|
|
|
|
|
|
7 |
}
|
4 |
display: block !important;
|
5 |
max-width: 100% !important;
|
6 |
margin: 0 !important;
|
7 |
+
}
|
8 |
+
.cff-edit-form-btn button{
|
9 |
+
padding: 8px 15px;
|
10 |
+
height: auto !important;
|
11 |
}
|
pagebuilders/elementor/assets/elementor.js
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(function(){
|
2 |
+
try
|
3 |
+
{
|
4 |
+
elementor.channels.editor.on('cff_open_form_editor', function(){
|
5 |
+
try
|
6 |
+
{
|
7 |
+
if(typeof cp_calculatedfieldsf_elementor != 'undefined')
|
8 |
+
{
|
9 |
+
window.open(
|
10 |
+
cp_calculatedfieldsf_elementor.url+jQuery('[data-setting="form"] option:selected').attr('value'),
|
11 |
+
'_blank'
|
12 |
+
);
|
13 |
+
}
|
14 |
+
}
|
15 |
+
catch(err){}
|
16 |
+
});
|
17 |
+
}
|
18 |
+
catch(err){}
|
19 |
+
});
|
pagebuilders/elementor/elementor.pb.php
CHANGED
@@ -75,6 +75,21 @@ class Elementor_CFF_Widget extends Widget_Base
|
|
75 |
)
|
76 |
);
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
$this->end_controls_section();
|
79 |
} // End _register_controls
|
80 |
|
75 |
)
|
76 |
);
|
77 |
|
78 |
+
if(current_user_can( 'manage_options'))
|
79 |
+
{
|
80 |
+
$this->add_control(
|
81 |
+
'open-editor',
|
82 |
+
array(
|
83 |
+
'type' => Controls_Manager::BUTTON,
|
84 |
+
'separator' => 'before',
|
85 |
+
'text' => __('Edit form', 'calculated-fields-form'),
|
86 |
+
'classes' => 'cff-edit-form-btn',
|
87 |
+
'button_type' => 'success',
|
88 |
+
'event' => 'cff_open_form_editor'
|
89 |
+
)
|
90 |
+
);
|
91 |
+
}
|
92 |
+
|
93 |
$this->end_controls_section();
|
94 |
} // End _register_controls
|
95 |
|
pagebuilders/gutenberg/assets/js/gutenberg.js
CHANGED
@@ -50,6 +50,15 @@ jQuery(function()
|
|
50 |
generate_shortcode();
|
51 |
};
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
function get_id()
|
54 |
{
|
55 |
var output = '',
|
@@ -205,6 +214,26 @@ jQuery(function()
|
|
205 |
style:{fontStyle: 'italic'}
|
206 |
},
|
207 |
'variable_name="value"'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
)
|
209 |
]
|
210 |
)
|
50 |
generate_shortcode();
|
51 |
};
|
52 |
|
53 |
+
function edit_form()
|
54 |
+
{
|
55 |
+
try
|
56 |
+
{
|
57 |
+
window.open(cpcff_gutenberg_editor_config.editor+id, '_blank');
|
58 |
+
}
|
59 |
+
catch(err){}
|
60 |
+
};
|
61 |
+
|
62 |
function get_id()
|
63 |
{
|
64 |
var output = '',
|
214 |
style:{fontStyle: 'italic'}
|
215 |
},
|
216 |
'variable_name="value"'
|
217 |
+
),
|
218 |
+
el(
|
219 |
+
'div',
|
220 |
+
{
|
221 |
+
key: 'cpcff_inspector_button_container',
|
222 |
+
style:{
|
223 |
+
paddingTop:'20px',
|
224 |
+
display:((cpcff_gutenberg_editor_config.is_admin) ? 'block' : 'none')
|
225 |
+
}
|
226 |
+
},
|
227 |
+
el(
|
228 |
+
'input',
|
229 |
+
{
|
230 |
+
type: 'button',
|
231 |
+
key: 'cpcff_form_editor',
|
232 |
+
value: cpcff_gutenberg_editor_config['labels']['edit_form'],
|
233 |
+
className: 'button-primary',
|
234 |
+
onClick: edit_form
|
235 |
+
}
|
236 |
+
)
|
237 |
)
|
238 |
]
|
239 |
)
|
pagebuilders/siteorigin/siteorigin-cpcff/fields/cff-button.class.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class CFF_Button
|
4 |
+
*/
|
5 |
+
class SiteOrigin_Widget_Field_CFF_Button extends SiteOrigin_Widget_Field_Base {
|
6 |
+
|
7 |
+
protected function render_field( $value, $instance ) {
|
8 |
+
if ( current_user_can( 'manage_options' ) )
|
9 |
+
{
|
10 |
+
$url = CPCFF_AUXILIARY::editor_url();
|
11 |
+
?>
|
12 |
+
<input type="button" name="cff-button-edit-form" class="button-primary" value="<?php echo esc_attr( __('Edit form', 'calculated-fields-form') ); ?>" />
|
13 |
+
<script>
|
14 |
+
if(typeof jQuery != 'undefined')
|
15 |
+
{
|
16 |
+
jQuery(document).on('click', '[name="cff-button-edit-form"]', function(){
|
17 |
+
window.open(
|
18 |
+
'<?php print $url; ?>'+jQuery('select[id*="widget-siteorigin-cff-shortcode"]:visible').val(),
|
19 |
+
'_blank'
|
20 |
+
);
|
21 |
+
});
|
22 |
+
}
|
23 |
+
</script>
|
24 |
+
<?php
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
protected function sanitize_field_input($value, $instance) {}
|
29 |
+
protected function add_label_classes( $label_classes ) {}
|
30 |
+
protected function render_field_label($value, $instance) {}
|
31 |
+
protected function render_before_field( $value, $instance ) {}
|
32 |
+
protected function render_after_field( $value, $instance ) {}
|
33 |
+
}
|
pagebuilders/siteorigin/siteorigin-cpcff/siteorigin-cpcff.php
CHANGED
@@ -43,11 +43,22 @@ class SiteOrigin_CFF_Shortcode extends SiteOrigin_Widget
|
|
43 |
'type' => 'text',
|
44 |
'label' => __('Pass additional attributes to the form. Ex: attr_name="attr_value" (optional)', 'calculated-fields-form')
|
45 |
),
|
|
|
|
|
|
|
46 |
),
|
47 |
plugin_dir_path(__FILE__)
|
48 |
);
|
|
|
|
|
49 |
} // End __construct
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
function get_template_name($instance)
|
52 |
{
|
53 |
return 'siteorigin-cff-shortcode';
|
43 |
'type' => 'text',
|
44 |
'label' => __('Pass additional attributes to the form. Ex: attr_name="attr_value" (optional)', 'calculated-fields-form')
|
45 |
),
|
46 |
+
'btn' => array(
|
47 |
+
'type' => 'CFF_Button'
|
48 |
+
),
|
49 |
),
|
50 |
plugin_dir_path(__FILE__)
|
51 |
);
|
52 |
+
|
53 |
+
add_filter( 'siteorigin_widgets_field_class_paths', array( $this, 'add_location_field_path' ) );
|
54 |
} // End __construct
|
55 |
|
56 |
+
function add_location_field_path($class_paths)
|
57 |
+
{
|
58 |
+
$class_paths[] = plugin_dir_path( __FILE__ ) . 'fields/';
|
59 |
+
return $class_paths;
|
60 |
+
} // End add_location_field_path
|
61 |
+
|
62 |
function get_template_name($instance)
|
63 |
{
|
64 |
return 'siteorigin-cff-shortcode';
|