Skip to Content

İçerik Türlerini CCK ile Genişletmek

onur serkan, Sal, 14/10/2008 - 00:35 tarihinde.

Drupal'de tüm içerik türleri ortak düğüm altyapısını kullanırlar. Dolayısıyla oluşturduğunuz yeni içerik türü de bu düğüm altyapısına sahip olacak. Bir başka deyişle başlangıç olarak elinizde sadece düğüm adı ve düz bir metin girebileceğiniz basit bir içerik şablonu var (kitap adı ve kitap tanıtım yazısı gibi). İçerik türünüze yeni veri alanları ekleyerek geliştirmek istiyorsanız, Content Construction Kit (CCK) eklenti grubunu kurmanız gerekiyor. CCK eklenti grubu ana eklenti olan Content'in yanı sıra metin ve sayı alanları, seçim kutuları, kullanıcı ve içerik referansları sunan Number, Text, Option Widgets, Node ve User Reference gibi eklentilerle geliyor. Bunlara ek olarak drupal.org eklenti sayfasında CCK kategorisinden indirebileceğiniz diğer birçok eklenti ile içerik türünüze ekleyecek yeni veri alanları elde edebilirsiniz.

CCK'nın nimetleri

Özetle, CCK standart düğüm altyapısının üzerine yeni veri alanları ekleyerek kompleks içerik türleri oluşturmanızı sağlıyor. Tek bir eklenti ile farklı gereksinimleri olan kitap tanıtımı, dizi-film tanıtımı, ürün tanıtımı, yazılım tanıtımı, site tanıtımı, müzik grupları tanıtımları, şiir, dilekçe ve yemek tarifi gibi çok farklı içerik türleri oluşturmanız mümkün. Bazı CMS'lerde tüm bu içerik türleri için ayrı eklentiler kullanmanız gerektiğini düşünürseniz Drupal'in CCK ile size sunduğu esnekliği çok daha iyi kavrayabilirsiniz.

Bu anlatımda kullandığımız kitap tanıtımı için kitabın yazıldığı dili seçebileceğimiz bir dil listesi eklemek istiyoruz. Bunun için herşeyden önce CCK eklenti grubunu kurup, içeriğindeki Content, Text ve Option Widgets eklentilerini etkinleştirmeliyiz (bkz. Eklenti ve Tema Kurulumu). Sonrasında ise Yönet › İçerik yönetimi › İçerik Türleri (admin/content/types) sayfasına giderek yeni oluşturduğumuz Kitap Tanıtımı içerik türünü bularak "manage fields" linkine tıklayacağız.

Açılan sayfada içerik türündeki mevcut alanların (ör: Kitap Adı, Menü ayarları, Tanıtım Yazısı) sıralanabilir bir listesi ve yeni alan ekleyebilmenizi sağlayan bir araç bulunuyor. Burada Dil alanı için aşağıdaki ayarları yapıyor ve "Kaydet"e tıklıyoruz.

CCK alanı ekleme

Bir sonraki sayfada eklediğimiz CCK alanı ile ilgili detayları girmemiz gerekiyor. Buradaki ayarlar eklenilen CCK alanının türüne göre değişiklik gösterebilir. Yardım metni alanına "Kitabın yazıldığı dili listeden seçiniz" şeklinde bir açıklama girip, Genel Ayarlar bölümünden bu alanı "Zorunlu" olarak işaretliyoruz. Böylece kitap tanıtımları yazılırken Dil seçimi zorunlu hale gelecek. "Number of Values" olarak "1" değerini seçiyoruz ki her kitap için sadece bir adet dil seçilebilsin. Diğer ayarları olduğu gibi bırakıp son olarak "Allowed Values List" (izin verilen değerler) kutusuna kullanıcılara sunacağımız dil seçeneklerini her satıra bir adet gelecek şekilde yazıyoruz. Örnek:

en|İngilizce
tr|Türkçe
de|Almanca
fr|Fransızca

Tüm ayarları girdikten sonra "Save field settings" düğmesine tıklıyor ve ayarlarımızı kaydediyoruz. Tekrar CCK alanı ekleme sayfasına döndüğümüzde istersek içerik alanlarının sırasını da değiştirebiliriz.

CCK Alanlarını Sıralama

Artık yeni özel içerik türümüz hazır sayılır. Kalan birkaç düzenlemeyi yapmadan önce yeni oluşturduğumuz içerik türüne ait bir içerik ekleyelim. Bunun için içerik ekleme sayfasına gidiyor ve yeni eklediğimiz içerik türünü seçiyoruz. Ve karşımıza Kitap Adı ve Tanıtım Yazısı ile birlikte bir de Dil seçim menüsü çıkıyor!

CCK seçim

İçerik bilgilerimizi girip kitap dilini de Türkçe olarak seçtik (içerik ekleme konusunda detaylı anlatım için bkz. Sitenize İçerik Ekleme). İçeriğimizi kaydettiğimizde, içerik türünü oluştururken belirtmiş olduğumuz "Yayında" ve "Anasayfaya Yükselt" seçenekleri sayesinde, içeriğimiz anasayfada aşağıdaki gibi yayınlanmış olacak. Gördüğünüz gibi Dil: Türkçe bilgisi de Tanıtım Yazısı'nın özetiyle birlikte sunulmuş durumda.

İçerik anasayfada

Dersimizi sonlandırmadan önce son bir-iki küçük ayar daha yapalım. Yukarıdaki resimde de gördüğüz gibi "Dil:" ve "Türkçe" ayrı satırlara yazılmış durumda. Bunları aynı satıra almak istiyoruz. Ayrıca kitaplara ait Dil bilgisinin özet görünümlerde değil de sadece kitap tanıtım sayfasında yani "devamını oku" linkine tıklayarak ulaşabileceğimiz tam düğüm görünümünde görüntülenmesini istiyoruz. Bu ayarları yapmak için Yönet › İçerik yönetimi › Kitap Tanıtımı › Düzenle › Display Fields (admin/content/node-type/kitap-tanitimi/display) sayfasına gidiyoruz ve Dil CCK alanı için aşağıdaki ayarları yapıyoruz:

  • Label: Inline (etiket ve değeri aynı satırda yaz. Ör: "Dil: Türkçe" gibi)
  • Teaser: Hidden (özet görünümde Dil alanını gizle)
  • Full Node: Varsayılan (tam düğüm görünümünde varsayılan ayar seçili)

Bu ayarları'da kaydettiğimizde artık anasayfada kitap tanıtımları yayınlanırken Dil bilgisini görünmezken, tam düğüm görünümlerinde aşağıdaki gibi Dil bilgisini tek satır halinde görebiliyor olacağız.

Tam düğüm görünümü

Son Söz
CCK gerçekten Drupal'e müthiş bir güç ve esneklik katıyor. Bu potansiyeli değerlendirebilmek ise sizin elinizde. CCK açık büfesinden yiyebildiğiniz kadar yiyin ;)

Can Çolpan (?), Sal, 26/01/2010 - 17:38 tarihinde.

Eklediğimiz dil alanı sitede default olarak görünmüyor. Kullanıcı girişi yapıldıktan sonra görünmekte. Ziyaretçilere yeni eklenen alanların görüntülenmesi için özel bir ayar varmı ? Anlatımı tekrar tekrar okudum gözümden kaçan bir nokta mı var diye ama bulamadım. Yardım edebilirseniz sevinirim.
Teşekkürler

onur serkan, Sal, 26/01/2010 - 21:03 tarihinde.

Sonraki CCK sürümlerinde CCK Field Permissions eklentisi yer alıyor; bu eklenti etkinse her alanın görüntüleme izinlerini ayrı ayrı ayarlamak gerekiyor.

kayakentli, Sal, 26/01/2010 - 22:13 tarihinde.

İnşallah bu ders çoklu dil ile karıştırılmaz.

Can Çolpan (?), Çrş, 27/01/2010 - 10:19 tarihinde.

Onur bey harikasınız !
CCK ile gelen tüm bağlı eklenti paketlerini yüklediğim için olmuş.
Yıllardır Joomla kullanıyorum.
Sayenizde Drupal ile ufkumuzu genişletip eklenti bileşen aramaktan kurtulacağız.
Emeklerinize sonsuz teşekkür ederim.

Kibbutz, Cmt, 06/02/2010 - 19:55 tarihinde.

elinize saglik cok guzel bi anlatim olmus

chelikolik, Per, 30/09/2010 - 23:00 tarihinde.

Dil seçiminde mesala, ingilizce'yi tıkladığımızda bütün ingilizce kitapların çıkmasını sağlayabilir miyiz? Aynı taxonomy eklentisi ile olduğu gibi yani.