You are here

public function SettingsForm::buildForm in Advanced CSS/JS Aggregation 8.4

Same name in this branch
  1. 8.4 src/Form/SettingsForm.php \Drupal\advagg\Form\SettingsForm::buildForm()
  2. 8.4 advagg_ext_minify/src/Form/SettingsForm.php \Drupal\advagg_ext_minify\Form\SettingsForm::buildForm()
  3. 8.4 advagg_old_ie_compatibility/src/Form/SettingsForm.php \Drupal\advagg_old_ie_compatibility\Form\SettingsForm::buildForm()
  4. 8.4 advagg_mod/src/Form/SettingsForm.php \Drupal\advagg_mod\Form\SettingsForm::buildForm()
  5. 8.4 advagg_css_minify/src/Form/SettingsForm.php \Drupal\advagg_css_minify\Form\SettingsForm::buildForm()
  6. 8.4 advagg_js_minify/src/Form/SettingsForm.php \Drupal\advagg_js_minify\Form\SettingsForm::buildForm()
  7. 8.4 advagg_cdn/src/Form/SettingsForm.php \Drupal\advagg_cdn\Form\SettingsForm::buildForm()
  8. 8.4 advagg_bundler/src/Form/SettingsForm.php \Drupal\advagg_bundler\Form\SettingsForm::buildForm()
Same name and namespace in other branches
  1. 8.2 advagg_bundler/src/Form/SettingsForm.php \Drupal\advagg_bundler\Form\SettingsForm::buildForm()
  2. 8.3 advagg_bundler/src/Form/SettingsForm.php \Drupal\advagg_bundler\Form\SettingsForm::buildForm()

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides ConfigFormBase::buildForm

File

advagg_bundler/src/Form/SettingsForm.php, line 48

Class

SettingsForm
Configure advagg bundler settings for this site.

Namespace

Drupal\advagg_bundler\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {

  /** @var \Drupal\Core\Config\Config $config */
  $config = $this
    ->config('advagg_bundler.settings');
  $form['active'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Bundler is Active'),
    '#default_value' => $config
      ->get('active'),
    '#description' => $this
      ->t('If not checked, the bundler will not split up aggregates.'),
  ];
  $options = [
    0 => 0,
    1 => 1,
    2 => 2,
    3 => 3,
    4 => 4,
    5 => 5,
    6 => 6,
    7 => 7,
    8 => 8,
    9 => 9,
    10 => 10,
    11 => 11,
    12 => 12,
    13 => 13,
    14 => 14,
    15 => 15,
  ];
  $form['css'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('CSS Bundling options.'),
  ];
  $form['css']['max_css'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Target Number Of CSS Bundles Per Page'),
    '#default_value' => $config
      ->get('css.max'),
    '#options' => $options,
    '#description' => $this
      ->t('If 0 is selected then the bundler is disabled'),
    '#states' => [
      'disabled' => [
        '#edit-active' => [
          'checked' => FALSE,
        ],
      ],
    ],
  ];
  $form['css']['css_logic'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Grouping logic'),
    '#default_value' => $config
      ->get('css.logic'),
    '#options' => [
      0 => $this
        ->t('File count'),
      1 => $this
        ->t('File size'),
    ],
    '#description' => $this
      ->t('If file count is selected then each bundle will try to have a similar number of original files aggregated inside of it. If file size is selected then each bundle will try to have a similar file size.'),
    '#states' => [
      'disabled' => [
        '#edit-active' => [
          'checked' => FALSE,
        ],
      ],
    ],
  ];
  $form['js'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('JavaScript Bundling options.'),
  ];
  $form['js']['max_js'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Target Number Of JS Bundles Per Page'),
    '#default_value' => $config
      ->get('js.max'),
    '#options' => $options,
    '#description' => $this
      ->t('If 0 is selected then the bundler is disabled'),
    '#states' => [
      'disabled' => [
        '#edit-active' => [
          'checked' => FALSE,
        ],
      ],
    ],
  ];
  $form['js']['js_logic'] = [
    '#type' => 'radios',
    '#title' => $this
      ->t('Grouping logic'),
    '#default_value' => $config
      ->get('js.logic'),
    '#options' => [
      0 => $this
        ->t('File count'),
      1 => $this
        ->t('File size'),
    ],
    '#description' => $this
      ->t('If file count is selected then each bundle will try to have a similar number of original files aggregated inside of it. If file size is selected then each bundle will try to have a similar file size.'),
    '#states' => [
      'disabled' => [
        '#edit-active' => [
          'checked' => FALSE,
        ],
      ],
    ],
  ];
  return parent::buildForm($form, $form_state);
}