You are here

function regcode_admin_list in Registration codes 5.3

Same name and namespace in other branches
  1. 6.2 regcode.admin.php \regcode_admin_list()
  2. 6 regcode.admin.php \regcode_admin_list()
  3. 7.2 regcode.admin.inc \regcode_admin_list()
  4. 7 regcode.admin.php \regcode_admin_list()

Return the code list page content with(in) the according filter form

Return value

The settings form.

1 string reference to 'regcode_admin_list'
regcode_menu in ./regcode.module
Define menu items and page callbacks.

File

./regcode_admin.inc.php, line 126
regcode_admin.inc.php contains the top-level logic for the administration pages for the registration-code module

Code

function regcode_admin_list() {

  // get usable filter fields and operands
  $fields = regcode_get_fields(TRUE);
  $operands = regcode_get_filter_operands();

  // retrieve & check user input values
  $order = db_escape_string($_REQUEST['order']);

  // check_plain( $_REQUEST['sort'] ),
  $sort = db_escape_string($_REQUEST['sort']);
  $filter_field = db_escape_string($_REQUEST['filter_field']);
  $filter_operand = db_escape_string($_REQUEST['filter_operand']);
  $filter_data = db_escape_string($_REQUEST['filter_data']);

  // set query options
  $options = array(
    'pager' => $pager_id = 1,
    'limit' => $pager_max = 25,
  );
  if ($filter_field) {
    $options['filter_field'] = $filter_field;
  }
  if ($filter_operand) {
    $options['filter_operand'] = $filter_operand;
  }
  if ($filter_data) {
    $options['filter_data'] = $filter_data;
  }
  if ($order) {
    $options['order'] = regcode_get_field_key($order);
  }

  // $order;
  if ($sort) {
    $options['sort'] = $sort;
  }

  // get code list
  $codes = regcode_get_codes($options);
  if (empty($codes)) {
    $codes = array();
  }

  // prepare table rows for display
  foreach ($codes as $code) {
    $code['u.name'] = l($code['u.name'], 'user/' . $code['c.uid']);
    unset($code['c.uid']);
    unset($code['c.rid']);
    $code['c.created'] = $code['c.created'] ? format_date($code['c.created'], 'format_short') : '';
    $code['c.used'] = $code['c.used'] ? format_date($code['c.used'], 'format_short') : '';
    $code['c.expire'] = $code['c.expire'] ? format_date($code['c.expire'], 'format_short') : '';
    $code['c.revoke'] = $code['c.revoke'] ? format_date($code['c.revoke'], 'format_short') : '';
    $rows[]['data'] = $code;
  }

  // prepare table header
  if (empty($rows[0]['data'])) {
    $rows[0]['data'] = array();
  }
  foreach ($rows[0]['data'] as $key => $value) {
    $header[] = array(
      'data' => t($fields[$key]),
      'field' => $key,
    );
  }

  // theme table and pager
  if (count($rows)) {
    $output .= theme('table', $header, $rows);
  }
  $output .= t('!numrows records', array(
    '!numrows' => $GLOBALS['pager_total_items'][$pager_id],
  ));
  $output .= theme('pager', NULL, $pager_max, $pager_id);

  // declare filter form elements
  $filter_fields = regcode_get_fields(TRUE, TRUE);
  asort($filter_fields);
  $form['#method'] = 'get';
  $form['filter_field'] = array(
    '#type' => 'select',
    '#title' => t("Show entries where"),
    '#default_value' => $filter_field,
    '#options' => $filter_fields,
  );
  $form['filter_operand'] = array(
    '#type' => 'select',
    '#default_value' => $filter_operand,
    '#options' => regcode_get_filter_operands(),
  );
  $form['filter_data'] = array(
    '#type' => 'textfield',
    '#default_value' => $filter_data,
  );
  $form['filter_submt'] = array(
    '#type' => 'submit',
    '#title' => t('Filter'),
    '#value' => 'submit',
  );
  $form['order'] = array(
    '#type' => 'hidden',
    '#value' => $order,
  );
  $form['sort'] = array(
    '#type' => 'hidden',
    '#value' => $sort,
  );
  $form['list'] = array(
    '#value' => $output,
  );
  return $form;
}