Navigace v galerii obrázků

Popis

Doplnění textové navigace do galerie obrázků modulu Image.

Jako základ bylo použito řešení Add a << first < previous next > last >> Pager to Image Nodes Within a Gallery doplněné o lokalizaci.

Postup

  1. Do suboru template.php používaného vzhledu přidejte funkci:
    /**
     * Image Gallery Pager
     */
    function custom_pager($current_nid, $class = NULL) {
      $tid = reset(array_keys(taxonomy_node_get_terms($current_nid)));
      $result = db_query(db_rewrite_sql('SELECT n.nid, n.title FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid = %s AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC, n.nid DESC'), $tid);
      while ($node = db_fetch_object($result)) {
        $nodes[++$i] = $node;
        if ($node->nid == $current_nid) $x = $i;
      }
      if($x > 1) {
        $output .= l(t('« first'), 'node/'. $nodes[1]->nid, array('title' => check_plain($nodes[1]->title), 'class' => $class), NULL, NULL, FALSE, TRUE);
        $output .= l(t('‹ previous'), 'node/'. $nodes[$x-1]->nid, array('title' => check_plain($nodes[$x-1]->title), 'class' => $class), NULL, NULL, FALSE, TRUE);
      }
      else {
        // not required
        // $output .= '<span class="">' . t(t('« first')) . ' </span>' . '<span class="">' . t('‹ previous') . ' </span>';
      }
      $output .= $x .' ('. $i .')';
      if($x < $i) {
        $output .= l(t('next ›'), 'node/'. $nodes[$x+1]->nid, array('title' => check_plain($nodes[$x+1]->title), 'class' => $class), NULL, NULL, FALSE, TRUE);
        $output .= l(t('last »'), 'node/'. $nodes[$i]->nid, array('title' => check_plain($nodes[$i]->title), 'class' => $class), NULL, NULL, FALSE, TRUE);
      }
      else {
        // not required
        // $output .= '<span class="">' . t(t('next ›')) . ' </span>' . '<span class="">' . t(t('last »')) . ' </span>';
      }
      return $output; 
    }
  2. Pokud v adresáři používaného vzhledu nemáte soubor node-image.tpl.php:
    • Zkopírujte např. soubor themes/garland/node.tpl.php do adresáře používaného vzhledu a přejmenujte jej na node-image.tpl.php.
  3. Do souboru node-image.tpl.php přidejte na vhodné místo (nejlépe před "obsah"):
    <!-- Image Gallery Pager -->
    <div class="pager">
      <?php if ($page != 0 && $terms) { print custom_pager($node->nid); } ?>
    </div>