You are here

function gdpr_tasks_email_settings_validate in General Data Protection Regulation 7

Validation handler for gdpr_tasks_email_settings().

1 string reference to 'gdpr_tasks_email_settings_validate'
gdpr_tasks_email_settings in modules/gdpr_tasks/gdpr_tasks.admin.inc
Config form for automated emails for task requests.

File

modules/gdpr_tasks/gdpr_tasks.admin.inc, line 311
Administrative page and form callbacks for the GDPR Tasks module.

Code

function gdpr_tasks_email_settings_validate(&$form, &$form_state) {
  foreach (element_children($form['gdpr_tasks_emails']) as $key) {

    // Skip our vertical tabs.
    if ($key == 'emails') {
      continue;
    }
    $element = $form['gdpr_tasks_emails'][$key];

    // If enabled, check we have our required values.
    $enabled = drupal_array_get_nested_value($form_state['values'], $element['enabled']['#parents']);
    if (!empty($enabled) && !empty($element['enabled']['#gdpr_tasks_email_dependents'])) {
      foreach ($element['enabled']['#gdpr_tasks_email_dependents'] as $array_parents) {

        // Get hold of the sub element we are requiring.
        $sub_element = drupal_array_get_nested_value($element, $array_parents);
        if (!$sub_element) {
          continue;
        }

        // Get hold of it's value and check it. Show an error if it's empty.
        $value = drupal_array_get_nested_value($form_state['values'], $sub_element['#parents']);
        if (empty($value)) {
          $error = t('%title is required if %set is enabled.', array(
            '%title' => $sub_element['#title'],
            '%set' => $element['#title'],
          ));
          form_error($sub_element, $error);
        }
      }
    }
  }
}