You are here

function og_notifications_manage_form_submit in Organic groups 5.3

Same name and namespace in other branches
  1. 6.2 modules/og_notifications/og_notifications.pages.inc \og_notifications_manage_form_submit()

Process og_notifications_manage_form form submission.

File

og_notifications/og_notifications.module, line 604
Provide notifications and messaging support for organic groups.

Code

function og_notifications_manage_form_submit($form, $form_values) {
  $current = $form_values['subscriptions']['current'];
  foreach ($form_values['subscriptions']['checkbox'] as $sid => $check) {
    $subscription = $current[$sid];

    // Insert fields array as per notifications' requirements.
    $subscription->fields = array(
      'group' => (string) $subscription->group_nid,
      'type' => $subscription->node_type,
    );
    if ($check == 1) {
      if ($subscription->send_interval != $form_values['subscriptions']['send_interval'][$sid] || !isset($form_values['send_method']) && $subscription->send_method != $form_values['subscriptions']['send_method'][$sid]) {
        $subscription->send_interval = $form_values['subscriptions']['send_interval'][$sid];
        $subscription->send_method = isset($form_values['send_method']) ? $form_values['send_method'] : $form_values['subscriptions']['send_method'][$sid];

        // String cast due to notifications requiring it as the value field is
        // a varchar.
        notifications_save_subscription($subscription);
      }
    }
    else {

      // Unsubscribe if not checked ...
      notifications_delete_subscription($sid);
    }
  }
  drupal_set_message(t('Subscriptions updated.'));
}