(proxied) Implements hook_preprocess_HOOK();
function _translation_entity_preprocess_language_content_settings_table(&$variables) {
// Alter the 'build' variable injecting the translation settings if the user
// has the required permission.
if (!user_access('administer entity 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(
'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="element-invisible">',
'#suffix' => '</span> ',
'#markup' => check_plain($element[$bundle]['settings']['#label']),
),
'field' => array(
'#markup' => check_plain($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="element-invisible">',
'#suffix' => '</span> ',
'#markup' => check_plain($element[$bundle]['settings']['#label']),
),
'field' => array(
'#prefix' => '<span class="element-invisible">',
'#suffix' => '</span> ',
'#markup' => check_plain($field_element['#label']),
),
'columns' => array(
'#markup' => check_plain($column_label),
),
),
'class' => array(
'column',
),
),
array(
'data' => '',
'class' => array(
'operations',
),
),
),
'class' => array(
'column-settings',
),
);
}
}
}
}
$build['#rows'] = $rows;
}