CMB2::render_group PHP Метод

render_group() публичный Метод

Render a repeatable group.
public render_group ( array $args ) : CMB2_Field | null
$args array Array of field arguments for a group field parent.
Результат CMB2_Field | null Group field object.
    public function render_group($args)
    {
        if (!isset($args['id'], $args['fields']) || !is_array($args['fields'])) {
            return;
        }
        $field_group = $this->get_field($args);
        // If field is requesting to be conditionally shown
        if (!$field_group || !$field_group->should_show()) {
            return;
        }
        $desc = $field_group->args('description');
        $label = $field_group->args('name');
        $sortable = $field_group->options('sortable') ? ' sortable' : ' non-sortable';
        $repeat_class = $field_group->args('repeatable') ? ' repeatable' : ' non-repeatable';
        $group_val = (array) $field_group->value();
        $nrows = count($group_val);
        $remove_disabled = $nrows <= 1 ? 'disabled="disabled" ' : '';
        $field_group->index = 0;
        $field_group->peform_param_callback('before_group');
        echo '<div class="cmb-row cmb-repeat-group-wrap ', $field_group->row_classes(), '" data-fieldtype="group"><div class="cmb-td"><div id="', $field_group->id(), '_repeat" class="cmb-nested cmb-field-list cmb-repeatable-group', $sortable, $repeat_class, '" style="width:100%;">';
        if ($desc || $label) {
            $class = $desc ? ' cmb-group-description' : '';
            echo '<div class="cmb-row', $class, '"><div class="cmb-th">';
            if ($label) {
                echo '<h2 class="cmb-group-name">', $label, '</h2>';
            }
            if ($desc) {
                echo '<p class="cmb2-metabox-description">', $desc, '</p>';
            }
            echo '</div></div>';
        }
        if (!empty($group_val)) {
            foreach ($group_val as $group_key => $field_id) {
                $this->render_group_row($field_group, $remove_disabled);
                $field_group->index++;
            }
        } else {
            $this->render_group_row($field_group, $remove_disabled);
        }
        if ($field_group->args('repeatable')) {
            echo '<div class="cmb-row"><div class="cmb-td"><p class="cmb-add-row"><button type="button" data-selector="', $field_group->id(), '_repeat" data-grouptitle="', $field_group->options('group_title'), '" class="cmb-add-group-row button">', $field_group->options('add_button'), '</button></p></div></div>';
        }
        echo '</div></div></div>';
        $field_group->peform_param_callback('after_group');
        return $field_group;
    }