Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

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
//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());
0
Puntos
50
Visitas
2
Resp
Por eduaryein hace 2 semanas
Principiante Sitio web
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..
<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
Por alber hace 2 semanas
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"

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
Hola Alber gracias por tu aporte muy buen ejemplo
1
Puntos
Por eduaryein hace 2 semanas
Principiante Sitio web
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate