Sihirli Hikaye için Drupal 7 Üzerine Yapılanlar

Halil İbrahim Özdemir

SihirliHikaye.com sitem için Drupal 7 üzerinde yaptığım tüm değişiklikleri uzun zamandır paylaşmayı düşünüyordum. Başka bir amaçla hazırladığım listeyi burada da paylaşayım istedim:

  1. Özelleşmiş bir görünüm için sıfırdan bir tema hazırlandı.
  2. Yazıların oluşma tarihlerini gösteren basit tarih alanı yerine yeni bir tarih gösterme sistemi yazıldı. Yeni sisteme göre; yazıların ne kadar süre önce yazıldığının gösterilmesi sağlandı. Ayrıca tarih kısmının -javascript ve ajax teknolojisi desteğiyle- anlık güncellenmesi sağlandı. (Aynı özellik yorum tarihlerine de eklendi.)
  3. Drupal’in terimler özelliğine müdahale edilip, normal hiçbir yazıya doğrudan eklenmeyen “Hikayeler ve Fıkralar” etiketleri için; tıklandığında bu etiketlerin alt etiketleri ile işaretlenmiş yazıların listelenmesi sağlandı. (Bu Drupal 6’da taxonomy/term/1/all yolu ile yapılabiliyordu.)
  4. Drupal’de dahili bulunan “Ekmek kırıntısı (Breadcrumb)” özelliğine müdahale edilerek site için özelleştirildi. (Örneğin bir fıkra açıldığında ekmek kırıntısı Ana Sayfa > Fıkralar > Karışık Fıkralar > {Yazı Başlığı} biçiminde oluyor. Birkaç yerde daha düzenlemeler mevcut.)
  5. Site menüsü için Drupal’de dahili bulunmayan menü simgeleri fonksiyonu yazıldı. Sitenin görselliği için menülere küçük simgeler eklendi.
  6. jQuery ve jQuery UI javascript kütüphaneleri son sürümlerine yükseltildi.
  7. Yorumların altında bulunan Html etiketleri açıklaması ve yorum yazan için websitesi alanları gereksiz görülüp kaldırıldı.
  8. Javascript ile site uyarılarını sağ alt tarafta gösterip zamanı gelince kaybolacak bir mesaj alanı oluşturuldu. (Bir yazı için oy verdiğinizde ya da Beğen/Beğenme seçeneklerinden birini işaretlediğinizde bu alanı görebilirsiniz.)
  9. Google ile arama eklentisi yazıldı. Site araması alanına yazılan kodu Google arama alanına da taşıyacak javascript kodu eklendi.
  10. Üyelerin siteye ekledikleri yazıları, yorumları ve beğendikleri, oyladıkları yazıları takip edebilmeleri sağlandı.
  11. Hikaye okurken bir sonraki ya da bir önceki hikayeye; fıkra okurken bir sonraki ya da önceki fıkraya gitmeyi sağlayan yazılar arası gezinti özelliği yazıldı. (Pagenavigation)
  12. Ziyaretçilerin siteden beklentileri tespit edilip, en çok ihtiyaç duyulan özellik olan “Kısa Fıkralar” özelliği hazırlandı. Siteye eklenen fıkra, kısa ise “Kısa Fıkralar” kısmına da eklenir.
  13. Drupal 7’nin “Besleme içeriği: Başlık artı özet” özelliği çalışmayınca SEO için yazılmış, yazı kısaltma özelliği ile rss’deki yazılar kısaltıldı.
  14. Drupal’de dahili bulunmayan etiket bulutu fonksiyonu yazıldı.
  15. Ziyaretçilerin siteden beklentileri tespit edilip, sitede arama yaparken yanlış yazılan kelimeleri önlemek için arama sonuçları sayfasına arama önerileri eklendi. (Şunu mu demek istediniz?)
  16. Üyelik formuna müdahale edildi. Ziyaretçiler üye olurken a’dan z’ye harfleri, 0’dan 9’a rakamları, “_” ve “-“ işaretlerini kullanabilirler. Üye adındaki karakter sayısı için alt (6) ve üst (32) sınır getirildi. (Sihirli Hikaye Joomla’dan Drupal’e geçtiğinden, Joomla üyelerinin aynı şifreleriyle giriş yapabilmesi için altyapı oluşturuldu.)
  17. Siteye reklam alabilmek, alınan reklamları yönetebilmek için bir reklam eklentisi yazıldı. Bu eklenti ile reklam içeriği, varsa reklam bağlantısı, reklamın ne zaman gösterilmeye başlayıp ne zaman yayından kalkacağı kontrol edilebiliyor.
  18. Drupal’de dahili bulunmayan bloklar (widgetler) için eklenti yazıldı. (yeni yazılar, çok okunan yazılar, rastgele yazılar, etiket bulutu, bizi takip edin) (Ayrıca kodu yazılmış fakat sitede çalıştırılmayan en çok yorumlananlar, en yüksek oy alanlar, en sevilenler.)
  19. Ucuz serverlerde mailin gönderilmemesi gibi bir problem yaşanabildiğinden; siteden yollanan mail formlarının kaydını tutan bir eklenti yazıldı.
  20. Google Analytics eklense de, bir de sayaç eklentisi yazıldı.
  21. Ajax ile güçlendirilmiş bir oylama eklentisi yazıldı. Ziyaretçilerin beğendikleri yazıya 5 yıldız üzerinden not verebilmeleri ya da sevip sevmediklerini işaretleyebilmeleri sağlandı. Kullanıcıların sevdikleri yazıları ve verdikleri oyları hesap sayfalarından takip edebilmeleri sağlandı. Herhangi bir ziyaretçinin sevmediği yazıları bloklarda görmemesi sağlandı. Ayrıca ziyaretçilerin yorumlar için de beğen/beğenme özelliği eklendi. Bu eklenti sitenin sıkça sorulan sorular bölümünde “Bu cevap sorununuzun çözümüne yardımcı oldu mu?” sorusunu cevaplamak için de kullanılabiliyor.
  22. Drupal’de dahili bulunan anket eklentisi hem görünüm hem kodlama açısından geliştirilip, kullanıcıların fikirlerini kolayca ifade edebilmeleri sağlandı. Ankete ajax desteği eklendi.
  23. Site joomla ile çalışırken Google, Bing, Yahoo, Yandex gibi arama motorlarının dizinlerine ekleyip henüz kaldırmadığı adres yapıları için de yönlendirme sağlayan bir yönlendirme eklentisi yazıldı.
  24. SEO ile ilgili Google makaleleri, çeşitli video eğitimler, e-kitaplar incelenerek ayrıntılı bir SEO eklentisi yazıldı.
  25. Sosyal sitelerin butonlarını, paylaşım bağlantılarını rahatça yönetecek bir eklenti yazıldı. Bu eklenti ile yazıların altına herhangi bir paylaşım sitesinin butonu ya da bağlantısı eklenebilir. Bir buton istenirse; tek tek butonların bulunduğu kısımda, istenirse toplu listenin içinde gösterilebilir. (Toplu liste: butonların ve bağlantıların Addthis, Addtoany gibi bir liste halinde gösterildiği kısım.)
  26. Özel günlerde site mesajlarını yayınlamak için; istenen mesajı sitenin üst tarafında, belirlenen tarih ve saatten, belirlenen tarih ve saate kadar yayınlayan, zamanı gelince otomatik kaldıran bir mesaj eklentisi yazıldı.
  • Şahin   -  

    Paylaşımcı tavrınızı ve titizliğinizi çok takdir ettim, kişisel olarak da çok yararlandım, elinize sağlık.
    Sorumluluk sahibi yaklaşımınızdan cesaret alarak iki önerim olacak:
    1. Zaman alıcı olduğunu biliyorum ama site için geliştirdiğiniz eklentileri drupal.org proesi halinde resmileştirip yayınlamayı düşünmez misiniz?
    2. Bazı kodlarda saptadığınız eksikleri (“Besleme içeriği: Başlık artı özet” özelliği çalışmayınca… gibi) birer issue olarak yazsanız düzeltilmelerine büyük katkınız olurdu.
    Tekrar teşekkürler, başarılar.
    Şahin

  • Halil İbrahim Özdemir   -  

    Önerileriniz için teşekkürler.

    1. Sihirli Hikaye için yazdığım 13 eklenti mevcut. Site için geliştirdiğim eklentileri genelde kendi siteme göre yazdığım için; kullanmadığım özellikleri, eklentilere göre değişecek durumları pek düşünmek zorunda kalmıyorum. O yüzden yazdığım eklentiler çok özelleştirilebilir değil. Yine de fırsat bulduğumda bazılarını düzenleyip yayınlamayı düşünüyorum. (Fikir vermesi açısından tavsiyelere açığım.)

    Ayrıca drupal.org sitesinde birçoğu için hali hazırda benzer işleri yapan eklentiler mevcut. (Ben o eklentileri ya beğenmediğim için ya ufak bir eksiği oluğu için ya da gereksiz çok fazla özelliği olduğu için kullanmıyorum.)

    2. Drupal için burada yazdığım kod eksikliklerini, daha ilk rastladığımda internette arama yaparak çözmeye çalışmıştım. Çözemeyince drupal.org’un issue bölümünde aynı sorunu yaşayan başkaları da oluğunu görüp sorunu kendimce çözmüştüm. Bu yazıyı yazarken tekrar kontrol edip yazıyı ondan sonra yayınlamıştım. Bu problem hala çözülmemişti.

Bir cevap yazın