Tema: dpTruco: Alerta mensajes privados pmBox (Final)
AnyKiller
avatar
Moderador
Moderador
Mensajes: 5145

Enviado:
20.dic 2005 - 20:11

IMPORTANTE: Sólo sirve si tenéis instalado el módulo pmBox

Este dpTruco seguro que a los usuarios que utilicen el módulo pmBox en lugar del módulo nativo de mensajería privada de Postnuke les va a encantar.

Se trata del script de alerta de mensajes nuevos adaptado para pmBox smile

Este script hace que en el índice te avisa de que tienes mensajes neuvos por medio de un popup, cosa que resulta tremendamente útil.

Para hacerlo, sólo tenéis que agregar el siguiente código justo antes del final del index.php (justo antes de ?>)

Código compatible con Postnuke 0750 (en teoría, necesito que alguien que tenga postnuke 0750 y pmBox lo compruebe y confirme)

NOTA: Personalmente he experimentado problemas entre el pmBox 2.83 y postnuke 0750. Es posible que nisiquiera se pueda hacer funcionar. Consejo: actualziar a Postnuke 076X

Código
  1. // Se comprueban los mensajes - versión para pmBox
  2.       if( $index ==1 && pnUserLoggedIn())
  3.       {
  4.         list($dbconn) = pnDBGetConn();
  5.         $pntable = pnDBGetTables();
  6.        
  7.         $newmsgchk = $dbconn->Execute("SELECT count(*) FROM ".$pntable['pmbox']." WHERE pn_to_userid=".pnUserGetVar('uid')." AND pn_read_msg=0 AND pn_msg_type=1");
  8.         list($numrow) = $newmsgchk->fields;
  9.         if ($numrow > 0) {
  10.           echo "<script> if( confirm('Tienes $numrow mensaje(s) nuevo(s). ¿Quieres leerlos?')== true) location.href='modules.php?op=modload&name=pmBox&file=index';
  11.           </script>";
  12.         }
  13.       }


Código probado con éxito en Postnuke 0760 y 0761 (modificación aportada por Mauricio)

Código
  1. // Se comprueban los mensajes - pmBox/Postnuke 076X
  2.       if( $index ==1){
  3.         // Setup db handle       
  4.         $dbconn =& pnDBGetConn(true);
  5.         $pntable =& pnDBGetTables();
  6.        
  7.         $newmsgchk = $dbconn->Execute("SELECT count(*) FROM ".$pntable['pmbox']." WHERE pn_to_userid=".pnUserGetVar('uid')." AND pn_read_msg=0 AND pn_msg_type=1");
  8.        
  9.                 list($numrow) = $newmsgchk->fields;
  10.        
  11.                 if ($numrow > 0) {
  12.             echo "<script> if( confirm('Tienes $numrow mensaje(s) nuevo(s). ¿Quieres leerlos?')== true) location.href='index.php?name=pmBox&file=index';
  13.           </script>";
  14.         }
  15.       }


Agradecimientos
- A Mauricio por aportar la modificación correcta para Postnuke 076X
- A Dixso por testearlo en mi site (te dije que me enviaras insultos, pero bueno) xDDDDDDD
- A gerkynet por agregar la comprobación de si el user está conectado o no
- A todos los usuarios que prueben y les guste este truco. Sin los usuarios, Dev-Postnuke no sería nada smile


Espero que os resulte útil este dpTruco wink

PD: dpTruco por AnyKiller para Dev-Postnuke.com. Espero no ver reproducido este texto en otro sitio sin el permiso de alguien del dpTeam.

NOTA: Cualquier fallo que veáis o mejora que queráis aportar, posteadlo aquí




No atiendo mensajes privados para dudas
mauricio
avatar
Habitual
Habitual
Mensajes: 88

Enviado:
20.dic 2005 - 21:54

Hola la verdad que no lo he probado pero escribo las modificaciones correspondientes a la versión 0.761 de postnuke:

Código
  1. / Se comprueban los mensajes - versión para pmBox
  2.  
  3.     if( $index ==1) {
  4.         // Setup db handle
  5.         $dbconn =& pnDBGetConn(true);
  6.         $pntable =& pnDBGetTables();
  7.  
  8.         $newmsgchk = $dbconn->Execute("SELECT count(*) FROM ".$pntable['pmbox']." WHERE pn_to_userid=".pnUserGetVar('uid')." AND pn_read_msg=0 AND pn_msg_type=1");
  9.  
  10.         list($numrow) = $newmsgchk->fields;
  11.  
  12.         if ($numrow > 0) {
  13.             echo "if(confirm('Tienes $numrow mensaje(s) nuevo(s). ¿Quieres leerlos?')== true) location.href='index.php?name=pmBox&file=index';";
  14.         }
  15.     }



[img]http://www.mozilla.org/products/firefox/buttons/firefox_80x15.png[/img]
AnyKiller
avatar
Moderador
Moderador
Mensajes: 5145

Enviado:
20.dic 2005 - 22:03

Hum... el código que puse lo he probado en mi site (pn0761) y me funciona a la perfección. Probaré la modificación (menos mal que está en Beta) xDDDDD

PD: La última instrucción, se trata de un echo que contiene un script. Conforme lo has puesto, solo aparece un texto con el mensaje debajo del footer (supongo que el foro se lo ha comido)

Debería ser así en todo caso:

Código
  1. // Se comprueban los mensajes - pmBox/Postnuke 076X
  2.       if( $index ==1)
  3.       {
  4.         $dbconn =& pnDBGetConn(true);
  5.         $pntable =& pnDBGetTables();
  6.        
  7.         $newmsgchk = $dbconn->Execute("SELECT count(*) FROM ".$pntable['pmbox']." WHERE pn_to_userid=".pnUserGetVar('uid')." AND pn_read_msg=0 AND pn_msg_type=1");
  8.        
  9.                 list($numrow) = $newmsgchk->fields;
  10.        
  11.                 if ($numrow > 0) {
  12.             echo "<script> if( confirm('Tienes $numrow mensaje(s) nuevo(s). ¿Quieres leerlos?')== true) location.href='modules.php?op=modload&name=pmBox&file=index';
  13.           </script>";
  14.         }
  15.       }


Probado con éxito en mi site (editaré el primer post)

PD: Gracias por la aportación, Mauricio smile




No atiendo mensajes privados para dudas
mauricio
avatar
Habitual
Habitual
Mensajes: 88

Enviado:
22.dic 2005 - 17:04

Ahora esta correcta la llamada a la base de datos, pero la forma de correcta de llamar a los modulos que antes empezaban con "modules.php?op=modload&name=..." en la versión 0.761 es: index.php?name=...

Ejemplo: index.php?name=pmBox&file=index


[img]http://www.mozilla.org/products/firefox/buttons/firefox_80x15.png[/img]
AnyKiller
avatar
Moderador
Moderador
Mensajes: 5145

Enviado:
22.dic 2005 - 17:46

ya lo sé, de todas formas lo reconoce smile

Lo actualizaré wink




No atiendo mensajes privados para dudas
Dixso
avatar
Administrador
Administrador
Mensajes: 2588

Enviado:
23.dic 2005 - 14:47

AnyKillerEl pmBox lo puedes encotnrar en la secció nde descargas de vedrine.com (traducción a español hecha por mí).

Antes de instalarlo, échale un vistazo a la carpeta pnDocs, ya que allí tienes varios archivos para sobreescribir el módulo messages (así te ahorras el modificar varios archivos para que te redirijan a pmBox), pero en el caso de usar el dpStaffStatus tendrás que editar un archivo (ahora no recuerdo, pero viene explciado en inglés en algun txt)

Pero si estás contento con el ke trae postnuke, yo no lo instalaría

Ya he puesto el pmBox en nuestra sección de descargas :-P
Un saludo wink
baulwarez

Frecuente
Frecuente
Mensajes: 39

Enviado:
23.dic 2005 - 17:09

Entonces a ver si me queda claro ,para conseguir ese maravisllosa ventana de aviso es necesario tener el pmbox ,de ser asi es compatible con 0761 ,en el otro caso ,ya en un tiempo atras busque y busque en los foros y nunca me llego a funcionar ,
Esto a modo personal yo creo que para ahorrar muchas busquedas y preguntas inecesarias se deberia borrar post con errores y digo errores por la mencionada busqueda del mensage de alerta ,que no se acalaran si le falta 2 puntos o un espacio en fin un lio ,Podriais poner una solucion como la que dais en el pmbox para el modulo estandar que trae 0761 por defecto ??


Gracias y Felizes Fiestas a tod@s de Parte del Equipo De BaulWareZ
AnyKiller
avatar
Moderador
Moderador
Mensajes: 5145

Enviado:
23.dic 2005 - 17:12

Solo tienes que buscar. Es más, hay un enlace a ese post en este tema (mi mensaje anterior)




No atiendo mensajes privados para dudas
AnyKiller
avatar
Moderador
Moderador
Mensajes: 5145

Enviado:
30.dic 2005 - 11:50

He limpiado el tema para evitar confusiones




No atiendo mensajes privados para dudas
pacotmx
avatar
Habitual
Habitual
Mensajes: 94

Enviado:
8.ene 2006 - 01:59

pues si funciona en la versio 761 y perfectamente incluso redirije a los mensajes gracias por este truco est uy bueno

saludos wink


laura79

Frecuente
Frecuente
Mensajes: 38

Enviado:
15.mar 2006 - 13:05

yo tengo la 0.761 y me da error en la linea:
Código
  1. echo " if( confirm('Tienes $numrow mensaje(s) nuevo(s). ¿Quieres leerlos?')== true) location.href='modules.php?op=modload&name=<!--hilite--><span title="Hit: pmBox " class="highlight_hook">pmBox</span><!--/hilite-->&file=index';
  2. <span style="color: #ff0000;"


¿cómo lo soluciono?
jpeeri
avatar
Posteador de Oro
Posteador de Oro
Mensajes: 1809

Enviado:
15.mar 2006 - 17:57

laura79yo tengo la 0.761 y me da error en la linea:
Código
  1. echo " if( confirm('Tienes $numrow mensaje(s) nuevo(s). ¿Quieres leerlos?')== true) location.href='modules.php?op=modload&name=<!--hilite--><span title="Hit: pmBox " class="highlight_hook">pmBox</span><!--/hilite-->&file=index';
  2. <span style="color: #ff0000;"


¿cómo lo soluciono?


Prueba sustituyendolo por esto:
Código
  1. echo " if( confirm('Tienes $numrow mensaje(s) nuevo(s). ¿Quieres leerlos?')== true) location.href='modules.php?op=modload&name=<!--hilite--><span title='Hit: pmBox' class='highlight_hook'>pmBox</span><!--/hilite-->&file=index';
  2. <span style="color: #ff0000;"





<
ArreArre

Habitual
Habitual
Mensajes: 87

Enviado:
28.abr 2006 - 18:20

Podría hacerse lo mismo para cuando un Admin. tiene noticias por aprobar, o elinks, o enlaces?

Para cuando tienes noticias nuevas por publicar:
Código
  1. // Se comprueban los mensajes - News/Postnuke 076X
  2.       if( $index ==1)
  3.       {
  4.         $dbconn =& pnDBGetConn(true);
  5.         $pntable =& pnDBGetTables();
  6.        
  7.         $newmsgchk = $dbconn->Execute("SELECT count(*) FROM ".$pntable['News']." WHERE pn_to_userid=".pnUserGetVar('uid')." AND pn_read_msg=0 AND pn_msg_type=1");
  8.        
  9.                 list($numrow) = $newmsgchk->fields;
  10.        
  11.                 if ($numrow > 0) {
  12.             echo " if( confirm('Hay $numrow nueva(s) noticia(s) enviada(s). ¿Quieres leerlas?')== true) location.href='admin.php?module=AddStory&op=submissions';
  13.           ";
  14.         }
  15.       }


¿Habría que cambiar algo más? ¿Qué opináis? Salu2


http://www.emuleros.net/themes/Molon/images/logo.gif
jpeeri
avatar
Posteador de Oro
Posteador de Oro
Mensajes: 1809

Enviado:
28.abr 2006 - 18:30

Si que se podría pero hace falta un poco de experiencia en PHP

Un Saludo wink




<
ArreArre

Habitual
Habitual
Mensajes: 87

Enviado:
28.abr 2006 - 18:44

acabo de modificar el menaje, jpperi, mira a ver qué tal lo ves? Salu2


http://www.emuleros.net/themes/Molon/images/logo.gif
21aToPe
avatar
Forero
Forero
Mensajes: 166

Enviado:
29.jul 2006 - 14:23

Bien, tras bastante tiempo usando este truco me he decidido a modificarlo pues muchas veces no me enteraba hasta que entraba en la página inicial de mi Portal.

Ahora se muestra en cualquier página del portal, o sea, que esté donde esté, en cuanto haya un nuevo mensaje privado se muestra el pop-up advirtiéndomelo.

Esta es la modificación del código que he hecho:

Código
  1. // Se comprueba si estás logueado - versión para pmBox
  2.       if( pnUserLoggedIn())
  3.       {
  4.         list($dbconn) = pnDBGetConn();
  5.         $pntable = pnDBGetTables();
  6.        
  7.         $newmsgchk = $dbconn->Execute("SELECT count(*) FROM ".$pntable['pmbox']." WHERE pn_to_userid=".pnUserGetVar('uid')." AND pn_read_msg=0 AND pn_msg_type=1");
  8.         list($numrow) = $newmsgchk->fields;
  9.         if ($numrow > 0) {
  10.           echo " if( confirm('Tienes $numrow mensaje(s) nuevo(s). ¿Quieres leerlos?')== true) location.href='modules.php?op=modload&name=pmBox&file=index';
  11.           ";
  12.         }
  13.       }


Espero que os sea de utilidad a quien quiera saber inmediatamente que tiene un mensaje nuevo.

Sólo hay un pequeño problema, y es que cuando respondes que sí y te lleva a la página para leerlos, también se muestra. Solución: responder que no en esta segunda ocasión pues ya estas en la página de los mensajes sin leer. Salu2


gerkynet
avatar
Posteador de Oro
Posteador de Oro
Mensajes: 1490

Enviado:
29.jul 2006 - 17:37

Otro pequeño problema: si le dices que no el mensaje sigue apareciendo.
(me parece una pregunta retórica, sería mejor que avisara pero que no diera opción)


Hispa-PN.net - Desarrollos PostNuke

21aToPe
avatar
Forero
Forero
Mensajes: 166

Enviado:
9.sep 2006 - 13:17

gerkynetOtro pequeño problema: si le dices que no el mensaje sigue apareciendo.
(me parece una pregunta retórica, sería mejor que avisara pero que no diera opción)


Claro, pero en cuanto lo lees, deja de notificártelo.

Y fíjate que hoy a las 3:00 me has enviado un MP y como yo no suelo entrar casi nunca en la página de Inicio de dev-postnuke y no me he fijado en el bloque de dpStaffStatus no me he dado cuenta hasta las 13:00 que he visto que tenía un MP.

En mi Web, esté donde esté, en cuanto tengo un MP me lo notifica.
A veces, como hoy, es importante leer ese mensaje privado en cuanto te lo mandan, por lo que considero mejor mi opción. Otra cosa sería añadirle que si estás en la página de los MP deje de avisártelo, o añadirle al mensaje la opción de que deje de notificártelo con un nuevo Botón "Rechazar". Salu2


gerkynet
avatar
Posteador de Oro
Posteador de Oro
Mensajes: 1490

Enviado:
10.sep 2006 - 00:22

Ya, a mi me pasa lo mismo, no suelo mirar el numerito ese, donde indica los mensajes que tienes,
normalmente me entero cuando recibo un correo (en los sitios que avisan mediante correo)

Una manera fácil es crear un campo de usuario (o usar uno creado), que se actualice al pulsar o no el mensaje, o usar las cookies, que quizás es más sencillo todavía.



Hispa-PN.net - Desarrollos PostNuke