├── CHANGELOG.md
├── CSSClasses
├── bootstrap5.json
├── none.json
├── pico2.json
└── uikit3.json
├── Examples
├── ajaxform.php
├── complexForm.php
├── contactform-2.php
├── contactform.php
├── contactformWithPHPMailerModule.php
├── contactformWithWireMailPostmarkAppModule.php
├── contactformWithWireMailSMTPModule.php
├── default-inputs.php
├── examplequestions.txt
├── field-validation.php
├── fileuploadtopage.php
├── formwithGrid.php
├── inputfield_conditions
│ ├── conditiontypes.php
│ ├── multipleconditionsWithAndOr.php
│ ├── multivaluefieldsconditions.php
│ ├── operatortypes.php
│ └── usingconditionsOnNonInputfields.php
├── inputfieldexamples.php
└── setmultiplequestionsforcaptcha.php
├── Formelements
├── Captcha
│ ├── AbstractCaptcha.php
│ ├── AbstractCaptchaFactory.php
│ ├── AbstractCharset.php
│ ├── AbstractImageCaptcha.php
│ ├── AbstractMath.php
│ ├── AbstractQuestionCaptcha.php
│ ├── AbstractSliderCaptcha.php
│ ├── AbstractTextCaptcha.php
│ ├── ImageCaptchaFactory.php
│ ├── QuestionCaptchaFactory.php
│ ├── SliderCaptchaFactory.php
│ ├── TextCaptchaFactory.php
│ ├── captchaimage.php
│ ├── fonts
│ │ └── OpenSans-SemiBold.ttf
│ └── variants
│ │ ├── DefaultImageCaptcha.php
│ │ ├── DefaultTextCaptcha.php
│ │ ├── EvenCharacterTextCaptcha.php
│ │ ├── ReverseTextCaptcha.php
│ │ ├── SimpleMathTextCaptcha.php
│ │ ├── SimpleQuestionCaptcha.php
│ │ └── SliderCaptcha.php
├── CustomRules.php
├── Element.php
├── Form.php
├── FormValidation.php
├── Images
│ └── Image.php
├── Inputelements
│ ├── Datalist
│ │ └── Datalist.php
│ ├── Inputfields.php
│ ├── Inputs
│ │ ├── Input.php
│ │ ├── InputCheckbox.php
│ │ ├── InputCheckboxMultiple.php
│ │ ├── InputColor.php
│ │ ├── InputDate.php
│ │ ├── InputDateTime.php
│ │ ├── InputEmail.php
│ │ ├── InputFile.php
│ │ ├── InputHidden.php
│ │ ├── InputMonth.php
│ │ ├── InputNumber.php
│ │ ├── InputPassword.php
│ │ ├── InputRadio.php
│ │ ├── InputRadioCheckbox.php
│ │ ├── InputRadioMultiple.php
│ │ ├── InputRange.php
│ │ ├── InputSearch.php
│ │ ├── InputTel.php
│ │ ├── InputText.php
│ │ ├── InputTime.php
│ │ ├── InputUrl.php
│ │ ├── InputWeek.php
│ │ └── defaults
│ │ │ ├── Email.php
│ │ │ ├── FileUploadMultiple.php
│ │ │ ├── FileUploadSingle.php
│ │ │ ├── Name.php
│ │ │ ├── Password.php
│ │ │ ├── PasswordConfirmation.php
│ │ │ ├── Phone.php
│ │ │ ├── Privacy.php
│ │ │ ├── SendCopy.php
│ │ │ ├── Subject.php
│ │ │ ├── Surname.php
│ │ │ └── Username.php
│ ├── Select
│ │ ├── Select.php
│ │ ├── SelectMultiple.php
│ │ └── defaults
│ │ │ ├── Gender.php
│ │ │ └── Language.php
│ └── Textarea
│ │ ├── Textarea.php
│ │ └── defaults
│ │ └── Message.php
├── Miscellaneous
│ ├── Button.php
│ ├── FieldsetClose.php
│ ├── FieldsetOpen.php
│ ├── Markup.php
│ ├── Option.php
│ ├── TraitCheckboxesAndRadios.php
│ ├── TraitCheckboxesAndRadiosMultiple.php
│ ├── TraitOption.php
│ ├── TraitOptionElements.php
│ ├── TraitPWOptions.php
│ ├── TraitTags.php
│ └── defaults
│ │ └── ResetButton.php
├── Tag.php
├── Textelements
│ ├── Alert.php
│ ├── Defaults
│ │ ├── DomainLink.php
│ │ └── PrivacyText.php
│ ├── Description.php
│ ├── Errormessage.php
│ ├── Label.php
│ ├── Legend.php
│ ├── Link.php
│ ├── Notes.php
│ ├── RequiredTextHint.php
│ ├── Successmessage.php
│ └── TextElements.php
├── ValitronAPI.php
└── Wrapper
│ ├── FieldWrapper.php
│ ├── InputWrapper.php
│ └── Wrapper.php
├── FrontendForms.module
├── FrontendFormsManager.module
├── LICENSE
├── README.md
├── RockLanguage
├── DE
│ ├── site--modules--frontendforms--config--questionfields-php.json
│ ├── site--modules--frontendforms--detail-view-php.json
│ ├── site--modules--frontendforms--formelements--captcha--abstractcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--abstractimagecaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--abstractslidercaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--abstracttextcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--defaultimagecaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--defaulttextcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--evencharactertextcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--reversetextcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--simplemathtextcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--simplequestioncaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--slidercaptcha-php.json
│ ├── site--modules--frontendforms--formelements--customrules-php.json
│ ├── site--modules--frontendforms--formelements--form-php.json
│ ├── site--modules--frontendforms--formelements--formvalidation-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputfields-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--email-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadmultiple-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadsingle-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--name-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--password-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--passwordconfirmation-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--phone-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--privacy-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--sendcopy-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--subject-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--surname-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--username-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--inputfile-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--inputpassword-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--select--defaults--gender-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--select--defaults--language-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--textarea--defaults--message-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--textarea--textarea-php.json
│ ├── site--modules--frontendforms--formelements--miscellaneous--button-php.json
│ ├── site--modules--frontendforms--formelements--miscellaneous--defaults--resetbutton-php.json
│ ├── site--modules--frontendforms--formelements--textelements--defaults--privacytext-php.json
│ ├── site--modules--frontendforms--formelements--textelements--link-php.json
│ ├── site--modules--frontendforms--frontendforms-module.json
│ ├── site--modules--frontendforms--frontendformsmanager-module.json
│ └── site--modules--frontendforms--valitron--errormessages-php.json
└── RU
│ ├── site--modules--frontendforms--config--questionfields-php.json
│ ├── site--modules--frontendforms--detail-view-php.json
│ ├── site--modules--frontendforms--formelements--captcha--abstractcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--abstractimagecaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--abstractslidercaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--abstracttextcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--defaultimagecaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--defaulttextcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--evencharactertextcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--reversetextcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--simplemathtextcaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--simplequestioncaptcha-php.json
│ ├── site--modules--frontendforms--formelements--captcha--variants--slidercaptcha-php.json
│ ├── site--modules--frontendforms--formelements--customrules-php.json
│ ├── site--modules--frontendforms--formelements--form-php.json
│ ├── site--modules--frontendforms--formelements--formvalidation-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputfields-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--email-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadmultiple-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadsingle-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--name-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--password-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--passwordconfirmation-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--phone-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--privacy-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--sendcopy-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--subject-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--surname-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--defaults--username-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--inputfile-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--inputs--inputpassword-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--select--defaults--gender-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--select--defaults--language-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--textarea--defaults--message-php.json
│ ├── site--modules--frontendforms--formelements--inputelements--textarea--textarea-php.json
│ ├── site--modules--frontendforms--formelements--miscellaneous--button-php.json
│ ├── site--modules--frontendforms--formelements--textelements--defaults--privacytext-php.json
│ ├── site--modules--frontendforms--formelements--textelements--link-php.json
│ ├── site--modules--frontendforms--frontendforms-module.json
│ ├── site--modules--frontendforms--frontendformsmanager-module.json
│ └── site--modules--frontendforms--valitron--errormessages-php.json
├── assets
└── template_2
│ └── logo.png
├── backend
├── frontendforms.css
└── frontendforms.js
├── captchaimages
├── animal
│ ├── animal1.jpg
│ ├── animal10.jpg
│ ├── animal11.jpg
│ ├── animal12.jpg
│ ├── animal13.jpg
│ ├── animal14.jpg
│ ├── animal2.jpg
│ ├── animal3.jpg
│ ├── animal4.jpg
│ ├── animal5.jpg
│ ├── animal6.jpg
│ ├── animal7.jpg
│ ├── animal8.jpg
│ └── animal9.jpg
├── car
│ ├── car1.jpg
│ ├── car2.jpg
│ ├── car3.jpg
│ ├── car4.jpg
│ └── car5.jpg
├── flower
│ ├── flower1.jpg
│ ├── flower10.jpg
│ ├── flower11.jpg
│ ├── flower12.jpg
│ ├── flower13.jpg
│ ├── flower14.jpg
│ ├── flower15.jpg
│ ├── flower2.jpg
│ ├── flower3.jpg
│ ├── flower4.jpg
│ ├── flower5.jpg
│ ├── flower6.jpg
│ ├── flower7.jpg
│ ├── flower8.jpg
│ └── flower9.jpg
├── house
│ ├── house1.jpg
│ ├── house10.jpg
│ ├── house11.jpg
│ ├── house12.jpg
│ ├── house2.jpg
│ ├── house3.jpg
│ ├── house4.jpg
│ ├── house5.jpg
│ ├── house6.jpg
│ ├── house7.jpg
│ ├── house8.jpg
│ └── house9.jpg
├── lake
│ ├── lake1.jpg
│ ├── lake2.jpg
│ ├── lake3.jpg
│ ├── lake4.jpg
│ ├── lake5.jpg
│ ├── lake6.jpg
│ ├── lake7.jpg
│ ├── lake8.jpg
│ └── lake9.jpg
├── mountain
│ ├── mountain1.jpg
│ ├── mountain10.jpg
│ ├── mountain11.jpg
│ ├── mountain12.jpg
│ ├── mountain13.jpg
│ ├── mountain2.jpg
│ ├── mountain3.jpg
│ ├── mountain4.jpg
│ ├── mountain5.jpg
│ ├── mountain6.jpg
│ ├── mountain7.jpg
│ ├── mountain8.jpg
│ └── mountain9.jpg
└── tree
│ ├── tree1.jpg
│ ├── tree10.jpg
│ ├── tree2.jpg
│ ├── tree3.jpg
│ ├── tree4.jpg
│ ├── tree5.jpg
│ ├── tree6.jpg
│ ├── tree7.jpg
│ ├── tree8.jpg
│ └── tree9.jpg
├── config
└── questionFields.php
├── detail-view.php
├── email_templates
├── template_1.html
├── template_1.png
├── template_2.html
├── template_2.png
├── template_3.html
├── template_3.png
├── template_4.html
└── template_4.png
├── frontendforms-slidercaptcha.js
├── frontendforms-slidercaptcha.min.js
├── frontendforms.css
├── frontendforms.js
├── frontendforms.min.css
├── frontendforms.min.js
├── image-picker
├── image-picker.css
├── image-picker.js
└── image-picker.min.js
├── images
├── captchafield.png
├── dashboard.png
├── forminterests-backend.jpg
├── forminterests-frontend.jpg
├── installmodule.png
├── pagetree.png
├── questionpage.png
├── questiontable.png
├── setupmenupoint.png
├── template-select.png
└── templatepreviews
│ ├── emailtemplate-placeholder-image.png
│ └── none.png
├── languages
├── de-frontendforms.csv
└── de-frontendformsmanager.csv
├── mf-conditional-fields.js
├── mf-conditional-fields.min.js
└── valitron
├── errormessages.php
└── src
├── LICENSE.txt
└── Validator.php
/CSSClasses/bootstrap5.json:
--------------------------------------------------------------------------------
1 | {
2 | "alertClass": "alert",
3 | "alert_primaryClass": "alert-primary",
4 | "alert_dangerClass": "alert-danger",
5 | "alert_successClass": "alert-success",
6 | "alert_warningClass": "alert-warning",
7 | "buttonClass": "btn btn-primary",
8 | "checkboxClass": "form-check-input",
9 | "checkbox_horizontalClass": "form-check form-check-inline",
10 | "checkbox_verticalClass": "checkbox-vertical",
11 | "topLabelClass": "toplabel",
12 | "checkinputClass": "form-check",
13 | "checklabelClass": "form-check-label",
14 | "datalistClass": "",
15 | "descriptionClass": "description",
16 | "error_messageClass": "invalid-feedback",
17 | "success_messageClass": "valid-feedback",
18 | "field_wrapperClass": "mb-3",
19 | "field_wrapper_errorClass": "error",
20 | "field_wrapper_successClass": "success",
21 | "fieldsetClass": "",
22 | "formClass": "needs-validation",
23 | "formClassValidated": "was-validated",
24 | "inputClass": "form-control",
25 | "input_colorClass": "form-control-color",
26 | "input_errorClass": "is-invalid",
27 | "input_successClass": "is-valid",
28 | "input_rangeClass": "range",
29 | "input_wrapperClass": "",
30 | "labelClass": "form-label",
31 | "label_requiredClass": "required",
32 | "legendClass": "",
33 | "notesClass": "notes",
34 | "radioClass": "form-check-input",
35 | "requiredClass": "required",
36 | "requiredTextHintClass": "requiredHint",
37 | "selectClass": "form-select",
38 | "textareaClass": "form-control",
39 | "input_fileClass": "form-control",
40 | "reloadLinkClass": "reload",
41 | "captchaClass": "captcha",
42 | "verticalWrapperClass": "vertical-align-wrapper",
43 | "horizontalWrapperClass": "horizontal-align-wrapper"
44 | }
45 |
--------------------------------------------------------------------------------
/CSSClasses/none.json:
--------------------------------------------------------------------------------
1 | {
2 | "alertClass": "alert",
3 | "alert_primaryClass": "alert-primary",
4 | "alert_dangerClass": "alert-danger",
5 | "alert_successClass": "alert-success",
6 | "alert_warningClass": "alert-warning",
7 | "buttonClass": "button",
8 | "checkboxClass": "checkbox",
9 | "checkbox_horizontalClass": "checkbox-horizontal",
10 | "checkbox_verticalClass": "checkbox-vertical",
11 | "topLabelClass": "toplabel",
12 | "datalistClass": "datalist",
13 | "descriptionClass": "description",
14 | "error_messageClass": "error",
15 | "success_messageClass": "valid",
16 | "field_wrapperClass": "fieldwrapper",
17 | "field_wrapper_errorClass": "error",
18 | "field_wrapper_successClass": "success",
19 | "fieldsetClass": "fieldset",
20 | "formClass": "form",
21 | "formClassValidated": "form-validated",
22 | "inputClass": "input",
23 | "input_colorClass": "input-color",
24 | "input_errorClass": "input-error",
25 | "input_successClass": "input-success",
26 | "input_rangeClass": "input-range",
27 | "input_wrapperClass": "inputwrapper",
28 | "labelClass": "label",
29 | "label_requiredClass": "required",
30 | "legendClass": "legend",
31 | "notesClass": "notes",
32 | "radioClass": "radio",
33 | "requiredClass": "required",
34 | "requiredTextHintClass": "requiredHint",
35 | "selectClass": "select",
36 | "textareaClass": "textarea",
37 | "input_fileClass": "input-file",
38 | "reloadLinkClass": "reload",
39 | "captchaClass": "captcha",
40 | "verticalWrapperClass": "vertical-align-wrapper",
41 | "horizontalWrapperClass": "horizontal-align-wrapper"
42 | }
43 |
--------------------------------------------------------------------------------
/CSSClasses/pico2.json:
--------------------------------------------------------------------------------
1 | {
2 | "alertClass": "alert",
3 | "alert_primaryClass": "alert-primary",
4 | "alert_dangerClass": "alert-danger",
5 | "alert_successClass": "alert-success",
6 | "alert_warningClass": "alert-warning",
7 | "buttonClass": "button",
8 | "checkboxClass": "checkbox",
9 | "checkbox_horizontalClass": "checkbox-horizontal",
10 | "checkbox_verticalClass": "checkbox-vertical",
11 | "topLabelClass": "toplabel",
12 | "datalistClass": "datalist",
13 | "descriptionClass": "description",
14 | "error_messageClass": "error",
15 | "success_messageClass": "valid",
16 | "field_wrapperClass": "fieldwrapper",
17 | "field_wrapper_errorClass": "error",
18 | "field_wrapper_successClass": "success",
19 | "fieldsetClass": "fieldset",
20 | "formClass": "form",
21 | "formClassValidated": "form-validated",
22 | "inputClass": "input",
23 | "input_colorClass": "input-color",
24 | "input_errorClass": "input-error",
25 | "input_successClass": "input-success",
26 | "input_rangeClass": "input-range",
27 | "input_wrapperClass": "inputwrapper",
28 | "labelClass": "label",
29 | "label_requiredClass": "required",
30 | "legendClass": "legend",
31 | "notesClass": "notes",
32 | "radioClass": "radio",
33 | "requiredClass": "required",
34 | "requiredTextHintClass": "requiredHint",
35 | "selectClass": "select",
36 | "textareaClass": "textarea",
37 | "input_fileClass": "input-file",
38 | "reloadLinkClass": "reload",
39 | "captchaClass": "captcha",
40 | "verticalWrapperClass": "vertical-align-wrapper",
41 | "horizontalWrapperClass": "horizontal-align-wrapper"
42 | }
43 |
--------------------------------------------------------------------------------
/CSSClasses/uikit3.json:
--------------------------------------------------------------------------------
1 | {
2 | "alertClass": "uk-alert",
3 | "alert_primaryClass": "uk-alert-primary",
4 | "alert_dangerClass": "uk-alert-danger",
5 | "alert_successClass": "uk-alert-success",
6 | "alert_warningClass": "uk-alert-warning",
7 | "buttonClass": "uk-button uk-button-default",
8 | "checkboxClass": "uk-checkbox",
9 | "checkbox_horizontalClass": "uk-margin uk-grid-small uk-child-width-auto uk-grid",
10 | "checkbox_verticalClass": "checkbox-vertical",
11 | "topLabelClass": "toplabel",
12 | "datalistClass": "",
13 | "descriptionClass": "description",
14 | "error_messageClass": "uk-text-danger",
15 | "success_messageClass": "uk-text-success",
16 | "field_wrapperClass": "uk-margin",
17 | "field_wrapper_errorClass": "error",
18 | "field_wrapper_successClass": "success",
19 | "fieldsetClass": "uk-fieldset",
20 | "formClass": "uk-form",
21 | "formClassValidated": "form-validated",
22 | "inputClass": "uk-input",
23 | "input_colorClass": "",
24 | "input_errorClass": "uk-form-danger",
25 | "input_successClass": "uk-form-success",
26 | "input_rangeClass": "uk-range",
27 | "input_wrapperClass": "uk-form-controls",
28 | "labelClass": "uk-form-label",
29 | "label_requiredClass": "required",
30 | "legendClass": "uk-legend",
31 | "notesClass": "notes",
32 | "radioClass": "uk-radio",
33 | "requiredClass": "required",
34 | "requiredTextHintClass": "requiredHint",
35 | "selectClass": "uk-select",
36 | "textareaClass": "uk-textarea",
37 | "input_fileClass": "uk-file",
38 | "reloadLinkClass": "reload",
39 | "captchaClass": "captcha",
40 | "verticalWrapperClass": "vertical-align-wrapper",
41 | "horizontalWrapperClass": "horizontal-align-wrapper"
42 | }
43 |
--------------------------------------------------------------------------------
/Examples/ajaxform.php:
--------------------------------------------------------------------------------
1 | A simple form using Ajax for submission';
22 |
23 | $form = new \FrontendForms\Form('ajax');
24 | $form->setSubmitWithAjax(); // enable Ajax support if it has not been enabled inside the global configuration
25 | $form->setRedirectUrlAfterAjax($page->url . '#target'); // optional: force a redirect after the form has been validated successful
26 | /*
27 | Only to mention: this redirect makes not really a sense and is only for demonstration purposes
28 | A real life example could be using a redirect after login to redirect to a profile page or whatever.
29 | The internal anchor (#target) is also only for demo purposes to show the usage of an anchor inside a redirect
30 | */
31 |
32 | $name = new \FrontendForms\InputText('name');
33 | $name->setLabel('Name');
34 | $name->setRule('required')->setCustomFieldName('The name');
35 | $form->add($name);
36 |
37 | $button = new \FrontendForms\Button('submit');
38 | $button->setAttribute('value', 'Send');
39 | $form->add($button);
40 |
41 | if ($form->isValid()) {
42 | // do whatever you want
43 |
44 | }
45 |
46 | $content .= $form->render();
47 | $content .= '
This is the target container for the redirect after the form has been validated successfully.
';
48 | echo $content;
49 |
50 |
--------------------------------------------------------------------------------
/Examples/examplequestions.txt:
--------------------------------------------------------------------------------
1 | Here you will find some examples of simple questions that can be used:
2 |
3 | - What color does a green apple have?
4 | - How many legs does a dog have?
5 | - What is the last day of the week called?
6 | - What is the last month of the year called?
7 | - How many letters does the alphabet have?
8 | - How many days does a week have?
9 |
--------------------------------------------------------------------------------
/Examples/fileuploadtopage.php:
--------------------------------------------------------------------------------
1 | A simple working file upload form for uploading files to a page';
22 |
23 | $folder = $page->id; // set page id as the folder name
24 |
25 | $content .= 'Files will be uploaded to site/assets/files/'.$folder.' by default, but you can choose
26 | another folder by using the setUploadPath() method. But be aware that the folder must be writable.
';
27 |
28 | $form = new \FrontendForms\Form('upload');
29 |
30 | $file1 = new \FrontendForms\InputFile('fileupload1');
31 | $file1->setLabel('Multiple files upload');
32 | $file1->setMultiple(true); // this method makes converts the upload field to be a multi-upload field
33 | $form->add($file1);
34 |
35 | $file2 = new \FrontendForms\InputFile('fileupload2');
36 | $file2->setLabel('Single file upload');
37 | $form->add($file2);
38 |
39 | $button = new \FrontendForms\Button('submit');
40 | $button->setAttribute('value', 'Send');
41 | $form->add($button);
42 |
43 | if ($form->isValid()) {
44 | $content .= 'The file(s) has/have been uploaded successfully.
';
45 | }
46 |
47 | $content .= $form->render();
48 |
49 | $page_files = $files->find($config->paths->assets.'files/'.$page->id);
50 | if($page_files){
51 | $content .= 'List of page files inside the folder '.$folder.':
';
52 | $content .= '';
53 | foreach($page_files as $value){
54 | $content .= '- '.$value.'
';
55 | }
56 | $content .= '
';
57 | }
58 |
59 | echo $content;
60 |
--------------------------------------------------------------------------------
/Examples/formwithGrid.php:
--------------------------------------------------------------------------------
1 | Test page for a form inside a grid';
13 | $content .= 'In this case a UiKit grid system is used.
';
14 |
15 | $form = new \FrontendForms\Form('gridform');
16 | $form->useInputWrapper(false);
17 | $form->setAttributes(['data-uk-grid', 'class' => 'uk-grid-small']);
18 |
19 |
20 | $test1 = new \FrontendForms\InputText('test1');
21 | $test1->setLabel('Input 1');
22 | $test1->setAttribute('placeholder', '100');
23 | $test1->getFieldWrapper()->setAttribute('class', 'uk-width-1-1');
24 | $form->add($test1);
25 |
26 | $test2 = new \FrontendForms\InputText('test2');
27 | $test2->setLabel('Input 2');
28 | $test2->setAttribute('placeholder', '50');
29 | $test2->getFieldWrapper()->setAttribute('class', 'uk-width-1-2@s');
30 | $form->add($test2);
31 |
32 | $test3 = new \FrontendForms\InputText('test3');
33 | $test3->setLabel('Input 3');
34 | $test3->setAttribute('placeholder', '25');
35 | $test3->getFieldWrapper()->setAttribute('class', 'uk-width-1-4@s');
36 | $form->add($test3);
37 |
38 | $test4 = new \FrontendForms\InputText('test4');
39 | $test4->setLabel('Input 4');
40 | $test4->setAttribute('placeholder', '25');
41 | $test4->getFieldWrapper()->setAttribute('class', 'uk-width-1-4@s');
42 | $form->add($test4);
43 |
44 | $test5 = new \FrontendForms\InputText('test5');
45 | $test5->setLabel('Input 5');
46 | $test5->setAttribute('placeholder', '50');
47 | $test5->getFieldWrapper()->setAttribute('class', 'uk-width-1-2@s');
48 | $form->add($test5);
49 |
50 | $test6 = new \FrontendForms\InputText('test6');
51 | $test6->setLabel('Input 6');
52 | $test6->setAttribute('placeholder', '50');
53 | $test6->getFieldWrapper()->setAttribute('class', 'uk-width-1-2@s');
54 | $form->add($test6);
55 |
56 | $button = new \FrontendForms\Button('submit');
57 | $button->setAttribute('value', 'Send');
58 | $button->prepend('');
59 | $button->append('
');
60 | $form->add($button);
61 |
62 | if ($form->isValid()) {
63 |
64 | $content .= 'Submission was successful!';
65 | // or do what you want
66 |
67 | }
68 |
69 | // render the form
70 | $content .= $form->render();
71 |
72 | echo $content;
73 |
--------------------------------------------------------------------------------
/Formelements/Captcha/AbstractCharset.php:
--------------------------------------------------------------------------------
1 | setCaptchaContent($this->createRandomString());
32 | }
33 |
34 |
35 | /**
36 | * Get the string of the charset that will be used to create the captcha text
37 | * @return string
38 | */
39 | protected function getCharset(): string
40 | {
41 | return $this->frontendforms['input_captchaCharset'];
42 | }
43 |
44 | /**
45 | * Get the number of characters
46 | * @return int
47 | */
48 | protected function getNumberOfCharacters(): int
49 | {
50 | return $this->frontendforms['input_captchaNumberOfCharacters'];
51 | }
52 |
53 | /**
54 | * Create the random string for the captcha depending on the number and charset setting
55 | * @return string
56 | */
57 | protected function createRandomString(): string
58 | {
59 | $randomString = '';
60 | for ($i = 0; $i < $this->getNumberOfCharacters(); $i++) {
61 | $index = rand(0, strlen($this->getCharset()) - 1);
62 | $randomString .= $this->getCharset()[$index];
63 | }
64 | return $randomString;
65 | }
66 |
67 | }
68 |
--------------------------------------------------------------------------------
/Formelements/Captcha/AbstractMath.php:
--------------------------------------------------------------------------------
1 | setCaptchaContent($this->createRandomCalculation()); // set a random calculation as content
30 | }
31 |
32 | protected function calculate(int $varOne, string $operator, int $varTwo): string
33 | {
34 | $result = match ($operator) {
35 | '+' => $varOne + $varTwo,
36 | '-' => $varOne - $varTwo,
37 | '*' => $varOne * $varTwo,
38 | default => 0,
39 | };
40 | return (string) $result;
41 | }
42 |
43 | /**
44 | * Create the random calculation with numbers between 1 and 9
45 | * @return string
46 | */
47 | protected function createRandomCalculation(): string
48 | {
49 | $operators = ['+', '-', '*'];
50 | $randOperator = $operators[rand(0,2)];
51 | $num1 = rand(1,9);
52 | $num2 = rand(1,9);
53 | $this->result = $this->calculate($num1,$randOperator, $num2);
54 | return $num1.$randOperator.$num2;
55 | }
56 |
57 | }
--------------------------------------------------------------------------------
/Formelements/Captcha/AbstractQuestionCaptcha.php:
--------------------------------------------------------------------------------
1 | wire('languages')){
20 | $lang = $this->wire('user')->language();
21 | $this->lang_id = $lang->isDefault() ? '' : $lang->id;
22 | } else {
23 | $this->lang_id = null;
24 | }
25 |
26 | $this->type = $this->className(); // set the name of the captcha from the class name
27 | }
28 |
29 |
30 |
31 |
32 |
33 | /**
34 | * Set the real captcha value for input validation
35 | * This depends on the captcha variant set, so this contains the value that should be entered into the input field
36 | *
37 | * @param string $content
38 | * @return $this
39 | */
40 | protected function setCaptchaValidValue(array|null $content): self
41 | {
42 | $this->captchaValidValue = $content;
43 | return $this;
44 | }
45 |
46 | /**
47 | * Get the solution value of the captcha
48 | * @return string
49 | */
50 | protected function getCaptchaValidValue(): array|null
51 | {
52 | return $this->captchaValidValue;
53 | }
54 |
55 | /**
56 | * Create the captcha inputfield for a captcha
57 | * The inputfield for the captcha is an object of type InputText
58 | * @param string $formID
59 | * @return InputText
60 | */
61 | public function createCaptchaInputField(string $formID): InputText
62 | {
63 | // start creating the captcha input field
64 | $captchaInput = new InputText('captcha');
65 | // Remove or add wrappers depending on settings
66 | $captchaInput->setAttribute('name', $formID . '-captcha');
67 | $captchaInput->useInputWrapper($this->useInputWrapper);
68 | $captchaInput->useFieldWrapper($this->useFieldWrapper);
69 | $captchaInput->getFieldWrapper()->setAttribute('class', 'captcha');
70 | $captchaInput->getInputWrapper()->setAttribute('class', 'captcha');
71 | return $captchaInput;
72 | }
73 |
74 |
75 | }
76 |
--------------------------------------------------------------------------------
/Formelements/Captcha/AbstractSliderCaptcha.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('I am a human'));
28 | $captchaInput->setAttribute('name', $formID . '-slider-captcha');
29 | $captchaInput->setAttribute('class', 'ff-slidercaptcha-checkbox');
30 | $captchaInput->setAttribute('data-formid', $formID);
31 | $captchaInput->setAttribute('value', '0');
32 | $captchaInput->useInputWrapper($this->useInputWrapper);
33 | $captchaInput->useFieldWrapper($this->useFieldWrapper);
34 | $captchaInput->getFieldWrapper()->setAttribute('class', 'captcha');
35 | $captchaInput->getInputWrapper()->setAttribute('class', 'captcha');
36 | $captchaInput->prepend($this->createSliderCaptcha($formID));
37 | return $captchaInput;
38 |
39 | }
40 |
41 | /**
42 | * Render the div container for the slider captcha
43 | * @param string $formID
44 | * @return string
45 | */
46 | public function createSliderCaptcha(string $formID): string
47 | {
48 | return '';
49 | }
50 |
51 | }
52 |
--------------------------------------------------------------------------------
/Formelements/Captcha/ImageCaptchaFactory.php:
--------------------------------------------------------------------------------
1 | new DefaultImageCaptcha()
21 | };
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/Formelements/Captcha/QuestionCaptchaFactory.php:
--------------------------------------------------------------------------------
1 | new SimpleQuestionCaptcha(),
23 | default => new SimpleQuestionCaptcha(),
24 | };
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/Formelements/Captcha/SliderCaptchaFactory.php:
--------------------------------------------------------------------------------
1 | new SliderCaptcha(),
23 | default => new SliderCaptcha(),
24 | };
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/Formelements/Captcha/TextCaptchaFactory.php:
--------------------------------------------------------------------------------
1 | new ReverseTextCaptcha(),
23 | AbstractCaptchaFactory::EVENTEXTCAPTCHA => new EvenCharacterTextCaptcha(),
24 | AbstractCaptchaFactory::SIMPLEMATHCAPTCHA => new SimpleMathTextCaptcha(),
25 | default => new DefaultTextCaptcha(),
26 | };
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/Formelements/Captcha/captchaimage.php:
--------------------------------------------------------------------------------
1 | queryString();
17 | $parameter = parse_str($query, $output);
18 | $session->set('query', $query);
19 | $captchaType = $output['cat'];
20 | $captchaVariant = $output['type'];
21 | $formID = $output['formID'];
22 |
23 | header('Content-Type: image/png');
24 | header("Expires: Tue, 01 Jan 2013 00:00:00 GMT");
25 | header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
26 | header("Cache-Control: no-store, no-cache, must-revalidate");
27 | header("Cache-Control: post-check=0, pre-check=0", false);
28 | header("Pragma: no-cache");
29 |
30 | // create an object of the appropriate CAPTCHA class defined by $captchaType and $captchaVariant
31 | $captcha = AbstractCaptchaFactory::make($captchaType, $captchaVariant);
32 | $captcha->createCaptchaImage($formID);
33 |
34 |
--------------------------------------------------------------------------------
/Formelements/Captcha/fonts/OpenSans-SemiBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/Formelements/Captcha/fonts/OpenSans-SemiBold.ttf
--------------------------------------------------------------------------------
/Formelements/Captcha/variants/DefaultImageCaptcha.php:
--------------------------------------------------------------------------------
1 | title = $this->_('Image captcha');
29 | $this->desc = $this->_('Assign the image to a category');
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/Formelements/Captcha/variants/DefaultTextCaptcha.php:
--------------------------------------------------------------------------------
1 | title = $this->_('Random string captcha');
30 | $this->desc = $this->_('Enter the text from the image in the input field.');
31 | }
32 |
33 | /**
34 | * Customize the captcha input field for the default text captcha
35 | * @param string $formID
36 | * @return InputText
37 | */
38 | public function createCaptchaInputField(string $formID): InputText
39 | {
40 | $parent = parent::createCaptchaInputField($formID);
41 | $parent->setNotes($this->desc);
42 | return $parent;
43 | }
44 |
45 | }
--------------------------------------------------------------------------------
/Formelements/Captcha/variants/EvenCharacterTextCaptcha.php:
--------------------------------------------------------------------------------
1 | title = $this->_('Even string captcha');
30 | $this->desc = $this->_('Enter every second character of the text from the image in the input field.');
31 | }
32 |
33 | /**
34 | * Set every second character inside the captcha as value for the captcha validation
35 | * @param string $content
36 | * @return AbstractTextCaptcha
37 | */
38 | protected function setCaptchaValidValue(string $content): AbstractTextCaptcha
39 | {
40 | $newStr = '';
41 | for( $i = 0; $i < strlen($content); $i++) { $newStr .= ( ( $i % 2 ) != 0 ? $content[ $i ] : '' );}
42 | return parent::setCaptchaValidValue($newStr);
43 | }
44 |
45 | /**
46 | * Customize the captcha input field for the default text captcha
47 | * @param string $formID
48 | * @return InputText
49 | */
50 | public function createCaptchaInputField(string $formID): InputText
51 | {
52 | $parent = parent::createCaptchaInputField($formID);
53 | $parent->setNotes($this->desc);
54 | return $parent;
55 | }
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/Formelements/Captcha/variants/ReverseTextCaptcha.php:
--------------------------------------------------------------------------------
1 | title = $this->_('Reverse string captcha');
31 | $this->desc = $this->_('Enter the text from the image in reverse order into the input field (from right to left).');
32 | }
33 |
34 | /**
35 | * Set the characters inside the captcha in reverse order as value for the captcha validation
36 | * @param string $content
37 | * @return AbstractTextCaptcha
38 | */
39 | protected function setCaptchaValidValue(string $content): AbstractTextCaptcha
40 | {
41 | $content = strrev($content);
42 | return parent::setCaptchaValidValue($content);
43 | }
44 |
45 | /**
46 | * Customize the captcha input field for the default text captcha
47 | * @param string $formID
48 | * @return InputText
49 | */
50 | public function createCaptchaInputField(string $formID): InputText
51 | {
52 | $parent = parent::createCaptchaInputField($formID);
53 | $parent->setNotes($this->desc);
54 | return $parent;
55 | }
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/Formelements/Captcha/variants/SimpleMathTextCaptcha.php:
--------------------------------------------------------------------------------
1 | title = $this->_('Math captcha');
31 | $this->desc = $this->_('Enter the result of the calculation in the input field.');
32 | }
33 |
34 | /**
35 | * Set the characters inside the captcha in reverse order as value for the captcha validation
36 | * @param string $content
37 | * @return AbstractTextCaptcha
38 | */
39 | protected function setCaptchaValidValue(string $content): AbstractTextCaptcha
40 | {
41 | return parent::setCaptchaValidValue($this->result);
42 | }
43 |
44 | /**
45 | * Customize the captcha input field for the simple math captcha
46 | * @param string $formID
47 | * @return InputText
48 | */
49 | public function createCaptchaInputField(string $formID): InputText
50 | {
51 | $parent = parent::createCaptchaInputField($formID);
52 | $parent->setNotes($this->desc);
53 | return $parent;
54 | }
55 |
56 | }
57 |
--------------------------------------------------------------------------------
/Formelements/Captcha/variants/SimpleQuestionCaptcha.php:
--------------------------------------------------------------------------------
1 | title = $this->_('Simple question Captcha (Free text)');
31 | $this->desc = $this->_('Please answer the question.');
32 |
33 | }
34 |
35 |
36 | /**
37 | * Customize the captcha input field for the simple question captcha
38 | * @param string $formID
39 | * @return InputText
40 | */
41 | public function createCaptchaInputField(string $formID): InputText
42 | {
43 |
44 | // get the question in the user language
45 | $fieldNameQuestion = ($this->lang_id) ? 'input_question__'.$this->lang_id : 'input_question';
46 | $label = $this->frontendforms[$fieldNameQuestion];
47 |
48 | $fieldNameAnswers = ($this->lang_id) ? 'input_answers__'.$this->lang_id : 'input_answers';
49 | $answersText = $this->frontendforms[$fieldNameAnswers];
50 |
51 | if($answersText)
52 | $answers = explode("\n", str_replace("\r", "", $answersText));
53 |
54 | // set values from the module configuration
55 | $parent = parent::createCaptchaInputField($formID);
56 | if(!empty($label))
57 | $parent->setLabel($label);
58 | if(isset($answers))
59 | $this->setCaptchaValidValue($answers);
60 | $parent->removeRule('checkCaptcha');
61 |
62 | $parent->setNotes($this->desc);
63 | return $parent;
64 | }
65 |
66 | }
--------------------------------------------------------------------------------
/Formelements/Captcha/variants/SliderCaptcha.php:
--------------------------------------------------------------------------------
1 | title = $this->_('Slider Captcha');
30 | $this->desc = $this->_('Move a puzzle piece.');
31 |
32 | }
33 |
34 |
35 |
36 |
37 | }
--------------------------------------------------------------------------------
/Formelements/Images/Image.php:
--------------------------------------------------------------------------------
1 | setTag('img');
31 | }
32 |
33 | /**
34 | * Render the image tag
35 | * @return string
36 | */
37 | public function ___render(): string
38 | {
39 | if ($this->wrapper) {
40 | $this->wrapper->setContent($this->renderSelfclosingTag($this->getTag()));
41 | return $this->wrapper->___render();
42 | }
43 | return $this->renderSelfclosingTag($this->getTag());
44 | }
45 |
46 | /**
47 | * @return string
48 | */
49 | public function __toString(): string
50 | {
51 | return $this->___render();
52 | }
53 |
54 | }
--------------------------------------------------------------------------------
/Formelements/Inputelements/Datalist/Datalist.php:
--------------------------------------------------------------------------------
1 | listID = $id;
34 | $this->setAttribute('list', 'datalist-' . $id);
35 | }
36 |
37 | /**
38 | * Use a PW field of the type SelectOptions to create the options;
39 | * @param string $fieldName
40 | * @return void
41 | * @throws WireException
42 | * @throws WirePermissionException
43 | */
44 | public function setOptionsFromField(string $fieldName): void
45 | {
46 | $this->setOptionsFromFieldType($fieldName, 'addOption');
47 | }
48 |
49 | /**
50 | * Render the datalist input
51 | * @return string
52 | */
53 | public function ___renderDatalist(): string
54 | {
55 | $out = '';
56 | //set post value as value if present
57 | $this->setAttribute('value', $this->getPostValue());
58 |
59 | if ($this->options) {
60 | $options = '';
61 |
62 | foreach ($this->options as $option) {
63 |
64 | if ($option->hasAttribute('selected') && (!$this->hasAttribute('value'))) {
65 | $this->setAttribute('value', $option->getAttribute('value'));
66 | $option->removeAttribute('selected'); //data list option has no selected attribute
67 | }
68 | $options .= $option->render();
69 |
70 | }
71 | // create and append datalist container
72 | $this->append('');
73 | $out = $this->renderInput();
74 | }
75 | return $out;
76 | }
77 |
78 | }
79 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/Input.php:
--------------------------------------------------------------------------------
1 | setTag('input');
28 | $this->setAttribute('type', 'text');// set text as default type if no type was set
29 | $this->setCSSClass('inputClass');
30 | }
31 |
32 | /**
33 | * Render the input tag
34 | * @return string
35 | */
36 | public function renderInput(): string
37 | {
38 | return $this->renderSelfclosingTag($this->getTag()). PHP_EOL;
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputCheckbox.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'checkbox');
28 | $this->removeCSSClass('inputClass');
29 | $this->setCSSClass('checkboxClass');
30 | }
31 |
32 | /**
33 | * Method to set a single checkbox checked by default (on page load)
34 | * Independent if input has a value or not
35 | * @return $this;
36 | */
37 | public function setChecked(): self
38 | {
39 | if ($this->getServerMethod()) {
40 | if (isset($_POST[$this->getAttribute('name')])) {
41 | $this->setAttribute('checked');
42 | }
43 | } else {
44 | $this->setAttribute('checked');
45 | }
46 | return $this;
47 | }
48 |
49 |
50 | /**
51 | * Render the input element
52 | * @return string
53 | */
54 | public function ___renderInputCheckbox(): string
55 | {
56 | if (in_array($this->getAttribute('value'), $this->getDefaultValue())) {
57 | $this->setAttribute('checked');
58 | }
59 | // post value is array -> multiple checkbox value
60 | if (is_array($this->getPostValue())) {
61 | // set checked if post value is contains the checkbox value
62 | if (in_array($this->getAttribute('value'), $this->getPostValue())) {
63 | $this->setAttribute('checked');
64 | }
65 | } else {
66 | // set checked if post value is equal the checkbox value
67 | if ($this->getPostValue() === $this->getAttribute('value')) {
68 | $this->setAttribute('checked');
69 | }
70 | }
71 | return $this->renderInput();
72 | }
73 |
74 | }
75 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputColor.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'color');
28 | $this->setCSSClass('input_colorClass');
29 | }
30 |
31 | /**
32 | * Render the input element
33 | * @return string
34 | */
35 | public function ___renderInputColor(): string
36 | {
37 | return $this->renderInput();
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputDate.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'date');
28 | $this->setRule('date');
29 | }
30 |
31 | /**
32 | * Render the input element
33 | * @return string
34 | */
35 | public function ___renderInputDate(): string
36 | {
37 | return $this->renderInput();
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputDateTime.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'datetime-local');
31 | $this->setRule('date');
32 | }
33 |
34 | /**
35 | * Render the input element
36 | * @return string
37 | */
38 | public function ___renderInputDateTime(): string
39 | {
40 | return $this->renderInput();
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputEmail.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'email');
28 | //set default validators
29 | $this->setRule('email');
30 | $this->setRule('emailDNS');
31 | }
32 |
33 | /**
34 | * Render the input element
35 | * @return string
36 | */
37 | public function ___renderInputEmail(): string
38 | {
39 | return parent::renderInputText();
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputHidden.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'hidden');
28 | // disable input and field wrapper by default on this input type
29 | $this->useInputWrapper(false);
30 | $this->useFieldWrapper(false);
31 | }
32 |
33 | /**
34 | * Render the input element
35 | * @return string
36 | */
37 | public function renderInputHidden(): string
38 | {
39 | return $this->renderInput();
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputMonth.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'month');
28 | $this->setRule('month');
29 | }
30 |
31 | /**
32 | * Render the input element
33 | * @return string
34 | */
35 | public function ___renderInputMonth(): string
36 | {
37 | return $this->renderInput();
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputNumber.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'number');
28 | // set default validators
29 | $this->setRule('numeric');
30 | }
31 |
32 | /**
33 | * Render the input element
34 | * @return string
35 | */
36 | public function ___renderInputNumber(): string
37 | {
38 | return $this->renderInput();
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputRadio.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'radio');
28 | $this->removeCSSClass('inputClass');
29 | $this->setCSSClass('radioClass');
30 | }
31 |
32 | /**
33 | * Render the input element
34 | * @return string
35 | */
36 | public function ___renderInputRadio(): string
37 | {
38 | if (in_array($this->getAttribute('value'), $this->getDefaultValue())) {
39 | $this->setAttribute('checked');
40 | }
41 | if (($this->hasAttribute('value')) && ($this->getPostValue() === $this->getAttribute('value'))) {
42 | $this->setAttribute('checked');
43 | }
44 | return $this->renderInput();
45 | }
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputRadioCheckbox.php:
--------------------------------------------------------------------------------
1 | removeAttribute('class');
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputRange.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'range');
28 | $this->setCSSClass('input_rangeClass'); // add special range input class
29 | $this->removeAttributeValue('class', $this->getCSSClass('inputClass')); // remove default input class
30 | }
31 |
32 | /**
33 | * Render the input element
34 | * @return string
35 | */
36 | public function ___renderInputRange(): string
37 | {
38 | return $this->renderInput();
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputSearch.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'search');
31 | }
32 |
33 | /**
34 | * Render the input element
35 | * @return string
36 | */
37 | public function ___renderInputSearch(): string
38 | {
39 | return parent::renderInputText();
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputTel.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'tel');
28 | }
29 |
30 | /**
31 | * Render the input element
32 | * @return string
33 | */
34 | public function ___renderInputTel(): string
35 | {
36 | return parent::renderInputText();
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputText.php:
--------------------------------------------------------------------------------
1 | renderInput();
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputTime.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'time');
28 | $this->setRule('time');
29 | }
30 |
31 | /**
32 | * Render the input element
33 | * @return string
34 | */
35 | public function ___renderInputTime(): string
36 | {
37 | return $this->renderInput();
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputUrl.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'url');
28 | $this->setRule('url');
29 | $this->setRule('urlActive');
30 | }
31 |
32 | /**
33 | * Render the input element
34 | * @return string
35 | */
36 | public function ___renderInputUrl(): string
37 | {
38 | return $this->renderInput();
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/InputWeek.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'week');
28 | $this->setRule('week');
29 | }
30 |
31 | /**
32 | * Render the input element
33 | * @return string
34 | */
35 | public function ___renderInputWeek(): string
36 | {
37 | return $this->renderInput();
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/defaults/Email.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('Email'));
28 | $this->setRule('required');
29 | }
30 |
31 |
32 | /**
33 | * Render the email field
34 | * @return string
35 | */
36 | public function ___renderEmail(): string
37 | {
38 | return parent::renderInputEmail();
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/defaults/FileUploadMultiple.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('Upload multiple files'));
29 | }
30 |
31 | /**
32 | * Render the file upload input field
33 | * @return string
34 | */
35 | public function ___renderFileUploadMultiple(): string
36 | {
37 | return parent::renderInputFile();
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/defaults/FileUploadSingle.php:
--------------------------------------------------------------------------------
1 | setMultiple(false);
28 | $this->setLabel($this->_('Upload single file'));
29 | }
30 |
31 | /**
32 | * Render the file upload input field
33 | * @return string
34 | */
35 | public function ___renderFileUploadSingle(): string
36 | {
37 | return parent::renderInputFile();
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/defaults/Name.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('Name'));
28 | $this->setRule('required');
29 | }
30 |
31 | /**
32 | * Render the name input field
33 | * @return string
34 | */
35 | public function ___renderName(): string
36 | {
37 | return parent::renderInputText();
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/defaults/Password.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('Password')); // set default label
30 | $this->setRule('required');
31 | $this->setRule('safePassword');
32 | $this->setRule('lengthMin', $this->minLength);
33 | $this->setRule('lengthMax', '128');
34 | }
35 |
36 | /**
37 | * @return string
38 | * @throws WireException
39 | * @throws WirePermissionException
40 | */
41 | public function ___renderPassword(): string
42 | {
43 |
44 | return parent::renderInputPassword();
45 | }
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/defaults/PasswordConfirmation.php:
--------------------------------------------------------------------------------
1 | the id of the password confirmation field
27 | * @param string $passwordfieldName -> the name of the password field to check against
28 | * @throws WireException
29 | * @throws WirePermissionException
30 | */
31 | public function __construct(string $id, string $passwordfieldName)
32 | {
33 | parent::__construct($id);
34 | $this->setLabel($this->_('Password Confirmation')); // set default label
35 | $this->setRule('required'); // a confirmation field is required by default
36 | $this->setRule('equals', $passwordfieldName);
37 | $this->setRule('lengthMin', $this->minLength);
38 | $this->setRule('lengthMax', '128');
39 | $this->showPasswordRequirements(false);
40 | }
41 |
42 | /**
43 | * Render the password confirmation input field
44 | * @return string
45 | * @throws WireException
46 | * @throws WirePermissionException
47 | */
48 | public function ___renderPasswordConfirmation(): string
49 | {
50 | return parent::renderInputPassword();
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/defaults/Phone.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('Phone'));
26 | }
27 |
28 | /**
29 | * Render the phone input field
30 | * @return string
31 | */
32 | public function ___renderPhone(): string
33 | {
34 | return parent::renderInputTel();
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/defaults/SendCopy.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('Send a copy of my message to me'));
27 | }
28 |
29 | /**
30 | * Render checkbox for sending a copy to the sender
31 | * @return string
32 | */
33 | public function ___renderSendCopy(): string
34 | {
35 | return parent::renderInputCheckbox();
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/defaults/Subject.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('Subject'));
28 | $this->setRule('required');
29 | }
30 |
31 | /**
32 | * Render the subject input field
33 | * @return string
34 | */
35 | public function ___renderSubject(): string
36 | {
37 | return parent::renderInputText();
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/defaults/Surname.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('Surname'));
28 | $this->setRule('required');
29 | }
30 |
31 | /**
32 | * Render the surname input field
33 | * @return string
34 | */
35 | public function ___renderSurname(): string
36 | {
37 | return parent::renderInputText();
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Inputs/defaults/Username.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('Username'));
33 | $this->setSanitizer('pageName');
34 | $this->setRule('required');
35 | $this->setRule('usernameSyntax');
36 | if($this->wire('user')->isLoggedin())
37 | $this->setDefaultValue($this->wire('user')->name);
38 | }
39 |
40 | /**
41 | * Render the username input field
42 | * @return string
43 | */
44 | public function ___renderUsername(): string
45 | {
46 | return parent::renderInputText();
47 | }
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Select/Select.php:
--------------------------------------------------------------------------------
1 | setTag('select');
32 | $this->setCSSClass('selectClass');
33 | }
34 |
35 | /**
36 | * Use a PW field of the type SelectOptions to create the options;
37 | * @param string $fieldName
38 | * @return void
39 | * @throws WireException
40 | * @throws WirePermissionException
41 | */
42 | public function setOptionsFromField(string $fieldName): void
43 | {
44 | $this->setOptionsFromFieldType($fieldName, 'addOption');
45 | }
46 |
47 | /**
48 | * Render the select input
49 | * @return string
50 | */
51 | public function ___renderSelect(): string
52 | {
53 | $out = '';
54 | if ($this->options) {
55 | $options = '';
56 | foreach ($this->options as $option) {
57 | // check if option element is hr element
58 | if($option instanceof TextElements) {
59 | // add hr tag only to Select, but not to SelectMultiple
60 | if($option->getTag() === 'hr'){
61 | $options .= $option->renderSelfclosingTag($option->getTag());
62 | }
63 | } else {
64 | if (in_array($option->getAttribute('value'), $this->getDefaultValue())) {
65 | $option->setAttribute('selected');
66 | if($this->useAriaAttr) $option->setAttribute('aria-selected', 'true');
67 | }
68 | if (in_array($option->getAttribute('value'), (array)$this->getPostValue())) {
69 | $option->setAttribute('selected');
70 | if($this->useAriaAttr) $option->setAttribute('aria-selected', 'true');
71 | }
72 | $options .= $option->render();
73 | }
74 | }
75 | $this->setContent($options);
76 | $out = $this->renderNonSelfclosingTag($this->getTag());
77 | }
78 | return $out;
79 | }
80 |
81 | }
82 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Select/SelectMultiple.php:
--------------------------------------------------------------------------------
1 | setAttribute('multiple');
30 | $this->removeSanitizers('text');
31 | $this->setSanitizer('arrayVal');
32 |
33 | }
34 |
35 | /**
36 | * Add brackets to the name attribute if not present
37 | * @return void
38 | */
39 | private function convertNameAttribute(): void
40 | {
41 | $nameAttr = $this->getAttribute('name');
42 | if (substr($nameAttr, -1) !== '[]') {
43 | $this->setAttribute('name', $nameAttr . '[]');
44 | }
45 | }
46 |
47 | /**
48 | * Render the select input
49 | * @return string
50 | */
51 | public function renderSelectMultiple(): string
52 | {
53 | // add brackets to the name for multiple values array
54 | $this->convertNameAttribute();
55 | return $this->renderSelect();
56 | }
57 |
58 | }
59 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Select/defaults/Gender.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('Gender'));
37 | if ($fieldName) {
38 | $this->setOptionsFromField($fieldName);
39 | } else {
40 | $this->addEmptyOption($this->_('Please select'));
41 | $this->addOption($this->_('Mister'), $this->_('Mister'));
42 | $this->addOption($this->_('Miss'), $this->_('Miss'));
43 | $this->addOption($this->_('Diverse'), $this->_('Diverse'));
44 | }
45 | $this->setRule('required')->setCustomFieldName($this->_('Gender'));
46 | }
47 |
48 | /**
49 | * Render the gender select input field
50 | * @return string
51 | */
52 | public function renderGender(): string
53 | {
54 | return parent::renderSelect();
55 | }
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Select/defaults/Language.php:
--------------------------------------------------------------------------------
1 | user_lang_id = $this->user->language->id;
39 | $this->setLabel($this->_('Language'));
40 |
41 | // create all language options
42 | $languageIDs = [];
43 | foreach ($this->wire('languages') as $lang) {
44 | $languageIDs[] = $lang->id;
45 | if($lang->title instanceof LanguagesPageFieldValue) {
46 | $title = $lang->title->getLanguageValue($this->user_lang_id );
47 | } else {
48 | $title = $lang->title;
49 | }
50 | $this->addOption($title, (string)$lang->id);
51 | }
52 |
53 | $this->setRule('required')->setCustomFieldName($this->_('Language'));
54 | $this->setRule('integer');
55 | $this->setRule('In', $languageIDs);
56 |
57 | }
58 |
59 | /**
60 | * Set a fixed language to be selected
61 | * @param int $id
62 | * @return $this
63 | */
64 | public function setFixedLanguageID(int $id):self
65 | {
66 | $this->fixed_lang_id = $id;
67 | return $this;
68 | }
69 |
70 | /**
71 | * Render the language select input field
72 | * Render it only if it is a multi-language site, otherwise output only an empty string
73 | * @return string
74 | * @throws WireException
75 | */
76 | public function renderLanguage(): string
77 | {
78 | if(count($this->wire('languages')) > 1){
79 |
80 | $value = (is_null($this->fixed_lang_id)) ? $this->user_lang_id : $this->fixed_lang_id;
81 | $this->setDefaultValue($value);
82 | return parent::renderSelect();
83 | }
84 | return '';
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/Formelements/Inputelements/Textarea/defaults/Message.php:
--------------------------------------------------------------------------------
1 | setLabel($this->_('Message'));
30 | $this->setRule('required')->setCustomFieldName($this->_('Message'));
31 | }
32 |
33 | /**
34 | * Render the input field for message
35 | * @return string
36 | */
37 | public function renderMessage(): string
38 | {
39 | return parent::renderTextarea();
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/Formelements/Miscellaneous/FieldsetClose.php:
--------------------------------------------------------------------------------
1 | setTag('fieldset');
21 | }
22 |
23 | public function __toString()
24 | {
25 | return $this->render();
26 | }
27 |
28 | /**
29 | * Render the fieldset close tag
30 | * @return string
31 | */
32 | public function render(): string
33 | {
34 | return '' . $this->getTag() . '>';
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/Formelements/Miscellaneous/FieldsetOpen.php:
--------------------------------------------------------------------------------
1 | setTag('fieldset');
23 | $this->setCSSClass('fieldsetClass');
24 | }
25 |
26 | /**
27 | * Set the text for the legend
28 | * @param string $legendText
29 | * @return Legend
30 | */
31 | public function setLegend(string $legendText): Legend
32 | {
33 | $this->legend = new Legend(); // instantiate legend object
34 | $this->legend->setText($legendText);
35 | return $this->legend;
36 | }
37 |
38 | public function __toString(): string
39 | {
40 | return $this->render();
41 | }
42 |
43 | /**
44 | * Render the fieldset open tag
45 | * @return string
46 | */
47 | public function ___render(): string
48 | {
49 | $this->append($this->legend->render());
50 | return $this->renderSelfclosingTag($this->getTag());
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/Formelements/Miscellaneous/Markup.php:
--------------------------------------------------------------------------------
1 | markup = $markup;
29 | return $this;
30 | }
31 |
32 | public function getMarkup(): string
33 | {
34 | return $this->markup;
35 | }
36 |
37 | // All those function needs to be defined, but they have no effect
38 | // If they are not defined, an error will occur during the rendering process of the form
39 | public function setAttribute(string $name, string $attribute): void
40 | {
41 |
42 | }
43 |
44 | /**
45 | * Do not check for conditions
46 | */
47 | public function containsConditions(): bool
48 | {
49 | return false;
50 | }
51 |
52 | public function getID(): void
53 | {
54 |
55 | }
56 | public function getAttribute(): void
57 | {
58 |
59 | }
60 |
61 | public function render(): string
62 | {
63 | return $this->markup;
64 | }
65 |
66 | }
67 |
--------------------------------------------------------------------------------
/Formelements/Miscellaneous/Option.php:
--------------------------------------------------------------------------------
1 | setTag('option');
28 | }
29 |
30 | /**
31 | * Render an option tag
32 | * @return string
33 | */
34 | public function render(): string
35 | {
36 | return $this->renderNonSelfclosingTag($this->getTag());
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/Formelements/Miscellaneous/TraitCheckboxesAndRadios.php:
--------------------------------------------------------------------------------
1 | appendLabel = $append;
28 | return $this;
29 | }
30 |
31 | /**
32 | * Get if the value should be appended or not (bool true or false)
33 | * @return bool
34 | */
35 | public function getAppendLabel(): bool
36 | {
37 | return $this->appendLabel;
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Formelements/Miscellaneous/TraitCheckboxesAndRadiosMultiple.php:
--------------------------------------------------------------------------------
1 | multipleWrapper;
31 | }
32 |
33 | /**
34 | * Get the label wrapper for the top label for further manipulations
35 | * @return Wrapper
36 | */
37 | public function getTopLabelWrapper(): Wrapper
38 | {
39 | return $this->topLabelWrapper;
40 | }
41 |
42 | /**
43 | * Set the value of the top label over all checkboxes
44 | * @param string $topLabelText
45 | * @return InputRadioMultiple|InputCheckboxMultiple|TraitCheckboxesAndRadiosMultiple
46 | */
47 | public function setTopLabelText(string $topLabelText): self
48 | {
49 | $this->topLabelText = $topLabelText;
50 | return $this;
51 | }
52 |
53 | /**
54 | * Get the value of the top label
55 | * @return string
56 | */
57 | public function getTopLabelText(): string
58 | {
59 | return $this->topLabelText;
60 | }
61 |
62 | /**
63 | * Change the markup and add the CSS class depending on if the alignment of radios or checkboxes (multiple)
64 | * is horizontal or vertical
65 | * @param string $markupType
66 | * @param InputCheckboxMultiple|InputRadioMultiple $input
67 | * @return string
68 | */
69 | protected function setCheckBoxRadioAlignmentClass(string $markupType, InputCheckboxMultiple|InputRadioMultiple $input, string $out): string
70 | {
71 |
72 | $wrapper = $input->getMultipleWrapper();
73 | if ($input->directionHorizontal) {
74 | $class = 'horizontalWrapperClass';
75 | } else {
76 | $class = 'verticalWrapperClass';
77 | }
78 |
79 | $wrapper->setCSSClass($class);
80 | $wrapper->setContent($out);
81 |
82 | return $wrapper->render();
83 |
84 | }
85 |
86 |
87 | }
88 |
--------------------------------------------------------------------------------
/Formelements/Miscellaneous/TraitOption.php:
--------------------------------------------------------------------------------
1 | setContent($label);
31 | $option->setAttribute('value', $value);
32 | $this->options = array_merge($this->options, [$option]);
33 | return $option;
34 | }
35 |
36 | /**
37 | * Create an empty option object
38 | * @param string $optionLabel
39 | * @return Option
40 | */
41 | public function addEmptyOption(string $optionLabel = '-'): Option
42 | {
43 | $option = new Option();
44 | $option->setContent($optionLabel);
45 | $option->setAttribute('value', '');
46 | $this->options = array_merge($this->options, [$option]);
47 | return $option;
48 | }
49 |
50 | /**
51 | * Add hr tag to the options to help visually break up the options for a better user experience
52 | * https://developer.chrome.com/blog/hr-in-select
53 | * Not supported in all browsers - so please check it if it works
54 | * @return \FrontendForms\Option
55 | */
56 | public function addHorizontalRule(): TextElements
57 | {
58 | $hr = new TextElements();
59 | $hr->setTag('hr');
60 | $this->options = array_merge($this->options, [$hr]);
61 | return $hr;
62 | }
63 |
64 | /**
65 | * This method deletes all options
66 | * @return void
67 | */
68 | public function removeAllOptions(): void
69 | {
70 | $this->options = [];
71 | }
72 |
73 | }
74 |
--------------------------------------------------------------------------------
/Formelements/Miscellaneous/TraitOptionElements.php:
--------------------------------------------------------------------------------
1 | className) {
26 | case 'InputRadioMultiple':
27 | $name = 'radios';
28 | break;
29 | case 'InputCheckboxMultiple':
30 | $name = 'checkboxes';
31 | break;
32 | default:
33 | $name = 'options';
34 | }
35 |
36 | return $name;
37 | }
38 |
39 | /**
40 | * Get a specific option element by its value (for further manipulations)
41 | * @param string|int $value
42 | * @return \FrontendForms\InputRadio|\FrontendForms\InputCheckbox|\FrontendForms\Option|null
43 | */
44 | public
45 | function getOptionByValue(string|int $value): null|InputRadio|InputCheckbox|Option
46 | {
47 | $option = null;
48 | $name = $this->getOptionsPropertyName();
49 |
50 | foreach ($this->$name as $optionElement) {
51 | if ($value == $optionElement->getAttribute('value')) {
52 | $option = $optionElement;
53 | break;
54 | }
55 | }
56 | return $option;
57 | }
58 |
59 | /**
60 | * Remove a specific option element by its value
61 | * @param string|int $option -> option value can be a string or an integer
62 | * @return $this
63 | */
64 | public
65 | function removeOptionByValue(string|int $value): void
66 | {
67 |
68 | $name = $this->getOptionsPropertyName();
69 |
70 | foreach ($this->$name as $key => $optionElement) {
71 | if ($value == $optionElement->getAttribute('value')) {
72 | unset($this->$name[$key]);
73 | break;
74 | }
75 | }
76 | }
77 |
78 |
79 | }
80 |
--------------------------------------------------------------------------------
/Formelements/Miscellaneous/TraitPWOptions.php:
--------------------------------------------------------------------------------
1 | wire('fields')->get($fieldName);
34 | if ($field) {
35 | // field must be a FieldtypeOptions field type
36 | if ($field->getFieldtype()->className() === 'FieldtypeOptions') {
37 | foreach ($field->type->getOptions($field) as $option) {
38 | $this->$addOptionMethodName($option->title, $option->title ?? $option->value);
39 | }
40 | }
41 | }
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/Formelements/Miscellaneous/TraitTags.php:
--------------------------------------------------------------------------------
1 | customTag = $tag;
29 | return parent::setTag($tag);
30 | }
31 |
32 | /**
33 | * Get the custom tag if set or null
34 | * @return string|null
35 | */
36 | public function getCustomTag(): null|string
37 | {
38 | return $this->customTag;
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/Formelements/Miscellaneous/defaults/ResetButton.php:
--------------------------------------------------------------------------------
1 | setAttribute('type', 'reset');
22 | $this->setAttribute('value', $this->_('Reset'));
23 | }
24 | }
--------------------------------------------------------------------------------
/Formelements/Textelements/Alert.php:
--------------------------------------------------------------------------------
1 | setTag('div');
29 | $this->setCSSClass('alertClass');
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/Formelements/Textelements/Defaults/DomainLink.php:
--------------------------------------------------------------------------------
1 | setCSSClass('home-link');
34 | $this->setLinkText($this->wire('input')->httpHostUrl());
35 | if($internal){
36 | $this->setPageLink($this->wire('pages')->get('/'));
37 | } else {
38 | $this->setUrl($this->wire('input')->httpHostUrl());
39 | }
40 | }
41 |
42 | }
--------------------------------------------------------------------------------
/Formelements/Textelements/Defaults/PrivacyText.php:
--------------------------------------------------------------------------------
1 | setText($this->_('By submitting this form you agree to our %s.'));
24 | $this->privacy = $this->_('Terms of use and Privacy Policy');
25 | $this->setAttribute('class', 'privacy-text');
26 |
27 | // create the link instance for the privacy link
28 | if (!array_key_exists('input_privacypageselect', $this->frontendforms))
29 | $this->frontendforms['input_privacypageselect'] = 'int';
30 |
31 | $this->policyLink = new Link();
32 | $this->linkExists = Privacy::setPrivacyPageUrl($this->frontendforms, $this->policyLink);
33 | $this->policyLink->setLinkText($this->privacy);
34 |
35 | }
36 |
37 | /**
38 | * Get the privacy link object for further manipulations if needed
39 | * @return \FrontendForms\Link
40 | */
41 | public function getPolicyLink(): Link
42 | {
43 | return $this->policyLink;
44 | }
45 |
46 | /**
47 | * Render the privacy policy link
48 | * @return string
49 | */
50 | public function renderPolicyLink(): string
51 | {
52 | $out = '';
53 |
54 | if ($this->linkExists) {
55 | $out = $this->policyLink->render();
56 | }
57 | return $out;
58 | }
59 |
60 | /**
61 | * Set the page id of the privacy policy page
62 | * @param int $id
63 | * @return $this
64 | */
65 | public function setPolicyPageId(int $id): self
66 | {
67 | $this->policyPageId = $id;
68 | return $this;
69 | }
70 |
71 | /**
72 | * Render the text string
73 | * @return string
74 | */
75 | public function ___render(): string
76 | {
77 | $privacy = $this->renderPolicyLink() != '' ? $this->renderPolicyLink() : $this->privacy;
78 | $this->setText(sprintf($this->getText(), $privacy));
79 | return parent::___render();
80 | }
81 |
82 | }
83 |
--------------------------------------------------------------------------------
/Formelements/Textelements/Description.php:
--------------------------------------------------------------------------------
1 | setCSSClass('descriptionClass');
32 | }
33 |
34 | /**
35 | * Set the position of the description on per field base
36 | * @param string $pos
37 | * @return self
38 | */
39 | public function setPosition(string $pos): self
40 | {
41 | if (in_array($pos, ['beforeLabel', 'afterLabel', 'afterInput'])) {
42 | $this->desc_position = $pos; // set new position property
43 | $this->setAttribute('class', $pos . '-desc'); // add new position class
44 | }
45 | return $this;
46 | }
47 |
48 | /**
49 | * Get the position of the description
50 | * @return string|null
51 | */
52 | public function getPosition(): ?string
53 | {
54 | return $this->desc_position;
55 | }
56 |
57 |
58 | }
59 |
--------------------------------------------------------------------------------
/Formelements/Textelements/Errormessage.php:
--------------------------------------------------------------------------------
1 | setCSSClass('error_messageClass');
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/Formelements/Textelements/Legend.php:
--------------------------------------------------------------------------------
1 | setTag('legend');
29 | $this->setCSSClass('legendClass');
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/Formelements/Textelements/Notes.php:
--------------------------------------------------------------------------------
1 | setCSSClass('notesClass');
30 | }
31 |
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/Formelements/Textelements/RequiredTextHint.php:
--------------------------------------------------------------------------------
1 | setTag('p');
29 | $this->setCSSClass('requiredTextHintClass');
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/Formelements/Textelements/Successmessage.php:
--------------------------------------------------------------------------------
1 | setCSSClass('success_messageClass');
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/Formelements/Textelements/TextElements.php:
--------------------------------------------------------------------------------
1 | setTag('p'); // default tag is paragraph - can be overwritten
31 | }
32 |
33 | /**
34 | * Set the text between the opening and closing tag
35 | * @param string $text
36 | * @return void
37 | */
38 | public function setText(string $text): void
39 | {
40 | $this->setContent($text);
41 | }
42 |
43 | /**
44 | * Get the text for the text element
45 | * @return string
46 | */
47 | public function getText(): string
48 | {
49 | return $this->getContent();
50 | }
51 |
52 | public function __toString()
53 | {
54 | return $this->render();
55 | }
56 |
57 | /**
58 | * Render the text element
59 | * @return string
60 | */
61 | public function ___render(): string
62 | {
63 |
64 | if ($this->wrapper) {
65 | $this->wrapper->setContent($this->renderNonSelfclosingTag($this->getTag()));
66 | return $this->wrapper->render();
67 | }
68 | return $this->renderNonSelfclosingTag($this->getTag());
69 | }
70 |
71 | }
72 |
--------------------------------------------------------------------------------
/Formelements/ValitronAPI.php:
--------------------------------------------------------------------------------
1 | valitron = new Validator(array());
31 | }
32 |
33 | /**
34 | * Get the name of the field validator (fe required)
35 | * @return string|null
36 | */
37 | public function getValidator(): ?string
38 | {
39 | return $this->validator;
40 | }
41 |
42 | /**
43 | * Set the name of the field validator (fe required)
44 | * @param string $validator
45 | * @return void
46 | */
47 | public function setValidator(string $validator): void
48 | {
49 | $this->validator = $validator;
50 | }
51 |
52 | /**
53 | * Set a validator rule to validate the input value
54 | * Checks first if the validator method exists, otherwise does nothing
55 | * Check https://processwire.com/api/ref/sanitizer/ for all sanitizer methods
56 | * @param string $validator - the name of the validator
57 | * @param array $options
58 | * @return array
59 | */
60 | public function setRule(string $validator, array $options = []): array
61 | {
62 | $validator = trim($validator);
63 | return ['name' => $validator, 'options' => $options];
64 | }
65 |
66 |
67 | /**
68 | * Set the custom error message of the field validator
69 | * @param string $msg
70 | * @return string
71 | */
72 | public function setCustomMessage(string $msg): string
73 | {
74 | $this->customMessage = $msg;
75 | return $msg;
76 | }
77 |
78 | /**
79 | * Set the custom field name for the error message
80 | * @param string $fieldname
81 | * @return string
82 | */
83 | public function setCustomFieldName(string $fieldname): string
84 | {
85 | $this->customFieldname = $fieldname;
86 | return $fieldname;
87 | }
88 |
89 | }
90 |
--------------------------------------------------------------------------------
/Formelements/Wrapper/FieldWrapper.php:
--------------------------------------------------------------------------------
1 | setCSSClass('field_wrapperClass');
29 | }
30 |
31 | /**
32 | * Grab the CSS class for errors on form inputs
33 | * @return string
34 | */
35 | protected function getErrorClass(): string
36 | {
37 | return $this->getCSSClass('field_wrapper_errorClass');
38 | }
39 |
40 | protected function getSuccessClass(): string
41 | {
42 | return $this->getCSSClass('field_wrapper_successClass');
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/Formelements/Wrapper/InputWrapper.php:
--------------------------------------------------------------------------------
1 | setCSSClass('input_wrapperClass');
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/Formelements/Wrapper/Wrapper.php:
--------------------------------------------------------------------------------
1 | ...
9 | *
10 | * Created by Jürgen K.
11 | * https://github.com/juergenweb
12 | * File name: Wrapper.php
13 | * Created: 03.07.2022
14 | */
15 |
16 | use ProcessWire\WireException;
17 | use ProcessWire\WirePermissionException;
18 |
19 | class Wrapper extends Tag
20 | {
21 |
22 | /**
23 | * @throws WireException
24 | * @throws WirePermissionException
25 | */
26 | public function __construct()
27 | {
28 | parent::__construct();
29 | $this->setTag('div');
30 | }
31 |
32 | /**
33 | * Render the wrapper
34 | * @return string
35 | */
36 | public function ___render(): string
37 | {
38 | return $this->renderNonSelfclosingTag($this->getTag());
39 | }
40 |
41 | public function __toString()
42 | {
43 | return $this->render();
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 juergenweb
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--detail-view-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/detail-view.php",
3 | "textdomain": "site--modules--frontendforms--detail-view-php",
4 | "translations": {
5 | "77c41ffdf7bebe6e2f1896cf8ae78a73": {
6 | "text": "Zus\u00e4tzliche Informationen \u00fcber %s"
7 | },
8 | "0f66316eff804ffa836d2214d80f3756": {
9 | "text": "Geographischer Standort"
10 | },
11 | "59716c97497eb9694541f7c3d37b1a4d": {
12 | "text": "Land"
13 | },
14 | "f447ac856e7e72435904956e3b15f433": {
15 | "text": "Region"
16 | },
17 | "57d056ed0984166336b7879c2af3657f": {
18 | "text": "Stadt"
19 | },
20 | "ac598c39fd0d78fb3eff40b3a5b5cbbd": {
21 | "text": "Es tut uns leid, aber ip-api.com hat keine Informationen \u00fcber diese IP-Adresse."
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--captcha--abstractcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/AbstractCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--abstractcaptcha-php",
4 | "translations": {
5 | "b52dc33684da9e3d394738b7d0dd2725": {
6 | "text": "Bitte anklicken, um ein neues Captcha zu laden"
7 | },
8 | "7c89feb583d9e778c3533017b111263d": {
9 | "text": "Bild neu laden"
10 | },
11 | "45d048c35e3cfd449dc0a1b503cd103a": {
12 | "text": "="
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--captcha--abstractimagecaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/AbstractImageCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--abstractimagecaptcha-php",
4 | "translations": {
5 | "118f3464042a036c52a1087e923a307e": {
6 | "text": "Bitte w\u00e4hlen Sie aus, was sie im Bild oberhalb sehen."
7 | },
8 | "161e7ce7bfdc89ab4b9f52c1d4c94212": {
9 | "text": "Tier"
10 | },
11 | "e9989db5dabeea617f40c8dbfd07f5fb": {
12 | "text": "Auto"
13 | },
14 | "338d1f8007f0c84287d9963d5ea36aeb": {
15 | "text": "Blume"
16 | },
17 | "aebfe46795575772b7cf413e25caeab9": {
18 | "text": "Haus"
19 | },
20 | "bc03219e367d3a4b7b1758c8af598174": {
21 | "text": "See"
22 | },
23 | "ec9903c79dd510ffa43f69ee867a9002": {
24 | "text": "Berg"
25 | },
26 | "3b0c14770e6bd663518496da60f524da": {
27 | "text": "Baum"
28 | },
29 | "2caf429ed0a858c9cb2b6456d1914fe1": {
30 | "text": "CAPTCHA als SPAM-Schutz"
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--captcha--abstractslidercaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/AbstractSliderCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--abstractslidercaptcha-php",
4 | "translations": {
5 | "da1e1af671e5b51f10c9fe3f494fbb3f": {
6 | "text": "Ich bin ein Mensch"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--captcha--abstracttextcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/AbstractTextCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--abstracttextcaptcha-php",
4 | "translations": {
5 | "ad1ca00ca558c196b2ffa224309706e4": {
6 | "text": "Diese Datei ist keine TrueType Schriftart Datei."
7 | },
8 | "d472945618bae0b84ca5082c7d916966": {
9 | "text": "Diese Datei existiert nicht unter dem angegebenen Pfad"
10 | },
11 | "f985413aacdc4d6e125cd3b6fb2a3eae": {
12 | "text": "CAPTCHA Sicherheitsabfrage"
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--captcha--variants--defaultimagecaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/DefaultImageCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--defaultimagecaptcha-php",
4 | "translations": {
5 | "1e27db1c7a9a959ca4cd75964525fa2d": {
6 | "text": "Bild CAPTCHA"
7 | },
8 | "5972e22698d0e9faba6397ce1b6b6f74": {
9 | "text": "Ordnen sie das Bild einer Kategorie zu"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--captcha--variants--defaulttextcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/DefaultTextCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--defaulttextcaptcha-php",
4 | "translations": {
5 | "7c62e8d4b13ecc03f28bb44905a5ec51": {
6 | "text": "Zufallstext Captcha"
7 | },
8 | "3c6c9439c3e38d0da29b7629a300c3c5": {
9 | "text": "Geben Sie den Text aus dem Bild in das Eingabefeld ein."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--captcha--variants--evencharactertextcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/EvenCharacterTextCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--evencharactertextcaptcha-php",
4 | "translations": {
5 | "07919a26035f7d7aaec32087cc2c0b4d": {
6 | "text": "Jedes zweite Zeichen Captcha"
7 | },
8 | "923fb30f185465aa974330e30a9a97c7": {
9 | "text": "Geben Sie jedes zweite Zeichen vom Text aus dem Bild in das Eingabefeld ein."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--captcha--variants--reversetextcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/ReverseTextCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--reversetextcaptcha-php",
4 | "translations": {
5 | "d8c8728824019c0866b958d0b2562edd": {
6 | "text": "Umgekehrter Text Captcha"
7 | },
8 | "167b8554feab7647d47863b05a0da92f": {
9 | "text": "Geben Sie den Text aus dem Bild in umgekehrter Reihenfolge (von rechts nach links) in das Eingabefeld ein."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--captcha--variants--simplemathtextcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/SimpleMathTextCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--simplemathtextcaptcha-php",
4 | "translations": {
5 | "d0995c2ec8c5df0820426833eb777396": {
6 | "text": "Mathematik Captcha"
7 | },
8 | "dc841e6076d43a6c8b03338a39a97e68": {
9 | "text": "Geben Sie das Ergebnis der Berechnung in das Eingabefeld ein."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--captcha--variants--simplequestioncaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/SimpleQuestionCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--simplequestioncaptcha-php",
4 | "translations": {
5 | "dd037cafd7ea6b996985f42b3598e6d6": {
6 | "text": "Bitte beantworten Sie die Frage"
7 | },
8 | "7f8c93e381be10c3cb9bebaa31387873": {
9 | "text": "Einfache-Frage-Captcha (Freitext)"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--captcha--variants--slidercaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/SliderCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--slidercaptcha-php",
4 | "translations": {
5 | "c323bd0275e1fed3b8343e450e3c7378": {
6 | "text": "="
7 | },
8 | "eff39d161054adaf3995f2c7988aaef2": {
9 | "text": "Bewegen Sie ein Puzzle-St\u00fcck"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--formvalidation-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/FormValidation.php",
3 | "textdomain": "site--modules--frontendforms--formelements--formvalidation-php",
4 | "translations": {
5 | "c2d918e53348ee8896137bec79036f84": {
6 | "text": "Sekunden \u00fcbrig"
7 | },
8 | "1793e600a6822489f25244c196a05085": {
9 | "text": "Sekunde \u00fcbrig"
10 | },
11 | "1196c16ef68e26acc46dae99fcc50522": {
12 | "text": "Sie haben das Formular innerhalb von %s abgeschickt. Das scheint f\u00fcr einen Menschen ziemlich schnell zu sein. Ihr Verhalten \u00e4hnelt eher einem Spam-Bot. Bitte warten Sie mindestens %s, bis Sie das Formular erneut absenden."
13 | },
14 | "2447d344db3fb15973b24ddd51a615b8": {
15 | "text": "Sie haben das Formular nach %s abgeschickt. Das scheint f\u00fcr einen Menschen ziemlich langsam zu sein. Ihr Verhalten \u00e4hnelt eher einem Spam-Bot. Bitte reichen Sie das Formular das n\u00e4chste Mal innerhalb von %s ein. Sie sind jetzt blockiert und m\u00fcssen den Browser schlie\u00dfen. Um die Sperrung aufzuheben, \u00f6ffnen Sie danach diese Seite erneut."
16 | },
17 | "7436f942d5ea836cb84f1bb2527d8286": {
18 | "text": "Monat"
19 | },
20 | "172a8327fcd3685ab3c0f740d031da09": {
21 | "text": "Woche"
22 | },
23 | "628b7db04235f228d40adc671413a8c8": {
24 | "text": "Tag"
25 | },
26 | "896c55cc5e46fab38ce9f51ebf7bfcd3": {
27 | "text": "Stunde"
28 | },
29 | "0a7d55be9d12a369a6a8da0fb517fba4": {
30 | "text": "Minute"
31 | },
32 | "a9f0e61a137d86aa9db53465e0801612": {
33 | "text": "Sekunde"
34 | },
35 | "da36cfaf48b9e19896e23e1207040d1e": {
36 | "text": "Monate"
37 | },
38 | "ae60f11ab51860bdb22794a943335a34": {
39 | "text": "Wochen"
40 | },
41 | "44fdec47036f482b68b748f9d786801b": {
42 | "text": "Tage"
43 | },
44 | "73cdddd7730abfc13a55efb9f5685a3b": {
45 | "text": "Stunden"
46 | },
47 | "640fd0cc0ffa0316ae087652871f4486": {
48 | "text": "Minuten"
49 | },
50 | "783e8e29e6a8c3e22baa58a19420eb4f": {
51 | "text": "Sekunden"
52 | },
53 | "be5d5d37542d75f93a87094459f76678": {
54 | "text": "und"
55 | }
56 | }
57 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--email-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Email.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--email-php",
4 | "translations": {
5 | "ce8ae9da5b7cd6c3df2929543a9af92d": {
6 | "text": "E-Mail"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadmultiple-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/FileUploadMultiple.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadmultiple-php",
4 | "translations": {
5 | "c837009ce96fdfc1615d310bc667f996": {
6 | "text": "Laden Sie mehrere Dateien hoch"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadsingle-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/FileUploadSingle.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadsingle-php",
4 | "translations": {
5 | "e14f1d680e8b3d40bc2744468332eb46": {
6 | "text": "Laden Sie eine Datei hoch"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--name-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Name.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--name-php",
4 | "translations": {
5 | "49ee3087348e8d44e1feda1917443987": {
6 | "text": "Vorname"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--password-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Password.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--password-php",
4 | "translations": {
5 | "dc647eb65e6711e155375218212b3964": {
6 | "text": "Passwort"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--passwordconfirmation-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/PasswordConfirmation.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--passwordconfirmation-php",
4 | "translations": {
5 | "c2b7527a6421ad4a0c0089d87290d1cd": {
6 | "text": "Passwort Best\u00e4tigung"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--phone-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Phone.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--phone-php",
4 | "translations": {
5 | "bcc254b55c4a1babdf1dcb82c207506b": {
6 | "text": "Telefon"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--privacy-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Privacy.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--privacy-php",
4 | "translations": {
5 | "28f678f8feb29d236b6dfcb02190ba21": {
6 | "text": "Ich akzeptiere die Datenschutzrichtlinien"
7 | },
8 | "9a5b98e025ebe5fd1adbddccc94ad638": {
9 | "text": "Sie m\u00fcssen die Datenschutzrichtlinien akzeptieren"
10 | },
11 | "fa2ead697d9998cbc65c81384e6533d5": {
12 | "text": "Datenschutz-Richtlinien"
13 | },
14 | "2b91037b0240c93155085ce8c0768cb9": {
15 | "text": "Zur Seite mit den Datenschutz-Richtlininen"
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--sendcopy-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/SendCopy.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--sendcopy-php",
4 | "translations": {
5 | "7313e5cce02f10d1d6a22dea1aedc9eb": {
6 | "text": "Eine Kopie dieser Nachricht an mich senden"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--subject-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Subject.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--subject-php",
4 | "translations": {
5 | "c7892ebbb139886662c6f2fc8c450710": {
6 | "text": "Betreff"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--surname-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Surname.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--surname-php",
4 | "translations": {
5 | "8e55577a8ed3b20bff65d23c000280d4": {
6 | "text": "Nachname"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--defaults--username-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Username.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--username-php",
4 | "translations": {
5 | "f6039d44b29456b20f8f373155ae4973": {
6 | "text": "Benutzername"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--inputfile-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/InputFile.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--inputfile-php",
4 | "translations": {
5 | "c4265549c1f4d79aea1e279149a6a084": {
6 | "text": "Datei Upload"
7 | },
8 | "1afe200fa26ba361f59b603b22ad6392": {
9 | "text": "W\u00e4hlen Sie die Dateien aus"
10 | },
11 | "86a135398368af9fbb0a9d3f966e3706": {
12 | "text": "Das Datei-Upload-Feld leeren"
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--inputs--inputpassword-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/InputPassword.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--inputpassword-php",
4 | "translations": {
5 | "a1cc7ba89ca3016cf59d7c31506a9681": {
6 | "text": "Passwort anzeigen"
7 | },
8 | "8bc6641f570b88866300ca703223bf6b": {
9 | "text": "Das Passwort muss mindestes %s Zeichen lang sein und folgende Zeichen enthalten: %s."
10 | },
11 | "3d55c273179acb11e30d1a53f8d8625e": {
12 | "text": "Das Passwort muss mindestes %s Zeichen lang sein."
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--select--defaults--gender-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Select\/defaults\/Gender.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--select--defaults--gender-php",
4 | "translations": {
5 | "019ec3132cdf8ee0f2e2a75cf5d3e459": {
6 | "text": "Anrede"
7 | },
8 | "992eda0d64a430fa5c7925d23ef9d0a3": {
9 | "text": "Bitte ausw\u00e4hlen"
10 | },
11 | "c4f448df316abb13eb7eada722c57902": {
12 | "text": "Herr"
13 | },
14 | "e7ddb7cd777b59610b220bcfa80bd95f": {
15 | "text": "Frau"
16 | },
17 | "e67561dfc51195ce1ac515406291900e": {
18 | "text": "Divers"
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--select--defaults--language-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Select\/defaults\/Language.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--select--defaults--language-php",
4 | "translations": {
5 | "4994a8ffeba4ac3140beb89e8d41f174": {
6 | "text": "Sprache"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--textarea--defaults--message-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Textarea\/defaults\/Message.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--textarea--defaults--message-php",
4 | "translations": {
5 | "4c2a8fe7eaf24721cc7a9f0175115bd4": {
6 | "text": "Nachricht"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--inputelements--textarea--textarea-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Textarea\/Textarea.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--textarea--textarea-php",
4 | "translations": {
5 | "ef4384b98530cb2c2cdd7f9828d0ada2": {
6 | "text": "Sie haben die maximale Anzahl von Zeichen erreicht."
7 | },
8 | "c265a6b5fe0229c56cdf89d9ff9d7754": {
9 | "text": "Sie haben noch %s Zeichen \u00fcbrig."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--miscellaneous--button-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Miscellaneous\/Button.php",
3 | "textdomain": "site--modules--frontendforms--formelements--miscellaneous--button-php",
4 | "translations": {
5 | "94966d90747b97d1f0f206c98a8b1ac3": {
6 | "text": "Senden"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--miscellaneous--defaults--resetbutton-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Miscellaneous\/defaults\/ResetButton.php",
3 | "textdomain": "site--modules--frontendforms--formelements--miscellaneous--defaults--resetbutton-php",
4 | "translations": []
5 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--textelements--defaults--privacytext-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Textelements\/Defaults\/PrivacyText.php",
3 | "textdomain": "site--modules--frontendforms--formelements--textelements--defaults--privacytext-php",
4 | "translations": {
5 | "2c34ad3fc22ef60c91a73189e7f26e8e": {
6 | "text": "Durch das Absenden des Formulars stimmen sie unseren %s zu."
7 | },
8 | "953a9a5b5747639204478270493a532d": {
9 | "text": "Bedingungen und Datenschutzbestimmungen"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/DE/site--modules--frontendforms--formelements--textelements--link-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Textelements\/Link.php",
3 | "textdomain": "site--modules--frontendforms--formelements--textelements--link-php",
4 | "translations": {
5 | "bea7931fd2f2e37616d0be40dd825860": {
6 | "text": "Zur Seite"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--detail-view-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/detail-view.php",
3 | "textdomain": "site--modules--frontendforms--detail-view-php",
4 | "translations": {
5 | "77c41ffdf7bebe6e2f1896cf8ae78a73": {
6 | "text": "\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e %s"
7 | },
8 | "0f66316eff804ffa836d2214d80f3756": {
9 | "text": "\u0413\u0435\u043e\u043b\u043e\u043a\u0430\u0446\u0438\u044f"
10 | },
11 | "59716c97497eb9694541f7c3d37b1a4d": {
12 | "text": "\u0421\u0442\u0440\u0430\u043d\u0430"
13 | },
14 | "f447ac856e7e72435904956e3b15f433": {
15 | "text": "\u0420\u0435\u0433\u0438\u043e\u043d"
16 | },
17 | "57d056ed0984166336b7879c2af3657f": {
18 | "text": "\u0413\u043e\u0440\u043e\u0434"
19 | },
20 | "ac598c39fd0d78fb3eff40b3a5b5cbbd": {
21 | "text": "\u041c\u044b \u0441\u043e\u0436\u0430\u043b\u0435\u0435\u043c, \u043d\u043e ip-api.com \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e\u0431 \u044d\u0442\u043e\u043c IP-\u0430\u0434\u0440\u0435\u0441\u0435."
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--captcha--abstractcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/AbstractCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--abstractcaptcha-php",
4 | "translations": {
5 | "b52dc33684da9e3d394738b7d0dd2725": {
6 | "text": "\u041d\u0430\u0436\u043c\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u043a\u0430\u043f\u0447\u0443"
7 | },
8 | "7c89feb583d9e778c3533017b111263d": {
9 | "text": "\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435"
10 | },
11 | "45d048c35e3cfd449dc0a1b503cd103a": {
12 | "text": "\u041a\u0430\u043f\u0447\u0430"
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--captcha--abstractimagecaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/AbstractImageCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--abstractimagecaptcha-php",
4 | "translations": {
5 | "118f3464042a036c52a1087e923a307e": {
6 | "text": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u043e, \u0447\u0442\u043e \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u044b\u0448\u0435."
7 | },
8 | "161e7ce7bfdc89ab4b9f52c1d4c94212": {
9 | "text": "\u0416\u0438\u0432\u043e\u0442\u043d\u043e\u0435"
10 | },
11 | "e9989db5dabeea617f40c8dbfd07f5fb": {
12 | "text": "\u0410\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c"
13 | },
14 | "338d1f8007f0c84287d9963d5ea36aeb": {
15 | "text": "\u0426\u0432\u0435\u0442\u043e\u043a"
16 | },
17 | "aebfe46795575772b7cf413e25caeab9": {
18 | "text": "\u0414\u043e\u043c"
19 | },
20 | "bc03219e367d3a4b7b1758c8af598174": {
21 | "text": "\u041e\u0437\u0435\u0440\u043e"
22 | },
23 | "ec9903c79dd510ffa43f69ee867a9002": {
24 | "text": "\u0413\u043e\u0440\u0430"
25 | },
26 | "3b0c14770e6bd663518496da60f524da": {
27 | "text": "\u0414\u0435\u0440\u0435\u0432\u043e"
28 | },
29 | "2caf429ed0a858c9cb2b6456d1914fe1": {
30 | "text": "\u041f\u043e\u043b\u0435 \u043a\u0430\u043f\u0442\u0447\u0430 \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u0441\u043f\u0430\u043c\u0430"
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--captcha--abstractslidercaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/AbstractSliderCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--abstractslidercaptcha-php",
4 | "translations": {
5 | "da1e1af671e5b51f10c9fe3f494fbb3f": {
6 | "text": "\u042f - \u0447\u0435\u043b\u043e\u0432\u0435\u043a"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--captcha--abstracttextcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/AbstractTextCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--abstracttextcaptcha-php",
4 | "translations": {
5 | "ad1ca00ca558c196b2ffa224309706e4": {
6 | "text": "\u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0448\u0440\u0438\u0444\u0442\u043e\u043c TrueType."
7 | },
8 | "d472945618bae0b84ca5082c7d916966": {
9 | "text": "\u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438"
10 | },
11 | "f985413aacdc4d6e125cd3b6fb2a3eae": {
12 | "text": "\u041f\u043e\u043b\u0435 \u043a\u0430\u043f\u0447\u0438 \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438"
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--captcha--variants--defaultimagecaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/DefaultImageCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--defaultimagecaptcha-php",
4 | "translations": {
5 | "1e27db1c7a9a959ca4cd75964525fa2d": {
6 | "text": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u043f\u0447\u0438"
7 | },
8 | "5972e22698d0e9faba6397ce1b6b6f74": {
9 | "text": "\u041f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--captcha--variants--defaulttextcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/DefaultTextCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--defaulttextcaptcha-php",
4 | "translations": {
5 | "7c62e8d4b13ecc03f28bb44905a5ec51": {
6 | "text": "\u041a\u0430\u043f\u0447\u0430 \u0438\u0437 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438"
7 | },
8 | "3c6c9439c3e38d0da29b7629a300c3c5": {
9 | "text": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--captcha--variants--evencharactertextcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/EvenCharacterTextCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--evencharactertextcaptcha-php",
4 | "translations": {
5 | "07919a26035f7d7aaec32087cc2c0b4d": {
6 | "text": "\u0415\u0449\u0435 \u0441\u0442\u0440\u043e\u043a\u0430 \u043a\u0430\u043f\u0447\u0438"
7 | },
8 | "923fb30f185465aa974330e30a9a97c7": {
9 | "text": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0442\u0435\u043a\u0441\u0442\u0430 \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--captcha--variants--reversetextcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/ReverseTextCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--reversetextcaptcha-php",
4 | "translations": {
5 | "d8c8728824019c0866b958d0b2562edd": {
6 | "text": "\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043a\u0430\u043f\u0447\u0430"
7 | },
8 | "167b8554feab7647d47863b05a0da92f": {
9 | "text": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 (\u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e)."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--captcha--variants--simplemathtextcaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/SimpleMathTextCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--simplemathtextcaptcha-php",
4 | "translations": {
5 | "d0995c2ec8c5df0820426833eb777396": {
6 | "text": "\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u0430\u043f\u0447\u0430"
7 | },
8 | "dc841e6076d43a6c8b03338a39a97e68": {
9 | "text": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0432 \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--captcha--variants--simplequestioncaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/SimpleQuestionCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--simplequestioncaptcha-php",
4 | "translations": {
5 | "7f8c93e381be10c3cb9bebaa31387873": {
6 | "text": "\u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 Captcha (\u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442)"
7 | },
8 | "dd037cafd7ea6b996985f42b3598e6d6": {
9 | "text": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0442\u0432\u0435\u0442\u044c\u0442\u0435 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--captcha--variants--slidercaptcha-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Captcha\/variants\/SliderCaptcha.php",
3 | "textdomain": "site--modules--frontendforms--formelements--captcha--variants--slidercaptcha-php",
4 | "translations": {
5 | "c323bd0275e1fed3b8343e450e3c7378": {
6 | "text": "\u0421\u043b\u0430\u0439\u0434\u0435\u0440 \u041a\u0430\u043f\u0447\u0430"
7 | },
8 | "eff39d161054adaf3995f2c7988aaef2": {
9 | "text": "\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043a\u0438."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--email-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Email.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--email-php",
4 | "translations": {
5 | "ce8ae9da5b7cd6c3df2929543a9af92d": {
6 | "text": "\u0415-\u043c\u0435\u0439\u043b"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadmultiple-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/FileUploadMultiple.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadmultiple-php",
4 | "translations": {
5 | "c837009ce96fdfc1615d310bc667f996": {
6 | "text": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadsingle-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/FileUploadSingle.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--fileuploadsingle-php",
4 | "translations": {
5 | "e14f1d680e8b3d40bc2744468332eb46": {
6 | "text": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--name-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Name.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--name-php",
4 | "translations": {
5 | "49ee3087348e8d44e1feda1917443987": {
6 | "text": "+"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--password-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Password.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--password-php",
4 | "translations": {
5 | "dc647eb65e6711e155375218212b3964": {
6 | "text": "\u041f\u0430\u0440\u043e\u043b\u044c"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--passwordconfirmation-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/PasswordConfirmation.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--passwordconfirmation-php",
4 | "translations": {
5 | "c2b7527a6421ad4a0c0089d87290d1cd": {
6 | "text": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--phone-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Phone.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--phone-php",
4 | "translations": {
5 | "bcc254b55c4a1babdf1dcb82c207506b": {
6 | "text": "\u0422\u0435\u043b\u0435\u0444\u043e\u043d"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--privacy-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Privacy.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--privacy-php",
4 | "translations": {
5 | "28f678f8feb29d236b6dfcb02190ba21": {
6 | "text": "\u042f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438"
7 | },
8 | "9a5b98e025ebe5fd1adbddccc94ad638": {
9 | "text": "\u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u043d\u0430\u0448\u0443 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438"
10 | },
11 | "fa2ead697d9998cbc65c81384e6533d5": {
12 | "text": "\u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438"
13 | },
14 | "2b91037b0240c93155085ce8c0768cb9": {
15 | "text": "\u041d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438"
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--sendcopy-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/SendCopy.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--sendcopy-php",
4 | "translations": {
5 | "7313e5cce02f10d1d6a22dea1aedc9eb": {
6 | "text": "\u041e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043c\u043d\u0435 \u043a\u043e\u043f\u0438\u044e \u043c\u043e\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--subject-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Subject.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--subject-php",
4 | "translations": {
5 | "c7892ebbb139886662c6f2fc8c450710": {
6 | "text": "\u0422\u0435\u043c\u0430 \u043f\u0438\u0441\u044c\u043c\u0430"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--surname-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Surname.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--surname-php",
4 | "translations": {
5 | "8e55577a8ed3b20bff65d23c000280d4": {
6 | "text": "\u0424\u0430\u043c\u0438\u043b\u0438\u044f"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--defaults--username-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/defaults\/Username.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--defaults--username-php",
4 | "translations": {
5 | "f6039d44b29456b20f8f373155ae4973": {
6 | "text": "\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--inputfile-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/InputFile.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--inputfile-php",
4 | "translations": {
5 | "c4265549c1f4d79aea1e279149a6a084": {
6 | "text": "\u0424\u0430\u0439\u043b \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d"
7 | },
8 | "1afe200fa26ba361f59b603b22ad6392": {
9 | "text": "\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b"
10 | },
11 | "86a135398368af9fbb0a9d3f966e3706": {
12 | "text": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430"
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--inputs--inputpassword-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Inputs\/InputPassword.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--inputs--inputpassword-php",
4 | "translations": {
5 | "a1cc7ba89ca3016cf59d7c31506a9681": {
6 | "text": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c"
7 | },
8 | "8bc6641f570b88866300ca703223bf6b": {
9 | "text": "\u041f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0438\u0437 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 %s \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439: %s."
10 | },
11 | "3d55c273179acb11e30d1a53f8d8625e": {
12 | "text": "\u041f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 %s \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432."
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--select--defaults--gender-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Select\/defaults\/Gender.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--select--defaults--gender-php",
4 | "translations": {
5 | "019ec3132cdf8ee0f2e2a75cf5d3e459": {
6 | "text": "\u041f\u043e\u043b"
7 | },
8 | "992eda0d64a430fa5c7925d23ef9d0a3": {
9 | "text": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435"
10 | },
11 | "c4f448df316abb13eb7eada722c57902": {
12 | "text": "\u041c\u0443\u0436\u0447\u0438\u043d\u0430"
13 | },
14 | "e7ddb7cd777b59610b220bcfa80bd95f": {
15 | "text": "\u0416\u0435\u043d\u0449\u0438\u043d\u0430"
16 | },
17 | "e67561dfc51195ce1ac515406291900e": {
18 | "text": "\u0414\u0440\u0443\u0433\u043e\u0435"
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--select--defaults--language-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Select\/defaults\/Language.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--select--defaults--language-php",
4 | "translations": {
5 | "4994a8ffeba4ac3140beb89e8d41f174": {
6 | "text": "\u042f\u0437\u044b\u043a"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--textarea--defaults--message-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Textarea\/defaults\/Message.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--textarea--defaults--message-php",
4 | "translations": {
5 | "4c2a8fe7eaf24721cc7a9f0175115bd4": {
6 | "text": "\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--inputelements--textarea--textarea-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Inputelements\/Textarea\/Textarea.php",
3 | "textdomain": "site--modules--frontendforms--formelements--inputelements--textarea--textarea-php",
4 | "translations": {
5 | "ef4384b98530cb2c2cdd7f9828d0ada2": {
6 | "text": "\u0412\u044b \u0434\u043e\u0441\u0442\u0438\u0433\u043b\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432."
7 | },
8 | "c265a6b5fe0229c56cdf89d9ff9d7754": {
9 | "text": "\u0423 \u0432\u0430\u0441 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c %s \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432."
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--miscellaneous--button-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Miscellaneous\/Button.php",
3 | "textdomain": "site--modules--frontendforms--formelements--miscellaneous--button-php",
4 | "translations": {
5 | "94966d90747b97d1f0f206c98a8b1ac3": {
6 | "text": "\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--textelements--defaults--privacytext-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Textelements\/Defaults\/PrivacyText.php",
3 | "textdomain": "site--modules--frontendforms--formelements--textelements--defaults--privacytext-php",
4 | "translations": {
5 | "2c34ad3fc22ef60c91a73189e7f26e8e": {
6 | "text": "\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u044d\u0442\u0443 \u0444\u043e\u0440\u043c\u0443, \u0432\u044b \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u0442\u0435\u0441\u044c \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 %s."
7 | },
8 | "953a9a5b5747639204478270493a532d": {
9 | "text": "\u0423\u0441\u043b\u043e\u0432\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/RockLanguage/RU/site--modules--frontendforms--formelements--textelements--link-php.json:
--------------------------------------------------------------------------------
1 | {
2 | "file": "site\/modules\/FrontendForms\/Formelements\/Textelements\/Link.php",
3 | "textdomain": "site--modules--frontendforms--formelements--textelements--link-php",
4 | "translations": {
5 | "bea7931fd2f2e37616d0be40dd825860": {
6 | "text": "\u041d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443"
7 | }
8 | }
9 | }
--------------------------------------------------------------------------------
/assets/template_2/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/assets/template_2/logo.png
--------------------------------------------------------------------------------
/backend/frontendforms.js:
--------------------------------------------------------------------------------
1 | /*
2 | Javascript file for the backend
3 |
4 | Created by Jürgen K.
5 | https://github.com/juergenweb
6 | File name: frontendforms.js
7 | Created: 17.07.2022
8 | */
9 |
10 | /*jslint browser:true */
11 |
12 | function openFieldset(event){
13 |
14 | const fieldset_spam = document.getElementById("spam");
15 | const fieldset_attempts = document.getElementById("failed-attempts");
16 |
17 | if(fieldset_attempts){
18 | if(fieldset_attempts.classList.contains("InputfieldStateCollapsed")){
19 | // open the fieldset by removing InputfieldStateCollapsed class attribute
20 | fieldset_spam.classList.remove("InputfieldStateCollapsed");
21 | fieldset_attempts.classList.remove("InputfieldStateCollapsed");
22 | }
23 | }
24 | }
25 |
26 |
27 | window.onload = function () {
28 |
29 | const loggin_enable_link = document.getElementById("enable-logging");
30 |
31 | if(loggin_enable_link){
32 |
33 | // add event listener
34 | loggin_enable_link.addEventListener("click", openFieldset);
35 |
36 | }
37 |
38 | };
39 |
40 | // Ajax calls for FrontendForms Manager
41 | $( document ).ready(function() {
42 |
43 | if ($("button.statistics").length > 0) {
44 |
45 | $("button.statistics").click(function(event){
46 | event.preventDefault();
47 |
48 | $.ajax({
49 | url: $(location).attr("href"),
50 | type: 'post', // performing a POST request
51 | data : {
52 | type : $(this).data('statistic')// will be accessible in $_POST
53 | },
54 | success: function(result)
55 | {
56 | // remove pageload container first
57 | $('#pageload').remove();
58 | $("#questionsstatistic").html(result);
59 | }
60 | });
61 |
62 | });
63 | }
64 |
65 | });
66 |
--------------------------------------------------------------------------------
/captchaimages/animal/animal1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal1.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal10.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal11.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal12.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal13.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal14.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal14.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal2.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal3.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal4.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal5.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal6.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal7.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal8.jpg
--------------------------------------------------------------------------------
/captchaimages/animal/animal9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/animal/animal9.jpg
--------------------------------------------------------------------------------
/captchaimages/car/car1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/car/car1.jpg
--------------------------------------------------------------------------------
/captchaimages/car/car2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/car/car2.jpg
--------------------------------------------------------------------------------
/captchaimages/car/car3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/car/car3.jpg
--------------------------------------------------------------------------------
/captchaimages/car/car4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/car/car4.jpg
--------------------------------------------------------------------------------
/captchaimages/car/car5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/car/car5.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower1.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower10.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower11.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower12.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower13.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower14.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower14.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower15.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower15.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower2.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower3.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower4.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower5.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower6.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower7.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower8.jpg
--------------------------------------------------------------------------------
/captchaimages/flower/flower9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/flower/flower9.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house1.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house10.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house11.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house12.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house2.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house3.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house4.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house5.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house6.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house7.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house8.jpg
--------------------------------------------------------------------------------
/captchaimages/house/house9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/house/house9.jpg
--------------------------------------------------------------------------------
/captchaimages/lake/lake1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/lake/lake1.jpg
--------------------------------------------------------------------------------
/captchaimages/lake/lake2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/lake/lake2.jpg
--------------------------------------------------------------------------------
/captchaimages/lake/lake3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/lake/lake3.jpg
--------------------------------------------------------------------------------
/captchaimages/lake/lake4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/lake/lake4.jpg
--------------------------------------------------------------------------------
/captchaimages/lake/lake5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/lake/lake5.jpg
--------------------------------------------------------------------------------
/captchaimages/lake/lake6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/lake/lake6.jpg
--------------------------------------------------------------------------------
/captchaimages/lake/lake7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/lake/lake7.jpg
--------------------------------------------------------------------------------
/captchaimages/lake/lake8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/lake/lake8.jpg
--------------------------------------------------------------------------------
/captchaimages/lake/lake9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/lake/lake9.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain1.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain10.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain11.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain12.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain13.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain2.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain3.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain4.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain5.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain6.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain7.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain8.jpg
--------------------------------------------------------------------------------
/captchaimages/mountain/mountain9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/mountain/mountain9.jpg
--------------------------------------------------------------------------------
/captchaimages/tree/tree1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/tree/tree1.jpg
--------------------------------------------------------------------------------
/captchaimages/tree/tree10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/tree/tree10.jpg
--------------------------------------------------------------------------------
/captchaimages/tree/tree2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/tree/tree2.jpg
--------------------------------------------------------------------------------
/captchaimages/tree/tree3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/tree/tree3.jpg
--------------------------------------------------------------------------------
/captchaimages/tree/tree4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/tree/tree4.jpg
--------------------------------------------------------------------------------
/captchaimages/tree/tree5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/tree/tree5.jpg
--------------------------------------------------------------------------------
/captchaimages/tree/tree6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/tree/tree6.jpg
--------------------------------------------------------------------------------
/captchaimages/tree/tree7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/tree/tree7.jpg
--------------------------------------------------------------------------------
/captchaimages/tree/tree8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/tree/tree8.jpg
--------------------------------------------------------------------------------
/captchaimages/tree/tree9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/captchaimages/tree/tree9.jpg
--------------------------------------------------------------------------------
/config/questionFields.php:
--------------------------------------------------------------------------------
1 | questionFields = [
16 | 'ff_answers' => [
17 | 'fieldtype' => 'FieldtypeTextarea',
18 | 'label' => $this->_("Accepted answers"),
19 | 'description' => $this->_("Add all accepted answers (each on a new line)."),
20 | 'required' => 1,
21 | 'textformatters' => ["TextformatterEntities"],
22 | 'stripTags' => 1
23 | ],
24 | 'ff_errormsg' => [
25 | 'fieldtype' => 'FieldtypeText',
26 | 'label' => $this->_("Custom error message"),
27 | 'description' => $this->_("Set a custom error message if you want."),
28 | 'notes' => $this->_("This will overwrite the default error message if the CAPTCHA answer was wrong.")
29 | ],
30 | 'ff_successmsg' => [
31 | 'fieldtype' => 'FieldtypeText',
32 | 'label' => $this->_("Success message"),
33 | 'description' => $this->_("Set a custom success message if you want."),
34 | 'notes' => $this->_("This message will be shown, if the answer of the CAPTCHA was correct, but there were other errors.")
35 | ],
36 | 'ff_placeholder' => [
37 | 'fieldtype' => 'FieldtypeText',
38 | 'label' => $this->_("Placeholder text"),
39 | 'description' => $this->_("Set a placeholder text if you want.")
40 | ],
41 | 'ff_notes' => [
42 | 'fieldtype' => 'FieldtypeText',
43 | 'label' => $this->_("Notes text"),
44 | 'description' => $this->_("Set a notes text if you want."),
45 | 'notes' => $this->_("The notes text will be displayed below the input field.")
46 | ],
47 | 'ff_description' => [
48 | 'fieldtype' => 'FieldtypeText',
49 | 'label' => $this->_("Description text"),
50 | 'description' => $this->_("Set a description text if you want."),
51 | 'notes' => $this->_("The description text will be displayed below or above the label or below the input field.")
52 | ],
53 | 'ff_descposition' => [
54 | 'fieldtype' => 'FieldtypeOptions',
55 | 'label' => $this->_("Description position"),
56 | 'description' => $this->_("You can change the position of the description text if you want."),
57 | 'notes' => $this->_("This will overwrite the default description position."),
58 | 'defaultValue' => '1',
59 | 'required' => 1
60 | ]
61 | ];
62 |
--------------------------------------------------------------------------------
/email_templates/template_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/email_templates/template_1.png
--------------------------------------------------------------------------------
/email_templates/template_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/email_templates/template_2.png
--------------------------------------------------------------------------------
/email_templates/template_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/email_templates/template_3.png
--------------------------------------------------------------------------------
/email_templates/template_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/email_templates/template_4.png
--------------------------------------------------------------------------------
/image-picker/image-picker.css:
--------------------------------------------------------------------------------
1 | /* line 6, source/sass/image-picker.scss */
2 | ul.thumbnails.image_picker_selector {
3 | overflow: auto;
4 | clear:both;
5 | list-style-image: none;
6 | list-style-position: outside;
7 | list-style-type: none;
8 | padding: 0px;
9 | margin: 0px; }
10 | /* line 15, source/sass/image-picker.scss */
11 | ul.thumbnails .thumbnail .ff-email-template-selected {
12 | background:#ffd;
13 | color: #8d939e;
14 | position:absolute;
15 | width: 90%;
16 | padding: 7px 0;
17 | top: 7px;
18 | left: 5%
19 | }
20 | ul.thumbnails.image_picker_selector ul {
21 | overflow: auto;
22 | list-style-image: none;
23 | list-style-position: outside;
24 | list-style-type: none;
25 | padding: 0px;
26 | margin: 0px; }
27 | /* line 25, source/sass/image-picker.scss */
28 | ul.thumbnails.image_picker_selector li.group_title {
29 | float: none; }
30 | /* line 30, source/sass/image-picker.scss */
31 | ul.thumbnails.image_picker_selector li {
32 | position:relative;
33 | margin: 0px 12px 12px 0px;
34 | text-align: center;
35 | font-size: 12px;
36 | float: left; }
37 | /* line 35, source/sass/image-picker.scss */
38 | ul.thumbnails.image_picker_selector li .thumbnail {
39 | padding: 6px;
40 | border: 1px solid #DDD;
41 | -webkit-user-select: none;
42 | -moz-user-select: none;
43 | -ms-user-select: none; }
44 | /* line 42, source/sass/image-picker.scss */
45 | ul.thumbnails.image_picker_selector li .thumbnail img {
46 | -webkit-user-drag: none; }
47 | /* line 48, source/sass/image-picker.scss */
48 | ul.thumbnails.image_picker_selector li .thumbnail.selected {
49 | background: #08C; }
50 | ul.thumbnails.image_picker_selector li .thumbnail p {
51 | text-align: center;
52 | }
53 |
54 | ul.thumbnails.image_picker_selector li .thumbnail.selected p {
55 | color: #fff;
56 | }
57 |
--------------------------------------------------------------------------------
/images/captchafield.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/captchafield.png
--------------------------------------------------------------------------------
/images/dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/dashboard.png
--------------------------------------------------------------------------------
/images/forminterests-backend.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/forminterests-backend.jpg
--------------------------------------------------------------------------------
/images/forminterests-frontend.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/forminterests-frontend.jpg
--------------------------------------------------------------------------------
/images/installmodule.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/installmodule.png
--------------------------------------------------------------------------------
/images/pagetree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/pagetree.png
--------------------------------------------------------------------------------
/images/questionpage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/questionpage.png
--------------------------------------------------------------------------------
/images/questiontable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/questiontable.png
--------------------------------------------------------------------------------
/images/setupmenupoint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/setupmenupoint.png
--------------------------------------------------------------------------------
/images/template-select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/template-select.png
--------------------------------------------------------------------------------
/images/templatepreviews/emailtemplate-placeholder-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/templatepreviews/emailtemplate-placeholder-image.png
--------------------------------------------------------------------------------
/images/templatepreviews/none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juergenweb/FrontendForms/ff78e9020c76dec40d4a56fa3414c7489797e103/images/templatepreviews/none.png
--------------------------------------------------------------------------------
/valitron/errormessages.php:
--------------------------------------------------------------------------------
1 | __('contains non-ascii characters.'),
18 | 'required' => __('is required.'),
19 | 'equals' => __('must be the same as %s.'),
20 | 'different' => __('must be different than %s.'),
21 | 'accepted' => __('must be accepted.'),
22 | 'numeric' => __('must be numeric.'),
23 | 'integer' => __('must be an integer.'),
24 | 'length' => __('must be %s characters long.'),
25 | 'min' => __('must be at least %s.'),
26 | 'max' => __('must be no more than %s.'),
27 | 'listcontains' => __('contains invalid value.'),
28 | 'in' => __('contains invalid value.'),
29 | 'notin' => __('contains invalid value.'),
30 | 'ip' => __('is not a valid IP address.'),
31 | 'ipv4' => __('is not a valid IPv4 address.'),
32 | 'ipv6' => __('is not a valid IPv6 address.'),
33 | 'email' => __('is not a valid email address.'),
34 | 'emailDNS' => __('is not a valid email address, because an active DNS record could not be found.'),
35 | 'url' => __('is not a valid URL.'),
36 | 'urlActive' => __('must be an active domain.'),
37 | 'alpha' => __('must contain only letters a-z.'),
38 | 'alphanum' => __('must contain only letters a-z and/or numbers 0-9.'),
39 | 'slug' => __('must contain only letters a-z, numbers 0-9, dashes and underscores.'),
40 | 'regex' => __('contains invalid characters.'),
41 | 'date' => __('is not a valid date.'),
42 | 'dateformat' => __('must be a date in the format %s.'),
43 | 'dateBefore' => __('must be a date before %s.'),
44 | 'dateAfter' => __('must be a date after %s.'),
45 | 'contains' => __('must contain %s.'),
46 | 'boolean' => __('must be a boolean.'),
47 | 'lengthbetween' => __('must be between %s and %s characters.'),
48 | 'creditCard' => __('must be a valid credit card number.'),
49 | 'lengthMin' => __('must be at least %s characters long.'),
50 | 'lengthMax' => __('must not exceed %s characters.'),
51 | 'instanceOf' => __('must be an instance of %s.'),
52 | 'containsunique' => __('must contain unique elements only.'),
53 | 'requiredWith' => __('is required.'),
54 | 'requiredwithout'=> __('is required.'),
55 | 'subset' => __('contains an item that is not in the list.'),
56 | 'arrayhaskeys' => __('does not contain all required keys.'),
57 | ];
58 |
--------------------------------------------------------------------------------
/valitron/src/LICENSE.txt:
--------------------------------------------------------------------------------
1 | The BSD 3-Clause License
2 | http://opensource.org/licenses/BSD-3-Clause
3 |
4 | Copyright (c) 2013, Vance Lucas
5 | All rights reserved.
6 |
7 | Redistribution and use in source and binary forms, with or without
8 | modification, are permitted provided that the following conditions are
9 | met:
10 |
11 | * Redistributions of source code must retain the above copyright
12 | notice,
13 | this list of conditions and the following disclaimer.
14 | * Redistributions in binary form must reproduce the above copyright
15 | notice, this list of conditions and the following disclaimer in the
16 | documentation and/or other materials provided with the distribution.
17 | * Neither the name of the Vance Lucas nor the names of its contributors
18 | may be used to endorse or promote products derived from this software
19 | without specific prior written permission.
20 |
21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
22 | IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
23 | TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
24 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
27 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 |
--------------------------------------------------------------------------------