Issue #386✓ ResueltoAbierto el 5 de octubre de 2017por RuudHReacciones 3

Amplía ejemplos/documentación de Pannel/Command abriendo una nueva vista

Respuesta rápidapor daniel-farina2

Una buena práctica para familiarizarte con GrapeJS sería intentar duplicar el gestor de bloques y crear el tuyo propio. Puedes lograrlo editando los archivos que aparecen a continuación. Un buen ejemplo sería copiar el src/blockmanagerand llamarlo src/sectionmanager y luego renombrar todos los nombres de BlockManager...

Lee la respuesta completa abajo ↓

Pregunta

Hola Artur,

¡Primero que nada, Grapesjs es increíble!

Ahora mismo estoy intentando entender cómo crear un panel con un botón que abra una nueva vista, como hacen los bloques y los botones del gestor de capas. Quiero renderizar mi propio conjunto de elementos en esa nueva vista. Estoy mirando el código que usas para abrir esas vistas, pero que usa los gestores para renderizar los elementos. También es un poco confuso para qué sirve todo el código.

Sería genial tener más documentación sobre este tema.

Respuestas (3)

👍 Muy útildaniel-farina6 de octubre de 2017

Una buena práctica para familiarizarte con GrapeJS sería intentar duplicar el gestor de bloques y crear el tuyo propio. Puedes lograrlo editando los archivos que aparecen a continuación. Un buen ejemplo sería copiar el src/block_managerand llamarlo src/section_manager y luego renombrar todos los nombres de BlockManager a SectionManager. Mira el código, no son tantas líneas.

Luego tendrás que editar los siguientes archivos para que funcione:

src/editor/index.js Responsable de Sección: em.get('Gestor de Sección'), src/editor/modelo/Editor.js

requiere('section_manager'),

Luego crea un archivo nuevo src/comandos/vista/OpenSections.js

Modifica todo el contenido de esto para que coincida realmente con los nombres del responsable de sección. 
Ejemplo: 
  var sm = editor. Jefe de sección;

src/editor/config/config.js

Configuraciones para Jefe de Sección
sectionManager: {},

src/panels/config/config.js

var osc = 'secciones abiertas';

{
   id: OSC,
   claseNombre: 'fa fa-th-large',
   Mando: OSC,
   activo: falso,
   atributos : { título: 'Secciones abiertas' },
},

index.html

Jefe de sección: 
{
   Categorías: {
       abierto:verdadero
   }
},
var sm = editor. Jefe de sección;

sm.add(this.id, {
                   etiqueta: esto.etiqueta,
                   Categoría: esto. Categoría,
                   atributos: this.attributes,
                   Contenido: esto.contenido,
               });

Haz una búsqueda completa de código fuente para BlockManager o block_manager para asegurarme de que no me he perdido nada. Así entenderás mejor cómo funciona BlockManager.

Por supuesto, tendrás que cambiar algunas clases de CSS para mover el gestor a la ubicación deseada, o insertar su contenido en una sección completamente diferente de tu interfaz.

Es una idea aproximada. Una mejor idea sería crear un plugin independiente que genere este gestor de secciones, lo miraré poco después de familiarizarme con todos los archivos y entenderlo mejor.

También creo que deberíamos elegir una interfaz como semantic-iu para crear barras dinámicas, modales, etc. con grapejs. Aquí tienes un ejemplo de uno de mis intentos de crear una nueva barra lateral usando semantic-iu:

! imagen

La barra se muestra y se oculta automáticamente cuando empiezas a arrastrar el elemento. Creo que @artf intenta mantener este editor lo más sencillo posible sin dependencias, pero esto podría funcionar para algunas personas.

En lugar de modificar el gestor de bloques, creé mi propio gestor donde puedo modificarlo sin tocar el Gestor de bloques original.

¡Salud

Moikapy30 de mayo de 2018

Hola, estaba mirando de hacer algo similar y encontré esto aquí. Me preguntaba si existe alguna documentación que explique más sobre el proceso de creación de nuevas vistas.

artf5 de octubre de 2017

Hola @RuudH gracias por la sugerencia, espero publicar pronto algo más sobre este argumento. Por ahora, solo puedo sugerirte que compruebes los comandos usados para esos paneles (por ejemplo, Bloques abiertos)

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.