function notifications_account_subscription_list_form in Notifications 7
List form for subscriptions of the same type for a user
@todo Add enable /disable operations @todo Add pager
Parameters
$type: Subscription type
$account: User account, owner of these subscriptions
$subscriptions: Predefined array of subscriptions to display, so we don't search more nor allow new ones.
$fields: Predefined field values for new subscriptions, as type => value array
1 string reference to 'notifications_account_subscription_list_form'
- notifications_account_subscription_list_page in notifications_account/
notifications_account.module - Generic user page for a subscription type
File
- notifications_account/
notifications_account.pages.inc, line 101 - User pages for Notifications
Code
function notifications_account_subscription_list_form($form, &$form_state, $type, $account) {
if (isset($form_state['values']['op']) && $form_state['values']['op'] == t('Delete')) {
if ($selected = array_filter($form_state['values']['subscriptions']['select'])) {
$list = Notifications_Subscription_List::build_sids(array_keys($selected));
return notifications_subscription_list_form($form, $form_state, 'delete', $list);
}
}
$account = messaging_user_object($account);
$substype = notifications_subscription($type);
$form['account'] = array(
'#type' => 'value',
'#value' => $account,
);
$form['subscription_type'] = array(
'#type' => 'value',
'#value' => $type,
);
// Build a template subscriptions. These subscriptions should have a unique subscription variable field
$form['info'] = array(
'#type' => 'item',
'#title' => t('@type subscriptions', array(
'@type' => $substype
->get_title(),
)),
'#description' => check_plain($substype
->get_description()),
);
$subscriptions = new Notifications_Subscription_Table();
$subscriptions
->set_header()
->set_conditions(array(
'uid' => $account->uid,
'type' => $type,
))
->query_load();
$form['subscriptions'] = $subscriptions
->table_select();
if (count($subscriptions)) {
$form['operations'] = array(
'#type' => 'fieldset',
);
}
return $form;
}