public function TaxonomiesSyncForm::buildForm in Structure Sync 8
Same name and namespace in other branches
- 2.x src/Form/TaxonomiesSyncForm.php \Drupal\structure_sync\Form\TaxonomiesSyncForm::buildForm()
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 ConfigFormBase::buildForm
File
- src/
Form/ TaxonomiesSyncForm.php, line 61
Class
- TaxonomiesSyncForm
- Import and export form for content in structure, like taxonomy terms.
Namespace
Drupal\structure_sync\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$helper = new StructureSyncHelper();
$form['title'] = [
'#type' => 'page_title',
'#title' => $this
->t('Taxonomies'),
];
$form['export'] = [
'#type' => 'details',
'#title' => $this
->t('Export'),
'#weight' => 1,
'#open' => TRUE,
];
$form['export']['export_taxonomies'] = [
'#type' => 'submit',
'#value' => $this
->t('Export taxonomies'),
'#name' => 'exportTaxonomies',
'#button_type' => 'primary',
'#submit' => [
[
$helper,
'exportTaxonomies',
],
],
];
// Get a list of all vocabularies (their machine names).
$vocabulary_list = [];
$vocabularies = $this->entityTypeManager
->getStorage('taxonomy_vocabulary')
->loadMultiple();
foreach ($vocabularies as $vocabulary) {
$vocabulary_list[$vocabulary
->id()] = $vocabulary
->label();
}
$form['export']['export_voc_list'] = [
'#type' => 'checkboxes',
'#options' => $vocabulary_list,
'#default_value' => array_keys($vocabulary_list),
'#title' => $this
->t('Select the vocabularies you would like to export'),
];
$form['import'] = [
'#type' => 'details',
'#title' => $this
->t('Import'),
'#weight' => 2,
'#open' => TRUE,
];
$taxonomies = $this
->config('structure_sync.data')
->get('taxonomies');
if (empty($taxonomies)) {
$form['import']['import_no_data'] = [
'#type' => 'markup',
'#markup' => $this
->t("There's no data to import, please do an export first."),
];
return $form;
}
$form['import']['import_taxonomies_safe'] = [
'#type' => 'submit',
'#value' => $this
->t('Import taxonomies (safely)'),
'#name' => 'importTaxonomiesSafe',
'#button_type' => 'primary',
'#submit' => [
[
$helper,
'importTaxonomiesSafe',
],
],
];
$form['import']['import_taxonomies_full'] = [
'#type' => 'submit',
'#value' => $this
->t('Import taxonomies (full)'),
'#name' => 'importTaxonomiesFull',
'#submit' => [
[
$helper,
'importTaxonomiesFull',
],
],
];
$form['import']['import_taxonomies_force'] = [
'#type' => 'submit',
'#value' => $this
->t('Import taxonomies (force)'),
'#name' => 'importTaxonomiesForce',
'#submit' => [
[
$helper,
'importTaxonomiesForce',
],
],
];
$voc_list = array_keys($taxonomies);
$vocabulary_list_config = array_combine($voc_list, $voc_list);
foreach ($vocabulary_list_config as $voc) {
$vocabulary_list_config[$voc] = $vocabulary_list[$voc];
if (!in_array($vocabulary_list_config[$voc], $vocabulary_list)) {
drupal_set_message($this
->t('Vocabulary "@voc" does not (yet) exist on the site', [
'@voc' => $voc,
]), 'warning');
unset($vocabulary_list_config[$voc]);
}
}
$form['import']['import_voc_list'] = [
'#type' => 'checkboxes',
'#options' => $vocabulary_list_config,
'#default_value' => array_keys($vocabulary_list_config),
'#title' => $this
->t('Select the vocabularies you would like to import'),
];
return $form;
}