Как создать галерею с пагинацией...

Подобным способом можно выводить любое поле с множественными значениями прикрутив пагинацию...

function get_image_field($node) {
 
  /*Подключаем библиотеки, нужные и не нужные*/
  drupal_add_css(path_to_theme() . '/css/prettyPhoto.css');
  drupal_add_js(path_to_theme() . '/js/lib/jquery.prettyPhoto.js');
  drupal_add_js(path_to_theme() . '/js/init/gallery.pretty.init.js');
 
  $limit = 9; /*Это обычный лимит, лучше его выводить куда-то в админку. */
 
  /*Стандартная выборка из базы */
  $pager_default_query = db_select('field_data_field_images', 'n')
    ->fields('n', array('delta'))
    ->condition('n.entity_id', $node->nid)
    ->extend('PagerDefault')
    ->limit($limit); 
  $result = $pager_default_query->element(9)->execute();
 
  /* Тут по правильному нужно выводить объект
 в шаблон, а в нём уже собирать до кучи, но...*/
$image = '<div class="wrapper-images-for-gallery">';
  foreach ($result as $record) {
    $image .= '<a rel="GalleryPrettyPhoto[0]" class="photo-link"
 href="'.file_create_url($node->field_images['und'][$record->delta]['uri']).'">';
    $image .= '<div class="wrapper-image-item">';
 
    $image .= theme('image_style', array(
      'style_name' => 'for-gallery',
      'path' => $node->field_images['und'][$record->delta]['uri'],
      'alt' => $node->field_images['und'][$record->delta]['alt'],
      'title' => $node->field_images['und'][$record->delta]['title'],
    ));
    $image .= '</div>';
    $image .= '</a>';
  }
  $image .= '</div>';  
 /*Теперь лепим всё это до кучи в массив и возвращаем*/ 
$build = array();
  $build['image'] = array('#markup' => $image);
  $build['pager'] = array(
    '#weight' => 10,
    '#markup' => theme('pager',array('element' => 9)),
  );
  return $build;
}

То куда это приходит - просто рендерится.