public function SliderProForm::form in Slider Pro 8
Gets the actual form array to be built.
Overrides EntityForm::form
See also
\Drupal\Core\Entity\EntityForm::processForm()
\Drupal\Core\Entity\EntityForm::afterBuild()
File
- src/
Form/ SliderProForm.php, line 19
Class
- SliderProForm
- Class SliderProForm @package Drupal\slider_pro\Form
Namespace
Drupal\slider_pro\FormCode
public function form(array $form, FormStateInterface $form_state) {
$form = parent::form($form, $form_state);
/** @var \Drupal\slider_pro\Entity\SliderProInterface $slider_pro */
$slider_pro = $this->entity;
$options = array_merge(SliderProDefaults::defaultOptions(), $slider_pro
->getOptions());
$form['label'] = [
'#type' => 'textfield',
'#title' => $this
->t('Label'),
'#maxlength' => 255,
'#default_value' => $slider_pro
->label(),
'#description' => $this
->t('A human-readable title for this option set.'),
'#required' => TRUE,
];
$form['id'] = [
'#type' => 'machine_name',
'#default_value' => $slider_pro
->id(),
'#machine_name' => [
'exists' => '\\Drupal\\slider_pro\\Entity\\SliderPro::load',
],
'#disabled' => !$slider_pro
->isNew(),
];
// Options Vertical Tab Group table.
$form['tabs'] = [
'#type' => 'vertical_tabs',
];
// General Settings.
$form['general'] = [
'#type' => 'details',
'#title' => $this
->t('General Settings'),
'#group' => 'tabs',
'#open' => TRUE,
];
$form['general']['width'] = [
'#type' => 'textfield',
'#title' => $this
->t('Width'),
'#description' => 'The width of the slider. Eg 200px or 50%',
'#default_value' => $options['width'],
'#required' => TRUE,
];
$form['general']['visible_size'] = [
'#type' => 'textfield',
'#title' => $this
->t('Visible size'),
'#description' => 'Sets the size (for example 100%) of the visible area, allowing for more slides to become visible near the selected slide. Be sure that the width of your slider is less than 100%. Example',
'#default_value' => $options['visible_size'],
'#required' => TRUE,
];
$form['general']['force_size'] = [
'#type' => 'select',
'#title' => $this
->t('Force size'),
'#options' => [
'none' => $this
->t('None'),
'fullWidth' => $this
->t('Full width'),
'fullWindow' => $this
->t('Full window'),
],
'#default_value' => $options['force_size'],
'#description' => $this
->t('Indicates if the size of the slider will be forced to full width or full window.'),
'#required' => TRUE,
];
$form['general']['height'] = [
'#type' => 'textfield',
'#title' => $this
->t('Height'),
'#default_value' => $options['height'],
'#description' => 'The height of the slider. Eg 200px or 50%',
];
$form['general']['orientation'] = [
'#type' => 'select',
'#title' => $this
->t('Orientation'),
'#options' => [
'horizontal' => $this
->t('Horizontal'),
'vertical' => $this
->t('Vertical'),
],
'#default_value' => $options['orientation'],
'#description' => $this
->t('Indicates whether the slides will be arranged horizontally or vertically.'),
'#required' => TRUE,
];
$form['general']['buttons'] = [
'#type' => 'select',
'#title' => $this
->t('Buttons'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['buttons'],
'#description' => $this
->t('Indicates whether the buttons will be created.'),
'#required' => TRUE,
];
$form['general']['transition'] = [
'#type' => 'select',
'#title' => $this
->t('Transition'),
'#options' => [
0 => $this
->t('Slide'),
1 => $this
->t('Fade'),
],
'#default_value' => $options['transition'],
'#description' => $this
->t('Indicates which transition will be used.'),
'#required' => TRUE,
];
$form['general']['arrows'] = [
'#type' => 'select',
'#title' => $this
->t('Arrows'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['arrows'],
'#description' => $this
->t('Indicates whether the arrow buttons will be created.'),
'#required' => TRUE,
];
// Thumbnail Settings.
$form['thumbnails'] = [
'#type' => 'details',
'#title' => $this
->t('Thumbnail Settings'),
'#group' => 'tabs',
'#open' => FALSE,
];
$form['thumbnails']['thumbnail_position'] = [
'#type' => 'select',
'#title' => $this
->t('Position'),
'#options' => [
0 => $this
->t('No thumbs'),
'left' => $this
->t('Left'),
'right' => $this
->t('Right'),
'top' => $this
->t('Top'),
'bottom' => $this
->t('Bottom'),
],
'#default_value' => $options['thumbnail_position'],
'#required' => TRUE,
'#description' => $this
->t('Sets the position of the thumbnail scroller.'),
];
$form['thumbnails']['thumbnail_width'] = [
'#type' => 'number',
'#title' => $this
->t('Width'),
'#description' => $this
->t('The width of each thumbnail. Eg 200px.'),
'#default_value' => $options['thumbnail_width'],
'#required' => TRUE,
'#states' => [
'invisible' => [
'select[name="thumbnail_position"]' => [
'value' => '0',
],
],
],
];
$form['thumbnails']['thumbnail_height'] = [
'#type' => 'number',
'#title' => $this
->t('height'),
'#description' => $this
->t('The height of each thumbnail. Eg 200px.'),
'#default_value' => $options['thumbnail_height'],
'#required' => TRUE,
'#states' => [
'invisible' => [
'select[name="thumbnail_position"]' => [
'value' => '0',
],
],
],
];
$form['thumbnails']['thumbnail_pointer'] = [
'#type' => 'select',
'#title' => $this
->t('Pointer'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['thumbnail_pointer'],
'#required' => TRUE,
'#description' => $this
->t('Indicates if a pointer will be displayed for the selected thumbnail.'),
'#states' => [
'invisible' => [
'select[name="thumbnail_position"]' => [
'value' => '0',
],
],
],
];
$form['thumbnails']['thumbnail_arrows'] = [
'#type' => 'select',
'#title' => $this
->t('Arrows'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['thumbnail_arrows'],
'#required' => TRUE,
'#description' => $this
->t('Indicates whether the thumbnail arrows will be enabled.'),
'#states' => [
'invisible' => [
'select[name="thumbnail_position"]' => [
'value' => '0',
],
],
],
];
$form['thumbnails']['fade_thumbnail_arrows'] = [
'#type' => 'select',
'#title' => $this
->t('Fade arrows'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['fade_thumbnail_arrows'],
'#required' => TRUE,
'#description' => $this
->t('Indicates whether the thumbnail arrows will be faded.'),
'#states' => [
'invisible' => [
[
'select[name="thumbnail_position"]' => [
'value' => '0',
],
],
[
'select[name="thumbnail_arrows"]' => [
'value' => '0',
],
],
],
],
];
// Layer Settings.
$form['layers'] = [
'#type' => 'details',
'#title' => $this
->t('Layer Settings'),
'#group' => 'tabs',
'#open' => FALSE,
];
$form['layers']['wait_for_layers'] = [
'#type' => 'select',
'#title' => $this
->t('Wait for layers'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['wait_for_layers'],
'#description' => $this
->t('Indicates whether the slider will wait for the layers to disappear before going to a new slide.'),
];
$form['layers']['auto_scale_layers'] = [
'#type' => 'select',
'#title' => $this
->t('Auto scale layers'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['auto_scale_layers'],
'#description' => $this
->t('Indicates whether the layers will be scaled automatically.'),
];
// Advanced Settings.
$form['advanced'] = [
'#type' => 'details',
'#title' => $this
->t('Advanced Settings'),
'#group' => 'tabs',
'#open' => FALSE,
];
$form['advanced']['center_image'] = [
'#type' => 'select',
'#title' => $this
->t('Center image'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['center_image'],
'#description' => $this
->t('Indicates if the image will be centered.'),
'#required' => TRUE,
];
$form['advanced']['allow_scale_up'] = [
'#type' => 'select',
'#title' => $this
->t('Allow scale up'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['allow_scale_up'],
'#description' => $this
->t('Indicates if the image can be scaled up more than its original size.'),
'#required' => TRUE,
];
$form['advanced']['auto_height'] = [
'#type' => 'select',
'#title' => $this
->t('Auto height'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['auto_height'],
'#description' => $this
->t('Indicates if height of the slider will be adjusted to the height of the selected slide.'),
'#required' => TRUE,
];
$form['advanced']['slide_distance'] = [
'#type' => 'number',
'#title' => $this
->t('Slide distance'),
'#default_value' => $options['slide_distance'],
'#description' => $this
->t('Sets the distance between the slides.'),
'#required' => TRUE,
];
$form['advanced']['start_slide'] = [
'#type' => 'number',
'#title' => $this
->t('Start slide'),
'#default_value' => $options['start_slide'],
'#description' => $this
->t('Sets the slide that will be selected when the slider loads.'),
'#required' => TRUE,
];
$form['advanced']['shuffle'] = [
'#type' => 'select',
'#title' => $this
->t('Shuffle'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['shuffle'],
'#description' => $this
->t('Indicates if the slides will be shuffled.'),
'#required' => TRUE,
];
$form['advanced']['loop'] = [
'#type' => 'select',
'#title' => $this
->t('Loop'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['loop'],
'#description' => $this
->t('Indicates if the slider will be loopable (infinite scrolling).'),
'#required' => TRUE,
];
$form['advanced']['autoplay'] = [
'#type' => 'select',
'#title' => $this
->t('Autoplay'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['autoplay'],
'#description' => $this
->t('Indicates whether or not autoplay will be enabled.'),
'#required' => TRUE,
];
$form['advanced']['autoplay_delay'] = [
'#type' => 'number',
'#title' => $this
->t('Autoplay delay'),
'#default_value' => $options['autoplay_delay'],
'#description' => $this
->t('Sets the delay/interval (in milliseconds) at which the autoplay will run.'),
'#required' => TRUE,
'#states' => [
'visible' => [
'select[name="autoplay"]' => [
'value' => '1',
],
],
],
];
$form['advanced']['autoplay_direction'] = [
'#type' => 'select',
'#title' => $this
->t('Autoplay direction'),
'#options' => [
'normal' => $this
->t('Normal'),
'backwards' => $this
->t('Backwards'),
],
'#default_value' => $options['autoplay_direction'],
'#description' => $this
->t('Indicates whether autoplay will navigate to the next slide or previous slide.'),
'#required' => TRUE,
'#states' => [
'visible' => [
'select[name="autoplay"]' => [
'value' => '1',
],
],
],
];
$form['advanced']['autoplay_on_hover'] = [
'#type' => 'select',
'#title' => $this
->t('Autoplay on hover'),
'#options' => [
'pause' => $this
->t('Pause'),
'stop' => $this
->t('Stop'),
'none' => $this
->t('None'),
],
'#default_value' => $options['autoplay_on_hover'],
'#description' => $this
->t('Indicates if the autoplay will be paused or stopped when the slider is hovered.'),
'#required' => TRUE,
'#states' => [
'visible' => [
'select[name="autoplay"]' => [
'value' => '1',
],
],
],
];
$form['advanced']['keyboard'] = [
'#type' => 'select',
'#title' => $this
->t('Keyboard'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['keyboard'],
'#description' => $this
->t('Indicates whether keyboard navigation will be enabled.'),
'#required' => TRUE,
];
$form['advanced']['full_screen'] = [
'#type' => 'select',
'#title' => $this
->t('Full screen'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['full_screen'],
'#description' => $this
->t('Indicates whether the full-screen button is enabled.'),
'#required' => TRUE,
];
$form['advanced']['fade_full_screen'] = [
'#type' => 'select',
'#title' => $this
->t('Fade full screen'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['fade_full_screen'],
'#description' => $this
->t('Indicates whether the button will fade in only on hover.'),
'#required' => TRUE,
'#states' => [
'visible' => [
'select[name="full_screen"]' => [
'value' => '1',
],
],
],
];
$form['advanced']['update_hash'] = [
'#type' => 'select',
'#title' => $this
->t('Update hash'),
'#options' => [
0 => $this
->t('No'),
1 => $this
->t('Yes'),
],
'#default_value' => $options['update_hash'],
'#description' => $this
->t('Indicates whether the hash will be updated when a new slide is selected.'),
'#required' => TRUE,
];
return $form;
}