Last updated August 26, 2009. Created by add1sun on April 6, 2007.
Edited by bekasu, deepak21. Log in to edit this page.

Here is the code to add next, previous buttons to acidfree images. The images are ordered according to weightings. Place the code in template.php in your theme directory. (I know, I know, i'm supposed to use joins...). It works for both images and videos in acid free.

<?php
function next_prev_acidfree($current_nid, $label, $class) {
   
# get its parent
   
$query = db_query("SELECT parent FROM `acidfree_hierarchy` WHERE child = $current_nid;");
   
$parent = db_result($query);
     
# root gallery
   
if ($parent == -1) {
         
$arr ['parent'] = l("Photo Gallery", 'acidfree', array("title" => $label, "class" => $class));
      }else {
         
# Get the parent
         
$query = db_query("SELECT title FROM `node` WHERE nid = $parent;");
         
$parent_title = db_result($query);
         
$arr ['parent'] = l($parent_title, 'node/'.$parent, array("title" => $label, "class" => $class));
      }
   
# Get all the other photos videos that have the same parent
      //$sql = "SELECT n.nid, n.title FROM {node} n INNER JOIN {term_node} t ON n.nid = t.nid ";
     
$sql = "SELECT a.aid, n.title, nid FROM {node} n, {acidfree} a, {acidfree_hierarchy} ah ".
             
" WHERE n.type='acidfree' AND n.nid = a.aid AND (a.class='photo' || a.class='video')".
             
" AND ah.parent = $parent AND ah.child=a.aid ".
             
" ORDER BY a.weight ASC, n.nid DESC";
     
$result = db_query($sql);
      if (!
db_num_rows($result)) {
       
$arr ['next'] = null;
       
$arr ['previous'] = null;
      } else {
          while (
$row = db_fetch_array($result)) {
              if (
$row['nid'] == $current_nid && $before) {
                 
$arr ['previous'] = l("< < Previous", "node/".$before['nid'], array("title" => $label, "class" => $class));
              }
              if (
$before['nid'] == $current_nid) {
                 
$arr ['next'] = l("Next > >", "node/".$row['nid'], array("title" => $label, "class" => $class));
              }
             
$before = $row;
          }
      }
      return
$arr;
}
function
phptemplate_display_next_previous($node) {
   
$arr = next_prev_acidfree($node->nid, 'Navigation', 'test');
     
//echo $previous . " | " . $next ."";
   
$output .= "<table class='acidfree-next-previous'>";
   
$output .= "<tr>";
   
$output .= "<td class='acidfree-previous'>".$arr['previous']."</td>";
   
$output .= "<td class='acidfree-parent'>".$arr['parent']."</td>";
   
$output .= "<td class='acidfree-next'>".$arr['next']."</td>";
   
$output . "</tr>";
   
$output .= "</table>";
    return
$output;
}
function
phptemplate_acidfree_print_full_photo(&$node) {
    if (!
$node->small)
        return
'';
   
$output .= acidfree_pager_creator($node);
   
$output .= phptemplate_display_next_previous($node);
   
$output .= "<div class='acidfree-full'>";
   
$largeurl = _acidfree_get_large_url($node);
    if (!
$largeurl) {
       
$output .= theme('image', _acidfree_get_small_url($node),
               
$node->title, $node->title, NULL, false);
    } else {
       
$output .= "<a href='"._acidfree_get_large_url($node)."'>".
           
theme('image', _acidfree_get_small_url($node),
                   
$node->title, $node->title, NULL, false).
           
"</a>";
    }
   
$output .= "</div><div class='acidfree-body'>{$node->body}</div>";
    if (
variable_get('acidfree_show_exif_data', false)) {
       
$output .= theme('acidfree_exif_data', $node);
    }
    return
$output;
}
function
phptemplate_acidfree_print_full_video(&$node) {
    if (!
$node->large)
        return
'';
   
// get the pager
   
$output = acidfree_pager_creator($node);
   
$output .= phptemplate_display_next_previous($node);
   
$id = $node->nid;
   
$name = $node->title;
   
// icon link to the full size video
   
$full_video = _acidfree_get_large_url($node);
   
$output .= "<a href='$full_video'>".t('download video').'</a><br/>';
   
$ext = pathinfo(_acidfree_get_large_path($node), PATHINFO_EXTENSION);
    switch (
$ext) {
    case
'rm':
       
$type = 'realmedia';
        break;
    case
'mp4':
    case
'mov':
       
$type = 'quicktime';
        break;
    default:
       
$type = 'windowsmedia';
        break;
    }
   
$finfo = image_get_info(_acidfree_get_small_path($node, true));
   
$node->videoy = $finfo['height'];
   
$node->videox = $finfo['width'];
   
$output .= acidfree_call("theme_video_{$type}_control",Array(&$node));
   
$output .= "<div class='acidfree-body'>{$node->body}</div>\n";
    return
$output;
}
?>

code ..............................

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.