Метка: tinymce

  • прикручиваем filebrowser к tinyMCE без grappelli (django filebrowser no grappelli)

    Продолжаю прошлую статью про tinyMCE
    почему-то меня не радовала перспектива grappelli, когда можно без неё, поэтому я воспользовался вот этим проектом

    https://github.com/wardi/django-filebrowser-no-grappelli

    скачиваем распаковываем, устанавливаем

    python setup.py installCode language: Bash (bash)

    установился он у меня вот сюда

    /usr/lib/python2.5/site-packages/django_filebrowser-3.0-py2.5.eggCode language: Bash (bash)

    Дописываем
    filebrowser в INSTALLED APPS
    в urls.py перед «admin» добавим

    (r'^admin/filebrowser/', include('filebrowser.urls')),Code language: Python (python)

    а вот с настройками у меня как-то не сложилось, как не пытался он всё ломится в /media/ а у меня MEDIA_ROOT = /static/
    поэтому я поправил файл settings.py в каталоге

    /usr/lib/python2.5/site-packages/django_filebrowser-3.0-py2.5.eggCode language: Bash (bash)

    и вместо media/ написал static
    вот в этой строке

    URL_FILEBROWSER_MEDIA = getattr(settings, "FILEBROWSER_URL_FILEBROWSER_MEDIA", "/static/filebrowser/")Code language: Python (python)

    ещё не знаю нужно или нет, в каком мануале найдено не смог найти
    в каталоге templates я создал каталог admin
    в него скопировал файл index.html из
    /usr/lib/python2.5/site-packages/django/contrib/admin/templates/admin

    и там перед строкой

        {% for app in app_list %}Code language: Python (python)

    добавил

    {% include 'filebrowser/append.html' %}Code language: Python (python)

    Вот и всё появилась мелкая иконочка при выборе картинки в tinyMCE

  • Визуальный редаткор для Django

    И так господа, в процессе написания блога на Django (да да изобретаем велосипед)

    возникла резонная задача = визуальный редактор

    вариантов подключения много, мне понравился больше вот этот.

    ставим tinyMCE

    easy_install django-tinymceCode language: Bash (bash)

    установилось оно у меня вот сюда
    /usr/lib/python2.5/site-packages/django_tinymce-1.5.1a2-py2.5.egg

    далее в каталоге tinymce есть каталог static, копируем содержимое в свою media_dir у меня это тоже static.

    теперь в нужной нам модели можно заменить поля textarea на что-то такое

    from django.db import models
    from tinymce import models as tinymce_model
    
    class MyModel(models.Model):
    myField=tinymce_model.HTMLField()Code language: Python (python)

    теперь в settings.py

    INSTALLED_APPS= (
    …
    ‘tinymce’,
    …
    )Code language: Python (python)

    чуть ниже настройки

    я использовал вот такие

    #TinyMCE widget configuration
    TINYMCE_JS_URL = MEDIA_URL + "tiny_mce/tiny_mce.js"
    TINYMCE_JS_ROOT = MEDIA_URL + "/tiny_mce"
    TINYMCE_SPELLCHECKER=False
    TINYMCE_PLUGINS = [
        'safari',
        'table',
        'advlink',
        'advimage',
        'iespell',
        'inlinepopups',
        'media',
        'searchreplace',
        'contextmenu',
        'paste',
        'wordcount'
    ]
    
    TINYMCE_DEFAULT_CONFIG={
        'theme' : "advanced",
        'plugins' : ",".join(TINYMCE_PLUGINS), # django-cms
        'language' : 'ru',
        "theme_advanced_buttons1" : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect,|,spellchecker",
        "theme_advanced_buttons2" : "cut,copy,paste,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,image,cleanup,code,|,forecolor,backcolor,|,insertfile,insertimage",
        "theme_advanced_buttons3" : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr",
        'theme_advanced_toolbar_location' : "top",
        'theme_advanced_toolbar_align' : "left",
        'theme_advanced_statusbar_location' : "bottom",
        'theme_advanced_resizing' : True,
        'table_default_cellpadding': 2,
        'table_default_cellspacing': 2,
        'cleanup_on_startup' : False,
        'cleanup' : False,
        'paste_auto_cleanup_on_paste' : False,
        'paste_block_drop' : False,
        'paste_remove_spans' : False,
        'paste_strip_class_attributes' : False,
        'paste_retain_style_properties' : "",
        'forced_root_block' : False,
        'force_br_newlines' : False,
        'force_p_newlines' : False,
        'remove_linebreaks' : False,
        'convert_newlines_to_brs' : False,
        'inline_styles' : False,
        'relative_urls' : False,
        'formats' : {
            'alignleft' : {'selector' : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', 'classes' : 'align-left'},
            'aligncenter' : {'selector' : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', 'classes' : 'align-center'},
            'alignright' : {'selector' : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', 'classes' : 'align-right'},
            'alignfull' : {'selector' : 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', 'classes' : 'align-justify'},
            'strikethrough' : {'inline' : 'del'},
            'italic' : {'inline' : 'em'},
            'bold' : {'inline' : 'strong'},
            'underline' : {'inline' : 'u'}
        },
        'pagebreak_separator' : "",
        # Drop lists for link/image/media/template dialogs
        'template_external_list_url': 'lists/template_list.js',
        'external_link_list_url': 'lists/link_list.js',
        'external_image_list_url': 'lists/image_list.js',
        'media_external_list_url': 'lists/media_list.js',
        #
        #'file_browser_callback':'tinyDjangoBrowser'
    }Code language: Python (python)

    также в urls.py добавим

    (r’^tinymce/’,include(’tinymce.urls’)),Code language: Python (python)

    теперь по хорошему всё, в админке нужное поле будет отображено как ТиниМЦЕ редактор.

    если не будет я удалил таблицу в котором эти поля и сделал сункДБ.
    потом появилось.

    Ещё будет пост о том как к нему прикрутить возможность заливки файлов и картинок.