function _content_translation_preprocess_language_content_settings_table in Zircon Profile 8
Same name and namespace in other branches
- 8.0 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 166 - The content translation administration forms.
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'], array(
'data' => t('Translatable'),
'class' => array(
'translatable',
),
));
$rows = array();
foreach (Element::children($element) as $bundle) {
$field_names = !empty($element[$bundle]['fields']) ? Element::children($element[$bundle]['fields']) : array();
if (!empty($element[$bundle]['translatable'])) {
$checkbox_id = $element[$bundle]['translatable']['#id'];
}
$rows[$bundle] = $build['#rows'][$bundle];
if (!empty($element[$bundle]['translatable'])) {
$translatable = array(
'data' => $element[$bundle]['translatable'],
'class' => array(
'translatable',
),
);
array_unshift($rows[$bundle]['data'], $translatable);
$rows[$bundle]['data'][1]['data']['#prefix'] = '<label for="' . $checkbox_id . '">';
}
else {
$translatable = array(
'data' => t('N/A'),
'class' => array(
'untranslatable',
),
);
array_unshift($rows[$bundle]['data'], $translatable);
}
foreach ($field_names as $field_name) {
$field_element =& $element[$bundle]['fields'][$field_name];
$rows[] = array(
'data' => array(
array(
'data' => drupal_render($field_element),
'class' => array(
'translatable',
),
),
array(
'data' => array(
'#prefix' => '<label for="' . $field_element['#id'] . '">',
'#suffix' => '</label>',
'bundle' => array(
'#prefix' => '<span class="visually-hidden">',
'#suffix' => '</span> ',
'#plain_text' => $element[$bundle]['settings']['#label'],
),
'field' => array(
'#plain_text' => $field_element['#label'],
),
),
'class' => array(
'field',
),
),
array(
'data' => '',
'class' => array(
'operations',
),
),
),
'class' => array(
'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[] = array(
'data' => array(
array(
'data' => drupal_render($column_element[$key]),
'class' => array(
'translatable',
),
),
array(
'data' => array(
'#prefix' => '<label for="' . $column_element[$key]['#id'] . '">',
'#suffix' => '</label>',
'bundle' => array(
'#prefix' => '<span class="visually-hidden">',
'#suffix' => '</span> ',
'#plain_text' => $element[$bundle]['settings']['#label'],
),
'field' => array(
'#prefix' => '<span class="visually-hidden">',
'#suffix' => '</span> ',
'#plain_text' => $field_element['#label'],
),
'columns' => array(
'#plain_text' => $column_label,
),
),
'class' => array(
'column',
),
),
array(
'data' => '',
'class' => array(
'operations',
),
),
),
'class' => array(
'column-settings',
),
);
}
}
}
}
$build['#rows'] = $rows;
}