Animal.php in Embed 8
File
tests/embed_test/src/Plugin/EmbedType/Animal.php
View source
<?php
namespace Drupal\embed_test\Plugin\EmbedType;
use Drupal\Core\Form\FormStateInterface;
use Drupal\embed\EmbedType\EmbedTypeBase;
class Animal extends EmbedTypeBase {
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form_object = $form_state
->getFormObject();
$form['animal_type'] = [
'#type' => 'select',
'#title' => $this
->t('Animal type'),
'#options' => [
'vertebrates' => $this
->t('Vertebrates (with backbone)'),
'invertebrates' => $this
->t('Invertebrates (without backbone)'),
],
'#default_value' => $this
->getConfigurationValue('animal_type'),
'#required' => TRUE,
'#ajax' => [
'callback' => [
$form_object,
'updateTypeSettings',
],
'effect' => 'fade',
],
];
if ($this
->getConfigurationValue('animal_type') === 'vertebrates') {
$form['allowed_vertebrates'] = [
'#type' => 'checkboxes',
'#title' => $this
->t('Limit allowed vertebrates'),
'#options' => [
'amphibians' => $this
->t('Amphibians'),
'birds' => $this
->t('Birds'),
'fish' => $this
->t('Fish'),
'mammals' => $this
->t('Mammals'),
'reptiles' => $this
->t('Reptiles'),
],
'#default_value' => $this
->getConfigurationValue('allowed_vertebrates', []),
];
}
return $form;
}
public function getDefaultIconUrl() {
return '/animal.png';
}
}