Guardar datos de varios campos del editor en línea de CKEditor como una plantilla
Estoy configurando un sistema de plantillas donde los diseñadores pueden enviar diseños HTML5 y permitir a los usuarios agregar su propio contenido. Estoy usando CKEditor 4.2 y Rails 3 para la aplicación. Me gustaría que los usuarios puedan cargar la página de la plantilla y luego editar los diversos editores en línea directamente, luego guardarlos a través de JS y Ajax. Tenía todo funcionando pero al agregar el complemento de iFrame tuve algunos problemas de formato porque simplemente estaba guardando el HTML sin procesar de los editores en línea en mis plantillas. Vea esta pregunta para más detalles:CKEditor y iFrame / YouTube / Otros complementos de incrustación muestran código HTML extraño
Ahora sé que debería usar algo como:
var data = CKEDITOR.instances.editable.getData();
Pero, ¿cómo manejaría múltiples editores como este? Le he dicho a mis diseñadores que simplemente usen
contenteditable="true"
Para cualquier div quieren ser editables. Por lo tanto, no tengo ninguna ID de referencia para cada editor y no sé cuántos editores contendrá cada archivo de plantilla. Me gustaría poder guardar tanto contenido no editable como, por supuesto, contenido editable en la plantilla final, que es solo una Página HTML5
Aquí está la solución que tuve para guardar el contenido sin procesar de todo el archivo de plantilla usando un div con id:
$saveButton.click(function(e) {
// Extract contents of magboy container
var contents = $("#page-cnt").html();
// Send contents to server
$.ajax({
url: '/pages/'+PageId+'/editor_save',
type: 'POST',
data: {
containerContents: contents
},
success: function(response){
alert("contents saved");
}
});
// prevent original click behaviour
e.preventDefault();
return false;
});
Así que para resumir mi pregunta:
¿Cómo puedo implementar una función de guardar que guarda el contenido de varios editores de CKEditor en una página de plantilla completa?
Muchas gracias por cualquier ayuda y si puede ayudar con esta pregunta, entonces responderé a esta misma pregunta también, creo:Guardando múltiples ediciones en línea con CKEditor