/[drupal]/contributions/modules/revisioning/revisioning.module
ViewVC logotype

Diff of /contributions/modules/revisioning/revisioning.module

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1.2.2, Sun Mar 29 22:30:40 2009 UTC revision 1.1.2.3, Wed Apr 1 03:32:57 2009 UTC
# Line 1  Line 1 
1  <?php  <?php
2  // $Id: revisioning.module,v 1.1.2.1 2009/03/25 23:22:47 rdeboer Exp $  // $Id: revisioning.module,v 1.1.2.2 2009/03/29 22:30:40 rdeboer Exp $
3    
4  /**  /**
5   * @file   * @file
# Line 152  function revisioning_form_alter(&$form, Line 152  function revisioning_form_alter(&$form,
152   * Implementation of hook_nodeapi().   * Implementation of hook_nodeapi().
153   */   */
154  function revisioning_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {  function revisioning_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
155      $args = arg();
156      // Only interested in URIs that start with "node/<nid>"
157      if ($args[0] != 'node' || !is_numeric($args[1])) {
158        return;
159      }
160    
161    switch ($op) {    switch ($op) {
162      case 'alter':      case 'alter':
163      case 'delete':      case 'delete':
# Line 169  function revisioning_nodeapi(&$node, $op Line 175  function revisioning_nodeapi(&$node, $op
175        return;        return;
176    
177      case 'view':      case 'view':
178        if (!$teaser) {        if (!$teaser) { // this test may be superfluous
179          _handle_view_op($node);          _handle_view_op($node);
180        }        }
181        return;        return;
182    }    }
183    if (end(arg()) == 'edit') {    if (end($args) == 'edit') {
184      if ($op == 'prepare') {      if ($op == 'prepare') {
185        $count = _number_of_revisions_newer_than($node->vid, $node->nid);        $count = _number_of_revisions_newer_than($node->vid, $node->nid);
186        if ($count == 1) {        if ($count == 1) {
# Line 553  function _get_all_revisions_for_node($ni Line 559  function _get_all_revisions_for_node($ni
559   *   nothing   *   nothing
560   */   */
561  function _handle_view_op($node) {  function _handle_view_op($node) {
562      $args = arg();
563    $access_view   = module_grants_node_revision_access('view revisions', $node);    $access_view   = module_grants_node_revision_access('view revisions', $node);
564    $access_edit   = module_grants_node_revision_access('edit revisions', $node);    $access_edit   = module_grants_node_revision_access('edit revisions', $node);
565    $access_delete = module_grants_node_revision_access('delete revisions', $node);    $access_delete = module_grants_node_revision_access('delete revisions', $node);
# Line 582  function _handle_view_op($node) { Line 589  function _handle_view_op($node) {
589                          '@date' => format_date($node->revision_timestamp, 'small')));                          '@date' => format_date($node->revision_timestamp, 'small')));
590    
591      // Add a link to the diff if we have Diff module installed.      // Add a link to the diff if we have Diff module installed.
592      if (module_exists('diff')) {      if (!$is_current && module_exists('diff')) {
593          $comparison_url = "node/$node->nid/revisions/view/";
594          // Make sure that latest of the two revisions is on the right
595        if ($is_pending) {        if ($is_pending) {
596          $diff_link = "node/$node->nid/revisions/view/$current_revision->vid/$node->vid";          $comparison_url .= "$current_revision->vid/$node->vid";
597        }        }
598        else {        else {
599          $diff_link = "node/$node->nid/revisions/view/$node->vid/$current_revision->vid";          $comparison_url .= "$node->vid/$current_revision->vid";
600        }        }
601        $links[] = l(t('Compare revisions'), $diff_link);        $links[] = l(t('Compare to current'), $comparison_url);
602      }      }
603    }    }
604    $base_url = "node/$node->nid/revisions/$node->vid";    $base_url = "node/$node->nid/revisions/$node->vid";
# Line 611  function _handle_view_op($node) { Line 620  function _handle_view_op($node) {
620      // Don't provide link to delete current -- node must point to a revision.      // Don't provide link to delete current -- node must point to a revision.
621      $links[] = l(t('Delete this revision'), "$base_url/delete");      $links[] = l(t('Delete this revision'), "$base_url/delete");
622    }    }
623    if ($access_view) {    if ($access_view && $args[2] == 'revisions') {
624        // Don't provide link to 'Show all revisions' when Revisions tab is available
625      $links[] = l(t('Show all revisions'), "node/$node->nid/revisions");      $links[] = l(t('Show all revisions'), "node/$node->nid/revisions");
626    }    }
627    
628    if ($message) {    if ($message) {
629        // @todo create a revisioning theme, see theme.inc for examples
630      drupal_set_message($message . theme('item_list', $links));      drupal_set_message($message . theme('item_list', $links));
631    }    }
632  }  }

Legend:
Removed from v.1.1.2.2  
changed lines
  Added in v.1.1.2.3

  ViewVC Help
Powered by ViewVC 1.1.2