Seleccionar idioma:
Realizar Donación - Mods Premium - Portfolio



Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.
* Recibir los datos de un usuario registrado por Mensaje Privado
  Leído 1424 veces
* Viendo el foro
 0 Usuarios y 1 Visitante están viendo este foro.


*
May 19 2015
Hola amigos!!!

Voy a dejar este Tutorial porque creo que es una modificación interesante que he hecho, se muy poco de PHP, pero creo que lo hice bien.
Por favor voy a pedir, que no hagan esta modificación en su Foro hasta que alguien me confirme que no dará problemas y que está hecha de una manera correcta. En mi Foro de pruebas funciona perfectamente y creo que siempre debería funcionar bien.

Bueno, comienzo, les voy a explicar para que sirve esta modificación.
Lo primero es instalar este mod:

PM to New Members: http://custom.simplemachines.org/mods/index.php?mod=1517

lo que hace este mod, es enviar un mensaje privado a un usuario cuando se registra en nuestro foro, se puede configurar quién será la persona que envíe ese mensaje privado, puede ser inclusive un Administrador o Moderador, además se puede activar o desactivar, también es posible utilizar 2 variables en el cuerpo del mensaje, por ejemplo una variable hace referencia al nombre del usuario, mientras que la otra lo hace con el nombre del Foro, por ejemplo en el cuerpo del mensaje se podría escribir esta bienvenida:


Bienvenido {$username}!!!, muchas gracias por Registrarte en {$forumname}.

Y al usuario que se haya registrado, le llegará en el acto un mensaje privado diciendo (voy a poner mi nick de ejemplo):

Bienvenido Príncipe_Azul!!!, muchas gracias por Registrarte en SMFPersonal.

Bueno, ahora viene la modificación mia... ya expliqué que es lo que hace este mod, ahora con la modificación que dejaré el mod hará otra cosa.

Una vez que hayan instalado el mod, deben buscar el archivo /Sources/Subs-Members.php y encontrar esta parte:


Código: (Encontrar) [Seleccionar]
// Admin gets informed here...
adminNotify('approval', $memberID, $regOptions['username']);
}

   // PM to New Members - Select the Username and the ID of the sender
   if (!empty($modSettings['pm_register_id']) && !empty($modSettings['pm_register_username'])){
   
    // Set the PM Body with all the settings
    $pm_words = array(
'{$username}', '{$forumname}'
);

$pm_register_body = str_replace($pm_words,
array(
$regOptions['username'],
'[url=' .$scripturl. ']' .$context['forum_name']. '[/url]',
),
$modSettings['pm_register_body']
);

$pm_register_body = preg_replace('~<br(?: /)?' . '>~', "\n", $pm_register_body);
$pm_register_body = un_htmlspecialchars($pm_register_body);

   $pmfrom = array(
      'id' => $modSettings['pm_register_id'],
      'name' => $modSettings['pm_register_username'],
      'username' => $modSettings['pm_register_username'],
   );
   $pmto = array(
      'to' => array($memberID),
      'bcc' => array()
   );
   }
   
   // PM to New Members - Send the PM only if the mod is enable
   if (!empty($modSettings['pm_register_subject']) && !empty($modSettings['pm_register_body']) && !empty($modSettings['pm_register']) && !empty($modSettings['pm_register_id']) && !empty($modSettings['pm_register_username']))
   sendpm($pmto,$modSettings['pm_register_subject'],$pm_register_body, 0, $pmfrom);

y reemplazarla por esta:


Código: (Reemplazar con) [Seleccionar]
// Admin gets informed here...
adminNotify('approval', $memberID, $regOptions['username']);
}

   // PM to New Members - Select the Username and the ID of the sender
   if (!empty($modSettings['pm_register_id']) && !empty($modSettings['pm_register_username'])){
   
    // Set the PM Body with all the settings
    $pm_words = array(
'{$username}', '{$forumname}', '{$email}', '{$ip}', '{$perfiluser}', '{$hostname}'
);

$pm_register_body = str_replace($pm_words,
array(
$regOptions['username'],
'[url=' .$scripturl. ']' .$context['forum_name']. '[/url]',
            $regOptions['email'],
            $user_info['ip'],
            '[iurl=' . $scripturl . '?action=profile;u=' . $memberID . ']' . $regOptions['username'] . '[/iurl]',
            gethostbyaddr($user_info['ip']),
),
$modSettings['pm_register_body']
);

$pm_register_body = preg_replace('~<br(?: /)?' . '>~', "\n", $pm_register_body);
$pm_register_body = un_htmlspecialchars($pm_register_body);

   $pmfrom = array(
      'id' => $modSettings['pm_register_id'],
      'name' => $modSettings['pm_register_username'],
      'username' => $modSettings['pm_register_username'],
   );
   $pmto = array(
      'to' => array(1),
      'bcc' => array()
   );
   }
   
   // PM to New Members - Send the PM only if the mod is enable
   if (!empty($modSettings['pm_register_subject']) && !empty($modSettings['pm_register_body']) && !empty($modSettings['pm_register']) && !empty($modSettings['pm_register_id']) && !empty($modSettings['pm_register_username']))
   sendpm($pmto,$modSettings['pm_register_subject'],$pm_register_body, 0, $pmfrom);


En esta línea del segundo código que he dejado:

      'to' => array(1),

1 es el ID de la persona que va a recibir siempre en su privado los datos de cada usuario que se registre, en este tutorial voy a utilizar el 1 ya que es el Administrador (pueden cambiarlo por el que quieran).


Bueno, ahora paso a explicar que es lo que hará el código, cuando un Nuevo Usuario se Registre en nuestro Foro, en vez de llegarle un mensaje de bienvenida, nos llegará a nosotros ese mensaje, logicamente no será de bienvenida!! jajaja, bueno en ese mensaje, llegarán datos del nuevo usuario que se registró, las variables que pueden usar son:

{$username} = Nombre del usuario que se registró

{$forumname} = Es el título del Foro

{$email} = Es el email del nuevo usuario

{$ip} = La dirección de IP

{$perfiluser} = Esta variable significa que además de mostrar el nombre del usuario, también tendrá un enlace para ver el perfil del usuario.

{$hostname} = Sería el Hostname resuelto de la IP del usuario, en el caso que el usuario no tenga hostname, esta variable devolverá la dirección de IP en forma numérica.

ahora pondré un ejemplo de lo que podríamos poner en el cuerpo del mensaje de la configuración del Mod:

Se ha Registrado el usuario {$username} en {$forumname}:

[b]Usuario:[/b] [color=blue]{$perfiluser}[/color]

[b]Email:[/b] [color=blue]{$email}[/color]

[b]IP:[/b] [color=blue]{$ip}[/color]

[b]Hostname:[/b] [color=blue]{$hostname}[/color]

y nos llegará un privado con estos datos por ejemplo:

Usuario: Príncipe_Azul

Email: Mail_usuario@hotmail.com

IP: 186.126.162.160

Hostname: host160.186-126-162.telecom.net.ar

y en el Asunto pueden poner lo que deseen.

Hay que recordar que el mod tiene la gran ventaja de poder utilizar Códigos BBC.
No he creado una variable para que nos diga la fecha y hora exacta en la que se registró X usuario porque la fecha y hora en la que se registró ese X usuario, será la misma del mensaje privado que recibamos.

Para configurar el mod deben ir a Administración | Controles de los Usuarios | Registro de Usuarios... | Configuración
Quiero agregar que con este mod no va a ser necesario de que tengamos esta opción activada:

Notificar a los administradores cuando se une un nuevo miembro

Los datos del usuario que nos llegen por MP solo pueden ser enviados a nosotros, es decir que no es posible enviar a varias personas esos datos.

Bueno amigos!! Eso es todo, me puse esta mañana a modificar y he logrado lo que quería, he buscado por entero y no encontré un mod que haga exactamente lo que dice este tutorial, y como he modificado el mod que indiqué más arriba para dejarlo como quería y lo he logrado, por eso dejo este tutorial que espero que les sirva a muchas personas.

El Autor del Mod es: Nibogo

Modificado por: Príncipe_Azul

Esta modificación es por lo que quice en este Tema: http://www.smfpersonal.net/empty-t8578.0.html;msg58353#msg58353

Saludos y espero que les guste!!! :) :)


« Última Modificación: Mayo 19, 2015, 06:08:08 pm por Príncipe_Azul »



Si que te diste maña para hacerlo  compañero :), bien lo ideal mas adelante seria bueno tener un panel de administración como dijiste en el post.  Por que lo veo medio engorroso con los Mensajes Privados.

Saludos y como siempre gracias por el aporte.




Cláro, es cierto, sería mejor por el Panel de Administración, pero me gusta la forma en la que me avisa.

Pero seguro habrá personas que les gustará esos avisos por mensajes privados, como a otras personas que les gustará los informes por el Panel!!

Ojalá les sirva a muchas personas!

Y si, me he dado maña!!! jajaja luchando por horas lo logré :)

Lo que si deseo por favor, es que me avisen si esta modificación está correcta, así modifico el post y elimino esta parte "Por favor voy a pedir, que no hagan esta modificación en su Foro hasta que alguien me confirme que no dará problemas y que está hecha de una manera correcta."

Gracias como siempre amigo!! :)


« Última Modificación: Mayo 20, 2015, 08:34:21 am por Príncipe_Azul »




La verdad no mire mucho el codigo, pero con solo mirar una cosa puedo asegurar que tu afirmacion "Los datos del usuario que nos llegen por MP solo pueden ser enviados a nosotros, es decir que no es posible enviar a varias personas esos datos" es completamente falsa!!
Desde el momento que utilizas un array para pasar la id del usuario quiere decir que el codigo el leido por un bucle, con lo cual si ese array le pones (1,2,3,4,5) le tendria que llegar el mensaje a esos usuarios...

Repito, no mire el codigo, pero si no fuera asi no se utilizaria un array y se utilizaria un numero entero.




Perfecto!! Mejor aún amigo, así se pueda enviar esos datos a varios Administradores y/o Moderadores.
Por favor confirmame que es correcto lo que has dicho, así modifico el Post.

Me imagino que la modificación sería aquí:

Código: [Seleccionar]
'to' => array(1,2,3,4,5),

Muchas gracias!! :)




Otros temas de su interes




Usuario:
Contraseña:
Sesión:
hermes bracelet replica, christian louboutin replica, van cleef and arpels replica, red bottoms replica, cartier love bracelet replica christian louboutin replica, christian louboutin replica, hermes bracelet replica,