PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.0.0
JetFormBuilder — Dynamic Blocks Form Builder v3.0.0
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 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / includes / request / request-tools.php
jetformbuilder / includes / request Last commit date
exceptions 3 years ago fields 3 years ago field-data-parser.php 3 years ago file-uploader.php 3 years ago form-request-router.php 3 years ago parser-context.php 3 years ago parser-manager.php 3 years ago request-handler.php 3 years ago request-router.php 3 years ago request-tools.php 3 years ago
request-tools.php
108 lines
1 <?php
2
3
4 namespace Jet_Form_Builder\Request;
5
6
7 use Jet_Form_Builder\Classes\Resources\File;
8 use Jet_Form_Builder\Classes\Resources\Sanitize_File_Exception;
9 use Jet_Form_Builder\Classes\Resources\File_Collection;
10
11 class Request_Tools {
12
13 const FILE_PROPERTIES = array( 'name', 'size', 'error', 'type', 'tmp_name' );
14
15 public static function get_files( array $initial ): array {
16 $response = array();
17
18 foreach ( $initial as $fields_name => $files ) {
19 $is_repeater = isset( $files['name'][0] ) && is_array( $files['name'][0] );
20
21 if ( $is_repeater ) {
22 $response[ $fields_name ] = static::get_repeater_files( $files );
23
24 continue;
25 }
26
27 $is_collection = is_array( $files['name'] );
28
29 if ( ! $is_collection ) {
30 try {
31 $file = new File( $files );
32 } catch ( Sanitize_File_Exception $exception ) {
33 continue;
34 }
35 $response[ $fields_name ] = $file;
36
37 continue;
38 }
39
40 $count_collection = count( $files['name'] );
41 $collection = array();
42
43 for ( $index = 0; $index < $count_collection; $index ++ ) {
44 $file = array();
45
46 foreach ( self::FILE_PROPERTIES as $property ) {
47 $file[ $property ] = $files[ $property ][ $index ];
48 }
49
50 $collection[ $index ] = $file;
51 }
52
53 $response[ $fields_name ] = ( new File_Collection() )->push_files( $collection );
54 }
55
56 return $response;
57 }
58
59 public static function get_repeater_files( array $files ): array {
60 $rows = count( $files['name'] );
61 $repeater = array();
62
63 for ( $current = 0; $current < $rows; $current ++ ) {
64 $row = array();
65
66 foreach ( self::FILE_PROPERTIES as $property ) {
67 foreach ( $files[ $property ][ $current ] as $field_name => $values ) {
68 if ( ! isset( $row[ $field_name ] ) ) {
69 $row[ $field_name ] = array();
70 }
71
72 if ( is_array( $values ) ) {
73 $count_values = count( $values );
74
75 for ( $index_value = 0; $index_value < $count_values; $index_value ++ ) {
76 if ( ! isset( $row[ $field_name ][ $index_value ] ) ) {
77 $row[ $field_name ][ $index_value ] = array();
78 }
79 $row[ $field_name ][ $index_value ][ $property ] = $values[ $index_value ];
80 }
81 } else {
82 $row[ $field_name ][ $property ] = $values;
83 }
84 }
85 }
86 unset( $field_name, $values );
87
88 foreach ( $row as $field_name => $values ) {
89 if ( isset( $values[0] ) ) {
90 $row[ $field_name ] = ( new File_Collection() )->push_files( $values );
91 } else {
92 try {
93 $file = new File( $values );
94 } catch ( Sanitize_File_Exception $exception ) {
95 unset( $row[ $field_name ] );
96 continue;
97 }
98 $row[ $field_name ] = $file;
99 }
100 }
101
102 $repeater[ $current ] = $row;
103 }
104
105 return $repeater;
106 }
107
108 }