uc_roles.admin.inc in Ubercart 7.3
Same filename and directory in other branches
Roles administration menu items.
File
uc_roles/uc_roles.admin.incView source
<?php
/**
* @file
* Roles administration menu items.
*/
/**
* Creates the header for the table/pager.
*/
function _uc_roles_expiration_header() {
return array(
array(
'data' => t('Username'),
'field' => 'u.name',
),
array(
'data' => t('Role'),
'field' => 'e.rid',
),
array(
'data' => t('Expiration date'),
'field' => 'e.expiration',
'sort' => 'asc',
),
array(
'data' => t('Operations'),
'colspan' => 2,
),
);
}
/**
* Menu callback for viewing expirations.
*/
function uc_roles_expiration($form, &$form_state) {
// Create the header for the pager.
$header = _uc_roles_expiration_header();
// Grab all the info to build the pager.
$query = db_select('uc_roles_expirations', 'e')
->extend('PagerDefault')
->extend('TableSort')
->fields('e')
->limit(50)
->orderByHeader($header);
$query
->join('users', 'u', 'e.uid = u.uid');
$query
->fields('u');
$result = $query
->execute();
// Stick the expirations into the form.
foreach ($result as $row) {
$account = user_load($row->uid);
$name = check_plain(format_username($account));
$form['name'][$row->uid . ' ' . $row->rid] = array(
'#theme' => 'username',
'#account' => $account,
'#name' => $name,
);
$form['role'][$row->uid . ' ' . $row->rid] = array(
'#markup' => check_plain(_uc_roles_get_name($row->rid)),
);
$form['expiration'][$row->uid . ' ' . $row->rid] = array(
'#markup' => format_date($row->expiration, 'short'),
);
$form['edit'][$row->uid . ' ' . $row->rid] = array(
'#markup' => l(t('edit'), 'user/' . $row->uid . '/edit', array(
'fragment' => 'role-expiration-' . $row->rid,
'query' => array(
'destination' => 'admin/people/expiration',
),
)),
);
$form['delete'][$row->uid . ' ' . $row->rid] = array(
'#markup' => l(t('delete'), 'admin/people/expiration/delete/' . $row->uid . '/' . $row->rid),
);
}
return $form;
}
/**
* Themes user role expiration page.
*
* @param $variables
* An associative array containing:
* - form: A render element representing the form.
*
* @ingroup themeable
*/
function theme_uc_roles_expiration($variables) {
$form = $variables['form'];
$header = _uc_roles_expiration_header();
$rows = array();
if (isset($form['name'])) {
foreach (element_children($form['name']) as $key) {
$rows[] = array(
drupal_render($form['name'][$key]),
drupal_render($form['role'][$key]),
drupal_render($form['expiration'][$key]),
drupal_render($form['edit'][$key]),
drupal_render($form['delete'][$key]),
);
}
}
$output = theme('table', array(
'header' => $header,
'rows' => $rows,
'empty' => t('No expirations set to occur'),
));
$output .= theme('pager');
$output .= drupal_render_children($form);
return $output;
}
/**
* Form builder for role deletions.
*
* @see uc_roles_deletion_form_submit()
* @ingroup forms
*/
function uc_roles_deletion_form($form, &$form_state, $account, $rid) {
$expiration = db_query("SELECT expiration FROM {uc_roles_expirations} WHERE uid = :uid AND rid = :rid", array(
':uid' => $account->uid,
':rid' => $rid,
))
->fetchField();
if ($expiration) {
$role_name = _uc_roles_get_name($rid);
$form['user'] = array(
'#type' => 'value',
'#value' => format_username($account),
);
$form['uid'] = array(
'#type' => 'value',
'#value' => $account->uid,
);
$form['role'] = array(
'#type' => 'value',
'#value' => $role_name,
);
$form['rid'] = array(
'#type' => 'value',
'#value' => $rid,
);
$form = confirm_form($form, t('Delete expiration of %role_name role for the user !user?', array(
'!user' => theme('username', array(
'account' => $account,
'name' => check_plain(format_username($account)),
'link_path' => 'user/' . $account->uid,
)),
'%role_name' => $role_name,
)), 'admin/people/expiration', t('Deleting the expiration will give !user privileges set by the %role_name role indefinitely unless manually removed.', array(
'!user' => theme('username', array(
'account' => $account,
'name' => check_plain(format_username($account)),
'link_path' => 'user/' . $account->uid,
)),
'%role_name' => $role_name,
)), t('Yes'), t('No'));
}
else {
$form['error'] = array(
'#markup' => t('Invalid user id or role id.'),
);
}
return $form;
}
/**
* Submission handler for uc_roles_deletion_form().
*
* @see uc_roles_deletion_form()
*/
function uc_roles_deletion_form_submit($form, &$form_state) {
uc_roles_delete(user_load($form_state['values']['uid']), $form_state['values']['rid']);
drupal_goto('admin/people/expiration');
}
Functions
Name | Description |
---|---|
theme_uc_roles_expiration | Themes user role expiration page. |
uc_roles_deletion_form | Form builder for role deletions. |
uc_roles_deletion_form_submit | Submission handler for uc_roles_deletion_form(). |
uc_roles_expiration | Menu callback for viewing expirations. |
_uc_roles_expiration_header | Creates the header for the table/pager. |