function yamlform_form_config_translation_add_form_alter in YAML Form 8
Implements hook_form_FORM_ID_alter().
1 call to yamlform_form_config_translation_add_form_alter()
- yamlform_form_config_translation_edit_form_alter in includes/
yamlform.translation.inc - Implements hook_form_FORM_ID_alter().
File
- includes/
yamlform.translation.inc, line 17 - YAML Form module translation hooks.
Code
function yamlform_form_config_translation_add_form_alter(&$form, FormStateInterface $form_state, $is_new = TRUE) {
// Manually apply YAML editor to text field that store YAML data.
foreach ($form['config_names'] as $config_name => &$config_element) {
if ($config_name == 'yamlform.settings') {
_yamlform_form_config_translate_add_form_alter_yaml_element($config_element['test']['types']);
_yamlform_form_config_translate_add_form_alter_yaml_element($config_element['test']['names']);
}
elseif (strpos($config_name, 'yamlform.yamlform_options.') === 0) {
_yamlform_form_config_translate_add_form_alter_yaml_element($config_element['options']);
}
elseif (strpos($config_name, 'yamlform.yamlform.') === 0) {
$yamlform_id = str_replace('yamlform.yamlform.', '', $config_name);
$yamlform = YamlForm::load($yamlform_id);
/** @var \Drupal\yamlform\YamlFormTranslationManagerInterface $translation_manager */
$translation_manager = \Drupal::service('yamlform.translation_manager');
$translation_langcode = $form_state
->get('config_translation_language')
->getId();
$source_elements = $translation_manager
->getSourceElements($yamlform);
$translation_elements = $translation_manager
->getTranslationElements($yamlform, $translation_langcode);
$source_value = trim(Yaml::encode($source_elements));
$translation_value = trim(Yaml::encode($translation_elements));
_yamlform_form_config_translate_add_form_alter_yaml_element($config_element['elements'], $source_value, $translation_value);
$form['inputs'] = [
'#type' => 'textarea',
'#parents' => [
"translation",
"config_names",
"yamlform.yamlform.test_translation",
"description",
],
];
$config_element['elements']['translation']['#description'] = t('Please note: Custom properties will be automatically removed.');
$form_state
->set('yamlform_config_name', $config_name);
$form_state
->set('yamlform_source_elements', $source_elements);
$form['#validate'][] = '_yamlform_form_config_translate_add_form_validate';
}
}
}