function subscriptions_page_form in Subscriptions 7
Same name and namespace in other branches
- 2.0.x subscriptions.admin.old.php \subscriptions_page_form()
Display subscribed content data on the user and site subscriptions pages. @ TODO clean up all of these parts
_state
Parameters
$form:
object|null $account:
string $stype:
Return value
array|null
1 string reference to 'subscriptions_page_form'
- subscriptions_menu in ./
subscriptions.module - Implements hook_menu().
File
- ./
subscriptions.admin.inc, line 255 - Subscriptions module (load-on-demand admin functions).
Code
function subscriptions_page_form($form, &$form_state, $account, $stype) {
$stypes = subscriptions_types();
if (!isset($stypes[$stype])) {
drupal_not_found();
return NULL;
}
if (subscriptions_arg(0) == 'admin') {
$form['header'] = array(
'#type' => 'fieldset',
'#title' => t('Admin Information'),
'#attributes' => array(
'class' => array(
'error',
),
),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#weight' => -2,
);
if (empty($_SESSION['subscriptions']['bulk_op'])) {
$form['header'][] = array(
'#markup' => '<div>' . t('The selected subscriptions will be given to <b>newly created</b> users.') . '</div>',
);
$tr = 't';
$rid = subscriptions_arg(SUBSCRIPTIONS_CONFIG_PATH_LEVEL + 2);
$form['header']['role'] = array(
'#type' => 'fieldset',
'#title' => check_plain($tr('Roles')),
'#collapsible' => TRUE,
'#collapsed' => !is_numeric($rid),
);
$form['header']['role']['header'] = array(
'#markup' => '<div>' . t('If a user has one or more roles assigned at creation time, then she will receive the additional subscriptions defined for these roles.') . '</div>',
'#weight' => -5,
);
$rid = is_numeric($rid) ? $rid : DRUPAL_AUTHENTICATED_RID;
$form['header']['role']['roles'] = array(
'#type' => 'select',
'#title' => t('Role(s)'),
'#default_value' => array(
$rid,
),
'#options' => user_roles(TRUE),
'#description' => t('Select the role to load or role(s) to save.'),
'#multiple' => TRUE,
);
$form['header']['role']['load'] = array(
'#type' => 'submit',
'#value' => t('Load'),
);
}
else {
$bulk_op = $_SESSION['subscriptions']['bulk_op'];
$variables = _subscriptions_page_user_bulk_variables();
$output = $variables['info'] . '<br />';
$output .= t('Select the subscriptions to !change and click [@Save] to perform the action for the selected users.', $variables);
if ($bulk_op == 'unsub') {
$output .= '<br /><strong>' . t('This action cannot be undone!') . '</strong>';
}
$form['header']['info'] = array(
'#markup' => $output,
);
}
}
else {
subscriptions_suspended(subscriptions_arg(1, 'uid'), TRUE);
//if (variable_get('subscriptions_hide_overview_page', 0)) {
// $dummy_form_state = NULL;
// $form = subscriptions_user_suspend_form($dummy_form_state, $account);
//}
$form['header'][] = array(
'#markup' => t('Current subscriptions:'),
'#weight' => -2,
);
}
$uid = empty($account) ? -DRUPAL_AUTHENTICATED_RID : (is_object($account) ? $account->uid : -$account);
$bulk_uids = empty($_SESSION['subscriptions']['bulk_op']) ? NULL : $_SESSION['subscriptions']['uids'];
$form['#tree'] = TRUE;
$form['uid'] = array(
'#type' => 'value',
'#value' => isset($bulk_uids) ? $bulk_uids : $uid,
);
$form['access_key'] = array(
'#type' => 'value',
'#value' => $stype,
);
$form['module'] = array(
'#type' => 'value',
'#value' => $stypes[$stype]['fields'][0],
);
$form['field'] = array(
'#type' => 'value',
'#value' => $stypes[$stype]['fields'][1],
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save'),
'#weight' => 10,
);
$form['#submit'][] = 'subscriptions_page_form_submit';
$form['footer'] = array(
'#type' => 'item',
'#description' => t('The master checkboxes in the left-most column turn the given subscription on or off. To turn a range of subscriptions on or off, click and Shift-click.') . '<br />' . t('Depending on the setup of the site, you may have additional options for active subscriptions.'),
'#weight' => 4,
);
$callback = $stypes[$stype]['page'];
if (!empty($callback) && function_exists($callback)) {
$form = $callback($form, isset($bulk_uids) ? 0 : $uid);
if (is_string($form)) {
$form = array(
'message' => array(
'#type' => 'item',
'#markup' => '<br /><br />' . $form,
),
);
}
}
//$form = function_exists($callback) ? $callback($account, $form) : NULL;
//drupal_add_link(array(
// 'rel' => 'alternate',
// 'type' => 'application/rss+xml',
// 'title' => t('!name Subscriptions', array('!name' => $user->name)),
// 'href' => url('subscriptions/feed'),
//));
drupal_set_title(empty($account->name) ? t('Subscriptions') : format_username($account));
return $form;
}