You are here

function _revisioning_generate_node_links_according_to_permissions in Revisioning 6.3

Same name and namespace in other branches
  1. 8 revisioning_theme.inc \_revisioning_generate_node_links_according_to_permissions()
  2. 6.4 revisioning_theme.inc \_revisioning_generate_node_links_according_to_permissions()
  3. 7 revisioning_theme.inc \_revisioning_generate_node_links_according_to_permissions()

Return an array of hyperlinks representing the operations the logged-in user is allowed to perform on the supplied node.

Parameters

$node:

$link_type: The type of link, e.g. MENU_IS_LOCAL_TASK, may affect the rendering via theme('menu_item_link'), if overridden (eg zen_theme_menu_item_link()).

Return value

array of themed hyperlinks

1 call to _revisioning_generate_node_links_according_to_permissions()
theme_revisioning_revisions_summary in ./revisioning_theme.inc
Theme the supplied form.

File

./revisioning_theme.inc, line 287
Include file for revisioning.module; deals with all theming aspects.

Code

function _revisioning_generate_node_links_according_to_permissions($node, $link_type = 0) {
  $nid = $node->nid;
  $links = array();
  if (_revisioning_node_revision_access('publish revisions', $node)) {
    $link['title'] = t('Publish');
    $link['href'] = "node/{$nid}/revisions/{$node->vid}/publish";

    //$link['localized_options']['query'] = drupal_get_destination();
    $links[] = $link;
  }
  elseif (_revisioning_node_revision_access('unpublish current revision', $node)) {
    $link['title'] = t('Unpublish current revision');
    $link['href'] = "node/{$nid}/unpublish";

    //$link['localized_options']['query'] = drupal_get_destination();
    $links[] = $link;
  }
  if (_revisioning_node_revision_access('delete archived revisions', $node)) {
    $num_archived = revisioning_get_number_of_archived_revisions($node);
    if ($num_archived > 0) {
      $link['title'] = t('Delete archived');
      $link['href'] = "node/{$nid}/revisions/delete-archived";
      $links[] = $link;
    }
  }
  if (_revisioning_node_revision_access('delete node', $node)) {
    $link['title'] = $node->num_revisions == 1 ? t('Delete') : ($node->num_revisions == 2 ? t('Delete both revisions') : t('Delete all @count revisions', array(
      '@count' => $node->num_revisions,
    )));
    $link['href'] = "node/{$nid}/delete";

    //$link['localized_options']['query'] = '';
    $links[] = $link;
  }
  $themed_links = array();
  foreach ($links as $link) {
    $link['type'] = $link_type;
    $themed_links[] = theme('menu_item_link', $link);
  }
  return $themed_links;
}