function theme_revisioning_revisions_summary in Revisioning 6.3
Same name and namespace in other branches
- 8 revisioning_theme.inc \theme_revisioning_revisions_summary()
- 6.4 revisioning_theme.inc \theme_revisioning_revisions_summary()
- 7 revisioning_theme.inc \theme_revisioning_revisions_summary()
Theme the supplied form.
Uses the following subthemes: o 'table_revisions', falling back to theme.inc/theme_table() if not defined o 'placeholder' (to display current revision status) o 'username' Uses the following style-classes (see revisioning.css) o 'table-revisions' o 'revision-current' and 'published' o 'revision-pending'
Parameters
$form:
Return value
unknown_type
File
- ./
revisioning_theme.inc, line 156 - Include file for revisioning.module; deals with all theming aspects.
Code
function theme_revisioning_revisions_summary($form) {
// Need node info, fortunately node_load() employs a cache so is efficient
$node = node_load($form['nid']['#value']);
$css_path = drupal_get_path('module', 'revisioning') . '/revisioning.css';
drupal_add_css($css_path, 'module', 'all', FALSE);
// Set up the table rows
$rows = array();
$revision_ids = element_children($form['info']);
$show_diff = count($revision_ids) >= 2 && module_exists('diff');
$show_taxonomy_terms = module_exists('taxonomy') && count(taxonomy_get_vocabularies()) > 0 && variable_get("show_taxonomy_terms", TRUE);
// Set up the table header
$header = array(
t('Revision'),
);
if ($show_diff) {
$header[] = array(
'data' => drupal_render($form['submit']),
'class' => 'form-submit',
);
}
if ($show_taxonomy_terms) {
$header[] = t('Term');
}
$header[] = t('Status');
$is_initial_unpublished_draft = !$node->status && count($revision_ids) == 1;
foreach ($revision_ids as $vid) {
$row = array();
// Revision info
$row[] = drupal_render($form['info'][$vid]);
// Compare checkbox
if ($show_diff) {
$row[] = array(
'data' => drupal_render($form['tickbox'][$vid]),
);
}
// Term
if ($show_taxonomy_terms) {
$row[] = filter_xss(drupal_render($form['term'][$vid]));
}
// Publication status
$is_current = $vid == $node->vid;
$is_pending = $vid > $node->vid || $is_initial_unpublished_draft;
if ($is_pending) {
$row[] = array(
'data' => t('in draft/pending publication'),
);
}
else {
$row[] = array(
'data' => $is_current && $node->status ? theme('placeholder', t('current revision (published)')) : t('archived'),
);
}
// Apply css
$row_style = $is_current ? 'revision-current' : ($is_pending ? 'revision-pending' : NULL);
if ($is_current && $node->status) {
$row_style .= ' published';
}
$rows[] = array(
'data' => $row,
'class' => $row_style,
);
}
$attributes = array(
'class' => 'table-revisions',
);
$content = theme(array(
'table_revisions',
'table',
), $header, $rows, $attributes, $caption = NULL);
$submenu_links = _revisioning_generate_node_links_according_to_permissions($node);
return theme(array(
'revisions_summary',
), $submenu_links, $content) . drupal_render($form);
}