public function EntityDeleteForm::buildForm in Entity Delete 8
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 FormInterface::buildForm
File
- src/
Form/ EntityDeleteForm.php, line 73
Class
- EntityDeleteForm
- Class EntityDeleteForm.
Namespace
Drupal\entity_delete\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$form['displays'] = [];
$input =& $form_state
->getUserInput();
$wrapper = 'entity-wrapper';
// Create the part of the form that allows the user to select the basic
// properties of what the entity to delete.
$form['displays']['show'] = [
'#type' => 'fieldset',
'#title' => t('Entity Delete Settings'),
'#tree' => TRUE,
'#attributes' => [
'class' => [
'container-inline',
],
],
];
$content_entity_types = [];
$entity_type_definations = $this->entityTypeManager
->getDefinitions();
/* @var $definition \Drupal\Core\Entity\EntityTypeInterface */
foreach ($entity_type_definations as $definition) {
if ($definition instanceof ContentEntityType) {
$content_entity_types[$definition
->id()] = $definition
->getLabel();
}
}
$form['displays']['show']['entity_type'] = [
'#type' => 'select',
'#title' => $this
->t('Select Entity Type'),
'#options' => $content_entity_types,
'#empty_option' => $this
->t('-select-'),
'#size' => 1,
'#required' => TRUE,
'#ajax' => [
'callback' => [
$this,
'ajaxCallChangeEntity',
],
'wrapper' => $wrapper,
],
];
$type_options = [
'all' => $this
->t('All'),
];
$form['displays']['show']['type'] = [
'#type' => 'select',
'#title' => $this
->t('of type'),
'#options' => $type_options,
'#prefix' => '<div id="' . $wrapper . '">',
'#suffix' => '</div>',
];
if (isset($input['show']['entity_type']) && $input['show']['entity_type'] != 'comment') {
$default_bundles = \Drupal::service('entity_type.bundle.info')
->getBundleInfo($input['show']['entity_type']);
/*If the current base table support bundles and has more than one (like user).*/
if (!empty($default_bundles)) {
// Get all bundles and their human readable names.
foreach ($default_bundles as $type => $bundle) {
$type_options[$type] = $bundle['label'];
}
$form['displays']['show']['type']['#options'] = $type_options;
}
}
$form['displays']['show']['comment_message'] = [
'#type' => 'fieldset',
'#markup' => $this
->t('<br>Note: bundle. (not supported in comment entity types) Refer this <a target="_blank" href="https://www.drupal.org/node/1343708">How to use EntityFieldQuery</a>.<br>'),
'#states' => [
'visible' => [
'select[name="show[entity_type]"]' => [
'value' => 'comment',
],
],
],
];
$form['message'] = [
'#markup' => $this
->t('Note: Use <b>ENTITY DELETE</b> only to delete Comment, Content, Log Entries, Taxonomy, User(s).<br>'),
];
if (\Drupal::moduleHandler()
->moduleExists('commerce')) {
$form['commerce_message'] = [
'#markup' => $this
->t('<br>And Also supports Commerce - Line Item, Product, Order, Product Attribute, Product Variation, Profile, Store</br>'),
];
}
$form['submit'] = [
'#type' => 'submit',
'#value' => 'Delete',
];
return $form;
}