Issue #387💬 RespondidoAbierto el 6 de octubre de 2017por mekamleshkReacciones 0

Quiero guardar el nombre de la plantilla

Respuesta rápidapor daniel-farina

Ya que ya estás cargando php en este archivo, ¿por qué no lo pasas como parámetro de URL? '''javascript urlStore: '<?php base_url(); ?>/dragdropeditor/dragdrop/add?templateId=<?=$templateId?>', ``` Te aconsejaría tener todo esto ejecutándose bajo la sesión del usuario con tokens, etc., pero por ahora eso debería funci...

Lee la respuesta completa abajo ↓

Pregunta

Hola @artf @sonnylloyd @arthuralmeidap @cmcintosh

Estoy intentando almacenar el nombre de la plantilla, pero no estoy seguro de cómo pasar el nombre de la plantilla junto con los datos de la plantilla.

Quiero decir, quiero almacenar el nombre de la plantilla y los datos de la plantilla con la ayuda de un solo botón de enviar.

A continuación está mi código:

'''js

<form id="save-plantilla" clase="test-form" acción="<?php echo base_url(); ?>dragdropeditor/dragdrop/add" method="POST" style="display:none"> <div class="putsmail-c"> <div class="gjs-sm-property" style="font-size: 10px"> <span class="form-status" style="opacidad: 0"> <i class="fa fa-refresh anim-spin" aria-hidden="true"></i> </span> </div> </div> <div class="gjs-sm-property"> <div class="gjs-field"> <span id="gjs-sm-input-holder"> <tipo de entrada="texto" nombre="nombre plantilla" marcador de posición="Nombre de la plantilla" requerido> </span> </div> </div> <input type="hidden" name="body"> <button class="gjs-btn-prim gjs-btn-import" style="width: 100%">Guardar</button> </form> </div> <script type="text/javascript"> var editor = grapesjs.init ({ Altura: '100%', contenedor: '#gjs', Plugins: ['GJS-preset-newsletter'], storageManager: { id: '', Tipo: 'A distancia', guardado automático: falso, urlStore: '<?php base_url(); ?>/dragdropeditor/dragdrop/add', contentTypeJson: cierto, }, }); editor. Panels.addButton('options', [{ id: 'guardar', claseNombre: 'fa fa-floppy-o icon-blank', comando: función (editor, remitente) { si (remitente) sender.set ('active', false); editor.store(); alert('¡Plantilla guardada correctamente!'); }, atributos: {título: 'guardar en la base de datos'} }]); Vamos a añadir a esta demo la posibilidad de probar nuestros boletines var mdlClass = 'gjs-mdl-dialog-sm'; var pnm = editor. Paneles; var cmdm = editor. Órdenes; var testContainer = document.getElementById("save-template"); var contentEl = testContainer.querySelector('input[name=body]'); VAR MD = Editor. modal; cmdm.add('send-test', { run(editor, sendero) { sender.set('active', 0); var modalContent = md.getContentEl(); var mdlDialog = document.querySelector('.gjs-mdl-dialog'); var cmdGetCode = cmdm.get('gjs-get-inlined-html'); contentEl.value = cmdGetCode & & cmdGetCode.run(editor); mdlDialog.ClassName += ' ' + mdlClass; testContainer.style.display = 'bloque'; md.setTitle('Por favor, introduzca el nombre de la plantilla'); md.setContent(''); md.setContent(testContainer); md.open(); md.getModel().once('change:open', function() { mdlDialog.ClassName = mdlDialog.className.replace(mdlClass, ''); Estado limpio }) } }); pnm.addButton('options', { id: 'enviar-prueba', claseNombre: 'fa fa-papel-avión', Orden: 'enviar-probar', atributos: { 'título': 'Boletín de prueba', 'data-tooltip-pos': 'abajo', }, }); FA FA-Refresh var statusFormElC = document.querySelector('.form-status'); var statusFormEl = document.querySelector('.form-status i'); var ajaxTest = ajaxable(testContainer). onStart(function(){ statusFormEl.className = 'fa fa-refresh anim-spin'; statusFormElC.style.opacity = '1'; statusFormElC.className = 'form-status'; }) .onResponse(function(res){ if (res.data) { statusFormElC.style.opacity = '0'; statusFormEl.removeAttribute('data-tooltip'); md.close(); } else if(res.errors){ statusFormEl.className = 'fa fa-círculo-exclamación'; statusFormEl.setAttribute('data-tooltip', res.errors); statusFormElC.className = 'form-status text-danger'; } }); </script>

Respuestas (3)

daniel-farina6 de octubre de 2017

Ya que ya estás cargando php en este archivo, ¿por qué no lo pasas como parámetro de URL?

'''javascript urlStore: '<?php base_url(); ?>/dragdropeditor/dragdrop/add?templateId=<?=$templateId?>',


Te aconsejaría tener todo esto ejecutándose bajo la sesión del usuario con tokens, etc., pero por ahora eso debería funcionar. 
mekamleshk6 de octubre de 2017

@daniel-farina Estoy intentando guardar el nombre de la plantilla desde un cuadro de texto de entrada y no desde el TemplateId

artf6 de octubre de 2017

Bueno, siempre hay una opción para usar tu llamada ajax personalizada donde puedes simplemente añadir 'getHtml' y 'getCss' a tus datos.

Si es necesario usar 'editor.store()', puedes añadir/actualizar 'params' (que se pasarán con cualquier solicitud) en la instancia de RemoteStorage '''js const RemoteStorage = editor. StorageManager.get('remote'); RemoteStorage.set('params', {yourKey: 'yourValue'}) editor.store();

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.

Explora plugins gratuitos →
Opción premium

Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.

Explora plugins premium →

Tutoriales relacionados

Guías detalladas sobre el mismo tema.

Todos los tutoriales →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.