You are here

function biblio_admin_orphans_form in Bibliography Module 7.2

Same name and namespace in other branches
  1. 6.2 includes/biblio.admin.inc \biblio_admin_orphans_form()
  2. 6 biblio.admin.inc \biblio_admin_orphans_form()
  3. 7 includes/biblio.admin.inc \biblio_admin_orphans_form()

File

includes/biblio.admin.inc, line 2137

Code

function biblio_admin_orphans_form($form, &$form_state) {
  $authors = $orphans = $options = array();
  $base = variable_get('biblio_base', 'biblio');
  $query = db_select('biblio_contributor', 'bc');
  $active_cids = $query
    ->fields('bc', array(
    'cid',
  ))
    ->groupBy('cid')
    ->execute()
    ->fetchCol();
  $query = db_select('biblio_contributor_data', 'bcd');
  $all_cids = $query
    ->fields('bcd', array(
    'cid',
  ))
    ->groupBy('cid')
    ->execute()
    ->fetchCol();
  $orphans = array_diff($all_cids, $active_cids);
  if (!empty($orphans)) {
    $query = db_select('biblio_contributor_data', 'bcd')
      ->extend('PagerDefault')
      ->limit(25);
    $query
      ->fields('bcd')
      ->condition('cid', $orphans, 'IN')
      ->orderBy('lastname');
    $result = $query
      ->execute();

    //pager_query('SELECT * FROM {biblio_contributor_data} WHERE cid NOT IN (SELECT cid FROM {biblio_contributor} GROUP BY cid)', 50);
    $authors = array();
    foreach ($result as $author) {
      $options[$author->cid] = array(
        'author' => array(
          'data' => array(
            '#type' => 'link',
            '#title' => $author->name,
            '#href' => $base . '/authors/' . $author->cid . '/edit',
          ),
        ),
        'affiliation' => check_plain($author->affiliation),
      );
      $names[$author->cid] = $author->name;
    }
    $form['names'] = array(
      '#type' => 'hidden',
      '#value' => $names,
    );
  }
  $header = array(
    'author' => t('Author name'),
    'affiliation' => t('Author affiliation'),
  );

  //  if (!empty($authors)) {
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Delete'),
    '#disabled' => !count($options),
    '#submit' => array(
      'biblio_admin_orphans_form_submit',
    ),
  );
  $form['authors'] = array(
    '#type' => 'tableselect',
    '#header' => $header,
    '#options' => $options,
    '#empty' => t('No orphaned authors.'),
  );
  $form['pager'] = array(
    '#markup' => theme('pager'),
  );

  //  }
  return $form;
}