function uc_discounts_admin_discounts_list in Ubercart Discounts (Alternative) 7.2
Generates admin page listing all saved discounts.
1 string reference to 'uc_discounts_admin_discounts_list'
- uc_discounts_menu in uc_discounts/
uc_discounts.module - Implements hook_menu().
File
- uc_discounts/
uc_discounts.admin.inc, line 11 - Admin forms and functions for uc_discounts module.
Code
function uc_discounts_admin_discounts_list() {
$search_params = array(
'name' => arg(4),
);
$header = array(
array(
'data' => t('Active'),
'field' => 'is_active',
),
array(
'data' => t('Name'),
'field' => 'name',
),
array(
'data' => t('Short Description'),
'field' => 'short_description',
),
array(
'data' => t('Qualifying Type'),
'field' => 'qualifying_type',
),
array(
'data' => t('Type'),
'field' => 'discount_type',
),
array(
'data' => t('Amount'),
'field' => 'discount_amount',
),
array(
'data' => t('Weight'),
'field' => 'weight',
),
array(
'data' => t('Created At'),
'field' => 'insert_timestamp',
'sort' => 'desc',
),
array(
'data' => t('Expires At'),
'field' => 'expiration',
),
array(
'data' => t('Operations'),
),
);
$select = db_select('uc_discounts', 'd')
->fields('d')
->extend('PagerDefault')
->limit(50)
->extend('TableSort')
->orderByHeader($header);
if (!empty($search_params['name'])) {
$name = '%' . $search_params['name'] . '%';
$select
->condition(db_or()
->condition('d.name', $name, 'LIKE')
->condition('d.description', $name, 'LIKE')
->condition('d.short_description', $name, 'LIKE'));
}
$result = $select
->execute()
->fetchAll();
$rows = array();
foreach ($result as $discount) {
//$total_use_count = (is_numeric($discount->total_use_count)) ? $discount->total_use_count : 0;
//$total_times_applied = (is_numeric($discount->total_times_applied)) ? $discount->total_times_applied : 0;
$operations = array(
l(t('usage'), 'admin/reports/uc_discounts/discount/' . $discount->discount_id),
l(t('edit'), 'admin/store/uc_discounts/edit/' . $discount->discount_id),
l(t('copy'), 'admin/store/uc_discounts/copy/' . $discount->discount_id),
l(t('delete'), 'admin/store/uc_discounts/delete/' . $discount->discount_id),
);
$rows[] = array(
'data' => array(
array(
'data' => $discount->is_active ? '✓' : 'X',
'class' => array(
$discount->is_active ? 'is_active' : 'is_inactive',
),
),
$discount->name,
$discount->short_description,
uc_discounts_qualifying_type_name($discount->qualifying_type),
uc_discounts_discount_type_name($discount->discount_type),
array(
'data' => uc_discounts_discount_amount_formatted($discount),
'class' => array(
'numeric',
),
),
array(
'data' => $discount->weight,
'class' => array(
'numeric',
),
),
array(
'data' => format_date($discount->insert_timestamp, 'short'),
'class' => array(
'date',
),
),
array(
'data' => $discount->has_expiration ? format_date($discount->expiration, 'short') : t('N/A'),
'class' => array(
'date',
),
),
array(
'data' => implode(' ', $operations),
'class' => array(
'operations',
),
),
),
);
}
if (empty($rows)) {
$rows[] = array(
'data' => array(
array(
'data' => t('No discounts.'),
'colspan' => count($header),
),
),
);
}
$output['content'] = array(
'search_form' => drupal_get_form('uc_discounts_admin_discounts_search_form', $search_params),
'list_table' => array(
'#markup' => theme('table', array(
'header' => $header,
'rows' => $rows,
'attributes' => array(
'class' => array(
'uc-discounts',
),
),
)),
),
'pager' => array(
'#theme' => 'pager',
'#weight' => 5,
),
);
return $output;
}