function _content_translation_preprocess_language_content_settings_table
Same name in other branches
- 9 core/modules/content_translation/content_translation.admin.inc \_content_translation_preprocess_language_content_settings_table()
- 10 core/modules/content_translation/content_translation.admin.inc \_content_translation_preprocess_language_content_settings_table()
- 11.x core/modules/content_translation/content_translation.admin.inc \_content_translation_preprocess_language_content_settings_table()
(proxied) Implements hook_preprocess_HOOK();
1 call to _content_translation_preprocess_language_content_settings_table()
- content_translation_preprocess_language_content_settings_table in core/
modules/ content_translation/ content_translation.module - Implements hook_preprocess_HOOK() for language-content-settings-table.html.twig.
File
-
core/
modules/ content_translation/ content_translation.admin.inc, line 195
Code
function _content_translation_preprocess_language_content_settings_table(&$variables) {
// Alter the 'build' variable injecting the translation settings if the user
// has the required permission.
if (!\Drupal::currentUser()->hasPermission('administer content translation')) {
return;
}
$element = $variables['element'];
$build =& $variables['build'];
array_unshift($build['#header'], [
'data' => t('Translatable'),
'class' => [
'translatable',
],
]);
$rows = [];
foreach (Element::children($element) as $bundle) {
$field_names = !empty($element[$bundle]['fields']) ? Element::children($element[$bundle]['fields']) : [];
if (!empty($element[$bundle]['translatable'])) {
$checkbox_id = $element[$bundle]['translatable']['#id'];
}
$rows[$bundle] = $build['#rows'][$bundle];
if (!empty($element[$bundle]['translatable'])) {
$translatable = [
'data' => $element[$bundle]['translatable'],
'class' => [
'translatable',
],
];
array_unshift($rows[$bundle]['data'], $translatable);
$rows[$bundle]['data'][1]['data']['#prefix'] = '<label for="' . $checkbox_id . '">';
}
else {
$translatable = [
'data' => t('N/A'),
'class' => [
'untranslatable',
],
];
array_unshift($rows[$bundle]['data'], $translatable);
}
foreach ($field_names as $field_name) {
$field_element =& $element[$bundle]['fields'][$field_name];
$rows[] = [
'data' => [
[
'data' => \Drupal::service('renderer')->render($field_element),
'class' => [
'translatable',
],
],
[
'data' => [
'#prefix' => '<label for="' . $field_element['#id'] . '">',
'#suffix' => '</label>',
'bundle' => [
'#prefix' => '<span class="visually-hidden">',
'#suffix' => '</span> ',
'#plain_text' => $element[$bundle]['settings']['#label'],
],
'field' => [
'#plain_text' => $field_element['#label'],
],
],
'class' => [
'field',
],
],
[
'data' => '',
'class' => [
'operations',
],
],
],
'#field_name' => $field_name,
'class' => [
'field-settings',
],
];
if (!empty($element[$bundle]['columns'][$field_name])) {
$column_element =& $element[$bundle]['columns'][$field_name];
foreach (Element::children($column_element) as $key) {
$column_label = $column_element[$key]['#title'];
unset($column_element[$key]['#title']);
$rows[] = [
'data' => [
[
'data' => \Drupal::service('renderer')->render($column_element[$key]),
'class' => [
'translatable',
],
],
[
'data' => [
'#prefix' => '<label for="' . $column_element[$key]['#id'] . '">',
'#suffix' => '</label>',
'bundle' => [
'#prefix' => '<span class="visually-hidden">',
'#suffix' => '</span> ',
'#plain_text' => $element[$bundle]['settings']['#label'],
],
'field' => [
'#prefix' => '<span class="visually-hidden">',
'#suffix' => '</span> ',
'#plain_text' => $field_element['#label'],
],
'columns' => [
'#plain_text' => $column_label,
],
],
'class' => [
'column',
],
],
[
'data' => '',
'class' => [
'operations',
],
],
],
'class' => [
'column-settings',
],
];
}
}
}
}
$build['#rows'] = $rows;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.