class SearchForm in Entity Reference Tree Widget 8
Same name and namespace in other branches
- 2.x src/Form/SearchForm.php \Drupal\entity_reference_tree\Form\SearchForm
ModalForm class.
To properly inject services, override create() and use the setters provided by the traits to inject the needed services.
public static function create($container) {
$form = new static();
// In this example we only need string translation so we use the
// setStringTranslation() method provided by StringTranslationTrait.
$form->setStringTranslation($container->get('string_translation'));
return $form;
}
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\entity_reference_tree\Form\SearchForm
Expanded class hierarchy of SearchForm
File
- src/
Form/ SearchForm.php, line 28
Namespace
Drupal\entity_reference_tree\FormView source
class SearchForm extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'entity_reference_tree_search_form';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state, $field_edit_id = '', $bundles = '', $entity_type = '', $theme = 'default', $dots = false) {
// Do nothing after the form is submitted.
if (!empty($form_state
->getValues())) {
return [];
}
// Limit number of selected nodes of tree.
$limit = $this
->getRequest()
->get('limit');
// The status messages that will contain any form errors.
$form['status_messages'] = [
'#type' => 'status_messages',
'#weight' => -10,
];
// Selected entity text.
$form['selected_text'] = [
'#type' => 'html_tag',
'#tag' => 'div',
'#value' => $this
->t('Selected Entities'),
'#weight' => 1000,
'#attributes' => [
'class' => [
'selected-entities-text',
],
'id' => [
'entity-reference-tree-selected-text',
],
],
];
// Hidden field for submitting selected entity IDs.
$form['selected_node'] = [
'#type' => 'hidden',
'#attributes' => [
'id' => [
'entity-reference-tree-selected-node',
],
],
];
// Search filter box.
$form['tree_search'] = [
'#type' => 'textfield',
'#title' => $this
->t('Search'),
'#size' => 60,
'#attributes' => [
'id' => [
'entity-reference-tree-search',
],
],
];
// JsTree container.
$form['tree_container'] = [
'#type' => 'html_tag',
'#tag' => 'div',
'#attributes' => [
'id' => [
'entity-reference-tree-wrapper',
],
'theme' => $theme,
'dots' => $dots,
],
];
// Submit button.
$form['actions'] = [
'#type' => 'actions',
];
$form['actions']['send'] = [
'#type' => 'submit',
'#value' => $this
->t('Save'),
'#attributes' => [
'class' => [
'use-ajax',
],
],
'#ajax' => [
'callback' => [
$this,
'submitForm',
],
'event' => 'click',
],
];
$form['#attached']['library'][] = 'entity_reference_tree/jstree';
$form['#attached']['library'][] = 'entity_reference_tree/entity_tree';
$form['#attached']['library'][] = 'entity_reference_tree/jstree_' . $theme . '_theme';
// Disable the cache for this form.
$form_state
->setCached(FALSE);
$form['#cache'] = [
'max-age' => 0,
];
$form['#attributes']['data-user-info-from-browser'] = FALSE;
// Field element id.
$form['field_id'] = [
'#name' => 'field_id',
'#type' => 'hidden',
'#weight' => 80,
'#value' => $field_edit_id,
'#attributes' => [
'id' => [
'entity-reference-tree-widget-field',
],
],
];
// Entity type.
$form['entity_type'] = [
'#name' => 'entity_type',
'#type' => 'hidden',
'#weight' => 80,
'#value' => $entity_type,
'#attributes' => [
'id' => [
'entity-reference-tree-entity-type',
],
],
];
// Entity bundle.
$form['entity_bundle'] = [
'#name' => 'entity_bundle',
'#type' => 'hidden',
'#weight' => 80,
'#value' => $bundles,
'#attributes' => [
'id' => [
'entity-reference-tree-entity-bundle',
],
],
];
// Pass data to js file.
$form['#attached']['drupalSettings'] = [
'entity_tree_token_' . $field_edit_id => \Drupal::csrfToken()
->get($bundles),
'tree_limit_' . $field_edit_id => empty($limit) ? -1 : $limit,
];
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$response = new AjaxResponse();
// If there are any form errors, re-display the form.
if ($form_state
->hasAnyErrors()) {
$response
->addCommand(new ReplaceCommand('#entity_reference_tree_wrapper', $form));
}
else {
$response
->addCommand(new InvokeCommand(NULL, 'entitySearchDialogAjaxCallback', [
$form_state
->getValue('field_id'),
$form_state
->getValue('selected_node'),
]));
$response
->addCommand(new CloseModalDialogCommand());
}
return $response;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormBase:: |
protected | property | The config factory. | 1 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Retrieves a configuration object. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
FormBase:: |
private | function | Returns the service container. | |
FormBase:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
87 |
FormBase:: |
protected | function | Gets the current user. | |
FormBase:: |
protected | function | Gets the request object. | |
FormBase:: |
protected | function | Gets the route match. | |
FormBase:: |
protected | function | Gets the logger for a specific channel. | |
FormBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
FormBase:: |
public | function | Resets the configuration factory. | |
FormBase:: |
public | function | Sets the config factory for this form. | |
FormBase:: |
public | function | Sets the request stack object to use. | |
FormBase:: |
public | function |
Form validation handler. Overrides FormInterface:: |
62 |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
SearchForm:: |
public | function |
Form constructor. Overrides FormInterface:: |
|
SearchForm:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
SearchForm:: |
public | function |
Form submission handler. Overrides FormInterface:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |