Drupal

Drupal ücretsiz, açık kaynaklı bir içerik yönetim sistemi ya da içerik yönetim'e odaklı bir altyapı yazılımıdır. Modüler yapısı sayesinde, web uygulama çatısı, topluluk portalı, forum ya da blog motoru olarak da kullanılabilmektedir. 2000'li yılların ortalarında Drupal esneklik, genişleyebilirlik, yönetim kolaylığı ve etkin bir topluluğun desteği ile popülerlik kazanmıştır.

An itibarı ile (Mart 2014) W3Tech'e göre evrensel web sitelerinin %1,9'u drupal ile işletilmektedir. Kullanılan içerik yönetim sistemlerindeki piyasa payı ise %5,3 dür.

Drupal PHP programlama dili ile yazılmıştır. Bununla birlikte Drupal tabanlı bir web sitesinin kurulumu, geliştirilmesi ve bakım genellikle PHP programlama becerisi gerektirmemektedir.

Drupal içerik yönetim sistemi Unix, GNU/Linux, BSD türevleri, Solaris, Windows ve Mac OS X gibi işletim sistemleri başta olmak üzere, üzerinde PHP yorumlayıcı bulunan herhangi bir işletim sisteminde çalışabilmektedir. Apache, lighttpd ya da IIS gibi herhangi bir biçimde PHP ile eklemlenebilen bir Web sunucu yazılımı ve MySQL, PostgreSQL gibi bir veritabanı sunucuya gereksinim duyar.

Drupal The Onion, Ain't It Cool News, Spread Firefox, Ourmedia, KernelTrap, NewsBusters ve Defective by Design gibi birçok yüksek trafiğe sahip web sitesi tarafından kullanılmaktadır.

İlk olarak Dries Buytaert tarafından bulletin board system olarak geliştirilmiş ve Drupal 2001 yılında açık kaynak projesi olmuştur. İsmi daha sonra zamanla Drupal'e dönüşen Drop.org sitesinden gelir. Dries siteyi önce “dorp” (Hollandacada “köy”, topluluk yönüne vurgu için) olarak adlandırmak istedi ama alan adını alırken bir yazım hatası yaptı ve sonra da bu ismin kulağa daha hoş geldiğini düşündü.

Drupal'in basit bir katmanı veya "çekirdeği" (core) vardır. Bu katman Drupal'in temel özelliklerini oluşturmakla beraber ayrıca eklenebilir modül programlama olanağını da sağlar.

Drupal'in çekirdeğine dâhil edilmiş olan modüller kullanıcıların içerik ekleme, gözden geçirme ve içeriği sınıflandırma, arama yönetimi, yorum ekleme, forumlara katılma, anketlerde oy verme ve HTML bilgisine gerek duymadan ortak proje yazılımlarında çalışmaya olanak sağlar. Ayrıca çekirdek modüller kullanıcıların kişisel bilgilerini girebilecekleri, görüntülüyebileceği ve birbirleri ile ya da sitenin yöneticileriyle iletişim kurabilmelerine de olanak sağlar.

Drupal'in sürüm yönetim sistemi, ki bu da Drupal'in çekirdek bir özelliğidir, güncellenmiş içeriği, kimin güncellediğini, neyin güncellendiğini, hangi tarih ve saatte güncellemenin yapıldığını izler ve kayıt altına alır. Sistem kullanıcıların yaptıklarını güncellemeli daha önceki bir sürüme geri alabilecekleri loglama yapısı sunar.

Drupal'in içine gömülmüş olan çekirdek modüller ile site yöneticileri sitenin görünüşünü özel yapılmış temalar ile değiştirebilir, menü yapılarını değiştirebilir ve kullanıcıların kendi dillerinde siteyi sunabilirler. Drupal'in çekirdeği yöneticilere ayrıca başka sitelere RSS yayını yapmayı ve başka sitelerden RSS yayını almasını sağlar.

Diğer çekirdek modüller kullanıcı kaydını ve yöneticilerin kullanıcılara kullanıcı rollerini tanımlamalarını, kullanıcılara sitedeki bazı özellikleri kullanabilmeleri için hak tanımlamayı sağlar. Yöneticiler ayrıca ulaşım kurallarını tanımlar ve belirli kullanıcı isim, e-posta adresi ve IP adreslerine göre siteye erişimlerini engelleyebilirler.

Drupal'in çekirdeği ayrıca "Temiz URL" (URL alias) özelliğiyle Drupal'in kullanıcı dostu, kolay hatırlanan URL'lerinin otomatik ya da site yöneticisinin denetiminde oluşturulmasını sağlar. Örneğin "www.benimsitem.com/?q=node/432" yerine "www.benimsitem.com/urunler" şeklinde bir URL oluşturulabilir.

Yöneticiler birçok filtre ve içerik tipi oluşturabilir ve uygulayabilirler. Kullanıcılar ve yöneticiler sözü geçen çekirdek özellikleri PHP ya da HTML bilgisine gerek duymadan kullanabilirler.

Drupal'in modüler tasarımı, PHP bilgisine iye insanların modüller yazarak ek özellikler üretmelerine olanak sağlar. Resmi Drupal websitesi, Drupal kullanıcıları tarafından yazılmış binlerce bedava modül sunmaktadır.

e-ticaret sistemleri, iş akış yönetimi sistemleri, fotoğraf galerileri, organik gruplar, Google Naps, Amazon Items, e-posta listesi yönetimi ve CVS ile entegrasyon gibi alanlarda güçlü modüller bulunmaktadır.

Modüllerin işlevlerinin Drupal'e eklenebilmesi için Drupal, çekirdek ve modülleri "kanca (hook)" veya callbacks denen bir sistem ile entegre eder. Drupal çekirdeği SQL injection gibi genel güvenlik sorunlarına karşı da güvenlik sağlar.

Drupal için yazılan temalar genelde PHPTemplate motoru ya da XTemplate motoru ile yazılır. Daha önceki şablonlar PHP'nin içine doğrudan kodlanmakta idi.

Drupal'in daha önceki sürümlerinin tema sistemi Mambo, Joomla! ve Plone ürünlerine göre çok daha karmaşık olduğu ve tasarım tabanlı olmadığı için çok eleştirildi.. Sonuç olarak PHPTemplate ve XTemplate motorları bu sorunu çözmek için kullanıldı.