Como puedo enviar notificaciones al citar en comentarios
Hola como están me preguntaba si me pueden ayudar en como podría enviar notificaciones cuando el usuario le de citar comentario.
En cuanto a comentar en los post las notificaciones llegan a los autores de los post.
Es decir yo soy demo ago un comentario en el post luego el autor del post responde a mi comentario y tendria que notificarme por emal o como en el foro
Este el código que e preparado
En cuanto a comentar en los post las notificaciones llegan a los autores de los post.
Es decir yo soy demo ago un comentario en el post luego el autor del post responde a mi comentario y tendria que notificarme por emal o como en el foro
Este el código que e preparado
//Validar comentario if(!isset($_SESSION['iduser']) || !isset($_POST['idmensaje']) || $_POST['idmensaje']=='' ) exit; $post = saber_seo($_SESSION['idpost']); $posttitle = saber_titulo($_SESSION['idpost']); //insertar coment mensaje, iduser, idpost $accion_adduser = sprintf("INSERT INTO rescom (autor) VALUES (%s)", formatearcadena($_SESSION['iduser'],'int')); $consulta_adduser = mysqli_query($conexion,$accion_adduser) or die(mysqli_error()); $saberAutorporidpost= saber_autor_de_post($_SESSION['idpost']); $email = email(htmlspecialchars($_POST['idmensaje'])); if ($saberAutorporidpost != $_SESSION['iduser']){ $accion_adduser = sprintf("INSERT INTO notifica (post, comenta, autor) VALUES (%s, %s, %s)", formatearcadena($_SESSION['idpost'], "int"), formatearcadena($_SESSION['iduser'], "int"), formatearcadena($saberAutorporidpost, "text")); $consulta_adduser = mysqli_query($conexion,$accion_adduser) or die(mysqli_error());
Respuesta #1
hola que tal! primero comentar que hay muchas formas de hacerlo y tampoco sé como lo hizo zeus en el foro pero te voy a poner un ejemplo con variables de sesión ok?? pues lo primero supongamos que tienes un botón para "citar" en cada comentario.. lo primero es que al citarlo tienes que pegar ese comentario al nuevo comentario para que quede como "citado"
tienes que poner una id por ejemplo, a cada comentario..
salu2
tienes que poner una id por ejemplo, a cada comentario..
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> function citar_mensaje(idmensaje){ //copiar comentario var comentario = $('#' + idmensaje + ' .contenido').html(); var autor = $('#' + idmensaje + ' .autor').html(); //pegar cita $('#mensaje').html('<blockquote>' + autor.split('\n').join('') + ' dijo: ' + comentario + '</blockquote>'); //enviar cita a php $.ajax({ url: 'citar.php', type: 'POST', data: 'comentariocitado=' + idmensaje, success: function(res){ //Acción respuesta console.log('----->','comentario ' + idmensaje + ' citado'); } }); } </script> <div id="1"> <div class="autor"> pepito </div> <div class="contenido"> comentario 1 </div> <a onclick="citar_mensaje('1')">Citar</a> </div> <div id="2"> <div class="autor"> carlitos </div> <div class="contenido"> comentario 2 </div> <a onclick="citar_mensaje('2')">Citar</a> </div> <textarea id="mensaje" cols="30" rows="10"></textarea>importante tener en esa misma pagina una variable de sesión vacía preparada ok?
<?php // crear variable cita vacia $_SESSION['cita'] = ''; ?>y obviamente el fichero citar.php para que la pagina no se refresque al citar el comentario, este es el contenido de citar.php:
<?php if( isset($_POST['comentariocitado']) && !empty($_POST['comentariocitado']) ){ //Guardamos el comentario citado para usar a la hora de isertar $_SESSION['cita'] = $_POST['comentariocitado']; echo 'ok'; } ?>luego en el fichero donde insertas los comentarios puedes comprobar la variable "citar" y si no esta vacía puedes procesar la cita:
//Antes de insertar el comentario nuevo if( $_SESSION['cita']!='' ) { //si hay una cita procesar acciones //obtener autor del comentario citado $usercitado = obtener_autor_del_comentario($_SESSION['cita']); $correouser = obtener_correo_user($usercitado); mail($correouser, 'Tienes una nueva cita', 'Tienes una nueva cita en el comentario id: '.$_SESSION['cita']); }comentarte que esto es un ejemplo teórico pero seguro que con tu control de php unes cabos para sacarlo adelante.. solo tienes que unir las piezas xd
salu2
0
Puntos
Puntos
Por alber hace 69 meses
Administrador
Respuesta #2
alber dijo: hola que tal! primero comentar que hay muchas formas de hacerlo y tampoco sé como lo hizo zeus en el foro pero te voy a poner un ejemplo con variables de sesión ok?? pues lo primero supongamos que tienes un botón para "citar" en cada comentario.. lo primero es que al citarlo tienes que pegar ese comentario al nuevo comentario para que quede como "citado"Hola Alber gracias por tu aporte muy buen ejemplo
tienes que poner una id por ejemplo, a cada comentario..<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> function citar_mensaje(idmensaje){ //copiar comentario var comentario = $('#' + idmensaje + ' .contenido').html(); var autor = $('#' + idmensaje + ' .autor').html(); //pegar cita $('#mensaje').html('<blockquote>' + autor.split('\n').join('') + ' dijo: ' + comentario + '</blockquote>'); //enviar cita a php $.ajax({ url: 'citar.php', type: 'POST', data: 'comentariocitado=' + idmensaje, success: function(res){ //Acción respuesta console.log('----->','comentario ' + idmensaje + ' citado'); } }); } </script> <div id="1"> <div class="autor"> pepito </div> <div class="contenido"> comentario 1 </div> <a onclick="citar_mensaje('1')">Citar</a> </div> <div id="2"> <div class="autor"> carlitos </div> <div class="contenido"> comentario 2 </div> <a onclick="citar_mensaje('2')">Citar</a> </div> <textarea id="mensaje" cols="30" rows="10"></textarea>importante tener en esa misma pagina una variable de sesión vacía preparada ok?<?php // crear variable cita vacia $_SESSION['cita'] = ''; ?>y obviamente el fichero citar.php para que la pagina no se refresque al citar el comentario, este es el contenido de citar.php:<?php if( isset($_POST['comentariocitado']) && !empty($_POST['comentariocitado']) ){ //Guardamos el comentario citado para usar a la hora de isertar $_SESSION['cita'] = $_POST['comentariocitado']; echo 'ok'; } ?>luego en el fichero donde insertas los comentarios puedes comprobar la variable "citar" y si no esta vacía puedes procesar la cita://Antes de insertar el comentario nuevo if( $_SESSION['cita']!='' ) { //si hay una cita procesar acciones //obtener autor del comentario citado $usercitado = obtener_autor_del_comentario($_SESSION['cita']); $correouser = obtener_correo_user($usercitado); mail($correouser, 'Tienes una nueva cita', 'Tienes una nueva cita en el comentario id: '.$_SESSION['cita']); }comentarte que esto es un ejemplo teórico pero seguro que con tu control de php unes cabos para sacarlo adelante.. solo tienes que unir las piezas xd
salu2