Implements hook_preprocess_HOOK() for field_multiple_value_form().
function paragraphs_preprocess_field_multiple_value_form(&$variables) {
if (!empty($variables['table']['#header']) && isset($variables['table']['#rows'][0])) {
// Find paragraph_actions and move to header.
// @see template_preprocess_field_multiple_value_form()
if (is_array($variables['table']['#rows'][0]['data'][1]) && !empty($variables['table']['#rows'][0]['data'][1]['data']['#paragraphs_header'])) {
$variables['table']['#header'][0]['data'] = [
'title' => $variables['table']['#header'][0]['data'],
'button' => $variables['table']['#rows'][0]['data'][1]['data'],
];
unset($variables['table']['#rows'][0]);
}
// Add the paragraph type as a class to every row.
if (isset($variables['element']['#paragraphs_widget'])) {
foreach ($variables['table']['#rows'] as $key => $row) {
if (isset($row['data'][1]['data']['#paragraph_type'])) {
$variables['table']['#rows'][$key]['class'][] = 'paragraph-type--' . str_replace('_', '-', $row['data'][1]['data']['#paragraph_type']);
}
}
}
}
// Remove the drag handler if we are translating, if the field's cardinality
// is 1 or if there are no paragraphs added. Passing through this will not
// only remove the drag handler but also the order column that is empty when
// no paragraphs are added and when the field is single value.
if (isset($variables['element']['#allow_reference_changes']) && !$variables['element']['#allow_reference_changes'] || isset($variables['element']['#cardinality']) && $variables['element']['#cardinality'] == 1 || isset($variables['table']['#rows']) && count($variables['table']['#rows']) == 0) {
if (isset($variables['table']['#tabledrag'])) {
// Remove the tabledrag.
unset($variables['table']['#tabledrag']);
unset($variables['table']['#header'][2]);
foreach ($variables['table']['#rows'] as $key => $value) {
$variables['table']['#rows'][$key]['data'][0]['class'][] = 'paragraph-bullet';
// Restore the removed weight and give access FALSE.
if (isset($value['data'][3])) {
$variables['table']['#rows'][$key]['data'][1]['data']['_weight'] = $value['data'][3]['data'];
unset($variables['table']['#rows'][$key]['data'][3]);
$variables['table']['#rows'][$key]['data'][1]['data']['_weight']['#access'] = FALSE;
}
}
}
}
}