public function TaxonomyManagerForm::termDataCallback in Taxonomy Manager 8
Same name and namespace in other branches
- 2.0.x src/Form/TaxonomyManagerForm.php \Drupal\taxonomy_manager\Form\TaxonomyManagerForm::termDataCallback()
AJAX callback handler for the term data form.
File
- src/
Form/ TaxonomyManagerForm.php, line 296
Class
- TaxonomyManagerForm
- Taxonomy manager class.
Namespace
Drupal\taxonomy_manager\FormCode
public function termDataCallback($form, FormStateInterface $form_state) {
$taxonomy_term = $this->entityTypeManager
->getStorage('taxonomy_term')
->load($form_state
->getValue('load-term-data'));
$term_form = $this->entityFormBuilder
->getForm($taxonomy_term, 'default');
// Move the term data form into a fieldset.
$term_form['fieldset']['#type'] = 'fieldset';
$term_form['fieldset']['#title'] = Html::escape($taxonomy_term
->getName()) . ' (' . $taxonomy_term
->id() . ')';
$term_form['fieldset']['#attributes'] = [];
foreach (Element::children($term_form) as $key) {
if ($key != 'fieldset') {
$term_form['fieldset'][$key] = $term_form[$key];
unset($term_form[$key]);
}
}
$term_form['#prefix'] = '<div id="taxonomy-term-data-form">';
$term_form['#suffix'] = '</div>';
$current_path = $this->currentPath
->getPath();
// Change the form action url form the current site to the add form.
$term_form['#action'] = $this->urlGenerator
->generateFromRoute('entity.taxonomy_term.edit_form', [
'taxonomy_term' => $taxonomy_term
->id(),
], [
'query' => [
'destination' => $current_path,
],
]);
$response = new AjaxResponse();
$response
->addCommand(new ReplaceCommand('#taxonomy-term-data-form', $term_form));
return $response;
}