You are here

function uc_file_admin_files_form_show_files in Ubercart 6.2

Same name and namespace in other branches
  1. 7.3 uc_file/uc_file.admin.inc \uc_file_admin_files_form_show_files()

Displays all files that may be purchased and downloaded for administration.

See also

uc_file_admin_files_form()

uc_file_admin_files_form_show_validate()

uc_file_admin_files_form_show_submit()

theme_uc_file_admin_files_form_show()

1 call to uc_file_admin_files_form_show_files()
uc_file_admin_files_form in uc_file/uc_file.admin.inc
Form builder for file products admin.

File

uc_file/uc_file.admin.inc, line 55
File administration menu items.

Code

function uc_file_admin_files_form_show_files($form_state) {
  $form['#tree'] = TRUE;
  $form['#header'] = array(
    array(),
    array(
      'data' => t('File'),
      'field' => 'f.filename',
      'sort' => 'asc',
    ),
    array(
      'data' => t('Product'),
      'field' => 'n.title',
    ),
    array(
      'data' => t('SKU'),
      'field' => 'fp.model',
    ),
  );

  // Create pager.
  $query = pager_query("SELECT n.nid, f.filename, n.title, fp.model, f.fid, pf.pfid FROM {uc_files} as f " . "LEFT JOIN {uc_file_products} as fp ON (f.fid = fp.fid) " . "LEFT JOIN {uc_product_features} as pf ON (fp.pfid = pf.pfid) " . "LEFT JOIN {node} as n ON (pf.nid = n.nid) " . tablesort_sql($form['#header']), UC_FILE_PAGER_SIZE, 0, "SELECT COUNT(*) FROM {uc_files}");

  // Create checkboxes for each file.
  $form['file_select'] = array(
    '#tree' => TRUE,
  );
  while ($file = db_fetch_object($query)) {
    $form['file_select'][$file->fid]['check'] = array(
      '#type' => 'checkbox',
    );
    $form['file_select'][$file->fid]['filename'] = array(
      '#value' => $file->filename,
    );
    $form['file_select'][$file->fid]['title'] = array(
      '#value' => $file->title,
    );
    $form['file_select'][$file->fid]['nid'] = array(
      '#value' => $file->nid,
    );
    $form['file_select'][$file->fid]['model'] = array(
      '#value' => $file->model,
    );
  }

  // Implement a Checkall / Uncheck all deal.
  $check_all = l(t('Check all'), "admin/store/products/files", array(
    'attributes' => array(
      'id' => 'uc_file_select_all',
    ),
    'fragment' => 'NULL',
  ));
  $uncheck_all = l(t('Uncheck all'), 'admin/store/products/files', array(
    'attributes' => array(
      'id' => 'uc_file_select_none',
    ),
    'fragment' => 'NULL',
  ));
  $form['uc_file_select'] = array(
    '#type' => 'markup',
    '#value' => $check_all . ' / ' . $uncheck_all,
  );
  $form['uc_file_action'] = array(
    '#type' => 'fieldset',
    '#title' => t('File options'),
    '#collapsible' => FALSE,
    '#collapsed' => FALSE,
  );

  // Set our default actions.
  $file_actions = array(
    'uc_file_upload' => t('Upload file'),
    'uc_file_delete' => t('Delete file(s)'),
  );

  // Check if any hook_file_action('info', $args) are implemented
  foreach (module_implements('file_action') as $module) {
    $name = $module . '_file_action';
    $result = $name('info', NULL);
    if (is_array($result)) {
      foreach ($result as $key => $action) {
        if ($key != 'uc_file_delete' && $key != 'uc_file_upload') {
          $file_actions[$key] = $action;
        }
      }
    }
  }
  $form['uc_file_action']['action'] = array(
    '#type' => 'select',
    '#title' => t('Action'),
    '#options' => $file_actions,
    '#prefix' => '<div class="duration">',
    '#suffix' => '</div>',
  );
  $form['uc_file_action']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Perform action'),
    '#prefix' => '<div class="duration">',
    '#suffix' => '</div>',
  );
  return $form;
}