Cihan Okyay

Feed Rss

Django TinyMCE entegrasyonu

10.06.2011, Django, by .

Merhabalar,

TinyMCE, web uygulamamızda haber girişi, blog postu vb. girerken bir çok kolaylığı sağlayan bir araç. Örneğin, yazı stillerini belirlemek, paragrafları düzenlemek, yazıya resim veya video eklemek gibi işlevlerde yardımcı oluyor. Django’nun en iyi özelliklerinden birisi olan admin paneli içinde tinymce ile gelmiyor. Kolayca biz ekleyebiliriz. Bu adresten TinyMCE’yi indirdikten sonra jscripts altındaki tiny_mce dizinini Django projemizdeki static klasörümüze kopyalıyoruz.

Kopyaladıktan sonra tiny_mce dizinine gidip içinde textareas.js adında bir dosya yaratıyoruz. Bu js dosyasına aşağıdaki kodları yapıştırıyoruz.

  1. tinyMCE.init({
  2. mode : "textareas",
  3. width : "800",
  4. height : "500",
  5. theme : "advanced",
  6. language : ‘en’,
  7. theme_advanced_toolbar_location : "top",
  8. theme_advanced_toolbar_align : "left",
  9. plugins : "preview, searchreplace, paste, table, insertdatetime, media",
  10. theme_advanced_buttons1 :
  11. "preview,undo,redo,visualaid,|,cut,copy,paste,pastetext,pasteword,|,search, replace,|,bullist,numlist,|,outdent,indent,blockquote,|,link,unlink,anchor, image,cleanup,help,code",
  12. theme_advanced_buttons2 :
  13. "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,fontselect,fontsizeselect",
  14. theme_advanced_buttons3 :
  15. "forecolor,backcolor,|,sub,sup,|,charmap,insertdate,inserttime,media,|,tabl econtrols"
  16. });

Ardından kullandığımız application dizinimizdeki admin.py dosyasını editlememiz gerekiyor. Onu da şöyle bir değişiklik ile hallediyoruz;

  1. class NewsAdmin(admin.ModelAdmin):
  2. class Media:
  3. js = (‘tiny_mce/tiny_mce.js’,
  4. ‘tiny_mce/textareas.js’,)
  5.  
  6. admin.site.register(News, NewsAdmin)

Evet bu kadar basit entegrasyon işlemimiz.

Geçenler Python İstanbul toplantısında bir arkadaşım sormuştu FlatPages’a TinyMCE nasıl entegre ederim diye. O da admin.py’de bir kaç satır işe bakıyor :) Şöyle bir kod parçacığı işimizi görecektir;

  1. from django.contrib.flatpages.models import FlatPage
  2. from django.contrib.flatpages.admin import FlatPageAdmin as FlatPageAdminBase
  3. class FlatPageAdmin(FlatPageAdminBase):
  4. class Media:
  5. js = (‘tiny_mce/tiny_mce.js,
  6. tiny_mce/textareas.js‘,)
  7.  
  8. admin.site.unregister(FlatPage)
  9. admin.site.register(FlatPage, FlatPageAdmin)

Bu kadar! Artık Flatpages’ta da TinyMCE kullanabiliriz.

Mutlu kodlamalar :)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>