drupal
Şurada drupal’in olmazsa olmaz modüllerinden bahsetmiştim. Bu yazımda ise drupal 5.x için bu modüllerin nasıl kullanılmaları gerektiğini anlatacağım.Hemen bir örnek üzerinden başlayalım. Basit bir okul gazetesi tasarladığımızı düşünelim. Gazete editörü bizden aşağıdaki dinamik içeriklerin devamlı girileceğini söyledi:* Haberler* Köşe yazıları* Magazin Haberlerive bu içerik türlerinin teaserlarının anasayfada izlenmesini istedi. Bu teaserlardan birine tıklandığındaysa o haberin (konunun vs.) görseli, içeriği ekrana basılacak olsun. Hemen işe koyulalım.1. Views, CCK, imagecache, imagefield modüllerini kurun ve kurduğunuz modüllerin gruplarındaki tüm alt modülleri aktif hale getirin (hepsi gerekli olmamasına rağmen detaylara giremeyeceğimizden hepsini işaretlemeniz en iyisi)2. Home › Administer › Content management > Content Types linkini izleyerek “Add content type” butonuna basın ve yeni bir içerik türü yaratın. İlkine Haberler, diğer ikisine de köşe yazıları ve magazin haberleri adını verin. Detaylar çok önemli değil
3. Home › Administer › Site building > Imagecache linkini izleyerek “add new preset” butonuna tıklayın. Buradan sırasıyla adları teaser_image ve preview_image olan iki standart yaratın. Her bir tür için istediğiniz scale ve crop özelliklerinden birini ya da birkaçını kullanabilirsiniz.
4. Home › Administer › Content management > Content Types linkini tekrar izleyin ve bu sefer Haberler içerik tipini editleyin ve add field butonuna basarak sırasıyla bir text ve bir image field yaratın. Text field için “content_teaser”, image field için “content_image” isimlerini verin, detaylar yine önemli değil.
5. Yukarıdaki adımı haberler dışındaki diğer content type’lar için de gerçekleştirin fakat bu kez add field dediğiniz zaman daha önceden hazırladığınız fieldların burada gözüktüğünü göreceksiniz. Yeni field yaratnmayın ve bu hazır field’ları content type’lara ekleyin.
6. Home › Administer › Site building > Administer views linki üzerinden add butonuna tıklayın.
* Yeni “view” inize bir isim verin* block sekmesinden Provide Block seçeneğini işaretleyin* View Type: List view olsun* Nodes per Block:4 olsunfields sekmesinden image:content_image ‘ni seçin ve add field deyin.* Açılan sayfada bu field option’ı için teaser_image ‘ı seçin.* Biri ‘Node:title’, diğeri ‘Text:content_teaser” olmak üzere iki field daha ekleyin.* Filters sekmesinden Add Filter seçenekleri arasından ‘node type’ ı seçin ve add filter butonuna bastıktan sonra açılan sayfada Operator: Is One of, Value: Haberler olacak sekilde ayarlayın.* Son Olarak Sort Criteria sekmesinde son içeriklerin gözükmesi için node:created time seçeneğini ekleyin ve açılan sayfada descending deyin.Gönül rahatlığıyla view’inizi kaydedebilirsiniz. Aynı view’i klonlayarak isimlerini değiştirebilir ve magazin haberleri ve köşe yazıları türlerine uyarlayabilirsiniz. Uyarlayın.7. Sıra geldi bu viewları ekrana bastırmaya.
* sitenizthemes altında garland klasörünü aynen kopyalayın ve gazete adını verin.* Home › Administer › Site configuration > Administration theme linkini ziyaret ederek default admin temasını garland olarak ayarlayın* Ardından Home › Administer › Site building > Themes linkini izleyerek gazete temasını default tema olarak ayarlayın.8. siteniz/themes/engines/phptemplate/phptemplate.engine dosyası içindeki:
function phptemplate_regions() {
return array(
‘left’ => t(‘left sidebar’),
‘right’ => t(‘right sidebar’),
‘content’ => t(‘content’),
‘header’ => t(‘header’),
‘footer’ => t(‘footer’)
);
}
fonksiyonuna birkaç satır daha ekleyerek yeni regionlar yaratın.Örneğin:
function phptemplate_regions() {
return array(
‘left’ => t(‘left sidebar’),
‘right’ => t(‘right sidebar’),
‘content’ => t(‘content’),
‘header’ => t(‘header’),
‘footer’ => t(‘footer’),
‘haber_teaser’ => t(‘haber teaser’),
‘kose_yazisi_teaser’ => t(‘kose yazisi teaser’),
‘magazin_teaser’ => t(‘magazin teaser’)
);
}
9. siteniz/themes/gazete/page.tpl.php dosyasını açarak bu yarattığınız regionları yerleştirme zamanı geldi. Bunu aşağıdaki gibi yapabilirsiniz.
<div class="haber_teaser"><?php if($haber_teaser){print $haber_teaser;}?></div>
Unutmayın, engine’de belirttiğiniz region isimleri neyse burada da değişken adı olarak aynı ismi kullanmalısınız. Biryerlere de şimdilik orada durmak üzere $content değişkenini bastırın ki blok ayarları gibi durumlarda bomboş sayfalar görmeyin. HTML dökümanınızın en altına $content değişkenini bastırabilirsiniz.
10. Home › Administer › Site building > Blocks linkini izleyin ve gerekli blok karşısına gerekli region’ı seçin, kaydedin.
11. Her bir content type için birtakım dummy içerik girin (bu arada firefox için dummy lipsum adlı add-on’u da tavsiye ederim). Şimdi logout olarak sitenizi izleyin. Girdiğiniz içeriklerin teaser’larının ekrana list item’lar içinde belirttiğiniz yerlerde basıldığını göreceksiniz. Birkaç css düzenlemesiyle ekranda durmasını istediğiniz gibi ayar yapabilirsiniz.12. siteniz/themes/gazete temanız altındaki page.tpl.php dosyanızı kopyalayın ve adını page-front.tpl.php olarak değiştirin. Böylece anasayfa ziyaret edildiğinde bu template dosyası ekrana bastırılacaktır. page.tpl.php dosyanızı ise içeriğe tıklandığında nasıl izlenmesini istiyorsanız öyle düzenleyin.
Sitenizi logout olarak ziyaret edin ve keyfini çıkarın.