Skip to Content

İçerik başlıkları ile ileri geri menü yapımı

cihan kullanıcısının resmi
cihan, Cuma, 05/02/2010 - 16:26 tarihinde.

Bir eklenti ile drupal motorunu daha fazla zorlamadan içerik metinlerimizin altına bir önceki ve bir sonraki içeriklerin başlıklarından oluşan bir ileri geri navigasyon menü yapabiliriz. Bunun için template.php, node.icerik_turu.tpl.php ve style.css dosyalarına ufak kod blokları ekliyoruz.
Sıra ile aşağıdaki adımları takip ederek menünüzü oluşturabilirsiniz:

  • Aşağıdaki kod bölümünü kullandığınız temanın template.php dosyasının sonuna ekleyiniz.

// İçerik başlıkları ile ileri geri NAVİGASYON
// Ayrıntılı bilgi ve farklı örnekler için aratmedya.com.
//Bu kod bölümü Drupal Association tarafından hazırlanmış Cihan Arat tarafından uyarlanmıştır.
// Bu fonksiyon bölümünü kullandığınız temanın template.php dosyasının sonuna ekleyiniz.
function phptemplate_prev_next($current_node = NULL, $op = 'p') {
  // Node types to include in paging
  $node_types = array('webtasarim');

  if ($op == 'p') {
    $sql_op = '<';
    $order = 'DESC';
  }
  elseif ($op == 'n') {
    $sql_op = '>';
    $order = 'ASC';
  }
  else {
    return NULL;
  }

  $output = NULL;
  foreach($node_types as $type) {
    $quoted_types[] = "'" . $type . "'";
  }
  $sql = "SELECT nid, title FROM {node} n
    WHERE nid $sql_op %d
    AND type IN ("
. implode(',', $quoted_types) . ")
    AND status = 1
    ORDER BY nid $order
    LIMIT 1"
;
  $result = db_query($sql, $current_node->nid, $type);
  $data = db_fetch_object($result);
  if (!isset($data->nid) || !$data->nid) {
    return NULL;
  }
  return l($data->title, "node/$data->nid", array('html' => TRUE));
}

Buradan $node_types = array('webtasarim'); kısmında webtasarim içerik türünün adıdır. İleri geri menü olurturmak için hangi içerik türünü istiyorsanız onu yazınız.

  • Daha sonra aşağıdaki kod bölümünü temanızın style.css dosyasının sonuna ekleyiniz.

/*İçerik başlıkları ile ileri geri Navigasyon still kodları */
/* Bu kod bölümünü style.css dosyanıza yapıştırınız */
.aratmedya_pager_div_class {
 width: 100%;
 margin-top:5px;
 margin-bottom:15px;
 clear: both;
 display: block;
 text-align: center;
 line-height: 1.5em;
}
.aratmedya_pager_prev_class {
 display: block;
 float: left;
 text-align: right;
 width: 200px;
 white-space: normal;
 word-wrap: break-word;
 padding: 0;
}
.aratmedya_pager_div_class .aratmedya_pager_main_class {
 float: left;
 text-align: center;
 display: inline;
 padding: 0 1em 0 1em;
}
.aratmedya_pager_next_class {
 display: block;
 float: left;
 text-align: left;
 width: 200px;
 white-space: normal;
 word-wrap: break-word;
 padding: 0;
}
.aratmedya_pager_laquo_class {
 float: left;
 width: 10px;
}
.aratmedya_pager_raquo_class {
 float: right;
 width: 10px;
}
/*İçerik başlıkları ile ileri geri Navigasyon still kodları bitimi*/

  • Temanızdaki node.tpl.php veya node-içerik_turu.tpl.php sayfaları içinde aşağıdaki kodu bulun:

<?php print $content; ?>

  • Devamına aşağıdaki kodu ekleyiniz.

<!-- İçerik için sayfalama başlangıcı. Bu kodu node.tpl.php veya node-içerik_turu.tpl.php sayfalarından birine ekleyin -->
<?php if (!$teaser) : ?>
  <div class="aratmedya_pager_div_class">
    <div class="aratmedya_pager_laquo_class">&laquo;</div>
    <div class="aratmedya_pager_prev_class"> <?php print phptemplate_prev_next($node, 'p') ?> </div>
    <div class="aratmedya_pager_main_class"> | <a href="<?php print base_path() ?>">Anasayfa</a> | </div>
    <div class="aratmedya_pager_next_class"> <?php print phptemplate_prev_next($node, 'n') ?> </div>
    <div class="aratmedya_pager_raquo_class">&raquo;</div>
  </div>
<?php endif; ?>
<!-- İçerik sayfalama bitişi -->

2010-02-05_152320.jpg

Bu style.css ve diğer dosyalara eklediğimiz kodları değiştirip kullanarak daha farklı menüler oluşturabilirsiniz.