Issue #1089💬 RespondidoAbierto el 7 de mayo de 2018por kuldeepcisReacciones 0

Plugin personalizado con rasgos

Respuesta rápidapor xr0master

Tienes que iniciar el campo de contenido. Probablemente para sobrescribir al método HTML. Depende de qué no funcione

Lee la respuesta completa abajo ↓

Pregunta

'''js grapesjs.plugins.add('social-icons-component', (editor, opts = {}) => {

Sea c = opts;

Sea defaults = { bloques: 'iconos sociales',

Estilo por defecto defaultStyle: cierto,

Hora de inicio por defecto, por ejemplo, '2018-01-25 00:00' Hora de inicio: '',

};

Valores predeterminados de carga para (dejemos nombre en los valores predeterminados) { si (!( nombre en c)) c[name] = defaults[name]; }

// Añadir componentes loadComponents (editor, c);

// Añadir componentes loadBlocks(editor, c);

const domc = editor. DomComponents; const defaultType = domc.getType('default'); const textType = domc.getType('text'); const defaultModel = defaultType.model; const defaultView = defaultType.view; const textModel = textType.model; const textView = textType.view; const pfx = c.countdownClsPfx;

domc.addType('social-icons', {

model: defaultModel.extend({ defaults: Object.assign({}, defaultModel.prototype.defaults, { empieza de: c.inicioTiempo, finTexto: c.finTexto, Droppable: falso, Rasgos: [ Las cadenas se convierten automáticamente en tipos de texto

'nombre', 'marcador de posición', { tipo: 'select', etiqueta: 'Tipo', Nombre: 'Tipo', Opciones: [ {valor: 'Facebook', Nombre: 'Facebook'}, {valor: 'linkedin', nombre: 'Linkedin'}, {valor: 'youtube', nombre: 'Youtube'}, {valor: 'twitter', nombre: 'Twitter'}, ] }, { Tipo: 'entrada', Etiqueta: 'Facebook', Nombre: 'Facebook', },{ Tipo: 'entrada', etiqueta: 'LinkedIn', Nombre: 'LinkedIn', },{ Tipo: 'entrada', Etiqueta: 'YouTube', Nombre: 'YouTube', },{ Tipo: 'entrada', etiqueta: 'twitter', Nombre: 'Twitter', }], script: function() {

} }), }, { isComponent(el) {

if(el.getAttribute && el.getAttribute('data-gjs-type') == 'social-icons') { return { Tipo: 'Iconos sociales' }; } }, }), view: defaultView.extend({ init() {

console.log('en vistaaaa'); this.listenTo(this.model, 'change:type', this.updateScript); const comps = this.model.get('components');

Añade una plantilla básica de cuenta atrás si aún no está inicializada if (!comps.length) { comps.reset(); comps.add(' <span data-js="countdown" class="-cont"> <div class="${pfx}-block"> <div data-js="countdown-day" class="${pfx}-digit"></div> <div class="${pfx}-label">${c.labelDays}</div> </div> <div class="${pfx}-block"> <div data-js="countdown-hour" class="${pfx}-digit"></div> <div class="${pfx}-label">${c.labelHours}</div> </div> <div class="${pfx}-block"> <div data-js="countdown-minute" class="${pfx}-digit"></div> <div class="${pfx}-label">${c.labelMinutes}</div> </div> <div class="${pfx}-block"> <div data-js="countdown-second" class="${pfx}-digit"></div> <div class="${pfx}-label">${c.labelSeconds}</div> </div> </span> <span data-js="countdown-endtext" class="${pfx}-endtext"></span> `); } } }), }); });


He creado un plugin personalizado con trates, pero no funciona
¿Podrías explicarme cómo funcionará? ¿Cuál es el problema de esto?

Respuestas (3)

xr0master8 de mayo de 2018

Tienes que iniciar el campo de contenido. Probablemente para sobrescribir al método HTML. Depende de qué no funcione

artf10 de mayo de 2018

@kuldeepcis no muestras cómo usas el componente, por favor proporciona un ejemplo en vivo vía jsfiddle

kuldeepcis10 de mayo de 2018

Hola @artf,

Este es el violín para ello https://jsfiddle.net/apaoa5o2/14/

En la sección extra está el bloque para icono social Los problemas con esto son:

  1. Cuando arrastras y soltas, tienes que seleccionar padre para ver la sección de configuración a la derecha. En la configuración verás la URL de Facebook y aparecerás en Facebbok.
  2. Cuando editas la URL en Facebook y marcas la casilla, verás el reflejo a la izquierda. Quiero que esta casilla esté preseleccionada al cargar la página.
  3. cuando lo exportas, el icono de Facebook no tiene la URL que hemos configurado. Por favor, dime cómo podemos hacerlo.

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.