BootstrapUI\View\Helper\FormHelper::_formAlignment PHP Method

_formAlignment() protected method

Form alignment detector/switcher.
protected _formAlignment ( array $options ) : array
$options array Options.
return array Modified options.
    protected function _formAlignment($options)
    {
        if (!$options['align']) {
            $options['align'] = $this->_detectFormAlignment($options);
        }
        if (is_array($options['align'])) {
            $this->_grid = $options['align'];
            $options['align'] = 'horizontal';
        } elseif ($options['align'] === 'horizontal') {
            $this->_grid = $this->config('grid');
        }
        if (!in_array($options['align'], ['default', 'horizontal', 'inline'])) {
            throw new InvalidArgumentException('Invalid `align` option value.');
        }
        $this->_align = $options['align'];
        unset($options['align']);
        $templates = $this->_config['templateSet'][$this->_align];
        if (is_string($options['templates'])) {
            $options['templates'] = (new PhpConfig())->read($options['templates']);
        }
        if ($this->_align === 'default') {
            $options['templates'] += $templates;
            return $options;
        }
        $options = $this->injectClasses('form-' . $this->_align, $options);
        if ($this->_align === 'inline') {
            $options['templates'] += $templates;
            return $options;
        }
        $offsetedGridClass = implode(' ', [$this->_gridClass('left', true), $this->_gridClass('middle')]);
        $templates['label'] = sprintf($templates['label'], $this->_gridClass('left'));
        $templates['formGroup'] = sprintf($templates['formGroup'], $this->_gridClass('middle'));
        foreach (['checkboxFormGroup', 'submitContainer'] as $value) {
            $templates[$value] = sprintf($templates[$value], $offsetedGridClass);
        }
        $options['templates'] += $templates;
        return $options;
    }