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.
Ayuda de Programación General, IRC y mIRC Scripting 
*

Mensajes: 558


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!!! :) :)



Usuario:
Contraseña:
Sesión: