¡Bienvenido a PHPost!

Para participar en el foro, descargar complementos y acceder al chat, es necesario tener una cuenta activa. Regístrate con un correo válido para completar la activación.

⚖️ Aviso Legal y Normas de Contenido

PHPost.es es una comunidad dedicada al soporte, desarrollo y difusión de software libre para la creación y administración de comunidades en línea.

Compromiso con la legalidad: No se permite la publicación, promoción o distribución de software pirateado, contenido warez ni material que infrinja derechos de autor o cualquier otra normativa aplicable.

Responsabilidad: Cada usuario es responsable del contenido alojado en su propio sitio web y del uso que haga del software. Los administradores y desarrolladores de Risus Nova no controlan ni supervisan los servidores o contenidos gestionados por terceros.

⚠️ Aviso de seguridad

Risus Nova se distribuye únicamente a través de phpost.es, que es la fuente oficial del proyecto donde publicamos las versiones verificadas.

Recomendamos no utilizar copias obtenidas desde sitios de terceros, ya que podrían haber sido modificadas y no contar con la integridad del código original, lo que puede suponer riesgos de seguridad en la instalación.

Para garantizar una instalación segura y actualizada, descarga siempre la versión oficial desde el botón disponible en esta página.

Importante: No pediremos donaciones en ningún momento ni en ninguna plataforma (Ko-fi, PayPal, redes sociales u otras). Si encuentras campañas de donación que utilicen el nombre de Risus Nova o PHPost, no tienen ninguna relación con el proyecto.

🔄 Desarrollo activo

Risus Nova forma parte de una nueva etapa del proyecto PHPost, en evolución constante con mejoras, correcciones y nuevas funciones. Puedes seguir el progreso y los cambios oficiales a través del changelog y la comunidad.

Risus Nova 2.1 Estable Desarrollo activo Última actualización: 15/07/2026 Ver Demo Changelog 266 Desarrollo del tema: 75% (fase actual de desarrollo) Descargar
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Pequeño ajuste para los botones del modal
#1

3
Mejor respuesta del mensaje Pequeño ajuste para los botones del modalBueno hace tiempo hice este cambio para el modal, el cual facilitaría la creaciones de modales con botones.
 
Antes se tenia que usar así: 
mydialog.buttons(true, true, 'SI', "bloquear('"+user+"', true, '"+lugar+"', true)", true, false, true, 'NO', 'close', true, true); 

Ahora es poco más largo, pero más fácil de entender
mydialog.buttons([
   {mostrar:true,texto:'SI',accion:"bloquear('"+user+"', true, '"+lugar+"', true)",activo:true},
   {mostrar:true,texto:'NO',accion:'cerrar',activo:true}
]) 

Tiene varias maneras de poder emplearlo, la primera es como se muestra en el código de arriba ↑ y las otras 2 son de estas formas:
mydialog.buttons({mostrar:true,texto:'SI',accion:"bloquear('"+user+"', true, '"+lugar+"', true)",activo:true})
mydialog.buttons(false) // Puede ser true
Y se le podrá agregar más de 2 botones, puede ser 3, 4, etc...
 
Vamos al archivo acciones.js, buscamos
buttons: function(display_all, btn1_display, btn1_val, btn1_action, btn1_enabled, btn1_focus, btn2_display, btn2_val, btn2_action, btn2_enabled, btn2_focus){
... TODO EL CODIGO INCLUIDO ...
},

La reemplazamos por
buttons: function(object) {
    let agregar_botones = '';
    // Es un objeto...
    if(typeof object === 'object') {
        // Es un Arreglo (array)...
        if(Array.isArray(object)) {
            for(let i = 0; i < object.length; i++) {
            if(object.mostrar) {
                let clase = !empty(object.clase) ? object.clase : (!i ? 'btnOk' : 'btnCancel');
                let activo = object.activo ? '' : ' disabled'
// Si la acción es igual a "cerrar"
               let accion = (object.accion == 'cerrar') ? ` onclick="mydialog.close()"` : ` onclick="${object.accion}"`
                agregar_botones += `<input type="button" class="mBtn ${clase}${activo}" style="display:inline-block" value="${object.texto}"${accion}${activo} >`;
            }
            }
        } else {
            if(object.mostrar) {
            let clase = !empty(object.clase) ? object.clase : 'btnOk';
            let activo = object.activo ? '' : ' disabled'
// Si la acción es igual a "cerrar" o contiene una función
            let accion = (object.accion == 'cerrar') ? `onclick="mydialog.close()"` : ` onclick="${object.accion}"`
            agregar_botones += `<input type="button" class="mBtn ${clase}${activo}" style="display:inline-block" value="${object.texto}"${accion}${activo}>`;
            }
        }
// Si el boolean es TRUE entonces mostrará este botón por defecto, si es FALSE no mostrará nada
    } else if(typeof object === 'boolean') {
        agregar_botones += object ? `<input type="button" class="mBtn btnOk" style="display:inline-block" value="Aceptar" onclick="mydialog.close()">` : ''
    }
   $('#mydialog #buttons').html(agregar_botones)
}, 

El objeto que se puede pasar, si solo contendrá un botón pude ir solo el objeto, en caso que sean 2 o más botones deberá ir así

   { ... PARAMETROS DEL OBJETO 1 ... },
   { ... PARAMETROS DEL OBJETO 2 ... }
]

Los parámetros que se pueden usar
{
   mostrar: boolean, // TRUE o FALSE
   texto: string,  // El texto que se mostrará
   accion: string, // Función que se empleará o "cerrar"
   activo: boolean, // TRUE o FALSE
   clase: string // Opcional, puede incluir clase para modificar la apariencia del botón

Espero que sea clara la explicación y lo puedan entender...
Responder Compartir


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)