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

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));
}
// 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*/
/* 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">«</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">»</div>
</div>
<?php endif; ?>
<!-- İçerik sayfalama bitişi -->
<?php if (!$teaser) : ?>
<div class="aratmedya_pager_div_class">
<div class="aratmedya_pager_laquo_class">«</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">»</div>
</div>
<?php endif; ?>
<!-- İçerik sayfalama bitişi -->
![]()
Bu style.css ve diğer dosyalara eklediğimiz kodları değiştirip kullanarak daha farklı menüler oluşturabilirsiniz.
- Yeni yorum ekle
- 192 kez okundu
