function paragraphs_table_preprocess_field_multiple_value_form in Paragraphs table 8
Implements hook_preprocess_HOOK().
File
- ./
paragraphs_table.module, line 58 - Contains paragraphs_table.module.
Code
function paragraphs_table_preprocess_field_multiple_value_form(&$variables) {
$element = $variables['element'];
if (empty($element['#paragraphsTable'])) {
return FALSE;
}
if (!empty($variables['table'])) {
// Case number of values unlimited - cardinality = -1.
if (!empty($element['#paragraphsTable']) && !empty($variables["table"]["#tabledrag"])) {
if ($element["#paragraphsTable"]["#show_all"]) {
foreach (range(0, $element["#cardinality"] - 1) as $delta) {
if (empty($variables["table"]["#rows"][$delta])) {
$variables["table"]["#rows"][$delta] = $variables["table"]["#rows"][0];
}
}
// We don't need button add more anymore.
foreach (Element::children($variables["button"]) as $child) {
if (substr($child, 0, 16) === "add_more_button_") {
$variables["button"][$child]["#access"] = FALSE;
break;
}
}
$variables["button"]['#access'] = FALSE;
}
if (!$element["#paragraphsTable"]["#table_vertical"]) {
// Add caption header.
if (!empty($element["#title"])) {
$variables["table"]["#caption"] = $variables["element"]["#title"];
}
if (!empty($element["#title_display"]) && $element["#title_display"] == 'invisible') {
unset($variables["table"]["#caption"]);
}
$row_weight = end($variables["table"]["#header"]);
if ($element["#cardinality"] < 2) {
$element["#paragraphsTable"]["#show_all"] = FALSE;
}
elseif (!empty($element["#paragraphsTable"]["#show_all"])) {
unset($variables["table"]["#tabledrag"]);
}
$is_new = isset($variables['table']['#rows']) && count($variables['table']['#rows']) == 0;
$variables["table"]["#header"] = _paragraphs_table_header($element["#paragraphsTable"]["#fields"], $element["#paragraphsTable"]["#show_all"], $row_weight, $is_new);
$remove_row = FALSE;
foreach ($variables["table"]["#rows"] as $delta => $rows) {
$row = _paragraphs_table_row($element["#paragraphsTable"]["#fields"], $rows['data'], $element["#paragraphsTable"]["#show_all"]);
if (!empty($row)) {
$variables["table"]["#rows"][$delta]['data'] = $row;
}
else {
$remove_row = TRUE;
unset($variables["table"]["#rows"][$delta]);
}
}
if ($remove_row) {
$variables["table"]["#rows"] = array_merge($variables["table"]["#rows"]);
}
if (empty($variables["table"]["#rows"]) && !empty($element["#no_header"])) {
unset($variables["table"]["#header"]);
unset($variables["table"]["#caption"]);
}
elseif ($element["#paragraphsTable"]["#paste_clipboard"]) {
$variables['table']['#prefix'] = '<a class="paste-paragraphs-clipboard" data-table="' . $variables["table"]["#attributes"]["id"] . '" href="#' . $variables["table"]["#attributes"]["id"] . '">' . t('Paste from excel') . '</a>';
$variables['table']['#attached']['library'][] = 'paragraphs_table/paste-clipboard';
}
}
else {
// Table vertical.
foreach ($variables["table"]["#rows"] as $delta => $rows) {
if (!empty($element["#paragraphsTable"]["#widget_state"]["paragraphs"][$delta]["mode"]) && $element["#paragraphsTable"]["#widget_state"]["paragraphs"][$delta]["mode"] == 'remove') {
continue;
}
if (!empty($rows["data"][1]["data"]["subform"])) {
$row = _paragraphs_table_vertical($element["#paragraphsTable"]["#fields"], $rows["data"][1]["data"]["subform"], $delta);
$variables["table"]["#rows"][$delta]["data"][1]["data"] = $row;
if (empty($element["#paragraphsTable"]["#show_all"]) && !empty($rows["data"][1]["data"]["top"]["actions"])) {
$actions = $rows["data"][1]["data"]["top"]["actions"];
if (!empty($actions["actions"]["collapse_button"])) {
unset($actions["actions"]["collapse_button"]);
}
$variables["table"]["#rows"][$delta]["data"][3]["data"] = $actions;
}
}
else {
unset($variables["table"]["#rows"][$delta]);
}
}
if (empty($element["#paragraphsTable"]["#show_all"])) {
$variables["table"]["#header"][] = [
'data' => '',
'class' => [
'action',
],
];
}
}
}
}
elseif (!empty($element["#cardinality"]) && $element["#cardinality"] == 1) {
// Case single value.
if (!$element["#paragraphsTable"]["#table_vertical"]) {
$variables["elements"][0]["subform"] = _paragraphs_table_1_row($element["#paragraphsTable"]["#fields"], $variables["elements"][0]["subform"]);
$variables["elements"][0]["subform"]["#header"] = _paragraphs_table_header($element["#paragraphsTable"]["#fields"], TRUE);
}
else {
// Table vertical.
$variables["elements"][0]["subform"] = _paragraphs_table_vertical($element["#paragraphsTable"]["#fields"], $variables["elements"][0]["subform"]);
}
}
}