PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / trunk
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More vtrunk
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
← All changes | classes/factories/FrmFieldFactory.php +44 -34 6.4.2 → trunk View file →
@@ -12,9 +12,9 @@
12 12 * Create an instance of an FrmFieldValueSelector object
13 13 *
14 14 * @since 2.03.05
15 15 *
16 - * @param int $field_id
16 + * @param int $field_id
17 17 * @param array $args
18 18 *
19 19 * @return FrmFieldValueSelector
20 20 */
@@ -25,9 +25,9 @@
25 25 $selector = apply_filters( 'frm_create_field_value_selector', $selector, $field_id, $args );
26 26 }
27 27
28 28 if ( ! is_object( $selector ) ) {
29 - $selector = new FrmFieldValueSelector( $field_id, $args );
29 + return new FrmFieldValueSelector( $field_id, $args );
30 30 }
31 31
32 32 return $selector;
33 33 }
@@ -34,14 +34,16 @@
34 34
35 35 /**
36 36 * @since 3.0
37 37 *
38 - * @param object|array $field
38 + * @param array|object $field
39 + *
40 + * @return FrmFieldType
39 41 */
40 42 public static function get_field_factory( $field ) {
41 43 if ( is_object( $field ) ) {
42 44 $field_info = self::get_field_object( $field );
43 - } elseif ( isset( $field['id'] ) && $field['id'] ) {
45 + } elseif ( ! empty( $field['id'] ) ) {
44 46 $field_info = self::get_field_object( $field['id'] );
45 47 } else {
46 48 $field_info = self::get_field_type( $field['type'], $field );
47 49 }
@@ -49,11 +51,11 @@
49 51 return $field_info;
50 52 }
51 53
52 54 /**
53 - * @param int|string|object $field
55 + * @param int|object|string $field
54 56 *
55 - * @return stdClass
57 + * @return FrmFieldType
56 58 */
57 59 public static function get_field_object( $field ) {
58 60 if ( ! is_object( $field ) ) {
59 61 $field = FrmField::getOne( $field );
@@ -64,22 +66,16 @@
64 66
65 67 /**
66 68 * @since 3.0
67 69 *
68 - * @param string $field_type
69 - * @param int|array|object $field
70 + * @param string $field_type
71 + * @param array|int|object $field
70 72 *
71 - * @return stdClass
73 + * @return FrmFieldType
72 74 */
73 75 public static function get_field_type( $field_type, $field = 0 ) {
74 76 $class = self::get_field_type_class( $field_type );
75 - if ( empty( $class ) ) {
76 - $field = new FrmFieldDefault( $field, $field_type );
77 - } else {
78 - $field = new $class( $field, $field_type );
79 - }
80 -
81 - return $field;
77 + return $class ? new $class( $field, $field_type ) : new FrmFieldDefault( $field, $field_type );
82 78 }
83 79
84 80 /**
85 81 * @since 3.0
@@ -89,26 +85,34 @@
89 85 * @return string
90 86 */
91 87 private static function get_field_type_class( $field_type ) {
92 88 $type_classes = array(
93 - 'text' => 'FrmFieldText',
94 - 'textarea' => 'FrmFieldTextarea',
95 - 'select' => 'FrmFieldSelect',
96 - 'radio' => 'FrmFieldRadio',
97 - 'checkbox' => 'FrmFieldCheckbox',
98 - 'number' => 'FrmFieldNumber',
99 - 'phone' => 'FrmFieldPhone',
100 - 'url' => 'FrmFieldUrl',
101 - 'website' => 'FrmFieldUrl',
102 - 'email' => 'FrmFieldEmail',
103 - 'user_id' => 'FrmFieldUserID',
104 - 'html' => 'FrmFieldHTML',
105 - 'hidden' => 'FrmFieldHidden',
106 - 'captcha' => 'FrmFieldCaptcha',
107 - 'name' => 'FrmFieldName',
89 + 'text' => 'FrmFieldText',
90 + 'textarea' => 'FrmFieldTextarea',
91 + 'select' => 'FrmFieldSelect',
92 + 'radio' => 'FrmFieldRadio',
93 + 'checkbox' => 'FrmFieldCheckbox',
94 + 'number' => 'FrmFieldNumber',
95 + 'phone' => 'FrmFieldPhone',
96 + 'url' => 'FrmFieldUrl',
97 + 'website' => 'FrmFieldUrl',
98 + 'email' => 'FrmFieldEmail',
99 + 'user_id' => 'FrmFieldUserID',
100 + 'html' => 'FrmFieldHTML',
101 + 'hidden' => 'FrmFieldHidden',
102 + 'captcha' => 'FrmFieldCaptcha',
103 + 'name' => 'FrmFieldName',
104 + 'credit_card' => 'FrmFieldCreditCard',
105 + 'address' => 'FrmFieldAddress',
106 + // Submit button field.
107 + FrmSubmitHelper::FIELD_TYPE => 'FrmFieldSubmit',
108 + FrmFieldGdprHelper::FIELD_TYPE => FrmFieldGdprHelper::get_gdpr_field_class( $field_type ),
109 + 'product' => 'FrmFieldProduct',
110 + 'quantity' => 'FrmFieldQuantity',
111 + 'total' => 'FrmFieldTotal',
108 112 );
109 113
110 - $class = isset( $type_classes[ $field_type ] ) ? $type_classes[ $field_type ] : '';
114 + $class = $type_classes[ $field_type ] ?? '';
111 115
112 116 return apply_filters( 'frm_get_field_type_class', $class, $field_type );
113 117 }
114 118
@@ -113,13 +117,17 @@
113 117 }
114 118
115 119 /**
116 120 * @since 3.0
121 + *
122 + * @param string $type
123 + *
124 + * @return mixed
117 125 */
118 126 public static function field_has_html( $type ) {
119 127 $has_html = self::field_has_property( $type, 'has_html' );
120 128
121 - // this hook is here for reverse compatibility since 3.0
129 + // This hook is here for reverse compatibility since 3.0
122 130 return apply_filters( 'frm_show_custom_html', $has_html, $type );
123 131 }
124 132
125 133 /**
@@ -124,12 +132,14 @@
124 132
125 133 /**
126 134 * @since 3.0
127 135 *
136 + * @param string $type
128 137 * @param string $property
138 + *
139 + * @return mixed
129 140 */
130 141 public static function field_has_property( $type, $property ) {
131 142 $field = self::get_field_type( $type );
132 -
133 143 return $field->{$property};
134 144 }
135 145 }