Previous Next Api İle Önceki Sonraki Sayfa Yapımı
Selamlar;
Daha evvel böyle bir ders hazırlayacağım konusunda sözüm vardı Hunanka'ya ama fırsat bulup da bir türlü hayata geçiremedim. Yapacağımız şey previous next api eklentisi ile dilediğimiz şekilde görünecek bir önceki sonraki sayfa bloğu hazırlamak ve bunu dilediğimiz herhangi bir konumda göstererek kullanıcılara bir çeşit rahatlık sağlamak. Bunun yanısıra hazırlayacağımız blokta herhangi bir kod bilgisine ihtiyaç duymadan dilediğimiz özelleştirmeleri de yapabileceğiz.
Öncelikler drupal.org sitesinden Bu eklentiyi indirmek ve sites/all/modules klasörüne atarak eklentilerden aktif hale getirmek. Eklenti beraberinde aktifleştirilebilecek 2 alt eklenti getirmekte ancak biz prev/next yazanı aktifleştireceğiz ve sitemizde Token'ın kurulu olması bize dilediğimiz görünümü sağlamak için avantaj sağlayacak. Eklentiyi kurduktan sonra /admin/settings/prev_next/general adresine girip ayarlarını oluşturacağız.
Batch size: * seçeneğinde görünen sayı eklenti yeni kurulduğu için dizinde olmayan düğümlerin cron çalıştırıldıkça kaç adet olarak eleneceğini seçmenize yarar. Buna dokunmamanınızı öneririm çok kasmanın alemi yok. Çok sayıda içeriğiniz varsa cronu bir kaç üst üste çalıştırmak işinizi görecektir.
Bloklar: * seçeneği kaç adet blok oluşturmak istediğiniz ile alakalıdır. Tüm içerikler için tek bir "önceki sonraki " oluşturabileceğiniz gibi mesela "makale" türündeki içerikler için ayrı "sayfa" türündeki içindekiler için ayrı blok oluşturabilirsiniz. Bu durumda blok sayısını buna göre ayarlamalısınız.
İçerik türleri setinin hemen altında dediğim işlemleri yapacaksınız, yani hangi içerikler için blok oluşturulacak, ve bu blok neler ihtiva edecek. Ben burda sadece "article" için nasıl oluşturacağımızı anlatayım. Article tıklayıp "include" tikini işaretleyin." Indexing criteria:" altındaki seçmeli listeden dilediğinizi seçin ben "Oluşturulma Tarihi" seçiyorum. "Only nodes with same content type" tikini işaretlediğiniz zamansa bir articleda iseniz sonraki ve önceki içerikler de articledan alınır. Eğer seçmezseni bloğun içine dahil ettiğiniz diğer içerikler de oluşturulma tarihine göre sıralanır ve söz gelimi bir article içinden bir statik sayfa yapısına da geçiş yapmanız mümkün olacaktır.
Bu ayarları yaptıktan sonra kaydet deyip burdaki işimizi noktalıyoruz. Bloklardan oluşturulmuş bu yeni bloğumuzun ayarlarına gittiğimiz zaman blok ayarlarında 2 yeni seçenek göreceğiz: Previous Node ve Next Node diye. Önceki ve sonraki diye yazıyor olması gereklidir de bu çok basit bir sayfalandırma olacağından bunu değiştirmek için değiştirme şablonlarını kullanacağız. Diyelim ki Her içeriğimizin içinde bir resim alanı var ve biz bu resim alanını başlıkla beraber önceki-sonraki şeklinde göstermek istiyoruz. Resim alanımızın adının main_image olduğunu varsayıyorum zaten siz sizinkini değiştirme şablonlarından bulabilirsiniz, ben bendekileri kullanacağım. Previous node Link Text kutucuğuna şunu yazalım
<div class="onceki">[field_main_image-filefield-view]<a href="[node-url]">[title]</a></div>
Next Node kutucuğuna da şunu:
<div class="sonraki">[field_main_image-filefield-view]<a href="[node-url]">[title]</a></div>
Kaydedip bloğu istediğim bir yerde göstereceğim ve tüm içeriklerimin dizinlenmesinden sonra içerik türü article olan herhangi bir düğüme girdiğimde Önceki Sonraki diye sayfalar çıkacaktır karşıma ama tabii resmin hemen görünmesini beklerseniz hayal kırıklığına uğrarsınız çünkü genelde kimseler CCK Display Field kısmında Token alanına hiç uğramıyor çünkü genel olarak lazım olmaz diye düşünüyor. Şimdi article için CCK Display Field kısmına gireceğiz ve Token'larda resim fieldının görünürlüğünü ayarlayacağız. İmagecacheden oluşturduğumuz bir preset atayarak resmin tokenla kullanılması halinde nasıl yorumlanacağını seçeceğiz ve artık bloğumuz hazır olmuş olacak.
Temanıza göre css ile biçimlendirmek de size kalmış. O kutucuklara dilediğiniz kadar div ekleyip dilediğiniz biçimleri ortaya çıkarabilirsiniz. Yine değiştirme şablonlarını iyi kullanarak değişik kısımlar da gösterebilirsiniz.
Kolay gelsin.
Mehmet Uluç
delicebirfikir@mynet.com
Dipnot: Bu sitede tuhaf şeyler olmakta. Cevap yaz butonuna tıkladığımda tema dağılıyor. Galeri sayfası'nda tema yine dağılıyor. Ders ekleme kısmında yazı editörü yok. İlgililere duyurulur.
- Yeni yorum ekle
- 528 kez okundu

Ders için çok teşekkür ederim. Aynı tuaf şeyler benim başıma da geliyor. Malesef site ile ilgili yetkim sadece editörlük düzeyinde gerçi böyle büyük bir içeriğin adminliğini yapacak düzeyde bir bilgi birikimim yok. Onur Serkan'a site ile ilgili bir e-posta attım ancak hala yanıt vermedi.
Beklemedeyim...
CSS ler hakkında epeyce uğraştım...
Örnek CSS kodlarını burada paylaşmak istedim.
style.css dosyası için
.once {
border-top: 1px solid #eee;
border-left: 1px solid #eee;
border-right: 2px solid #ddd;
border-bottom: 2px solid #ddd;
padding: 0 5px 10px 5px;
margin: 0 5px 0 5px 0;
width: 330px;
background: #000000;
line-height:190%;
text-align: right;
}
.sonra {
border-top: 1px solid #eee;
border-left: 1px solid #eee;
border-right: 2px solid #ddd;
border-bottom: 2px solid #ddd;
padding: 0 25px 10px 5px;
margin: -36px 5px 0px 345px;
width: 330px;
background: #000000;
line-height:190%;
}
Ayrıca eklentinin dosyasında da küçük bir değişiklik yaptım...
Madde imlerinin çıkmaması için
Önceki sonraki Prev - next modülünde prev_next.module dosyasında şu düzeltme yapıldı.
375 }
386 $content .= '<div class="prev-next-link-next">' . l($link, "node/$n_nid", $options) . '</div>';
387 }
Bu satırlarda bulunan "li" kodu kaldırılıp yerine "div" kodu getirilmiştir.
Madde imleri yine cssden kaldırılabilirdi.
list-style: none;
}
Ah bunları ben bilsem, yapmaz mıyım... :) Şimdi düzeltiyorum... Çok teşekkürler ederim...