Найти - Пользователи
Полная версия: FCKEditor
Начало » Django » FCKEditor
1
CombatPenguin
Здраствуйте!
Помогите правильно прикрутить FCKEditor к джанго, к его админке.
Нашел вот виджет для него http://www.djangosnippets.org/snippets/576/
Как его использовать правильно, in django-way?

update для поиска: TinyMCE WYSIWYG редактор JavaScript
diadya_vova
“…This is a simple FCK editor widget that can be used in newforms in place of Textarea….”
Так что этот виджет можно использовать в админке разве что newforms-admin бранча Django.

Возможно это поможет: http://www.djangoproject.com/documentation/model-api/#js
Александр Кошелев
http://code.google.com/p/django-fckconnector/ как бэкенд.
CombatPenguin
прикрутил tinyMCE+filebrowser :) спасибо всем
Ferroman
Расскажи как :)
CombatPenguin
Ferroman
Расскажи как :)
получаем дистрибутивы:
svn co http://django-filebrowser.googlecode.com/svn/trunk/ django-filebrowser
svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk (у меня работает на revision 7810)
http://tinymce.moxiecode.com/download.php

делаем симлинк django-trunk и django-filebrowser в директорию site-packages как django и filebrowser соответственно
можно конечно и установить джанго, но я планирую обновляться с свн поэтому так
делаем симлинк django-filebrowser/templates/filebrowser в директорию templates/admin вашего проекта
делаем симлинк django-filebrowser/media/filebrowser в директорию, находятся медиафайлы админа (MEDIA_ROOT в settings.py), туда же закидываем симлинк на директорию jscripts/tiny_mce распакованного tinymce

создаем там же конфигурационный скрипт, например textareas.js:
function CustomFileBrowser(field_name, url, type, win) {

var cmsURL = "/admin/filebrowser/?pop=2";
cmsURL = cmsURL + "&type=" + type;

tinyMCE.activeEditor.windowManager.open({
file: cmsURL,
width: 820, // Your dimensions may differ - toy around with them!
height: 500,
resizable: "yes",
scrollbars: "yes",
inline: "no", // This parameter only has an effect if you use the inlinepopups plugin!
close_previous: "no",
}, {
window: win,
input: field_name,
editor_id: tinyMCE.selectedInstance.editorId,
});
return false;
}

function myCustomSetupContent(editor_id, body, doc) {
if (body.innerHTML == "") {
body.innerHTML = "<p>xxx</p>";
}
}

tinyMCE.init({
mode : "textareas",
theme : "advanced",
//content_css : "/appmedia/blog/style.css",
file_browser_callback : "CustomFileBrowser",
advimage_update_dimensions_onchange: true,
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_buttons1 : "fullscreen,separator,preview,separator,bold,italic,underline,strikethrough,separator,bullist,numlist,outdent,indent,separator,undo,redo,separator,link,unlink,anchor,separator,image,cleanup,help,separator,code",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
auto_cleanup_word : true,
plugins : "table,save,advhr,advimage,advlink,emotions,insertdatetime,preview,zoom,flash,searchreplace,print,contextmenu,fullscreen",
plugin_insertdate_dateFormat : "%m/%d/%Y",
plugin_insertdate_timeFormat : "%H:%M:%S",
extended_valid_elements : "a[name|href|target=_blank|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",
fullscreen_settings : {
theme_advanced_path_location : "top",
theme_advanced_buttons1 : "fullscreen,separator,preview,separator,cut,copy,paste,separator,undo,redo,separator,search,replace,separator,code,separator,cleanup,separator,bold,italic,underline,strikethrough,separator,forecolor,backcolor,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,help",
theme_advanced_buttons2 : "removeformat,styleselect,formatselect,fontselect,fontsizeselect,separator,bullist,numlist,outdent,indent,separator,link,unlink,anchor",
theme_advanced_buttons3 : "sub,sup,separator,image,insertdate,inserttime,separator,tablecontrols,separator,hr,advhr,visualaid,separator,charmap,emotions,iespell,flash,separator,print"
}
});
комментировать не буду, все описано в доках на оффсайте

в urls.py перед строкой админки добавляем паттерн для файлбраузера:
    # Filebrowser
(r'^admin/filebrowser/', include('filebrowser.urls')),
проверяем django-filebrowser/fb_settings.py на предмет правильности путей, создаем директорию для аплоада

в моделях в классе Admin добавляем яваскрипты:
    class Admin:
js = (
'filebrowser/js/AddFileBrowser.js',
'tiny_mce/tiny_mce.js',
'tiny_mce/textareas.js',
)
вроде ничего не забыл…
если нужно использовать файлбраузер отдельно, то можно в шаблоне admin/index.html сделать ссылку на него
Дмитрий
CombatPenguin
А вы не решали проблему с закачкой файлов с русским именем в Filebrowser?
А также руссификации интерфейса Filebrowser?

И нет ли у вас проблем с отображением всей этой конструкции в IE и Opera?

Спасибо.
CombatPenguin
Есть проблемы с js в ИЕ, русификацией интерфейса как раз сейчас занимаюсь, а вот с аплоадом еще не думал, у меня не вставало еще такой задачи… пока что.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB