Bolt\Storage\ContentRequest\Edit::createGroupTabs PHP Метод

createGroupTabs() приватный Метод

Generate tab groups.
private createGroupTabs ( Bolt\Storage\Mapping\ContentType $contentType, array $has ) : array
$contentType Bolt\Storage\Mapping\ContentType
$has array
Результат array
    private function createGroupTabs(ContentType $contentType, array $has)
    {
        $groups = [];
        $groupIds = [];
        $addGroup = function ($group, $label) use(&$groups, &$groupIds) {
            $nr = count($groups) + 1;
            $id = rtrim('tab-' . Slugify::create()->slugify($group), '-');
            if (isset($groupIds[$id]) || $id === 'tab') {
                $id .= '-' . $nr;
            }
            $groups[$group] = ['label' => $label, 'id' => $id, 'is_active' => $nr === 1, 'fields' => []];
            $groupIds[$id] = 1;
        };
        foreach ($contentType['groups'] ? $contentType['groups'] : ['ungrouped'] as $group) {
            if ($group === 'ungrouped') {
                $addGroup($group, Trans::__('contenttypes.generic.group.ungrouped'));
            } elseif ($group !== 'meta' && $group !== 'relations' && $group !== 'taxonomy') {
                $default = ['DEFAULT' => ucfirst($group)];
                $key = ['contenttypes', $contentType['slug'], 'group', $group];
                $addGroup($group, Trans::__($key, $default));
            }
        }
        if ($has['relations'] || $has['incoming_relations']) {
            $addGroup('relations', Trans::__('contenttypes.generic.group.relations'));
            $groups['relations']['fields'][] = '*relations';
        }
        if ($has['taxonomy'] || is_array($contentType['groups']) && in_array('taxonomy', $contentType['groups'])) {
            $addGroup('taxonomy', Trans::__('contenttypes.generic.group.taxonomy'));
            $groups['taxonomy']['fields'][] = '*taxonomy';
        }
        if ($has['templatefields'] || is_array($contentType['groups']) && in_array('template', $contentType['groups'])) {
            $addGroup('template', Trans::__('contenttypes.generic.group.template'));
            $groups['template']['fields'][] = '*template';
        }
        $addGroup('meta', Trans::__('contenttypes.generic.group.meta'));
        $groups['meta']['fields'][] = '*meta';
        // References fields in tab group data.
        foreach ($contentType['fields'] as $fieldName => $field) {
            $groups[$field['group']]['fields'][] = $fieldName;
        }
        return $groups;
    }