mediamosa_maintenance_browse_revision_form

Versions
mediamosa-21
mediamosa_maintenance_browse_revision_form()

Show listing of the revisions (of our nodes).

Code

sites/all/modules/mediamosa/maintenance/browse/mediamosa_maintenance_browse_revision.inc, line 46

<?php
function mediamosa_maintenance_browse_revision_form() {

  // Include our css.
  drupal_add_css(drupal_get_path('module', 'mediamosa_maintenance') . '/mediamosa_maintenance.css');

  $header = array(
    array('data' => t('ID'), 'field' => 'mnr.vid', 'sort' => 'desc'),
    array('data' => t('User'), 'field' => 'nr.uid'),
    array('data' => t('Type'), 'field' => 'n.type'),
    array('data' => t('Title'), 'field' => 'n.title'),
    array('data' => t('Date'), 'field' => 'nr.timestamp', 'class' => 'mmdate'),
    array('data' => t('Type')),
  );

  $query = mediamosa_db::db_select(mediamosa_node_revision_db::TABLE_NAME, 'mnr')->extend('PagerDefault')->extend('TableSort');
  $query->join('node', 'n', 'n.nid = mnr.nid');
  $query->join('node_revision', 'nr', 'nr.nid = mnr.nid AND nr.vid = mnr.vid');
  $query->fields('mnr');
  $query->fields('nr');
  $query->fields('n');
  $query->orderByHeader($header);
  $query->limit(mediamosa_settings::maintenance_items_per_page());
  $result = $query->execute()->fetchAll();

  // Get the user ids.
  $types = $uids = array();
  foreach ($result as $revision) {
    $uids[$revision['uid']] = $revision['uid'];
    $types[$revision['type']] = $revision['type'];
  }

  // Now get the names.
  $names = mediamosa_db::db_select('users', 'u')
    ->fields('u', array('uid', 'name'))
    ->condition('uid', $uids, 'IN')
    ->execute()
    ->fetchAllKeyed();

  // Now get the node types.
  $node_types = mediamosa_db::db_select('node_type', 'nt')
    ->fields('nt', array('type', 'name'))
    ->condition('type', $types, 'IN')
    ->execute()
    ->fetchAllKeyed();

  $rows = array();

  // Build the rows.
  foreach ($result as $revision) {

    // Build link to object view.
    switch ($revision['type']) {
      case mediamosa_node::MEDIAMOSA_NODE_TYPE_SETTINGS:
        $link = l($node_types[$revision['type']], 'admin/mediamosa/config/global');
        break;
      case mediamosa_node::MEDIAMOSA_NODE_TYPE_APP:
        $link = l($node_types[$revision['type']], 'admin/mediamosa/config/app/' . $revision['nid']);
        break;
      case mediamosa_node::MEDIAMOSA_NODE_TYPE_SERVER:
        $link = l($node_types[$revision['type']], 'admin/mediamosa/config/server/' . $revision['nid']);
        break;
      case mediamosa_node::MEDIAMOSA_NODE_TYPE_TRANSCODE_PROFILE:
        $link = l($node_types[$revision['type']], 'admin/mediamosa/config/transcode_profile/' . $revision['nid']);
        break;
    }

    $rows[] = array('data' =>
      array(
        l($revision['vid'], strtr('admin/mediamosa/browse/revision/@node/@revision', array('@node' => $revision['nid'], '@revision' => $revision['vid']))),
        check_plain($names[$revision['uid']]),
        $link,
        check_plain($revision['title']),
        array('data' => theme('mediamosa_maintenance_date', array('timestamp' => $revision['timestamp'])), 'class' => 'mmdate'),
        'change'
      ),
    );
  }

  $form['pager_top'] = array('#theme' => 'pager');
  $form['table'] = array(
    '#theme' => 'table',
    '#header' => $header,
    '#rows' => $rows,
    '#attributes' => array('id' => 'admin-dblog'),
    '#empty' => t('There are no revisions.')
  );
  $form['pager_bottom'] = array('#theme' => 'pager');

  return $form;
}
?>