ImageStyleWarmerSettingsForm.php in Image Style Warmer 8
File
src/Form/ImageStyleWarmerSettingsForm.php
View source
<?php
namespace Drupal\image_style_warmer\Form;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;
class ImageStyleWarmerSettingsForm extends ConfigFormBase {
public function getFormId() {
return 'image_style_warmer_settings_form';
}
protected function getEditableConfigNames() {
return [
'image_style_warmer.settings',
];
}
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this
->configFactory()
->getEditable('image_style_warmer.settings');
$imageStyleOptions = image_style_options(FALSE);
$initialImageStyles = $config
->get('initial_image_styles');
$form['initial_image_styles'] = [
'#type' => 'checkboxes',
'#title' => $this
->t('Initial image styles'),
'#description' => $this
->t('Select image styles which will be created initial for an image.'),
'#options' => $imageStyleOptions,
'#default_value' => !empty($initialImageStyles) ? $initialImageStyles : [],
'#size' => 10,
];
$form['initial_image_styles']['#attributes']['class'][] = 'image-style-warmer';
$form['initial_image_styles']['#attributes']['class'][] = 'image-styles';
$form['initial_image_styles']['#attributes']['class'][] = 'initial-image-styles';
$queueImageStyles = $config
->get('queue_image_styles');
$form['queue_image_styles'] = [
'#type' => 'checkboxes',
'#title' => $this
->t('Queue image styles'),
'#description' => $this
->t('Select image styles which will be created via queue worker.'),
'#options' => $imageStyleOptions,
'#default_value' => !empty($queueImageStyles) ? $queueImageStyles : [],
'#size' => 10,
];
$form['queue_image_styles']['#attributes']['class'][] = 'image-style-warmer';
$form['queue_image_styles']['#attributes']['class'][] = 'image-styles';
$form['queue_image_styles']['#attributes']['class'][] = 'queue-image-styles';
$form['#attached']['library'][] = 'image_style_warmer/image_style_warmer.admin';
return parent::buildForm($form, $form_state);
}
public function validateForm(array &$form, FormStateInterface $form_state) {
parent::validateForm($form, $form_state);
$form_state
->setValue('initial_image_styles', array_filter($form_state
->getValue('initial_image_styles')));
$form_state
->setValue('queue_image_styles', array_filter($form_state
->getValue('queue_image_styles')));
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$config = $this
->configFactory()
->getEditable('image_style_warmer.settings');
$form_state
->cleanValues();
foreach ($form_state
->getValues() as $key => $value) {
$config
->set($key, $value);
}
$config
->save();
parent::submitForm($form, $form_state);
}
}