Drupal temalar ve eklentiler ile geliştirilebilen bir içerik yönetim sistemidir (CMS). Çoğu özelliği diğer popüler CMS sistemleri ile benzer olsa da tema ve eklentiler ile ilgili bazı farklar bulunmaktadır. Yazılarımda zaman zaman bu farklara değiniyorum ancak hem bu konuları birarada toparlamak hem de genel anlamda bazı bilgiler vermek amacıyla bu yazıyı hazırlamaya karar verdim.
Öncelikle Drupal için hazırlanmış bütün tema ve eklentilere Drupal'in resmi sitesi olan http://www.drupal.org adresinden erişebilmeniz mümkündür. Temalar ile ilgili http://themegarden.org/, eklentilerle ilgili olarak da http://drupalmodules.com/ gibi başka siteler de bulunmaktadır. Bu siteler drupal'in resmi sitesinde bulunan bilgileri daha farklı şekilde yayınlayarak daha geniş bir bilgi ortamı oluştursalar da sonuçta sizi eklentilerin veya temaların drupal resmi sitesindeki proje sayfalarına yönlendirirler. Ücretli bazı tema ve eklentilerin kendi siteleri olsa da büyük çoğunluk Drupal.org sitesinden yayınlanır. Resmi site haricinde başka yerlerden eklenti paketi indirmeniz söz konusu olursa hem en güncel sürümünü indirip indirmediğinizi hem de ilgili sürümün kullandığınız Drupal sürümü için önerilip önerilmediğini takip edebilmeniz için ilgili paketin resmi Drupal sitesindeki proje sayfasını bulup ilgili paketi oradan indirmenizi şiddetle tavsiye ederim. Bu arada proje sayfalarını kolay bulmak için Drupal.org sitesinin arama fonksiyonuna alternatif olarak Google'dan faydalanabilirsiniz. Örneğin CCK eklentisinin proje sayfasını aramak için Drupal sitesindeki arama kutusuna CCK yazarak proje sayfasını bulamazsanız google'dan Drupal CCK yazarak aramayı deneyin. Ben genellikle proje sayfalarını bu şekilde daha kolay bulabiliyorum. Proje sayfaları genel olarak http://drupal.org/project/cck gibi [../project/eklenti adı] şeklinde adlandırılmaktadır.
Temalar da bir nevi eklentidir ve aynen eklentiler gibi kendi proje sayfaları ve versiyon kontrol sistemleri vardır. Bu nedenle eklenti ve tema paketleri için şimdi değineceğim konular hem eklentiler hem de temalar için aynıdır. Bir paket indirmek istediğimizde aşağıdaki gibi bir sayfa ile karşılaşırız.

Bu ekran görüntüsünü CCK eklentisinin proje sayfasından aldım. Görüldüğü gibi indirme linkleri iki ana bölüme ayrılmış. Bunun nedenini şöyle açıklayabiliriz. Drupal açık kaynak kodlu bir sistem olduğu için eklentileri dünyanın her yanından katkıda bulunan programcılar tarafından gerçekleştirilir. Bu anlamda Drupal sistemi için kod yazan yüzlerce programcı vardır. Bu kadar çok programcının bir arada rahat çalışabilmesi ve eklentilerin geliştirilme süreçlerinin daha iyi takip edilebilmesi için resmi Drupal sitesine bir versiyon kontrol sistemi entegre edilmiştir. Kısacası popüler eklentilere hemen her gün yeni kodlar eklenir ve paketler sürekli güncellendiği için hatalı kod içerme olasılığı yüksektir. Yeni kodlar eklendikçe çeşitli kontroller yapılır ve hataları düzeltilmiş *kararlı* paketler yayınlanır. Kararlı paketler test edilmiş ve çalışan paketlerdir. Bu paketler de ayrıca numaralandırılır. Yeşil renkliler kararlı paketler, kırmızı renkliler ise son güncellenen geliştirme paketleridir. Kırmızı renkli paketlerin hata içerme riski bulunmaktadır.
Paketler özel bir şekilde numaralandırılır. Numaralar tireler ile ayrılmıştır. Yukarıdaki örneğimize bakarak paketlerin numara sistemlerini inceleyelim:
| 6.x-2.0-rc10 | [6.x] Drupal 6 için [2.0] paketin 2.0'ıncı versiyonu [rc10] 10'uncu Release Candidate (Aday sürüm) |
| 5.x-1.9 | [5.x] Drupal 5 için [1.9] paketin 1.9'uncu versiyonu |
| 6.x-2.x-dev | [6.x] Drupal 6 için [2.x] paketin 2.x versiyonu [-dev] geliştirme paketi |
|
5.x-1.x-dev |
[6.x] Drupal 6 için [2.x] paketin 1.x versiyonu [-dev] geliştirme paketi |
Geliştirme paketlerini sonlarına eklenen -dev eklentisi ile ayırdetmek mümkündür. Bunun haricinde önerilen sürümler de geliştirme aşamasında olabilir. Bunu da versiyon numaralarının sonundaki -alpha -beta veya -rc eklerinden anlayabiliriz. Bu ekler geliştirme aşamasını takip etmek açısından faydalıdır. Genellikle -rc etiketli sürümlere yayınlanana kadar hata düzeltme haricinde yeni özellik eklenmez, arabirim değişikliği yapılmaz. Diğer etiketler daha önceki aşamalar için kullanılır. Bizi bu noktada ilgilendiren kısım -alpha, -beta veya -rc olarak etiketlenmiş paketler önerilen sürümler olsa bile kimi durumlarda hatalı çalışabilir. Herhangi bir ek içermeyen 5.x-1.9 sürümü de Drupal 5 için geliştirilmesi tamamlanmış sürümdür ama 5x-1.x-dev paketinden ve tarihinden de anlayabileceğimiz gibi geliştirilmesi hala devam etmektedir.
Bir de diğer bir örnek olarak başka bir eklenti olan Panels paketinin ekran görüntüsüne bakalım

Henüz kullanımda olmayan sürümlerin listesini almak için View all releases linkine tıklayabiliriz. Bazen bir özelliğin hangi pakette geldiğini anlamak veya dökümantasyonunu incelemek için eski sürümleri incelemek isteyebiliriz.
Paketlerin (tema ve eklentiler) yeni sürümleri çıktıkça Drupal bizi bu konuda uyaracaktır. Aşağıda Raporlar > Mevcut Güncellemeler sayfasına girdiğimizde göreceğimiz ekran görüntüsünü göreceksiniz.

Şu anda sitedeki bütün paketler güncel olduğu için hepsi yeşil görünüyor. Tüm bilgilerin ayrıntılı açıklamalarını ekran görüntüsü üzerinde yaptım. Eğer eklentilerden birinin sürümü eski ise ilgili satır kırmızı renke görüntülenir ve bizden paketin yeni sürümünün indirilmesi istenir.
Eklenti güncelleme kolay bir işlemdir. Eski dosyaların yedekleri alındıktan sonra eski dosyalar kaldırılır ve yenileri kopyalanır. Eğer eklenti veritabanı tabloları kullanıyorsa o zaman veritabanında da güncelleme yapılması gerekebilir. Bu durumda update.php dosyasının çalıştırılması [site.adı/update.php] ve adımların takip edilmesi yeterli olacaktır. Eğer eklentinin veritabanı güncellemesi gerektirip gerektirmediğinden emin değilsek yine de update.php dosyasını çalıştırmamız faydalı olacaktır. Veritabanı güncellemesi gerekmese bile update.php dosyasının çalıştırılmasının bir zararı olmaz. Bu konu ile daha detaylı bir yazıyı sitede eklenti güncellemesi yaparken ekleyeceğim.