Página 1 de 1

Se puede insertar mensaje entre dos ya existentes?

Publicado: 21 Jun 2012, 21:42
por Kravenbcn
Buenas, necesito insertar un nuevo mensaje entre dos mensajes ya existentes en un mismo hilo.

¿Es eso posible?

Saludos.

Re: Se puede insertar mensaje entre dos ya existentes?

Publicado: 22 Jun 2012, 01:04
por Alorse
Creo que Moviendo el mensaje es posible, en las Herramientas de Moderación Rápida, esta dicha opción.

Re: Se puede insertar mensaje entre dos ya existentes?

Publicado: 23 Jun 2012, 11:18
por Kravenbcn
No, parece ser que esa opción es para mover mensajes de un tema a otro ya existente.

Re: Se puede insertar mensaje entre dos ya existentes?

Publicado: 24 Jun 2012, 21:56
por karbiko
Igual hay una solución más fácil, pero yo no la se...

Yo lo he conseguido de la siguiente forma:

Imagínate que tienes 2 mensajes escritos el mismo día, por ejemplo hoy 24 de junio de 2012 y en medio de ellos quieres poner otro.


Primero, averigua qué número tiene el primero de los posts. Para ello, copia la dirección del enlace de ese mensaje (dándole con el botón derecho el icono Imagenque aparece delante del nombre de quien ha escrito ese mensaje.
Pega esa elección en cualquier sitio, para quedarte con el número que aparece al final: pxxxxxx. La xxxxx esa es el número que necesitas del primero post.


Ahora, vamos a averiguar a qué hora (en formato sql) fue insertado.
Si entras en tu base de datos en el phpmyadmin, puedes ver el archivo phpbb_posts, que contiene todos los mensajes de tu foro. Busca ese número del primer post en los datos que te saldrán la primera columna (post_id)

Una vez encontrado, la 7ª columna tiene el valor numérico relativo a la fecha y hora (post_time) en que fue escrito ese mensaje. Copia esa fecha y apúntala o pégala en una hoja de cálculo.
Averigua también el dato del segundo mensaje.
El que quieras escribir tendrá que estar entre esos dos valores.


Ahora, ve al foro crea un nuevo tema y escribe el mensaje que quieres. Sería recomendable que ya le pusieras el mismo título que el tema donde quieres insertarlo, aunque luego puedes editarlo.

Vuelves a entrar en el phpmyadmin y vamos a ver este último mensaje, que tendrá en el post_time un valor mayor que los anteriores.
Edita esa línea y pon un valor en esa columna que sea mayor que el primer valor que cogiste (del primer mensaje), y menor que el del segundo.
Dale a continuar y se actualiza.

Ahora tienes dos temas distintos, uno con los dos mensajes originales y otro tema con un mensaje con la misma fecha y hora intermedia de aquéllos.

Entonces, entrando en este último tema creado, usas la función de UNIR TEMAS del Panel de herramientas rápidas, que aparecen al final del mensaje.

Lo unes con el tema donde están los mensajes originales y .... aparecerán unidos intercalados.
Si no pusiste el mismo título, puedes editar ese nuevo mensaje y hacerlos coincidir...

A mi me ha funcionado en el foro que tengo en local...
Parece líoso, pero no lo es. Si lo haces con tranquilidad, verás que te sale.

Eso sí, antes de tocar nada en la bbdd, haz una copia por si las moscas...

Salu2

Re: Se puede insertar mensaje entre dos ya existentes?

Publicado: 24 Jun 2012, 22:21
por javiexin
También existe un MOD que permite el cambio de fecha y hora de un mensaje cualquiera (con los permisos adecuados). Con eso, y dado que los mensajes se ordenan por fecha/hora, quedaría como quieres.

El problema es que el MOD está abandonado, y no 100% correcto. Yo lo he auto-corregido en mi foro, pero no tengo el MODX correcto.

Creo que era el change_post_time1_0_1...

Echa un vistazo, y si tienes problemas, avisa.

-javiexin

Re: Se puede insertar mensaje entre dos ya existentes?

Publicado: 24 Jun 2012, 23:41
por karbiko
¿Seguro que si ya están en el mismo tema se ordenan por fecha y hora?

Yo lo hice primeramente así, cambiándole la fecha y hora dentro del mismo tema y no se reordenaron.
Pero uniendo dos temas diferentes si que se entremezclaron correctamente.

Re: Se puede insertar mensaje entre dos ya existentes?

Publicado: 25 Jun 2012, 00:42
por javiexin
karbiko escribió:¿Seguro que si ya están en el mismo tema se ordenan por fecha y hora?
Sí, se ordenan por fecha y hora. Esta es la consulta a la base de datos, si no me equivoco...

Código: Seleccionar todo

		$sql = 'SELECT post_id, topic_id, forum_id
			FROM ' . POSTS_TABLE . "
			WHERE topic_id = $topic_id
				" . (($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND post_approved = 1') . "
				AND post_time > $topic_last_read
				AND forum_id = $forum_id
			ORDER BY post_time ASC";