Улучшенная интеграция с tinyMCE

Added by Andrew Hilobok about 2 years ago

Интегрировал elFinder с tinyMCE (версии 3.3.1) следующим образом:

 1 tinyMCE.init({
 2     // General options
 3     mode : "textareas",
 4     // ... any options
 5     file_browser_callback : function(field_name, url, type, win) {
 6         $('<div/>').elfinder({
 7             url: 'connector.php',
 8             lang: 'ru',
 9             dialog: { width: 900, modal: true, title: 'Files', zIndex: 900001 },
10             editorCallback: function(url) {
11                 win.document.forms[0].elements[field_name].value = url;
12             }
13         });
14     }
15 });

на мой взгляд он симпатичнее способа предложенного официально, может кому пригодится :)


Replies (14)

RE: Улучшенная интеграция с tinyMCE - Added by Dmitry Levashov about 2 years ago

Спасибо! Включим в документацию. Сами мы с tinyMCE не очень знакомы :)

RE: Улучшенная интеграция с tinyMCE - Added by Troex Nevelin about 2 years ago

Действительно отличное решение, в доку, и надо на сайте TinyMCE отписать

RE: Улучшенная интеграция с tinyMCE - Added by Andrew Hilobok about 2 years ago

Как выяснилось, при таком способе интеграции, в Safari 4.0.5 под Мак иногда не срабатывает контекстное меню в elFinder, особенно если в tinyMCE contextmenu тоже включено. Буду еще разбираться. В остальных браузерах вроде нормально. Кстати, а как отключить контекстное меню в elFinder полностью? Указываю в опциях contextmenu: {} — показывает тонкую полоску пустого меню.

RE: Улучшенная интеграция с tinyMCE - Added by Dmitry Levashov about 2 years ago

Хмм... Мы не предусмотрели полное отключение контекстного меню :)

RE: Улучшенная интеграция с tinyMCE - Added by Andrew Hilobok about 2 years ago

:) наверное есть смысл предусмотреть

RE: Улучшенная интеграция с tinyMCE - Added by Andrew Hilobok about 2 years ago

После более детального разбора способа инициализации правильно интегрировать с tinyMCE нужно вот так:

 1 tinyMCE.init({
 2     // General options
 3     mode: 'textareas',
 4     // ... other options
 5 
 6     file_browser_callback: function(field_name, url, type, win) {
 7         aFieldName = field_name, aWin = win;
 8 
 9         if($('#elfinder').length == 0) {
10             $('body').append($('<div/>').attr('id', 'elfinder'));
11             $('#elfinder').elfinder({
12                 url : 'connector.php',
13                 dialog : { width: 900, modal: true, title: 'Files', zIndex: 400001 }, // open in dialog window
14                 editorCallback: function(url) {
15                     aWin.document.forms[0].elements[aFieldName].value = url;
16                 },
17                 closeOnEditorCallback: true
18             });
19         } else {
20             $('#elfinder').elfinder('open');
21         }
22     }
23 });

Будете вносить в документацию вносите этот способ, в предыдущем создавались множественные копии elFinder что приводило к проблемам с кукисами и множественными quicklook окнами

RE: Улучшенная интеграция с tinyMCE - Added by Сергей Воронков about 2 years ago

Скажите пожалста поподробнее, что куда вставлять, а то у меня не получается и не открывается elfinder. Пробовал и первый и второй вариант - но тщетно...

RE: Улучшенная интеграция с tinyMCE - Added by Сергей Воронков about 2 years ago

все разобрался... стормозил... спасибо за интеграцию!!!

RE: Улучшенная интеграция с tinyMCE - Added by Dmitry Levashov about 2 years ago

Andrew Hilobok wrote:

После более детального разбора способа инициализации правильно интегрировать с tinyMCE нужно вот так: [...]

Будете вносить в документацию вносите этот способ, в предыдущем создавались множественные копии elFinder что приводило к проблемам с кукисами и множественными quicklook окнами

Проблема с множественными копиями решена в след версии файндера

RE: Улучшенная интеграция с tinyMCE - Added by Pavel Novikov about 1 year ago

К коду, который привел Andrew Hilobok, в callback функцию elfinder'а я бы еще добавил следующий код:

$('iframe').contents().find('input#src').change();

Это позволит обновлять окошко просмотра сразу после выбора файла.

RE: Улучшенная интеграция с tinyMCE - Added by Виталий Рудюк about 1 year ago

Подскажите пожалуйста как в Yii сделать два поля textarea с редактором tinymceelfinder
когда делаю вот так

$this->widget('application.extensions.tinymce.ETinyMce',array(
'model'=>$model,
'attribute' =>'content_left',
'editorTemplate'=>'full'
)
);
$this->widget('application.extensions.tinymce.ETinyMce',array(
'model'=>$model,
'attribute' =>'content_right',
'editorTemplate'=>'full'
)
);

то файловый менеджер перестает работать и выдает Invalid configuration! You have to set Url option
Как это исправить???

RE: Улучшенная интеграция с tinyMCE - Added by Виталий Рудюк about 1 year ago

Проблему решил сам. Дело было в конфликте JUI и tinymceelfinder. Подключались дважды jquery.ui

RE: Улучшенная интеграция с tinyMCE - Added by Добрый Злюка 5 months ago

c какой версией tinyMCE работает?
постоянно пишет
Invalid configuration! You have to set Url option

RE: Улучшенная интеграция с tinyMCE - Added by Troex Nevelin 5 months ago

Похоже url коннектора вы совсем не указали, приведите полный пример как подключаете

(1-14/14)