/** * @funcionalidad aprobamos o no el nuevo nick del usuario * Si el estado = 0 pendiente de aprobación * Si el estado = 1 aprobado el cambio de nick * Si el estado = 2 denegado el cambio de nick */ function changeNick() { global $psDb, $psCore, $psMonitor; $nid = filter_input(INPUT_POST, 'nid'); //obtenemos los datos de la db a partir del nick $consulta = "SELECT * FROM u_nicks WHERE id = :nid"; $valores = array('nid' => $nid); $datos = $psDb->db_execute($consulta, $valores, 'fetch_assoc'); //comprobamos si hemos pulsado el botón de aprobar, denegar u cancelar if ($_POST['accion'] == 'aprobar') { $cap = "UPDATE u_miembros SET user_name = :name, user_password = :pass, user_name_changes = :changes WHERE user_id = :uid"; $vap = array('name' => $datos['name_2'], 'pass' => $datos['hash'], 'changes' => 'user_name_changes' - 1, 'uid' => $datos['user_id']); $psDb->db_execute($cap, $vap); $cap2 = "UPDATE u_nicks SET estado = :estado WHERE id = :id"; $vap2 = array('estado' => 1, 'id' => $nid); $psDb->db_execute($cap2, $vap2); //una vez realizadas las consultas enviamos el aviso al usuario $aviso = 'Hola <b>' . $datos['name_1'] . '</b>:<br><br>Le informamos que su petición de cambio de nick ha sido aprobada. <br><br>Su nuevo nick es: <b>' . $datos['name_2'] . '</b>. Recibirá un email informándole del cambio.'; $psMonitor->setAviso($datos['user_id'], 'Cambio realizado', $aviso, 4); //ahora obtenemos los datos para enviarle por correo al usuario $asunto = $datos['name_1'] . 'su petición de cambio de nick ha sido aprobada.'; $body = '<p>Hola <b>' . $datos['name_1'] . '</b>:</p><br><p>Le informamos su cambio de nick ha sido aprobado.</p> <p>A partir de este momento podrá acceder a ' . $psCore->settings['titulo'] . 'con su nuevo nick.</p> <p> Su nuevo nick es: <b>' . $datos['name_2'] . '</b></p><br> <p>El Staff de <strong>' . $psCore->settings['titulo'] . '.</strong></p><br> <p>Esperamos verle pronto de nuevo. Hasta pronto!</p>'; } else { if ($_POST['accion'] == 'denegar') { $cap = "UPDATE u_miembros SET user_name_changes = :changes WHERE user_id = :uid"; $vap = array('changes' => 'user_name_changes' - 1, 'uid' => $datos['user_id']); $psDb->db_execute($cap, $vap); $cap2 = "UPDATE u_nicks SET estado = :estado WHERE id = :id"; $vap2 = array('estado' => 2, 'id' => $nid); $psDb->db_execute($cap2, $vap2); //una vez realizadas las consultas enviamos el aviso al usuario $aviso = 'Hola <b>' . $datos['name_1'] . '</b>:<br><br>Le informamos que su petición de cambio de nick ha sido denegada. <br><br>'; $psMonitor->setAviso($datos['user_id'], 'Cambio realizado', $aviso, 3); //ahora obtenemos los datos para enviarle por correo al usuario $asunto = $datos['name_1'] . 'su petición de cambio de nick ha sido denegada. Recibirá un email informándole del cambio.'; $body = '<p>Hola <b>' . $datos['name_1'] . '</b>:</p><br><p>Le enviamos este correo para informarle que su solicitud de cambio de nick ha sido denegada.</p> <p>El Staff de <strong>' . $psCore->settings['titulo'] . '.</strong></p><br> <p>Esperamos verle pronto de nuevo y sentimos las molestias ocasionadas. Hasta pronto!</p>'; } else { return 'Solicitud de cambio de nick cancelada'; } } //añadimos la clase email para enviar el correo include '../inc/class/c.email.php'; $psEmail = new psEmail('confirmar', 'nombre'); $psEmail->em_to = $datos['user_email']; $psEmail->em_subject = $asunto; $psEmail->em_body = $body; $psEmail->em_head = $psEmail->setEmHead(); $psEmail->sendEmail() or die('Ocurrió un error al intentar enviar el correo'); }
/** * @funcionalidad si esta desactivado el registro automático enviaremos un correo de confirmación al usuario * @param type $psCore variable de la clase psCore * @param type $psDatos pasamos los datos por array * @param type $psUser variable de la clase psUsuarios * @return string si algo no va bien devolverá un mensaje de error */ public function emailRegistro($psCore, $psDatos, $psUser, $psDb) { if (empty($psCore->settings['c_reg_activate'])) { $valores = ['user_id' => $psDatos['user_id'], 'email' => $psDatos['user_email'], 'time' => time()]; $consulta = "INSERT INTO w_contacts ( user_id, user_email, time, type) VALUES (:user_id, :email, :time, \\'2\\')"; if ($psDb->db_execute($consulta, $valores)) { include PS_ROOT . PS_CLASS . "c.email.php"; $psEmail = new psEmail('activar', 'registro'); $subject = "Active ahora su cuenta en " . $psCore->settings['titulo']; $body = '<div style=""> <h1 style="">' . $psCore->settings['titulo'] . '</h1> <div style=""> <h2 style="">Hola ' . $psDatos['user_nick'] . '</h2> <p>Para poder finalizar el proceso de registro, por favor confirma tu dirección de email pinchando en el siguiente <a href="' . $psCore->settings['url'] . '/validar/2/' . $psDatos['user_email'] . '">enlace</a></p> <p>Si no puede acceder pinchando en el enlace copie y pegue la siguiente url: ' . $psCore->settings['url'] . '/validar/2/' . $psDatos['user_email'] . '</p><br><br> <p>Una vez haya confirmado su dirección de email, podrá acceder con las siguientes credenciales:</p> <p>Usuario: ' . $psDatos['user_nick'] . '<br>Contraseña: ' . $psDatos['user_password'] . '</p><br> <p>Antes de empezar a interactuar con los demás usuarios de la comunidad, te recomendamos visitar el <a href="' . $psCore->settings['url'] . '/pages/protocolo">Protocolo</a>.</p> <p>¡Te damos la bienvenida a ' . $psCore->settings['titulo'] . ' y esperamos que disfrutes tu visita.</p> <div style=""> <span>El staff de <strong>' . $psCore->settings['titulo'] . ' ' . $psCore->settings['slogan'] . '</strong></span> </div> </div>'; $psEmail->setEmail($psDatos['user_email'], $subject, $body); $psEmail->sendEmail() or die('0: Hubo un error al intentar enviar el mensaje.'); } else { return '0: <div>Ocurrió un error al intentar procesar el registro, por favor, inténtelo de nuevo.</div>'; } } else { //activamos la cuenta del usuario $psUser->activate($psDatos['user_id'], $psDatos['user_registro']); //iniciamos sesión en la cuenta del usuario $psUser->login($psDatos['user_nick'], $psDatos['user_password'], true); return '2: <div class="box_cuerpo" style="padding: 10px 20px; border-top:1px solid black"> Bienvenido a <b>' . $psCore->settings['titulo'] . '</b>, Ahora estás registrado y tu cuenta ha sido activada, podrás disfrutar de esta comunidad inmediatamente.<br><br>¡Muchas gracias y bienvenido!</div>'; } }