34 | */
35 | public function getFiles(): array
36 | {
37 | return $this->files;
38 | }
39 |
40 | public function count(): int
41 | {
42 | return count($this->files);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/Stream/FileStreamInterface.php:
--------------------------------------------------------------------------------
1 | callback = $callback;
23 | }
24 |
25 | public function getCallback(): \Closure|array
26 | {
27 | return $this->callback;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/Validation/ConditionalLogic/Dispatcher/Module/Data/ConstraintsData.php:
--------------------------------------------------------------------------------
1 | data = $data;
23 | }
24 |
25 | public function hasData(): bool
26 | {
27 | return !empty($this->data);
28 | }
29 |
30 | public function getData(): mixed
31 | {
32 | return $this->data;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/Validation/ConditionalLogic/Dispatcher/Module/Data/DataInterface.php:
--------------------------------------------------------------------------------
1 | data = $data;
26 | }
27 |
28 | public function hasData(): bool
29 | {
30 | return !empty($this->data);
31 | }
32 |
33 | public function getData(): mixed
34 | {
35 | return $this->data;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/Validation/ConditionalLogic/Dispatcher/Module/ModuleInterface.php:
--------------------------------------------------------------------------------
1 | dataHandler as $dataHandler) {
27 | if ($dataHandler instanceof $serviceId) {
28 | return $dataHandler;
29 | }
30 | }
31 |
32 | return null;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/Validation/ConditionalLogic/ReturnStack/ReturnStackInterface.php:
--------------------------------------------------------------------------------
1 | actionType;
27 | }
28 |
29 | public function getData(): mixed
30 | {
31 | return $this->data;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/Validation/ConditionalLogic/Rule/Action/ActionInterface.php:
--------------------------------------------------------------------------------
1 | $value) {
23 | $setter = 'set' . ucfirst($key);
24 | if (method_exists($this, $setter)) {
25 | $this->$setter($value);
26 | }
27 | }
28 |
29 | return $this;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Validation/ConditionalLogic/Rule/Traits/ConditionTrait.php:
--------------------------------------------------------------------------------
1 | $value) {
23 | $setter = 'set' . ucfirst($key);
24 | if (method_exists($this, $setter)) {
25 | $this->$setter($value);
26 | }
27 | }
28 |
29 | return $this;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Validator/Constraints/CloudflareTurnstile.php:
--------------------------------------------------------------------------------
1 | message = $message ?? $this->message;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Validator/Constraints/EmailChecker.php:
--------------------------------------------------------------------------------
1 | emailChecker as $emailChecker) {
26 | if (!$emailChecker->isValid($email, $context)) {
27 | return false;
28 | }
29 | }
30 |
31 | return true;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/templates/common/redirect_flash_message.html.twig:
--------------------------------------------------------------------------------
1 | {% set flashMessages = form_builder_get_redirect_flash_messages() %}
2 | {% if flashMessages is iterable and flashMessages is not empty %}
3 |
4 | {% for message in flashMessages %}
5 | {{ message|raw }}
6 | {% endfor %}
7 |
8 | {% endif %}
--------------------------------------------------------------------------------
/templates/form/default.html.twig:
--------------------------------------------------------------------------------
1 | {% extends main_layout is defined and main_layout is not empty ? main_layout : '@FormBuilder/layout.html.twig' %}
2 | {% block form_builder_layout %}
3 |
4 | {% block form_builder_form %}
5 | {% endblock form_builder_form %}
6 |
7 | {% endblock form_builder_layout %}
--------------------------------------------------------------------------------
/templates/form/elements/dynamic_multi_file/form_drop_zone.html.twig:
--------------------------------------------------------------------------------
1 | {% block block_preview_template %}
2 | {# @see https://www.dropzonejs.com/#theming #}
3 | {% endblock %}
4 |
--------------------------------------------------------------------------------
/templates/form/form.html.twig:
--------------------------------------------------------------------------------
1 | {% extends form_layout %}
2 | {% block form_builder_form %}
3 | {% if form_template is not null %}
4 | {% import form_block_template as form_builder_theme_macro %}
5 | {% form_theme form form_template %}
6 | {{ form_start(form) }}
7 | {{ form_builder_theme_macro.form_builder_form_head() }}
8 | {% set flashMessages = form_builder_get_flash_messages(form.vars.id) %}
9 | {{ form_builder_theme_macro.form_builder_form_message(flashMessages) }}
10 | {{ form_widget(form) }}
11 | {{ form_builder_theme_macro.form_builder_form_foot() }}
12 | {{ form_end(form) }}
13 | {% elseif message is defined and form_builder_is_admin_mode is defined and form_builder_is_admin_mode == true %}
14 | {{ 'form builder error: ' ~ message }}
15 | {% endif %}
16 | {% endblock form_builder_form %}
--------------------------------------------------------------------------------
/templates/form/presets/demo.html.twig:
--------------------------------------------------------------------------------
1 | {% extends main_layout is not empty ? main_layout : '@FormBuilder/layout.html.twig' %}
2 | {# if preset is defined and called demo, this layout will get loaded #}
3 | {% block form_builder_layout %}
4 |
5 | {# use preset layouts to add additional data to specific forms #}
6 | {{ dump(form_preset) }}
7 |
8 |
9 | {% block form_builder_form %}
10 | {% endblock form_builder_form %}
11 |
12 |
13 | {% endblock form_builder_layout %}
--------------------------------------------------------------------------------
/templates/form/theme/macro/bootstrap_3_horizontal_layout.html.twig:
--------------------------------------------------------------------------------
1 | {% macro form_builder_form_head() %}
2 |
3 | {% endmacro %}
4 |
5 | {% macro form_builder_form_foot() %}
6 |
7 | {% endmacro %}
8 |
9 | {% macro form_builder_form_message(flash_messages) %}
10 | {% if flash_messages is not empty %}
11 |
12 | {% for label, messages in flash_messages %}
13 | {% for message in messages %}
14 |
15 | {{ message|raw }}
16 |
17 | {% endfor %}
18 | {% endfor %}
19 |
20 | {% endif %}
21 | {% endmacro %}
22 |
--------------------------------------------------------------------------------
/templates/form/theme/macro/bootstrap_3_layout.html.twig:
--------------------------------------------------------------------------------
1 | {% macro form_builder_form_head() %}
2 |
3 | {% endmacro %}
4 |
5 | {% macro form_builder_form_foot() %}
6 |
7 | {% endmacro %}
8 |
9 | {% macro form_builder_form_message(flash_messages) %}
10 | {% if flash_messages is not empty %}
11 |
12 | {% for label, messages in flash_messages %}
13 | {% for message in messages %}
14 |
15 | {{ message|raw }}
16 |
17 | {% endfor %}
18 | {% endfor %}
19 |
20 | {% endif %}
21 | {% endmacro %}
22 |
--------------------------------------------------------------------------------
/templates/form/theme/macro/bootstrap_4_horizontal_layout.html.twig:
--------------------------------------------------------------------------------
1 | {% macro form_builder_form_head() %}
2 |
3 | {% endmacro %}
4 |
5 | {% macro form_builder_form_foot() %}
6 |
7 | {% endmacro %}
8 |
9 | {% macro form_builder_form_message(flash_messages) %}
10 | {% if flash_messages is not empty %}
11 |
12 | {% for label, messages in flash_messages %}
13 | {% for message in messages %}
14 |
15 | {{ message|raw }}
16 |
17 | {% endfor %}
18 | {% endfor %}
19 |
20 | {% endif %}
21 | {% endmacro %}
22 |
--------------------------------------------------------------------------------
/templates/form/theme/macro/bootstrap_4_layout.html.twig:
--------------------------------------------------------------------------------
1 | {% macro form_builder_form_head() %}
2 |
3 | {% endmacro %}
4 |
5 | {% macro form_builder_form_foot() %}
6 |
7 | {% endmacro %}
8 |
9 | {% macro form_builder_form_message(flash_messages) %}
10 | {% if flash_messages is not empty %}
11 |
12 | {% for label, messages in flash_messages %}
13 | {% for message in messages %}
14 |
15 | {{ message|raw }}
16 |
17 | {% endfor %}
18 | {% endfor %}
19 |
20 | {% endif %}
21 | {% endmacro %}
22 |
--------------------------------------------------------------------------------
/templates/form/theme/macro/bootstrap_5_horizontal_layout.html.twig:
--------------------------------------------------------------------------------
1 | {% macro form_builder_form_head() %}
2 |
3 | {% endmacro %}
4 |
5 | {% macro form_builder_form_foot() %}
6 |
7 | {% endmacro %}
8 |
9 | {% macro form_builder_form_message(flash_messages) %}
10 | {% if flash_messages is not empty %}
11 |
12 | {% for label, messages in flash_messages %}
13 | {% for message in messages %}
14 |
15 | {{ message|raw }}
16 |
17 |
18 | {% endfor %}
19 | {% endfor %}
20 |
21 | {% endif %}
22 | {% endmacro %}
23 |
--------------------------------------------------------------------------------
/templates/form/theme/macro/bootstrap_5_layout.html.twig:
--------------------------------------------------------------------------------
1 | {% macro form_builder_form_head() %}
2 |
3 | {% endmacro %}
4 |
5 | {% macro form_builder_form_foot() %}
6 |
7 | {% endmacro %}
8 |
9 | {% macro form_builder_form_message(flash_messages) %}
10 | {% if flash_messages is not empty %}
11 |
12 | {% for label, messages in flash_messages %}
13 | {% for message in messages %}
14 |
15 | {{ message|raw }}
16 |
17 |
18 | {% endfor %}
19 | {% endfor %}
20 |
21 | {% endif %}
22 | {% endmacro %}
23 |
--------------------------------------------------------------------------------
/templates/form/theme/macro/form_div_layout.html.twig:
--------------------------------------------------------------------------------
1 | {% macro form_builder_form_head() %}
2 | {% endmacro %}
3 |
4 | {% macro form_builder_form_foot() %}
5 | {% endmacro %}
6 |
7 | {% macro form_builder_form_message(flash_messages) %}
8 | {% if flash_messages is not empty %}
9 | {% for label, messages in flash_messages %}
10 | {% for message in messages %}
11 |
12 | {{ message|raw }}
13 |
14 | {% endfor %}
15 | {% endfor %}
16 | {% endif %}
17 | {% endmacro %}
18 |
--------------------------------------------------------------------------------
/templates/form/theme/type/cloudflare_turnstile.html.twig:
--------------------------------------------------------------------------------
1 | {%- block form_builder_cloudflare_turnstile_type_widget -%}
2 |
9 |
10 | {%- endblock -%}
--------------------------------------------------------------------------------
/templates/form/theme/type/friendly_captcha.html.twig:
--------------------------------------------------------------------------------
1 | {%- block form_builder_friendly_captcha_type_widget -%}
2 |
8 | {{- form_widget(form) -}}
9 |
10 | {%- endblock -%}
--------------------------------------------------------------------------------
/templates/form/theme/type/html_tag.html.twig:
--------------------------------------------------------------------------------
1 | {% block form_builder_html_tag_type_label %}{% endblock %}
2 |
3 | {% block form_builder_html_tag_type_widget %}
4 | {% apply spaceless %}
5 | <{{ tag }} {{ block('attributes') }}>{{ label|trans }}{{ tag }}>
6 | {% endapply %}
7 | {% endblock %}
--------------------------------------------------------------------------------
/templates/form/theme/type/instructions.html.twig:
--------------------------------------------------------------------------------
1 | {% block form_builder_instruction_type_label %}{% endblock %}
2 |
3 | {% block form_builder_instruction_type_widget %}
4 | {% apply spaceless %}
5 | {% if form.vars.instructions is not empty %}
6 |
7 | {{ form.vars.instructions|trans|raw }}
8 |
9 | {% endif %}
10 | {% endapply %}
11 | {% endblock %}
--------------------------------------------------------------------------------
/templates/form/theme/type/snippet.html.twig:
--------------------------------------------------------------------------------
1 | {% block form_builder_snippet_type_label %}{% endblock %}
2 |
3 | {% block form_builder_snippet_type_widget %}
4 | {% apply spaceless %}
5 |
6 | {% if path is not empty %}
7 | {{ pimcore_inc(path) }}
8 | {% endif%}
9 |
10 | {% endapply %}
11 | {% endblock %}
--------------------------------------------------------------------------------
/templates/funnel/base.html.twig:
--------------------------------------------------------------------------------
1 | {% extends '@FormBuilder/layout_funnel.html.twig' %}
2 |
3 | {% if formThemePath is not null %}
4 | {% form_theme form formThemePath %}
5 | {% endif %}
6 |
7 | {% block funnel_content %}
8 |
9 | {{ form_start(form, {attr: {'novalidate': 'novalidate'}}) }}
10 |
11 | {{ form_errors(form) }}
12 |
13 | {% if renderType == 'include' %}
14 | {% include view %}
15 | {% elseif renderType == 'prerender' %}
16 | {{ view|raw }}
17 | {% endif %}
18 |
19 | {% if form._token is defined and not form._token.isRendered %}
20 | {{ form_widget(form._token) }}
21 | {% endif %}
22 |
23 | {{ form_end(form, {render_rest: formRenderRest}) }}
24 |
25 | {% endblock funnel_content %}
--------------------------------------------------------------------------------
/templates/funnel/error.html.twig:
--------------------------------------------------------------------------------
1 | {% extends '@FormBuilder/layout_funnel.html.twig' %}
2 |
3 | {% block funnel_content %}
4 |
5 | Funnel Error
6 | {{ error }}
7 |
8 | {% endblock funnel_content %}
--------------------------------------------------------------------------------
/templates/funnel/layer/simple_layout_layer.html.twig:
--------------------------------------------------------------------------------
1 | {% if formThemePath is not null %}
2 | {% form_theme form formThemePath %}
3 | {% endif %}
4 |
5 | {% block funnel_content %}
6 |
7 | {% if layout is not null %}
8 | {{ pimcore_inc(layout) }}
9 | {% endif %}
10 |
11 | {% endblock funnel_content %}
--------------------------------------------------------------------------------
/templates/layout.html.twig:
--------------------------------------------------------------------------------
1 | {% block form_builder_layout %}
2 | {% endblock %}
--------------------------------------------------------------------------------
/templates/layout_funnel.html.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Funnel
5 |
6 |
7 |
8 |
9 | {% block funnel_content %}
10 | {# funnel content will be placed here #}
11 | {% endblock funnel_content %}
12 |
13 |
14 |
--------------------------------------------------------------------------------