2013-03-10 3 views
0

Создание форума и использование Ckeditor для публикации сообщений - это прекрасно работает с использованием textarea в форме. Теперь я хочу, чтобы пользователь мог редактировать свое сообщение, поэтому у меня есть встроенный ckeditor, поэтому пользователь нажимает на свой пост и их сообщение заменяется на ckeditor. Это работает до сих пор и выглядит хорошо. Но кнопка сохранения отключена. Я окружил все это в форме, но, конечно, ckeditor теперь является div, а не текстовой областью, поэтому я думаю, что форма не будет работать. Итак, как мне передать данные на мой PHP?ckeditor inline save

Другая проблема заключается в том, что Ckeditor, похоже, не работает на мобильном телефоне. Можете ли вы придумать хороший простой метод резервного копирования для мобильных телефонов?

Это код, который я использую для визуализации встроенного редактора;

// Uncomment the following code to test the "Timeout Loading Method". 
// CKEDITOR.loadFullCoreTimeout = 5; 

window.onload = function() { 
    // Listen to the double click event. 
    if (window.addEventListener) 
     document.body.addEventListener('click', onClick, false); 
    else if (window.attachEvent) 
     document.body.attachEvent('onclick', onClick); 

}; 

function onClick(ev) { 
    // Get the element which fired the event. This is not necessarily the 
    // element to which the event has been attached. 
    var element = ev.target || ev.srcElement; 

    // Find out the div that holds this element. 
    var name; 

    do { 
     element = element.parentNode; 
    } 
    while (element && (name = element.nodeName.toLowerCase()) && 
      (name != 'div' || element.className.indexOf('edit_post') == -1) && name != 'body'); 

    if (name == 'div' && element.className.indexOf('edit_post') != -1) 
     replaceDiv(element); 
} 

var editor; 

function replaceDiv(div) { 
    if (editor) 
     editor.destroy(); 

    editor = CKEDITOR.replace(div, { 
     uiColor: '#FFFFFF', 
     toolbar: [ 
      ['Save', 'Cut', 'Copy', 'Paste', 'PasteFromWord', '-', 'Undo', 'Redo', '-', 'Scayt'], 
      '/', 
      ['Bold', 'Italic', 'Underline', 'Blockquote', '-', 'Link', 'Unlink', '-', 'Image', 'Smiley', 'oembed'] 

     ] 
    }); 

} 

ответ

1

Вы можете попробовать перезаписать команду сохранения по умолчанию и использовать все, что вам нужно для сохранения там.

Что-то вроде

// Override the normal CKEditor save plugin 
CKEDITOR.plugins.registered['save'] = 
{ 
    init : function(editor) 
    { 
     editor.addCommand('save', 
      { 
       modes : { wysiwyg:1, source:1 }, 
       exec : function(editor) { 
        if(Editor.CheckDirty()) { 
         // Do wahtever you need to do during the save button here 
        } else { 
         alert("NothingToSave); 
        } 
       } 
      } 
     ); 
     editor.ui.addButton('Save', {label : '@GeneralTerms.Save', command : 'save'}); 
    } 
}