1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
<?php /** * The text list field which allows users to enter multiple texts. * * @package Meta Box */
/** * Text list field class. */ class RWMB_Text_List_Field extends RWMB_Multiple_Values_Field { /** * Get field HTML. * * @param mixed $meta Meta value. * @param array $field Field parameters. * * @return string */ public static function html( $meta, $field ) { $html = array(); $input = '<label><input type="text" class="rwmb-text-list" name="%s" value="%s" placeholder="%s"> %s</label>';
$count = 0; foreach ( $field['options'] as $placeholder => $label ) { $html[] = sprintf( $input, $field['field_name'], isset( $meta[ $count ] ) ? esc_attr( $meta[ $count ] ) : '', $placeholder, $label ); $count ++; }
return implode( ' ', $html ); }
/** * Format value for the helper functions. * * @param array $field Field parameters. * @param string|array $value The field meta value. * @return string */ public static function format_value( $field, $value ) { $output = '<table><thead><tr>'; foreach ( $field['options'] as $label ) { $output .= "<th>$label</th>"; } $output .= '<tr>';
if ( ! $field['clone'] ) { $output .= self::format_single_value( $field, $value ); } else { foreach ( $value as $subvalue ) { $output .= self::format_single_value( $field, $subvalue ); } } $output .= '</tbody></table>'; return $output; }
/** * Format a single value for the helper functions. * * @param array $field Field parameters. * @param array $value The value. * @return string */ public static function format_single_value( $field, $value ) { $output = '<tr>'; foreach ( $value as $subvalue ) { $output .= "<td>$subvalue</td>"; } $output .= '</tr>'; return $output; }
/** * Save meta value. * * @param mixed $new The submitted meta value. * @param mixed $old The existing meta value. * @param int $post_id The post ID. * @param array $field The field parameters. */ public static function save( $new, $old, $post_id, $field ) { $storage = $field['storage']; $storage->delete( $post_id, $field['id'] ); parent::save( $new, array(), $post_id, $field ); } }
|