mediamosa_maintenance_browse_revision_form()Show listing of the revisions (of our nodes).
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;
}
?>