News:

SMF 2.1.4 has been released! Take it for a spin! Read more.

Main Menu

Editar tema y se ponga el primero?

Started by Shiryu19, May 20, 2015, 10:15:36 AM

Previous topic - Next topic

Shiryu19

Buenas, hace poco abrí un tema en el cual quería que al editar un tema saliera otra ves el mensaje de nuevo y lo conseguí con este código...

En Post.php

// MARK_EDIT_AS_NEW: indicate that we are not in edit mode
$editing = false;

* // This is an already existing message. Edit it.
* if (!empty($_REQUEST['msg']))
* {

// MARK_EDIT_AS_NEW: indicate that we are in edit mode
$editing = true;

[...]

* updateSettings(array(
* 'calendar_updated' => time(),
* ));
* }

// MARK_EDIT_AS_NEW: mark the post as unread!
if ($editing) {
// 1. mark board as unread: delete the board from log_boards - we want to show everyone except us that we've edited something important
$smcFunc['db_query']('', '
DELETE FROM {db_prefix}log_boards
WHERE id_board = {int:board} AND id_member != {int:current_member}',
array(
'current_member' => $user_info['id'],
'board' => $board,
)
);
// 2. mark thread unread from where the edit happened: insert or update msgno-1 (id = read inclusive, so we need to decrease the id by 1)
// a) update all entries with msg_id >= edited msg_id to msgno-1 (the lower ones did not even read up to the edit yet; we don't want to disturb them)
$smcFunc['db_query']('', 'UPDATE {db_prefix}log_topics SET id_msg = LEAST({int:msg_id}-1, id_msg) WHERE id_topic = {int:topic_id}',
array(
'topic_id' => $topic,
'msg_id' => $_REQUEST['msg'],
)
);
// b) insert a record for all other users to make sure everyone reads the topic again!
$smcFunc['db_query']('', '
INSERT IGNORE INTO {db_prefix}log_topics (id_member, id_topic, id_msg)
SELECT id_member, {int:topic_id}, {int:msg_id}-1 FROM {db_prefix}members',
array(
'topic_id' => $topic,
'msg_id' => $_REQUEST['msg'],
)
);
}


* // Marking read should be done even for editing messages....
* // Mark all the parents read.  (since you just posted and they will be unread.)


Ahora, mi pregunta es, aparte de esto se puede hacer que con el SimplePortal se ponga primero en la lista de temas? (Repito, al editar el tema ya creado)

Gracias!!!
Dar las GRACIAS no cuesta nada

Suki

Eso depende de como el portal está obteniendo esos temas, cual es su criterio para determinar su posición. ¿por fecha? ¿por vistas? ¿por respuestas?
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

Shiryu19

No sabia eso, donde se mira para cambiarlo?
Dar las GRACIAS no cuesta nada

Suki

No lo sé, no se exactamente que tipo de bloque estés usando.
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

Shiryu19

Dar las GRACIAS no cuesta nada

Suki

No me refiero a eso... el portal tiene diferentes tipos de bloques, noticias, mensajes recientes, etc  No tengo idea de que tipo de bloques dentro del portal estás usando.
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

Shiryu19

Vale perdón,  ahora si te entendí, uso... Temas/mensajes recientes
Dar las GRACIAS no cuesta nada

Suki

La forma mas sencilla es actualizar el tema/mensaje con la fecha de cuando se modifico, de esa forma aparecerá como si fuera un mensaje reciente tanto en el portal como en el foro.
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

Shiryu19

Dar las GRACIAS no cuesta nada

Suki

Depende enteramente de lo que quieres hacer, no das muchos detalles.


No hay una forma sencilla de hacer que aparezca X mensaje al principio si no se sabe el ID del mensaje que quieres que aparezca, si no sabes el ID puedes usar al fecha como referencia pero al hacerlo vas a crear otros problemas dento de tu foro, por ejamplo, un tema NO puede ser mas reciente que las respuestas que tiene.
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

Shiryu19

La idea es que cuando se edite vuelva a salir como el primero de la lista, no que quede perdido por abajo, adjunto imagen a ver si se entiende.
Dar las GRACIAS no cuesta nada

Suki

y no existe una forma sencilla de hacerlo, el bloque que usas no tiene idea de que mensaje se ha editado y cuales no.
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

Shiryu19

Si ese es el problema, cuando lo editas la fecha queda la misma que cuando se abrió el tema, y queda perdido por debajo y no lo pone como si fuera nuevo  :-\
Dar las GRACIAS no cuesta nada

Suki

Aún editando la fecha, se crearían toda calse de problemas puesto que un tema no puede tener una fecha más reciente que sus propias respuestas.
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

Shiryu19

Bueno, entonces nada, gracias por todo!
Dar las GRACIAS no cuesta nada

Advertisement: