Jake Vanderwerf
8 days ago 3b83905603d44b1a08f8b2b36a605808ce686ad6
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
<?php
namespace JVBase\registrar\fields;
 
 
if (!defined('ABSPATH')) {
    exit;
}
 
class GroupedField extends Field {
    protected array $fields;
 
    public function setFields(array $fields):void
    {
        foreach ($fields as $name => $config) {
            $this->fields[$name] = match ($config['type']) {
                'upload', 'image', 'gallery'    => new UploadField($name, $config),
                'checkbox', 'radio', 'select', 'set' => new OptionsField($name, $config),
                'repeater' => new RepeaterField($name, $config),
                'tagList'   => new TagListField($name, $config),
                'group' => new GroupedField($name, $config),
                'selector', 'taxonomy', 'user', 'post' => new SelectorField($name, $config),
                default => new Field($name, $config),
            };
        }
    }
    public function getFields():array
    {
        return $this->fields;
    }
}