function tablefield_required_process_tablefield in TableField 8.2
Helper function to process tablefield widgets.
1 string reference to 'tablefield_required_process_tablefield'
- tablefield_required_element_info_alter in tablefield_required/
tablefield_required.module - Implements hook_element_info_alter().
File
- tablefield_required/
tablefield_required.module, line 111 - Contains module hooks for tablefield_required.
Code
function tablefield_required_process_tablefield($element, $form_state, $complete_form) {
if (!_tablefield_required_is_field_config_path() && isset($element['tablefield']['table']) && isset($element['#tablefield_required']) && !$element['#required']) {
$config = $element['#tablefield_required'];
// Let's prepare our needed variables.
$rows = isset($config['required_rows']) && $config['required_rows'] ? explode(',', preg_replace('/\\s+/', '', $config['required_rows'])) : [];
$cols = isset($config['required_cols']) && $config['required_cols'] ? explode(',', preg_replace('/\\s+/', '', $config['required_cols'])) : [];
$inherit = isset($config['multivalue_inherit']) ? $config['multivalue_inherit'] : FALSE;
// Our array of settings to pass to the validation function.
$settings = [
'required_rows' => $rows,
'required_cols' => $cols,
'inherit' => $inherit,
];
// Do not process if inheritance for multi-value tables is disabled.
if (!$settings['inherit'] && $element['#delta'] > 0) {
return $element;
}
foreach ($element['tablefield']['table'] as $row_index => &$row) {
if (is_numeric($row_index)) {
foreach ($row as $col_index => &$col) {
// We could to assign returned value, but better to keep it neutral.
if (tablefield_required_cell_is_required($row_index, $col_index, $settings)) {
$col['#required'] = TRUE;
}
}
}
}
}
return $element;
}