PluginProbe
JetFormBuilder — Dynamic Blocks Form Builder / 3.6.6
JetFormBuilder — Dynamic Blocks Form Builder v3.6.6
3.6.6.1 3.6.6 3.6.5.4 3.6.5.3 3.6.5.2 3.6.5.1 3.6.5 3.6.4.2 3.6.4.1 3.6.4 3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 All 134 releases
← All changes | includes/request/request-handler.php +156 -155 1.1.1 → 3.6.6 View file →
@@ -1,155 +1,156 @@
1 -<?php
2 -
3 -
4 -namespace Jet_Form_Builder\Request;
5 -
6 -use Jet_Form_Builder\Blocks\Modules\Fields_Errors\Error_Handler;
7 -use Jet_Form_Builder\Classes\Factory;
8 -use Jet_Form_Builder\Classes\Tools;
9 -use Jet_Form_Builder\Exceptions\Request_Exception;
10 -use Jet_Form_Builder\Plugin;
11 -use Jet_Form_Builder\Request\Fields\Date_Field_Parser;
12 -use Jet_Form_Builder\Request\Fields\Repeater_Field_Parser;
13 -
14 -class Request_Handler {
15 - public $request;
16 - public $errors;
17 -
18 - private $repeaters = array();
19 -
20 - private $_fields = array();
21 - private $_request_values;
22 - private $_response_data;
23 -
24 - const REPEATERS_SETTINGS = '__repeaters_settings';
25 -
26 - public function __construct( $request ) {
27 - $this->request = $request;
28 -
29 - Parser_Manager::instance();
30 - }
31 -
32 - private function merge_with_base_request( $data ) {
33 - foreach ( $this->request as $name => $field ) {
34 - $data[ '__' . $name ] = $field;
35 - }
36 - $data[ self::REPEATERS_SETTINGS ] = $this->repeaters;
37 -
38 - return $data;
39 - }
40 -
41 -
42 - /**
43 - * Get form values from request
44 - *
45 - * @return [type] [description]
46 - */
47 - public function get_values_from_request() {
48 -
49 - if ( $this->request['is_ajax'] ) {
50 -
51 - $prepared = array();
52 - $raw = ! empty( $_REQUEST['values'] ) ? Tools::maybe_recursive_sanitize( $_REQUEST['values'] ) : array();
53 -
54 - if ( empty( $raw ) ) {
55 - return $prepared;
56 - }
57 -
58 - foreach ( $raw as $data ) {
59 -
60 - $name = $data['name'];
61 - $value = $data['value'];
62 -
63 - if ( preg_match( '/\[\d\]\[/', $name ) ) {
64 -
65 - $name_parts = explode( '[', $name );
66 -
67 - $name = $name_parts[0];
68 - $index = absint( rtrim( $name_parts[1], ']' ) );
69 - $key = rtrim( $name_parts[2], ']' );
70 -
71 - if ( empty( $prepared[ $name ] ) ) {
72 - $prepared[ $name ] = array();
73 - }
74 -
75 - if ( empty( $prepared[ $name ][ $index ] ) ) {
76 - $prepared[ $name ][ $index ] = array();
77 - }
78 -
79 - if ( isset( $name_parts[3] ) ) {
80 -
81 - if ( empty( $prepared[ $name ][ $index ][ $key ] ) ) {
82 - $prepared[ $name ][ $index ][ $key ] = array();
83 - }
84 -
85 - $prepared[ $name ][ $index ][ $key ][] = $value;
86 -
87 - } else {
88 - $prepared[ $name ][ $index ][ $key ] = $value;
89 - }
90 -
91 - } elseif ( false !== strpos( $name, '[]' ) ) {
92 -
93 - $name = str_replace( '[]', '', $name );
94 -
95 - if ( empty( $prepared[ $name ] ) ) {
96 - $prepared[ $name ] = array();
97 - }
98 -
99 - $prepared[ $name ][] = $value;
100 -
101 - } else {
102 - $prepared[ $name ] = $value;
103 - }
104 -
105 - }
106 -
107 - return $prepared;
108 -
109 - } else {
110 - return $_REQUEST;
111 - }
112 -
113 - }
114 -
115 - public function init_form_data() {
116 - $this->_fields = Plugin::instance()->form->get_only_form_fields(
117 - $this->request['form_id'],
118 - array( 'submit-field', 'form-break-field', 'heading-field', 'group-break-field' ),
119 - false
120 - );
121 -
122 - $this->_request_values = $this->get_values_from_request();
123 -
124 - }
125 -
126 -
127 - /**
128 - * Get submitted form data
129 - *
130 - * @return array [type] [description]
131 - * @throws Request_Exception
132 - */
133 - public function get_form_data() {
134 -
135 - $this->init_form_data();
136 -
137 - $this->_response_data = Parser_Manager::instance()->get_values_fields( $this->_fields, $this->_request_values );
138 -
139 - if ( ! Error_Handler::instance()->empty_errors() ) {
140 - throw new Request_Exception( 'validation_failed',
141 - Error_Handler::instance()->errors(),
142 - $this->_response_data
143 - );
144 - }
145 -
146 - if ( ! Plugin::instance()->captcha->verify( $this->request['form_id'], $this->request['is_ajax'] ) ) {
147 - throw new Request_Exception( 'captcha_failed' );
148 - }
149 -
150 - $data = apply_filters( 'jet-form-builder/form-handler/form-data', $this->_response_data, $this );
151 -
152 - return $this->merge_with_base_request( $data );
153 - }
154 -
155 -}
1 +<?php
2 +
3 +
4 +namespace Jet_Form_Builder\Request;
5 +
6 +use Jet_Form_Builder\Actions\Events\Bad_Request\Bad_Request_Event;
7 +use Jet_Form_Builder\Blocks\Block_Helper;
8 +use Jet_Form_Builder\Classes\Resources\Media_Block_Value;
9 +use Jet_Form_Builder\Exceptions\Action_Exception;
10 +use Jet_Form_Builder\Exceptions\Request_Exception;
11 +use JFB_Modules\Security\Exceptions\Spam_Exception;
12 +use Jet_Form_Builder\Request\Exceptions\Sanitize_Value_Exception;
13 +use JFB_Modules\Logger;
14 +
15 +// If this file is called directly, abort.
16 +if ( ! defined( 'WPINC' ) ) {
17 + die;
18 +}
19 +
20 +class Request_Handler {
21 +
22 + // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore
23 + public $_fields = array();
24 +
25 + /**
26 + * Get submitted form data
27 + *
28 + * @throws Action_Exception|Spam_Exception|Request_Exception
29 + */
30 + public function set_form_data() {
31 + $this->_fields = Block_Helper::get_blocks_by_post(
32 + jet_fb_handler()->get_form_id()
33 + );
34 +
35 + do_action( 'jet-form-builder/request' );
36 + }
37 +
38 +
39 + /**
40 + * @deprecated 3.1.0
41 + *
42 + * @param string|array $name 'field_name'|'repeater_name.field_name'|['repeater_name', 'field_name']
43 + */
44 + public function exclude( $name ) {
45 + jet_fb_context()->make_secure( $name );
46 + }
47 +
48 + /**
49 + * @deprecated 3.1.0
50 + *
51 + * @return array
52 + */
53 + public function get_types(): array {
54 + return iterator_to_array( jet_fb_context()->iterate_fields_types() );
55 + }
56 +
57 + /**
58 + * @deprecated 3.1.0
59 + *
60 + * @return array
61 + */
62 + public function get_attrs(): array {
63 + return iterator_to_array( jet_fb_context()->iterate_fields_settings() );
64 + }
65 +
66 + /**
67 + * @deprecated 3.1.0
68 + *
69 + * @param string|array $name 'field_name'|'repeater_name.0.field_name'|['repeater_name', 0, 'field_name']
70 + * @param string $field_type
71 + *
72 + * @return bool
73 + */
74 + public function is_type( $name, string $field_type ): bool {
75 + return jet_fb_context()->get_field_type( $name ) === $field_type;
76 + }
77 +
78 + /**
79 + * @deprecated 3.1.0
80 + * @param $name
81 + *
82 + * @return string
83 + */
84 + public function get_type( $name ): string {
85 + return jet_fb_context()->get_field_type( $name );
86 + }
87 +
88 + /**
89 + * @deprecated 3.1.0
90 + *
91 + * @return array
92 + */
93 + public function get_request(): array {
94 + return jet_fb_context()->get_request();
95 + }
96 +
97 + /**
98 + * @deprecated 3.1.0
99 + *
100 + * @return array
101 + */
102 + public function get_files(): array {
103 + return array_merge(
104 + jet_fb_context()->resolve_files(),
105 + jet_fb_context()->get_files()
106 + );
107 + }
108 +
109 + /**
110 + * @deprecated 3.1.0
111 + * @param string $name
112 + *
113 + * @return false|Media_Block_Value
114 + */
115 + public function get_file( string $name ) {
116 + return jet_fb_context()->get_file( $name );
117 + }
118 +
119 + /**
120 + * @deprecated 3.1.0
121 + *
122 + * @param $field_name
123 + * @param $attr_name
124 + * @param false $if_not_exist
125 + *
126 + * @return mixed
127 + */
128 + public function get_attr(
129 + $field_name,
130 + $attr_name,
131 + $if_not_exist = false
132 + ) {
133 + $attr = jet_fb_context()->get_setting( $attr_name, $field_name );
134 +
135 + return false === $attr ? $if_not_exist : $attr;
136 + }
137 +
138 +
139 + /**
140 + * @param $field_name
141 + * @param string $attr_name
142 + * @param bool $if_empty
143 + *
144 + * @return array
145 + * @deprecated since 2.0.0
146 + * Use jfb_request_handler()->get_attr instead
147 + */
148 + public function get_field_attrs_by_name(
149 + $field_name,
150 + $attr_name = '',
151 + $if_empty = false
152 + ) {
153 + return $this->get_attr( $field_name, $attr_name, $if_empty );
154 + }
155 +
156 +}