function subscriptions_page_form_submit in Subscriptions 5.2
Same name and namespace in other branches
- 6 subscriptions.admin.inc \subscriptions_page_form_submit()
- 7 subscriptions.admin.inc \subscriptions_page_form_submit()
- 2.0.x subscriptions.admin.old.php \subscriptions_page_form_submit()
Subscriptions page submit handler.
File
- ./
subscriptions.admin.inc, line 148
Code
function subscriptions_page_form_submit($form_id, $form_values) {
global $user;
if (isset($form_values['header']['role']['roles'])) {
$rid0 = current($form_values['header']['role']['roles']);
}
if ($form_values['op'] == $form_values['submit']) {
if (empty($rid0)) {
$form_values['header']['role']['roles'][] = -$form_values['uid'];
// will be negated again below
}
$module = $form_values['module'];
$field = $form_values['field'];
$access_key = isset($form_values['access_key']) ? $form_values['access_key'] : $module;
foreach ($form_values as $element_values) {
if (isset($element_values[0])) {
$element_values = $element_values[0];
}
if (isset($element_values['defaults']['send_interval'])) {
$defaults = $element_values['defaults'];
foreach ($element_values['checkboxes'] as $value => $bundle) {
foreach ($bundle as $author_uid => $set_to_enabled) {
if ($set_to_enabled && (!isset($defaults['checkboxes'][$value][$author_uid]) || $element_values['send_interval'][$value][$author_uid] != $defaults['send_interval'][$value][$author_uid] || empty($element_values['send_updates'][$value][$author_uid]) != empty($defaults['send_updates'][$value][$author_uid]) || empty($element_values['send_comments'][$value][$author_uid]) != empty($defaults['send_comments'][$value][$author_uid]))) {
$send_updates = empty($element_values['send_updates'][$value][$author_uid]) ? 0 : 1;
$send_comments = empty($element_values['send_comments'][$value][$author_uid]) ? 0 : 1;
foreach ($form_values['header']['role']['roles'] as $uid) {
subscriptions_write($access_key, $module, $field, $value, $author_uid, -$uid, $element_values['send_interval'][$value][$author_uid], $send_updates, $send_comments);
}
$changed = TRUE;
}
elseif (!$set_to_enabled && isset($defaults['checkboxes'][$value][$author_uid])) {
// It was enabled but now it is not. Delete.
foreach ($form_values['header']['role']['roles'] as $uid) {
db_query("DELETE FROM {subscriptions} WHERE module = '%s' AND field = '%s' AND value = '%s' AND author_uid = %d AND recipient_uid = %d", $module, $field, $value, $author_uid, -$uid);
}
$changed = TRUE;
}
}
}
}
}
if (!empty($changed)) {
drupal_set_message(t('Your subscriptions were updated.'));
}
}
if (!empty($rid0)) {
$redirect = 'admin/settings/subscriptions/userdefaults/' . arg(4);
if ($rid0 != DRUPAL_AUTHENTICATED_RID) {
$redirect .= '/' . $rid0;
}
return $redirect;
}
}