Bir View'i Başka bir View İçinde Gösterme (Embed)
İstersek bir View'in sonuçlarını başka bir View içinde gösterebiliriz. Bu nerede işimize yarar derseniz, genelde çok sorulan bir sorunun yanıtı olabilir: Sitedeki yazarlar ve her yazarın son içeriğinin başlığı içeren bir köşe yazıları / köşe yazarları bloğu.
Nasıl Çalışıyor?
Birbiriyle bağlantılı çalışacak iki görünüme ihtiyacımız var. İlki - yazarlar görünümü - sitedeki köşe yazarı olarak belirlediğimiz üyeleri listeleyecek ve bunları diğer görünüme - içerik (köşe yazısı) görünümü - girdi olarak aktaracak. Bu ikinci görünüm de listede yer alan üyelerin son yazmış oldukları yazıları çekip üye bilgileriyle birlikte listeleyecek.
Hazırlanışı
Bunun için öncelikle içerik viewimizi hazırlarız. View'in ismi "son_yazilar" olsun.
View type: node seçtikten sonra;
Number of items to display: 1,
Use pager: no,
field olarak Node: title seçeriz.
Sort criteria olarak Node: Post date, descending seçeriz.
Argument olarak User:UID ekleriz...
Viewi böylece kaydederiz.
Daha sonraki aşamada Yazarlar viewimizi hazırlamaya başlıyoruz.
View type: user seçtikten sonra viewimizi istediğimiz gibi ayarlarız. Field olarak da yazarın adı, istenirse resmi ve bir de User:UID...
Daha sonra Theme: information linkine tıklayıp, User:UID için geçerli olan tema dosyasını tespit etmemiz gerek. Burada yazan tpl dosyalarının isimleri, dosyanın nereye etki edeceğini gösteriyor. Sadece User:UID fieldine etki eden dosya views-view-field--uid.tpl.php olarak bulunabilir.
views-view-field--uid.tpl.php adında boş bir dosya oluşturuyoruz. Dosyanın içine:
Bu kodda views_embed_view fonksiyonunda kullanılan $uid, viewe argument olarak gidiyor. İstenirse daha değişik argumentler gönderilebilir.
Bu oluşturduğumuz dosyayı, kullandığımız temanın klasorunun içine gönderiyoruz. Daha sonra dosyanın tanınması için yazarlar viewimizde theme:information kısmında "rescan template files"ı tıklıyoruz. Bundan sonra burada, kaydettiğimiz dosyanın isminin bolda dönüşmesi gerekir.
Tüm bu işlemleri yaptıktan sonra artık yazarlar blokunda, normalde User:UID gösterilmesi gereken yerde, yazarın son içeriği görülecektir.
Viewler hazırlanırken, yapılması gereken ve konuyla direk ilgisi olmayan normal ayarlar bu derste anlatılmamıştır. Tüm ayarların uygun şekilde yapılması gerekiyor.
- Yeni yorum ekle
- 2190 kez okundu

Teşeşkkürler. Bu işlemleri deneyen oldu mu?
Ben denedim :)
:) yazının sahibine sormak lazımdı dimi:)))
valla bir iş geldide buna benzer bişi var ondan sorayım dedim işi kabul etmeden önce bu kısmı doğrumu die:) Çok saol.
buradaki son yazılar bölümü yeni içerik türü mü oluyor...yani bir çeşit kategori mi oluyor?
benim amacım yazarlar çeşitli kategorilerde yazı yayınlayacaklar.bu kategoriler de forumlarda yer almaktadır. Amacım belirlediğim kişilerin ana sayfada blok olarak son yazılar ve istediğinde tüm yazıları diye görünmesi.
Teşekkürler etcetera9
ilk tpl.php dosyamı sayende çalıştırdım
Bu ders için çok teşekkür ederim. Fakat bu yazarlar bloğunu nasıl blok olarak ekleyeceğim ve yazarları nasıl atayacağım onu anlayamadım.
şurdaki sorunumu bununla düzeltebilirmiyim acaba http://drupaldersleri.org/forum/k2628.html
burda aciklanan yöntem D7 de de calisiyormu acaba deneyen oldumu.
ben localde kurmaya calisiyorum ama bir türlü tutturamadim.
Makale için çok teşekkür ederim. Denedim ve çalışıyor.
Peki bu bloğu hangi yazar en son yazdı ise bloğun en üstünde o olacak şekilde nasıl sıralatabiliriz ?
Ben bunu d7 de denedim calisiyor,ama üye olan olanlarida sayfada gösteriyor,
bunu nasil sadece makale yazanlari gösterir hale getirebiliriz.
bilgisi olan paylasirsa isime yarayacak.!!
peki 2 tane iç içe view kullanmak zorunda kalırsa ve ikisinde de aynı aynı arguman değerlerini aldıysak viewlerin birbirinden etkilenmemesi ne için ne yapmamız gerekiyor. sanırım override etmemiz gerekir ama nasıl yapacağımı tam anlamadım