Django CMS için HTML Tags eklentisi

April 28, 2019 2 dakika

Django ile yazılmış içerik yönetim sistemi deyince aklımıza ilk Django CMS geliyor. Oldukça kapsamlı ve geliştirici açısından öğrenmesi biraz zaman alan; fakat öğrenince de CMS gerektiren işleri kolay ve eğlenceli hale getiren açık kaynak bir yazılımdır. Kurulumu kolay, Divio1‘nun bulut sistemlerinde Django CMS’e tam desteği var; ama isterseniz kendi VPN sunucunuza da kurabiliyorsunuz. Eğer bu işlerle ilgili ilgilenecek ekibiniz yoksa, Divio’nun Türkiye’deki tek partneri Radity’den destek alabilirsiniz.

HTML Tags, adından da anlaşılacağı üzere, HTML kodlarını CMS paneli üzerinden sayfaya tek tek ekleme imkanı sunan bir Django CMS eklentisidir. Django CMS’te bir sayfa tasarlarken ikilemde kaldığımız bazı sorular vardı:

  1. Header bölümünde bir başlık ekleyeceğiz ve bu başlığın farklı dillere çevrilebilir olması gerekiyor, bunun için koca bir text editörü kullanmak ne kadar mantıklı?
  2. Varsayalım kullandık, içindeki editörün özelliklerini her farklı alan (placeholder) için kısıtlamak ne kadar verimli olur?
  3. Onun yerine her bir eleman için ayrı ayrı alanlar oluştursak ne kadar verimli olacak? Ve bunun gibi sorular…

Yapmak istediğimiz şöyle bir senaryoydu: “X şablonunu kullanan bir sayfanın header bölümünde sadece bir başlık ve bir de paragraf kullanılmasına izin vermek istiyoruz. Başlık ancak H1 olabilir, paragraf için de sadece P kullanılabilir.”

Alternatifler

HTML text editörü kullanmak dışında ReStructuredText ve Markdown kullanmak bir çözüm olabilirdi; ancak hem CMS’i yönetecek insanların bu tip biçimleme araçlarını bilme olasılıkları düşük, hem de tam olarak sorunumuzu çözmüyor. Form builder’lar istediğimize en yakın eklentiler; fakat onlar da sadece form elementlerini kapsıyor.

Kurulum

Kurulum basit. Eğer Divio Cloud kullanıyorsanız Marketplace2 üzerinden kurabilirsiniz. Kullanmıyorsanız PyPi3‘de aynı paketi bulabilirsiniz, ek olarak INSTALLED_APPS içine djangocms-html-tags yazmalısınız.

Bunun dışında tek yapmanız gereken, hangi sayfa alanlarında hangi eklentiyi kullanacağınızı belirtmeniz:

CMS_PLACEHOLDER_CONF = {
  "header": {
    "plugins": ["Heading1Plugin", "ParagraphPlugin"]
  },
  "footer": {
    "plugins": ["ParagraphPlugin"]
  }
}

Bu ayarlara göre artık ilgili alanlara belirli HTML elemanlarını eklemek, çeşitli stillerle özelleştirmek artık mümkün.

Gelişimine katkıda bulunmak ister misiniz?

Benim en çok yapmak istediğim şeylerden birisi bir form builder özelliği eklemek, şuanda input ve buton koymak mümkün; ancak TEXTAREA, RADIO BUTTONS, CHECK BUTTONS, IMAGE / FILE FIELD gibi özel inputları da ekleyerek bir form builder eklentisi ihtiyacını karşılamak mümkün olabilirdi.

Öte yandan, örnekleri iyi tasarımla güzelleştirmek, daha spesifik örneklerle eklentinin nasıl kullanılacağını göstermek iyi olurdu.

Sizlerden gelecek fikirlere de açığız.


  1. Divio, aynı zamanda Django CMS’i geliştiren şirket. Sitesine bir göz atmanızı öneririm. [return]
  2. Divio Marketplace üzerinden eklenti araması yapabilirsiniz. [return]
  3. PyPi için örnek kurulum: pip install djangocms-html-tags [return]
comments powered by Disqus