PluginProbe ʕ •ᴥ•ʔ
Pods – Custom Content Types and Fields / 2.8.23.4
Pods – Custom Content Types and Fields v2.8.23.4
2.7.31.4 2.8.23.5 2.9.19.5 3.0.10.5 3.1.4.3 3.2.8.4 3.3.9.2 2.8.23.4 2.9.19.4 3.0.10.4 3.1.4.2 3.2.8.3 3.3.9.1 trunk 1.14.8 2.7.31.3 2.8.23.3 2.9.19.3 3.0.10.3 3.1.4.1 3.2.0 3.2.1 3.2.1.1 3.2.2 3.2.4 3.2.5 3.2.6 3.2.7 3.2.7.1 3.2.8 3.2.8.1 3.2.8.2 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9
pods / classes / fields / password.php
pods / classes / fields Last commit date
avatar.php 2 weeks ago boolean.php 2 weeks ago code.php 2 weeks ago color.php 2 weeks ago comment.php 2 weeks ago currency.php 2 weeks ago date.php 2 weeks ago datetime.php 2 weeks ago email.php 2 weeks ago file.php 2 weeks ago heading.php 2 weeks ago html.php 2 weeks ago link.php 2 weeks ago number.php 2 weeks ago oembed.php 2 weeks ago paragraph.php 2 weeks ago password.php 2 weeks ago phone.php 2 weeks ago pick.php 2 weeks ago slug.php 2 weeks ago taxonomy.php 2 weeks ago text.php 2 weeks ago time.php 2 weeks ago website.php 2 weeks ago wysiwyg.php 2 weeks ago
password.php
166 lines
1 <?php
2
3 /**
4 * @package Pods\Fields
5 */
6 class PodsField_Password extends PodsField {
7
8 /**
9 * {@inheritdoc}
10 */
11 public static $group = 'Text';
12
13 /**
14 * {@inheritdoc}
15 */
16 public static $type = 'password';
17
18 /**
19 * {@inheritdoc}
20 */
21 public static $label = 'Password';
22
23 /**
24 * {@inheritdoc}
25 */
26 public static $prepare = '%s';
27
28 /**
29 * {@inheritdoc}
30 */
31 public function setup() {
32
33 static::$group = __( 'Text', 'pods' );
34 static::$label = __( 'Password', 'pods' );
35 }
36
37 /**
38 * {@inheritdoc}
39 */
40 public function options() {
41 $options = [
42 static::$type . '_repeatable' => [
43 'label' => __( 'Repeatable Field', 'pods' ),
44 'default' => 0,
45 'type' => 'boolean',
46 'help' => __( 'Making a field repeatable will add controls next to the field which allows users to Add/Remove/Reorder additional values. These values are saved in the database as an array, so searching and filtering by them may require further adjustments".', 'pods' ),
47 'boolean_yes_label' => '',
48 'dependency' => true,
49 'developer_mode' => true,
50 ],
51 static::$type . '_max_length' => [
52 'label' => __( 'Maximum Length', 'pods' ),
53 'default' => 255,
54 'type' => 'number',
55 'help' => __( 'Set to -1 for no limit', 'pods' ),
56 ],
57 static::$type . '_placeholder' => [
58 'label' => __( 'HTML Placeholder', 'pods' ),
59 'default' => '',
60 'type' => 'text',
61 'help' => [
62 __( 'Placeholders can provide instructions or an example of the required data format for a field. Please note: It is not a replacement for labels or description text, and it is less accessible for people using screen readers.', 'pods' ),
63 'https://www.w3.org/WAI/tutorials/forms/instructions/#placeholder-text',
64 ],
65 ],
66 ];
67
68 return $options;
69 }
70
71 /**
72 * {@inheritdoc}
73 */
74 public function schema( $options = null ) {
75
76 $length = (int) pods_v( static::$type . '_max_length', $options, 255 );
77
78 $schema = 'VARCHAR(' . $length . ')';
79
80 if ( 255 < $length || $length < 1 ) {
81 $schema = 'LONGTEXT';
82 }
83
84 return $schema;
85 }
86
87 /**
88 * {@inheritdoc}
89 */
90 public function input( $name, $value = null, $options = null, $pod = null, $id = null ) {
91
92 $options = ( is_array( $options ) || is_object( $options ) ) ? $options : (array) $options;
93 $form_field_type = PodsForm::$field_type;
94
95 if ( is_array( $value ) ) {
96 $value = implode( ' ', $value );
97 }
98
99 if ( isset( $options['name'] ) && ! pods_permission( $options ) ) {
100 if ( pods_v( 'read_only', $options, false ) ) {
101 $options['readonly'] = true;
102 } else {
103 return;
104 }
105 } elseif ( ! pods_has_permissions( $options ) && pods_v( 'read_only', $options, false ) ) {
106 $options['readonly'] = true;
107 }
108
109 if ( ! empty( $options['disable_dfv'] ) ) {
110 return pods_view( PODS_DIR . 'ui/fields/password.php', compact( array_keys( get_defined_vars() ) ) );
111 }
112
113 $type = pods_v( 'type', $options, static::$type );
114
115 $args = compact( array_keys( get_defined_vars() ) );
116 $args = (object) $args;
117
118 $this->render_input_script( $args );
119 }
120
121 /**
122 * {@inheritdoc}
123 */
124 public function validate( $value, $name = null, $options = null, $fields = null, $pod = null, $id = null, $params = null ) {
125 $validate = parent::validate( $value, $name, $options, $fields, $pod, $id, $params );
126
127 $errors = array();
128
129 if ( is_array( $validate ) ) {
130 $errors = $validate;
131 }
132
133 $check = $this->pre_save( $value, $id, $name, $options, $fields, $pod, $params );
134
135 if ( is_array( $check ) ) {
136 $errors = $check;
137 } else {
138 if ( 0 < strlen( $value ) && '' === $check ) {
139 if ( $this->is_required( $options ) ) {
140 $errors[] = __( 'This field is required.', 'pods' );
141 }
142 }
143 }
144
145 if ( ! empty( $errors ) ) {
146 return $errors;
147 }
148
149 return $validate;
150 }
151
152 /**
153 * {@inheritdoc}
154 */
155 public function pre_save( $value, $id = null, $name = null, $options = null, $fields = null, $pod = null, $params = null ) {
156
157 $length = (int) pods_v( static::$type . '_max_length', $options, 255 );
158
159 if ( 0 < $length && $length < pods_mb_strlen( $value ) ) {
160 $value = pods_mb_substr( $value, 0, $length );
161 }
162
163 return $value;
164 }
165 }
166