function notifications_forum_user_forum_form in Forum notifications 6
Same name and namespace in other branches
- 7 notifications_forum.module \notifications_forum_user_forum_form()
User forum notifications form.
1 string reference to 'notifications_forum_user_forum_form'
- notifications_forum_menu in ./
notifications_forum.module - Implements hook_menu().
File
- ./
notifications_forum.module, line 159
Code
function notifications_forum_user_forum_form(&$form_state, $account) {
$form = array();
$account = messaging_user_object($account);
$form['account'] = array(
'#type' => 'value',
'#value' => $account,
);
$send_methods = notifications_send_methods($account);
$send_intervals = notifications_send_intervals($account);
// lookup existing subscriptions and index by 'tid'
$subs = array();
foreach (notifications_get_subscriptions(array(
'type' => 'taxonomy',
'uid' => $account->uid,
)) as $sub) {
$subs[$sub->fields['tid']] = $sub;
}
$form['info'] = array(
'#value' => '<p>' . t('Your forum subscriptions:') . '</p>',
);
$form['subscriptions'] = array(
'#theme' => 'notifications_forum_user_subscriptions_form',
'#tree' => TRUE,
);
foreach (forum_get_forums() as $forum) {
$sub = !empty($subs[$forum->tid]) ? $subs[$forum->tid] : NULL;
$wrapper = array();
$wrapper['subscribe'] = array(
'#type' => 'checkbox',
'#title' => l($forum->name, "forum/{$forum->tid}"),
'#default_value' => !is_null($sub),
);
$wrapper['tid'] = array(
'#type' => 'value',
'#value' => $forum->tid,
);
if (!is_null($sub)) {
$wrapper['sid'] = array(
'#type' => 'value',
'#value' => $sub->sid,
);
}
$wrapper['description'] = array(
'#type' => 'item',
'#title' => t('Description'),
'#value' => $forum->description,
);
$wrapper['send_method'] = array(
'#type' => 'select',
'#title' => t('Send method'),
'#options' => $send_methods,
'#default_value' => is_null($sub) ? notifications_user_setting('send_method', $account) : $sub->send_method,
);
$wrapper['send_interval'] = array(
'#type' => 'select',
'#title' => t('Send interval'),
'#options' => $send_intervals,
'#default_value' => is_null($sub) ? notifications_user_setting('send_interval', $account) : $sub->send_interval,
);
$form['subscriptions'][] = $wrapper;
}
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save'),
);
return $form;
}