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
|
<?php /** * A registry for storing all fields. * * @link https://designpatternsphp.readthedocs.io/en/latest/Structural/Registry/README.html * @package Meta Box */
/** * Field registry class. */ class RWMB_Field_Registry { /** * Internal data storage. * * @var array */ private $data = array();
/** * Add a single field to the registry. * * @param array $field Field configuration. * @param string $type Post type|Taxonomy|'user'|Setting page which the field belongs to. * @param string $object_type Object type which the field belongs to. */ public function add( $field, $type, $object_type = 'post' ) { if ( ! isset( $field['id'] ) ) { return; }
if ( empty( $this->data[ $object_type ] ) ) { $this->data[ $object_type ] = array(); } if ( empty( $this->data[ $object_type ][ $type ] ) ) { $this->data[ $object_type ][ $type ] = array(); } $this->data[ $object_type ][ $type ][ $field['id'] ] = $field; }
/** * Retrieve a field. * * @param string $id A meta box instance id. * @param string $type Post type|Taxonomy|'user'|Setting page which the field belongs to. * @param string $object_type Object type which the field belongs to. * * @return bool|array False or field configuration. */ public function get( $id, $type, $object_type = 'post' ) { return isset( $this->data[ $object_type ][ $type ][ $id ] ) ? $this->data[ $object_type ][ $type ][ $id ] : false; }
/** * Retrieve fields by object type. * * @param string $object_type Object type which the field belongs to. * * @return array List of fields. */ public function get_by_object_type( $object_type = 'post' ) { return isset( $this->data[ $object_type ] ) ? $this->data[ $object_type ] : array(); } }
|